| 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
|
|
|