• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/callback.h"
6 
7 #include "testbase.h"
8 #include "utils.h"
9 
10 namespace glbench {
11 
12 class GLInterfaceTest : public TestBase {
13  public:
GLInterfaceTest()14   GLInterfaceTest() : index_buffer_object_(0),
15                vertex_buffer_object_(0),
16                num_indices_(0),
17                shader_program_(0),
18                attribute_index_(0) {}
~GLInterfaceTest()19   virtual ~GLInterfaceTest() {}
20   virtual bool TestFunc(uint64_t iterations) = 0;
21   virtual bool Run();
22   virtual const char* Name() const = 0;
IsDrawTest()23   virtual bool IsDrawTest() const { return !render_func_.is_null(); }
Unit()24   virtual const char* Unit() const { return "us"; }
25 
26  protected:
27   // Callback for GL rendering function to be run before GLX/EGL calls.
28   base::Callback<void(void)> render_func_;
29   void SetupGLRendering();
30 
31  private:
32   // For calling some GL operations before GLX/EGL calls.
33   void RenderGLSimple();
34   void CleanupGLRendering();
35 
36   // For GL rendering.
37   GLuint index_buffer_object_;
38   GLuint vertex_buffer_object_;
39   GLsizei num_indices_;
40   GLuint shader_program_;
41   GLint attribute_index_;
42 
43   DISALLOW_COPY_AND_ASSIGN(GLInterfaceTest);
44 };
45 
46 } // namespace glbench
47