• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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