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

Side by Side Diff: cc/CCRenderSurface.cpp

Issue 10916307: Add the ubercomp DelegatedRendererLayer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use OwnPtrVector Created 8 years, 3 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/CCRenderSurface.h ('k') | cc/CCRenderSurfaceTest.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 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 #if USE(ACCELERATED_COMPOSITING) 7 #if USE(ACCELERATED_COMPOSITING)
8 8
9 #include "CCRenderSurface.h" 9 #include "CCRenderSurface.h"
10 10
11 #include "base/stringprintf.h" 11 #include "base/stringprintf.h"
12 #include "CCDamageTracker.h" 12 #include "CCDamageTracker.h"
13 #include "CCDebugBorderDrawQuad.h" 13 #include "CCDebugBorderDrawQuad.h"
14 #include "CCDelegatedRendererLayerImpl.h"
14 #include "CCLayerImpl.h" 15 #include "CCLayerImpl.h"
15 #include "CCMathUtil.h" 16 #include "CCMathUtil.h"
16 #include "CCQuadSink.h" 17 #include "CCQuadSink.h"
17 #include "CCRenderPass.h" 18 #include "CCRenderPass.h"
18 #include "CCRenderPassDrawQuad.h" 19 #include "CCRenderPassDrawQuad.h"
19 #include "CCRenderPassSink.h" 20 #include "CCRenderPassSink.h"
20 #include "CCSharedQuadState.h" 21 #include "CCSharedQuadState.h"
21 #include <public/WebTransformationMatrix.h> 22 #include <public/WebTransformationMatrix.h>
22 23
23 using WebKit::WebTransformationMatrix; 24 using WebKit::WebTransformationMatrix;
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 // 138 //
138 ASSERT(m_owningLayer); 139 ASSERT(m_owningLayer);
139 return m_surfacePropertyChanged || m_owningLayer->layerPropertyChanged(); 140 return m_surfacePropertyChanged || m_owningLayer->layerPropertyChanged();
140 } 141 }
141 142
142 bool CCRenderSurface::surfacePropertyChangedOnlyFromDescendant() const 143 bool CCRenderSurface::surfacePropertyChangedOnlyFromDescendant() const
143 { 144 {
144 return m_surfacePropertyChanged && !m_owningLayer->layerPropertyChanged(); 145 return m_surfacePropertyChanged && !m_owningLayer->layerPropertyChanged();
145 } 146 }
146 147
148 void CCRenderSurface::addContributingDelegatedRenderPassLayer(CCLayerImpl* layer )
149 {
150 ASSERT(m_layerList.contains(layer));
151 CCDelegatedRendererLayerImpl* delegatedRendererLayer = static_cast<CCDelegat edRendererLayerImpl*>(layer);
152 m_contributingDelegatedRenderPassLayerList.append(delegatedRendererLayer);
153 }
154
155 void CCRenderSurface::clearLayerLists()
156 {
157 m_layerList.clear();
158 m_contributingDelegatedRenderPassLayerList.clear();
159 }
160
147 static inline IntRect computeClippedRectInTarget(const CCLayerImpl* owningLayer) 161 static inline IntRect computeClippedRectInTarget(const CCLayerImpl* owningLayer)
148 { 162 {
149 ASSERT(owningLayer->parent()); 163 ASSERT(owningLayer->parent());
150 164
151 const CCLayerImpl* renderTarget = owningLayer->parent()->renderTarget(); 165 const CCLayerImpl* renderTarget = owningLayer->parent()->renderTarget();
152 const CCRenderSurface* self = owningLayer->renderSurface(); 166 const CCRenderSurface* self = owningLayer->renderSurface();
153 167
154 IntRect clippedRectInTarget = self->clipRect(); 168 IntRect clippedRectInTarget = self->clipRect();
155 if (owningLayer->backgroundFilters().hasFilterThatMovesPixels()) { 169 if (owningLayer->backgroundFilters().hasFilterThatMovesPixels()) {
156 // If the layer has background filters that move pixels, we cannot sciss or as tightly. 170 // If the layer has background filters that move pixels, we cannot sciss or as tightly.
(...skipping 10 matching lines...) Expand all
167 CCRenderPass::Id CCRenderSurface::renderPassId() 181 CCRenderPass::Id CCRenderSurface::renderPassId()
168 { 182 {
169 int layerId = m_owningLayer->id(); 183 int layerId = m_owningLayer->id();
170 int subId = 0; 184 int subId = 0;
171 ASSERT(layerId > 0); 185 ASSERT(layerId > 0);
172 return CCRenderPass::Id(layerId, subId); 186 return CCRenderPass::Id(layerId, subId);
173 } 187 }
174 188
175 void CCRenderSurface::appendRenderPasses(CCRenderPassSink& passSink) 189 void CCRenderSurface::appendRenderPasses(CCRenderPassSink& passSink)
176 { 190 {
191 for (size_t i = 0; i < m_contributingDelegatedRenderPassLayerList.size(); ++ i)
192 m_contributingDelegatedRenderPassLayerList[i]->appendContributingRenderP asses(passSink);
193
177 OwnPtr<CCRenderPass> pass = CCRenderPass::create(renderPassId(), m_contentRe ct, m_screenSpaceTransform); 194 OwnPtr<CCRenderPass> pass = CCRenderPass::create(renderPassId(), m_contentRe ct, m_screenSpaceTransform);
178 pass->setDamageRect(m_damageTracker->currentDamageRect()); 195 pass->setDamageRect(m_damageTracker->currentDamageRect());
179 pass->setFilters(m_owningLayer->filters()); 196 pass->setFilters(m_owningLayer->filters());
180 pass->setBackgroundFilters(m_owningLayer->backgroundFilters()); 197 pass->setBackgroundFilters(m_owningLayer->backgroundFilters());
181 passSink.appendRenderPass(pass.release()); 198 passSink.appendRenderPass(pass.release());
182 } 199 }
183 200
184 void CCRenderSurface::appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appen dQuadsData, bool forReplica, CCRenderPass::Id renderPassId) 201 void CCRenderSurface::appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appen dQuadsData, bool forReplica, CCRenderPass::Id renderPassId)
185 { 202 {
186 ASSERT(!forReplica || m_owningLayer->hasReplica()); 203 ASSERT(!forReplica || m_owningLayer->hasReplica());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 244
228 CCResourceProvider::ResourceId maskResourceId = maskLayer ? maskLayer->conte ntsResourceId() : 0; 245 CCResourceProvider::ResourceId maskResourceId = maskLayer ? maskLayer->conte ntsResourceId() : 0;
229 IntRect contentsChangedSinceLastFrame = contentsChanged() ? m_contentRect : IntRect(); 246 IntRect contentsChangedSinceLastFrame = contentsChanged() ? m_contentRect : IntRect();
230 247
231 quadSink.append(CCRenderPassDrawQuad::create(sharedQuadState, contentRect(), renderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame, 248 quadSink.append(CCRenderPassDrawQuad::create(sharedQuadState, contentRect(), renderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame,
232 maskTexCoordScaleX, maskTexCoor dScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY), appendQuadsData); 249 maskTexCoordScaleX, maskTexCoor dScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY), appendQuadsData);
233 } 250 }
234 251
235 } 252 }
236 #endif // USE(ACCELERATED_COMPOSITING) 253 #endif // USE(ACCELERATED_COMPOSITING)
OLDNEW
« no previous file with comments | « cc/CCRenderSurface.h ('k') | cc/CCRenderSurfaceTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698