Home | History | Annotate | Download | only in tests
      1 // Copyright (c) 2012 The Chromium 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 // Helper functions for GL.
      6 
      7 #ifndef GPU_COMMAND_BUFFER_TESTS_GL_TEST_UTILS_H_
      8 #define GPU_COMMAND_BUFFER_TESTS_GL_TEST_UTILS_H_
      9 
     10 #include <GLES2/gl2.h>
     11 #include "base/basictypes.h"
     12 
     13 class GLTestHelper {
     14  public:
     15   static const uint8 kCheckClearValue = 123u;
     16 
     17   static bool HasExtension(const char* extension);
     18   static bool CheckGLError(const char* msg, int line);
     19 
     20   // Compiles a shader.
     21   // Returns shader, 0 on failure..
     22   static GLuint LoadShader(GLenum type, const char* shaderSrc);
     23 
     24   // Attaches 2 shaders and links them to a program.
     25   // Returns program, 0 on failure..
     26   static GLuint SetupProgram(GLuint vertex_shader, GLuint fragment_shader);
     27 
     28   // Compiles 2 shaders, attaches and links them to a program
     29   // Returns program, 0 on failure.
     30   static GLuint LoadProgram(
     31       const char* vertex_shader_source,
     32       const char* fragment_shader_source);
     33 
     34   // Make a unit quad with position only.
     35   // Returns the created buffer.
     36   static GLuint SetupUnitQuad(GLint position_location);
     37 
     38   // Make a 6 vertex colors.
     39   // Returns the created buffer.
     40   static GLuint SetupColorsForUnitQuad(
     41       GLint location, const GLfloat color[4], GLenum usage);
     42 
     43   // Checks an area of pixels for a color.
     44   static bool CheckPixels(
     45       GLint x, GLint y, GLsizei width, GLsizei height, GLint tolerance,
     46       const uint8* color);
     47 
     48   // Uses ReadPixels to save an area of the current FBO/Backbuffer.
     49   static bool SaveBackbufferAsBMP(const char* filename, int width, int height);
     50 
     51   // Run unit tests.
     52   static int RunTests(int argc, char** argv);
     53 };
     54 
     55 #endif  // GPU_COMMAND_BUFFER_TESTS_GL_TEST_UTILS_H_
     56