Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1901 | serge | 1 | /* $Revision: 6810 $ on $Date:: 2008-10-29 07:31:37 -0700 #$ */ |
2 | |||
3 | /*------------------------------------------------------------------------ |
||
4 | * |
||
5 | * VG extensions Reference Implementation |
||
6 | * ------------------------------------- |
||
7 | * |
||
8 | * Copyright (c) 2008 The Khronos Group Inc. |
||
9 | * |
||
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: |
||
17 | * |
||
18 | * The above copyright notice and this permission notice shall be included |
||
19 | * in all copies or substantial portions of the Materials. |
||
20 | * |
||
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. |
||
28 | * |
||
29 | *//** |
||
30 | * \file |
||
31 | * \brief VG extensions |
||
32 | *//*-------------------------------------------------------------------*/ |
||
33 | |||
34 | |||
35 | |||
36 | #ifndef _VGEXT_H |
||
37 | #define _VGEXT_H |
||
38 | |||
39 | #ifdef __cplusplus |
||
40 | extern "C" { |
||
41 | #endif |
||
42 | |||
43 | #include |
||
44 | #include |
||
45 | |||
46 | #ifndef VG_API_ENTRYP |
||
47 | # define VG_API_ENTRYP VG_API_ENTRY* |
||
48 | #endif |
||
49 | |||
50 | #ifndef VGU_API_ENTRYP |
||
51 | # define VGU_API_ENTRYP VGU_API_ENTRY* |
||
52 | #endif |
||
53 | |||
54 | /*------------------------------------------------------------------------------- |
||
55 | * KHR extensions |
||
56 | *------------------------------------------------------------------------------*/ |
||
57 | |||
58 | typedef enum { |
||
59 | |||
60 | #ifndef VG_KHR_iterative_average_blur |
||
61 | VG_MAX_AVERAGE_BLUR_DIMENSION_KHR = 0x116B, |
||
62 | VG_AVERAGE_BLUR_DIMENSION_RESOLUTION_KHR = 0x116C, |
||
63 | VG_MAX_AVERAGE_BLUR_ITERATIONS_KHR = 0x116D, |
||
64 | #endif |
||
65 | |||
66 | VG_PARAM_TYPE_KHR_FORCE_SIZE = VG_MAX_ENUM |
||
67 | } VGParamTypeKHR; |
||
68 | |||
69 | #ifndef VG_KHR_EGL_image |
||
70 | #define VG_KHR_EGL_image 1 |
||
71 | /* VGEGLImageKHR is an opaque handle to an EGLImage */ |
||
72 | typedef void* VGeglImageKHR; |
||
73 | |||
74 | #ifdef VG_VGEXT_PROTOTYPES |
||
75 | VG_API_CALL VGImage VG_API_ENTRY vgCreateEGLImageTargetKHR(VGeglImageKHR image); |
||
76 | #endif |
||
77 | typedef VGImage (VG_API_ENTRYP PFNVGCREATEEGLIMAGETARGETKHRPROC) (VGeglImageKHR image); |
||
78 | |||
79 | #endif |
||
80 | |||
81 | |||
82 | #ifndef VG_KHR_iterative_average_blur |
||
83 | #define VG_KHR_iterative_average_blur 1 |
||
84 | |||
85 | #ifdef VG_VGEXT_PROTOTYPES |
||
86 | VG_API_CALL void vgIterativeAverageBlurKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGTilingMode tilingMode); |
||
87 | #endif |
||
88 | typedef void (VG_API_ENTRYP PFNVGITERATIVEAVERAGEBLURKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGTilingMode tilingMode); |
||
89 | |||
90 | #endif |
||
91 | |||
92 | |||
93 | #ifndef VG_KHR_advanced_blending |
||
94 | #define VG_KHR_advanced_blending 1 |
||
95 | |||
96 | typedef enum { |
||
97 | VG_BLEND_OVERLAY_KHR = 0x2010, |
||
98 | VG_BLEND_HARDLIGHT_KHR = 0x2011, |
||
99 | VG_BLEND_SOFTLIGHT_SVG_KHR = 0x2012, |
||
100 | VG_BLEND_SOFTLIGHT_KHR = 0x2013, |
||
101 | VG_BLEND_COLORDODGE_KHR = 0x2014, |
||
102 | VG_BLEND_COLORBURN_KHR = 0x2015, |
||
103 | VG_BLEND_DIFFERENCE_KHR = 0x2016, |
||
104 | VG_BLEND_SUBTRACT_KHR = 0x2017, |
||
105 | VG_BLEND_INVERT_KHR = 0x2018, |
||
106 | VG_BLEND_EXCLUSION_KHR = 0x2019, |
||
107 | VG_BLEND_LINEARDODGE_KHR = 0x201a, |
||
108 | VG_BLEND_LINEARBURN_KHR = 0x201b, |
||
109 | VG_BLEND_VIVIDLIGHT_KHR = 0x201c, |
||
110 | VG_BLEND_LINEARLIGHT_KHR = 0x201d, |
||
111 | VG_BLEND_PINLIGHT_KHR = 0x201e, |
||
112 | VG_BLEND_HARDMIX_KHR = 0x201f, |
||
113 | VG_BLEND_CLEAR_KHR = 0x2020, |
||
114 | VG_BLEND_DST_KHR = 0x2021, |
||
115 | VG_BLEND_SRC_OUT_KHR = 0x2022, |
||
116 | VG_BLEND_DST_OUT_KHR = 0x2023, |
||
117 | VG_BLEND_SRC_ATOP_KHR = 0x2024, |
||
118 | VG_BLEND_DST_ATOP_KHR = 0x2025, |
||
119 | VG_BLEND_XOR_KHR = 0x2026, |
||
120 | |||
121 | VG_BLEND_MODE_KHR_FORCE_SIZE= VG_MAX_ENUM |
||
122 | } VGBlendModeKHR; |
||
123 | #endif |
||
124 | |||
125 | #ifndef VG_KHR_parametric_filter |
||
126 | #define VG_KHR_parametric_filter 1 |
||
127 | |||
128 | typedef enum { |
||
129 | VG_PF_OBJECT_VISIBLE_FLAG_KHR = (1 << 0), |
||
130 | VG_PF_KNOCKOUT_FLAG_KHR = (1 << 1), |
||
131 | VG_PF_OUTER_FLAG_KHR = (1 << 2), |
||
132 | VG_PF_INNER_FLAG_KHR = (1 << 3), |
||
133 | |||
134 | VG_PF_TYPE_KHR_FORCE_SIZE = VG_MAX_ENUM |
||
135 | } VGPfTypeKHR; |
||
136 | |||
137 | typedef enum { |
||
138 | VGU_IMAGE_IN_USE_ERROR = 0xF010, |
||
139 | |||
140 | VGU_ERROR_CODE_KHR_FORCE_SIZE = VG_MAX_ENUM |
||
141 | } VGUErrorCodeKHR; |
||
142 | |||
143 | #ifdef VG_VGEXT_PROTOTYPES |
||
144 | VG_API_CALL void VG_API_ENTRY vgParametricFilterKHR(VGImage dst,VGImage src,VGImage blur,VGfloat strength,VGfloat offsetX,VGfloat offsetY,VGbitfield filterFlags,VGPaint highlightPaint,VGPaint shadowPaint); |
||
145 | VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguDropShadowKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint shadowColorRGBA); |
||
146 | VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguGlowKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint glowColorRGBA) ; |
||
147 | VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguBevelKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint highlightColorRGBA,VGuint shadowColorRGBA); |
||
148 | VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguGradientGlowKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint stopsCount,const VGfloat* glowColorRampStops); |
||
149 | VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguGradientBevelKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint stopsCount,const VGfloat* bevelColorRampStops); |
||
150 | #endif |
||
151 | typedef void (VG_API_ENTRYP PFNVGPARAMETRICFILTERKHRPROC) (VGImage dst,VGImage src,VGImage blur,VGfloat strength,VGfloat offsetX,VGfloat offsetY,VGbitfield filterFlags,VGPaint highlightPaint,VGPaint shadowPaint); |
||
152 | typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUDROPSHADOWKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint shadowColorRGBA); |
||
153 | typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUGLOWKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint glowColorRGBA); |
||
154 | typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUBEVELKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint highlightColorRGBA,VGuint shadowColorRGBA); |
||
155 | typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUGRADIENTGLOWKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint stopsCount,const VGfloat* glowColorRampStops); |
||
156 | typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUGRADIENTBEVELKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint stopsCount,const VGfloat* bevelColorRampStops); |
||
157 | |||
158 | #endif |
||
159 | |||
160 | |||
161 | /*------------------------------------------------------------------------------- |
||
162 | * NDS extensions |
||
163 | *------------------------------------------------------------------------------*/ |
||
164 | |||
165 | #ifndef VG_NDS_paint_generation |
||
166 | #define VG_NDS_paint_generation 1 |
||
167 | |||
168 | typedef enum { |
||
169 | VG_PAINT_COLOR_RAMP_LINEAR_NDS = 0x1A10, |
||
170 | VG_COLOR_MATRIX_NDS = 0x1A11, |
||
171 | VG_PAINT_COLOR_TRANSFORM_LINEAR_NDS = 0x1A12, |
||
172 | |||
173 | VG_PAINT_PARAM_TYPE_NDS_FORCE_SIZE = VG_MAX_ENUM |
||
174 | } VGPaintParamTypeNds; |
||
175 | |||
176 | typedef enum { |
||
177 | VG_DRAW_IMAGE_COLOR_MATRIX_NDS = 0x1F10, |
||
178 | |||
179 | VG_IMAGE_MODE_NDS_FORCE_SIZE = VG_MAX_ENUM |
||
180 | } VGImageModeNds; |
||
181 | #endif |
||
182 | |||
183 | |||
184 | #ifndef VG_NDS_projective_geometry |
||
185 | #define VG_NDS_projective_geometry 1 |
||
186 | |||
187 | typedef enum { |
||
188 | VG_CLIP_MODE_NDS = 0x1180, |
||
189 | VG_CLIP_LINES_NDS = 0x1181, |
||
190 | VG_MAX_CLIP_LINES_NDS = 0x1182, |
||
191 | |||
192 | VG_PARAM_TYPE_NDS_FORCE_SIZE = VG_MAX_ENUM |
||
193 | } VGParamTypeNds; |
||
194 | |||
195 | typedef enum { |
||
196 | VG_CLIPMODE_NONE_NDS = 0x3000, |
||
197 | VG_CLIPMODE_CLIP_CLOSED_NDS = 0x3001, |
||
198 | VG_CLIPMODE_CLIP_OPEN_NDS = 0x3002, |
||
199 | VG_CLIPMODE_CULL_NDS = 0x3003, |
||
200 | |||
201 | VG_CLIPMODE_NDS_FORCE_SIZE = VG_MAX_ENUM |
||
202 | } VGClipModeNds; |
||
203 | |||
204 | typedef enum { |
||
205 | VG_RQUAD_TO_NDS = ( 13 << 1 ), |
||
206 | VG_RCUBIC_TO_NDS = ( 14 << 1 ), |
||
207 | |||
208 | VG_PATH_SEGMENT_NDS_FORCE_SIZE = VG_MAX_ENUM |
||
209 | } VGPathSegmentNds; |
||
210 | |||
211 | typedef enum { |
||
212 | VG_RQUAD_TO_ABS_NDS = (VG_RQUAD_TO_NDS | VG_ABSOLUTE), |
||
213 | VG_RQUAD_TO_REL_NDS = (VG_RQUAD_TO_NDS | VG_RELATIVE), |
||
214 | VG_RCUBIC_TO_ABS_NDS = (VG_RCUBIC_TO_NDS | VG_ABSOLUTE), |
||
215 | VG_RCUBIC_TO_REL_NDS = (VG_RCUBIC_TO_NDS | VG_RELATIVE), |
||
216 | |||
217 | VG_PATH_COMMAND_NDS_FORCE_SIZE = VG_MAX_ENUM |
||
218 | } VGPathCommandNds; |
||
219 | |||
220 | #ifdef VG_VGEXT_PROTOTYPES |
||
221 | VG_API_CALL void VG_API_ENTRY vgProjectiveMatrixNDS(VGboolean enable) ; |
||
222 | VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguTransformClipLineNDS(const VGfloat Ain,const VGfloat Bin,const VGfloat Cin,const VGfloat* matrix,const VGboolean inverse,VGfloat* Aout,VGfloat* Bout,VGfloat* Cout); |
||
223 | #endif |
||
224 | typedef void (VG_API_ENTRYP PFNVGPROJECTIVEMATRIXNDSPROC) (VGboolean enable) ; |
||
225 | typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUTRANSFORMCLIPLINENDSPROC) (const VGfloat Ain,const VGfloat Bin,const VGfloat Cin,const VGfloat* matrix,const VGboolean inverse,VGfloat* Aout,VGfloat* Bout,VGfloat* Cout); |
||
226 | |||
227 | #endif |
||
228 | |||
229 | #ifdef __cplusplus |
||
230 | } /* extern "C" */ |
||
231 | #endif |
||
232 | |||
233 | #endif /* _VGEXT_H */><>><>><>><>><>><> |