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

Side by Side Diff: cc/CCOcclusionTrackerTest.cpp

Issue 11083003: Revert 160631 - [cc] Store CCLayerImpls as scoped_ptrs (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/CCLayerTreeHostTest.cpp ('k') | cc/CCQuadCullerTest.cpp » ('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 "CCOcclusionTracker.h" 7 #include "CCOcclusionTracker.h"
8 8
9 #include "CCAnimationTestCommon.h" 9 #include "CCAnimationTestCommon.h"
10 #include "CCGeometryTestUtils.h" 10 #include "CCGeometryTestUtils.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 private: 103 private:
104 bool m_overrideLayerClipRect; 104 bool m_overrideLayerClipRect;
105 IntRect m_layerClipRect; 105 IntRect m_layerClipRect;
106 }; 106 };
107 107
108 struct CCOcclusionTrackerTestMainThreadTypes { 108 struct CCOcclusionTrackerTestMainThreadTypes {
109 typedef LayerChromium LayerType; 109 typedef LayerChromium LayerType;
110 typedef RenderSurfaceChromium RenderSurfaceType; 110 typedef RenderSurfaceChromium RenderSurfaceType;
111 typedef TestContentLayerChromium ContentLayerType; 111 typedef TestContentLayerChromium ContentLayerType;
112 typedef scoped_refptr<LayerChromium> LayerPtrType; 112 typedef scoped_refptr<LayerChromium> LayerPtrType;
113 typedef scoped_refptr<LayerChromium> PassLayerPtrType;
113 typedef scoped_refptr<ContentLayerType> ContentLayerPtrType; 114 typedef scoped_refptr<ContentLayerType> ContentLayerPtrType;
115 typedef scoped_refptr<ContentLayerType> PassContentLayerPtrType;
114 typedef CCLayerIterator<LayerChromium, std::vector<scoped_refptr<LayerChromi um> >, RenderSurfaceChromium, CCLayerIteratorActions::FrontToBack> LayerIterator ; 116 typedef CCLayerIterator<LayerChromium, std::vector<scoped_refptr<LayerChromi um> >, RenderSurfaceChromium, CCLayerIteratorActions::FrontToBack> LayerIterator ;
115 typedef CCOcclusionTracker OcclusionTrackerType; 117 typedef CCOcclusionTracker OcclusionTrackerType;
116 118
117 static LayerPtrType createLayer() 119 static PassLayerPtrType createLayer()
118 { 120 {
119 return LayerChromium::create(); 121 return LayerChromium::create();
120 } 122 }
121 static ContentLayerPtrType createContentLayer() { return make_scoped_refptr( new ContentLayerType()); } 123 static PassContentLayerPtrType createContentLayer() { return make_scoped_ref ptr(new ContentLayerType()); }
122
123 static LayerPtrType passLayerPtr(ContentLayerPtrType& layer)
124 {
125 return layer.release();
126 }
127
128 static LayerPtrType passLayerPtr(LayerPtrType& layer)
129 {
130 return layer.release();
131 }
132 124
133 static void destroyLayer(LayerPtrType& layer) 125 static void destroyLayer(LayerPtrType& layer)
134 { 126 {
135 layer = NULL; 127 layer = NULL;
136 } 128 }
137 }; 129 };
138 130
139 struct CCOcclusionTrackerTestImplThreadTypes { 131 struct CCOcclusionTrackerTestImplThreadTypes {
140 typedef CCLayerImpl LayerType; 132 typedef CCLayerImpl LayerType;
141 typedef CCRenderSurface RenderSurfaceType; 133 typedef CCRenderSurface RenderSurfaceType;
142 typedef TestContentLayerImpl ContentLayerType; 134 typedef TestContentLayerImpl ContentLayerType;
143 typedef scoped_ptr<CCLayerImpl> LayerPtrType; 135 typedef OwnPtr<CCLayerImpl> LayerPtrType;
144 typedef scoped_ptr<ContentLayerType> ContentLayerPtrType; 136 typedef PassOwnPtr<CCLayerImpl> PassLayerPtrType;
137 typedef OwnPtr<ContentLayerType> ContentLayerPtrType;
138 typedef PassOwnPtr<ContentLayerType> PassContentLayerPtrType;
145 typedef CCLayerIterator<CCLayerImpl, std::vector<CCLayerImpl*>, CCRenderSurf ace, CCLayerIteratorActions::FrontToBack> LayerIterator; 139 typedef CCLayerIterator<CCLayerImpl, std::vector<CCLayerImpl*>, CCRenderSurf ace, CCLayerIteratorActions::FrontToBack> LayerIterator;
146 typedef CCOcclusionTrackerImpl OcclusionTrackerType; 140 typedef CCOcclusionTrackerImpl OcclusionTrackerType;
147 141
148 static LayerPtrType createLayer() { return CCLayerImpl::create(nextCCLayerIm plId++); } 142 static PassLayerPtrType createLayer() { return CCLayerImpl::create(nextCCLay erImplId++); }
149 static ContentLayerPtrType createContentLayer() { return make_scoped_ptr(new ContentLayerType(nextCCLayerImplId++)); } 143 static PassContentLayerPtrType createContentLayer() { return adoptPtr(new Co ntentLayerType(nextCCLayerImplId++)); }
150 static int nextCCLayerImplId; 144 static int nextCCLayerImplId;
151 145
152 static LayerPtrType passLayerPtr(LayerPtrType& layer)
153 {
154 return layer.Pass();
155 }
156
157 static LayerPtrType passLayerPtr(ContentLayerPtrType& layer)
158 {
159 return layer.PassAs<LayerType>();
160 }
161
162 static void destroyLayer(LayerPtrType& layer) 146 static void destroyLayer(LayerPtrType& layer)
163 { 147 {
164 layer.reset(); 148 layer.clear();
165 } 149 }
166 }; 150 };
167 151
168 int CCOcclusionTrackerTestImplThreadTypes::nextCCLayerImplId = 1; 152 int CCOcclusionTrackerTestImplThreadTypes::nextCCLayerImplId = 1;
169 153
170 template<typename Types, bool opaqueLayers> 154 template<typename Types, bool opaqueLayers>
171 class CCOcclusionTrackerTest : public testing::Test { 155 class CCOcclusionTrackerTest : public testing::Test {
172 protected: 156 protected:
173 CCOcclusionTrackerTest() 157 CCOcclusionTrackerTest()
174 : testing::Test() 158 : testing::Test()
(...skipping 11 matching lines...) Expand all
186 CCLayerTreeHost::setNeedsFilterContext(false); 170 CCLayerTreeHost::setNeedsFilterContext(false);
187 } 171 }
188 172
189 typename Types::ContentLayerType* createRoot(const WebTransformationMatrix& transform, const FloatPoint& position, const IntSize& bounds) 173 typename Types::ContentLayerType* createRoot(const WebTransformationMatrix& transform, const FloatPoint& position, const IntSize& bounds)
190 { 174 {
191 typename Types::ContentLayerPtrType layer(Types::createContentLayer()); 175 typename Types::ContentLayerPtrType layer(Types::createContentLayer());
192 typename Types::ContentLayerType* layerPtr = layer.get(); 176 typename Types::ContentLayerType* layerPtr = layer.get();
193 setProperties(layerPtr, transform, position, bounds); 177 setProperties(layerPtr, transform, position, bounds);
194 178
195 ASSERT(!m_root); 179 ASSERT(!m_root);
196 m_root = Types::passLayerPtr(layer); 180 m_root = layer.release();
197 return layerPtr; 181 return layerPtr;
198 } 182 }
199 183
200 typename Types::LayerType* createLayer(typename Types::LayerType* parent, co nst WebTransformationMatrix& transform, const FloatPoint& position, const IntSiz e& bounds) 184 typename Types::LayerType* createLayer(typename Types::LayerType* parent, co nst WebTransformationMatrix& transform, const FloatPoint& position, const IntSiz e& bounds)
201 { 185 {
202 typename Types::LayerPtrType layer(Types::createLayer()); 186 typename Types::LayerPtrType layer(Types::createLayer());
203 typename Types::LayerType* layerPtr = layer.get(); 187 typename Types::LayerType* layerPtr = layer.get();
204 setProperties(layerPtr, transform, position, bounds); 188 setProperties(layerPtr, transform, position, bounds);
205 parent->addChild(Types::passLayerPtr(layer)); 189 parent->addChild(layer.release());
206 return layerPtr; 190 return layerPtr;
207 } 191 }
208 192
209 typename Types::LayerType* createSurface(typename Types::LayerType* parent, const WebTransformationMatrix& transform, const FloatPoint& position, const IntS ize& bounds) 193 typename Types::LayerType* createSurface(typename Types::LayerType* parent, const WebTransformationMatrix& transform, const FloatPoint& position, const IntS ize& bounds)
210 { 194 {
211 typename Types::LayerType* layer = createLayer(parent, transform, positi on, bounds); 195 typename Types::LayerType* layer = createLayer(parent, transform, positi on, bounds);
212 WebFilterOperations filters; 196 WebFilterOperations filters;
213 filters.append(WebFilterOperation::createGrayscaleFilter(0.5)); 197 filters.append(WebFilterOperation::createGrayscaleFilter(0.5));
214 layer->setFilters(filters); 198 layer->setFilters(filters);
215 return layer; 199 return layer;
216 } 200 }
217 201
218 typename Types::ContentLayerType* createDrawingLayer(typename Types::LayerTy pe* parent, const WebTransformationMatrix& transform, const FloatPoint& position , const IntSize& bounds, bool opaque) 202 typename Types::ContentLayerType* createDrawingLayer(typename Types::LayerTy pe* parent, const WebTransformationMatrix& transform, const FloatPoint& position , const IntSize& bounds, bool opaque)
219 { 203 {
220 typename Types::ContentLayerPtrType layer(Types::createContentLayer()); 204 typename Types::ContentLayerPtrType layer(Types::createContentLayer());
221 typename Types::ContentLayerType* layerPtr = layer.get(); 205 typename Types::ContentLayerType* layerPtr = layer.get();
222 setProperties(layerPtr, transform, position, bounds); 206 setProperties(layerPtr, transform, position, bounds);
223 207
224 if (opaqueLayers) 208 if (opaqueLayers)
225 layerPtr->setContentsOpaque(opaque); 209 layerPtr->setContentsOpaque(opaque);
226 else { 210 else {
227 layerPtr->setContentsOpaque(false); 211 layerPtr->setContentsOpaque(false);
228 if (opaque) 212 if (opaque)
229 layerPtr->setOpaqueContentsRect(IntRect(IntPoint(), bounds)); 213 layerPtr->setOpaqueContentsRect(IntRect(IntPoint(), bounds));
230 else 214 else
231 layerPtr->setOpaqueContentsRect(IntRect()); 215 layerPtr->setOpaqueContentsRect(IntRect());
232 } 216 }
233 217
234 parent->addChild(Types::passLayerPtr(layer)); 218 parent->addChild(layer.release());
235 return layerPtr; 219 return layerPtr;
236 } 220 }
237 221
238 typename Types::LayerType* createReplicaLayer(typename Types::LayerType* own ingLayer, const WebTransformationMatrix& transform, const FloatPoint& position, const IntSize& bounds) 222 typename Types::LayerType* createReplicaLayer(typename Types::LayerType* own ingLayer, const WebTransformationMatrix& transform, const FloatPoint& position, const IntSize& bounds)
239 { 223 {
240 typename Types::ContentLayerPtrType layer(Types::createContentLayer()); 224 typename Types::ContentLayerPtrType layer(Types::createContentLayer());
241 typename Types::ContentLayerType* layerPtr = layer.get(); 225 typename Types::ContentLayerType* layerPtr = layer.get();
242 setProperties(layerPtr, transform, position, bounds); 226 setProperties(layerPtr, transform, position, bounds);
243 setReplica(owningLayer, Types::passLayerPtr(layer)); 227 setReplica(owningLayer, layer.release());
244 return layerPtr; 228 return layerPtr;
245 } 229 }
246 230
247 typename Types::LayerType* createMaskLayer(typename Types::LayerType* owning Layer, const IntSize& bounds) 231 typename Types::LayerType* createMaskLayer(typename Types::LayerType* owning Layer, const IntSize& bounds)
248 { 232 {
249 typename Types::ContentLayerPtrType layer(Types::createContentLayer()); 233 typename Types::ContentLayerPtrType layer(Types::createContentLayer());
250 typename Types::ContentLayerType* layerPtr = layer.get(); 234 typename Types::ContentLayerType* layerPtr = layer.get();
251 setProperties(layerPtr, identityMatrix, FloatPoint(), bounds); 235 setProperties(layerPtr, identityMatrix, FloatPoint(), bounds);
252 setMask(owningLayer, Types::passLayerPtr(layer)); 236 setMask(owningLayer, layer.release());
253 return layerPtr; 237 return layerPtr;
254 } 238 }
255 239
256 typename Types::ContentLayerType* createDrawingSurface(typename Types::Layer Type* parent, const WebTransformationMatrix& transform, const FloatPoint& positi on, const IntSize& bounds, bool opaque) 240 typename Types::ContentLayerType* createDrawingSurface(typename Types::Layer Type* parent, const WebTransformationMatrix& transform, const FloatPoint& positi on, const IntSize& bounds, bool opaque)
257 { 241 {
258 typename Types::ContentLayerType* layer = createDrawingLayer(parent, tra nsform, position, bounds, opaque); 242 typename Types::ContentLayerType* layer = createDrawingLayer(parent, tra nsform, position, bounds, opaque);
259 WebFilterOperations filters; 243 WebFilterOperations filters;
260 filters.append(WebFilterOperation::createGrayscaleFilter(0.5)); 244 filters.append(WebFilterOperation::createGrayscaleFilter(0.5));
261 layer->setFilters(filters); 245 layer->setFilters(filters);
262 return layer; 246 return layer;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 347
364 layer->setContentBounds(layer->bounds()); 348 layer->setContentBounds(layer->bounds());
365 } 349 }
366 350
367 void setReplica(LayerChromium* owningLayer, scoped_refptr<LayerChromium> lay er) 351 void setReplica(LayerChromium* owningLayer, scoped_refptr<LayerChromium> lay er)
368 { 352 {
369 owningLayer->setReplicaLayer(layer.get()); 353 owningLayer->setReplicaLayer(layer.get());
370 m_replicaLayers.push_back(layer); 354 m_replicaLayers.push_back(layer);
371 } 355 }
372 356
373 void setReplica(CCLayerImpl* owningLayer, scoped_ptr<CCLayerImpl> layer) 357 void setReplica(CCLayerImpl* owningLayer, PassOwnPtr<CCLayerImpl> layer)
374 { 358 {
375 owningLayer->setReplicaLayer(layer.Pass()); 359 owningLayer->setReplicaLayer(layer);
376 } 360 }
377 361
378 void setMask(LayerChromium* owningLayer, scoped_refptr<LayerChromium> layer) 362 void setMask(LayerChromium* owningLayer, scoped_refptr<LayerChromium> layer)
379 { 363 {
380 owningLayer->setMaskLayer(layer.get()); 364 owningLayer->setMaskLayer(layer.get());
381 m_maskLayers.push_back(layer); 365 m_maskLayers.push_back(layer);
382 } 366 }
383 367
384 void setMask(CCLayerImpl* owningLayer, scoped_ptr<CCLayerImpl> layer) 368 void setMask(CCLayerImpl* owningLayer, PassOwnPtr<CCLayerImpl> layer)
385 { 369 {
386 owningLayer->setMaskLayer(layer.Pass()); 370 owningLayer->setMaskLayer(layer);
387 } 371 }
388 372
389 // These hold ownership of the layers for the duration of the test. 373 // These hold ownership of the layers for the duration of the test.
390 typename Types::LayerPtrType m_root; 374 typename Types::LayerPtrType m_root;
391 std::vector<scoped_refptr<LayerChromium> > m_renderSurfaceLayerListChromium; 375 std::vector<scoped_refptr<LayerChromium> > m_renderSurfaceLayerListChromium;
392 std::vector<CCLayerImpl*> m_renderSurfaceLayerListImpl; 376 std::vector<CCLayerImpl*> m_renderSurfaceLayerListImpl;
393 typename Types::LayerIterator m_layerIteratorBegin; 377 typename Types::LayerIterator m_layerIteratorBegin;
394 typename Types::LayerIterator m_layerIterator; 378 typename Types::LayerIterator m_layerIterator;
395 typename Types::LayerType* m_lastLayerVisited; 379 typename Types::LayerType* m_lastLayerVisited;
396 std::vector<scoped_refptr<LayerChromium> > m_replicaLayers; 380 std::vector<scoped_refptr<LayerChromium> > m_replicaLayers;
(...skipping 2639 matching lines...) Expand 10 before | Expand all | Expand 10 after
3036 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInS creenSpace().bounds()); 3020 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInS creenSpace().bounds());
3037 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); 3021 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size());
3038 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInT argetSurface().bounds()); 3022 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInT argetSurface().bounds());
3039 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); 3023 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size());
3040 } 3024 }
3041 }; 3025 };
3042 3026
3043 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestMinimumTrackingSize); 3027 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestMinimumTrackingSize);
3044 3028
3045 } // namespace 3029 } // namespace
OLDNEW
« no previous file with comments | « cc/CCLayerTreeHostTest.cpp ('k') | cc/CCQuadCullerTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698