123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Copyright 2015 The Chromium 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 UI_GL_GL_HELPER_H_
- #define UI_GL_GL_HELPER_H_
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_export.h"
- namespace gl {
- class GL_EXPORT GLHelper {
- public:
- // Compiles a shader.
- // Does not check for errors, always returns shader.
- static GLuint CompileShader(GLenum type, const char* src);
- // Compiles a shader and checks for compilation errors.
- // Returns shader, 0 on failure.
- static GLuint LoadShader(GLenum type, const char* src);
- // Attaches 2 shaders and links them to a program.
- // Does not check for errors, always returns program.
- static GLuint LinkProgram(GLuint vertex_shader, GLuint fragment_shader);
- // Attaches 2 shaders, links them to a program, and checks for errors.
- // Returns program, 0 on failure.
- static GLuint SetupProgram(GLuint vertex_shader, GLuint fragment_shader);
- // Sets up a vertex buffer containing 4 vertices that can be used to draw
- // a quad as a tri-strip.
- static GLuint SetupQuadVertexBuffer();
- // Draws a quad to the currently bound frame buffer.
- static void DrawQuad(GLuint vertex_buffer);
- // When using the desktop core profile we have to bind a VAO before
- // calling glVertexAttribPointer.
- static bool ShouldTestsUseVAOs();
- };
- } // namespace gl
- #endif // UI_GL_GL_HELPER_H_
|