156f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu/* $Revision: 9203 $ on $Date:: 2009-10-07 02:21:52 -0700 #$ */
2544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
3544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/*------------------------------------------------------------------------
4544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *
556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu * OpenVG 1.1 Reference Implementation
6544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * -------------------------------------
7544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *
8544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * Copyright (c) 2008 The Khronos Group Inc.
9544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *
10544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * Permission is hereby granted, free of charge, to any person obtaining a
11544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * copy of this software and /or associated documentation files
12544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * (the "Materials "), to deal in the Materials without restriction,
13544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * including without limitation the rights to use, copy, modify, merge,
14544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * publish, distribute, sublicense, and/or sell copies of the Materials,
15544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * and to permit persons to whom the Materials are furnished to do so,
16544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * subject to the following conditions:
17544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *
18544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * The above copyright notice and this permission notice shall be included
19544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * in all copies or substantial portions of the Materials.
20544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *
21544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
26544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
27544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * THE USE OR OTHER DEALINGS IN THE MATERIALS.
28544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *
29544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *//**
30544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin * \file
3156f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu * \brief	OpenVG 1.1 API.
32544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin *//*-------------------------------------------------------------------*/
33544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
34544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifndef _OPENVG_H
35544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define _OPENVG_H
36544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
37544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#include <VG/vgplatform.h>
38544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
39544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifdef __cplusplus
40544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusinextern "C" {
41544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
42544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
43544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define OPENVG_VERSION_1_0		1
44544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define OPENVG_VERSION_1_0_1	1
4556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu#define OPENVG_VERSION_1_1		2
46544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
47544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifndef VG_MAXSHORT
48544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define VG_MAXSHORT 0x7FFF
49544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
50544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
51544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifndef VG_MAXINT
52544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define VG_MAXINT 0x7FFFFFFF
53544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
54544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
55544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifndef VG_MAX_ENUM
56544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define VG_MAX_ENUM 0x7FFFFFFF
57544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
58544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
5956f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wutypedef VGuint VGHandle;
60544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
61544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef VGHandle VGPath;
62544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef VGHandle VGImage;
6356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wutypedef VGHandle VGMaskLayer;
6456f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wutypedef VGHandle VGFont;
65544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef VGHandle VGPaint;
66544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
67544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define VG_INVALID_HANDLE ((VGHandle)0)
68544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
69544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
70544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FALSE               = 0,
71544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_TRUE                = 1,
72544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
73544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BOOLEAN_FORCE_SIZE  = VG_MAX_ENUM
74544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGboolean;
75544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
76544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
77544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_NO_ERROR                                 = 0,
78544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BAD_HANDLE_ERROR                         = 0x1000,
79544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_ILLEGAL_ARGUMENT_ERROR                   = 0x1001,
80544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_OUT_OF_MEMORY_ERROR                      = 0x1002,
81544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_ERROR                    = 0x1003,
82544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_UNSUPPORTED_IMAGE_FORMAT_ERROR           = 0x1004,
83544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_UNSUPPORTED_PATH_FORMAT_ERROR            = 0x1005,
84544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_IN_USE_ERROR                       = 0x1006,
85544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_NO_CONTEXT_ERROR                         = 0x1007,
86544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
87544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_ERROR_CODE_FORCE_SIZE                    = VG_MAX_ENUM
88544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGErrorCode;
89544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
90544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
91544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Mode settings */
92544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MATRIX_MODE                              = 0x1100,
93544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FILL_RULE                                = 0x1101,
94544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_QUALITY                            = 0x1102,
95544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RENDERING_QUALITY                        = 0x1103,
96544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_MODE                               = 0x1104,
97544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_MODE                               = 0x1105,
98544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
99544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Scissoring rectangles */
100544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCISSOR_RECTS                            = 0x1106,
101544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
10256f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  /* Color Transformation */
10356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_COLOR_TRANSFORM                          = 0x1170,
10456f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_COLOR_TRANSFORM_VALUES                   = 0x1171,
10556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu
106544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Stroke parameters */
107544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_LINE_WIDTH                        = 0x1110,
108544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_CAP_STYLE                         = 0x1111,
109544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_JOIN_STYLE                        = 0x1112,
110544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_MITER_LIMIT                       = 0x1113,
111544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_DASH_PATTERN                      = 0x1114,
112544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_DASH_PHASE                        = 0x1115,
113544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_DASH_PHASE_RESET                  = 0x1116,
114544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
115544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Edge fill color for VG_TILE_FILL tiling mode */
116544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_TILE_FILL_COLOR                          = 0x1120,
117544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
118544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Color for vgClear */
119544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CLEAR_COLOR                              = 0x1121,
120544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
12156f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  /* Glyph origin */
12256f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_GLYPH_ORIGIN                             = 0x1122,
12356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu
124544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Enable/disable alpha masking and scissoring */
125544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MASKING                                  = 0x1130,
126544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCISSORING                               = 0x1131,
127544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
128544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Pixel layout information */
129544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PIXEL_LAYOUT                             = 0x1140,
130544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCREEN_LAYOUT                            = 0x1141,
131544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
132544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Source format selection for image filters */
133544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FILTER_FORMAT_LINEAR                     = 0x1150,
134544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FILTER_FORMAT_PREMULTIPLIED              = 0x1151,
135544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
136544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Destination write enable mask for image filters */
137544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FILTER_CHANNEL_MASK                      = 0x1152,
138544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
139544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Implementation limits (read-only) */
140544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_SCISSOR_RECTS                        = 0x1160,
141544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_DASH_COUNT                           = 0x1161,
142544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_KERNEL_SIZE                          = 0x1162,
143544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_SEPARABLE_KERNEL_SIZE                = 0x1163,
144544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_COLOR_RAMP_STOPS                     = 0x1164,
145544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_IMAGE_WIDTH                          = 0x1165,
146544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_IMAGE_HEIGHT                         = 0x1166,
147544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_IMAGE_PIXELS                         = 0x1167,
148544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_IMAGE_BYTES                          = 0x1168,
149544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_FLOAT                                = 0x1169,
150544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MAX_GAUSSIAN_STD_DEVIATION               = 0x116A,
151544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
152544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PARAM_TYPE_FORCE_SIZE                    = VG_MAX_ENUM
153544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGParamType;
154544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
155544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
156544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RENDERING_QUALITY_NONANTIALIASED         = 0x1200,
157544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RENDERING_QUALITY_FASTER                 = 0x1201,
158544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RENDERING_QUALITY_BETTER                 = 0x1202, /* Default */
159544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
160544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RENDERING_QUALITY_FORCE_SIZE             = VG_MAX_ENUM
161544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGRenderingQuality;
162544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
163544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
164544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PIXEL_LAYOUT_UNKNOWN                     = 0x1300,
165544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PIXEL_LAYOUT_RGB_VERTICAL                = 0x1301,
166544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PIXEL_LAYOUT_BGR_VERTICAL                = 0x1302,
167544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PIXEL_LAYOUT_RGB_HORIZONTAL              = 0x1303,
168544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PIXEL_LAYOUT_BGR_HORIZONTAL              = 0x1304,
169544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
170544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PIXEL_LAYOUT_FORCE_SIZE                  = VG_MAX_ENUM
171544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPixelLayout;
172544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
173544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
174544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MATRIX_PATH_USER_TO_SURFACE              = 0x1400,
175544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MATRIX_IMAGE_USER_TO_SURFACE             = 0x1401,
176544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MATRIX_FILL_PAINT_TO_USER                = 0x1402,
177544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MATRIX_STROKE_PAINT_TO_USER              = 0x1403,
17856f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_MATRIX_GLYPH_USER_TO_SURFACE             = 0x1404,
179544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
180544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MATRIX_MODE_FORCE_SIZE                   = VG_MAX_ENUM
181544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGMatrixMode;
182544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
183544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
184544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CLEAR_MASK                               = 0x1500,
185544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FILL_MASK                                = 0x1501,
186544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SET_MASK                                 = 0x1502,
187544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_UNION_MASK                               = 0x1503,
188544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_INTERSECT_MASK                           = 0x1504,
189544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SUBTRACT_MASK                            = 0x1505,
190544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
191544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MASK_OPERATION_FORCE_SIZE                = VG_MAX_ENUM
192544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGMaskOperation;
193544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
194544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#define VG_PATH_FORMAT_STANDARD 0
195544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
196544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
197544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_DATATYPE_S_8                        =  0,
198544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_DATATYPE_S_16                       =  1,
199544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_DATATYPE_S_32                       =  2,
200544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_DATATYPE_F                          =  3,
201544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
202544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_DATATYPE_FORCE_SIZE                 = VG_MAX_ENUM
203544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPathDatatype;
204544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
205544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
206544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_ABSOLUTE                                 = 0,
207544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RELATIVE                                 = 1,
208544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
209544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_ABS_REL_FORCE_SIZE                  = VG_MAX_ENUM
210544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPathAbsRel;
211544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
212544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
213544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CLOSE_PATH                               = ( 0 << 1),
214544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MOVE_TO                                  = ( 1 << 1),
215544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LINE_TO                                  = ( 2 << 1),
216544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_HLINE_TO                                 = ( 3 << 1),
217544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_VLINE_TO                                 = ( 4 << 1),
218544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_QUAD_TO                                  = ( 5 << 1),
219544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CUBIC_TO                                 = ( 6 << 1),
220544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SQUAD_TO                                 = ( 7 << 1),
221544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCUBIC_TO                                = ( 8 << 1),
222544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCCWARC_TO                               = ( 9 << 1),
223544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCWARC_TO                                = (10 << 1),
224544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LCCWARC_TO                               = (11 << 1),
225544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LCWARC_TO                                = (12 << 1),
226544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
227544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_SEGMENT_FORCE_SIZE                  = VG_MAX_ENUM
228544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPathSegment;
229544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
230544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
231544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MOVE_TO_ABS                              = VG_MOVE_TO    | VG_ABSOLUTE,
232544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_MOVE_TO_REL                              = VG_MOVE_TO    | VG_RELATIVE,
233544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LINE_TO_ABS                              = VG_LINE_TO    | VG_ABSOLUTE,
234544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LINE_TO_REL                              = VG_LINE_TO    | VG_RELATIVE,
235544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_HLINE_TO_ABS                             = VG_HLINE_TO   | VG_ABSOLUTE,
236544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_HLINE_TO_REL                             = VG_HLINE_TO   | VG_RELATIVE,
237544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_VLINE_TO_ABS                             = VG_VLINE_TO   | VG_ABSOLUTE,
238544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_VLINE_TO_REL                             = VG_VLINE_TO   | VG_RELATIVE,
239544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_QUAD_TO_ABS                              = VG_QUAD_TO    | VG_ABSOLUTE,
240544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_QUAD_TO_REL                              = VG_QUAD_TO    | VG_RELATIVE,
241544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CUBIC_TO_ABS                             = VG_CUBIC_TO   | VG_ABSOLUTE,
242544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CUBIC_TO_REL                             = VG_CUBIC_TO   | VG_RELATIVE,
243544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SQUAD_TO_ABS                             = VG_SQUAD_TO   | VG_ABSOLUTE,
244544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SQUAD_TO_REL                             = VG_SQUAD_TO   | VG_RELATIVE,
245544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCUBIC_TO_ABS                            = VG_SCUBIC_TO  | VG_ABSOLUTE,
246544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCUBIC_TO_REL                            = VG_SCUBIC_TO  | VG_RELATIVE,
247544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCCWARC_TO_ABS                           = VG_SCCWARC_TO | VG_ABSOLUTE,
248544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCCWARC_TO_REL                           = VG_SCCWARC_TO | VG_RELATIVE,
249544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCWARC_TO_ABS                            = VG_SCWARC_TO  | VG_ABSOLUTE,
250544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_SCWARC_TO_REL                            = VG_SCWARC_TO  | VG_RELATIVE,
251544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LCCWARC_TO_ABS                           = VG_LCCWARC_TO | VG_ABSOLUTE,
252544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LCCWARC_TO_REL                           = VG_LCCWARC_TO | VG_RELATIVE,
253544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LCWARC_TO_ABS                            = VG_LCWARC_TO  | VG_ABSOLUTE,
254544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_LCWARC_TO_REL                            = VG_LCWARC_TO  | VG_RELATIVE,
255544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
256544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_COMMAND_FORCE_SIZE                  = VG_MAX_ENUM
257544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPathCommand;
258544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
259544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
260544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_APPEND_FROM              = (1 <<  0),
261544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_APPEND_TO                = (1 <<  1),
262544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_MODIFY                   = (1 <<  2),
263544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_TRANSFORM_FROM           = (1 <<  3),
264544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_TRANSFORM_TO             = (1 <<  4),
265544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_INTERPOLATE_FROM         = (1 <<  5),
266544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_INTERPOLATE_TO           = (1 <<  6),
267544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_PATH_LENGTH              = (1 <<  7),
268544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_POINT_ALONG_PATH         = (1 <<  8),
269544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_TANGENT_ALONG_PATH       = (1 <<  9),
270544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_PATH_BOUNDS              = (1 << 10),
271544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_PATH_TRANSFORMED_BOUNDS  = (1 << 11),
272544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITY_ALL                      = (1 << 12) - 1,
273544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
274544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_CAPABILITIES_FORCE_SIZE             = VG_MAX_ENUM
275544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPathCapabilities;
276544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
277544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
278544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_FORMAT                              = 0x1600,
279544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_DATATYPE                            = 0x1601,
280544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_SCALE                               = 0x1602,
281544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_BIAS                                = 0x1603,
282544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_NUM_SEGMENTS                        = 0x1604,
283544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_NUM_COORDS                          = 0x1605,
284544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
285544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_PARAM_TYPE_FORCE_SIZE               = VG_MAX_ENUM
286544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPathParamType;
287544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
288544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
289544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CAP_BUTT                                 = 0x1700,
290544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CAP_ROUND                                = 0x1701,
291544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CAP_SQUARE                               = 0x1702,
292544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
293544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_CAP_STYLE_FORCE_SIZE                     = VG_MAX_ENUM
294544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGCapStyle;
295544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
296544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
297544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_JOIN_MITER                               = 0x1800,
298544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_JOIN_ROUND                               = 0x1801,
299544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_JOIN_BEVEL                               = 0x1802,
300544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
301544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_JOIN_STYLE_FORCE_SIZE                    = VG_MAX_ENUM
302544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGJoinStyle;
303544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
304544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
305544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_EVEN_ODD                                 = 0x1900,
306544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_NON_ZERO                                 = 0x1901,
307544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
308544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FILL_RULE_FORCE_SIZE                     = VG_MAX_ENUM
309544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGFillRule;
310544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
311544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
312544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STROKE_PATH                              = (1 << 0),
313544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_FILL_PATH                                = (1 << 1),
314544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
315544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_MODE_FORCE_SIZE                    = VG_MAX_ENUM
316544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPaintMode;
317544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
318544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
319544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Color paint parameters */
320544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_TYPE                               = 0x1A00,
321544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_COLOR                              = 0x1A01,
322544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_COLOR_RAMP_SPREAD_MODE             = 0x1A02,
323544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_COLOR_RAMP_PREMULTIPLIED           = 0x1A07,
324544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_COLOR_RAMP_STOPS                   = 0x1A03,
325544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
326544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Linear gradient paint parameters */
327544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_LINEAR_GRADIENT                    = 0x1A04,
328544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
329544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Radial gradient paint parameters */
330544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_RADIAL_GRADIENT                    = 0x1A05,
331544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
332544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* Pattern paint parameters */
333544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_PATTERN_TILING_MODE                = 0x1A06,
334544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
335544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_PARAM_TYPE_FORCE_SIZE              = VG_MAX_ENUM
336544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPaintParamType;
337544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
338544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
339544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_TYPE_COLOR                         = 0x1B00,
340544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_TYPE_LINEAR_GRADIENT               = 0x1B01,
341544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_TYPE_RADIAL_GRADIENT               = 0x1B02,
342544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_TYPE_PATTERN                       = 0x1B03,
343544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
344544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PAINT_TYPE_FORCE_SIZE                    = VG_MAX_ENUM
345544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGPaintType;
346544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
347544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
348544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_COLOR_RAMP_SPREAD_PAD                    = 0x1C00,
349544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_COLOR_RAMP_SPREAD_REPEAT                 = 0x1C01,
350544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_COLOR_RAMP_SPREAD_REFLECT                = 0x1C02,
351544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
352544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_COLOR_RAMP_SPREAD_MODE_FORCE_SIZE        = VG_MAX_ENUM
353544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGColorRampSpreadMode;
354544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
355544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
356544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_TILE_FILL                                = 0x1D00,
357544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_TILE_PAD                                 = 0x1D01,
358544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_TILE_REPEAT                              = 0x1D02,
359544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_TILE_REFLECT                             = 0x1D03,
360544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
361544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_TILING_MODE_FORCE_SIZE                   = VG_MAX_ENUM
362544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGTilingMode;
363544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
364544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
365544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* RGB{A,X} channel ordering */
366544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sRGBX_8888                               =  0,
367544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sRGBA_8888                               =  1,
368544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sRGBA_8888_PRE                           =  2,
369544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sRGB_565                                 =  3,
370544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sRGBA_5551                               =  4,
371544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sRGBA_4444                               =  5,
372544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sL_8                                     =  6,
373544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lRGBX_8888                               =  7,
374544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lRGBA_8888                               =  8,
375544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lRGBA_8888_PRE                           =  9,
376544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lL_8                                     = 10,
377544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_A_8                                      = 11,
378544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BW_1                                     = 12,
37956f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_A_1                                      = 13,
38056f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_A_4                                      = 14,
381544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
382544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* {A,X}RGB channel ordering */
383544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sXRGB_8888                               =  0 | (1 << 6),
384544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sARGB_8888                               =  1 | (1 << 6),
385544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sARGB_8888_PRE                           =  2 | (1 << 6),
386544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sARGB_1555                               =  4 | (1 << 6),
387544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sARGB_4444                               =  5 | (1 << 6),
388544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lXRGB_8888                               =  7 | (1 << 6),
389544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lARGB_8888                               =  8 | (1 << 6),
390544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lARGB_8888_PRE                           =  9 | (1 << 6),
391544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
392544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* BGR{A,X} channel ordering */
393544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sBGRX_8888                               =  0 | (1 << 7),
394544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sBGRA_8888                               =  1 | (1 << 7),
395544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sBGRA_8888_PRE                           =  2 | (1 << 7),
396544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sBGR_565                                 =  3 | (1 << 7),
397544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sBGRA_5551                               =  4 | (1 << 7),
398544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sBGRA_4444                               =  5 | (1 << 7),
399544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lBGRX_8888                               =  7 | (1 << 7),
400544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lBGRA_8888                               =  8 | (1 << 7),
401544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lBGRA_8888_PRE                           =  9 | (1 << 7),
402544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
403544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  /* {A,X}BGR channel ordering */
404544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sXBGR_8888                               =  0 | (1 << 6) | (1 << 7),
405544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sABGR_8888                               =  1 | (1 << 6) | (1 << 7),
406544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sABGR_8888_PRE                           =  2 | (1 << 6) | (1 << 7),
407544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sABGR_1555                               =  4 | (1 << 6) | (1 << 7),
408544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_sABGR_4444                               =  5 | (1 << 6) | (1 << 7),
409544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lXBGR_8888                               =  7 | (1 << 6) | (1 << 7),
410544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lABGR_8888                               =  8 | (1 << 6) | (1 << 7),
411544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_lABGR_8888_PRE                           =  9 | (1 << 6) | (1 << 7),
412544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
413544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_FORMAT_FORCE_SIZE                  = VG_MAX_ENUM
414544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGImageFormat;
415544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
416544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
417544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_QUALITY_NONANTIALIASED             = (1 << 0),
418544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_QUALITY_FASTER                     = (1 << 1),
419544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_QUALITY_BETTER                     = (1 << 2),
420544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
421544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_QUALITY_FORCE_SIZE                 = VG_MAX_ENUM
422544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGImageQuality;
423544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
424544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
425544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_FORMAT                             = 0x1E00,
426544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_WIDTH                              = 0x1E01,
427544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_HEIGHT                             = 0x1E02,
428544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
429544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_PARAM_TYPE_FORCE_SIZE              = VG_MAX_ENUM
430544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGImageParamType;
431544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
432544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
433544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_DRAW_IMAGE_NORMAL                        = 0x1F00,
434544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_DRAW_IMAGE_MULTIPLY                      = 0x1F01,
435544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_DRAW_IMAGE_STENCIL                       = 0x1F02,
436544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
437544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_MODE_FORCE_SIZE                    = VG_MAX_ENUM
438544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGImageMode;
439544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
440544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
441544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RED                                      = (1 << 3),
442544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_GREEN                                    = (1 << 2),
443544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLUE                                     = (1 << 1),
444544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_ALPHA                                    = (1 << 0),
445544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
446544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_CHANNEL_FORCE_SIZE                 = VG_MAX_ENUM
447544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGImageChannel;
448544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
449544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
450544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_SRC                                = 0x2000,
451544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_SRC_OVER                           = 0x2001,
452544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_DST_OVER                           = 0x2002,
453544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_SRC_IN                             = 0x2003,
454544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_DST_IN                             = 0x2004,
455544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_MULTIPLY                           = 0x2005,
456544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_SCREEN                             = 0x2006,
457544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_DARKEN                             = 0x2007,
458544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_LIGHTEN                            = 0x2008,
459544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_ADDITIVE                           = 0x2009,
460544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
461544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_BLEND_MODE_FORCE_SIZE                    = VG_MAX_ENUM
462544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGBlendMode;
463544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
464544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
46556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_FONT_NUM_GLYPHS                          = 0x2F00,
46656f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu
46756f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu  VG_FONT_PARAM_TYPE_FORCE_SIZE               = VG_MAX_ENUM
46856f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu} VGFontParamType;
46956f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu
47056f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wutypedef enum {
471544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_IMAGE_FORMAT_QUERY                       = 0x2100,
472544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_PATH_DATATYPE_QUERY                      = 0x2101,
473544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
474544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_HARDWARE_QUERY_TYPE_FORCE_SIZE           = VG_MAX_ENUM
475544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGHardwareQueryType;
476544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
477544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
478544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_HARDWARE_ACCELERATED                     = 0x2200,
479544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_HARDWARE_UNACCELERATED                   = 0x2201,
480544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
481544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_HARDWARE_QUERY_RESULT_FORCE_SIZE         = VG_MAX_ENUM
482544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGHardwareQueryResult;
483544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
484544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusintypedef enum {
485544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_VENDOR                                   = 0x2300,
486544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_RENDERER                                 = 0x2301,
487544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_VERSION                                  = 0x2302,
488544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_EXTENSIONS                               = 0x2303,
489544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
490544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin  VG_STRING_ID_FORCE_SIZE                     = VG_MAX_ENUM
491544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} VGStringID;
492544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
493544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Function Prototypes */
494544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
495544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifndef VG_API_CALL
496544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#	error VG_API_CALL must be defined
497544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
498544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
499544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifndef VG_API_ENTRY
500544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#   error VG_API_ENTRY must be defined
501544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
502544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
503544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifndef VG_API_EXIT
504544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#   error VG_API_EXIT must be defined
505544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
506544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
507544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGErrorCode VG_API_ENTRY vgGetError(void) VG_API_EXIT;
508544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
509544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgFlush(void) VG_API_EXIT;
510544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgFinish(void) VG_API_EXIT;
511544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
512544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Getters and Setters */
513544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetf (VGParamType type, VGfloat value) VG_API_EXIT;
514544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSeti (VGParamType type, VGint value) VG_API_EXIT;
515544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetfv(VGParamType type, VGint count,
516544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                         const VGfloat * values) VG_API_EXIT;
517544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetiv(VGParamType type, VGint count,
518544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                         const VGint * values) VG_API_EXIT;
519544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
520544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGfloat VG_API_ENTRY vgGetf(VGParamType type) VG_API_EXIT;
521544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGint VG_API_ENTRY vgGeti(VGParamType type) VG_API_EXIT;
522544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGint VG_API_ENTRY vgGetVectorSize(VGParamType type) VG_API_EXIT;
523544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGetfv(VGParamType type, VGint count, VGfloat * values) VG_API_EXIT;
524544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGetiv(VGParamType type, VGint count, VGint * values) VG_API_EXIT;
525544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
526544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetParameterf(VGHandle object,
527544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                 VGint paramType,
528544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                 VGfloat value) VG_API_EXIT;
529544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetParameteri(VGHandle object,
530544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                 VGint paramType,
531544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                 VGint value) VG_API_EXIT;
532544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetParameterfv(VGHandle object,
533544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint paramType,
534544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint count, const VGfloat * values) VG_API_EXIT;
535544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetParameteriv(VGHandle object,
536544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint paramType,
537544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint count, const VGint * values) VG_API_EXIT;
538544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
539544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGfloat VG_API_ENTRY vgGetParameterf(VGHandle object,
540544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                    VGint paramType) VG_API_EXIT;
541544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGint VG_API_ENTRY vgGetParameteri(VGHandle object,
542544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint paramType);
543544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGint VG_API_ENTRY vgGetParameterVectorSize(VGHandle object,
544544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                           VGint paramType) VG_API_EXIT;
545544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGetParameterfv(VGHandle object,
546544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint paramType,
547544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint count, VGfloat * values) VG_API_EXIT;
548544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGetParameteriv(VGHandle object,
549544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint paramType,
550544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint count, VGint * values) VG_API_EXIT;
551544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
552544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Matrix Manipulation */
553544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgLoadIdentity(void) VG_API_EXIT;
554544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgLoadMatrix(const VGfloat * m) VG_API_EXIT;
555544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGetMatrix(VGfloat * m) VG_API_EXIT;
556544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgMultMatrix(const VGfloat * m) VG_API_EXIT;
557544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgTranslate(VGfloat tx, VGfloat ty) VG_API_EXIT;
558544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgScale(VGfloat sx, VGfloat sy) VG_API_EXIT;
559544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgShear(VGfloat shx, VGfloat shy) VG_API_EXIT;
560544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgRotate(VGfloat angle) VG_API_EXIT;
561544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
562544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Masking and Clearing */
56356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgMask(VGHandle mask, VGMaskOperation operation,
56456f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                     VGint x, VGint y,
56556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                     VGint width, VGint height) VG_API_EXIT;
56656f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgRenderToMask(VGPath path,
56756f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                            VGbitfield paintModes,
56856f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                            VGMaskOperation operation) VG_API_EXIT;
56956f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL VGMaskLayer VG_API_ENTRY vgCreateMaskLayer(VGint width, VGint height) VG_API_EXIT;
57056f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgDestroyMaskLayer(VGMaskLayer maskLayer) VG_API_EXIT;
57156f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgFillMaskLayer(VGMaskLayer maskLayer,
57256f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                             VGint x, VGint y,
57356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                             VGint width, VGint height,
57456f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                             VGfloat value) VG_API_EXIT;
57556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgCopyMask(VGMaskLayer maskLayer,
57656f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                        VGint dx, VGint dy,
57756f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                        VGint sx, VGint sy,
57856f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                        VGint width, VGint height) VG_API_EXIT;
579544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgClear(VGint x, VGint y, VGint width, VGint height) VG_API_EXIT;
580544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
581544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Paths */
582544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGPath VG_API_ENTRY vgCreatePath(VGint pathFormat,
583544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGPathDatatype datatype,
584544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGfloat scale, VGfloat bias,
585544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGint segmentCapacityHint,
586544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGint coordCapacityHint,
587544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGbitfield capabilities) VG_API_EXIT;
588544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgClearPath(VGPath path, VGbitfield capabilities) VG_API_EXIT;
589544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgDestroyPath(VGPath path) VG_API_EXIT;
590544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgRemovePathCapabilities(VGPath path,
591544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                          VGbitfield capabilities) VG_API_EXIT;
592544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGbitfield VG_API_ENTRY vgGetPathCapabilities(VGPath path) VG_API_EXIT;
593544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgAppendPath(VGPath dstPath, VGPath srcPath) VG_API_EXIT;
594544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgAppendPathData(VGPath dstPath,
595544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint numSegments,
596544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  const VGubyte * pathSegments,
597544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  const void * pathData) VG_API_EXIT;
598544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgModifyPathCoords(VGPath dstPath, VGint startIndex,
599544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                    VGint numSegments,
600544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                    const void * pathData) VG_API_EXIT;
601544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgTransformPath(VGPath dstPath, VGPath srcPath) VG_API_EXIT;
602544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGboolean VG_API_ENTRY vgInterpolatePath(VGPath dstPath,
603544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                        VGPath startPath,
604544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                        VGPath endPath,
605544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                        VGfloat amount) VG_API_EXIT;
606544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGfloat VG_API_ENTRY vgPathLength(VGPath path,
607544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                 VGint startSegment, VGint numSegments) VG_API_EXIT;
608544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgPointAlongPath(VGPath path,
609544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint startSegment, VGint numSegments,
610544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGfloat distance,
611544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGfloat * x, VGfloat * y,
612544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGfloat * tangentX, VGfloat * tangentY) VG_API_EXIT;
613544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgPathBounds(VGPath path,
614544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGfloat * minX, VGfloat * minY,
615544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGfloat * width, VGfloat * height) VG_API_EXIT;
616544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgPathTransformedBounds(VGPath path,
617544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                         VGfloat * minX, VGfloat * minY,
618544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                         VGfloat * width, VGfloat * height) VG_API_EXIT;
619544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgDrawPath(VGPath path, VGbitfield paintModes) VG_API_EXIT;
620544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
621544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Paint */
622544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGPaint VG_API_ENTRY vgCreatePaint(void) VG_API_EXIT;
623544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgDestroyPaint(VGPaint paint) VG_API_EXIT;
624544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetPaint(VGPaint paint, VGbitfield paintModes) VG_API_EXIT;
625544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGPaint VG_API_ENTRY vgGetPaint(VGPaintMode paintMode) VG_API_EXIT;
626544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetColor(VGPaint paint, VGuint rgba) VG_API_EXIT;
627544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGuint VG_API_ENTRY vgGetColor(VGPaint paint) VG_API_EXIT;
628544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgPaintPattern(VGPaint paint, VGImage pattern) VG_API_EXIT;
629544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
630544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Images */
631544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGImage VG_API_ENTRY vgCreateImage(VGImageFormat format,
632544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGint width, VGint height,
633544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                  VGbitfield allowedQuality) VG_API_EXIT;
634544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgDestroyImage(VGImage image) VG_API_EXIT;
635544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgClearImage(VGImage image,
636544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGint x, VGint y, VGint width, VGint height) VG_API_EXIT;
637544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgImageSubData(VGImage image,
638544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                const void * data, VGint dataStride,
639544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGImageFormat dataFormat,
640544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGint x, VGint y, VGint width, VGint height) VG_API_EXIT;
641544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGetImageSubData(VGImage image,
642544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                   void * data, VGint dataStride,
643544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                   VGImageFormat dataFormat,
644544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                   VGint x, VGint y,
645544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                   VGint width, VGint height) VG_API_EXIT;
646544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGImage VG_API_ENTRY vgChildImage(VGImage parent,
647544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                 VGint x, VGint y, VGint width, VGint height) VG_API_EXIT;
648544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGImage VG_API_ENTRY vgGetParent(VGImage image) VG_API_EXIT;
649544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgCopyImage(VGImage dst, VGint dx, VGint dy,
650544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                             VGImage src, VGint sx, VGint sy,
651544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                             VGint width, VGint height,
652544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                             VGboolean dither) VG_API_EXIT;
653544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgDrawImage(VGImage image) VG_API_EXIT;
654544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSetPixels(VGint dx, VGint dy,
655544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                             VGImage src, VGint sx, VGint sy,
656544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                             VGint width, VGint height) VG_API_EXIT;
657544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgWritePixels(const void * data, VGint dataStride,
658544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                               VGImageFormat dataFormat,
659544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                               VGint dx, VGint dy,
660544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                               VGint width, VGint height) VG_API_EXIT;
661544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGetPixels(VGImage dst, VGint dx, VGint dy,
662544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                             VGint sx, VGint sy,
663544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                             VGint width, VGint height) VG_API_EXIT;
664544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgReadPixels(void * data, VGint dataStride,
665544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGImageFormat dataFormat,
666544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGint sx, VGint sy,
667544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGint width, VGint height) VG_API_EXIT;
668544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgCopyPixels(VGint dx, VGint dy,
669544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGint sx, VGint sy,
670544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                              VGint width, VGint height) VG_API_EXIT;
671544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
67256f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu/* Text */
67356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL VGFont VG_API_ENTRY vgCreateFont(VGint glyphCapacityHint) VG_API_EXIT;
67456f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgDestroyFont(VGFont font) VG_API_EXIT;
67556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgSetGlyphToPath(VGFont font,
67656f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                              VGuint glyphIndex,
67756f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                              VGPath path,
67856f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                              VGboolean isHinted,
67956f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                              const VGfloat glyphOrigin [2],
68056f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                              const VGfloat escapement[2]) VG_API_EXIT;
68156f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgSetGlyphToImage(VGFont font,
68256f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                               VGuint glyphIndex,
68356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                               VGImage image,
68456f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                               const VGfloat glyphOrigin [2],
68556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                               const VGfloat escapement[2]) VG_API_EXIT;
68656f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgClearGlyph(VGFont font,VGuint glyphIndex) VG_API_EXIT;
68756f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgDrawGlyph(VGFont font,
68856f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                         VGuint glyphIndex,
68956f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                         VGbitfield paintModes,
69056f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                         VGboolean allowAutoHinting) VG_API_EXIT;
69156f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I WuVG_API_CALL void VG_API_ENTRY vgDrawGlyphs(VGFont font,
69256f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                          VGint glyphCount,
69356f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                          const VGuint *glyphIndices,
69456f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                          const VGfloat *adjustments_x,
69556f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                          const VGfloat *adjustments_y,
69656f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                          VGbitfield paintModes,
69756f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu                                          VGboolean allowAutoHinting) VG_API_EXIT;
69856f02cedfaca9755d2855ec3fe075ccfe5e85c0aChia-I Wu
699544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Image Filters */
700544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgColorMatrix(VGImage dst, VGImage src,
701544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                               const VGfloat * matrix) VG_API_EXIT;
702544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgConvolve(VGImage dst, VGImage src,
703544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                            VGint kernelWidth, VGint kernelHeight,
704544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                            VGint shiftX, VGint shiftY,
705544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                            const VGshort * kernel,
706544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                            VGfloat scale,
707544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                            VGfloat bias,
708544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                            VGTilingMode tilingMode) VG_API_EXIT;
709544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgSeparableConvolve(VGImage dst, VGImage src,
710544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     VGint kernelWidth,
711544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     VGint kernelHeight,
712544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     VGint shiftX, VGint shiftY,
713544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     const VGshort * kernelX,
714544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     const VGshort * kernelY,
715544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     VGfloat scale,
716544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     VGfloat bias,
717544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                     VGTilingMode tilingMode) VG_API_EXIT;
718544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgGaussianBlur(VGImage dst, VGImage src,
719544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGfloat stdDeviationX,
720544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGfloat stdDeviationY,
721544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGTilingMode tilingMode) VG_API_EXIT;
722544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgLookup(VGImage dst, VGImage src,
723544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                          const VGubyte * redLUT,
724544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                          const VGubyte * greenLUT,
725544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                          const VGubyte * blueLUT,
726544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                          const VGubyte * alphaLUT,
727544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                          VGboolean outputLinear,
728544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                          VGboolean outputPremultiplied) VG_API_EXIT;
729544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL void VG_API_ENTRY vgLookupSingle(VGImage dst, VGImage src,
730544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                const VGuint * lookupTable,
731544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGImageChannel sourceChannel,
732544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGboolean outputLinear,
733544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                VGboolean outputPremultiplied) VG_API_EXIT;
734544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
735544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Hardware Queries */
736544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL VGHardwareQueryResult VG_API_ENTRY vgHardwareQuery(VGHardwareQueryType key,
737544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin                                                  VGint setting) VG_API_EXIT;
738544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
739544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin/* Renderer and Extension Information */
740544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack RusinVG_API_CALL const VGubyte * VG_API_ENTRY vgGetString(VGStringID name) VG_API_EXIT;
741544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
742544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#ifdef __cplusplus
743544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin} /* extern "C" */
744544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif
745544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin
746544dd4b11f7be76bb00fe29a60eaf2772dcc69caZack Rusin#endif /* _OPENVG_H */
747