Index: cc/render_surface_impl.h |
diff --git a/cc/render_surface_impl.h b/cc/render_surface_impl.h |
index 638cbb270ce9b24689d5095baf174ade4f4d1a13..afdf062de998b162061d48b8fdbd8096f7544209 100644 |
--- a/cc/render_surface_impl.h |
+++ b/cc/render_surface_impl.h |
@@ -1,3 +1,132 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
+// 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. |
+ |
+#ifndef CCRenderSurface_h |
+#define CCRenderSurface_h |
+ |
+#if USE(ACCELERATED_COMPOSITING) |
+ |
+#include "base/basictypes.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "CCRenderPass.h" |
+#include "CCSharedQuadState.h" |
+#include "FloatRect.h" |
+#include "IntRect.h" |
+#include <public/WebTransformationMatrix.h> |
+ |
+namespace cc { |
+ |
+class CCDamageTracker; |
+class CCDelegatedRendererLayerImpl; |
+class CCQuadSink; |
+class CCRenderPassSink; |
+class CCLayerImpl; |
+ |
+struct CCAppendQuadsData; |
+ |
+class CCRenderSurface { |
+public: |
+ explicit CCRenderSurface(CCLayerImpl*); |
+ virtual ~CCRenderSurface(); |
+ |
+ std::string name() const; |
+ void dumpSurface(std::string*, int indent) const; |
+ |
+ FloatPoint contentRectCenter() const { return FloatRect(m_contentRect).center(); } |
+ |
+ // Returns the rect that encloses the RenderSurface including any reflection. |
+ FloatRect drawableContentRect() const; |
+ |
+ float drawOpacity() const { return m_drawOpacity; } |
+ void setDrawOpacity(float opacity) { m_drawOpacity = opacity; } |
+ |
+ void setNearestAncestorThatMovesPixels(CCRenderSurface* surface) { m_nearestAncestorThatMovesPixels = surface; } |
+ const CCRenderSurface* nearestAncestorThatMovesPixels() const { return m_nearestAncestorThatMovesPixels; } |
+ |
+ bool drawOpacityIsAnimating() const { return m_drawOpacityIsAnimating; } |
+ void setDrawOpacityIsAnimating(bool drawOpacityIsAnimating) { m_drawOpacityIsAnimating = drawOpacityIsAnimating; } |
+ |
+ void setDrawTransform(const WebKit::WebTransformationMatrix& drawTransform) { m_drawTransform = drawTransform; } |
+ const WebKit::WebTransformationMatrix& drawTransform() const { return m_drawTransform; } |
+ |
+ void setScreenSpaceTransform(const WebKit::WebTransformationMatrix& screenSpaceTransform) { m_screenSpaceTransform = screenSpaceTransform; } |
+ const WebKit::WebTransformationMatrix& screenSpaceTransform() const { return m_screenSpaceTransform; } |
+ |
+ void setReplicaDrawTransform(const WebKit::WebTransformationMatrix& replicaDrawTransform) { m_replicaDrawTransform = replicaDrawTransform; } |
+ const WebKit::WebTransformationMatrix& replicaDrawTransform() const { return m_replicaDrawTransform; } |
+ |
+ void setReplicaScreenSpaceTransform(const WebKit::WebTransformationMatrix& replicaScreenSpaceTransform) { m_replicaScreenSpaceTransform = replicaScreenSpaceTransform; } |
+ const WebKit::WebTransformationMatrix& replicaScreenSpaceTransform() const { return m_replicaScreenSpaceTransform; } |
+ |
+ bool targetSurfaceTransformsAreAnimating() const { return m_targetSurfaceTransformsAreAnimating; } |
+ void setTargetSurfaceTransformsAreAnimating(bool animating) { m_targetSurfaceTransformsAreAnimating = animating; } |
+ bool screenSpaceTransformsAreAnimating() const { return m_screenSpaceTransformsAreAnimating; } |
+ void setScreenSpaceTransformsAreAnimating(bool animating) { m_screenSpaceTransformsAreAnimating = animating; } |
+ |
+ void setClipRect(const IntRect&); |
+ const IntRect& clipRect() const { return m_clipRect; } |
+ |
+ bool contentsChanged() const; |
+ |
+ void setContentRect(const IntRect&); |
+ const IntRect& contentRect() const { return m_contentRect; } |
+ |
+ std::vector<CCLayerImpl*>& layerList() { return m_layerList; } |
+ void addContributingDelegatedRenderPassLayer(CCLayerImpl*); |
+ void clearLayerLists(); |
+ |
+ int owningLayerId() const; |
+ |
+ void resetPropertyChangedFlag() { m_surfacePropertyChanged = false; } |
+ bool surfacePropertyChanged() const; |
+ bool surfacePropertyChangedOnlyFromDescendant() const; |
+ |
+ CCDamageTracker* damageTracker() const { return m_damageTracker.get(); } |
+ |
+ CCRenderPass::Id renderPassId(); |
+ |
+ void appendRenderPasses(CCRenderPassSink&); |
+ void appendQuads(CCQuadSink&, CCAppendQuadsData&, bool forReplica, CCRenderPass::Id renderPassId); |
+ |
+private: |
+ CCLayerImpl* m_owningLayer; |
+ |
+ // Uses this surface's space. |
+ IntRect m_contentRect; |
+ bool m_surfacePropertyChanged; |
+ |
+ float m_drawOpacity; |
+ bool m_drawOpacityIsAnimating; |
+ WebKit::WebTransformationMatrix m_drawTransform; |
+ WebKit::WebTransformationMatrix m_screenSpaceTransform; |
+ WebKit::WebTransformationMatrix m_replicaDrawTransform; |
+ WebKit::WebTransformationMatrix m_replicaScreenSpaceTransform; |
+ bool m_targetSurfaceTransformsAreAnimating; |
+ bool m_screenSpaceTransformsAreAnimating; |
+ |
+ // Uses the space of the surface's target surface. |
+ IntRect m_clipRect; |
+ |
+ std::vector<CCLayerImpl*> m_layerList; |
+ std::vector<CCDelegatedRendererLayerImpl*> m_contributingDelegatedRenderPassLayerList; |
+ |
+ // The nearest ancestor target surface that will contain the contents of this surface, and that is going |
+ // to move pixels within the surface (such as with a blur). This can point to itself. |
+ CCRenderSurface* m_nearestAncestorThatMovesPixels; |
+ |
+ scoped_ptr<CCDamageTracker> m_damageTracker; |
+ |
+ // For CCLayerIteratorActions |
+ int m_targetRenderSurfaceLayerIndexHistory; |
+ int m_currentLayerIndexHistory; |
+ |
+ friend struct CCLayerIteratorActions; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(CCRenderSurface); |
+}; |
+ |
+} |
+#endif // USE(ACCELERATED_COMPOSITING) |
+ |
+#endif |