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 // Tests for GLES2Implementation. | 5 // Tests for GLES2Implementation. |
6 | 6 |
7 #include "gpu/command_buffer/client/gles2_implementation.h" | 7 #include "gpu/command_buffer/client/gles2_implementation.h" |
8 | 8 |
9 #include <GLES2/gl2.h> | 9 #include <GLES2/gl2.h> |
10 #include <GLES2/gl2ext.h> | 10 #include <GLES2/gl2ext.h> |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 gl_impl->GenBuffers(n, ids); | 336 gl_impl->GenBuffers(n, ids); |
337 } | 337 } |
338 | 338 |
339 static void Delete(GLES2Implementation* gl_impl, | 339 static void Delete(GLES2Implementation* gl_impl, |
340 GLsizei n, | 340 GLsizei n, |
341 const GLuint* ids) { | 341 const GLuint* ids) { |
342 gl_impl->DeleteBuffers(n, ids); | 342 gl_impl->DeleteBuffers(n, ids); |
343 } | 343 } |
344 }; | 344 }; |
345 | 345 |
346 // API wrapper for Framebuffers. | |
347 class GenFramebuffersAPI { | |
348 public: | |
349 static void Gen(GLES2Implementation* gl_impl, GLsizei n, GLuint* ids) { | |
350 gl_impl->GenFramebuffers(n, ids); | |
351 } | |
352 | |
353 static void Delete(GLES2Implementation* gl_impl, | |
354 GLsizei n, | |
355 const GLuint* ids) { | |
356 gl_impl->DeleteFramebuffers(n, ids); | |
357 } | |
358 }; | |
359 | |
360 // API wrapper for Renderbuffers. | 346 // API wrapper for Renderbuffers. |
361 class GenRenderbuffersAPI { | 347 class GenRenderbuffersAPI { |
362 public: | 348 public: |
363 static void Gen(GLES2Implementation* gl_impl, GLsizei n, GLuint* ids) { | 349 static void Gen(GLES2Implementation* gl_impl, GLsizei n, GLuint* ids) { |
364 gl_impl->GenRenderbuffers(n, ids); | 350 gl_impl->GenRenderbuffers(n, ids); |
365 } | 351 } |
366 | 352 |
367 static void Delete(GLES2Implementation* gl_impl, | 353 static void Delete(GLES2Implementation* gl_impl, |
368 GLsizei n, | 354 GLsizei n, |
369 const GLuint* ids) { | 355 const GLuint* ids) { |
(...skipping 2771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3141 EXPECT_TRUE(CheckRect( | 3127 EXPECT_TRUE(CheckRect( |
3142 kWidth, 2, kFormat, kType, kPixelStoreUnpackAlignment, | 3128 kWidth, 2, kFormat, kType, kPixelStoreUnpackAlignment, |
3143 reinterpret_cast<uint8_t*>(pixels.get()) + offset_to_last, mem2_2.ptr)); | 3129 reinterpret_cast<uint8_t*>(pixels.get()) + offset_to_last, mem2_2.ptr)); |
3144 } | 3130 } |
3145 | 3131 |
3146 // glGen* Ids must not be reused until glDelete* commands have been | 3132 // glGen* Ids must not be reused until glDelete* commands have been |
3147 // flushed by glFlush. | 3133 // flushed by glFlush. |
3148 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestBuffers) { | 3134 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestBuffers) { |
3149 FlushGenerationTest<GenBuffersAPI>(); | 3135 FlushGenerationTest<GenBuffersAPI>(); |
3150 } | 3136 } |
3151 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestFramebuffers) { | |
3152 FlushGenerationTest<GenFramebuffersAPI>(); | |
3153 } | |
3154 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestRenderbuffers) { | 3137 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestRenderbuffers) { |
3155 FlushGenerationTest<GenRenderbuffersAPI>(); | 3138 FlushGenerationTest<GenRenderbuffersAPI>(); |
3156 } | 3139 } |
3157 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestTextures) { | 3140 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestTextures) { |
3158 FlushGenerationTest<GenTexturesAPI>(); | 3141 FlushGenerationTest<GenTexturesAPI>(); |
3159 } | 3142 } |
3160 | 3143 |
3161 // glGen* Ids must not be reused cross-context until glDelete* commands are | 3144 // glGen* Ids must not be reused cross-context until glDelete* commands are |
3162 // flushed by glFlush, and the Ids are lazily freed after. | 3145 // flushed by glFlush, and the Ids are lazily freed after. |
3163 TEST_F(GLES2ImplementationStrictSharedTest, CrossContextGenerationTestBuffers) { | 3146 TEST_F(GLES2ImplementationStrictSharedTest, CrossContextGenerationTestBuffers) { |
3164 CrossContextGenerationTest<GenBuffersAPI>(); | 3147 CrossContextGenerationTest<GenBuffersAPI>(); |
3165 } | 3148 } |
3166 TEST_F(GLES2ImplementationStrictSharedTest, | 3149 TEST_F(GLES2ImplementationStrictSharedTest, |
3167 CrossContextGenerationTestFramebuffers) { | |
3168 CrossContextGenerationTest<GenFramebuffersAPI>(); | |
3169 } | |
3170 TEST_F(GLES2ImplementationStrictSharedTest, | |
3171 CrossContextGenerationTestRenderbuffers) { | 3150 CrossContextGenerationTestRenderbuffers) { |
3172 CrossContextGenerationTest<GenRenderbuffersAPI>(); | 3151 CrossContextGenerationTest<GenRenderbuffersAPI>(); |
3173 } | 3152 } |
3174 TEST_F(GLES2ImplementationStrictSharedTest, | 3153 TEST_F(GLES2ImplementationStrictSharedTest, |
3175 CrossContextGenerationTestTextures) { | 3154 CrossContextGenerationTestTextures) { |
3176 CrossContextGenerationTest<GenTexturesAPI>(); | 3155 CrossContextGenerationTest<GenTexturesAPI>(); |
3177 } | 3156 } |
3178 | 3157 |
3179 // Test Delete which causes auto flush. Tests a regression case that occurred | 3158 // Test Delete which causes auto flush. Tests a regression case that occurred |
3180 // in testing. | 3159 // in testing. |
3181 TEST_F(GLES2ImplementationStrictSharedTest, | 3160 TEST_F(GLES2ImplementationStrictSharedTest, |
3182 CrossContextGenerationAutoFlushTestBuffers) { | 3161 CrossContextGenerationAutoFlushTestBuffers) { |
3183 CrossContextGenerationAutoFlushTest<GenBuffersAPI>(); | 3162 CrossContextGenerationAutoFlushTest<GenBuffersAPI>(); |
3184 } | 3163 } |
3185 TEST_F(GLES2ImplementationStrictSharedTest, | 3164 TEST_F(GLES2ImplementationStrictSharedTest, |
3186 CrossContextGenerationAutoFlushTestFramebuffers) { | |
3187 CrossContextGenerationAutoFlushTest<GenFramebuffersAPI>(); | |
3188 } | |
3189 TEST_F(GLES2ImplementationStrictSharedTest, | |
3190 CrossContextGenerationAutoFlushTestRenderbuffers) { | 3165 CrossContextGenerationAutoFlushTestRenderbuffers) { |
3191 CrossContextGenerationAutoFlushTest<GenRenderbuffersAPI>(); | 3166 CrossContextGenerationAutoFlushTest<GenRenderbuffersAPI>(); |
3192 } | 3167 } |
3193 TEST_F(GLES2ImplementationStrictSharedTest, | 3168 TEST_F(GLES2ImplementationStrictSharedTest, |
3194 CrossContextGenerationAutoFlushTestTextures) { | 3169 CrossContextGenerationAutoFlushTestTextures) { |
3195 CrossContextGenerationAutoFlushTest<GenTexturesAPI>(); | 3170 CrossContextGenerationAutoFlushTest<GenTexturesAPI>(); |
3196 } | 3171 } |
3197 | 3172 |
3198 TEST_F(GLES2ImplementationTest, GetString) { | 3173 TEST_F(GLES2ImplementationTest, GetString) { |
3199 const uint32_t kBucketId = GLES2Implementation::kResultBucketId; | 3174 const uint32_t kBucketId = GLES2Implementation::kResultBucketId; |
(...skipping 1428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4628 ContextInitOptions init_options; | 4603 ContextInitOptions init_options; |
4629 init_options.transfer_buffer_initialize_fail = true; | 4604 init_options.transfer_buffer_initialize_fail = true; |
4630 EXPECT_FALSE(Initialize(init_options)); | 4605 EXPECT_FALSE(Initialize(init_options)); |
4631 } | 4606 } |
4632 | 4607 |
4633 #include "base/macros.h" | 4608 #include "base/macros.h" |
4634 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" | 4609 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" |
4635 | 4610 |
4636 } // namespace gles2 | 4611 } // namespace gles2 |
4637 } // namespace gpu | 4612 } // namespace gpu |
OLD | NEW |