| 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/texture_manager.h" | 5 #include "gpu/command_buffer/service/texture_manager.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "gpu/command_buffer/common/gl_mock.h" | 8 #include "gpu/command_buffer/common/gl_mock.h" |
| 9 #include "gpu/command_buffer/service/feature_info.h" | 9 #include "gpu/command_buffer/service/feature_info.h" |
| 10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" | 10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 &feature_info_, info, GL_TEXTURE_MAG_FILTER, GL_CLAMP_TO_EDGE)); | 117 &feature_info_, info, GL_TEXTURE_MAG_FILTER, GL_CLAMP_TO_EDGE)); |
| 118 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST), info->min_filter()); | 118 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST), info->min_filter()); |
| 119 EXPECT_FALSE(manager_.SetParameter( | 119 EXPECT_FALSE(manager_.SetParameter( |
| 120 &feature_info_, info, GL_TEXTURE_WRAP_S, GL_NEAREST)); | 120 &feature_info_, info, GL_TEXTURE_WRAP_S, GL_NEAREST)); |
| 121 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_s()); | 121 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_s()); |
| 122 EXPECT_FALSE(manager_.SetParameter( | 122 EXPECT_FALSE(manager_.SetParameter( |
| 123 &feature_info_, info, GL_TEXTURE_WRAP_T, GL_NEAREST)); | 123 &feature_info_, info, GL_TEXTURE_WRAP_T, GL_NEAREST)); |
| 124 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_t()); | 124 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_t()); |
| 125 } | 125 } |
| 126 | 126 |
| 127 TEST_F(TextureManagerTest, TextureUsageExt) { |
| 128 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), |
| 129 "GL_ANGLE_texture_usage"); |
| 130 manager_.Initialize(&feature_info_); |
| 131 const GLuint kClient1Id = 1; |
| 132 const GLuint kService1Id = 11; |
| 133 // Check we can create texture. |
| 134 manager_.CreateTextureInfo(&feature_info_, kClient1Id, kService1Id); |
| 135 // Check texture got created. |
| 136 TextureManager::TextureInfo* info = manager_.GetTextureInfo(kClient1Id); |
| 137 ASSERT_TRUE(info != NULL); |
| 138 EXPECT_TRUE(manager_.SetParameter( |
| 139 &feature_info_, info, GL_TEXTURE_USAGE_ANGLE, |
| 140 GL_FRAMEBUFFER_ATTACHMENT_ANGLE)); |
| 141 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE), |
| 142 info->usage()); |
| 143 } |
| 144 |
| 127 TEST_F(TextureManagerTest, Destroy) { | 145 TEST_F(TextureManagerTest, Destroy) { |
| 128 const GLuint kClient1Id = 1; | 146 const GLuint kClient1Id = 1; |
| 129 const GLuint kService1Id = 11; | 147 const GLuint kService1Id = 11; |
| 130 // Check we can create texture. | 148 // Check we can create texture. |
| 131 manager_.CreateTextureInfo(&feature_info_, kClient1Id, kService1Id); | 149 manager_.CreateTextureInfo(&feature_info_, kClient1Id, kService1Id); |
| 132 // Check texture got created. | 150 // Check texture got created. |
| 133 TextureManager::TextureInfo* info1 = manager_.GetTextureInfo(kClient1Id); | 151 TextureManager::TextureInfo* info1 = manager_.GetTextureInfo(kClient1Id); |
| 134 ASSERT_TRUE(info1 != NULL); | 152 ASSERT_TRUE(info1 != NULL); |
| 135 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) | 153 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) |
| 136 .Times(1) | 154 .Times(1) |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 | 334 |
| 317 TEST_F(TextureInfoTest, Basic) { | 335 TEST_F(TextureInfoTest, Basic) { |
| 318 EXPECT_EQ(0u, info_->target()); | 336 EXPECT_EQ(0u, info_->target()); |
| 319 EXPECT_FALSE(info_->texture_complete()); | 337 EXPECT_FALSE(info_->texture_complete()); |
| 320 EXPECT_FALSE(info_->cube_complete()); | 338 EXPECT_FALSE(info_->cube_complete()); |
| 321 EXPECT_FALSE(info_->CanGenerateMipmaps(&feature_info_)); | 339 EXPECT_FALSE(info_->CanGenerateMipmaps(&feature_info_)); |
| 322 EXPECT_FALSE(info_->npot()); | 340 EXPECT_FALSE(info_->npot()); |
| 323 EXPECT_EQ(0, info_->num_uncleared_mips()); | 341 EXPECT_EQ(0, info_->num_uncleared_mips()); |
| 324 EXPECT_FALSE(info_->CanRender(&feature_info_)); | 342 EXPECT_FALSE(info_->CanRender(&feature_info_)); |
| 325 EXPECT_TRUE(info_->SafeToRenderFrom()); | 343 EXPECT_TRUE(info_->SafeToRenderFrom()); |
| 344 EXPECT_FALSE(info_->IsImmutable()); |
| 326 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), info_->min_filter()); | 345 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), info_->min_filter()); |
| 327 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), info_->mag_filter()); | 346 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), info_->mag_filter()); |
| 328 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_s()); | 347 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_s()); |
| 329 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_t()); | 348 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_t()); |
| 330 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 349 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |
| 331 EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 350 EXPECT_FALSE(manager_.HaveUnsafeTextures()); |
| 332 } | 351 } |
| 333 | 352 |
| 334 TEST_F(TextureInfoTest, POT2D) { | 353 TEST_F(TextureInfoTest, POT2D) { |
| 335 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 354 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 347 &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | 366 &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
| 348 EXPECT_TRUE(info_->CanRender(&feature_info_)); | 367 EXPECT_TRUE(info_->CanRender(&feature_info_)); |
| 349 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 368 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |
| 350 // Set them back. | 369 // Set them back. |
| 351 manager_.SetParameter( | 370 manager_.SetParameter( |
| 352 &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); | 371 &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); |
| 353 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 372 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |
| 354 | 373 |
| 355 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 374 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |
| 356 // Make mips. | 375 // Make mips. |
| 357 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); | 376 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); |
| 358 EXPECT_TRUE(info_->texture_complete()); | 377 EXPECT_TRUE(info_->texture_complete()); |
| 359 EXPECT_TRUE(info_->CanRender(&feature_info_)); | 378 EXPECT_TRUE(info_->CanRender(&feature_info_)); |
| 360 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 379 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |
| 361 // Change a mip. | 380 // Change a mip. |
| 362 manager_.SetLevelInfo(&feature_info_, info_, | 381 manager_.SetLevelInfo(&feature_info_, info_, |
| 363 GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 382 GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 364 EXPECT_FALSE(info_->npot()); | 383 EXPECT_FALSE(info_->npot()); |
| 365 EXPECT_FALSE(info_->texture_complete()); | 384 EXPECT_FALSE(info_->texture_complete()); |
| 366 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 385 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |
| 367 EXPECT_FALSE(info_->CanRender(&feature_info_)); | 386 EXPECT_FALSE(info_->CanRender(&feature_info_)); |
| 368 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 387 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |
| 369 // Set a level past the number of mips that would get generated. | 388 // Set a level past the number of mips that would get generated. |
| 370 manager_.SetLevelInfo(&feature_info_, info_, | 389 manager_.SetLevelInfo(&feature_info_, info_, |
| 371 GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 390 GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 372 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 391 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |
| 373 // Make mips. | 392 // Make mips. |
| 374 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); | 393 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); |
| 375 EXPECT_TRUE(info_->CanRender(&feature_info_)); | 394 EXPECT_TRUE(info_->CanRender(&feature_info_)); |
| 376 EXPECT_TRUE(info_->texture_complete()); | 395 EXPECT_TRUE(info_->texture_complete()); |
| 377 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 396 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |
| 378 } | 397 } |
| 379 | 398 |
| 380 TEST_F(TextureInfoTest, UnusedMips) { | 399 TEST_F(TextureInfoTest, UnusedMips) { |
| 381 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 400 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |
| 382 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info_->target()); | 401 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info_->target()); |
| 383 // Set level zero to large size. | 402 // Set level zero to large size. |
| 384 manager_.SetLevelInfo(&feature_info_, info_, | 403 manager_.SetLevelInfo(&feature_info_, info_, |
| 385 GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 404 GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 386 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); | 405 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); |
| 387 EXPECT_FALSE(info_->npot()); | 406 EXPECT_FALSE(info_->npot()); |
| 388 EXPECT_TRUE(info_->texture_complete()); | 407 EXPECT_TRUE(info_->texture_complete()); |
| 389 EXPECT_TRUE(info_->CanRender(&feature_info_)); | 408 EXPECT_TRUE(info_->CanRender(&feature_info_)); |
| 390 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 409 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |
| 391 // Set level zero to large smaller (levels unused mips) | 410 // Set level zero to large smaller (levels unused mips) |
| 392 manager_.SetLevelInfo(&feature_info_, info_, | 411 manager_.SetLevelInfo(&feature_info_, info_, |
| 393 GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 412 GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 394 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); | 413 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); |
| 395 EXPECT_FALSE(info_->npot()); | 414 EXPECT_FALSE(info_->npot()); |
| 396 EXPECT_TRUE(info_->texture_complete()); | 415 EXPECT_TRUE(info_->texture_complete()); |
| 397 EXPECT_TRUE(info_->CanRender(&feature_info_)); | 416 EXPECT_TRUE(info_->CanRender(&feature_info_)); |
| 398 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 417 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |
| 399 // Set an unused level to some size | 418 // Set an unused level to some size |
| 400 manager_.SetLevelInfo(&feature_info_, info_, | 419 manager_.SetLevelInfo(&feature_info_, info_, |
| 401 GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 420 GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 402 EXPECT_FALSE(info_->npot()); | 421 EXPECT_FALSE(info_->npot()); |
| 403 EXPECT_TRUE(info_->texture_complete()); | 422 EXPECT_TRUE(info_->texture_complete()); |
| 404 EXPECT_TRUE(info_->CanRender(&feature_info_)); | 423 EXPECT_TRUE(info_->CanRender(&feature_info_)); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 manager.SetInfoTarget(&feature_info_, info, GL_TEXTURE_2D); | 469 manager.SetInfoTarget(&feature_info_, info, GL_TEXTURE_2D); |
| 451 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); | 470 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); |
| 452 // Check Setting level 0 to NPOT | 471 // Check Setting level 0 to NPOT |
| 453 manager.SetLevelInfo(&feature_info, info, | 472 manager.SetLevelInfo(&feature_info, info, |
| 454 GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 473 GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 455 EXPECT_TRUE(info->npot()); | 474 EXPECT_TRUE(info->npot()); |
| 456 EXPECT_FALSE(info->texture_complete()); | 475 EXPECT_FALSE(info->texture_complete()); |
| 457 EXPECT_TRUE(info->CanGenerateMipmaps(&feature_info)); | 476 EXPECT_TRUE(info->CanGenerateMipmaps(&feature_info)); |
| 458 EXPECT_FALSE(info->CanRender(&feature_info)); | 477 EXPECT_FALSE(info->CanRender(&feature_info)); |
| 459 EXPECT_TRUE(manager.HaveUnrenderableTextures()); | 478 EXPECT_TRUE(manager.HaveUnrenderableTextures()); |
| 460 EXPECT_TRUE(manager.MarkMipmapsGenerated(&feature_info, info)); | 479 EXPECT_TRUE(manager.MarkMipmapsGenerated(&feature_info, info, true)); |
| 461 EXPECT_TRUE(info->texture_complete()); | 480 EXPECT_TRUE(info->texture_complete()); |
| 462 EXPECT_TRUE(info->CanRender(&feature_info)); | 481 EXPECT_TRUE(info->CanRender(&feature_info)); |
| 463 EXPECT_FALSE(manager.HaveUnrenderableTextures()); | 482 EXPECT_FALSE(manager.HaveUnrenderableTextures()); |
| 464 manager.Destroy(false); | 483 manager.Destroy(false); |
| 465 } | 484 } |
| 466 | 485 |
| 467 TEST_F(TextureInfoTest, POTCubeMap) { | 486 TEST_F(TextureInfoTest, POTCubeMap) { |
| 468 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_CUBE_MAP); | 487 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_CUBE_MAP); |
| 469 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), info_->target()); | 488 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), info_->target()); |
| 470 // Check Setting level 0 each face to POT | 489 // Check Setting level 0 each face to POT |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, | 536 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, |
| 518 0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 537 0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 519 EXPECT_FALSE(info_->npot()); | 538 EXPECT_FALSE(info_->npot()); |
| 520 EXPECT_FALSE(info_->texture_complete()); | 539 EXPECT_FALSE(info_->texture_complete()); |
| 521 EXPECT_TRUE(info_->cube_complete()); | 540 EXPECT_TRUE(info_->cube_complete()); |
| 522 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 541 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |
| 523 EXPECT_FALSE(info_->CanRender(&feature_info_)); | 542 EXPECT_FALSE(info_->CanRender(&feature_info_)); |
| 524 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 543 EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |
| 525 | 544 |
| 526 // Make mips. | 545 // Make mips. |
| 527 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); | 546 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); |
| 528 EXPECT_TRUE(info_->texture_complete()); | 547 EXPECT_TRUE(info_->texture_complete()); |
| 529 EXPECT_TRUE(info_->cube_complete()); | 548 EXPECT_TRUE(info_->cube_complete()); |
| 530 EXPECT_TRUE(info_->CanRender(&feature_info_)); | 549 EXPECT_TRUE(info_->CanRender(&feature_info_)); |
| 531 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 550 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |
| 532 | 551 |
| 533 // Change a mip. | 552 // Change a mip. |
| 534 manager_.SetLevelInfo(&feature_info_, info_, | 553 manager_.SetLevelInfo(&feature_info_, info_, |
| 535 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, | 554 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, |
| 536 1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 555 1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 537 EXPECT_FALSE(info_->npot()); | 556 EXPECT_FALSE(info_->npot()); |
| 538 EXPECT_FALSE(info_->texture_complete()); | 557 EXPECT_FALSE(info_->texture_complete()); |
| 539 EXPECT_TRUE(info_->cube_complete()); | 558 EXPECT_TRUE(info_->cube_complete()); |
| 540 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 559 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |
| 541 // Set a level past the number of mips that would get generated. | 560 // Set a level past the number of mips that would get generated. |
| 542 manager_.SetLevelInfo(&feature_info_, info_, | 561 manager_.SetLevelInfo(&feature_info_, info_, |
| 543 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, | 562 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, |
| 544 3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 563 3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 545 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 564 EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |
| 546 // Make mips. | 565 // Make mips. |
| 547 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); | 566 EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); |
| 548 EXPECT_TRUE(info_->texture_complete()); | 567 EXPECT_TRUE(info_->texture_complete()); |
| 549 EXPECT_TRUE(info_->cube_complete()); | 568 EXPECT_TRUE(info_->cube_complete()); |
| 550 } | 569 } |
| 551 | 570 |
| 552 TEST_F(TextureInfoTest, GetLevelSize) { | 571 TEST_F(TextureInfoTest, GetLevelSize) { |
| 553 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 572 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |
| 554 manager_.SetLevelInfo(&feature_info_, info_, | 573 manager_.SetLevelInfo(&feature_info_, info_, |
| 555 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 574 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
| 556 GLsizei width = -1; | 575 GLsizei width = -1; |
| 557 GLsizei height = -1; | 576 GLsizei height = -1; |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 EXPECT_TRUE(info_->SafeToRenderFrom()); | 790 EXPECT_TRUE(info_->SafeToRenderFrom()); |
| 772 EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 791 EXPECT_FALSE(manager_.HaveUnsafeTextures()); |
| 773 EXPECT_FALSE(manager_.HaveUnclearedMips()); | 792 EXPECT_FALSE(manager_.HaveUnclearedMips()); |
| 774 EXPECT_EQ(0, info_->num_uncleared_mips()); | 793 EXPECT_EQ(0, info_->num_uncleared_mips()); |
| 775 manager_.SetLevelInfo(&feature_info_, info_, | 794 manager_.SetLevelInfo(&feature_info_, info_, |
| 776 GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, false); | 795 GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, false); |
| 777 EXPECT_FALSE(info_->SafeToRenderFrom()); | 796 EXPECT_FALSE(info_->SafeToRenderFrom()); |
| 778 EXPECT_TRUE(manager_.HaveUnsafeTextures()); | 797 EXPECT_TRUE(manager_.HaveUnsafeTextures()); |
| 779 EXPECT_TRUE(manager_.HaveUnclearedMips()); | 798 EXPECT_TRUE(manager_.HaveUnclearedMips()); |
| 780 EXPECT_EQ(1, info_->num_uncleared_mips()); | 799 EXPECT_EQ(1, info_->num_uncleared_mips()); |
| 781 manager_.MarkMipmapsGenerated(&feature_info_, info_); | 800 manager_.MarkMipmapsGenerated(&feature_info_, info_, true); |
| 782 EXPECT_TRUE(info_->SafeToRenderFrom()); | 801 EXPECT_TRUE(info_->SafeToRenderFrom()); |
| 783 EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 802 EXPECT_FALSE(manager_.HaveUnsafeTextures()); |
| 784 EXPECT_FALSE(manager_.HaveUnclearedMips()); | 803 EXPECT_FALSE(manager_.HaveUnclearedMips()); |
| 785 EXPECT_EQ(0, info_->num_uncleared_mips()); | 804 EXPECT_EQ(0, info_->num_uncleared_mips()); |
| 786 | 805 |
| 787 manager_.CreateTextureInfo(&feature_info_, kClient2Id, kService2Id); | 806 manager_.CreateTextureInfo(&feature_info_, kClient2Id, kService2Id); |
| 788 TextureManager::TextureInfo::Ref info2 = manager_.GetTextureInfo(kClient2Id); | 807 TextureManager::TextureInfo::Ref info2 = manager_.GetTextureInfo(kClient2Id); |
| 789 ASSERT_TRUE(info2.get() != NULL); | 808 ASSERT_TRUE(info2.get() != NULL); |
| 790 manager_.SetInfoTarget(&feature_info_, info2, GL_TEXTURE_2D); | 809 manager_.SetInfoTarget(&feature_info_, info2, GL_TEXTURE_2D); |
| 791 EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 810 EXPECT_FALSE(manager_.HaveUnsafeTextures()); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 871 EXPECT_TRUE(info_->SafeToRenderFrom()); | 890 EXPECT_TRUE(info_->SafeToRenderFrom()); |
| 872 EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 891 EXPECT_FALSE(manager_.HaveUnsafeTextures()); |
| 873 EXPECT_FALSE(manager_.HaveUnclearedMips()); | 892 EXPECT_FALSE(manager_.HaveUnclearedMips()); |
| 874 EXPECT_EQ(0, info_->num_uncleared_mips()); | 893 EXPECT_EQ(0, info_->num_uncleared_mips()); |
| 875 } | 894 } |
| 876 | 895 |
| 877 } // namespace gles2 | 896 } // namespace gles2 |
| 878 } // namespace gpu | 897 } // namespace gpu |
| 879 | 898 |
| 880 | 899 |
| OLD | NEW |