OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2004, 2006, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2009, 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> | 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> |
4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. | 4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 13 matching lines...) Expand all Loading... | |
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 */ | 26 */ |
27 | 27 |
28 #ifndef HTMLCanvasElement_h | 28 #ifndef HTMLCanvasElement_h |
29 #define HTMLCanvasElement_h | 29 #define HTMLCanvasElement_h |
30 | 30 |
31 #include "core/html/HTMLElement.h" | 31 #include "core/html/HTMLElement.h" |
32 #include "platform/geometry/FloatRect.h" | 32 #include "platform/geometry/FloatRect.h" |
33 #include "platform/geometry/IntSize.h" | 33 #include "platform/geometry/IntSize.h" |
34 #include "platform/graphics/Canvas2DLayerBridge.h" | |
34 #include "wtf/Forward.h" | 35 #include "wtf/Forward.h" |
35 | 36 |
36 #define DefaultInterpolationQuality InterpolationMedium | 37 #define DefaultInterpolationQuality InterpolationMedium |
37 | 38 |
38 namespace WebCore { | 39 namespace WebCore { |
39 | 40 |
40 class CanvasContextAttributes; | 41 class CanvasContextAttributes; |
41 class CanvasRenderingContext; | 42 class CanvasRenderingContext; |
42 class GraphicsContext; | 43 class GraphicsContext; |
43 class GraphicsContextStateSaver; | 44 class GraphicsContextStateSaver; |
44 class HTMLCanvasElement; | 45 class HTMLCanvasElement; |
45 class Image; | 46 class Image; |
46 class ImageData; | 47 class ImageData; |
47 class ImageBuffer; | 48 class ImageBuffer; |
48 class ImageBufferSurface; | 49 class ImageBufferSurface; |
49 class IntSize; | 50 class IntSize; |
50 | 51 |
51 class CanvasObserver { | 52 class CanvasObserver { |
52 public: | 53 public: |
53 virtual ~CanvasObserver() { } | 54 virtual ~CanvasObserver() { } |
54 | 55 |
55 virtual void canvasChanged(HTMLCanvasElement*, const FloatRect& changedRect) = 0; | 56 virtual void canvasChanged(HTMLCanvasElement*, const FloatRect& changedRect) = 0; |
56 virtual void canvasResized(HTMLCanvasElement*) = 0; | 57 virtual void canvasResized(HTMLCanvasElement*) = 0; |
57 virtual void canvasDestroyed(HTMLCanvasElement*) = 0; | 58 virtual void canvasDestroyed(HTMLCanvasElement*) = 0; |
58 }; | 59 }; |
59 | 60 |
60 class HTMLCanvasElement FINAL : public HTMLElement { | 61 class HTMLCanvasElement FINAL : public HTMLElement, public Canvas2DLayerBridgeCl ient { |
61 public: | 62 public: |
62 static PassRefPtr<HTMLCanvasElement> create(Document&); | 63 static PassRefPtr<HTMLCanvasElement> create(Document&); |
63 virtual ~HTMLCanvasElement(); | 64 virtual ~HTMLCanvasElement(); |
64 | 65 |
65 void addObserver(CanvasObserver*); | 66 void addObserver(CanvasObserver*); |
66 void removeObserver(CanvasObserver*); | 67 void removeObserver(CanvasObserver*); |
67 | 68 |
68 // Attributes and functions exposed to script | 69 // Attributes and functions exposed to script |
69 int width() const { return size().width(); } | 70 int width() const { return size().width(); } |
70 int height() const { return size().height(); } | 71 int height() const { return size().height(); } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
118 AffineTransform baseTransform() const; | 119 AffineTransform baseTransform() const; |
119 | 120 |
120 bool is3D() const; | 121 bool is3D() const; |
121 | 122 |
122 bool hasImageBuffer() const { return m_imageBuffer.get(); } | 123 bool hasImageBuffer() const { return m_imageBuffer.get(); } |
123 | 124 |
124 bool shouldAccelerate(const IntSize&) const; | 125 bool shouldAccelerate(const IntSize&) const; |
125 | 126 |
126 InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; | 127 InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; |
127 | 128 |
129 // Canvas2DLayerBridgeClient implementation | |
130 virtual bool hidden() const OVERRIDE { return document().hidden(); } | |
eseidel
2013/12/19 02:56:32
Why do these individual elements know if they're h
| |
131 | |
128 private: | 132 private: |
129 explicit HTMLCanvasElement(Document&); | 133 explicit HTMLCanvasElement(Document&); |
130 | 134 |
131 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR IDE; | 135 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR IDE; |
132 virtual RenderObject* createRenderer(RenderStyle*); | 136 virtual RenderObject* createRenderer(RenderStyle*); |
133 virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; } | 137 virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; } |
134 | 138 |
135 void reset(); | 139 void reset(); |
136 | 140 |
137 PassOwnPtr<ImageBufferSurface> createImageBufferSurface(const IntSize& devic eSize, int* msaaSampleCount); | 141 PassOwnPtr<ImageBufferSurface> createImageBufferSurface(const IntSize& devic eSize, int* msaaSampleCount); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
169 | 173 |
170 mutable RefPtr<Image> m_presentedImage; | 174 mutable RefPtr<Image> m_presentedImage; |
171 mutable RefPtr<Image> m_copiedImage; // FIXME: This is temporary for platfor ms that have to copy the image buffer to render (and for CSSCanvasValue). | 175 mutable RefPtr<Image> m_copiedImage; // FIXME: This is temporary for platfor ms that have to copy the image buffer to render (and for CSSCanvasValue). |
172 }; | 176 }; |
173 | 177 |
174 DEFINE_NODE_TYPE_CASTS(HTMLCanvasElement, hasTagName(HTMLNames::canvasTag)); | 178 DEFINE_NODE_TYPE_CASTS(HTMLCanvasElement, hasTagName(HTMLNames::canvasTag)); |
175 | 179 |
176 } //namespace | 180 } //namespace |
177 | 181 |
178 #endif | 182 #endif |
OLD | NEW |