Chromium Code Reviews| 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 1476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1487 framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); | 1487 framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
| 1488 | 1488 |
| 1489 // Check Unbinding does not call CheckFramebufferStatus | 1489 // Check Unbinding does not call CheckFramebufferStatus |
| 1490 framebuffer_->UnbindRenderbuffer(GL_RENDERBUFFER, renderbuffer1); | 1490 framebuffer_->UnbindRenderbuffer(GL_RENDERBUFFER, renderbuffer1); |
| 1491 framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); | 1491 framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
| 1492 } | 1492 } |
| 1493 | 1493 |
| 1494 class FramebufferInfoES3Test : public FramebufferInfoTestBase { | 1494 class FramebufferInfoES3Test : public FramebufferInfoTestBase { |
| 1495 public: | 1495 public: |
| 1496 FramebufferInfoES3Test() : FramebufferInfoTestBase(CONTEXT_TYPE_WEBGL2) {} | 1496 FramebufferInfoES3Test() : FramebufferInfoTestBase(CONTEXT_TYPE_WEBGL2) {} |
| 1497 | |
| 1498 protected: | |
| 1499 void SetUp() override { | |
| 1500 InitializeContext("OpenGL ES 3.0", ""); | |
| 1501 } | |
| 1502 | |
| 1503 void InitializeContext(const char* gl_version, const char* extensions) { | |
| 1504 GpuServiceTest::SetUpWithGLVersion(gl_version, extensions); | |
| 1505 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(), | |
| 1506 extensions, "", gl_version); | |
| 1507 feature_info_->InitializeForTesting(CONTEXT_TYPE_OPENGLES3); | |
|
qiankun
2016/07/20 15:03:26
Is it Ok for you to test GLES3 context now? I may
Zhenyao Mo
2016/07/20 16:10:42
This is good. I think between this and the WebGL s
| |
| 1508 decoder_.reset(new MockGLES2Decoder()); | |
| 1509 manager_.CreateFramebuffer(kClient1Id, kService1Id); | |
| 1510 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); | |
| 1511 framebuffer_ = manager_.GetFramebuffer(kClient1Id); | |
| 1512 ASSERT_TRUE(framebuffer_ != NULL); | |
| 1513 } | |
| 1497 }; | 1514 }; |
| 1498 | 1515 |
| 1499 TEST_F(FramebufferInfoES3Test, DifferentDimensions) { | 1516 TEST_F(FramebufferInfoES3Test, DifferentDimensions) { |
| 1500 const GLuint kRenderbufferClient1Id = 33; | 1517 const GLuint kRenderbufferClient1Id = 33; |
| 1501 const GLuint kRenderbufferService1Id = 333; | 1518 const GLuint kRenderbufferService1Id = 333; |
| 1502 const GLuint kRenderbufferClient2Id = 34; | 1519 const GLuint kRenderbufferClient2Id = 34; |
| 1503 const GLuint kRenderbufferService2Id = 334; | 1520 const GLuint kRenderbufferService2Id = 334; |
| 1504 const GLsizei kWidth1 = 16; | 1521 const GLsizei kWidth1 = 16; |
| 1505 const GLsizei kHeight1 = 32; | 1522 const GLsizei kHeight1 = 32; |
| 1506 const GLenum kFormat1 = GL_RGBA4; | 1523 const GLenum kFormat1 = GL_RGBA4; |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 1531 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClient2Id); | 1548 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClient2Id); |
| 1532 ASSERT_TRUE(renderbuffer2 != NULL); | 1549 ASSERT_TRUE(renderbuffer2 != NULL); |
| 1533 renderbuffer_manager_->SetInfo( | 1550 renderbuffer_manager_->SetInfo( |
| 1534 renderbuffer2, kSamples2, kFormat2, kWidth2, kHeight2); | 1551 renderbuffer2, kSamples2, kFormat2, kWidth2, kHeight2); |
| 1535 framebuffer_->AttachRenderbuffer(GL_DEPTH_ATTACHMENT, renderbuffer2); | 1552 framebuffer_->AttachRenderbuffer(GL_DEPTH_ATTACHMENT, renderbuffer2); |
| 1536 | 1553 |
| 1537 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT), | 1554 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT), |
| 1538 framebuffer_->IsPossiblyComplete(feature_info_.get())); | 1555 framebuffer_->IsPossiblyComplete(feature_info_.get())); |
| 1539 } | 1556 } |
| 1540 | 1557 |
| 1558 TEST_F(FramebufferInfoES3Test, DuplicatedAttachments) { | |
| 1559 const GLuint kTextureClientId = 33; | |
| 1560 const GLuint kTextureServiceId = 333; | |
| 1561 const GLenum kTarget = GL_TEXTURE_2D; | |
| 1562 const GLint kLevel = 0; | |
| 1563 const GLenum kFormat = GL_RGBA; | |
| 1564 const GLenum kType = GL_UNSIGNED_BYTE; | |
| 1565 const GLint kWidth = 16; | |
| 1566 const GLint kHeight = 32; | |
| 1567 const GLint kDepth = 1; | |
| 1568 const GLint kBorder = 0; | |
| 1569 const GLint kSamples = 0; | |
| 1570 | |
| 1571 texture_manager_->CreateTexture(kTextureClientId, kTextureServiceId); | |
| 1572 scoped_refptr<TextureRef> texture( | |
| 1573 texture_manager_->GetTexture(kTextureClientId)); | |
| 1574 ASSERT_TRUE(texture.get() != nullptr); | |
| 1575 texture_manager_->SetTarget(texture.get(), GL_TEXTURE_2D); | |
| 1576 texture_manager_->SetLevelInfo(texture.get(), GL_TEXTURE_2D, kLevel, | |
| 1577 kFormat, kWidth, kHeight, kDepth, kBorder, | |
| 1578 kFormat, kType, gfx::Rect()); | |
| 1579 | |
| 1580 // Check an image is attached to more than one color attachment point | |
| 1581 // in a framebuffer. | |
| 1582 framebuffer_->AttachTexture( | |
| 1583 GL_COLOR_ATTACHMENT0, texture.get(), kTarget, kLevel, kSamples); | |
| 1584 framebuffer_->AttachTexture( | |
| 1585 GL_COLOR_ATTACHMENT1, texture.get(), kTarget, kLevel, kSamples); | |
| 1586 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_UNSUPPORTED), | |
| 1587 framebuffer_->IsPossiblyComplete(feature_info_.get())); | |
| 1588 } | |
| 1589 | |
| 1541 TEST_F(FramebufferInfoES3Test, ReadBuffer) { | 1590 TEST_F(FramebufferInfoES3Test, ReadBuffer) { |
| 1542 const GLuint kRenderbufferClientId = 33; | 1591 const GLuint kRenderbufferClientId = 33; |
| 1543 const GLuint kRenderbufferServiceId = 333; | 1592 const GLuint kRenderbufferServiceId = 333; |
| 1544 | 1593 |
| 1545 EXPECT_EQ(static_cast<GLenum>(GL_COLOR_ATTACHMENT0), | 1594 EXPECT_EQ(static_cast<GLenum>(GL_COLOR_ATTACHMENT0), |
| 1546 framebuffer_->read_buffer()); | 1595 framebuffer_->read_buffer()); |
| 1547 framebuffer_->set_read_buffer(GL_NONE); | 1596 framebuffer_->set_read_buffer(GL_NONE); |
| 1548 EXPECT_EQ(static_cast<GLenum>(GL_NONE), framebuffer_->read_buffer()); | 1597 EXPECT_EQ(static_cast<GLenum>(GL_NONE), framebuffer_->read_buffer()); |
| 1549 EXPECT_FALSE(framebuffer_->GetReadBufferAttachment()); | 1598 EXPECT_FALSE(framebuffer_->GetReadBufferAttachment()); |
| 1550 | 1599 |
| 1551 framebuffer_->set_read_buffer(GL_COLOR_ATTACHMENT1); | 1600 framebuffer_->set_read_buffer(GL_COLOR_ATTACHMENT1); |
| 1552 EXPECT_FALSE(framebuffer_->GetReadBufferAttachment()); | 1601 EXPECT_FALSE(framebuffer_->GetReadBufferAttachment()); |
| 1553 | 1602 |
| 1554 renderbuffer_manager_->CreateRenderbuffer( | 1603 renderbuffer_manager_->CreateRenderbuffer( |
| 1555 kRenderbufferClientId, kRenderbufferServiceId); | 1604 kRenderbufferClientId, kRenderbufferServiceId); |
| 1556 Renderbuffer* renderbuffer = | 1605 Renderbuffer* renderbuffer = |
| 1557 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); | 1606 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); |
| 1558 ASSERT_TRUE(renderbuffer != NULL); | 1607 ASSERT_TRUE(renderbuffer != NULL); |
| 1559 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); | 1608 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); |
| 1560 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); | 1609 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); |
| 1561 } | 1610 } |
| 1562 | 1611 |
| 1563 } // namespace gles2 | 1612 } // namespace gles2 |
| 1564 } // namespace gpu | 1613 } // namespace gpu |
| 1565 | 1614 |
| 1566 | 1615 |
| OLD | NEW |