| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "CCRenderSurface.h" | 7 #include "CCRenderSurface.h" |
| 8 | 8 |
| 9 #include "CCAppendQuadsData.h" | 9 #include "CCAppendQuadsData.h" |
| 10 #include "CCLayerImpl.h" | 10 #include "CCLayerImpl.h" |
| 11 #include "CCRenderPassSink.h" | 11 #include "CCRenderPassSink.h" |
| 12 #include "CCSharedQuadState.h" | 12 #include "CCSharedQuadState.h" |
| 13 #include "CCSingleThreadProxy.h" | 13 #include "CCSingleThreadProxy.h" |
| 14 #include "MockCCQuadCuller.h" | 14 #include "MockCCQuadCuller.h" |
| 15 #include "cc/own_ptr_vector.h" |
| 15 #include <gmock/gmock.h> | 16 #include <gmock/gmock.h> |
| 16 #include <gtest/gtest.h> | 17 #include <gtest/gtest.h> |
| 17 #include <public/WebTransformationMatrix.h> | 18 #include <public/WebTransformationMatrix.h> |
| 18 | 19 |
| 19 using namespace cc; | 20 using namespace cc; |
| 20 using WebKit::WebTransformationMatrix; | 21 using WebKit::WebTransformationMatrix; |
| 21 | 22 |
| 22 namespace { | 23 namespace { |
| 23 | 24 |
| 24 #define EXECUTE_AND_VERIFY_SURFACE_CHANGED(codeToTest) \ | 25 #define EXECUTE_AND_VERIFY_SURFACE_CHANGED(codeToTest) \ |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 | 101 |
| 101 CCQuadList quadList; | 102 CCQuadList quadList; |
| 102 CCSharedQuadStateList sharedStateList; | 103 CCSharedQuadStateList sharedStateList; |
| 103 MockCCQuadCuller mockQuadCuller(quadList, sharedStateList); | 104 MockCCQuadCuller mockQuadCuller(quadList, sharedStateList); |
| 104 CCAppendQuadsData appendQuadsData; | 105 CCAppendQuadsData appendQuadsData; |
| 105 | 106 |
| 106 bool forReplica = false; | 107 bool forReplica = false; |
| 107 renderSurface->appendQuads(mockQuadCuller, appendQuadsData, forReplica, CCRe
nderPass::Id(2, 0)); | 108 renderSurface->appendQuads(mockQuadCuller, appendQuadsData, forReplica, CCRe
nderPass::Id(2, 0)); |
| 108 | 109 |
| 109 ASSERT_EQ(1u, sharedStateList.size()); | 110 ASSERT_EQ(1u, sharedStateList.size()); |
| 110 CCSharedQuadState* sharedQuadState = sharedStateList[0].get(); | 111 CCSharedQuadState* sharedQuadState = sharedStateList[0]; |
| 111 | 112 |
| 112 EXPECT_EQ(30, sharedQuadState->quadTransform.m41()); | 113 EXPECT_EQ(30, sharedQuadState->quadTransform.m41()); |
| 113 EXPECT_EQ(40, sharedQuadState->quadTransform.m42()); | 114 EXPECT_EQ(40, sharedQuadState->quadTransform.m42()); |
| 114 EXPECT_EQ(contentRect, IntRect(sharedQuadState->visibleContentRect)); | 115 EXPECT_EQ(contentRect, IntRect(sharedQuadState->visibleContentRect)); |
| 115 EXPECT_EQ(1, sharedQuadState->opacity); | 116 EXPECT_EQ(1, sharedQuadState->opacity); |
| 116 EXPECT_FALSE(sharedQuadState->opaque); | 117 EXPECT_FALSE(sharedQuadState->opaque); |
| 117 } | 118 } |
| 118 | 119 |
| 119 class TestCCRenderPassSink : public CCRenderPassSink { | 120 class TestCCRenderPassSink : public CCRenderPassSink { |
| 120 public: | 121 public: |
| 121 virtual void appendRenderPass(PassOwnPtr<CCRenderPass> renderPass) OVERRIDE
{ m_renderPasses.append(renderPass); } | 122 virtual void appendRenderPass(PassOwnPtr<CCRenderPass> renderPass) OVERRIDE
{ m_renderPasses.append(renderPass); } |
| 122 | 123 |
| 123 const Vector<OwnPtr<CCRenderPass> >& renderPasses() const { return m_renderP
asses; } | 124 const OwnPtrVector<CCRenderPass>& renderPasses() const { return m_renderPass
es; } |
| 124 | 125 |
| 125 private: | 126 private: |
| 126 Vector<OwnPtr<CCRenderPass> > m_renderPasses; | 127 OwnPtrVector<CCRenderPass> m_renderPasses; |
| 127 | 128 |
| 128 }; | 129 }; |
| 129 | 130 |
| 130 TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectRenderPass) | 131 TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectRenderPass) |
| 131 { | 132 { |
| 132 // This will fake that we are on the correct thread for testing purposes. | 133 // This will fake that we are on the correct thread for testing purposes. |
| 133 DebugScopedSetImplThread setImplThread; | 134 DebugScopedSetImplThread setImplThread; |
| 134 | 135 |
| 135 OwnPtr<CCLayerImpl> rootLayer = CCLayerImpl::create(1); | 136 OwnPtr<CCLayerImpl> rootLayer = CCLayerImpl::create(1); |
| 136 | 137 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 147 origin.translate(30, 40); | 148 origin.translate(30, 40); |
| 148 | 149 |
| 149 renderSurface->setScreenSpaceTransform(origin); | 150 renderSurface->setScreenSpaceTransform(origin); |
| 150 renderSurface->setContentRect(contentRect); | 151 renderSurface->setContentRect(contentRect); |
| 151 | 152 |
| 152 TestCCRenderPassSink passSink; | 153 TestCCRenderPassSink passSink; |
| 153 | 154 |
| 154 renderSurface->appendRenderPasses(passSink); | 155 renderSurface->appendRenderPasses(passSink); |
| 155 | 156 |
| 156 ASSERT_EQ(1u, passSink.renderPasses().size()); | 157 ASSERT_EQ(1u, passSink.renderPasses().size()); |
| 157 CCRenderPass* pass = passSink.renderPasses()[0].get(); | 158 CCRenderPass* pass = passSink.renderPasses()[0]; |
| 158 | 159 |
| 159 EXPECT_EQ(CCRenderPass::Id(2, 0), pass->id()); | 160 EXPECT_EQ(CCRenderPass::Id(2, 0), pass->id()); |
| 160 EXPECT_EQ(contentRect, pass->outputRect()); | 161 EXPECT_EQ(contentRect, pass->outputRect()); |
| 161 EXPECT_EQ(origin, pass->transformToRootTarget()); | 162 EXPECT_EQ(origin, pass->transformToRootTarget()); |
| 162 } | 163 } |
| 163 | 164 |
| 164 } // namespace | 165 } // namespace |
| OLD | NEW |