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

Unified Diff: cc/CCRenderSurface.cpp

Issue 11122003: [cc] Rename all cc/ filenames to Chromium style (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/CCRenderSurface.h ('k') | cc/CCRenderSurfaceFilters.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCRenderSurface.cpp
diff --git a/cc/CCRenderSurface.cpp b/cc/CCRenderSurface.cpp
deleted file mode 100644
index f10c83bf7e743e7a73d8952fdd542831c1c181f0..0000000000000000000000000000000000000000
--- a/cc/CCRenderSurface.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-// Copyright 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "config.h"
-
-#if USE(ACCELERATED_COMPOSITING)
-
-#include "CCRenderSurface.h"
-
-#include "base/stringprintf.h"
-#include "CCDamageTracker.h"
-#include "CCDebugBorderDrawQuad.h"
-#include "CCDelegatedRendererLayerImpl.h"
-#include "CCLayerImpl.h"
-#include "CCMathUtil.h"
-#include "CCQuadSink.h"
-#include "CCRenderPass.h"
-#include "CCRenderPassDrawQuad.h"
-#include "CCRenderPassSink.h"
-#include "CCSharedQuadState.h"
-#include <public/WebTransformationMatrix.h>
-
-using WebKit::WebTransformationMatrix;
-
-namespace cc {
-
-static const int debugSurfaceBorderWidth = 2;
-static const int debugSurfaceBorderAlpha = 100;
-static const int debugSurfaceBorderColorRed = 0;
-static const int debugSurfaceBorderColorGreen = 0;
-static const int debugSurfaceBorderColorBlue = 255;
-static const int debugReplicaBorderColorRed = 160;
-static const int debugReplicaBorderColorGreen = 0;
-static const int debugReplicaBorderColorBlue = 255;
-
-CCRenderSurface::CCRenderSurface(CCLayerImpl* owningLayer)
- : m_owningLayer(owningLayer)
- , m_surfacePropertyChanged(false)
- , m_drawOpacity(1)
- , m_drawOpacityIsAnimating(false)
- , m_targetSurfaceTransformsAreAnimating(false)
- , m_screenSpaceTransformsAreAnimating(false)
- , m_nearestAncestorThatMovesPixels(0)
- , m_targetRenderSurfaceLayerIndexHistory(0)
- , m_currentLayerIndexHistory(0)
-{
- m_damageTracker = CCDamageTracker::create();
-}
-
-CCRenderSurface::~CCRenderSurface()
-{
-}
-
-FloatRect CCRenderSurface::drawableContentRect() const
-{
- FloatRect drawableContentRect = CCMathUtil::mapClippedRect(m_drawTransform, m_contentRect);
- if (m_owningLayer->hasReplica())
- drawableContentRect.unite(CCMathUtil::mapClippedRect(m_replicaDrawTransform, m_contentRect));
-
- return drawableContentRect;
-}
-
-std::string CCRenderSurface::name() const
-{
- return base::StringPrintf("RenderSurface(id=%i,owner=%s)", m_owningLayer->id(), m_owningLayer->debugName().data());
-}
-
-static std::string indentString(int indent)
-{
- std::string str;
- for (int i = 0; i != indent; ++i)
- str.append(" ");
- return str;
-}
-
-void CCRenderSurface::dumpSurface(std::string* str, int indent) const
-{
- std::string indentStr = indentString(indent);
- str->append(indentStr);
- base::StringAppendF(str, "%s\n", name().data());
-
- indentStr.append(" ");
- str->append(indentStr);
- base::StringAppendF(str, "contentRect: (%d, %d, %d, %d)\n", m_contentRect.x(), m_contentRect.y(), m_contentRect.width(), m_contentRect.height());
-
- str->append(indentStr);
- base::StringAppendF(str, "drawTransform: %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f\n",
- m_drawTransform.m11(), m_drawTransform.m12(), m_drawTransform.m13(), m_drawTransform.m14(),
- m_drawTransform.m21(), m_drawTransform.m22(), m_drawTransform.m23(), m_drawTransform.m24(),
- m_drawTransform.m31(), m_drawTransform.m32(), m_drawTransform.m33(), m_drawTransform.m34(),
- m_drawTransform.m41(), m_drawTransform.m42(), m_drawTransform.m43(), m_drawTransform.m44());
-
- str->append(indentStr);
- base::StringAppendF(str, "damageRect is pos(%f, %f), size(%f, %f)\n",
- m_damageTracker->currentDamageRect().x(), m_damageTracker->currentDamageRect().y(),
- m_damageTracker->currentDamageRect().width(), m_damageTracker->currentDamageRect().height());
-}
-
-int CCRenderSurface::owningLayerId() const
-{
- return m_owningLayer ? m_owningLayer->id() : 0;
-}
-
-
-void CCRenderSurface::setClipRect(const IntRect& clipRect)
-{
- if (m_clipRect == clipRect)
- return;
-
- m_surfacePropertyChanged = true;
- m_clipRect = clipRect;
-}
-
-bool CCRenderSurface::contentsChanged() const
-{
- return !m_damageTracker->currentDamageRect().isEmpty();
-}
-
-void CCRenderSurface::setContentRect(const IntRect& contentRect)
-{
- if (m_contentRect == contentRect)
- return;
-
- m_surfacePropertyChanged = true;
- m_contentRect = contentRect;
-}
-
-bool CCRenderSurface::surfacePropertyChanged() const
-{
- // Surface property changes are tracked as follows:
- //
- // - m_surfacePropertyChanged is flagged when the clipRect or contentRect change. As
- // of now, these are the only two properties that can be affected by descendant layers.
- //
- // - all other property changes come from the owning layer (or some ancestor layer
- // that propagates its change to the owning layer).
- //
- ASSERT(m_owningLayer);
- return m_surfacePropertyChanged || m_owningLayer->layerPropertyChanged();
-}
-
-bool CCRenderSurface::surfacePropertyChangedOnlyFromDescendant() const
-{
- return m_surfacePropertyChanged && !m_owningLayer->layerPropertyChanged();
-}
-
-void CCRenderSurface::addContributingDelegatedRenderPassLayer(CCLayerImpl* layer)
-{
- ASSERT(std::find(m_layerList.begin(), m_layerList.end(), layer) != m_layerList.end());
- CCDelegatedRendererLayerImpl* delegatedRendererLayer = static_cast<CCDelegatedRendererLayerImpl*>(layer);
- m_contributingDelegatedRenderPassLayerList.push_back(delegatedRendererLayer);
-}
-
-void CCRenderSurface::clearLayerLists()
-{
- m_layerList.clear();
- m_contributingDelegatedRenderPassLayerList.clear();
-}
-
-static inline IntRect computeClippedRectInTarget(const CCLayerImpl* owningLayer)
-{
- ASSERT(owningLayer->parent());
-
- const CCLayerImpl* renderTarget = owningLayer->parent()->renderTarget();
- const CCRenderSurface* self = owningLayer->renderSurface();
-
- IntRect clippedRectInTarget = self->clipRect();
- if (owningLayer->backgroundFilters().hasFilterThatMovesPixels()) {
- // If the layer has background filters that move pixels, we cannot scissor as tightly.
- // FIXME: this should be able to be a tighter scissor, perhaps expanded by the filter outsets?
- clippedRectInTarget = renderTarget->renderSurface()->contentRect();
- } else if (clippedRectInTarget.isEmpty()) {
- // For surfaces, empty clipRect means that the surface does not clip anything.
- clippedRectInTarget = enclosingIntRect(intersection(renderTarget->renderSurface()->contentRect(), self->drawableContentRect()));
- } else
- clippedRectInTarget.intersect(enclosingIntRect(self->drawableContentRect()));
- return clippedRectInTarget;
-}
-
-CCRenderPass::Id CCRenderSurface::renderPassId()
-{
- int layerId = m_owningLayer->id();
- int subId = 0;
- ASSERT(layerId > 0);
- return CCRenderPass::Id(layerId, subId);
-}
-
-void CCRenderSurface::appendRenderPasses(CCRenderPassSink& passSink)
-{
- for (size_t i = 0; i < m_contributingDelegatedRenderPassLayerList.size(); ++i)
- m_contributingDelegatedRenderPassLayerList[i]->appendContributingRenderPasses(passSink);
-
- scoped_ptr<CCRenderPass> pass = CCRenderPass::create(renderPassId(), m_contentRect, m_screenSpaceTransform);
- pass->setDamageRect(m_damageTracker->currentDamageRect());
- pass->setFilters(m_owningLayer->filters());
- pass->setBackgroundFilters(m_owningLayer->backgroundFilters());
- passSink.appendRenderPass(pass.Pass());
-}
-
-void CCRenderSurface::appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appendQuadsData, bool forReplica, CCRenderPass::Id renderPassId)
-{
- ASSERT(!forReplica || m_owningLayer->hasReplica());
-
- IntRect clippedRectInTarget = computeClippedRectInTarget(m_owningLayer);
- bool isOpaque = false;
- const WebTransformationMatrix& drawTransform = forReplica ? m_replicaDrawTransform : m_drawTransform;
- CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(CCSharedQuadState::create(drawTransform, m_contentRect, clippedRectInTarget, m_drawOpacity, isOpaque).Pass());
-
- if (m_owningLayer->hasDebugBorders()) {
- int red = forReplica ? debugReplicaBorderColorRed : debugSurfaceBorderColorRed;
- int green = forReplica ? debugReplicaBorderColorGreen : debugSurfaceBorderColorGreen;
- int blue = forReplica ? debugReplicaBorderColorBlue : debugSurfaceBorderColorBlue;
- SkColor color = SkColorSetARGB(debugSurfaceBorderAlpha, red, green, blue);
- quadSink.append(CCDebugBorderDrawQuad::create(sharedQuadState, contentRect(), color, debugSurfaceBorderWidth).PassAs<CCDrawQuad>(), appendQuadsData);
- }
-
- // FIXME: By using the same RenderSurface for both the content and its reflection,
- // it's currently not possible to apply a separate mask to the reflection layer
- // or correctly handle opacity in reflections (opacity must be applied after drawing
- // both the layer and its reflection). The solution is to introduce yet another RenderSurface
- // to draw the layer and its reflection in. For now we only apply a separate reflection
- // mask if the contents don't have a mask of their own.
- CCLayerImpl* maskLayer = m_owningLayer->maskLayer();
- if (maskLayer && (!maskLayer->drawsContent() || maskLayer->bounds().isEmpty()))
- maskLayer = 0;
-
- if (!maskLayer && forReplica) {
- maskLayer = m_owningLayer->replicaLayer()->maskLayer();
- if (maskLayer && (!maskLayer->drawsContent() || maskLayer->bounds().isEmpty()))
- maskLayer = 0;
- }
-
- float maskTexCoordScaleX = 1;
- float maskTexCoordScaleY = 1;
- float maskTexCoordOffsetX = 1;
- float maskTexCoordOffsetY = 1;
- if (maskLayer) {
- maskTexCoordScaleX = static_cast<float>(contentRect().width()) / maskLayer->contentBounds().width();
- maskTexCoordScaleY = static_cast<float>(contentRect().height()) / maskLayer->contentBounds().height();
- maskTexCoordOffsetX = static_cast<float>(contentRect().x()) / contentRect().width() * maskTexCoordScaleX;
- maskTexCoordOffsetY = static_cast<float>(contentRect().y()) / contentRect().height() * maskTexCoordScaleY;
- }
-
- CCResourceProvider::ResourceId maskResourceId = maskLayer ? maskLayer->contentsResourceId() : 0;
- IntRect contentsChangedSinceLastFrame = contentsChanged() ? m_contentRect : IntRect();
-
- quadSink.append(CCRenderPassDrawQuad::create(sharedQuadState, contentRect(), renderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame,
- maskTexCoordScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY).PassAs<CCDrawQuad>(), appendQuadsData);
-}
-
-}
-#endif // USE(ACCELERATED_COMPOSITING)
« no previous file with comments | « cc/CCRenderSurface.h ('k') | cc/CCRenderSurfaceFilters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698