Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / gpu / command_buffer / tests / gl_test_utils.h
blob972ea0af4064f172033c4a322edb229edc7b820d
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.
5 // Helper functions for GL.
7 #ifndef GPU_COMMAND_BUFFER_TESTS_GL_TEST_UTILS_H_
8 #define GPU_COMMAND_BUFFER_TESTS_GL_TEST_UTILS_H_
10 #include <GLES2/gl2.h>
11 #include "base/basictypes.h"
13 class GLTestHelper {
14 public:
15 static const uint8 kCheckClearValue = 123u;
17 static bool HasExtension(const char* extension);
18 static bool CheckGLError(const char* msg, int line);
20 // Compiles a shader.
21 // Returns shader, 0 on failure..
22 static GLuint LoadShader(GLenum type, const char* shaderSrc);
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);
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);
34 // Make a unit quad with position only.
35 // Returns the created buffer.
36 static GLuint SetupUnitQuad(GLint position_location);
38 // Make a 6 vertex colors.
39 // Returns the created buffer.
40 static GLuint SetupColorsForUnitQuad(
41 GLint location, const GLfloat color[4], GLenum usage);
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);
48 // Uses ReadPixels to save an area of the current FBO/Backbuffer.
49 static bool SaveBackbufferAsBMP(const char* filename, int width, int height);
51 // Run unit tests.
52 static int RunTests(int argc, char** argv);
55 #endif // GPU_COMMAND_BUFFER_TESTS_GL_TEST_UTILS_H_