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 // This file defines tests that implementations of GLImage should pass in order | 5 // This file defines tests that implementations of GLImage should pass in order |
6 // to be conformant. | 6 // to be conformant. |
7 | 7 |
8 #ifndef UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ | 8 #ifndef UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ |
9 #define UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ | 9 #define UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ |
10 | 10 |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 const char kVertexShader[] = STRINGIZE( | 103 const char kVertexShader[] = STRINGIZE( |
104 attribute vec2 a_position; | 104 attribute vec2 a_position; |
105 varying vec2 v_texCoord; | 105 varying vec2 v_texCoord; |
106 void main() { | 106 void main() { |
107 gl_Position = vec4(a_position.x, a_position.y, 0.0, 1.0); | 107 gl_Position = vec4(a_position.x, a_position.y, 0.0, 1.0); |
108 v_texCoord = (a_position + vec2(1.0, 1.0)) * 0.5; | 108 v_texCoord = (a_position + vec2(1.0, 1.0)) * 0.5; |
109 } | 109 } |
110 ); | 110 ); |
111 // clang-format on | 111 // clang-format on |
112 | 112 |
| 113 GLuint vao = 0; |
| 114 if (GLHelper::ShouldTestsUseVAOs()) { |
| 115 glGenVertexArraysOES(1, &vao); |
| 116 glBindVertexArrayOES(vao); |
| 117 } |
| 118 |
113 GLuint vertex_shader = GLHelper::LoadShader(GL_VERTEX_SHADER, kVertexShader); | 119 GLuint vertex_shader = GLHelper::LoadShader(GL_VERTEX_SHADER, kVertexShader); |
114 GLuint fragment_shader = LoadFragmentShader(target, size); | 120 GLuint fragment_shader = LoadFragmentShader(target, size); |
115 GLuint program = GLHelper::SetupProgram(vertex_shader, fragment_shader); | 121 GLuint program = GLHelper::SetupProgram(vertex_shader, fragment_shader); |
116 EXPECT_NE(program, 0u); | 122 EXPECT_NE(program, 0u); |
117 glUseProgram(program); | 123 glUseProgram(program); |
118 | 124 |
119 GLint sampler_location = glGetUniformLocation(program, "a_texture"); | 125 GLint sampler_location = glGetUniformLocation(program, "a_texture"); |
120 ASSERT_NE(sampler_location, -1); | 126 ASSERT_NE(sampler_location, -1); |
121 glUniform1i(sampler_location, 0); | 127 glUniform1i(sampler_location, 0); |
122 | 128 |
123 GLuint vertex_buffer = GLHelper::SetupQuadVertexBuffer(); | 129 GLuint vertex_buffer = GLHelper::SetupQuadVertexBuffer(); |
124 GLHelper::DrawQuad(vertex_buffer); | 130 GLHelper::DrawQuad(vertex_buffer); |
125 | 131 |
| 132 if (vao != 0) { |
| 133 glDeleteVertexArraysOES(1, &vao); |
| 134 } |
| 135 |
126 glDeleteShader(vertex_shader); | 136 glDeleteShader(vertex_shader); |
127 glDeleteShader(fragment_shader); | 137 glDeleteShader(fragment_shader); |
128 glDeleteProgram(program); | 138 glDeleteProgram(program); |
129 glDeleteBuffersARB(1, &vertex_buffer); | 139 glDeleteBuffersARB(1, &vertex_buffer); |
130 } | 140 } |
131 | 141 |
132 } // namespace | 142 } // namespace |
133 | 143 |
134 template <typename GLImageTestDelegate> | 144 template <typename GLImageTestDelegate> |
135 class GLImageTest : public testing::Test { | 145 class GLImageTest : public testing::Test { |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 image->Destroy(true /* have_context */); | 352 image->Destroy(true /* have_context */); |
343 } | 353 } |
344 | 354 |
345 // The GLImageCopyTest test case verifies that the GLImage implementation | 355 // The GLImageCopyTest test case verifies that the GLImage implementation |
346 // handles CopyTexImage correctly. | 356 // handles CopyTexImage correctly. |
347 REGISTER_TYPED_TEST_CASE_P(GLImageCopyTest, CopyTexImage); | 357 REGISTER_TYPED_TEST_CASE_P(GLImageCopyTest, CopyTexImage); |
348 | 358 |
349 } // namespace gl | 359 } // namespace gl |
350 | 360 |
351 #endif // UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ | 361 #endif // UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ |
OLD | NEW |