Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Side by Side Diff: cc/CCRendererSoftwareTest.cpp

Issue 10979010: Remove WTF HashMap and PassOwnPtr dependencies for CCRenderPass (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/CCRendererGLTest.cpp ('k') | cc/cc.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "config.h" 5 #include "config.h"
6 6
7 #include "CCRendererSoftware.h" 7 #include "CCRendererSoftware.h"
8 8
9 #include "CCAnimationTestCommon.h" 9 #include "CCAnimationTestCommon.h"
10 #include "CCGeometryTestUtils.h" 10 #include "CCGeometryTestUtils.h"
11 #include "CCQuadSink.h" 11 #include "CCQuadSink.h"
12 #include "CCRenderPass.h" 12 #include "CCRenderPass.h"
13 #include "CCRenderPassDrawQuad.h" 13 #include "CCRenderPassDrawQuad.h"
14 #include "CCRenderPassTestCommon.h"
14 #include "CCSettings.h" 15 #include "CCSettings.h"
15 #include "CCSingleThreadProxy.h" // For DebugScopedSetImplThread 16 #include "CCSingleThreadProxy.h" // For DebugScopedSetImplThread
16 #include "CCSolidColorDrawQuad.h" 17 #include "CCSolidColorDrawQuad.h"
17 #include "CCTestCommon.h" 18 #include "CCTestCommon.h"
18 #include "CCTileDrawQuad.h" 19 #include "CCTileDrawQuad.h"
19 #include "FakeWebCompositorSoftwareOutputDevice.h" 20 #include "FakeWebCompositorSoftwareOutputDevice.h"
20 #include "FakeWebCompositorOutputSurface.h" 21 #include "FakeWebCompositorOutputSurface.h"
21 #include <gmock/gmock.h> 22 #include <gmock/gmock.h>
22 #include <gtest/gtest.h> 23 #include <gtest/gtest.h>
23 #include <wtf/OwnArrayPtr.h> 24 #include <wtf/OwnArrayPtr.h>
(...skipping 30 matching lines...) Expand all
54 protected: 55 protected:
55 DebugScopedSetImplThread m_alwaysImplThread; 56 DebugScopedSetImplThread m_alwaysImplThread;
56 57
57 OwnPtr<FakeWebCompositorOutputSurface> m_outputSurface; 58 OwnPtr<FakeWebCompositorOutputSurface> m_outputSurface;
58 OwnPtr<CCResourceProvider> m_resourceProvider; 59 OwnPtr<CCResourceProvider> m_resourceProvider;
59 OwnPtr<CCRendererSoftware> m_renderer; 60 OwnPtr<CCRendererSoftware> m_renderer;
60 IntSize m_viewportSize; 61 IntSize m_viewportSize;
61 CCLayerTreeSettings m_settings; 62 CCLayerTreeSettings m_settings;
62 }; 63 };
63 64
64 class CCTestRenderPass : public CCRenderPass {
65 public:
66 static PassOwnPtr<CCTestRenderPass> create(CCRenderPass::Id id, IntRect outp utRect, const WebTransformationMatrix& rootTransform) { return adoptPtr(new CCTe stRenderPass(id, outputRect, rootTransform)); }
67
68 void appendQuad(PassOwnPtr<CCDrawQuad> quad) { m_quadList.append(quad); }
69
70 protected:
71 CCTestRenderPass(CCRenderPass::Id id, IntRect outputRect, const WebTransform ationMatrix& rootTransform) : CCRenderPass(id, outputRect, rootTransform) { }
72 };
73
74
75 TEST_F(CCRendererSoftwareTest, solidColorQuad) 65 TEST_F(CCRendererSoftwareTest, solidColorQuad)
76 { 66 {
77 IntSize outerSize(100, 100); 67 IntSize outerSize(100, 100);
78 int outerPixels = outerSize.width() * outerSize.height(); 68 int outerPixels = outerSize.width() * outerSize.height();
79 IntSize innerSize(98, 98); 69 IntSize innerSize(98, 98);
80 IntRect outerRect(IntPoint(), outerSize); 70 IntRect outerRect(IntPoint(), outerSize);
81 IntRect innerRect(IntPoint(1, 1), innerSize); 71 IntRect innerRect(IntPoint(1, 1), innerSize);
82 setViewportSize(outerSize); 72 setViewportSize(outerSize);
83 73
84 initializeRenderer(); 74 initializeRenderer();
85 75
86 OwnPtr<CCSharedQuadState> sharedQuadState = CCSharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true); 76 OwnPtr<CCSharedQuadState> sharedQuadState = CCSharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true);
87 CCRenderPass::Id rootRenderPassId = CCRenderPass::Id(1, 1); 77 CCRenderPass::Id rootRenderPassId = CCRenderPass::Id(1, 1);
88 OwnPtr<CCRenderPass> rootRenderPass = CCTestRenderPass::create(rootRenderPas sId, outerRect, WebTransformationMatrix()); 78 scoped_ptr<CCRenderPass> rootRenderPass = CCTestRenderPass::create(rootRende rPassId, outerRect, WebTransformationMatrix());
89 CCTestRenderPass* testRenderPass = static_cast<CCTestRenderPass*>(rootRender Pass.get()); 79 CCTestRenderPass* testRenderPass = static_cast<CCTestRenderPass*>(rootRender Pass.get());
90 OwnPtr<CCDrawQuad> outerQuad = CCSolidColorDrawQuad::create(sharedQuadState. get(), outerRect, SK_ColorYELLOW); 80 OwnPtr<CCDrawQuad> outerQuad = CCSolidColorDrawQuad::create(sharedQuadState. get(), outerRect, SK_ColorYELLOW);
91 OwnPtr<CCDrawQuad> innerQuad = CCSolidColorDrawQuad::create(sharedQuadState. get(), innerRect, SK_ColorCYAN); 81 OwnPtr<CCDrawQuad> innerQuad = CCSolidColorDrawQuad::create(sharedQuadState. get(), innerRect, SK_ColorCYAN);
92 testRenderPass->appendQuad(innerQuad.release()); 82 testRenderPass->appendQuad(innerQuad.release());
93 testRenderPass->appendQuad(outerQuad.release()); 83 testRenderPass->appendQuad(outerQuad.release());
94 84
95 CCRenderPassList list; 85 CCRenderPassList list;
96 CCRenderPassIdHashMap hashmap; 86 CCRenderPassIdHashMap hashmap;
97 list.append(rootRenderPass.get()); 87 list.append(rootRenderPass.get());
98 hashmap.add(rootRenderPassId, rootRenderPass.release()); 88 hashmap.add(rootRenderPassId, rootRenderPass.Pass());
99 renderer()->drawFrame(list, hashmap); 89 renderer()->drawFrame(list, hashmap);
100 90
101 OwnArrayPtr<SkColor> pixels = adoptArrayPtr(new SkColor[deviceViewportSize() .width() * deviceViewportSize().height()]); 91 OwnArrayPtr<SkColor> pixels = adoptArrayPtr(new SkColor[deviceViewportSize() .width() * deviceViewportSize().height()]);
102 renderer()->getFramebufferPixels(pixels.get(), outerRect); 92 renderer()->getFramebufferPixels(pixels.get(), outerRect);
103 93
104 EXPECT_EQ(SK_ColorYELLOW, pixels[0]); 94 EXPECT_EQ(SK_ColorYELLOW, pixels[0]);
105 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]); 95 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]);
106 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]); 96 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]);
107 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]); 97 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]);
108 } 98 }
(...skipping 21 matching lines...) Expand all
130 for (int i = 0; i < innerPixels; i++) 120 for (int i = 0; i < innerPixels; i++)
131 cyanPixels[i] = cyan; 121 cyanPixels[i] = cyan;
132 122
133 resourceProvider()->upload(resourceYellow, reinterpret_cast<uint8_t*>(yellow Pixels.get()), IntRect(IntPoint(), outerSize), IntRect(IntPoint(), outerSize), I ntSize()); 123 resourceProvider()->upload(resourceYellow, reinterpret_cast<uint8_t*>(yellow Pixels.get()), IntRect(IntPoint(), outerSize), IntRect(IntPoint(), outerSize), I ntSize());
134 resourceProvider()->upload(resourceCyan, reinterpret_cast<uint8_t*>(cyanPixe ls.get()), IntRect(IntPoint(), innerSize), IntRect(IntPoint(), innerSize), IntSi ze()); 124 resourceProvider()->upload(resourceCyan, reinterpret_cast<uint8_t*>(cyanPixe ls.get()), IntRect(IntPoint(), innerSize), IntRect(IntPoint(), innerSize), IntSi ze());
135 125
136 IntRect rect = IntRect(IntPoint(), deviceViewportSize()); 126 IntRect rect = IntRect(IntPoint(), deviceViewportSize());
137 127
138 OwnPtr<CCSharedQuadState> sharedQuadState = CCSharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true); 128 OwnPtr<CCSharedQuadState> sharedQuadState = CCSharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true);
139 CCRenderPass::Id rootRenderPassId = CCRenderPass::Id(1, 1); 129 CCRenderPass::Id rootRenderPassId = CCRenderPass::Id(1, 1);
140 OwnPtr<CCRenderPass> rootRenderPass = CCTestRenderPass::create(rootRenderPas sId, IntRect(IntPoint(), deviceViewportSize()), WebTransformationMatrix()); 130 scoped_ptr<CCRenderPass> rootRenderPass = CCTestRenderPass::create(rootRende rPassId, IntRect(IntPoint(), deviceViewportSize()), WebTransformationMatrix());
141 CCTestRenderPass* testRenderPass = static_cast<CCTestRenderPass*>(rootRender Pass.get()); 131 CCTestRenderPass* testRenderPass = static_cast<CCTestRenderPass*>(rootRender Pass.get());
142 OwnPtr<CCDrawQuad> outerQuad = CCTileDrawQuad::create(sharedQuadState.get(), outerRect, outerRect, resourceYellow, IntPoint(), outerSize, 0, false, false, f alse, false, false); 132 OwnPtr<CCDrawQuad> outerQuad = CCTileDrawQuad::create(sharedQuadState.get(), outerRect, outerRect, resourceYellow, IntPoint(), outerSize, 0, false, false, f alse, false, false);
143 OwnPtr<CCDrawQuad> innerQuad = CCTileDrawQuad::create(sharedQuadState.get(), innerRect, innerRect, resourceCyan, IntPoint(), innerSize, 0, false, false, fal se, false, false); 133 OwnPtr<CCDrawQuad> innerQuad = CCTileDrawQuad::create(sharedQuadState.get(), innerRect, innerRect, resourceCyan, IntPoint(), innerSize, 0, false, false, fal se, false, false);
144 testRenderPass->appendQuad(innerQuad.release()); 134 testRenderPass->appendQuad(innerQuad.release());
145 testRenderPass->appendQuad(outerQuad.release()); 135 testRenderPass->appendQuad(outerQuad.release());
146 136
147 CCRenderPassList list; 137 CCRenderPassList list;
148 CCRenderPassIdHashMap hashmap; 138 CCRenderPassIdHashMap hashmap;
149 list.append(rootRenderPass.get()); 139 list.append(rootRenderPass.get());
150 hashmap.add(rootRenderPassId, rootRenderPass.release()); 140 hashmap.add(rootRenderPassId, rootRenderPass.Pass());
151 renderer()->drawFrame(list, hashmap); 141 renderer()->drawFrame(list, hashmap);
152 142
153 OwnArrayPtr<SkColor> pixels = adoptArrayPtr(new SkColor[deviceViewportSize() .width() * deviceViewportSize().height()]); 143 OwnArrayPtr<SkColor> pixels = adoptArrayPtr(new SkColor[deviceViewportSize() .width() * deviceViewportSize().height()]);
154 renderer()->getFramebufferPixels(pixels.get(), outerRect); 144 renderer()->getFramebufferPixels(pixels.get(), outerRect);
155 145
156 EXPECT_EQ(SK_ColorYELLOW, pixels[0]); 146 EXPECT_EQ(SK_ColorYELLOW, pixels[0]);
157 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]); 147 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]);
158 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]); 148 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]);
159 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]); 149 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]);
160 } 150 }
161 151
162 } // namespace 152 } // namespace
OLDNEW
« no previous file with comments | « cc/CCRendererGLTest.cpp ('k') | cc/cc.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698