| 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 |