Line data Source code
1 : /* This Source Code Form is subject to the terms of the Mozilla Public
2 : * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
4 :
5 : #ifndef BasicRenderingContext2D_h
6 : #define BasicRenderingContext2D_h
7 :
8 : #include "mozilla/dom/CanvasRenderingContext2DBinding.h"
9 :
10 : namespace mozilla {
11 : namespace dom {
12 :
13 : class HTMLImageElementOrHTMLCanvasElementOrHTMLVideoElementOrImageBitmap;
14 : typedef HTMLImageElementOrHTMLCanvasElementOrHTMLVideoElementOrImageBitmap
15 : CanvasImageSource;
16 :
17 : /*
18 : * BasicRenderingContext2D
19 : */
20 0 : class BasicRenderingContext2D
21 : {
22 : public:
23 : //
24 : // CanvasState
25 : //
26 : virtual void Save() = 0;
27 : virtual void Restore() = 0;
28 :
29 : //
30 : // CanvasTransform
31 : //
32 : virtual void Scale(double aX, double aY, mozilla::ErrorResult& aError) = 0;
33 : virtual void Rotate(double aAngle, mozilla::ErrorResult& aError) = 0;
34 : virtual void Translate(double aX,
35 : double aY,
36 : mozilla::ErrorResult& aError) = 0;
37 : virtual void Transform(double aM11,
38 : double aM12,
39 : double aM21,
40 : double aM22,
41 : double aDx,
42 : double aDy,
43 : mozilla::ErrorResult& aError) = 0;
44 : virtual void SetTransform(double aM11,
45 : double aM12,
46 : double aM21,
47 : double aM22,
48 : double aDx,
49 : double aDy,
50 : mozilla::ErrorResult& aError) = 0;
51 : virtual void ResetTransform(mozilla::ErrorResult& aError) = 0;
52 :
53 : //
54 : // CanvasCompositing
55 : //
56 : virtual double GlobalAlpha() = 0;
57 : virtual void SetGlobalAlpha(double aGlobalAlpha) = 0;
58 : virtual void GetGlobalCompositeOperation(nsAString& aOp,
59 : mozilla::ErrorResult& aError) = 0;
60 : virtual void SetGlobalCompositeOperation(const nsAString& aOp,
61 : mozilla::ErrorResult& aError) = 0;
62 :
63 : //
64 : // CanvasImageSmoothing
65 : //
66 : virtual bool ImageSmoothingEnabled() = 0;
67 : virtual void SetImageSmoothingEnabled(bool aImageSmoothingEnabled) = 0;
68 :
69 : //
70 : // CanvasFillStrokeStyles
71 : //
72 : virtual void GetStrokeStyle(
73 : OwningStringOrCanvasGradientOrCanvasPattern& aValue) = 0;
74 : virtual void SetStrokeStyle(
75 : const StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
76 : virtual void GetFillStyle(
77 : OwningStringOrCanvasGradientOrCanvasPattern& aValue) = 0;
78 : virtual void SetFillStyle(
79 : const StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
80 : virtual already_AddRefed<CanvasGradient> CreateLinearGradient(double aX0,
81 : double aY0,
82 : double aX1,
83 : double aY1) = 0;
84 : virtual already_AddRefed<CanvasGradient> CreateRadialGradient(
85 : double aX0,
86 : double aY0,
87 : double aR0,
88 : double aX1,
89 : double aY1,
90 : double aR1,
91 : ErrorResult& aError) = 0;
92 : virtual already_AddRefed<CanvasPattern> CreatePattern(
93 : const CanvasImageSource& aElement,
94 : const nsAString& aRepeat,
95 : ErrorResult& aError) = 0;
96 : //
97 : // CanvasShadowStyles
98 : //
99 : virtual double ShadowOffsetX() = 0;
100 : virtual void SetShadowOffsetX(double aShadowOffsetX) = 0;
101 : virtual double ShadowOffsetY() = 0;
102 : virtual void SetShadowOffsetY(double aShadowOffsetY) = 0;
103 : virtual double ShadowBlur() = 0;
104 : virtual void SetShadowBlur(double aShadowBlur) = 0;
105 : virtual void GetShadowColor(nsAString& aShadowColor) = 0;
106 : virtual void SetShadowColor(const nsAString& aShadowColor) = 0;
107 :
108 : //
109 : // CanvasRect
110 : //
111 : virtual void ClearRect(double aX, double aY, double aW, double aH) = 0;
112 : virtual void FillRect(double aX, double aY, double aW, double aH) = 0;
113 : virtual void StrokeRect(double aX, double aY, double aW, double aH) = 0;
114 :
115 : //
116 : // CanvasDrawImage
117 : //
118 : virtual void DrawImage(const CanvasImageSource& aImage,
119 : double aDx,
120 : double aDy,
121 : mozilla::ErrorResult& aError) = 0;
122 : virtual void DrawImage(const CanvasImageSource& aImage,
123 : double aDx,
124 : double aDy,
125 : double aDw,
126 : double aDh,
127 : mozilla::ErrorResult& aError) = 0;
128 : virtual void DrawImage(const CanvasImageSource& aImage,
129 : double aSx,
130 : double aSy,
131 : double aSw,
132 : double aSh,
133 : double aDx,
134 : double aDy,
135 : double aDw,
136 : double aDh,
137 : mozilla::ErrorResult& aError) = 0;
138 :
139 : //
140 : // CanvasPathDrawingStyles
141 : //
142 : virtual double LineWidth() = 0;
143 : virtual void SetLineWidth(double aWidth) = 0;
144 : virtual void GetLineCap(nsAString& aLinecapStyle) = 0;
145 : virtual void SetLineCap(const nsAString& aLinecapStyle) = 0;
146 : virtual void GetLineJoin(nsAString& aLinejoinStyle,
147 : mozilla::ErrorResult& aError) = 0;
148 : virtual void SetLineJoin(const nsAString& aLinejoinStyle) = 0;
149 : virtual double MiterLimit() = 0;
150 : virtual void SetMiterLimit(double aMiter) = 0;
151 : virtual void SetLineDash(const Sequence<double>& aSegments,
152 : mozilla::ErrorResult& aRv) = 0;
153 : virtual void GetLineDash(nsTArray<double>& aSegments) const = 0;
154 : virtual void SetLineDashOffset(double aOffset) = 0;
155 : virtual double LineDashOffset() const = 0;
156 :
157 : //
158 : // CanvasPath
159 : //
160 : virtual void ClosePath() = 0;
161 : virtual void MoveTo(double aX, double aY) = 0;
162 : virtual void LineTo(double aX, double aY) = 0;
163 : virtual void QuadraticCurveTo(double aCpx,
164 : double aCpy,
165 : double aX,
166 : double aY) = 0;
167 : virtual void BezierCurveTo(double aCp1x,
168 : double aCp1y,
169 : double aCp2x,
170 : double aCp2y,
171 : double aX,
172 : double aY) = 0;
173 : virtual void ArcTo(double aX1,
174 : double aY1,
175 : double aX2,
176 : double aY2,
177 : double aRadius,
178 : mozilla::ErrorResult& aError) = 0;
179 : virtual void Rect(double aX, double aY, double aW, double aH) = 0;
180 : virtual void Arc(double aX,
181 : double aY,
182 : double aRadius,
183 : double aStartAngle,
184 : double aEndAngle,
185 : bool aAnticlockwise,
186 : mozilla::ErrorResult& aError) = 0;
187 : virtual void Ellipse(double aX,
188 : double aY,
189 : double aRadiusX,
190 : double aRadiusY,
191 : double aRotation,
192 : double aStartAngle,
193 : double aEndAngle,
194 : bool aAnticlockwise,
195 : ErrorResult& aError) = 0;
196 : };
197 :
198 : } // namespace dom
199 : } // namespace mozilla
200 :
201 : #endif /* BasicRenderingContext2D_h */
|