OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. | 3 * Copyright (C) 2013 Intel Corporation. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 20 matching lines...) Expand all Loading... |
31 #include "platform/geometry/FloatPoint.h" | 31 #include "platform/geometry/FloatPoint.h" |
32 #include "platform/geometry/FloatPoint3D.h" | 32 #include "platform/geometry/FloatPoint3D.h" |
33 #include "platform/geometry/FloatSize.h" | 33 #include "platform/geometry/FloatSize.h" |
34 #include "platform/geometry/IntRect.h" | 34 #include "platform/geometry/IntRect.h" |
35 #include "platform/graphics/Color.h" | 35 #include "platform/graphics/Color.h" |
36 #include "platform/graphics/GraphicsLayerClient.h" | 36 #include "platform/graphics/GraphicsLayerClient.h" |
37 #include "platform/graphics/GraphicsLayerDebugInfo.h" | 37 #include "platform/graphics/GraphicsLayerDebugInfo.h" |
38 #include "platform/graphics/OpaqueRectTrackingContentLayerDelegate.h" | 38 #include "platform/graphics/OpaqueRectTrackingContentLayerDelegate.h" |
39 #include "platform/graphics/filters/FilterOperations.h" | 39 #include "platform/graphics/filters/FilterOperations.h" |
40 #include "platform/transforms/TransformationMatrix.h" | 40 #include "platform/transforms/TransformationMatrix.h" |
41 #include "public/platform/WebAnimationDelegate.h" | 41 #include "public/platform/WebCompositorAnimationDelegate.h" |
42 #include "public/platform/WebContentLayer.h" | 42 #include "public/platform/WebContentLayer.h" |
43 #include "public/platform/WebImageLayer.h" | 43 #include "public/platform/WebImageLayer.h" |
44 #include "public/platform/WebLayerClient.h" | 44 #include "public/platform/WebLayerClient.h" |
45 #include "public/platform/WebLayerScrollClient.h" | 45 #include "public/platform/WebLayerScrollClient.h" |
46 #include "public/platform/WebNinePatchLayer.h" | 46 #include "public/platform/WebNinePatchLayer.h" |
47 #include "wtf/OwnPtr.h" | 47 #include "wtf/OwnPtr.h" |
48 #include "wtf/PassOwnPtr.h" | 48 #include "wtf/PassOwnPtr.h" |
49 #include "wtf/Vector.h" | 49 #include "wtf/Vector.h" |
50 | 50 |
51 namespace blink { | 51 namespace blink { |
52 | 52 |
53 class FloatRect; | 53 class FloatRect; |
54 class GraphicsContext; | 54 class GraphicsContext; |
55 class GraphicsLayer; | 55 class GraphicsLayer; |
56 class GraphicsLayerFactory; | 56 class GraphicsLayerFactory; |
57 class GraphicsLayerFactoryChromium; | 57 class GraphicsLayerFactoryChromium; |
58 class Image; | 58 class Image; |
59 class JSONObject; | 59 class JSONObject; |
60 class ScrollableArea; | 60 class ScrollableArea; |
61 class TextStream; | 61 class TextStream; |
62 class WebAnimation; | 62 class WebCompositorAnimation; |
63 class WebLayer; | 63 class WebLayer; |
64 | 64 |
65 // FIXME: find a better home for this declaration. | 65 // FIXME: find a better home for this declaration. |
66 class PLATFORM_EXPORT LinkHighlightClient { | 66 class PLATFORM_EXPORT LinkHighlightClient { |
67 public: | 67 public: |
68 virtual void invalidate() = 0; | 68 virtual void invalidate() = 0; |
69 virtual void clearCurrentGraphicsLayer() = 0; | 69 virtual void clearCurrentGraphicsLayer() = 0; |
70 virtual WebLayer* layer() = 0; | 70 virtual WebLayer* layer() = 0; |
71 | 71 |
72 protected: | 72 protected: |
73 virtual ~LinkHighlightClient() { } | 73 virtual ~LinkHighlightClient() { } |
74 }; | 74 }; |
75 | 75 |
76 typedef Vector<GraphicsLayer*, 64> GraphicsLayerVector; | 76 typedef Vector<GraphicsLayer*, 64> GraphicsLayerVector; |
77 | 77 |
78 // GraphicsLayer is an abstraction for a rendering surface with backing store, | 78 // GraphicsLayer is an abstraction for a rendering surface with backing store, |
79 // which may have associated transformation and animations. | 79 // which may have associated transformation and animations. |
80 | 80 |
81 class PLATFORM_EXPORT GraphicsLayer : public GraphicsContextPainter, public WebA
nimationDelegate, public WebLayerScrollClient, public WebLayerClient { | 81 class PLATFORM_EXPORT GraphicsLayer : public GraphicsContextPainter, public WebC
ompositorAnimationDelegate, public WebLayerScrollClient, public WebLayerClient { |
82 WTF_MAKE_NONCOPYABLE(GraphicsLayer); WTF_MAKE_FAST_ALLOCATED; | 82 WTF_MAKE_NONCOPYABLE(GraphicsLayer); WTF_MAKE_FAST_ALLOCATED; |
83 public: | 83 public: |
84 static PassOwnPtr<GraphicsLayer> create(GraphicsLayerFactory*, GraphicsLayer
Client*); | 84 static PassOwnPtr<GraphicsLayer> create(GraphicsLayerFactory*, GraphicsLayer
Client*); |
85 | 85 |
86 virtual ~GraphicsLayer(); | 86 virtual ~GraphicsLayer(); |
87 | 87 |
88 GraphicsLayerClient* client() const { return m_client; } | 88 GraphicsLayerClient* client() const { return m_client; } |
89 | 89 |
90 // WebLayerClient implementation. | 90 // WebLayerClient implementation. |
91 virtual WebGraphicsLayerDebugInfo* takeDebugInfoFor(WebLayer*) OVERRIDE; | 91 virtual WebGraphicsLayerDebugInfo* takeDebugInfoFor(WebLayer*) OVERRIDE; |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 void setNeedsDisplayInRect(const FloatRect&); | 186 void setNeedsDisplayInRect(const FloatRect&); |
187 | 187 |
188 void setContentsNeedsDisplay(); | 188 void setContentsNeedsDisplay(); |
189 | 189 |
190 // Set that the position/size of the contents (image or video). | 190 // Set that the position/size of the contents (image or video). |
191 void setContentsRect(const IntRect&); | 191 void setContentsRect(const IntRect&); |
192 | 192 |
193 // Return true if the animation is handled by the compositing system. If thi
s returns | 193 // Return true if the animation is handled by the compositing system. If thi
s returns |
194 // false, the animation will be run by AnimationController. | 194 // false, the animation will be run by AnimationController. |
195 // These methods handle both transitions and keyframe animations. | 195 // These methods handle both transitions and keyframe animations. |
196 bool addAnimation(PassOwnPtr<WebAnimation>); | 196 bool addAnimation(PassOwnPtr<WebCompositorAnimation>); |
197 void pauseAnimation(int animationId, double /*timeOffset*/); | 197 void pauseAnimation(int animationId, double /*timeOffset*/); |
198 void removeAnimation(int animationId); | 198 void removeAnimation(int animationId); |
199 | 199 |
200 // Layer contents | 200 // Layer contents |
201 void setContentsToImage(Image*); | 201 void setContentsToImage(Image*); |
202 void setContentsToNinePatch(Image*, const IntRect& aperture); | 202 void setContentsToNinePatch(Image*, const IntRect& aperture); |
203 void setContentsToPlatformLayer(WebLayer* layer) { setContentsTo(layer); } | 203 void setContentsToPlatformLayer(WebLayer* layer) { setContentsTo(layer); } |
204 bool hasContentsLayer() const { return m_contentsLayer; } | 204 bool hasContentsLayer() const { return m_contentsLayer; } |
205 | 205 |
206 // For hosting this GraphicsLayer in a native layer hierarchy. | 206 // For hosting this GraphicsLayer in a native layer hierarchy. |
(...skipping 21 matching lines...) Expand all Loading... |
228 ScrollableArea* scrollableArea() const { return m_scrollableArea; } | 228 ScrollableArea* scrollableArea() const { return m_scrollableArea; } |
229 | 229 |
230 WebContentLayer* contentLayer() const { return m_layer.get(); } | 230 WebContentLayer* contentLayer() const { return m_layer.get(); } |
231 | 231 |
232 static void registerContentsLayer(WebLayer*); | 232 static void registerContentsLayer(WebLayer*); |
233 static void unregisterContentsLayer(WebLayer*); | 233 static void unregisterContentsLayer(WebLayer*); |
234 | 234 |
235 // GraphicsContextPainter implementation. | 235 // GraphicsContextPainter implementation. |
236 virtual void paint(GraphicsContext&, const IntRect& clip) OVERRIDE; | 236 virtual void paint(GraphicsContext&, const IntRect& clip) OVERRIDE; |
237 | 237 |
238 // WebAnimationDelegate implementation. | 238 // WebCompositorAnimationDelegate implementation. |
239 virtual void notifyAnimationStarted(double monotonicTime, WebAnimation::Targ
etProperty) OVERRIDE; | 239 virtual void notifyAnimationStarted(double monotonicTime, WebCompositorAnima
tion::TargetProperty) OVERRIDE; |
240 virtual void notifyAnimationFinished(double monotonicTime, WebAnimation::Tar
getProperty) OVERRIDE; | 240 virtual void notifyAnimationFinished(double monotonicTime, WebCompositorAnim
ation::TargetProperty) OVERRIDE; |
241 | 241 |
242 // WebLayerScrollClient implementation. | 242 // WebLayerScrollClient implementation. |
243 virtual void didScroll() OVERRIDE; | 243 virtual void didScroll() OVERRIDE; |
244 | 244 |
245 protected: | 245 protected: |
246 String debugName(WebLayer*) const; | 246 String debugName(WebLayer*) const; |
247 | 247 |
248 explicit GraphicsLayer(GraphicsLayerClient*); | 248 explicit GraphicsLayer(GraphicsLayerClient*); |
249 // GraphicsLayerFactoryChromium that wants to create a GraphicsLayer need to
be friends. | 249 // GraphicsLayerFactoryChromium that wants to create a GraphicsLayer need to
be friends. |
250 friend class GraphicsLayerFactoryChromium; | 250 friend class GraphicsLayerFactoryChromium; |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 }; | 344 }; |
345 | 345 |
346 } // namespace blink | 346 } // namespace blink |
347 | 347 |
348 #ifndef NDEBUG | 348 #ifndef NDEBUG |
349 // Outside the WebCore namespace for ease of invocation from gdb. | 349 // Outside the WebCore namespace for ease of invocation from gdb. |
350 void PLATFORM_EXPORT showGraphicsLayerTree(const blink::GraphicsLayer*); | 350 void PLATFORM_EXPORT showGraphicsLayerTree(const blink::GraphicsLayer*); |
351 #endif | 351 #endif |
352 | 352 |
353 #endif // GraphicsLayer_h | 353 #endif // GraphicsLayer_h |
OLD | NEW |