Chromium Code Reviews| 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/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/service/error_state_mock.h" | 8 #include "gpu/command_buffer/service/error_state_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/framebuffer_manager.h" | 10 #include "gpu/command_buffer/service/framebuffer_manager.h" |
| (...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 462 TEST_F(TextureTest, SetTargetTextureExternalOES) { | 462 TEST_F(TextureTest, SetTargetTextureExternalOES) { |
| 463 Texture* texture = texture_ref_->texture(); | 463 Texture* texture = texture_ref_->texture(); |
| 464 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); | 464 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); |
| 465 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 465 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 466 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 466 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 467 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 467 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 468 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); | 468 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); |
| 469 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 469 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
| 470 EXPECT_TRUE(texture->SafeToRenderFrom()); | 470 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 471 EXPECT_TRUE(texture->IsImmutable()); | 471 EXPECT_TRUE(texture->IsImmutable()); |
| 472 manager_->SetStreamTexture(texture_ref_.get(), true); | 472 manager_->SetLevelInfo(texture_ref_.get(), |
| 473 GL_TEXTURE_EXTERNAL_OES, | |
| 474 0, | |
| 475 GL_RGBA, | |
| 476 0, | |
| 477 0, | |
| 478 1, | |
| 479 0, | |
| 480 GL_RGBA, | |
| 481 GL_UNSIGNED_BYTE, | |
| 482 true); | |
| 483 manager_->SetLevelImage(texture_ref_.get(), | |
| 484 GL_TEXTURE_EXTERNAL_OES, | |
| 485 0, | |
| 486 gfx::GLImage::CreateGLImage(0).get()); | |
| 473 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 487 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
| 488 EXPECT_TRUE(texture->IsImmutable()); | |
| 474 } | 489 } |
| 475 | 490 |
| 476 TEST_F(TextureTest, ZeroSizeCanNotRender) { | 491 TEST_F(TextureTest, ZeroSizeCanNotRender) { |
| 477 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 492 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 478 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 493 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
| 479 manager_->SetLevelInfo(texture_ref_.get(), | 494 manager_->SetLevelInfo(texture_ref_.get(), |
| 480 GL_TEXTURE_2D, | 495 GL_TEXTURE_2D, |
| 481 0, | 496 0, |
| 482 GL_RGBA, | 497 GL_RGBA, |
| 483 1, | 498 1, |
| (...skipping 1511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1995 | 2010 |
| 1996 // See if we can clear the previously uncleared level now. | 2011 // See if we can clear the previously uncleared level now. |
| 1997 EXPECT_EQ(level0, | 2012 EXPECT_EQ(level0, |
| 1998 GetLevelInfo(restored_texture.get(), GL_TEXTURE_RECTANGLE_ARB, 0)); | 2013 GetLevelInfo(restored_texture.get(), GL_TEXTURE_RECTANGLE_ARB, 0)); |
| 1999 EXPECT_CALL(*decoder_, ClearLevel(_, _, _, _, _, _, _, _, _)) | 2014 EXPECT_CALL(*decoder_, ClearLevel(_, _, _, _, _, _, _, _, _)) |
| 2000 .WillRepeatedly(Return(true)); | 2015 .WillRepeatedly(Return(true)); |
| 2001 EXPECT_TRUE(manager_->ClearTextureLevel( | 2016 EXPECT_TRUE(manager_->ClearTextureLevel( |
| 2002 decoder_.get(), restored_texture.get(), GL_TEXTURE_RECTANGLE_ARB, 0)); | 2017 decoder_.get(), restored_texture.get(), GL_TEXTURE_RECTANGLE_ARB, 0)); |
| 2003 } | 2018 } |
| 2004 | 2019 |
| 2005 TEST_F(ProduceConsumeTextureTest, ProduceConsumeStreamTexture) { | |
| 2006 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); | |
| 2007 Texture* texture = texture_ref_->texture(); | |
| 2008 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_EXTERNAL_OES), texture->target()); | |
| 2009 manager_->SetStreamTexture(texture_ref_.get(), true); | |
| 2010 GLuint service_id = texture->service_id(); | |
| 2011 Texture* produced_texture = Produce(texture_ref_.get()); | |
| 2012 EXPECT_TRUE(texture->IsStreamTexture()); | |
| 2013 | |
| 2014 GLuint client_id = texture2_->client_id(); | |
| 2015 manager_->RemoveTexture(client_id); | |
| 2016 Consume(client_id, produced_texture); | |
| 2017 scoped_refptr<TextureRef> restored_texture = manager_->GetTexture(client_id); | |
| 2018 EXPECT_EQ(produced_texture, restored_texture->texture()); | |
| 2019 EXPECT_TRUE(restored_texture->texture()->IsStreamTexture()); | |
| 2020 EXPECT_TRUE(restored_texture->texture()->IsImmutable()); | |
| 2021 EXPECT_EQ(service_id, restored_texture->service_id()); | |
| 2022 } | |
|
piman
2013/08/12 23:22:07
We should keep a test that we can Produce/Consume
no sievers
2013/08/13 00:21:35
Done.
| |
| 2023 | |
| 2024 TEST_F(ProduceConsumeTextureTest, ProduceConsumeCube) { | 2020 TEST_F(ProduceConsumeTextureTest, ProduceConsumeCube) { |
| 2025 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); | 2021 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); |
| 2026 Texture* texture = texture_ref_->texture(); | 2022 Texture* texture = texture_ref_->texture(); |
| 2027 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); | 2023 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); |
| 2028 LevelInfo face0(GL_TEXTURE_CUBE_MAP_POSITIVE_X, | 2024 LevelInfo face0(GL_TEXTURE_CUBE_MAP_POSITIVE_X, |
| 2029 GL_RGBA, | 2025 GL_RGBA, |
| 2030 1, | 2026 1, |
| 2031 1, | 2027 1, |
| 2032 1, | 2028 1, |
| 2033 0, | 2029 0, |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2344 .Times(1) | 2340 .Times(1) |
| 2345 .RetiresOnSaturation(); | 2341 .RetiresOnSaturation(); |
| 2346 ref2 = NULL; | 2342 ref2 = NULL; |
| 2347 texture_manager2_->RemoveTexture(20); | 2343 texture_manager2_->RemoveTexture(20); |
| 2348 EXPECT_EQ(initial_memory2, | 2344 EXPECT_EQ(initial_memory2, |
| 2349 memory_tracker2_->GetSize(MemoryTracker::kUnmanaged)); | 2345 memory_tracker2_->GetSize(MemoryTracker::kUnmanaged)); |
| 2350 } | 2346 } |
| 2351 | 2347 |
| 2352 } // namespace gles2 | 2348 } // namespace gles2 |
| 2353 } // namespace gpu | 2349 } // namespace gpu |
| OLD | NEW |