Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Side by Side Diff: gpu/command_buffer/service/texture_manager_unittest.cc

Issue 331723003: gpu: Remove Create/DeleteImage IPC by adding an X11_PIXMAP_BUFFER GpuMemoryBuffer type. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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"
11 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" 11 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
12 #include "gpu/command_buffer/service/mailbox_manager.h" 12 #include "gpu/command_buffer/service/mailbox_manager.h"
13 #include "gpu/command_buffer/service/memory_tracking.h" 13 #include "gpu/command_buffer/service/memory_tracking.h"
14 #include "gpu/command_buffer/service/mocks.h" 14 #include "gpu/command_buffer/service/mocks.h"
15 #include "gpu/command_buffer/service/test_helper.h" 15 #include "gpu/command_buffer/service/test_helper.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 #include "ui/gl/gl_image_stub.h"
17 #include "ui/gl/gl_mock.h" 18 #include "ui/gl/gl_mock.h"
18 19
19 using ::testing::AtLeast; 20 using ::testing::AtLeast;
20 using ::testing::Pointee; 21 using ::testing::Pointee;
21 using ::testing::Return; 22 using ::testing::Return;
22 using ::testing::SetArgumentPointee; 23 using ::testing::SetArgumentPointee;
23 using ::testing::StrictMock; 24 using ::testing::StrictMock;
24 using ::testing::_; 25 using ::testing::_;
25 26
26 namespace gpu { 27 namespace gpu {
(...skipping 1607 matching lines...) Expand 10 before | Expand all | Expand 10 after
1634 2, 1635 2,
1635 2, 1636 2,
1636 1, 1637 1,
1637 0, 1638 0,
1638 GL_RGBA, 1639 GL_RGBA,
1639 GL_UNSIGNED_BYTE, 1640 GL_UNSIGNED_BYTE,
1640 true); 1641 true);
1641 Texture* texture = texture_ref_->texture(); 1642 Texture* texture = texture_ref_->texture();
1642 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL); 1643 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL);
1643 // Set image. 1644 // Set image.
1644 manager_->SetLevelImage(texture_ref_.get(), 1645 scoped_refptr<gfx::GLImage> image(new gfx::GLImageStub);
1645 GL_TEXTURE_2D, 1646 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, image.get());
1646 1,
1647 gfx::GLImage::CreateGLImage(0).get());
1648 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL); 1647 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL);
1649 // Remove it. 1648 // Remove it.
1650 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, NULL); 1649 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, NULL);
1651 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL); 1650 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL);
1652 manager_->SetLevelImage(texture_ref_.get(), 1651 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, image.get());
1653 GL_TEXTURE_2D,
1654 1,
1655 gfx::GLImage::CreateGLImage(0).get());
1656 // Image should be reset when SetLevelInfo is called. 1652 // Image should be reset when SetLevelInfo is called.
1657 manager_->SetLevelInfo(texture_ref_.get(), 1653 manager_->SetLevelInfo(texture_ref_.get(),
1658 GL_TEXTURE_2D, 1654 GL_TEXTURE_2D,
1659 1, 1655 1,
1660 GL_RGBA, 1656 GL_RGBA,
1661 2, 1657 2,
1662 2, 1658 2,
1663 1, 1659 1,
1664 0, 1660 0,
1665 GL_RGBA, 1661 GL_RGBA,
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
2093 EXPECT_EQ(produced_texture, restored_texture->texture()); 2089 EXPECT_EQ(produced_texture, restored_texture->texture());
2094 EXPECT_EQ(level0, 2090 EXPECT_EQ(level0,
2095 GetLevelInfo(restored_texture.get(), GL_TEXTURE_EXTERNAL_OES, 0)); 2091 GetLevelInfo(restored_texture.get(), GL_TEXTURE_EXTERNAL_OES, 0));
2096 } 2092 }
2097 2093
2098 TEST_P(ProduceConsumeTextureTest, ProduceConsumeTextureWithImage) { 2094 TEST_P(ProduceConsumeTextureTest, ProduceConsumeTextureWithImage) {
2099 GLenum target = GetParam(); 2095 GLenum target = GetParam();
2100 manager_->SetTarget(texture_ref_.get(), target); 2096 manager_->SetTarget(texture_ref_.get(), target);
2101 Texture* texture = texture_ref_->texture(); 2097 Texture* texture = texture_ref_->texture();
2102 EXPECT_EQ(static_cast<GLenum>(target), texture->target()); 2098 EXPECT_EQ(static_cast<GLenum>(target), texture->target());
2103 scoped_refptr<gfx::GLImage> image(gfx::GLImage::CreateGLImage(0)); 2099 scoped_refptr<gfx::GLImage> image(new gfx::GLImageStub);
2104 manager_->SetLevelInfo(texture_ref_.get(), 2100 manager_->SetLevelInfo(texture_ref_.get(),
2105 target, 2101 target,
2106 0, 2102 0,
2107 GL_RGBA, 2103 GL_RGBA,
2108 0, 2104 0,
2109 0, 2105 0,
2110 1, 2106 1,
2111 0, 2107 0,
2112 GL_RGBA, 2108 GL_RGBA,
2113 GL_UNSIGNED_BYTE, 2109 GL_UNSIGNED_BYTE,
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
2478 2, 2474 2,
2479 1, 2475 1,
2480 0, 2476 0,
2481 GL_RGBA, 2477 GL_RGBA,
2482 GL_UNSIGNED_BYTE, 2478 GL_UNSIGNED_BYTE,
2483 true); 2479 true);
2484 EXPECT_FALSE(ref1->texture()->HasImages()); 2480 EXPECT_FALSE(ref1->texture()->HasImages());
2485 EXPECT_FALSE(ref2->texture()->HasImages()); 2481 EXPECT_FALSE(ref2->texture()->HasImages());
2486 EXPECT_FALSE(texture_manager1_->HaveImages()); 2482 EXPECT_FALSE(texture_manager1_->HaveImages());
2487 EXPECT_FALSE(texture_manager2_->HaveImages()); 2483 EXPECT_FALSE(texture_manager2_->HaveImages());
2488 texture_manager1_->SetLevelImage(ref1.get(), 2484 scoped_refptr<gfx::GLImage> image1(new gfx::GLImageStub);
2489 GL_TEXTURE_2D, 2485 texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, image1.get());
2490 1,
2491 gfx::GLImage::CreateGLImage(0).get());
2492 EXPECT_TRUE(ref1->texture()->HasImages()); 2486 EXPECT_TRUE(ref1->texture()->HasImages());
2493 EXPECT_TRUE(ref2->texture()->HasImages()); 2487 EXPECT_TRUE(ref2->texture()->HasImages());
2494 EXPECT_TRUE(texture_manager1_->HaveImages()); 2488 EXPECT_TRUE(texture_manager1_->HaveImages());
2495 EXPECT_TRUE(texture_manager2_->HaveImages()); 2489 EXPECT_TRUE(texture_manager2_->HaveImages());
2496 texture_manager1_->SetLevelImage(ref1.get(), 2490 scoped_refptr<gfx::GLImage> image2(new gfx::GLImageStub);
2497 GL_TEXTURE_2D, 2491 texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, image2.get());
2498 1,
2499 gfx::GLImage::CreateGLImage(0).get());
2500 EXPECT_TRUE(ref1->texture()->HasImages()); 2492 EXPECT_TRUE(ref1->texture()->HasImages());
2501 EXPECT_TRUE(ref2->texture()->HasImages()); 2493 EXPECT_TRUE(ref2->texture()->HasImages());
2502 EXPECT_TRUE(texture_manager1_->HaveImages()); 2494 EXPECT_TRUE(texture_manager1_->HaveImages());
2503 EXPECT_TRUE(texture_manager2_->HaveImages()); 2495 EXPECT_TRUE(texture_manager2_->HaveImages());
2504 texture_manager1_->SetLevelInfo(ref1.get(), 2496 texture_manager1_->SetLevelInfo(ref1.get(),
2505 GL_TEXTURE_2D, 2497 GL_TEXTURE_2D,
2506 1, 2498 1,
2507 GL_RGBA, 2499 GL_RGBA,
2508 2, 2500 2,
2509 2, 2501 2,
2510 1, 2502 1,
2511 0, 2503 0,
2512 GL_RGBA, 2504 GL_RGBA,
2513 GL_UNSIGNED_BYTE, 2505 GL_UNSIGNED_BYTE,
2514 true); 2506 true);
2515 EXPECT_FALSE(ref1->texture()->HasImages()); 2507 EXPECT_FALSE(ref1->texture()->HasImages());
2516 EXPECT_FALSE(ref2->texture()->HasImages()); 2508 EXPECT_FALSE(ref2->texture()->HasImages());
2517 EXPECT_FALSE(texture_manager1_->HaveImages()); 2509 EXPECT_FALSE(texture_manager1_->HaveImages());
2518 EXPECT_FALSE(texture_manager1_->HaveImages()); 2510 EXPECT_FALSE(texture_manager1_->HaveImages());
2519 2511
2520 EXPECT_CALL(*gl_, DeleteTextures(1, _)) 2512 EXPECT_CALL(*gl_, DeleteTextures(1, _))
2521 .Times(1) 2513 .Times(1)
2522 .RetiresOnSaturation(); 2514 .RetiresOnSaturation();
2523 texture_manager1_->RemoveTexture(10); 2515 texture_manager1_->RemoveTexture(10);
2524 texture_manager2_->RemoveTexture(20); 2516 texture_manager2_->RemoveTexture(20);
2525 } 2517 }
2526 2518
2527 } // namespace gles2 2519 } // namespace gles2
2528 } // namespace gpu 2520 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698