OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "gpu/command_buffer/tests/gl_test_utils.h" | 5 #include "gpu/command_buffer/tests/gl_test_utils.h" |
6 | 6 |
7 #include <GLES2/gl2extchromium.h> | 7 #include <GLES2/gl2extchromium.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <stdio.h> | 9 #include <stdio.h> |
10 | 10 |
11 #include <memory> | 11 #include <memory> |
12 #include <string> | 12 #include <string> |
13 | 13 |
| 14 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
15 #include "ui/gfx/geometry/size.h" | 16 #include "ui/gfx/geometry/size.h" |
16 | 17 |
17 // GCC requires these declarations, but MSVC requires they not be present. | 18 // GCC requires these declarations, but MSVC requires they not be present. |
18 #ifndef COMPILER_MSVC | 19 #ifndef COMPILER_MSVC |
19 const uint8_t GLTestHelper::kCheckClearValue; | 20 const uint8_t GLTestHelper::kCheckClearValue; |
20 #endif | 21 #endif |
21 | 22 |
22 bool GLTestHelper::HasExtension(const char* extension) { | 23 bool GLTestHelper::HasExtension(const char* extension) { |
23 // Pad with an extra space to ensure that |extension| is not a substring of | 24 // Pad with an extra space to ensure that |extension| is not a substring of |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 Set32BitValue(bih.clr_used, 0); | 271 Set32BitValue(bih.clr_used, 0); |
271 Set32BitValue(bih.clr_important, 0); | 272 Set32BitValue(bih.clr_important, 0); |
272 | 273 |
273 fwrite(&bhf, sizeof(bhf), 1, fp); | 274 fwrite(&bhf, sizeof(bhf), 1, fp); |
274 fwrite(&bih, sizeof(bih), 1, fp); | 275 fwrite(&bih, sizeof(bih), 1, fp); |
275 fwrite(pixels, size, 1, fp); | 276 fwrite(pixels, size, 1, fp); |
276 fclose(fp); | 277 fclose(fp); |
277 return true; | 278 return true; |
278 } | 279 } |
279 | 280 |
280 void GLTestHelper::DrawTextureQuad(const char* vertex_src, | 281 void GLTestHelper::DrawTextureQuad(const GLenum texture_target, |
| 282 const char* vertex_src, |
281 const char* fragment_src, | 283 const char* fragment_src, |
282 const char* position_name, | 284 const char* position_name, |
283 const char* sampler_name) { | 285 const char* sampler_name, |
| 286 const char* face_name) { |
284 GLuint program = GLTestHelper::LoadProgram(vertex_src, fragment_src); | 287 GLuint program = GLTestHelper::LoadProgram(vertex_src, fragment_src); |
285 EXPECT_NE(program, 0u); | 288 EXPECT_NE(program, 0u); |
286 glUseProgram(program); | 289 glUseProgram(program); |
287 | 290 |
288 GLint position_loc = glGetAttribLocation(program, position_name); | 291 GLint position_loc = glGetAttribLocation(program, position_name); |
289 GLint sampler_location = glGetUniformLocation(program, sampler_name); | 292 GLint sampler_location = glGetUniformLocation(program, sampler_name); |
290 ASSERT_NE(position_loc, -1); | 293 ASSERT_NE(position_loc, -1); |
291 ASSERT_NE(sampler_location, -1); | 294 ASSERT_NE(sampler_location, -1); |
| 295 GLint face_loc = -1; |
| 296 if (gpu::gles2::GLES2Util::GLFaceTargetToTextureTarget(texture_target) == |
| 297 GL_TEXTURE_CUBE_MAP) { |
| 298 ASSERT_NE(face_name, nullptr); |
| 299 face_loc = glGetUniformLocation(program, face_name); |
| 300 ASSERT_NE(face_loc, -1); |
| 301 glUniform1i(face_loc, texture_target); |
| 302 } |
292 | 303 |
293 GLuint vertex_buffer = GLTestHelper::SetupUnitQuad(position_loc); | 304 GLuint vertex_buffer = GLTestHelper::SetupUnitQuad(position_loc); |
294 ASSERT_NE(vertex_buffer, 0u); | 305 ASSERT_NE(vertex_buffer, 0u); |
295 glActiveTexture(GL_TEXTURE0); | 306 glActiveTexture(GL_TEXTURE0); |
296 glUniform1i(sampler_location, 0); | 307 glUniform1i(sampler_location, 0); |
297 | 308 |
298 glDrawArrays(GL_TRIANGLES, 0, 6); | 309 glDrawArrays(GL_TRIANGLES, 0, 6); |
299 | 310 |
300 glDeleteProgram(program); | 311 glDeleteProgram(program); |
301 glDeleteBuffers(1, &vertex_buffer); | 312 glDeleteBuffers(1, &vertex_buffer); |
302 } | 313 } |
OLD | NEW |