Home | History | Annotate | Download | only in src
      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 #ifndef BENCH_GL_TEXTURETEST_H_
      6 #define BENCH_GL_TEXTURETEST_H_
      7 
      8 #include <memory>
      9 
     10 #include "testbase.h"
     11 #include "utils.h"
     12 
     13 namespace glbench {
     14 
     15 namespace {
     16 
     17 const int kNumberOfTextures = 8;
     18 
     19 }  // namespace
     20 
     21 class TextureTest : public TestBase {
     22  public:
     23   TextureTest() {}
     24   virtual ~TextureTest() {}
     25   virtual bool TestFunc(uint64_t iterations) = 0;
     26   virtual bool Run();
     27   virtual const char* Name() const = 0;
     28   virtual const char* Unit() const { return "mtexel_sec"; }
     29 
     30   enum UpdateFlavor {
     31     TEX_IMAGE,
     32     TEX_SUBIMAGE
     33   };
     34 
     35  protected:
     36   GLuint width_;
     37   GLuint height_;
     38   GLuint program_;
     39   int texsize_;
     40   std::unique_ptr<char[]> pixels_[kNumberOfTextures];
     41   GLuint textures_[kNumberOfTextures];
     42   UpdateFlavor flavor_;
     43   GLenum texel_gl_format_;
     44   DISALLOW_COPY_AND_ASSIGN(TextureTest);
     45 };
     46 
     47 } // namespace glbench
     48 
     49 #endif  // BENCH_GL_TEXTURETEST_H_
     50