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