1 /* $Revision: 6822 $ on $Date:: 2008-10-30 05:14:19 -0400 #$ */
3 /*------------------------------------------------------------------------
5 * OpenVG 1.0.1 Reference Implementation
6 * -------------------------------------
8 * Copyright (c) 2008 The Khronos Group Inc.
10 * Permission is hereby granted, free of charge, to any person obtaining a
11 * copy of this software and /or associated documentation files
12 * (the "Materials "), to deal in the Materials without restriction,
13 * including without limitation the rights to use, copy, modify, merge,
14 * publish, distribute, sublicense, and/or sell copies of the Materials,
15 * and to permit persons to whom the Materials are furnished to do so,
16 * subject to the following conditions:
18 * The above copyright notice and this permission notice shall be included
19 * in all copies or substantial portions of the Materials.
21 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
26 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
27 * THE USE OR OTHER DEALINGS IN THE MATERIALS.
31 * \brief OpenVG 1.0.1 API.
32 *//*-------------------------------------------------------------------*/
37 #include <VG/vgplatform.h>
43 #define OPENVG_VERSION_1_0 1
44 #define OPENVG_VERSION_1_0_1 1
47 #define VG_MAXSHORT 0x7FFF
51 #define VG_MAXINT 0x7FFFFFFF
55 #define VG_MAX_ENUM 0x7FFFFFFF
58 typedef long VGHandle
;
60 typedef VGHandle VGPath
;
61 typedef VGHandle VGImage
;
62 typedef VGHandle VGPaint
;
64 #define VG_INVALID_HANDLE ((VGHandle)0)
70 VG_BOOLEAN_FORCE_SIZE
= VG_MAX_ENUM
75 VG_BAD_HANDLE_ERROR
= 0x1000,
76 VG_ILLEGAL_ARGUMENT_ERROR
= 0x1001,
77 VG_OUT_OF_MEMORY_ERROR
= 0x1002,
78 VG_PATH_CAPABILITY_ERROR
= 0x1003,
79 VG_UNSUPPORTED_IMAGE_FORMAT_ERROR
= 0x1004,
80 VG_UNSUPPORTED_PATH_FORMAT_ERROR
= 0x1005,
81 VG_IMAGE_IN_USE_ERROR
= 0x1006,
82 VG_NO_CONTEXT_ERROR
= 0x1007,
84 VG_ERROR_CODE_FORCE_SIZE
= VG_MAX_ENUM
89 VG_MATRIX_MODE
= 0x1100,
90 VG_FILL_RULE
= 0x1101,
91 VG_IMAGE_QUALITY
= 0x1102,
92 VG_RENDERING_QUALITY
= 0x1103,
93 VG_BLEND_MODE
= 0x1104,
94 VG_IMAGE_MODE
= 0x1105,
96 /* Scissoring rectangles */
97 VG_SCISSOR_RECTS
= 0x1106,
99 /* Stroke parameters */
100 VG_STROKE_LINE_WIDTH
= 0x1110,
101 VG_STROKE_CAP_STYLE
= 0x1111,
102 VG_STROKE_JOIN_STYLE
= 0x1112,
103 VG_STROKE_MITER_LIMIT
= 0x1113,
104 VG_STROKE_DASH_PATTERN
= 0x1114,
105 VG_STROKE_DASH_PHASE
= 0x1115,
106 VG_STROKE_DASH_PHASE_RESET
= 0x1116,
108 /* Edge fill color for VG_TILE_FILL tiling mode */
109 VG_TILE_FILL_COLOR
= 0x1120,
111 /* Color for vgClear */
112 VG_CLEAR_COLOR
= 0x1121,
114 /* Enable/disable alpha masking and scissoring */
116 VG_SCISSORING
= 0x1131,
118 /* Pixel layout information */
119 VG_PIXEL_LAYOUT
= 0x1140,
120 VG_SCREEN_LAYOUT
= 0x1141,
122 /* Source format selection for image filters */
123 VG_FILTER_FORMAT_LINEAR
= 0x1150,
124 VG_FILTER_FORMAT_PREMULTIPLIED
= 0x1151,
126 /* Destination write enable mask for image filters */
127 VG_FILTER_CHANNEL_MASK
= 0x1152,
129 /* Implementation limits (read-only) */
130 VG_MAX_SCISSOR_RECTS
= 0x1160,
131 VG_MAX_DASH_COUNT
= 0x1161,
132 VG_MAX_KERNEL_SIZE
= 0x1162,
133 VG_MAX_SEPARABLE_KERNEL_SIZE
= 0x1163,
134 VG_MAX_COLOR_RAMP_STOPS
= 0x1164,
135 VG_MAX_IMAGE_WIDTH
= 0x1165,
136 VG_MAX_IMAGE_HEIGHT
= 0x1166,
137 VG_MAX_IMAGE_PIXELS
= 0x1167,
138 VG_MAX_IMAGE_BYTES
= 0x1168,
139 VG_MAX_FLOAT
= 0x1169,
140 VG_MAX_GAUSSIAN_STD_DEVIATION
= 0x116A,
142 VG_PARAM_TYPE_FORCE_SIZE
= VG_MAX_ENUM
146 VG_RENDERING_QUALITY_NONANTIALIASED
= 0x1200,
147 VG_RENDERING_QUALITY_FASTER
= 0x1201,
148 VG_RENDERING_QUALITY_BETTER
= 0x1202, /* Default */
150 VG_RENDERING_QUALITY_FORCE_SIZE
= VG_MAX_ENUM
151 } VGRenderingQuality
;
154 VG_PIXEL_LAYOUT_UNKNOWN
= 0x1300,
155 VG_PIXEL_LAYOUT_RGB_VERTICAL
= 0x1301,
156 VG_PIXEL_LAYOUT_BGR_VERTICAL
= 0x1302,
157 VG_PIXEL_LAYOUT_RGB_HORIZONTAL
= 0x1303,
158 VG_PIXEL_LAYOUT_BGR_HORIZONTAL
= 0x1304,
160 VG_PIXEL_LAYOUT_FORCE_SIZE
= VG_MAX_ENUM
164 VG_MATRIX_PATH_USER_TO_SURFACE
= 0x1400,
165 VG_MATRIX_IMAGE_USER_TO_SURFACE
= 0x1401,
166 VG_MATRIX_FILL_PAINT_TO_USER
= 0x1402,
167 VG_MATRIX_STROKE_PAINT_TO_USER
= 0x1403,
169 VG_MATRIX_MODE_FORCE_SIZE
= VG_MAX_ENUM
173 VG_CLEAR_MASK
= 0x1500,
174 VG_FILL_MASK
= 0x1501,
175 VG_SET_MASK
= 0x1502,
176 VG_UNION_MASK
= 0x1503,
177 VG_INTERSECT_MASK
= 0x1504,
178 VG_SUBTRACT_MASK
= 0x1505,
180 VG_MASK_OPERATION_FORCE_SIZE
= VG_MAX_ENUM
183 #define VG_PATH_FORMAT_STANDARD 0
186 VG_PATH_DATATYPE_S_8
= 0,
187 VG_PATH_DATATYPE_S_16
= 1,
188 VG_PATH_DATATYPE_S_32
= 2,
189 VG_PATH_DATATYPE_F
= 3,
191 VG_PATH_DATATYPE_FORCE_SIZE
= VG_MAX_ENUM
198 VG_PATH_ABS_REL_FORCE_SIZE
= VG_MAX_ENUM
202 VG_CLOSE_PATH
= ( 0 << 1),
203 VG_MOVE_TO
= ( 1 << 1),
204 VG_LINE_TO
= ( 2 << 1),
205 VG_HLINE_TO
= ( 3 << 1),
206 VG_VLINE_TO
= ( 4 << 1),
207 VG_QUAD_TO
= ( 5 << 1),
208 VG_CUBIC_TO
= ( 6 << 1),
209 VG_SQUAD_TO
= ( 7 << 1),
210 VG_SCUBIC_TO
= ( 8 << 1),
211 VG_SCCWARC_TO
= ( 9 << 1),
212 VG_SCWARC_TO
= (10 << 1),
213 VG_LCCWARC_TO
= (11 << 1),
214 VG_LCWARC_TO
= (12 << 1),
216 VG_PATH_SEGMENT_FORCE_SIZE
= VG_MAX_ENUM
220 VG_MOVE_TO_ABS
= VG_MOVE_TO
| VG_ABSOLUTE
,
221 VG_MOVE_TO_REL
= VG_MOVE_TO
| VG_RELATIVE
,
222 VG_LINE_TO_ABS
= VG_LINE_TO
| VG_ABSOLUTE
,
223 VG_LINE_TO_REL
= VG_LINE_TO
| VG_RELATIVE
,
224 VG_HLINE_TO_ABS
= VG_HLINE_TO
| VG_ABSOLUTE
,
225 VG_HLINE_TO_REL
= VG_HLINE_TO
| VG_RELATIVE
,
226 VG_VLINE_TO_ABS
= VG_VLINE_TO
| VG_ABSOLUTE
,
227 VG_VLINE_TO_REL
= VG_VLINE_TO
| VG_RELATIVE
,
228 VG_QUAD_TO_ABS
= VG_QUAD_TO
| VG_ABSOLUTE
,
229 VG_QUAD_TO_REL
= VG_QUAD_TO
| VG_RELATIVE
,
230 VG_CUBIC_TO_ABS
= VG_CUBIC_TO
| VG_ABSOLUTE
,
231 VG_CUBIC_TO_REL
= VG_CUBIC_TO
| VG_RELATIVE
,
232 VG_SQUAD_TO_ABS
= VG_SQUAD_TO
| VG_ABSOLUTE
,
233 VG_SQUAD_TO_REL
= VG_SQUAD_TO
| VG_RELATIVE
,
234 VG_SCUBIC_TO_ABS
= VG_SCUBIC_TO
| VG_ABSOLUTE
,
235 VG_SCUBIC_TO_REL
= VG_SCUBIC_TO
| VG_RELATIVE
,
236 VG_SCCWARC_TO_ABS
= VG_SCCWARC_TO
| VG_ABSOLUTE
,
237 VG_SCCWARC_TO_REL
= VG_SCCWARC_TO
| VG_RELATIVE
,
238 VG_SCWARC_TO_ABS
= VG_SCWARC_TO
| VG_ABSOLUTE
,
239 VG_SCWARC_TO_REL
= VG_SCWARC_TO
| VG_RELATIVE
,
240 VG_LCCWARC_TO_ABS
= VG_LCCWARC_TO
| VG_ABSOLUTE
,
241 VG_LCCWARC_TO_REL
= VG_LCCWARC_TO
| VG_RELATIVE
,
242 VG_LCWARC_TO_ABS
= VG_LCWARC_TO
| VG_ABSOLUTE
,
243 VG_LCWARC_TO_REL
= VG_LCWARC_TO
| VG_RELATIVE
,
245 VG_PATH_COMMAND_FORCE_SIZE
= VG_MAX_ENUM
249 VG_PATH_CAPABILITY_APPEND_FROM
= (1 << 0),
250 VG_PATH_CAPABILITY_APPEND_TO
= (1 << 1),
251 VG_PATH_CAPABILITY_MODIFY
= (1 << 2),
252 VG_PATH_CAPABILITY_TRANSFORM_FROM
= (1 << 3),
253 VG_PATH_CAPABILITY_TRANSFORM_TO
= (1 << 4),
254 VG_PATH_CAPABILITY_INTERPOLATE_FROM
= (1 << 5),
255 VG_PATH_CAPABILITY_INTERPOLATE_TO
= (1 << 6),
256 VG_PATH_CAPABILITY_PATH_LENGTH
= (1 << 7),
257 VG_PATH_CAPABILITY_POINT_ALONG_PATH
= (1 << 8),
258 VG_PATH_CAPABILITY_TANGENT_ALONG_PATH
= (1 << 9),
259 VG_PATH_CAPABILITY_PATH_BOUNDS
= (1 << 10),
260 VG_PATH_CAPABILITY_PATH_TRANSFORMED_BOUNDS
= (1 << 11),
261 VG_PATH_CAPABILITY_ALL
= (1 << 12) - 1,
263 VG_PATH_CAPABILITIES_FORCE_SIZE
= VG_MAX_ENUM
264 } VGPathCapabilities
;
267 VG_PATH_FORMAT
= 0x1600,
268 VG_PATH_DATATYPE
= 0x1601,
269 VG_PATH_SCALE
= 0x1602,
270 VG_PATH_BIAS
= 0x1603,
271 VG_PATH_NUM_SEGMENTS
= 0x1604,
272 VG_PATH_NUM_COORDS
= 0x1605,
274 VG_PATH_PARAM_TYPE_FORCE_SIZE
= VG_MAX_ENUM
278 VG_CAP_BUTT
= 0x1700,
279 VG_CAP_ROUND
= 0x1701,
280 VG_CAP_SQUARE
= 0x1702,
282 VG_CAP_STYLE_FORCE_SIZE
= VG_MAX_ENUM
286 VG_JOIN_MITER
= 0x1800,
287 VG_JOIN_ROUND
= 0x1801,
288 VG_JOIN_BEVEL
= 0x1802,
290 VG_JOIN_STYLE_FORCE_SIZE
= VG_MAX_ENUM
294 VG_EVEN_ODD
= 0x1900,
295 VG_NON_ZERO
= 0x1901,
297 VG_FILL_RULE_FORCE_SIZE
= VG_MAX_ENUM
301 VG_STROKE_PATH
= (1 << 0),
302 VG_FILL_PATH
= (1 << 1),
304 VG_PAINT_MODE_FORCE_SIZE
= VG_MAX_ENUM
308 /* Color paint parameters */
309 VG_PAINT_TYPE
= 0x1A00,
310 VG_PAINT_COLOR
= 0x1A01,
311 VG_PAINT_COLOR_RAMP_SPREAD_MODE
= 0x1A02,
312 VG_PAINT_COLOR_RAMP_PREMULTIPLIED
= 0x1A07,
313 VG_PAINT_COLOR_RAMP_STOPS
= 0x1A03,
315 /* Linear gradient paint parameters */
316 VG_PAINT_LINEAR_GRADIENT
= 0x1A04,
318 /* Radial gradient paint parameters */
319 VG_PAINT_RADIAL_GRADIENT
= 0x1A05,
321 /* Pattern paint parameters */
322 VG_PAINT_PATTERN_TILING_MODE
= 0x1A06,
324 VG_PAINT_PARAM_TYPE_FORCE_SIZE
= VG_MAX_ENUM
328 VG_PAINT_TYPE_COLOR
= 0x1B00,
329 VG_PAINT_TYPE_LINEAR_GRADIENT
= 0x1B01,
330 VG_PAINT_TYPE_RADIAL_GRADIENT
= 0x1B02,
331 VG_PAINT_TYPE_PATTERN
= 0x1B03,
333 VG_PAINT_TYPE_FORCE_SIZE
= VG_MAX_ENUM
337 VG_COLOR_RAMP_SPREAD_PAD
= 0x1C00,
338 VG_COLOR_RAMP_SPREAD_REPEAT
= 0x1C01,
339 VG_COLOR_RAMP_SPREAD_REFLECT
= 0x1C02,
341 VG_COLOR_RAMP_SPREAD_MODE_FORCE_SIZE
= VG_MAX_ENUM
342 } VGColorRampSpreadMode
;
345 VG_TILE_FILL
= 0x1D00,
346 VG_TILE_PAD
= 0x1D01,
347 VG_TILE_REPEAT
= 0x1D02,
348 VG_TILE_REFLECT
= 0x1D03,
350 VG_TILING_MODE_FORCE_SIZE
= VG_MAX_ENUM
354 /* RGB{A,X} channel ordering */
357 VG_sRGBA_8888_PRE
= 2,
364 VG_lRGBA_8888_PRE
= 9,
369 /* {A,X}RGB channel ordering */
370 VG_sXRGB_8888
= 0 | (1 << 6),
371 VG_sARGB_8888
= 1 | (1 << 6),
372 VG_sARGB_8888_PRE
= 2 | (1 << 6),
373 VG_sARGB_1555
= 4 | (1 << 6),
374 VG_sARGB_4444
= 5 | (1 << 6),
375 VG_lXRGB_8888
= 7 | (1 << 6),
376 VG_lARGB_8888
= 8 | (1 << 6),
377 VG_lARGB_8888_PRE
= 9 | (1 << 6),
379 /* BGR{A,X} channel ordering */
380 VG_sBGRX_8888
= 0 | (1 << 7),
381 VG_sBGRA_8888
= 1 | (1 << 7),
382 VG_sBGRA_8888_PRE
= 2 | (1 << 7),
383 VG_sBGR_565
= 3 | (1 << 7),
384 VG_sBGRA_5551
= 4 | (1 << 7),
385 VG_sBGRA_4444
= 5 | (1 << 7),
386 VG_lBGRX_8888
= 7 | (1 << 7),
387 VG_lBGRA_8888
= 8 | (1 << 7),
388 VG_lBGRA_8888_PRE
= 9 | (1 << 7),
390 /* {A,X}BGR channel ordering */
391 VG_sXBGR_8888
= 0 | (1 << 6) | (1 << 7),
392 VG_sABGR_8888
= 1 | (1 << 6) | (1 << 7),
393 VG_sABGR_8888_PRE
= 2 | (1 << 6) | (1 << 7),
394 VG_sABGR_1555
= 4 | (1 << 6) | (1 << 7),
395 VG_sABGR_4444
= 5 | (1 << 6) | (1 << 7),
396 VG_lXBGR_8888
= 7 | (1 << 6) | (1 << 7),
397 VG_lABGR_8888
= 8 | (1 << 6) | (1 << 7),
398 VG_lABGR_8888_PRE
= 9 | (1 << 6) | (1 << 7),
400 VG_IMAGE_FORMAT_FORCE_SIZE
= VG_MAX_ENUM
404 VG_IMAGE_QUALITY_NONANTIALIASED
= (1 << 0),
405 VG_IMAGE_QUALITY_FASTER
= (1 << 1),
406 VG_IMAGE_QUALITY_BETTER
= (1 << 2),
408 VG_IMAGE_QUALITY_FORCE_SIZE
= VG_MAX_ENUM
412 VG_IMAGE_FORMAT
= 0x1E00,
413 VG_IMAGE_WIDTH
= 0x1E01,
414 VG_IMAGE_HEIGHT
= 0x1E02,
416 VG_IMAGE_PARAM_TYPE_FORCE_SIZE
= VG_MAX_ENUM
420 VG_DRAW_IMAGE_NORMAL
= 0x1F00,
421 VG_DRAW_IMAGE_MULTIPLY
= 0x1F01,
422 VG_DRAW_IMAGE_STENCIL
= 0x1F02,
424 VG_IMAGE_MODE_FORCE_SIZE
= VG_MAX_ENUM
433 VG_IMAGE_CHANNEL_FORCE_SIZE
= VG_MAX_ENUM
437 VG_BLEND_SRC
= 0x2000,
438 VG_BLEND_SRC_OVER
= 0x2001,
439 VG_BLEND_DST_OVER
= 0x2002,
440 VG_BLEND_SRC_IN
= 0x2003,
441 VG_BLEND_DST_IN
= 0x2004,
442 VG_BLEND_MULTIPLY
= 0x2005,
443 VG_BLEND_SCREEN
= 0x2006,
444 VG_BLEND_DARKEN
= 0x2007,
445 VG_BLEND_LIGHTEN
= 0x2008,
446 VG_BLEND_ADDITIVE
= 0x2009,
448 VG_BLEND_MODE_FORCE_SIZE
= VG_MAX_ENUM
452 VG_IMAGE_FORMAT_QUERY
= 0x2100,
453 VG_PATH_DATATYPE_QUERY
= 0x2101,
455 VG_HARDWARE_QUERY_TYPE_FORCE_SIZE
= VG_MAX_ENUM
456 } VGHardwareQueryType
;
459 VG_HARDWARE_ACCELERATED
= 0x2200,
460 VG_HARDWARE_UNACCELERATED
= 0x2201,
462 VG_HARDWARE_QUERY_RESULT_FORCE_SIZE
= VG_MAX_ENUM
463 } VGHardwareQueryResult
;
467 VG_RENDERER
= 0x2301,
469 VG_EXTENSIONS
= 0x2303,
471 VG_STRING_ID_FORCE_SIZE
= VG_MAX_ENUM
474 /* Function Prototypes */
477 # error VG_API_CALL must be defined
481 # error VG_API_ENTRY must be defined
485 # error VG_API_EXIT must be defined
488 VG_API_CALL VGErrorCode VG_API_ENTRY
vgGetError(void) VG_API_EXIT
;
490 VG_API_CALL
void VG_API_ENTRY
vgFlush(void) VG_API_EXIT
;
491 VG_API_CALL
void VG_API_ENTRY
vgFinish(void) VG_API_EXIT
;
493 /* Getters and Setters */
494 VG_API_CALL
void VG_API_ENTRY
vgSetf (VGParamType type
, VGfloat value
) VG_API_EXIT
;
495 VG_API_CALL
void VG_API_ENTRY
vgSeti (VGParamType type
, VGint value
) VG_API_EXIT
;
496 VG_API_CALL
void VG_API_ENTRY
vgSetfv(VGParamType type
, VGint count
,
497 const VGfloat
* values
) VG_API_EXIT
;
498 VG_API_CALL
void VG_API_ENTRY
vgSetiv(VGParamType type
, VGint count
,
499 const VGint
* values
) VG_API_EXIT
;
501 VG_API_CALL VGfloat VG_API_ENTRY
vgGetf(VGParamType type
) VG_API_EXIT
;
502 VG_API_CALL VGint VG_API_ENTRY
vgGeti(VGParamType type
) VG_API_EXIT
;
503 VG_API_CALL VGint VG_API_ENTRY
vgGetVectorSize(VGParamType type
) VG_API_EXIT
;
504 VG_API_CALL
void VG_API_ENTRY
vgGetfv(VGParamType type
, VGint count
, VGfloat
* values
) VG_API_EXIT
;
505 VG_API_CALL
void VG_API_ENTRY
vgGetiv(VGParamType type
, VGint count
, VGint
* values
) VG_API_EXIT
;
507 VG_API_CALL
void VG_API_ENTRY
vgSetParameterf(VGHandle object
,
509 VGfloat value
) VG_API_EXIT
;
510 VG_API_CALL
void VG_API_ENTRY
vgSetParameteri(VGHandle object
,
512 VGint value
) VG_API_EXIT
;
513 VG_API_CALL
void VG_API_ENTRY
vgSetParameterfv(VGHandle object
,
515 VGint count
, const VGfloat
* values
) VG_API_EXIT
;
516 VG_API_CALL
void VG_API_ENTRY
vgSetParameteriv(VGHandle object
,
518 VGint count
, const VGint
* values
) VG_API_EXIT
;
520 VG_API_CALL VGfloat VG_API_ENTRY
vgGetParameterf(VGHandle object
,
521 VGint paramType
) VG_API_EXIT
;
522 VG_API_CALL VGint VG_API_ENTRY
vgGetParameteri(VGHandle object
,
524 VG_API_CALL VGint VG_API_ENTRY
vgGetParameterVectorSize(VGHandle object
,
525 VGint paramType
) VG_API_EXIT
;
526 VG_API_CALL
void VG_API_ENTRY
vgGetParameterfv(VGHandle object
,
528 VGint count
, VGfloat
* values
) VG_API_EXIT
;
529 VG_API_CALL
void VG_API_ENTRY
vgGetParameteriv(VGHandle object
,
531 VGint count
, VGint
* values
) VG_API_EXIT
;
533 /* Matrix Manipulation */
534 VG_API_CALL
void VG_API_ENTRY
vgLoadIdentity(void) VG_API_EXIT
;
535 VG_API_CALL
void VG_API_ENTRY
vgLoadMatrix(const VGfloat
* m
) VG_API_EXIT
;
536 VG_API_CALL
void VG_API_ENTRY
vgGetMatrix(VGfloat
* m
) VG_API_EXIT
;
537 VG_API_CALL
void VG_API_ENTRY
vgMultMatrix(const VGfloat
* m
) VG_API_EXIT
;
538 VG_API_CALL
void VG_API_ENTRY
vgTranslate(VGfloat tx
, VGfloat ty
) VG_API_EXIT
;
539 VG_API_CALL
void VG_API_ENTRY
vgScale(VGfloat sx
, VGfloat sy
) VG_API_EXIT
;
540 VG_API_CALL
void VG_API_ENTRY
vgShear(VGfloat shx
, VGfloat shy
) VG_API_EXIT
;
541 VG_API_CALL
void VG_API_ENTRY
vgRotate(VGfloat angle
) VG_API_EXIT
;
543 /* Masking and Clearing */
544 VG_API_CALL
void VG_API_ENTRY
vgMask(VGImage mask
, VGMaskOperation operation
,
545 VGint x
, VGint y
, VGint width
, VGint height
) VG_API_EXIT
;
546 VG_API_CALL
void VG_API_ENTRY
vgClear(VGint x
, VGint y
, VGint width
, VGint height
) VG_API_EXIT
;
549 VG_API_CALL VGPath VG_API_ENTRY
vgCreatePath(VGint pathFormat
,
550 VGPathDatatype datatype
,
551 VGfloat scale
, VGfloat bias
,
552 VGint segmentCapacityHint
,
553 VGint coordCapacityHint
,
554 VGbitfield capabilities
) VG_API_EXIT
;
555 VG_API_CALL
void VG_API_ENTRY
vgClearPath(VGPath path
, VGbitfield capabilities
) VG_API_EXIT
;
556 VG_API_CALL
void VG_API_ENTRY
vgDestroyPath(VGPath path
) VG_API_EXIT
;
557 VG_API_CALL
void VG_API_ENTRY
vgRemovePathCapabilities(VGPath path
,
558 VGbitfield capabilities
) VG_API_EXIT
;
559 VG_API_CALL VGbitfield VG_API_ENTRY
vgGetPathCapabilities(VGPath path
) VG_API_EXIT
;
560 VG_API_CALL
void VG_API_ENTRY
vgAppendPath(VGPath dstPath
, VGPath srcPath
) VG_API_EXIT
;
561 VG_API_CALL
void VG_API_ENTRY
vgAppendPathData(VGPath dstPath
,
563 const VGubyte
* pathSegments
,
564 const void * pathData
) VG_API_EXIT
;
565 VG_API_CALL
void VG_API_ENTRY
vgModifyPathCoords(VGPath dstPath
, VGint startIndex
,
567 const void * pathData
) VG_API_EXIT
;
568 VG_API_CALL
void VG_API_ENTRY
vgTransformPath(VGPath dstPath
, VGPath srcPath
) VG_API_EXIT
;
569 VG_API_CALL VGboolean VG_API_ENTRY
vgInterpolatePath(VGPath dstPath
,
572 VGfloat amount
) VG_API_EXIT
;
573 VG_API_CALL VGfloat VG_API_ENTRY
vgPathLength(VGPath path
,
574 VGint startSegment
, VGint numSegments
) VG_API_EXIT
;
575 VG_API_CALL
void VG_API_ENTRY
vgPointAlongPath(VGPath path
,
576 VGint startSegment
, VGint numSegments
,
578 VGfloat
* x
, VGfloat
* y
,
579 VGfloat
* tangentX
, VGfloat
* tangentY
) VG_API_EXIT
;
580 VG_API_CALL
void VG_API_ENTRY
vgPathBounds(VGPath path
,
581 VGfloat
* minX
, VGfloat
* minY
,
582 VGfloat
* width
, VGfloat
* height
) VG_API_EXIT
;
583 VG_API_CALL
void VG_API_ENTRY
vgPathTransformedBounds(VGPath path
,
584 VGfloat
* minX
, VGfloat
* minY
,
585 VGfloat
* width
, VGfloat
* height
) VG_API_EXIT
;
586 VG_API_CALL
void VG_API_ENTRY
vgDrawPath(VGPath path
, VGbitfield paintModes
) VG_API_EXIT
;
589 VG_API_CALL VGPaint VG_API_ENTRY
vgCreatePaint(void) VG_API_EXIT
;
590 VG_API_CALL
void VG_API_ENTRY
vgDestroyPaint(VGPaint paint
) VG_API_EXIT
;
591 VG_API_CALL
void VG_API_ENTRY
vgSetPaint(VGPaint paint
, VGbitfield paintModes
) VG_API_EXIT
;
592 VG_API_CALL VGPaint VG_API_ENTRY
vgGetPaint(VGPaintMode paintMode
) VG_API_EXIT
;
593 VG_API_CALL
void VG_API_ENTRY
vgSetColor(VGPaint paint
, VGuint rgba
) VG_API_EXIT
;
594 VG_API_CALL VGuint VG_API_ENTRY
vgGetColor(VGPaint paint
) VG_API_EXIT
;
595 VG_API_CALL
void VG_API_ENTRY
vgPaintPattern(VGPaint paint
, VGImage pattern
) VG_API_EXIT
;
598 VG_API_CALL VGImage VG_API_ENTRY
vgCreateImage(VGImageFormat format
,
599 VGint width
, VGint height
,
600 VGbitfield allowedQuality
) VG_API_EXIT
;
601 VG_API_CALL
void VG_API_ENTRY
vgDestroyImage(VGImage image
) VG_API_EXIT
;
602 VG_API_CALL
void VG_API_ENTRY
vgClearImage(VGImage image
,
603 VGint x
, VGint y
, VGint width
, VGint height
) VG_API_EXIT
;
604 VG_API_CALL
void VG_API_ENTRY
vgImageSubData(VGImage image
,
605 const void * data
, VGint dataStride
,
606 VGImageFormat dataFormat
,
607 VGint x
, VGint y
, VGint width
, VGint height
) VG_API_EXIT
;
608 VG_API_CALL
void VG_API_ENTRY
vgGetImageSubData(VGImage image
,
609 void * data
, VGint dataStride
,
610 VGImageFormat dataFormat
,
612 VGint width
, VGint height
) VG_API_EXIT
;
613 VG_API_CALL VGImage VG_API_ENTRY
vgChildImage(VGImage parent
,
614 VGint x
, VGint y
, VGint width
, VGint height
) VG_API_EXIT
;
615 VG_API_CALL VGImage VG_API_ENTRY
vgGetParent(VGImage image
) VG_API_EXIT
;
616 VG_API_CALL
void VG_API_ENTRY
vgCopyImage(VGImage dst
, VGint dx
, VGint dy
,
617 VGImage src
, VGint sx
, VGint sy
,
618 VGint width
, VGint height
,
619 VGboolean dither
) VG_API_EXIT
;
620 VG_API_CALL
void VG_API_ENTRY
vgDrawImage(VGImage image
) VG_API_EXIT
;
621 VG_API_CALL
void VG_API_ENTRY
vgSetPixels(VGint dx
, VGint dy
,
622 VGImage src
, VGint sx
, VGint sy
,
623 VGint width
, VGint height
) VG_API_EXIT
;
624 VG_API_CALL
void VG_API_ENTRY
vgWritePixels(const void * data
, VGint dataStride
,
625 VGImageFormat dataFormat
,
627 VGint width
, VGint height
) VG_API_EXIT
;
628 VG_API_CALL
void VG_API_ENTRY
vgGetPixels(VGImage dst
, VGint dx
, VGint dy
,
630 VGint width
, VGint height
) VG_API_EXIT
;
631 VG_API_CALL
void VG_API_ENTRY
vgReadPixels(void * data
, VGint dataStride
,
632 VGImageFormat dataFormat
,
634 VGint width
, VGint height
) VG_API_EXIT
;
635 VG_API_CALL
void VG_API_ENTRY
vgCopyPixels(VGint dx
, VGint dy
,
637 VGint width
, VGint height
) VG_API_EXIT
;
640 VG_API_CALL
void VG_API_ENTRY
vgColorMatrix(VGImage dst
, VGImage src
,
641 const VGfloat
* matrix
) VG_API_EXIT
;
642 VG_API_CALL
void VG_API_ENTRY
vgConvolve(VGImage dst
, VGImage src
,
643 VGint kernelWidth
, VGint kernelHeight
,
644 VGint shiftX
, VGint shiftY
,
645 const VGshort
* kernel
,
648 VGTilingMode tilingMode
) VG_API_EXIT
;
649 VG_API_CALL
void VG_API_ENTRY
vgSeparableConvolve(VGImage dst
, VGImage src
,
652 VGint shiftX
, VGint shiftY
,
653 const VGshort
* kernelX
,
654 const VGshort
* kernelY
,
657 VGTilingMode tilingMode
) VG_API_EXIT
;
658 VG_API_CALL
void VG_API_ENTRY
vgGaussianBlur(VGImage dst
, VGImage src
,
659 VGfloat stdDeviationX
,
660 VGfloat stdDeviationY
,
661 VGTilingMode tilingMode
) VG_API_EXIT
;
662 VG_API_CALL
void VG_API_ENTRY
vgLookup(VGImage dst
, VGImage src
,
663 const VGubyte
* redLUT
,
664 const VGubyte
* greenLUT
,
665 const VGubyte
* blueLUT
,
666 const VGubyte
* alphaLUT
,
667 VGboolean outputLinear
,
668 VGboolean outputPremultiplied
) VG_API_EXIT
;
669 VG_API_CALL
void VG_API_ENTRY
vgLookupSingle(VGImage dst
, VGImage src
,
670 const VGuint
* lookupTable
,
671 VGImageChannel sourceChannel
,
672 VGboolean outputLinear
,
673 VGboolean outputPremultiplied
) VG_API_EXIT
;
675 /* Hardware Queries */
676 VG_API_CALL VGHardwareQueryResult VG_API_ENTRY
vgHardwareQuery(VGHardwareQueryType key
,
677 VGint setting
) VG_API_EXIT
;
679 /* Renderer and Extension Information */
680 VG_API_CALL
const VGubyte
* VG_API_ENTRY
vgGetString(VGStringID name
) VG_API_EXIT
;
686 #endif /* _OPENVG_H */