|
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
|
2 * This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 #ifndef MOZILLA_GFX_FILTERS_H_ |
|
7 #define MOZILLA_GFX_FILTERS_H_ |
|
8 |
|
9 #include "Types.h" |
|
10 #include "mozilla/RefPtr.h" |
|
11 |
|
12 #include "Point.h" |
|
13 #include "Matrix.h" |
|
14 #include <vector> |
|
15 |
|
16 namespace mozilla { |
|
17 namespace gfx { |
|
18 |
|
19 class SourceSurface; |
|
20 |
|
21 enum FilterBackend { |
|
22 FILTER_BACKEND_SOFTWARE = 0, |
|
23 FILTER_BACKEND_DIRECT2D1_1, |
|
24 FILTER_BACKEND_RECORDING |
|
25 }; |
|
26 |
|
27 enum TransformFilterAtts |
|
28 { |
|
29 ATT_TRANSFORM_MATRIX = 0, // Matrix |
|
30 ATT_TRANSFORM_FILTER // Filter |
|
31 }; |
|
32 |
|
33 enum TransformFilterInputs |
|
34 { |
|
35 IN_TRANSFORM_IN = 0 |
|
36 }; |
|
37 |
|
38 enum BlendFilterAtts |
|
39 { |
|
40 ATT_BLEND_BLENDMODE = 0 // uint32_t |
|
41 }; |
|
42 |
|
43 enum BlendMode |
|
44 { |
|
45 BLEND_MODE_MULTIPLY = 0, |
|
46 BLEND_MODE_SCREEN, |
|
47 BLEND_MODE_DARKEN, |
|
48 BLEND_MODE_LIGHTEN |
|
49 }; |
|
50 |
|
51 enum BlendFilterInputs |
|
52 { |
|
53 IN_BLEND_IN = 0, |
|
54 IN_BLEND_IN2 |
|
55 }; |
|
56 |
|
57 enum MorphologyFilterAtts |
|
58 { |
|
59 ATT_MORPHOLOGY_RADII = 0, // IntSize |
|
60 ATT_MORPHOLOGY_OPERATOR // MorphologyOperator |
|
61 }; |
|
62 |
|
63 enum MorphologyOperator |
|
64 { |
|
65 MORPHOLOGY_OPERATOR_ERODE = 0, |
|
66 MORPHOLOGY_OPERATOR_DILATE |
|
67 }; |
|
68 |
|
69 enum MorphologyFilterInputs |
|
70 { |
|
71 IN_MORPHOLOGY_IN = 0 |
|
72 }; |
|
73 |
|
74 enum AlphaMode |
|
75 { |
|
76 ALPHA_MODE_PREMULTIPLIED = 0, |
|
77 ALPHA_MODE_STRAIGHT |
|
78 }; |
|
79 |
|
80 enum ColorMatrixFilterAtts |
|
81 { |
|
82 ATT_COLOR_MATRIX_MATRIX = 0, // Matrix5x4 |
|
83 ATT_COLOR_MATRIX_ALPHA_MODE // AlphaMode |
|
84 }; |
|
85 |
|
86 enum ColorMatrixFilterInputs |
|
87 { |
|
88 IN_COLOR_MATRIX_IN = 0 |
|
89 }; |
|
90 |
|
91 enum FloodFilterAtts |
|
92 { |
|
93 ATT_FLOOD_COLOR = 0 // Color |
|
94 }; |
|
95 |
|
96 enum FloodFilterInputs |
|
97 { |
|
98 IN_FLOOD_IN = 0 |
|
99 }; |
|
100 |
|
101 enum TileFilterAtts |
|
102 { |
|
103 ATT_TILE_SOURCE_RECT = 0 // IntRect |
|
104 }; |
|
105 |
|
106 enum TileFilterInputs |
|
107 { |
|
108 IN_TILE_IN = 0 |
|
109 }; |
|
110 |
|
111 enum TransferAtts |
|
112 { |
|
113 ATT_TRANSFER_DISABLE_R = 0, // bool |
|
114 ATT_TRANSFER_DISABLE_G, // bool |
|
115 ATT_TRANSFER_DISABLE_B, // bool |
|
116 ATT_TRANSFER_DISABLE_A // bool |
|
117 }; |
|
118 |
|
119 enum TransferInputs |
|
120 { |
|
121 IN_TRANSFER_IN = 0 |
|
122 }; |
|
123 |
|
124 enum TableTransferAtts |
|
125 { |
|
126 ATT_TABLE_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R, |
|
127 ATT_TABLE_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G, |
|
128 ATT_TABLE_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B, |
|
129 ATT_TABLE_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A, |
|
130 ATT_TABLE_TRANSFER_TABLE_R, // Float[] |
|
131 ATT_TABLE_TRANSFER_TABLE_G, // Float[] |
|
132 ATT_TABLE_TRANSFER_TABLE_B, // Float[] |
|
133 ATT_TABLE_TRANSFER_TABLE_A // Float[] |
|
134 }; |
|
135 |
|
136 enum TableTransferInputs |
|
137 { |
|
138 IN_TABLE_TRANSFER_IN = IN_TRANSFER_IN |
|
139 }; |
|
140 |
|
141 enum DiscreteTransferAtts |
|
142 { |
|
143 ATT_DISCRETE_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R, |
|
144 ATT_DISCRETE_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G, |
|
145 ATT_DISCRETE_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B, |
|
146 ATT_DISCRETE_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A, |
|
147 ATT_DISCRETE_TRANSFER_TABLE_R, // Float[] |
|
148 ATT_DISCRETE_TRANSFER_TABLE_G, // Float[] |
|
149 ATT_DISCRETE_TRANSFER_TABLE_B, // Float[] |
|
150 ATT_DISCRETE_TRANSFER_TABLE_A // Float[] |
|
151 }; |
|
152 |
|
153 enum DiscreteTransferInputs |
|
154 { |
|
155 IN_DISCRETE_TRANSFER_IN = IN_TRANSFER_IN |
|
156 }; |
|
157 |
|
158 enum LinearTransferAtts |
|
159 { |
|
160 ATT_LINEAR_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R, |
|
161 ATT_LINEAR_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G, |
|
162 ATT_LINEAR_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B, |
|
163 ATT_LINEAR_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A, |
|
164 ATT_LINEAR_TRANSFER_SLOPE_R, // Float |
|
165 ATT_LINEAR_TRANSFER_SLOPE_G, // Float |
|
166 ATT_LINEAR_TRANSFER_SLOPE_B, // Float |
|
167 ATT_LINEAR_TRANSFER_SLOPE_A, // Float |
|
168 ATT_LINEAR_TRANSFER_INTERCEPT_R, // Float |
|
169 ATT_LINEAR_TRANSFER_INTERCEPT_G, // Float |
|
170 ATT_LINEAR_TRANSFER_INTERCEPT_B, // Float |
|
171 ATT_LINEAR_TRANSFER_INTERCEPT_A // Float |
|
172 }; |
|
173 |
|
174 enum LinearTransferInputs |
|
175 { |
|
176 IN_LINEAR_TRANSFER_IN = IN_TRANSFER_IN |
|
177 }; |
|
178 |
|
179 enum GammaTransferAtts |
|
180 { |
|
181 ATT_GAMMA_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R, |
|
182 ATT_GAMMA_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G, |
|
183 ATT_GAMMA_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B, |
|
184 ATT_GAMMA_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A, |
|
185 ATT_GAMMA_TRANSFER_AMPLITUDE_R, // Float |
|
186 ATT_GAMMA_TRANSFER_AMPLITUDE_G, // Float |
|
187 ATT_GAMMA_TRANSFER_AMPLITUDE_B, // Float |
|
188 ATT_GAMMA_TRANSFER_AMPLITUDE_A, // Float |
|
189 ATT_GAMMA_TRANSFER_EXPONENT_R, // Float |
|
190 ATT_GAMMA_TRANSFER_EXPONENT_G, // Float |
|
191 ATT_GAMMA_TRANSFER_EXPONENT_B, // Float |
|
192 ATT_GAMMA_TRANSFER_EXPONENT_A, // Float |
|
193 ATT_GAMMA_TRANSFER_OFFSET_R, // Float |
|
194 ATT_GAMMA_TRANSFER_OFFSET_G, // Float |
|
195 ATT_GAMMA_TRANSFER_OFFSET_B, // Float |
|
196 ATT_GAMMA_TRANSFER_OFFSET_A // Float |
|
197 }; |
|
198 |
|
199 enum GammaTransferInputs |
|
200 { |
|
201 IN_GAMMA_TRANSFER_IN = IN_TRANSFER_IN |
|
202 }; |
|
203 |
|
204 enum ConvolveMatrixAtts |
|
205 { |
|
206 ATT_CONVOLVE_MATRIX_KERNEL_SIZE = 0, // IntSize |
|
207 ATT_CONVOLVE_MATRIX_KERNEL_MATRIX, // Float[] |
|
208 ATT_CONVOLVE_MATRIX_DIVISOR, // Float |
|
209 ATT_CONVOLVE_MATRIX_BIAS, // Float |
|
210 ATT_CONVOLVE_MATRIX_TARGET, // IntPoint |
|
211 ATT_CONVOLVE_MATRIX_SOURCE_RECT, // IntRect |
|
212 ATT_CONVOLVE_MATRIX_EDGE_MODE, // ConvolveMatrixEdgeMode |
|
213 ATT_CONVOLVE_MATRIX_KERNEL_UNIT_LENGTH, // Size |
|
214 ATT_CONVOLVE_MATRIX_PRESERVE_ALPHA, // bool |
|
215 }; |
|
216 |
|
217 enum ConvolveMatrixEdgeMode |
|
218 { |
|
219 EDGE_MODE_DUPLICATE = 0, |
|
220 EDGE_MODE_WRAP, |
|
221 EDGE_MODE_NONE |
|
222 }; |
|
223 |
|
224 enum ConvolveMatrixInputs |
|
225 { |
|
226 IN_CONVOLVE_MATRIX_IN = 0 |
|
227 }; |
|
228 |
|
229 enum DisplacementMapAtts |
|
230 { |
|
231 ATT_DISPLACEMENT_MAP_SCALE = 0, // Float |
|
232 ATT_DISPLACEMENT_MAP_X_CHANNEL, // ColorChannel |
|
233 ATT_DISPLACEMENT_MAP_Y_CHANNEL // ColorChannel |
|
234 }; |
|
235 |
|
236 enum ColorChannel |
|
237 { |
|
238 COLOR_CHANNEL_R = 0, |
|
239 COLOR_CHANNEL_G, |
|
240 COLOR_CHANNEL_B, |
|
241 COLOR_CHANNEL_A |
|
242 }; |
|
243 |
|
244 enum DisplacementMapInputs |
|
245 { |
|
246 IN_DISPLACEMENT_MAP_IN = 0, |
|
247 IN_DISPLACEMENT_MAP_IN2 |
|
248 }; |
|
249 |
|
250 enum TurbulenceAtts |
|
251 { |
|
252 ATT_TURBULENCE_BASE_FREQUENCY = 0, // Size |
|
253 ATT_TURBULENCE_NUM_OCTAVES, // uint32_t |
|
254 ATT_TURBULENCE_SEED, // uint32_t |
|
255 ATT_TURBULENCE_STITCHABLE, // bool |
|
256 ATT_TURBULENCE_TYPE, // TurbulenceType |
|
257 ATT_TURBULENCE_RECT // IntRect |
|
258 }; |
|
259 |
|
260 enum TurbulenceType |
|
261 { |
|
262 TURBULENCE_TYPE_TURBULENCE = 0, |
|
263 TURBULENCE_TYPE_FRACTAL_NOISE |
|
264 }; |
|
265 |
|
266 enum ArithmeticCombineAtts |
|
267 { |
|
268 ATT_ARITHMETIC_COMBINE_COEFFICIENTS = 0 // Float[4] |
|
269 }; |
|
270 |
|
271 enum ArithmeticCombineInputs |
|
272 { |
|
273 IN_ARITHMETIC_COMBINE_IN = 0, |
|
274 IN_ARITHMETIC_COMBINE_IN2 |
|
275 }; |
|
276 |
|
277 enum CompositeAtts |
|
278 { |
|
279 ATT_COMPOSITE_OPERATOR = 0 // CompositeOperator |
|
280 }; |
|
281 |
|
282 enum CompositeOperator |
|
283 { |
|
284 COMPOSITE_OPERATOR_OVER = 0, |
|
285 COMPOSITE_OPERATOR_IN, |
|
286 COMPOSITE_OPERATOR_OUT, |
|
287 COMPOSITE_OPERATOR_ATOP, |
|
288 COMPOSITE_OPERATOR_XOR |
|
289 }; |
|
290 |
|
291 enum CompositeInputs |
|
292 { |
|
293 // arbitrary number of inputs |
|
294 IN_COMPOSITE_IN_START = 0 |
|
295 }; |
|
296 |
|
297 enum GaussianBlurAtts |
|
298 { |
|
299 ATT_GAUSSIAN_BLUR_STD_DEVIATION = 0 // Float |
|
300 }; |
|
301 |
|
302 enum GaussianBlurInputs |
|
303 { |
|
304 IN_GAUSSIAN_BLUR_IN = 0 |
|
305 }; |
|
306 |
|
307 enum DirectionalBlurAtts |
|
308 { |
|
309 ATT_DIRECTIONAL_BLUR_STD_DEVIATION = 0, // Float |
|
310 ATT_DIRECTIONAL_BLUR_DIRECTION // BlurDirection |
|
311 }; |
|
312 |
|
313 enum BlurDirection |
|
314 { |
|
315 BLUR_DIRECTION_X = 0, |
|
316 BLUR_DIRECTION_Y |
|
317 }; |
|
318 |
|
319 enum DirectionalBlurInputs |
|
320 { |
|
321 IN_DIRECTIONAL_BLUR_IN = 0 |
|
322 }; |
|
323 |
|
324 enum LightingAtts |
|
325 { |
|
326 ATT_POINT_LIGHT_POSITION = 0, // Point3D |
|
327 |
|
328 ATT_SPOT_LIGHT_POSITION, // Point3D |
|
329 ATT_SPOT_LIGHT_POINTS_AT, // Point3D |
|
330 ATT_SPOT_LIGHT_FOCUS, // Float |
|
331 ATT_SPOT_LIGHT_LIMITING_CONE_ANGLE, // Float |
|
332 |
|
333 ATT_DISTANT_LIGHT_AZIMUTH, // Float |
|
334 ATT_DISTANT_LIGHT_ELEVATION, // Float |
|
335 |
|
336 ATT_LIGHTING_COLOR, // Color |
|
337 ATT_LIGHTING_SURFACE_SCALE, // Float |
|
338 ATT_LIGHTING_KERNEL_UNIT_LENGTH, // Size |
|
339 |
|
340 ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT, // Float |
|
341 |
|
342 ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT, // Float |
|
343 ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT // Float |
|
344 }; |
|
345 |
|
346 enum LightingInputs |
|
347 { |
|
348 IN_LIGHTING_IN = 0 |
|
349 }; |
|
350 |
|
351 enum PointDiffuseAtts |
|
352 { |
|
353 ATT_POINT_DIFFUSE_POSITION = ATT_POINT_LIGHT_POSITION, |
|
354 ATT_POINT_DIFFUSE_COLOR = ATT_LIGHTING_COLOR, |
|
355 ATT_POINT_DIFFUSE_SURFACE_SCALE = ATT_LIGHTING_SURFACE_SCALE, |
|
356 ATT_POINT_DIFFUSE_KERNEL_UNIT_LENGTH = ATT_LIGHTING_KERNEL_UNIT_LENGTH, |
|
357 ATT_POINT_DIFFUSE_DIFFUSE_CONSTANT = ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT |
|
358 }; |
|
359 |
|
360 enum PointDiffuseInputs |
|
361 { |
|
362 IN_POINT_DIFFUSE_IN = IN_LIGHTING_IN |
|
363 }; |
|
364 |
|
365 enum SpotDiffuseAtts |
|
366 { |
|
367 ATT_SPOT_DIFFUSE_POSITION = ATT_SPOT_LIGHT_POSITION, |
|
368 ATT_SPOT_DIFFUSE_POINTS_AT = ATT_SPOT_LIGHT_POINTS_AT, |
|
369 ATT_SPOT_DIFFUSE_FOCUS = ATT_SPOT_LIGHT_FOCUS, |
|
370 ATT_SPOT_DIFFUSE_LIMITING_CONE_ANGLE = ATT_SPOT_LIGHT_LIMITING_CONE_ANGLE, |
|
371 ATT_SPOT_DIFFUSE_COLOR = ATT_LIGHTING_COLOR, |
|
372 ATT_SPOT_DIFFUSE_SURFACE_SCALE = ATT_LIGHTING_SURFACE_SCALE, |
|
373 ATT_SPOT_DIFFUSE_KERNEL_UNIT_LENGTH = ATT_LIGHTING_KERNEL_UNIT_LENGTH, |
|
374 ATT_SPOT_DIFFUSE_DIFFUSE_CONSTANT = ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT |
|
375 }; |
|
376 |
|
377 enum SpotDiffuseInputs |
|
378 { |
|
379 IN_SPOT_DIFFUSE_IN = IN_LIGHTING_IN |
|
380 }; |
|
381 |
|
382 enum DistantDiffuseAtts |
|
383 { |
|
384 ATT_DISTANT_DIFFUSE_AZIMUTH = ATT_DISTANT_LIGHT_AZIMUTH, |
|
385 ATT_DISTANT_DIFFUSE_ELEVATION = ATT_DISTANT_LIGHT_ELEVATION, |
|
386 ATT_DISTANT_DIFFUSE_COLOR = ATT_LIGHTING_COLOR, |
|
387 ATT_DISTANT_DIFFUSE_SURFACE_SCALE = ATT_LIGHTING_SURFACE_SCALE, |
|
388 ATT_DISTANT_DIFFUSE_KERNEL_UNIT_LENGTH = ATT_LIGHTING_KERNEL_UNIT_LENGTH, |
|
389 ATT_DISTANT_DIFFUSE_DIFFUSE_CONSTANT = ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT |
|
390 }; |
|
391 |
|
392 enum DistantDiffuseInputs |
|
393 { |
|
394 IN_DISTANT_DIFFUSE_IN = IN_LIGHTING_IN |
|
395 }; |
|
396 |
|
397 enum PointSpecularAtts |
|
398 { |
|
399 ATT_POINT_SPECULAR_POSITION = ATT_POINT_LIGHT_POSITION, |
|
400 ATT_POINT_SPECULAR_COLOR = ATT_LIGHTING_COLOR, |
|
401 ATT_POINT_SPECULAR_SURFACE_SCALE = ATT_LIGHTING_SURFACE_SCALE, |
|
402 ATT_POINT_SPECULAR_KERNEL_UNIT_LENGTH = ATT_LIGHTING_KERNEL_UNIT_LENGTH, |
|
403 ATT_POINT_SPECULAR_SPECULAR_CONSTANT = ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT, |
|
404 ATT_POINT_SPECULAR_SPECULAR_EXPONENT = ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT |
|
405 }; |
|
406 |
|
407 enum PointSpecularInputs |
|
408 { |
|
409 IN_POINT_SPECULAR_IN = IN_LIGHTING_IN |
|
410 }; |
|
411 |
|
412 enum SpotSpecularAtts |
|
413 { |
|
414 ATT_SPOT_SPECULAR_POSITION = ATT_SPOT_LIGHT_POSITION, |
|
415 ATT_SPOT_SPECULAR_POINTS_AT = ATT_SPOT_LIGHT_POINTS_AT, |
|
416 ATT_SPOT_SPECULAR_FOCUS = ATT_SPOT_LIGHT_FOCUS, |
|
417 ATT_SPOT_SPECULAR_LIMITING_CONE_ANGLE = ATT_SPOT_LIGHT_LIMITING_CONE_ANGLE, |
|
418 ATT_SPOT_SPECULAR_COLOR = ATT_LIGHTING_COLOR, |
|
419 ATT_SPOT_SPECULAR_SURFACE_SCALE = ATT_LIGHTING_SURFACE_SCALE, |
|
420 ATT_SPOT_SPECULAR_KERNEL_UNIT_LENGTH = ATT_LIGHTING_KERNEL_UNIT_LENGTH, |
|
421 ATT_SPOT_SPECULAR_SPECULAR_CONSTANT = ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT, |
|
422 ATT_SPOT_SPECULAR_SPECULAR_EXPONENT = ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT |
|
423 }; |
|
424 |
|
425 enum SpotSpecularInputs |
|
426 { |
|
427 IN_SPOT_SPECULAR_IN = IN_LIGHTING_IN |
|
428 }; |
|
429 |
|
430 enum DistantSpecularAtts |
|
431 { |
|
432 ATT_DISTANT_SPECULAR_AZIMUTH = ATT_DISTANT_LIGHT_AZIMUTH, |
|
433 ATT_DISTANT_SPECULAR_ELEVATION = ATT_DISTANT_LIGHT_ELEVATION, |
|
434 ATT_DISTANT_SPECULAR_COLOR = ATT_LIGHTING_COLOR, |
|
435 ATT_DISTANT_SPECULAR_SURFACE_SCALE = ATT_LIGHTING_SURFACE_SCALE, |
|
436 ATT_DISTANT_SPECULAR_KERNEL_UNIT_LENGTH = ATT_LIGHTING_KERNEL_UNIT_LENGTH, |
|
437 ATT_DISTANT_SPECULAR_SPECULAR_CONSTANT = ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT, |
|
438 ATT_DISTANT_SPECULAR_SPECULAR_EXPONENT = ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT |
|
439 }; |
|
440 |
|
441 enum DistantSpecularInputs |
|
442 { |
|
443 IN_DISTANT_SPECULAR_IN = IN_LIGHTING_IN |
|
444 }; |
|
445 |
|
446 enum CropAtts |
|
447 { |
|
448 ATT_CROP_RECT = 0 // Rect |
|
449 }; |
|
450 |
|
451 enum CropInputs |
|
452 { |
|
453 IN_CROP_IN = 0 |
|
454 }; |
|
455 |
|
456 enum PremultiplyInputs |
|
457 { |
|
458 IN_PREMULTIPLY_IN = 0 |
|
459 }; |
|
460 |
|
461 enum UnpremultiplyInputs |
|
462 { |
|
463 IN_UNPREMULTIPLY_IN = 0 |
|
464 }; |
|
465 |
|
466 class FilterNode : public RefCounted<FilterNode> |
|
467 { |
|
468 public: |
|
469 MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME(FilterNode) |
|
470 virtual ~FilterNode() {} |
|
471 |
|
472 virtual FilterBackend GetBackendType() = 0; |
|
473 |
|
474 virtual void SetInput(uint32_t aIndex, SourceSurface *aSurface) { MOZ_CRASH(); } |
|
475 virtual void SetInput(uint32_t aIndex, FilterNode *aFilter) { MOZ_CRASH(); } |
|
476 |
|
477 virtual void SetAttribute(uint32_t aIndex, bool) { MOZ_CRASH(); } |
|
478 virtual void SetAttribute(uint32_t aIndex, uint32_t) { MOZ_CRASH(); } |
|
479 virtual void SetAttribute(uint32_t aIndex, Float) { MOZ_CRASH(); } |
|
480 virtual void SetAttribute(uint32_t aIndex, const Size &) { MOZ_CRASH(); } |
|
481 virtual void SetAttribute(uint32_t aIndex, const IntSize &) { MOZ_CRASH(); } |
|
482 virtual void SetAttribute(uint32_t aIndex, const IntPoint &) { MOZ_CRASH(); } |
|
483 virtual void SetAttribute(uint32_t aIndex, const Rect &) { MOZ_CRASH(); } |
|
484 virtual void SetAttribute(uint32_t aIndex, const IntRect &) { MOZ_CRASH(); } |
|
485 virtual void SetAttribute(uint32_t aIndex, const Point &) { MOZ_CRASH(); } |
|
486 virtual void SetAttribute(uint32_t aIndex, const Matrix &) { MOZ_CRASH(); } |
|
487 virtual void SetAttribute(uint32_t aIndex, const Matrix5x4 &) { MOZ_CRASH(); } |
|
488 virtual void SetAttribute(uint32_t aIndex, const Point3D &) { MOZ_CRASH(); } |
|
489 virtual void SetAttribute(uint32_t aIndex, const Color &) { MOZ_CRASH(); } |
|
490 virtual void SetAttribute(uint32_t aIndex, const Float* aFloat, uint32_t aSize) { MOZ_CRASH(); } |
|
491 |
|
492 protected: |
|
493 friend class Factory; |
|
494 |
|
495 FilterNode() {} |
|
496 }; |
|
497 |
|
498 } |
|
499 } |
|
500 |
|
501 #endif |