Index: cc/render_surface.h |
diff --git a/cc/render_surface.h b/cc/render_surface.h |
index 638cbb270ce9b24689d5095baf174ade4f4d1a13..67ed62666dbb405100c7c47ce48553b014552e69 100644 |
--- a/cc/render_surface.h |
+++ b/cc/render_surface.h |
@@ -1,3 +1,107 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
+// Copyright 2010 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 RenderSurfaceChromium_h |
+#define RenderSurfaceChromium_h |
+ |
+#if USE(ACCELERATED_COMPOSITING) |
+ |
+#include "base/basictypes.h" |
+#include "base/memory/ref_counted.h" |
+#include "FloatRect.h" |
+#include "IntRect.h" |
+#include <public/WebTransformationMatrix.h> |
+#include <vector> |
+ |
+namespace cc { |
+ |
+class LayerChromium; |
+ |
+class RenderSurfaceChromium { |
+public: |
+ explicit RenderSurfaceChromium(LayerChromium*); |
+ ~RenderSurfaceChromium(); |
+ |
+ // Returns the rect that encloses the RenderSurface including any reflection. |
+ FloatRect drawableContentRect() const; |
+ |
+ const IntRect& contentRect() const { return m_contentRect; } |
+ void setContentRect(const IntRect& contentRect) { m_contentRect = contentRect; } |
+ |
+ float drawOpacity() const { return m_drawOpacity; } |
+ void setDrawOpacity(float drawOpacity) { m_drawOpacity = drawOpacity; } |
+ |
+ bool drawOpacityIsAnimating() const { return m_drawOpacityIsAnimating; } |
+ void setDrawOpacityIsAnimating(bool drawOpacityIsAnimating) { m_drawOpacityIsAnimating = drawOpacityIsAnimating; } |
+ |
+ // This goes from content space with the origin in the center of the rect being transformed to the target space with the origin in the top left of the |
+ // rect being transformed. Position the rect so that the origin is in the center of it before applying this transform. |
+ const WebKit::WebTransformationMatrix& drawTransform() const { return m_drawTransform; } |
+ void setDrawTransform(const WebKit::WebTransformationMatrix& drawTransform) { m_drawTransform = drawTransform; } |
+ |
+ const WebKit::WebTransformationMatrix& screenSpaceTransform() const { return m_screenSpaceTransform; } |
+ void setScreenSpaceTransform(const WebKit::WebTransformationMatrix& screenSpaceTransform) { m_screenSpaceTransform = screenSpaceTransform; } |
+ |
+ const WebKit::WebTransformationMatrix& replicaDrawTransform() const { return m_replicaDrawTransform; } |
+ void setReplicaDrawTransform(const WebKit::WebTransformationMatrix& replicaDrawTransform) { m_replicaDrawTransform = replicaDrawTransform; } |
+ |
+ const WebKit::WebTransformationMatrix& replicaScreenSpaceTransform() const { return m_replicaScreenSpaceTransform; } |
+ void setReplicaScreenSpaceTransform(const WebKit::WebTransformationMatrix& replicaScreenSpaceTransform) { m_replicaScreenSpaceTransform = 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; } |
+ |
+ const IntRect& clipRect() const { return m_clipRect; } |
+ void setClipRect(const IntRect& clipRect) { m_clipRect = clipRect; } |
+ |
+ typedef std::vector<scoped_refptr<LayerChromium> > LayerList; |
+ LayerList& layerList() { return m_layerList; } |
+ // A no-op since DelegatedRendererLayers on the main thread don't have any |
+ // RenderPasses so they can't contribute to a surface. |
+ void addContributingDelegatedRenderPassLayer(LayerChromium*) { } |
+ void clearLayerLists() { m_layerList.clear(); } |
+ |
+ void setNearestAncestorThatMovesPixels(RenderSurfaceChromium* surface) { m_nearestAncestorThatMovesPixels = surface; } |
+ const RenderSurfaceChromium* nearestAncestorThatMovesPixels() const { return m_nearestAncestorThatMovesPixels; } |
+ |
+private: |
+ friend struct CCLayerIteratorActions; |
+ |
+ LayerChromium* m_owningLayer; |
+ |
+ // Uses this surface's space. |
+ IntRect m_contentRect; |
+ |
+ 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; |
+ |
+ LayerList m_layerList; |
+ |
+ // 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. |
+ RenderSurfaceChromium* m_nearestAncestorThatMovesPixels; |
+ |
+ // For CCLayerIteratorActions |
+ int m_targetRenderSurfaceLayerIndexHistory; |
+ int m_currentLayerIndexHistory; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(RenderSurfaceChromium); |
+}; |
+ |
+} |
+#endif // USE(ACCELERATED_COMPOSITING) |
+ |
+#endif |