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 |