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 |