| Index: Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp
|
| ===================================================================
|
| --- Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp (revision 114754)
|
| +++ Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp (working copy)
|
| @@ -27,12 +27,14 @@
|
|
|
| #include "cc/CCRenderPass.h"
|
|
|
| +#include "Color.h"
|
| #include "cc/CCDamageTracker.h"
|
| #include "cc/CCDebugBorderDrawQuad.h"
|
| #include "cc/CCLayerImpl.h"
|
| #include "cc/CCQuadCuller.h"
|
| #include "cc/CCRenderSurfaceDrawQuad.h"
|
| #include "cc/CCSharedQuadState.h"
|
| +#include "cc/CCSolidColorDrawQuad.h"
|
|
|
| namespace WebCore {
|
|
|
| @@ -88,4 +90,23 @@
|
| m_sharedQuadStateList.append(sharedQuadState.release());
|
| }
|
|
|
| +void CCRenderPass::appendQuadsToFillScreen(CCLayerImpl* rootLayer, const Color& screenBackgroundColor, const CCOcclusionTrackerImpl& occlusionTracker)
|
| +{
|
| + if (!rootLayer || !screenBackgroundColor.isValid())
|
| + return;
|
| +
|
| + Region fillRegion = occlusionTracker.computeVisibleRegionInScreen();
|
| + if (fillRegion.isEmpty())
|
| + return;
|
| +
|
| + OwnPtr<CCSharedQuadState> sharedQuadState = rootLayer->createSharedQuadState();
|
| + TransformationMatrix transformToLayerSpace = rootLayer->screenSpaceTransform().inverse();
|
| + Vector<IntRect> fillRects = fillRegion.rects();
|
| + for (size_t i = 0; i < fillRects.size(); ++i) {
|
| + IntRect layerRect = transformToLayerSpace.mapRect(fillRects[i]);
|
| + m_quadList.append(CCSolidColorDrawQuad::create(sharedQuadState.get(), layerRect, screenBackgroundColor));
|
| + }
|
| + m_sharedQuadStateList.append(sharedQuadState.release());
|
| }
|
| +
|
| +}
|
|
|