| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/service/gles2_cmd_decoder.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| 6 | 6 |
| 7 #include "base/atomicops.h" | 7 #include "base/atomicops.h" |
| 8 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 8 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
| 9 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 9 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
| 10 #include "gpu/command_buffer/common/gl_mock.h" | 10 #include "gpu/command_buffer/common/gl_mock.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 GLES2DecoderRGBBackbufferTest() { } | 89 GLES2DecoderRGBBackbufferTest() { } |
| 90 | 90 |
| 91 virtual void SetUp() { | 91 virtual void SetUp() { |
| 92 InitDecoder( | 92 InitDecoder( |
| 93 "", // extensions | 93 "", // extensions |
| 94 false, // has alpha | 94 false, // has alpha |
| 95 false, // has depth | 95 false, // has depth |
| 96 false, // has stencil | 96 false, // has stencil |
| 97 false, // request alpha | 97 false, // request alpha |
| 98 false, // request depth | 98 false, // request depth |
| 99 false); // request stencil | 99 false, // request stencil |
| 100 true); // bind generates resource |
| 100 SetupDefaultProgram(); | 101 SetupDefaultProgram(); |
| 101 } | 102 } |
| 102 }; | 103 }; |
| 103 | 104 |
| 104 class GLES2DecoderManualInitTest : public GLES2DecoderWithShaderTest { | 105 class GLES2DecoderManualInitTest : public GLES2DecoderWithShaderTest { |
| 105 public: | 106 public: |
| 106 GLES2DecoderManualInitTest() { } | 107 GLES2DecoderManualInitTest() { } |
| 107 | 108 |
| 108 // Override default setup so nothing gets setup. | 109 // Override default setup so nothing gets setup. |
| 109 virtual void SetUp() { | 110 virtual void SetUp() { |
| (...skipping 3073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3183 } | 3184 } |
| 3184 | 3185 |
| 3185 TEST_F(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) { | 3186 TEST_F(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) { |
| 3186 InitDecoder( | 3187 InitDecoder( |
| 3187 "", // extensions | 3188 "", // extensions |
| 3188 true, // has alpha | 3189 true, // has alpha |
| 3189 false, // has depth | 3190 false, // has depth |
| 3190 false, // has stencil | 3191 false, // has stencil |
| 3191 true, // request alpha | 3192 true, // request alpha |
| 3192 false, // request depth | 3193 false, // request depth |
| 3193 false); // request stencil | 3194 false, // request stencil |
| 3195 true); // bind generates resource |
| 3194 | 3196 |
| 3195 EXPECT_CALL(*gl_, GetError()) | 3197 EXPECT_CALL(*gl_, GetError()) |
| 3196 .WillOnce(Return(GL_NO_ERROR)) | 3198 .WillOnce(Return(GL_NO_ERROR)) |
| 3197 .WillOnce(Return(GL_NO_ERROR)) | 3199 .WillOnce(Return(GL_NO_ERROR)) |
| 3198 .RetiresOnSaturation(); | 3200 .RetiresOnSaturation(); |
| 3199 typedef GetIntegerv::Result Result; | 3201 typedef GetIntegerv::Result Result; |
| 3200 Result* result = static_cast<Result*>(shared_memory_address_); | 3202 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3201 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _)) | 3203 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _)) |
| 3202 .WillOnce(SetArgumentPointee<1>(8)) | 3204 .WillOnce(SetArgumentPointee<1>(8)) |
| 3203 .RetiresOnSaturation(); | 3205 .RetiresOnSaturation(); |
| 3204 result->size = 0; | 3206 result->size = 0; |
| 3205 GetIntegerv cmd2; | 3207 GetIntegerv cmd2; |
| 3206 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_); | 3208 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_); |
| 3207 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); | 3209 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 3208 EXPECT_EQ( | 3210 EXPECT_EQ( |
| 3209 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS), | 3211 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS), |
| 3210 result->GetNumResults()); | 3212 result->GetNumResults()); |
| 3211 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3213 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3212 EXPECT_EQ(8, result->GetData()[0]); | 3214 EXPECT_EQ(8, result->GetData()[0]); |
| 3213 } | 3215 } |
| 3214 | 3216 |
| 3215 TEST_F(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) { | 3217 TEST_F(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) { |
| 3216 InitDecoder( | 3218 InitDecoder( |
| 3217 "", // extensions | 3219 "", // extensions |
| 3218 true, // has alpha | 3220 true, // has alpha |
| 3219 false, // has depth | 3221 false, // has depth |
| 3220 false, // has stencil | 3222 false, // has stencil |
| 3221 false, // request alpha | 3223 false, // request alpha |
| 3222 false, // request depth | 3224 false, // request depth |
| 3223 false); // request stencil | 3225 false, // request stencil |
| 3226 true); // bind generates resource |
| 3224 | 3227 |
| 3225 EXPECT_CALL(*gl_, GetError()) | 3228 EXPECT_CALL(*gl_, GetError()) |
| 3226 .WillOnce(Return(GL_NO_ERROR)) | 3229 .WillOnce(Return(GL_NO_ERROR)) |
| 3227 .WillOnce(Return(GL_NO_ERROR)) | 3230 .WillOnce(Return(GL_NO_ERROR)) |
| 3228 .RetiresOnSaturation(); | 3231 .RetiresOnSaturation(); |
| 3229 typedef GetIntegerv::Result Result; | 3232 typedef GetIntegerv::Result Result; |
| 3230 Result* result = static_cast<Result*>(shared_memory_address_); | 3233 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3231 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _)) | 3234 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _)) |
| 3232 .WillOnce(SetArgumentPointee<1>(8)) | 3235 .WillOnce(SetArgumentPointee<1>(8)) |
| 3233 .RetiresOnSaturation(); | 3236 .RetiresOnSaturation(); |
| 3234 result->size = 0; | 3237 result->size = 0; |
| 3235 GetIntegerv cmd2; | 3238 GetIntegerv cmd2; |
| 3236 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_); | 3239 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_); |
| 3237 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); | 3240 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 3238 EXPECT_EQ( | 3241 EXPECT_EQ( |
| 3239 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS), | 3242 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS), |
| 3240 result->GetNumResults()); | 3243 result->GetNumResults()); |
| 3241 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3244 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3242 EXPECT_EQ(0, result->GetData()[0]); | 3245 EXPECT_EQ(0, result->GetData()[0]); |
| 3243 } | 3246 } |
| 3244 | 3247 |
| 3245 TEST_F(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) { | 3248 TEST_F(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) { |
| 3246 InitDecoder( | 3249 InitDecoder( |
| 3247 "", // extensions | 3250 "", // extensions |
| 3248 false, // has alpha | 3251 false, // has alpha |
| 3249 true, // has depth | 3252 true, // has depth |
| 3250 false, // has stencil | 3253 false, // has stencil |
| 3251 false, // request alpha | 3254 false, // request alpha |
| 3252 true, // request depth | 3255 true, // request depth |
| 3253 false); // request stencil | 3256 false, // request stencil |
| 3257 true); // bind generates resource |
| 3254 | 3258 |
| 3255 EXPECT_CALL(*gl_, GetError()) | 3259 EXPECT_CALL(*gl_, GetError()) |
| 3256 .WillOnce(Return(GL_NO_ERROR)) | 3260 .WillOnce(Return(GL_NO_ERROR)) |
| 3257 .WillOnce(Return(GL_NO_ERROR)) | 3261 .WillOnce(Return(GL_NO_ERROR)) |
| 3258 .RetiresOnSaturation(); | 3262 .RetiresOnSaturation(); |
| 3259 typedef GetIntegerv::Result Result; | 3263 typedef GetIntegerv::Result Result; |
| 3260 Result* result = static_cast<Result*>(shared_memory_address_); | 3264 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3261 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _)) | 3265 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _)) |
| 3262 .WillOnce(SetArgumentPointee<1>(24)) | 3266 .WillOnce(SetArgumentPointee<1>(24)) |
| 3263 .RetiresOnSaturation(); | 3267 .RetiresOnSaturation(); |
| 3264 result->size = 0; | 3268 result->size = 0; |
| 3265 GetIntegerv cmd2; | 3269 GetIntegerv cmd2; |
| 3266 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_); | 3270 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_); |
| 3267 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); | 3271 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 3268 EXPECT_EQ( | 3272 EXPECT_EQ( |
| 3269 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS), | 3273 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS), |
| 3270 result->GetNumResults()); | 3274 result->GetNumResults()); |
| 3271 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3275 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3272 EXPECT_EQ(24, result->GetData()[0]); | 3276 EXPECT_EQ(24, result->GetData()[0]); |
| 3273 } | 3277 } |
| 3274 | 3278 |
| 3275 TEST_F(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) { | 3279 TEST_F(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) { |
| 3276 InitDecoder( | 3280 InitDecoder( |
| 3277 "", // extensions | 3281 "", // extensions |
| 3278 false, // has alpha | 3282 false, // has alpha |
| 3279 true, // has depth | 3283 true, // has depth |
| 3280 false, // has stencil | 3284 false, // has stencil |
| 3281 false, // request alpha | 3285 false, // request alpha |
| 3282 false, // request depth | 3286 false, // request depth |
| 3283 false); // request stencil | 3287 false, // request stencil |
| 3288 true); // bind generates resource |
| 3284 | 3289 |
| 3285 EXPECT_CALL(*gl_, GetError()) | 3290 EXPECT_CALL(*gl_, GetError()) |
| 3286 .WillOnce(Return(GL_NO_ERROR)) | 3291 .WillOnce(Return(GL_NO_ERROR)) |
| 3287 .WillOnce(Return(GL_NO_ERROR)) | 3292 .WillOnce(Return(GL_NO_ERROR)) |
| 3288 .RetiresOnSaturation(); | 3293 .RetiresOnSaturation(); |
| 3289 typedef GetIntegerv::Result Result; | 3294 typedef GetIntegerv::Result Result; |
| 3290 Result* result = static_cast<Result*>(shared_memory_address_); | 3295 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3291 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _)) | 3296 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _)) |
| 3292 .WillOnce(SetArgumentPointee<1>(24)) | 3297 .WillOnce(SetArgumentPointee<1>(24)) |
| 3293 .RetiresOnSaturation(); | 3298 .RetiresOnSaturation(); |
| 3294 result->size = 0; | 3299 result->size = 0; |
| 3295 GetIntegerv cmd2; | 3300 GetIntegerv cmd2; |
| 3296 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_); | 3301 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_); |
| 3297 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); | 3302 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 3298 EXPECT_EQ( | 3303 EXPECT_EQ( |
| 3299 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS), | 3304 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS), |
| 3300 result->GetNumResults()); | 3305 result->GetNumResults()); |
| 3301 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3306 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3302 EXPECT_EQ(0, result->GetData()[0]); | 3307 EXPECT_EQ(0, result->GetData()[0]); |
| 3303 } | 3308 } |
| 3304 | 3309 |
| 3305 TEST_F(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) { | 3310 TEST_F(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) { |
| 3306 InitDecoder( | 3311 InitDecoder( |
| 3307 "", // extensions | 3312 "", // extensions |
| 3308 false, // has alpha | 3313 false, // has alpha |
| 3309 false, // has depth | 3314 false, // has depth |
| 3310 true, // has stencil | 3315 true, // has stencil |
| 3311 false, // request alpha | 3316 false, // request alpha |
| 3312 false, // request depth | 3317 false, // request depth |
| 3313 true); // request stencil | 3318 true, // request stencil |
| 3319 true); // bind generates resource |
| 3314 | 3320 |
| 3315 EXPECT_CALL(*gl_, GetError()) | 3321 EXPECT_CALL(*gl_, GetError()) |
| 3316 .WillOnce(Return(GL_NO_ERROR)) | 3322 .WillOnce(Return(GL_NO_ERROR)) |
| 3317 .WillOnce(Return(GL_NO_ERROR)) | 3323 .WillOnce(Return(GL_NO_ERROR)) |
| 3318 .RetiresOnSaturation(); | 3324 .RetiresOnSaturation(); |
| 3319 typedef GetIntegerv::Result Result; | 3325 typedef GetIntegerv::Result Result; |
| 3320 Result* result = static_cast<Result*>(shared_memory_address_); | 3326 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3321 EXPECT_CALL(*gl_, GetIntegerv(GL_STENCIL_BITS, _)) | 3327 EXPECT_CALL(*gl_, GetIntegerv(GL_STENCIL_BITS, _)) |
| 3322 .WillOnce(SetArgumentPointee<1>(8)) | 3328 .WillOnce(SetArgumentPointee<1>(8)) |
| 3323 .RetiresOnSaturation(); | 3329 .RetiresOnSaturation(); |
| 3324 result->size = 0; | 3330 result->size = 0; |
| 3325 GetIntegerv cmd2; | 3331 GetIntegerv cmd2; |
| 3326 cmd2.Init(GL_STENCIL_BITS, shared_memory_id_, shared_memory_offset_); | 3332 cmd2.Init(GL_STENCIL_BITS, shared_memory_id_, shared_memory_offset_); |
| 3327 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); | 3333 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 3328 EXPECT_EQ( | 3334 EXPECT_EQ( |
| 3329 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_STENCIL_BITS), | 3335 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_STENCIL_BITS), |
| 3330 result->GetNumResults()); | 3336 result->GetNumResults()); |
| 3331 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3337 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3332 EXPECT_EQ(8, result->GetData()[0]); | 3338 EXPECT_EQ(8, result->GetData()[0]); |
| 3333 } | 3339 } |
| 3334 | 3340 |
| 3335 TEST_F(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) { | 3341 TEST_F(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) { |
| 3336 InitDecoder( | 3342 InitDecoder( |
| 3337 "", // extensions | 3343 "", // extensions |
| 3338 false, // has alpha | 3344 false, // has alpha |
| 3339 false, // has depth | 3345 false, // has depth |
| 3340 true, // has stencil | 3346 true, // has stencil |
| 3341 false, // request alpha | 3347 false, // request alpha |
| 3342 false, // request depth | 3348 false, // request depth |
| 3343 false); // request stencil | 3349 false, // request stencil |
| 3350 true); // bind generates resource |
| 3344 | 3351 |
| 3345 EXPECT_CALL(*gl_, GetError()) | 3352 EXPECT_CALL(*gl_, GetError()) |
| 3346 .WillOnce(Return(GL_NO_ERROR)) | 3353 .WillOnce(Return(GL_NO_ERROR)) |
| 3347 .WillOnce(Return(GL_NO_ERROR)) | 3354 .WillOnce(Return(GL_NO_ERROR)) |
| 3348 .RetiresOnSaturation(); | 3355 .RetiresOnSaturation(); |
| 3349 typedef GetIntegerv::Result Result; | 3356 typedef GetIntegerv::Result Result; |
| 3350 Result* result = static_cast<Result*>(shared_memory_address_); | 3357 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3351 EXPECT_CALL(*gl_, GetIntegerv(GL_STENCIL_BITS, _)) | 3358 EXPECT_CALL(*gl_, GetIntegerv(GL_STENCIL_BITS, _)) |
| 3352 .WillOnce(SetArgumentPointee<1>(8)) | 3359 .WillOnce(SetArgumentPointee<1>(8)) |
| 3353 .RetiresOnSaturation(); | 3360 .RetiresOnSaturation(); |
| 3354 result->size = 0; | 3361 result->size = 0; |
| 3355 GetIntegerv cmd2; | 3362 GetIntegerv cmd2; |
| 3356 cmd2.Init(GL_STENCIL_BITS, shared_memory_id_, shared_memory_offset_); | 3363 cmd2.Init(GL_STENCIL_BITS, shared_memory_id_, shared_memory_offset_); |
| 3357 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); | 3364 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 3358 EXPECT_EQ( | 3365 EXPECT_EQ( |
| 3359 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_STENCIL_BITS), | 3366 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_STENCIL_BITS), |
| 3360 result->GetNumResults()); | 3367 result->GetNumResults()); |
| 3361 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3368 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3362 EXPECT_EQ(0, result->GetData()[0]); | 3369 EXPECT_EQ(0, result->GetData()[0]); |
| 3363 } | 3370 } |
| 3364 | 3371 |
| 3365 TEST_F(GLES2DecoderManualInitTest, DepthEnableWithDepth) { | 3372 TEST_F(GLES2DecoderManualInitTest, DepthEnableWithDepth) { |
| 3366 InitDecoder( | 3373 InitDecoder( |
| 3367 "", // extensions | 3374 "", // extensions |
| 3368 false, // has alpha | 3375 false, // has alpha |
| 3369 true, // has depth | 3376 true, // has depth |
| 3370 false, // has stencil | 3377 false, // has stencil |
| 3371 false, // request alpha | 3378 false, // request alpha |
| 3372 true, // request depth | 3379 true, // request depth |
| 3373 false); // request stencil | 3380 false, // request stencil |
| 3381 true); // bind generates resource |
| 3374 | 3382 |
| 3375 Enable cmd; | 3383 Enable cmd; |
| 3376 cmd.Init(GL_DEPTH_TEST); | 3384 cmd.Init(GL_DEPTH_TEST); |
| 3377 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3385 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3378 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3386 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3379 | 3387 |
| 3380 SetupDefaultProgram(); | 3388 SetupDefaultProgram(); |
| 3381 SetupTexture(); | 3389 SetupTexture(); |
| 3382 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); | 3390 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); |
| 3383 SetupExpectationsForApplyingDirtyState( | 3391 SetupExpectationsForApplyingDirtyState( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3419 } | 3427 } |
| 3420 | 3428 |
| 3421 TEST_F(GLES2DecoderManualInitTest, DepthEnableWithoutRequestedDepth) { | 3429 TEST_F(GLES2DecoderManualInitTest, DepthEnableWithoutRequestedDepth) { |
| 3422 InitDecoder( | 3430 InitDecoder( |
| 3423 "", // extensions | 3431 "", // extensions |
| 3424 false, // has alpha | 3432 false, // has alpha |
| 3425 true, // has depth | 3433 true, // has depth |
| 3426 false, // has stencil | 3434 false, // has stencil |
| 3427 false, // request alpha | 3435 false, // request alpha |
| 3428 false, // request depth | 3436 false, // request depth |
| 3429 false); // request stencil | 3437 false, // request stencil |
| 3438 true); // bind generates resource |
| 3430 | 3439 |
| 3431 Enable cmd; | 3440 Enable cmd; |
| 3432 cmd.Init(GL_DEPTH_TEST); | 3441 cmd.Init(GL_DEPTH_TEST); |
| 3433 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3442 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3434 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3443 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3435 | 3444 |
| 3436 SetupDefaultProgram(); | 3445 SetupDefaultProgram(); |
| 3437 SetupTexture(); | 3446 SetupTexture(); |
| 3438 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); | 3447 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); |
| 3439 SetupExpectationsForApplyingDirtyState( | 3448 SetupExpectationsForApplyingDirtyState( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3475 } | 3484 } |
| 3476 | 3485 |
| 3477 TEST_F(GLES2DecoderManualInitTest, StencilEnableWithStencil) { | 3486 TEST_F(GLES2DecoderManualInitTest, StencilEnableWithStencil) { |
| 3478 InitDecoder( | 3487 InitDecoder( |
| 3479 "", // extensions | 3488 "", // extensions |
| 3480 false, // has alpha | 3489 false, // has alpha |
| 3481 false, // has depth | 3490 false, // has depth |
| 3482 true, // has stencil | 3491 true, // has stencil |
| 3483 false, // request alpha | 3492 false, // request alpha |
| 3484 false, // request depth | 3493 false, // request depth |
| 3485 true); // request stencil | 3494 true, // request stencil |
| 3495 true); // bind generates resource |
| 3486 | 3496 |
| 3487 Enable cmd; | 3497 Enable cmd; |
| 3488 cmd.Init(GL_STENCIL_TEST); | 3498 cmd.Init(GL_STENCIL_TEST); |
| 3489 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3499 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3490 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3500 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3491 | 3501 |
| 3492 SetupDefaultProgram(); | 3502 SetupDefaultProgram(); |
| 3493 SetupTexture(); | 3503 SetupTexture(); |
| 3494 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); | 3504 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); |
| 3495 SetupExpectationsForApplyingDirtyState( | 3505 SetupExpectationsForApplyingDirtyState( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3531 } | 3541 } |
| 3532 | 3542 |
| 3533 TEST_F(GLES2DecoderManualInitTest, StencilEnableWithoutRequestedStencil) { | 3543 TEST_F(GLES2DecoderManualInitTest, StencilEnableWithoutRequestedStencil) { |
| 3534 InitDecoder( | 3544 InitDecoder( |
| 3535 "", // extensions | 3545 "", // extensions |
| 3536 false, // has alpha | 3546 false, // has alpha |
| 3537 false, // has depth | 3547 false, // has depth |
| 3538 true, // has stencil | 3548 true, // has stencil |
| 3539 false, // request alpha | 3549 false, // request alpha |
| 3540 false, // request depth | 3550 false, // request depth |
| 3541 false); // request stencil | 3551 false, // request stencil |
| 3552 true); // bind generates resource |
| 3542 | 3553 |
| 3543 Enable cmd; | 3554 Enable cmd; |
| 3544 cmd.Init(GL_STENCIL_TEST); | 3555 cmd.Init(GL_STENCIL_TEST); |
| 3545 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3556 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3546 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3557 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3547 | 3558 |
| 3548 SetupDefaultProgram(); | 3559 SetupDefaultProgram(); |
| 3549 SetupTexture(); | 3560 SetupTexture(); |
| 3550 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); | 3561 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); |
| 3551 SetupExpectationsForApplyingDirtyState( | 3562 SetupExpectationsForApplyingDirtyState( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3587 } | 3598 } |
| 3588 | 3599 |
| 3589 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilReportsCorrectValues) { | 3600 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilReportsCorrectValues) { |
| 3590 InitDecoder( | 3601 InitDecoder( |
| 3591 "GL_OES_packed_depth_stencil", // extensions | 3602 "GL_OES_packed_depth_stencil", // extensions |
| 3592 false, // has alpha | 3603 false, // has alpha |
| 3593 true, // has depth | 3604 true, // has depth |
| 3594 true, // has stencil | 3605 true, // has stencil |
| 3595 false, // request alpha | 3606 false, // request alpha |
| 3596 true, // request depth | 3607 true, // request depth |
| 3597 true); // request stencil | 3608 true, // request stencil |
| 3609 true); // bind generates resource |
| 3598 | 3610 |
| 3599 EXPECT_CALL(*gl_, GetError()) | 3611 EXPECT_CALL(*gl_, GetError()) |
| 3600 .WillOnce(Return(GL_NO_ERROR)) | 3612 .WillOnce(Return(GL_NO_ERROR)) |
| 3601 .WillOnce(Return(GL_NO_ERROR)) | 3613 .WillOnce(Return(GL_NO_ERROR)) |
| 3602 .WillOnce(Return(GL_NO_ERROR)) | 3614 .WillOnce(Return(GL_NO_ERROR)) |
| 3603 .WillOnce(Return(GL_NO_ERROR)) | 3615 .WillOnce(Return(GL_NO_ERROR)) |
| 3604 .RetiresOnSaturation(); | 3616 .RetiresOnSaturation(); |
| 3605 typedef GetIntegerv::Result Result; | 3617 typedef GetIntegerv::Result Result; |
| 3606 Result* result = static_cast<Result*>(shared_memory_address_); | 3618 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3607 result->size = 0; | 3619 result->size = 0; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 3630 } | 3642 } |
| 3631 | 3643 |
| 3632 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilNoRequestedStencil) { | 3644 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilNoRequestedStencil) { |
| 3633 InitDecoder( | 3645 InitDecoder( |
| 3634 "GL_OES_packed_depth_stencil", // extensions | 3646 "GL_OES_packed_depth_stencil", // extensions |
| 3635 false, // has alpha | 3647 false, // has alpha |
| 3636 true, // has depth | 3648 true, // has depth |
| 3637 true, // has stencil | 3649 true, // has stencil |
| 3638 false, // request alpha | 3650 false, // request alpha |
| 3639 true, // request depth | 3651 true, // request depth |
| 3640 false); // request stencil | 3652 false, // request stencil |
| 3653 true); // bind generates resource |
| 3641 | 3654 |
| 3642 EXPECT_CALL(*gl_, GetError()) | 3655 EXPECT_CALL(*gl_, GetError()) |
| 3643 .WillOnce(Return(GL_NO_ERROR)) | 3656 .WillOnce(Return(GL_NO_ERROR)) |
| 3644 .WillOnce(Return(GL_NO_ERROR)) | 3657 .WillOnce(Return(GL_NO_ERROR)) |
| 3645 .WillOnce(Return(GL_NO_ERROR)) | 3658 .WillOnce(Return(GL_NO_ERROR)) |
| 3646 .WillOnce(Return(GL_NO_ERROR)) | 3659 .WillOnce(Return(GL_NO_ERROR)) |
| 3647 .RetiresOnSaturation(); | 3660 .RetiresOnSaturation(); |
| 3648 typedef GetIntegerv::Result Result; | 3661 typedef GetIntegerv::Result Result; |
| 3649 Result* result = static_cast<Result*>(shared_memory_address_); | 3662 Result* result = static_cast<Result*>(shared_memory_address_); |
| 3650 result->size = 0; | 3663 result->size = 0; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 3673 } | 3686 } |
| 3674 | 3687 |
| 3675 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferDepth) { | 3688 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferDepth) { |
| 3676 InitDecoder( | 3689 InitDecoder( |
| 3677 "GL_OES_packed_depth_stencil", // extensions | 3690 "GL_OES_packed_depth_stencil", // extensions |
| 3678 false, // has alpha | 3691 false, // has alpha |
| 3679 false, // has depth | 3692 false, // has depth |
| 3680 false, // has stencil | 3693 false, // has stencil |
| 3681 false, // request alpha | 3694 false, // request alpha |
| 3682 false, // request depth | 3695 false, // request depth |
| 3683 false); // request stencil | 3696 false, // request stencil |
| 3697 true); // bind generates resource |
| 3684 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, | 3698 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, |
| 3685 kServiceRenderbufferId); | 3699 kServiceRenderbufferId); |
| 3686 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, | 3700 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
| 3687 kServiceFramebufferId); | 3701 kServiceFramebufferId); |
| 3688 | 3702 |
| 3689 EXPECT_CALL(*gl_, GetError()) | 3703 EXPECT_CALL(*gl_, GetError()) |
| 3690 .WillOnce(Return(GL_NO_ERROR)) // for RenderbufferStoage | 3704 .WillOnce(Return(GL_NO_ERROR)) // for RenderbufferStoage |
| 3691 .WillOnce(Return(GL_NO_ERROR)) | 3705 .WillOnce(Return(GL_NO_ERROR)) |
| 3692 .WillOnce(Return(GL_NO_ERROR)) // for FramebufferRenderbuffer | 3706 .WillOnce(Return(GL_NO_ERROR)) // for FramebufferRenderbuffer |
| 3693 .WillOnce(Return(GL_NO_ERROR)) | 3707 .WillOnce(Return(GL_NO_ERROR)) |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3749 } | 3763 } |
| 3750 | 3764 |
| 3751 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferStencil) { | 3765 TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferStencil) { |
| 3752 InitDecoder( | 3766 InitDecoder( |
| 3753 "GL_OES_packed_depth_stencil", // extensions | 3767 "GL_OES_packed_depth_stencil", // extensions |
| 3754 false, // has alpha | 3768 false, // has alpha |
| 3755 false, // has depth | 3769 false, // has depth |
| 3756 false, // has stencil | 3770 false, // has stencil |
| 3757 false, // request alpha | 3771 false, // request alpha |
| 3758 false, // request depth | 3772 false, // request depth |
| 3759 false); // request stencil | 3773 false, // request stencil |
| 3774 true); // bind generates resource |
| 3760 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, | 3775 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, |
| 3761 kServiceRenderbufferId); | 3776 kServiceRenderbufferId); |
| 3762 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, | 3777 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
| 3763 kServiceFramebufferId); | 3778 kServiceFramebufferId); |
| 3764 | 3779 |
| 3765 EXPECT_CALL(*gl_, GetError()) | 3780 EXPECT_CALL(*gl_, GetError()) |
| 3766 .WillOnce(Return(GL_NO_ERROR)) // for RenderbufferStoage | 3781 .WillOnce(Return(GL_NO_ERROR)) // for RenderbufferStoage |
| 3767 .WillOnce(Return(GL_NO_ERROR)) | 3782 .WillOnce(Return(GL_NO_ERROR)) |
| 3768 .WillOnce(Return(GL_NO_ERROR)) // for FramebufferRenderbuffer | 3783 .WillOnce(Return(GL_NO_ERROR)) // for FramebufferRenderbuffer |
| 3769 .WillOnce(Return(GL_NO_ERROR)) | 3784 .WillOnce(Return(GL_NO_ERROR)) |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4100 } | 4115 } |
| 4101 | 4116 |
| 4102 TEST_F(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleGLError) { | 4117 TEST_F(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleGLError) { |
| 4103 InitDecoder( | 4118 InitDecoder( |
| 4104 "GL_EXT_framebuffer_multisample", // extensions | 4119 "GL_EXT_framebuffer_multisample", // extensions |
| 4105 false, // has alpha | 4120 false, // has alpha |
| 4106 false, // has depth | 4121 false, // has depth |
| 4107 false, // has stencil | 4122 false, // has stencil |
| 4108 false, // request alpha | 4123 false, // request alpha |
| 4109 false, // request depth | 4124 false, // request depth |
| 4110 false); // request stencil | 4125 false, // request stencil |
| 4126 true); // bind generates resource |
| 4111 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, | 4127 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, |
| 4112 kServiceRenderbufferId); | 4128 kServiceRenderbufferId); |
| 4113 EXPECT_CALL(*gl_, GetError()) | 4129 EXPECT_CALL(*gl_, GetError()) |
| 4114 .WillOnce(Return(GL_NO_ERROR)) | 4130 .WillOnce(Return(GL_NO_ERROR)) |
| 4115 .WillOnce(Return(GL_OUT_OF_MEMORY)) | 4131 .WillOnce(Return(GL_OUT_OF_MEMORY)) |
| 4116 .RetiresOnSaturation(); | 4132 .RetiresOnSaturation(); |
| 4117 EXPECT_CALL(*gl_, RenderbufferStorageMultisampleEXT( | 4133 EXPECT_CALL(*gl_, RenderbufferStorageMultisampleEXT( |
| 4118 GL_RENDERBUFFER, 1, GL_RGBA, 100, 50)) | 4134 GL_RENDERBUFFER, 1, GL_RGBA, 100, 50)) |
| 4119 .Times(1) | 4135 .Times(1) |
| 4120 .RetiresOnSaturation(); | 4136 .RetiresOnSaturation(); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4162 } | 4178 } |
| 4163 | 4179 |
| 4164 TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormats) { | 4180 TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormats) { |
| 4165 InitDecoder( | 4181 InitDecoder( |
| 4166 "GL_EXT_texture_compression_s3tc", // extensions | 4182 "GL_EXT_texture_compression_s3tc", // extensions |
| 4167 false, // has alpha | 4183 false, // has alpha |
| 4168 false, // has depth | 4184 false, // has depth |
| 4169 false, // has stencil | 4185 false, // has stencil |
| 4170 false, // request alpha | 4186 false, // request alpha |
| 4171 false, // request depth | 4187 false, // request depth |
| 4172 false); // request stencil | 4188 false, // request stencil |
| 4189 true); // bind generates resource |
| 4173 | 4190 |
| 4174 EXPECT_CALL(*gl_, GetError()) | 4191 EXPECT_CALL(*gl_, GetError()) |
| 4175 .WillOnce(Return(GL_NO_ERROR)) | 4192 .WillOnce(Return(GL_NO_ERROR)) |
| 4176 .WillOnce(Return(GL_NO_ERROR)) | 4193 .WillOnce(Return(GL_NO_ERROR)) |
| 4177 .WillOnce(Return(GL_NO_ERROR)) | 4194 .WillOnce(Return(GL_NO_ERROR)) |
| 4178 .WillOnce(Return(GL_NO_ERROR)) | 4195 .WillOnce(Return(GL_NO_ERROR)) |
| 4179 .RetiresOnSaturation(); | 4196 .RetiresOnSaturation(); |
| 4180 | 4197 |
| 4181 typedef GetIntegerv::Result Result; | 4198 typedef GetIntegerv::Result Result; |
| 4182 Result* result = static_cast<Result*>(shared_memory_address_); | 4199 Result* result = static_cast<Result*>(shared_memory_address_); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4218 } | 4235 } |
| 4219 | 4236 |
| 4220 TEST_F(GLES2DecoderManualInitTest, GetNoCompressedTextureFormats) { | 4237 TEST_F(GLES2DecoderManualInitTest, GetNoCompressedTextureFormats) { |
| 4221 InitDecoder( | 4238 InitDecoder( |
| 4222 "", // extensions | 4239 "", // extensions |
| 4223 false, // has alpha | 4240 false, // has alpha |
| 4224 false, // has depth | 4241 false, // has depth |
| 4225 false, // has stencil | 4242 false, // has stencil |
| 4226 false, // request alpha | 4243 false, // request alpha |
| 4227 false, // request depth | 4244 false, // request depth |
| 4228 false); // request stencil | 4245 false, // request stencil |
| 4246 true); // bind generates resource |
| 4229 | 4247 |
| 4230 EXPECT_CALL(*gl_, GetError()) | 4248 EXPECT_CALL(*gl_, GetError()) |
| 4231 .WillOnce(Return(GL_NO_ERROR)) | 4249 .WillOnce(Return(GL_NO_ERROR)) |
| 4232 .WillOnce(Return(GL_NO_ERROR)) | 4250 .WillOnce(Return(GL_NO_ERROR)) |
| 4233 .WillOnce(Return(GL_NO_ERROR)) | 4251 .WillOnce(Return(GL_NO_ERROR)) |
| 4234 .WillOnce(Return(GL_NO_ERROR)) | 4252 .WillOnce(Return(GL_NO_ERROR)) |
| 4235 .RetiresOnSaturation(); | 4253 .RetiresOnSaturation(); |
| 4236 | 4254 |
| 4237 typedef GetIntegerv::Result Result; | 4255 typedef GetIntegerv::Result Result; |
| 4238 Result* result = static_cast<Result*>(shared_memory_address_); | 4256 Result* result = static_cast<Result*>(shared_memory_address_); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4289 } | 4307 } |
| 4290 | 4308 |
| 4291 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalBindTexture) { | 4309 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalBindTexture) { |
| 4292 InitDecoder( | 4310 InitDecoder( |
| 4293 "GL_OES_EGL_image_external", // extensions | 4311 "GL_OES_EGL_image_external", // extensions |
| 4294 false, // has alpha | 4312 false, // has alpha |
| 4295 false, // has depth | 4313 false, // has depth |
| 4296 false, // has stencil | 4314 false, // has stencil |
| 4297 false, // request alpha | 4315 false, // request alpha |
| 4298 false, // request depth | 4316 false, // request depth |
| 4299 false); // request stencil | 4317 false, // request stencil |
| 4318 true); // bind generates resource |
| 4300 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_EXTERNAL_OES, kNewServiceId)); | 4319 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_EXTERNAL_OES, kNewServiceId)); |
| 4301 EXPECT_CALL(*gl_, GenTextures(1, _)) | 4320 EXPECT_CALL(*gl_, GenTextures(1, _)) |
| 4302 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 4321 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
| 4303 BindTexture cmd; | 4322 BindTexture cmd; |
| 4304 cmd.Init(GL_TEXTURE_EXTERNAL_OES, kNewClientId); | 4323 cmd.Init(GL_TEXTURE_EXTERNAL_OES, kNewClientId); |
| 4305 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4324 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4306 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4325 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4307 TextureManager::TextureInfo* info = GetTextureInfo(kNewClientId); | 4326 TextureManager::TextureInfo* info = GetTextureInfo(kNewClientId); |
| 4308 EXPECT_TRUE(info != NULL); | 4327 EXPECT_TRUE(info != NULL); |
| 4309 EXPECT_TRUE(info->target() == GL_TEXTURE_EXTERNAL_OES); | 4328 EXPECT_TRUE(info->target() == GL_TEXTURE_EXTERNAL_OES); |
| 4310 } | 4329 } |
| 4311 | 4330 |
| 4312 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalGetBinding) { | 4331 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalGetBinding) { |
| 4313 InitDecoder( | 4332 InitDecoder( |
| 4314 "GL_OES_EGL_image_external", // extensions | 4333 "GL_OES_EGL_image_external", // extensions |
| 4315 false, // has alpha | 4334 false, // has alpha |
| 4316 false, // has depth | 4335 false, // has depth |
| 4317 false, // has stencil | 4336 false, // has stencil |
| 4318 false, // request alpha | 4337 false, // request alpha |
| 4319 false, // request depth | 4338 false, // request depth |
| 4320 false); // request stencil | 4339 false, // request stencil |
| 4340 true); // bind generates resource |
| 4321 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); | 4341 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
| 4322 | 4342 |
| 4323 EXPECT_CALL(*gl_, GetError()) | 4343 EXPECT_CALL(*gl_, GetError()) |
| 4324 .WillOnce(Return(GL_NO_ERROR)) | 4344 .WillOnce(Return(GL_NO_ERROR)) |
| 4325 .WillOnce(Return(GL_NO_ERROR)) | 4345 .WillOnce(Return(GL_NO_ERROR)) |
| 4326 .RetiresOnSaturation(); | 4346 .RetiresOnSaturation(); |
| 4327 typedef GetIntegerv::Result Result; | 4347 typedef GetIntegerv::Result Result; |
| 4328 Result* result = static_cast<Result*>(shared_memory_address_); | 4348 Result* result = static_cast<Result*>(shared_memory_address_); |
| 4329 EXPECT_CALL(*gl_, GetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, | 4349 EXPECT_CALL(*gl_, GetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, |
| 4330 result->GetData())) | 4350 result->GetData())) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 4342 } | 4362 } |
| 4343 | 4363 |
| 4344 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureDefaults) { | 4364 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureDefaults) { |
| 4345 InitDecoder( | 4365 InitDecoder( |
| 4346 "GL_OES_EGL_image_external", // extensions | 4366 "GL_OES_EGL_image_external", // extensions |
| 4347 false, // has alpha | 4367 false, // has alpha |
| 4348 false, // has depth | 4368 false, // has depth |
| 4349 false, // has stencil | 4369 false, // has stencil |
| 4350 false, // request alpha | 4370 false, // request alpha |
| 4351 false, // request depth | 4371 false, // request depth |
| 4352 false); // request stencil | 4372 false, // request stencil |
| 4373 true); // bind generates resource |
| 4353 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); | 4374 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
| 4354 | 4375 |
| 4355 TextureManager::TextureInfo* info = GetTextureInfo(client_texture_id_); | 4376 TextureManager::TextureInfo* info = GetTextureInfo(client_texture_id_); |
| 4356 EXPECT_TRUE(info != NULL); | 4377 EXPECT_TRUE(info != NULL); |
| 4357 EXPECT_TRUE(info->target() == GL_TEXTURE_EXTERNAL_OES); | 4378 EXPECT_TRUE(info->target() == GL_TEXTURE_EXTERNAL_OES); |
| 4358 EXPECT_TRUE(info->min_filter() == GL_LINEAR); | 4379 EXPECT_TRUE(info->min_filter() == GL_LINEAR); |
| 4359 EXPECT_TRUE(info->wrap_s() == GL_CLAMP_TO_EDGE); | 4380 EXPECT_TRUE(info->wrap_s() == GL_CLAMP_TO_EDGE); |
| 4360 EXPECT_TRUE(info->wrap_t() == GL_CLAMP_TO_EDGE); | 4381 EXPECT_TRUE(info->wrap_t() == GL_CLAMP_TO_EDGE); |
| 4361 } | 4382 } |
| 4362 | 4383 |
| 4363 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureParam) { | 4384 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureParam) { |
| 4364 InitDecoder( | 4385 InitDecoder( |
| 4365 "GL_OES_EGL_image_external", // extensions | 4386 "GL_OES_EGL_image_external", // extensions |
| 4366 false, // has alpha | 4387 false, // has alpha |
| 4367 false, // has depth | 4388 false, // has depth |
| 4368 false, // has stencil | 4389 false, // has stencil |
| 4369 false, // request alpha | 4390 false, // request alpha |
| 4370 false, // request depth | 4391 false, // request depth |
| 4371 false); // request stencil | 4392 false, // request stencil |
| 4393 true); // bind generates resource |
| 4372 | 4394 |
| 4373 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); | 4395 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
| 4374 | 4396 |
| 4375 EXPECT_CALL(*gl_, TexParameteri(GL_TEXTURE_EXTERNAL_OES, | 4397 EXPECT_CALL(*gl_, TexParameteri(GL_TEXTURE_EXTERNAL_OES, |
| 4376 GL_TEXTURE_MIN_FILTER, | 4398 GL_TEXTURE_MIN_FILTER, |
| 4377 GL_NEAREST)); | 4399 GL_NEAREST)); |
| 4378 EXPECT_CALL(*gl_, TexParameteri(GL_TEXTURE_EXTERNAL_OES, | 4400 EXPECT_CALL(*gl_, TexParameteri(GL_TEXTURE_EXTERNAL_OES, |
| 4379 GL_TEXTURE_MIN_FILTER, | 4401 GL_TEXTURE_MIN_FILTER, |
| 4380 GL_LINEAR)); | 4402 GL_LINEAR)); |
| 4381 EXPECT_CALL(*gl_, TexParameteri(GL_TEXTURE_EXTERNAL_OES, | 4403 EXPECT_CALL(*gl_, TexParameteri(GL_TEXTURE_EXTERNAL_OES, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4418 } | 4440 } |
| 4419 | 4441 |
| 4420 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureParamInvalid) { | 4442 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureParamInvalid) { |
| 4421 InitDecoder( | 4443 InitDecoder( |
| 4422 "GL_OES_EGL_image_external", // extensions | 4444 "GL_OES_EGL_image_external", // extensions |
| 4423 false, // has alpha | 4445 false, // has alpha |
| 4424 false, // has depth | 4446 false, // has depth |
| 4425 false, // has stencil | 4447 false, // has stencil |
| 4426 false, // request alpha | 4448 false, // request alpha |
| 4427 false, // request depth | 4449 false, // request depth |
| 4428 false); // request stencil | 4450 false, // request stencil |
| 4451 true); // bind generates resource |
| 4429 | 4452 |
| 4430 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); | 4453 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
| 4431 | 4454 |
| 4432 TexParameteri cmd; | 4455 TexParameteri cmd; |
| 4433 cmd.Init(GL_TEXTURE_EXTERNAL_OES, | 4456 cmd.Init(GL_TEXTURE_EXTERNAL_OES, |
| 4434 GL_TEXTURE_MIN_FILTER, | 4457 GL_TEXTURE_MIN_FILTER, |
| 4435 GL_NEAREST_MIPMAP_NEAREST); | 4458 GL_NEAREST_MIPMAP_NEAREST); |
| 4436 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4459 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4437 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); | 4460 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); |
| 4438 | 4461 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 4457 } | 4480 } |
| 4458 | 4481 |
| 4459 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTexImage2DError) { | 4482 TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTexImage2DError) { |
| 4460 InitDecoder( | 4483 InitDecoder( |
| 4461 "GL_OES_EGL_image_external", // extensions | 4484 "GL_OES_EGL_image_external", // extensions |
| 4462 false, // has alpha | 4485 false, // has alpha |
| 4463 false, // has depth | 4486 false, // has depth |
| 4464 false, // has stencil | 4487 false, // has stencil |
| 4465 false, // request alpha | 4488 false, // request alpha |
| 4466 false, // request depth | 4489 false, // request depth |
| 4467 false); // request stencil | 4490 false, // request stencil |
| 4491 true); // bind generates resource |
| 4468 | 4492 |
| 4469 GLenum target = GL_TEXTURE_EXTERNAL_OES; | 4493 GLenum target = GL_TEXTURE_EXTERNAL_OES; |
| 4470 GLint level = 0; | 4494 GLint level = 0; |
| 4471 GLenum internal_format = GL_RGBA; | 4495 GLenum internal_format = GL_RGBA; |
| 4472 GLsizei width = 2; | 4496 GLsizei width = 2; |
| 4473 GLsizei height = 4; | 4497 GLsizei height = 4; |
| 4474 GLint border = 0; | 4498 GLint border = 0; |
| 4475 GLenum format = GL_RGBA; | 4499 GLenum format = GL_RGBA; |
| 4476 GLenum type = GL_UNSIGNED_BYTE; | 4500 GLenum type = GL_UNSIGNED_BYTE; |
| 4477 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); | 4501 DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
| 4478 ASSERT_TRUE(GetTextureInfo(client_texture_id_) != NULL); | 4502 ASSERT_TRUE(GetTextureInfo(client_texture_id_) != NULL); |
| 4479 TexImage2D cmd; | 4503 TexImage2D cmd; |
| 4480 cmd.Init(target, level, internal_format, width, height, border, format, | 4504 cmd.Init(target, level, internal_format, width, height, border, format, |
| 4481 type, kSharedMemoryId, kSharedMemoryOffset); | 4505 type, kSharedMemoryId, kSharedMemoryOffset); |
| 4482 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4506 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4483 | 4507 |
| 4484 // TexImage2D is not allowed with GL_TEXTURE_EXTERNAL_OES targets. | 4508 // TexImage2D is not allowed with GL_TEXTURE_EXTERNAL_OES targets. |
| 4485 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); | 4509 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); |
| 4486 } | 4510 } |
| 4487 | 4511 |
| 4512 TEST_F(GLES2DecoderManualInitTest, BindGeneratesResourceFalse) { |
| 4513 InitDecoder( |
| 4514 "", // extensions |
| 4515 false, // has alpha |
| 4516 false, // has depth |
| 4517 false, // has stencil |
| 4518 false, // request alpha |
| 4519 false, // request depth |
| 4520 false, // request stencil |
| 4521 false); // bind generates resource |
| 4522 |
| 4523 BindTexture cmd1; |
| 4524 cmd1.Init(GL_TEXTURE_2D, kInvalidClientId); |
| 4525 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); |
| 4526 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 4527 |
| 4528 BindBuffer cmd2; |
| 4529 cmd2.Init(GL_ARRAY_BUFFER, kInvalidClientId); |
| 4530 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 4531 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 4532 |
| 4533 BindFramebuffer cmd3; |
| 4534 cmd3.Init(GL_FRAMEBUFFER, kInvalidClientId); |
| 4535 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3)); |
| 4536 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 4537 |
| 4538 BindRenderbuffer cmd4; |
| 4539 cmd4.Init(GL_RENDERBUFFER, kInvalidClientId); |
| 4540 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd4)); |
| 4541 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 4542 } |
| 4543 |
| 4488 // TODO(gman): Complete this test. | 4544 // TODO(gman): Complete this test. |
| 4489 // TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) { | 4545 // TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) { |
| 4490 // } | 4546 // } |
| 4491 | 4547 |
| 4492 // TODO(gman): BufferData | 4548 // TODO(gman): BufferData |
| 4493 | 4549 |
| 4494 // TODO(gman): BufferDataImmediate | 4550 // TODO(gman): BufferDataImmediate |
| 4495 | 4551 |
| 4496 // TODO(gman): BufferSubData | 4552 // TODO(gman): BufferSubData |
| 4497 | 4553 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 4514 // TODO(gman): TexImage2DImmediate | 4570 // TODO(gman): TexImage2DImmediate |
| 4515 | 4571 |
| 4516 // TODO(gman): TexSubImage2DImmediate | 4572 // TODO(gman): TexSubImage2DImmediate |
| 4517 | 4573 |
| 4518 // TODO(gman): UseProgram | 4574 // TODO(gman): UseProgram |
| 4519 | 4575 |
| 4520 // TODO(gman): SwapBuffers | 4576 // TODO(gman): SwapBuffers |
| 4521 | 4577 |
| 4522 } // namespace gles2 | 4578 } // namespace gles2 |
| 4523 } // namespace gpu | 4579 } // namespace gpu |
| OLD | NEW |