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 |