// Copyright (c) 2012 The Chromium OS Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/callback.h" #include "testbase.h" #include "utils.h" namespace glbench { class GLInterfaceTest : public TestBase { public: GLInterfaceTest() : index_buffer_object_(0), vertex_buffer_object_(0), num_indices_(0), shader_program_(0), attribute_index_(0) {} virtual ~GLInterfaceTest() {} virtual bool TestFunc(uint64_t iterations) = 0; virtual bool Run(); virtual const char* Name() const = 0; virtual bool IsDrawTest() const { return !render_func_.is_null(); } virtual const char* Unit() const { return "us"; } protected: // Callback for GL rendering function to be run before GLX/EGL calls. base::Callback<void(void)> render_func_; void SetupGLRendering(); private: // For calling some GL operations before GLX/EGL calls. void RenderGLSimple(); void CleanupGLRendering(); // For GL rendering. GLuint index_buffer_object_; GLuint vertex_buffer_object_; GLsizei num_indices_; GLuint shader_program_; GLint attribute_index_; DISALLOW_COPY_AND_ASSIGN(GLInterfaceTest); }; } // namespace glbench