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/progress_reporter_stub.h" |
13 #include "gpu/command_buffer/service/renderbuffer_manager.h" | 14 #include "gpu/command_buffer/service/renderbuffer_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 { |
(...skipping 11 matching lines...) Expand all Loading... |
34 const uint32_t kMaxColorAttachments = 16; | 35 const uint32_t kMaxColorAttachments = 16; |
35 const bool kUseDefaultTextures = false; | 36 const bool kUseDefaultTextures = false; |
36 | 37 |
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, CONTEXT_TYPE_OPENGLES2, nullptr), | 43 : manager_(1, 1, CONTEXT_TYPE_OPENGLES2, nullptr), |
43 feature_info_(new FeatureInfo()) { | 44 feature_info_(new FeatureInfo()) { |
44 texture_manager_.reset(new TextureManager(nullptr, | 45 texture_manager_.reset(new TextureManager( |
45 feature_info_.get(), | 46 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize, |
46 kMaxTextureSize, | 47 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, |
47 kMaxCubemapSize, | 48 kUseDefaultTextures, &progress_reporter_)); |
48 kMaxRectangleTextureSize, | |
49 kMax3DTextureSize, | |
50 kMaxArrayTextureLayers, | |
51 kUseDefaultTextures)); | |
52 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, | 49 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, |
53 kMaxRenderbufferSize, | 50 kMaxRenderbufferSize, |
54 kMaxSamples, | 51 kMaxSamples, |
55 feature_info_.get())); | 52 feature_info_.get())); |
56 } | 53 } |
57 ~FramebufferManagerTest() override { | 54 ~FramebufferManagerTest() override { |
58 manager_.Destroy(false); | 55 manager_.Destroy(false); |
59 texture_manager_->Destroy(false); | 56 texture_manager_->Destroy(false); |
60 renderbuffer_manager_->Destroy(false); | 57 renderbuffer_manager_->Destroy(false); |
61 } | 58 } |
62 | 59 |
63 protected: | 60 protected: |
64 FramebufferManager manager_; | 61 FramebufferManager manager_; |
65 scoped_refptr<FeatureInfo> feature_info_; | 62 scoped_refptr<FeatureInfo> feature_info_; |
66 std::unique_ptr<TextureManager> texture_manager_; | 63 std::unique_ptr<TextureManager> texture_manager_; |
67 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; | 64 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; |
| 65 ProgressReporterStub progress_reporter_; |
68 }; | 66 }; |
69 | 67 |
70 TEST_F(FramebufferManagerTest, Basic) { | 68 TEST_F(FramebufferManagerTest, Basic) { |
71 const GLuint kClient1Id = 1; | 69 const GLuint kClient1Id = 1; |
72 const GLuint kService1Id = 11; | 70 const GLuint kService1Id = 11; |
73 const GLuint kClient2Id = 2; | 71 const GLuint kClient2Id = 2; |
74 // Check we can create framebuffer. | 72 // Check we can create framebuffer. |
75 manager_.CreateFramebuffer(kClient1Id, kService1Id); | 73 manager_.CreateFramebuffer(kClient1Id, kService1Id); |
76 // Check framebuffer got created. | 74 // Check framebuffer got created. |
77 Framebuffer* framebuffer1 = manager_.GetFramebuffer(kClient1Id); | 75 Framebuffer* framebuffer1 = manager_.GetFramebuffer(kClient1Id); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 public: | 113 public: |
116 static const GLuint kClient1Id = 1; | 114 static const GLuint kClient1Id = 1; |
117 static const GLuint kService1Id = 11; | 115 static const GLuint kService1Id = 11; |
118 | 116 |
119 explicit FramebufferInfoTestBase(ContextType context_type) | 117 explicit FramebufferInfoTestBase(ContextType context_type) |
120 : manager_(kMaxDrawBuffers, | 118 : manager_(kMaxDrawBuffers, |
121 kMaxColorAttachments, | 119 kMaxColorAttachments, |
122 context_type, | 120 context_type, |
123 new FramebufferCompletenessCache), | 121 new FramebufferCompletenessCache), |
124 feature_info_(new FeatureInfo()) { | 122 feature_info_(new FeatureInfo()) { |
125 texture_manager_.reset(new TextureManager(nullptr, | 123 texture_manager_.reset(new TextureManager( |
126 feature_info_.get(), | 124 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize, |
127 kMaxTextureSize, | 125 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, |
128 kMaxCubemapSize, | 126 kUseDefaultTextures, &progress_reporter_)); |
129 kMaxRectangleTextureSize, | |
130 kMax3DTextureSize, | |
131 kMaxArrayTextureLayers, | |
132 kUseDefaultTextures)); | |
133 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, | 127 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, |
134 kMaxRenderbufferSize, | 128 kMaxRenderbufferSize, |
135 kMaxSamples, | 129 kMaxSamples, |
136 feature_info_.get())); | 130 feature_info_.get())); |
137 } | 131 } |
138 ~FramebufferInfoTestBase() override { | 132 ~FramebufferInfoTestBase() override { |
139 manager_.Destroy(false); | 133 manager_.Destroy(false); |
140 texture_manager_->Destroy(false); | 134 texture_manager_->Destroy(false); |
141 renderbuffer_manager_->Destroy(false); | 135 renderbuffer_manager_->Destroy(false); |
142 } | 136 } |
(...skipping 15 matching lines...) Expand all Loading... |
158 ASSERT_TRUE(framebuffer_ != nullptr); | 152 ASSERT_TRUE(framebuffer_ != nullptr); |
159 } | 153 } |
160 | 154 |
161 FramebufferManager manager_; | 155 FramebufferManager manager_; |
162 Framebuffer* framebuffer_; | 156 Framebuffer* framebuffer_; |
163 scoped_refptr<FeatureInfo> feature_info_; | 157 scoped_refptr<FeatureInfo> feature_info_; |
164 std::unique_ptr<TextureManager> texture_manager_; | 158 std::unique_ptr<TextureManager> texture_manager_; |
165 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; | 159 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; |
166 std::unique_ptr<MockErrorState> error_state_; | 160 std::unique_ptr<MockErrorState> error_state_; |
167 std::unique_ptr<MockGLES2Decoder> decoder_; | 161 std::unique_ptr<MockGLES2Decoder> decoder_; |
| 162 ProgressReporterStub progress_reporter_; |
168 }; | 163 }; |
169 | 164 |
170 class FramebufferInfoTest : public FramebufferInfoTestBase { | 165 class FramebufferInfoTest : public FramebufferInfoTestBase { |
171 public: | 166 public: |
172 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {} | 167 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {} |
173 }; | 168 }; |
174 | 169 |
175 // GCC requires these declarations, but MSVC requires they not be present | 170 // GCC requires these declarations, but MSVC requires they not be present |
176 #ifndef COMPILER_MSVC | 171 #ifndef COMPILER_MSVC |
177 const GLuint FramebufferInfoTestBase::kClient1Id; | 172 const GLuint FramebufferInfoTestBase::kClient1Id; |
(...skipping 1489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1667 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); | 1662 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); |
1668 ASSERT_TRUE(renderbuffer != nullptr); | 1663 ASSERT_TRUE(renderbuffer != nullptr); |
1669 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); | 1664 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); |
1670 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); | 1665 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); |
1671 } | 1666 } |
1672 | 1667 |
1673 } // namespace gles2 | 1668 } // namespace gles2 |
1674 } // namespace gpu | 1669 } // namespace gpu |
1675 | 1670 |
1676 | 1671 |
OLD | NEW |