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" |
(...skipping 21 matching lines...) Expand all Loading... |
32 const GLint kMaxSamples = 4; | 32 const GLint kMaxSamples = 4; |
33 const uint32_t kMaxDrawBuffers = 16; | 33 const uint32_t kMaxDrawBuffers = 16; |
34 const uint32_t kMaxColorAttachments = 16; | 34 const uint32_t kMaxColorAttachments = 16; |
35 const bool kUseDefaultTextures = false; | 35 const bool kUseDefaultTextures = false; |
36 | 36 |
37 } // namespace | 37 } // namespace |
38 | 38 |
39 class FramebufferManagerTest : public GpuServiceTest { | 39 class FramebufferManagerTest : public GpuServiceTest { |
40 public: | 40 public: |
41 FramebufferManagerTest() | 41 FramebufferManagerTest() |
42 : manager_(1, 1, CONTEXT_TYPE_OPENGLES2, nullptr), | 42 : manager_(1, 1, nullptr), |
43 feature_info_(new FeatureInfo()) { | 43 feature_info_(new FeatureInfo()) { |
44 texture_manager_.reset(new TextureManager(nullptr, | 44 texture_manager_.reset(new TextureManager(nullptr, |
45 feature_info_.get(), | 45 feature_info_.get(), |
46 kMaxTextureSize, | 46 kMaxTextureSize, |
47 kMaxCubemapSize, | 47 kMaxCubemapSize, |
48 kMaxRectangleTextureSize, | 48 kMaxRectangleTextureSize, |
49 kMax3DTextureSize, | 49 kMax3DTextureSize, |
50 kMaxArrayTextureLayers, | 50 kMaxArrayTextureLayers, |
51 kUseDefaultTextures)); | 51 kUseDefaultTextures)); |
52 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, | 52 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 framebuffer1 = manager_.GetFramebuffer(kClient1Id); | 110 framebuffer1 = manager_.GetFramebuffer(kClient1Id); |
111 ASSERT_TRUE(framebuffer1 == nullptr); | 111 ASSERT_TRUE(framebuffer1 == nullptr); |
112 } | 112 } |
113 | 113 |
114 class FramebufferInfoTestBase : public GpuServiceTest { | 114 class FramebufferInfoTestBase : public GpuServiceTest { |
115 public: | 115 public: |
116 static const GLuint kClient1Id = 1; | 116 static const GLuint kClient1Id = 1; |
117 static const GLuint kService1Id = 11; | 117 static const GLuint kService1Id = 11; |
118 | 118 |
119 explicit FramebufferInfoTestBase(ContextType context_type) | 119 explicit FramebufferInfoTestBase(ContextType context_type) |
120 : manager_(kMaxDrawBuffers, | 120 : context_type_(context_type), |
| 121 manager_(kMaxDrawBuffers, |
121 kMaxColorAttachments, | 122 kMaxColorAttachments, |
122 context_type, | |
123 new FramebufferCompletenessCache), | 123 new FramebufferCompletenessCache), |
124 feature_info_(new FeatureInfo()) { | 124 feature_info_(new FeatureInfo()) { |
125 texture_manager_.reset(new TextureManager(nullptr, | 125 texture_manager_.reset(new TextureManager(nullptr, |
126 feature_info_.get(), | 126 feature_info_.get(), |
127 kMaxTextureSize, | 127 kMaxTextureSize, |
128 kMaxCubemapSize, | 128 kMaxCubemapSize, |
129 kMaxRectangleTextureSize, | 129 kMaxRectangleTextureSize, |
130 kMax3DTextureSize, | 130 kMax3DTextureSize, |
131 kMaxArrayTextureLayers, | 131 kMaxArrayTextureLayers, |
132 kUseDefaultTextures)); | 132 kUseDefaultTextures)); |
133 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, | 133 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, |
134 kMaxRenderbufferSize, | 134 kMaxRenderbufferSize, |
135 kMaxSamples, | 135 kMaxSamples, |
136 feature_info_.get())); | 136 feature_info_.get())); |
137 } | 137 } |
138 ~FramebufferInfoTestBase() override { | 138 ~FramebufferInfoTestBase() override { |
139 manager_.Destroy(false); | 139 manager_.Destroy(false); |
140 texture_manager_->Destroy(false); | 140 texture_manager_->Destroy(false); |
141 renderbuffer_manager_->Destroy(false); | 141 renderbuffer_manager_->Destroy(false); |
142 } | 142 } |
143 | 143 |
144 protected: | 144 protected: |
145 void SetUp() override { | 145 void SetUp() override { |
146 InitializeContext("2.0", "GL_EXT_framebuffer_object"); | 146 InitializeContext("2.0", "GL_EXT_framebuffer_object"); |
147 } | 147 } |
148 | 148 |
149 void InitializeContext(const char* gl_version, const char* extensions) { | 149 void InitializeContext(const char* gl_version, const char* extensions) { |
150 GpuServiceTest::SetUpWithGLVersion(gl_version, extensions); | 150 GpuServiceTest::SetUpWithGLVersion(gl_version, extensions); |
151 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(), | 151 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(), |
152 extensions, "", gl_version, manager_.context_type()); | 152 extensions, "", gl_version, context_type_); |
153 feature_info_->InitializeForTesting(); | 153 feature_info_->InitializeForTesting(); |
154 decoder_.reset(new MockGLES2Decoder()); | 154 decoder_.reset(new MockGLES2Decoder()); |
155 manager_.CreateFramebuffer(kClient1Id, kService1Id); | 155 manager_.CreateFramebuffer(kClient1Id, kService1Id); |
156 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); | 156 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); |
157 framebuffer_ = manager_.GetFramebuffer(kClient1Id); | 157 framebuffer_ = manager_.GetFramebuffer(kClient1Id); |
158 ASSERT_TRUE(framebuffer_ != nullptr); | 158 ASSERT_TRUE(framebuffer_ != nullptr); |
159 } | 159 } |
160 | 160 |
| 161 ContextType context_type_; |
161 FramebufferManager manager_; | 162 FramebufferManager manager_; |
162 Framebuffer* framebuffer_; | 163 Framebuffer* framebuffer_; |
163 scoped_refptr<FeatureInfo> feature_info_; | 164 scoped_refptr<FeatureInfo> feature_info_; |
164 std::unique_ptr<TextureManager> texture_manager_; | 165 std::unique_ptr<TextureManager> texture_manager_; |
165 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; | 166 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; |
166 std::unique_ptr<MockErrorState> error_state_; | 167 std::unique_ptr<MockErrorState> error_state_; |
167 std::unique_ptr<MockGLES2Decoder> decoder_; | 168 std::unique_ptr<MockGLES2Decoder> decoder_; |
168 }; | 169 }; |
169 | 170 |
170 class FramebufferInfoTest : public FramebufferInfoTestBase { | 171 class FramebufferInfoTest : public FramebufferInfoTestBase { |
171 public: | 172 public: |
172 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {} | 173 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {} |
173 }; | 174 }; |
174 | 175 |
175 // GCC requires these declarations, but MSVC requires they not be present | 176 // GCC requires these declarations, but MSVC requires they not be present |
176 #ifndef COMPILER_MSVC | 177 #ifndef COMPILER_MSVC |
177 const GLuint FramebufferInfoTestBase::kClient1Id; | 178 const GLuint FramebufferInfoTestBase::kClient1Id; |
178 const GLuint FramebufferInfoTestBase::kService1Id; | 179 const GLuint FramebufferInfoTestBase::kService1Id; |
179 #endif | 180 #endif |
180 | 181 |
181 TEST_F(FramebufferInfoTest, Basic) { | 182 TEST_F(FramebufferInfoTest, Basic) { |
182 EXPECT_EQ(kService1Id, framebuffer_->service_id()); | 183 EXPECT_EQ(kService1Id, framebuffer_->service_id()); |
183 EXPECT_FALSE(framebuffer_->IsDeleted()); | 184 EXPECT_FALSE(framebuffer_->IsDeleted()); |
184 EXPECT_TRUE(nullptr == framebuffer_->GetAttachment(GL_COLOR_ATTACHMENT0)); | 185 EXPECT_TRUE(nullptr == framebuffer_->GetAttachment(GL_COLOR_ATTACHMENT0)); |
185 EXPECT_TRUE(nullptr == framebuffer_->GetAttachment(GL_DEPTH_ATTACHMENT)); | 186 EXPECT_TRUE(nullptr == framebuffer_->GetAttachment(GL_DEPTH_ATTACHMENT)); |
186 EXPECT_TRUE(nullptr == framebuffer_->GetAttachment(GL_STENCIL_ATTACHMENT)); | 187 EXPECT_TRUE(nullptr == framebuffer_->GetAttachment(GL_STENCIL_ATTACHMENT)); |
187 EXPECT_TRUE( | |
188 nullptr == framebuffer_->GetAttachment(GL_DEPTH_STENCIL_ATTACHMENT)); | |
189 EXPECT_FALSE(framebuffer_->HasDepthAttachment()); | 188 EXPECT_FALSE(framebuffer_->HasDepthAttachment()); |
190 EXPECT_FALSE(framebuffer_->HasStencilAttachment()); | 189 EXPECT_FALSE(framebuffer_->HasStencilAttachment()); |
191 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), | 190 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), |
192 framebuffer_->IsPossiblyComplete(feature_info_.get())); | 191 framebuffer_->IsPossiblyComplete(feature_info_.get())); |
193 EXPECT_TRUE(framebuffer_->IsCleared()); | 192 EXPECT_TRUE(framebuffer_->IsCleared()); |
194 EXPECT_EQ(static_cast<GLenum>(0), | 193 EXPECT_EQ(static_cast<GLenum>(0), |
195 framebuffer_->GetReadBufferInternalFormat()); | 194 framebuffer_->GetReadBufferInternalFormat()); |
196 EXPECT_FALSE(manager_.IsComplete(framebuffer_)); | 195 EXPECT_FALSE(manager_.IsComplete(framebuffer_)); |
197 } | 196 } |
198 | 197 |
(...skipping 27 matching lines...) Expand all Loading... |
226 const GLsizei kSamples4 = 0; | 225 const GLsizei kSamples4 = 0; |
227 const GLsizei kWidth5 = 16; | 226 const GLsizei kWidth5 = 16; |
228 const GLsizei kHeight5 = 32; | 227 const GLsizei kHeight5 = 32; |
229 const GLenum kFormat5 = GL_DEPTH24_STENCIL8; | 228 const GLenum kFormat5 = GL_DEPTH24_STENCIL8; |
230 const GLsizei kSamples5 = 0; | 229 const GLsizei kSamples5 = 0; |
231 const GLsizei kDifferentSamples5 = 1; | 230 const GLsizei kDifferentSamples5 = 1; |
232 | 231 |
233 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); | 232 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); |
234 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT)); | 233 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT)); |
235 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT)); | 234 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT)); |
236 EXPECT_FALSE( | |
237 framebuffer_->HasUnclearedAttachment(GL_DEPTH_STENCIL_ATTACHMENT)); | |
238 | 235 |
239 renderbuffer_manager_->CreateRenderbuffer( | 236 renderbuffer_manager_->CreateRenderbuffer( |
240 kRenderbufferClient1Id, kRenderbufferService1Id); | 237 kRenderbufferClient1Id, kRenderbufferService1Id); |
241 Renderbuffer* renderbuffer1 = | 238 Renderbuffer* renderbuffer1 = |
242 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClient1Id); | 239 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClient1Id); |
243 ASSERT_TRUE(renderbuffer1 != nullptr); | 240 ASSERT_TRUE(renderbuffer1 != nullptr); |
244 | 241 |
245 // Check adding one attachment. | 242 // Check adding one attachment. |
246 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT0, renderbuffer1); | 243 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT0, renderbuffer1); |
247 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); | 244 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 const GLenum kTarget2 = GL_TEXTURE_2D; | 496 const GLenum kTarget2 = GL_TEXTURE_2D; |
500 const GLsizei kSamples2 = 0; | 497 const GLsizei kSamples2 = 0; |
501 const GLsizei kWidth3 = 75; | 498 const GLsizei kWidth3 = 75; |
502 const GLsizei kHeight3 = 123; | 499 const GLsizei kHeight3 = 123; |
503 const GLint kLevel3 = 0; | 500 const GLint kLevel3 = 0; |
504 const GLenum kFormat3 = GL_RGB565; | 501 const GLenum kFormat3 = GL_RGB565; |
505 const GLsizei kSamples3 = 0; | 502 const GLsizei kSamples3 = 0; |
506 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); | 503 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); |
507 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT)); | 504 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT)); |
508 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT)); | 505 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT)); |
509 EXPECT_FALSE( | |
510 framebuffer_->HasUnclearedAttachment(GL_DEPTH_STENCIL_ATTACHMENT)); | |
511 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), | 506 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), |
512 framebuffer_->IsPossiblyComplete(feature_info_.get())); | 507 framebuffer_->IsPossiblyComplete(feature_info_.get())); |
513 | 508 |
514 texture_manager_->CreateTexture(kTextureClient1Id, kTextureService1Id); | 509 texture_manager_->CreateTexture(kTextureClient1Id, kTextureService1Id); |
515 scoped_refptr<TextureRef> texture1( | 510 scoped_refptr<TextureRef> texture1( |
516 texture_manager_->GetTexture(kTextureClient1Id)); | 511 texture_manager_->GetTexture(kTextureClient1Id)); |
517 ASSERT_TRUE(texture1.get() != nullptr); | 512 ASSERT_TRUE(texture1.get() != nullptr); |
518 | 513 |
519 // check adding one attachment | 514 // check adding one attachment |
520 framebuffer_->AttachTexture( | 515 framebuffer_->AttachTexture( |
(...skipping 1036 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1557 FramebufferInfoES3Test() : FramebufferInfoTestBase(CONTEXT_TYPE_WEBGL2) {} | 1552 FramebufferInfoES3Test() : FramebufferInfoTestBase(CONTEXT_TYPE_WEBGL2) {} |
1558 | 1553 |
1559 protected: | 1554 protected: |
1560 void SetUp() override { | 1555 void SetUp() override { |
1561 InitializeContext("OpenGL ES 3.0", ""); | 1556 InitializeContext("OpenGL ES 3.0", ""); |
1562 } | 1557 } |
1563 | 1558 |
1564 void InitializeContext(const char* gl_version, const char* extensions) { | 1559 void InitializeContext(const char* gl_version, const char* extensions) { |
1565 GpuServiceTest::SetUpWithGLVersion(gl_version, extensions); | 1560 GpuServiceTest::SetUpWithGLVersion(gl_version, extensions); |
1566 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(), | 1561 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(), |
1567 extensions, "", gl_version, manager_.context_type()); | 1562 extensions, "", gl_version, context_type_); |
1568 feature_info_->InitializeForTesting(CONTEXT_TYPE_OPENGLES3); | 1563 feature_info_->InitializeForTesting(CONTEXT_TYPE_OPENGLES3); |
1569 decoder_.reset(new MockGLES2Decoder()); | 1564 decoder_.reset(new MockGLES2Decoder()); |
1570 manager_.CreateFramebuffer(kClient1Id, kService1Id); | 1565 manager_.CreateFramebuffer(kClient1Id, kService1Id); |
1571 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); | 1566 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); |
1572 framebuffer_ = manager_.GetFramebuffer(kClient1Id); | 1567 framebuffer_ = manager_.GetFramebuffer(kClient1Id); |
1573 ASSERT_TRUE(framebuffer_ != nullptr); | 1568 ASSERT_TRUE(framebuffer_ != nullptr); |
1574 } | 1569 } |
1575 }; | 1570 }; |
1576 | 1571 |
1577 TEST_F(FramebufferInfoES3Test, DifferentDimensions) { | 1572 TEST_F(FramebufferInfoES3Test, DifferentDimensions) { |
1578 const GLuint kRenderbufferClient1Id = 33; | 1573 const GLuint kRenderbufferClient1Id = 33; |
1579 const GLuint kRenderbufferService1Id = 333; | 1574 const GLuint kRenderbufferService1Id = 333; |
1580 const GLuint kRenderbufferClient2Id = 34; | 1575 const GLuint kRenderbufferClient2Id = 34; |
1581 const GLuint kRenderbufferService2Id = 334; | 1576 const GLuint kRenderbufferService2Id = 334; |
1582 const GLsizei kWidth1 = 16; | 1577 const GLsizei kWidth1 = 16; |
1583 const GLsizei kHeight1 = 32; | 1578 const GLsizei kHeight1 = 32; |
1584 const GLenum kFormat1 = GL_RGBA4; | 1579 const GLenum kFormat1 = GL_RGBA4; |
1585 const GLsizei kSamples1 = 0; | 1580 const GLsizei kSamples1 = 0; |
1586 const GLsizei kWidth2 = 32; // Different from kWidth1 | 1581 const GLsizei kWidth2 = 32; // Different from kWidth1 |
1587 const GLsizei kHeight2 = 32; | 1582 const GLsizei kHeight2 = 32; |
1588 const GLenum kFormat2 = GL_DEPTH_COMPONENT16; | 1583 const GLenum kFormat2 = GL_DEPTH_COMPONENT16; |
1589 const GLsizei kSamples2 = 0; | 1584 const GLsizei kSamples2 = 0; |
1590 | 1585 |
1591 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); | 1586 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0)); |
1592 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT)); | 1587 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT)); |
1593 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT)); | 1588 EXPECT_FALSE(framebuffer_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT)); |
1594 EXPECT_FALSE( | |
1595 framebuffer_->HasUnclearedAttachment(GL_DEPTH_STENCIL_ATTACHMENT)); | |
1596 | 1589 |
1597 renderbuffer_manager_->CreateRenderbuffer( | 1590 renderbuffer_manager_->CreateRenderbuffer( |
1598 kRenderbufferClient1Id, kRenderbufferService1Id); | 1591 kRenderbufferClient1Id, kRenderbufferService1Id); |
1599 Renderbuffer* renderbuffer1 = | 1592 Renderbuffer* renderbuffer1 = |
1600 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClient1Id); | 1593 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClient1Id); |
1601 ASSERT_TRUE(renderbuffer1 != nullptr); | 1594 ASSERT_TRUE(renderbuffer1 != nullptr); |
1602 renderbuffer_manager_->SetInfo( | 1595 renderbuffer_manager_->SetInfo( |
1603 renderbuffer1, kSamples1, kFormat1, kWidth1, kHeight1); | 1596 renderbuffer1, kSamples1, kFormat1, kWidth1, kHeight1); |
1604 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT0, renderbuffer1); | 1597 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT0, renderbuffer1); |
1605 | 1598 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1667 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); | 1660 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); |
1668 ASSERT_TRUE(renderbuffer != nullptr); | 1661 ASSERT_TRUE(renderbuffer != nullptr); |
1669 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); | 1662 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); |
1670 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); | 1663 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); |
1671 } | 1664 } |
1672 | 1665 |
1673 } // namespace gles2 | 1666 } // namespace gles2 |
1674 } // namespace gpu | 1667 } // namespace gpu |
1675 | 1668 |
1676 | 1669 |
OLD | NEW |