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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
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/gpu_service_test.h" | 12 #include "gpu/command_buffer/service/gpu_service_test.h" |
13 #include "gpu/command_buffer/service/renderbuffer_manager.h" | 13 #include "gpu/command_buffer/service/renderbuffer_manager.h" |
| 14 #include "gpu/command_buffer/service/service_discardable_manager.h" |
14 #include "gpu/command_buffer/service/test_helper.h" | 15 #include "gpu/command_buffer/service/test_helper.h" |
15 #include "gpu/command_buffer/service/texture_manager.h" | 16 #include "gpu/command_buffer/service/texture_manager.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
17 #include "ui/gl/gl_mock.h" | 18 #include "ui/gl/gl_mock.h" |
18 | 19 |
19 using ::testing::_; | 20 using ::testing::_; |
20 using ::testing::Return; | 21 using ::testing::Return; |
21 | 22 |
22 namespace gpu { | 23 namespace gpu { |
23 namespace gles2 { | 24 namespace gles2 { |
(...skipping 13 matching lines...) Expand all Loading... |
37 } // namespace | 38 } // namespace |
38 | 39 |
39 class FramebufferManagerTest : public GpuServiceTest { | 40 class FramebufferManagerTest : public GpuServiceTest { |
40 public: | 41 public: |
41 FramebufferManagerTest() | 42 FramebufferManagerTest() |
42 : manager_(1, 1, nullptr), | 43 : manager_(1, 1, nullptr), |
43 feature_info_(new FeatureInfo()) { | 44 feature_info_(new FeatureInfo()) { |
44 texture_manager_.reset(new TextureManager( | 45 texture_manager_.reset(new TextureManager( |
45 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize, | 46 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize, |
46 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, | 47 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, |
47 kUseDefaultTextures, nullptr)); | 48 kUseDefaultTextures, nullptr, &discardable_manager_)); |
48 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, | 49 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, |
49 kMaxRenderbufferSize, | 50 kMaxRenderbufferSize, |
50 kMaxSamples, | 51 kMaxSamples, |
51 feature_info_.get())); | 52 feature_info_.get())); |
52 } | 53 } |
53 ~FramebufferManagerTest() override { | 54 ~FramebufferManagerTest() override { |
54 manager_.Destroy(false); | 55 manager_.Destroy(false); |
55 texture_manager_->Destroy(false); | 56 texture_manager_->Destroy(false); |
56 renderbuffer_manager_->Destroy(false); | 57 renderbuffer_manager_->Destroy(false); |
57 } | 58 } |
58 | 59 |
59 protected: | 60 protected: |
60 FramebufferManager manager_; | 61 FramebufferManager manager_; |
61 scoped_refptr<FeatureInfo> feature_info_; | 62 scoped_refptr<FeatureInfo> feature_info_; |
| 63 ServiceDiscardableManager discardable_manager_; |
62 std::unique_ptr<TextureManager> texture_manager_; | 64 std::unique_ptr<TextureManager> texture_manager_; |
63 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; | 65 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; |
64 }; | 66 }; |
65 | 67 |
66 TEST_F(FramebufferManagerTest, Basic) { | 68 TEST_F(FramebufferManagerTest, Basic) { |
67 const GLuint kClient1Id = 1; | 69 const GLuint kClient1Id = 1; |
68 const GLuint kService1Id = 11; | 70 const GLuint kService1Id = 11; |
69 const GLuint kClient2Id = 2; | 71 const GLuint kClient2Id = 2; |
70 // Check we can create framebuffer. | 72 // Check we can create framebuffer. |
71 manager_.CreateFramebuffer(kClient1Id, kService1Id); | 73 manager_.CreateFramebuffer(kClient1Id, kService1Id); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 | 116 |
115 explicit FramebufferInfoTestBase(ContextType context_type) | 117 explicit FramebufferInfoTestBase(ContextType context_type) |
116 : context_type_(context_type), | 118 : context_type_(context_type), |
117 manager_(kMaxDrawBuffers, | 119 manager_(kMaxDrawBuffers, |
118 kMaxColorAttachments, | 120 kMaxColorAttachments, |
119 new FramebufferCompletenessCache), | 121 new FramebufferCompletenessCache), |
120 feature_info_(new FeatureInfo()) { | 122 feature_info_(new FeatureInfo()) { |
121 texture_manager_.reset(new TextureManager( | 123 texture_manager_.reset(new TextureManager( |
122 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize, | 124 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize, |
123 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, | 125 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, |
124 kUseDefaultTextures, nullptr)); | 126 kUseDefaultTextures, nullptr, &discardable_manager_)); |
125 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, | 127 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, |
126 kMaxRenderbufferSize, | 128 kMaxRenderbufferSize, |
127 kMaxSamples, | 129 kMaxSamples, |
128 feature_info_.get())); | 130 feature_info_.get())); |
129 } | 131 } |
130 ~FramebufferInfoTestBase() override { | 132 ~FramebufferInfoTestBase() override { |
131 manager_.Destroy(false); | 133 manager_.Destroy(false); |
132 texture_manager_->Destroy(false); | 134 texture_manager_->Destroy(false); |
133 renderbuffer_manager_->Destroy(false); | 135 renderbuffer_manager_->Destroy(false); |
134 } | 136 } |
(...skipping 16 matching lines...) Expand all Loading... |
151 manager_.CreateFramebuffer(kClient1Id, kService1Id); | 153 manager_.CreateFramebuffer(kClient1Id, kService1Id); |
152 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); | 154 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); |
153 framebuffer_ = manager_.GetFramebuffer(kClient1Id); | 155 framebuffer_ = manager_.GetFramebuffer(kClient1Id); |
154 ASSERT_TRUE(framebuffer_ != nullptr); | 156 ASSERT_TRUE(framebuffer_ != nullptr); |
155 } | 157 } |
156 | 158 |
157 ContextType context_type_; | 159 ContextType context_type_; |
158 FramebufferManager manager_; | 160 FramebufferManager manager_; |
159 Framebuffer* framebuffer_; | 161 Framebuffer* framebuffer_; |
160 scoped_refptr<FeatureInfo> feature_info_; | 162 scoped_refptr<FeatureInfo> feature_info_; |
| 163 ServiceDiscardableManager discardable_manager_; |
161 std::unique_ptr<TextureManager> texture_manager_; | 164 std::unique_ptr<TextureManager> texture_manager_; |
162 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; | 165 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; |
163 std::unique_ptr<MockErrorState> error_state_; | 166 std::unique_ptr<MockErrorState> error_state_; |
164 std::unique_ptr<MockGLES2Decoder> decoder_; | 167 std::unique_ptr<MockGLES2Decoder> decoder_; |
165 }; | 168 }; |
166 | 169 |
167 class FramebufferInfoTest : public FramebufferInfoTestBase { | 170 class FramebufferInfoTest : public FramebufferInfoTestBase { |
168 public: | 171 public: |
169 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {} | 172 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {} |
170 }; | 173 }; |
(...skipping 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1643 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); | 1646 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); |
1644 ASSERT_TRUE(renderbuffer != nullptr); | 1647 ASSERT_TRUE(renderbuffer != nullptr); |
1645 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); | 1648 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); |
1646 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); | 1649 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); |
1647 } | 1650 } |
1648 | 1651 |
1649 } // namespace gles2 | 1652 } // namespace gles2 |
1650 } // namespace gpu | 1653 } // namespace gpu |
1651 | 1654 |
1652 | 1655 |
OLD | NEW |