OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gl/gl_helper.h" | 5 #include "ui/gl/gl_helper.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "ui/gl/scoped_binders.h" | 10 #include "ui/gl/scoped_binders.h" |
11 | 11 |
12 namespace gfx { | 12 namespace gl { |
13 | 13 |
14 // static | 14 // static |
15 GLuint GLHelper::CompileShader(GLenum type, const char* src) { | 15 GLuint GLHelper::CompileShader(GLenum type, const char* src) { |
16 GLuint shader = glCreateShader(type); | 16 GLuint shader = glCreateShader(type); |
17 // Load the shader source. | 17 // Load the shader source. |
18 glShaderSource(shader, 1, &src, nullptr); | 18 glShaderSource(shader, 1, &src, nullptr); |
19 // Compile the shader. | 19 // Compile the shader. |
20 glCompileShader(shader); | 20 glCompileShader(shader); |
21 return shader; | 21 return shader; |
22 } | 22 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 glDeleteProgram(program); | 66 glDeleteProgram(program); |
67 program = 0; | 67 program = 0; |
68 } | 68 } |
69 return program; | 69 return program; |
70 } | 70 } |
71 | 71 |
72 // static | 72 // static |
73 GLuint GLHelper::SetupQuadVertexBuffer() { | 73 GLuint GLHelper::SetupQuadVertexBuffer() { |
74 GLuint vertex_buffer = 0; | 74 GLuint vertex_buffer = 0; |
75 glGenBuffersARB(1, &vertex_buffer); | 75 glGenBuffersARB(1, &vertex_buffer); |
76 gfx::ScopedBufferBinder buffer_binder(GL_ARRAY_BUFFER, vertex_buffer); | 76 gl::ScopedBufferBinder buffer_binder(GL_ARRAY_BUFFER, vertex_buffer); |
77 GLfloat data[] = {-1.f, -1.f, 1.f, -1.f, -1.f, 1.f, 1.f, 1.f}; | 77 GLfloat data[] = {-1.f, -1.f, 1.f, -1.f, -1.f, 1.f, 1.f, 1.f}; |
78 glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW); | 78 glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW); |
79 return vertex_buffer; | 79 return vertex_buffer; |
80 } | 80 } |
81 | 81 |
82 // static | 82 // static |
83 void GLHelper::DrawQuad(GLuint vertex_buffer) { | 83 void GLHelper::DrawQuad(GLuint vertex_buffer) { |
84 gfx::ScopedBufferBinder buffer_binder(GL_ARRAY_BUFFER, vertex_buffer); | 84 gl::ScopedBufferBinder buffer_binder(GL_ARRAY_BUFFER, vertex_buffer); |
85 gfx::ScopedVertexAttribArray vertex_attrib_array(0, 2, GL_FLOAT, GL_FALSE, | 85 gl::ScopedVertexAttribArray vertex_attrib_array(0, 2, GL_FLOAT, GL_FALSE, |
86 sizeof(GLfloat) * 2, 0); | 86 sizeof(GLfloat) * 2, 0); |
87 gfx::ScopedCapability disable_blending(GL_BLEND, GL_FALSE); | 87 gl::ScopedCapability disable_blending(GL_BLEND, GL_FALSE); |
88 gfx::ScopedCapability disable_culling(GL_CULL_FACE, GL_FALSE); | 88 gl::ScopedCapability disable_culling(GL_CULL_FACE, GL_FALSE); |
89 gfx::ScopedCapability disable_dithering(GL_DITHER, GL_FALSE); | 89 gl::ScopedCapability disable_dithering(GL_DITHER, GL_FALSE); |
90 gfx::ScopedCapability disable_depth_test(GL_DEPTH_TEST, GL_FALSE); | 90 gl::ScopedCapability disable_depth_test(GL_DEPTH_TEST, GL_FALSE); |
91 gfx::ScopedCapability disable_scissor_test(GL_SCISSOR_TEST, GL_FALSE); | 91 gl::ScopedCapability disable_scissor_test(GL_SCISSOR_TEST, GL_FALSE); |
92 gfx::ScopedColorMask color_mask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 92 gl::ScopedColorMask color_mask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); |
93 | 93 |
94 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); | 94 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); |
95 } | 95 } |
96 | 96 |
97 } // namespace gfx | 97 } // namespace gl |
OLD | NEW |