| Index: cc/CCRenderSurface.cpp
|
| diff --git a/cc/CCRenderSurface.cpp b/cc/CCRenderSurface.cpp
|
| index dfbeeab66001f516db466d632cc74f2e597ebbf3..f4e1d8d6528044ae4ac969a764313e37332b386f 100644
|
| --- a/cc/CCRenderSurface.cpp
|
| +++ b/cc/CCRenderSurface.cpp
|
| @@ -11,6 +11,7 @@
|
| #include "base/stringprintf.h"
|
| #include "CCDamageTracker.h"
|
| #include "CCDebugBorderDrawQuad.h"
|
| +#include "CCDelegatedRendererLayerImpl.h"
|
| #include "CCLayerImpl.h"
|
| #include "CCMathUtil.h"
|
| #include "CCQuadSink.h"
|
| @@ -144,6 +145,19 @@ bool CCRenderSurface::surfacePropertyChangedOnlyFromDescendant() const
|
| return m_surfacePropertyChanged && !m_owningLayer->layerPropertyChanged();
|
| }
|
|
|
| +void CCRenderSurface::addContributingDelegatedRenderPassLayer(CCLayerImpl* layer)
|
| +{
|
| + ASSERT(m_layerList.contains(layer));
|
| + CCDelegatedRendererLayerImpl* delegatedRendererLayer = static_cast<CCDelegatedRendererLayerImpl*>(layer);
|
| + m_contributingDelegatedRenderPassLayerList.append(delegatedRendererLayer);
|
| +}
|
| +
|
| +void CCRenderSurface::clearLayerLists()
|
| +{
|
| + m_layerList.clear();
|
| + m_contributingDelegatedRenderPassLayerList.clear();
|
| +}
|
| +
|
| static inline IntRect computeClippedRectInTarget(const CCLayerImpl* owningLayer)
|
| {
|
| ASSERT(owningLayer->parent());
|
| @@ -174,6 +188,9 @@ CCRenderPass::Id CCRenderSurface::renderPassId()
|
|
|
| void CCRenderSurface::appendRenderPasses(CCRenderPassSink& passSink)
|
| {
|
| + for (size_t i = 0; i < m_contributingDelegatedRenderPassLayerList.size(); ++i)
|
| + m_contributingDelegatedRenderPassLayerList[i]->appendContributingRenderPasses(passSink);
|
| +
|
| OwnPtr<CCRenderPass> pass = CCRenderPass::create(renderPassId(), m_contentRect, m_screenSpaceTransform);
|
| pass->setDamageRect(m_damageTracker->currentDamageRect());
|
| pass->setFilters(m_owningLayer->filters());
|
|
|