// 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. #ifndef BENCH_GL_TEXTURETEST_H_ #define BENCH_GL_TEXTURETEST_H_ #include <memory> #include "testbase.h" #include "utils.h" namespace glbench { namespace { const int kNumberOfTextures = 8; } // namespace class TextureTest : public TestBase { public: TextureTest() {} virtual ~TextureTest() {} virtual bool TestFunc(uint64_t iterations) = 0; virtual bool Run(); virtual const char* Name() const = 0; virtual const char* Unit() const { return "mtexel_sec"; } enum UpdateFlavor { TEX_IMAGE, TEX_SUBIMAGE }; protected: GLuint width_; GLuint height_; GLuint program_; int texsize_; std::unique_ptr<char[]> pixels_[kNumberOfTextures]; GLuint textures_[kNumberOfTextures]; UpdateFlavor flavor_; GLenum texel_gl_format_; DISALLOW_COPY_AND_ASSIGN(TextureTest); }; } // namespace glbench #endif // BENCH_GL_TEXTURETEST_H_