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

Unified Diff: cc/CCLayerTreeHostImpl.cpp

Issue 10898023: Update cc snapshot to WK r126941 (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebased Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/CCLayerImpl.cpp ('k') | cc/CCLayerTreeHostImplTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCLayerTreeHostImpl.cpp
diff --git a/cc/CCLayerTreeHostImpl.cpp b/cc/CCLayerTreeHostImpl.cpp
index 85ab6cabde072309596352fb94729672a3c9944a..1d67042f4999d85e52c034a8a6f0a5b443bfa79e 100644
--- a/cc/CCLayerTreeHostImpl.cpp
+++ b/cc/CCLayerTreeHostImpl.cpp
@@ -7,6 +7,7 @@
#include "CCLayerTreeHostImpl.h"
#include "CCActiveGestureAnimation.h"
+#include "CCAppendQuadsData.h"
#include "CCDamageTracker.h"
#include "CCDebugRectHistory.h"
#include "CCDelayBasedTimeSource.h"
@@ -286,27 +287,30 @@ bool CCLayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
for (CCLayerIteratorType it = CCLayerIteratorType::begin(frame.renderSurfaceLayerList); it != end; ++it) {
int targetRenderPassId = it.targetRenderSurfaceLayer()->id();
CCRenderPass* targetRenderPass = frame.renderPassesById.get(targetRenderPassId);
- bool hadMissingTiles = false;
occlusionTracker.enterLayer(it);
+ CCAppendQuadsData appendQuadsData;
+
if (it.representsContributingRenderSurface()) {
int contributingRenderPassId = it->id();
CCRenderPass* contributingRenderPass = frame.renderPassesById.get(contributingRenderPassId);
- targetRenderPass->appendQuadsForRenderSurfaceLayer(*it, contributingRenderPass, &occlusionTracker);
+ targetRenderPass->appendQuadsForRenderSurfaceLayer(*it, contributingRenderPass, &occlusionTracker, appendQuadsData);
} else if (it.representsItself() && !it->visibleContentRect().isEmpty()) {
bool hasOcclusionFromOutsideTargetSurface;
- if (occlusionTracker.occluded(*it, it->visibleContentRect(), &hasOcclusionFromOutsideTargetSurface)) {
- if (hasOcclusionFromOutsideTargetSurface)
- targetRenderPass->setHasOcclusionFromOutsideTargetSurface(hasOcclusionFromOutsideTargetSurface);
- } else {
+ if (occlusionTracker.occluded(*it, it->visibleContentRect(), &hasOcclusionFromOutsideTargetSurface))
+ appendQuadsData.hadOcclusionFromOutsideTargetSurface |= hasOcclusionFromOutsideTargetSurface;
+ else {
it->willDraw(m_resourceProvider.get());
frame.willDrawLayers.append(*it);
- targetRenderPass->appendQuadsForLayer(*it, &occlusionTracker, hadMissingTiles);
+ targetRenderPass->appendQuadsForLayer(*it, &occlusionTracker, appendQuadsData);
}
}
- if (hadMissingTiles) {
+ if (appendQuadsData.hadOcclusionFromOutsideTargetSurface)
+ targetRenderPass->setHasOcclusionFromOutsideTargetSurface(true);
+
+ if (appendQuadsData.hadMissingTiles) {
bool layerHasAnimatingTransform = it->screenSpaceTransformIsAnimating() || it->drawTransformIsAnimating();
if (layerHasAnimatingTransform)
drawFrame = false;
« no previous file with comments | « cc/CCLayerImpl.cpp ('k') | cc/CCLayerTreeHostImplTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698