1 /* $Revision: 6810 $ on $Date:: 2008-10-29 10:31:37 -0400 #$ */
\r
3 /*------------------------------------------------------------------------
\r
5 * VG extensions Reference Implementation
\r
6 * -------------------------------------
\r
8 * Copyright (c) 2008 The Khronos Group Inc.
\r
10 * Permission is hereby granted, free of charge, to any person obtaining a
\r
11 * copy of this software and /or associated documentation files
\r
12 * (the "Materials "), to deal in the Materials without restriction,
\r
13 * including without limitation the rights to use, copy, modify, merge,
\r
14 * publish, distribute, sublicense, and/or sell copies of the Materials,
\r
15 * and to permit persons to whom the Materials are furnished to do so,
\r
16 * subject to the following conditions:
\r
18 * The above copyright notice and this permission notice shall be included
\r
19 * in all copies or substantial portions of the Materials.
\r
21 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
\r
24 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
\r
25 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
\r
26 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
\r
27 * THE USE OR OTHER DEALINGS IN THE MATERIALS.
\r
31 * \brief VG extensions
\r
32 *//*-------------------------------------------------------------------*/
\r
43 #include <VG/openvg.h>
\r
46 #ifndef VG_API_ENTRYP
\r
47 # define VG_API_ENTRYP VG_API_ENTRY*
\r
50 #ifndef VGU_API_ENTRYP
\r
51 # define VGU_API_ENTRYP VGU_API_ENTRY*
\r
54 /*-------------------------------------------------------------------------------
\r
56 *------------------------------------------------------------------------------*/
\r
60 #ifndef VG_KHR_iterative_average_blur
\r
61 VG_MAX_AVERAGE_BLUR_DIMENSION_KHR = 0x116B,
\r
62 VG_AVERAGE_BLUR_DIMENSION_RESOLUTION_KHR = 0x116C,
\r
63 VG_MAX_AVERAGE_BLUR_ITERATIONS_KHR = 0x116D,
\r
66 VG_PARAM_TYPE_KHR_FORCE_SIZE = VG_MAX_ENUM
\r
69 #ifndef VG_KHR_EGL_image
\r
70 #define VG_KHR_EGL_image 1
\r
71 /* VGEGLImageKHR is an opaque handle to an EGLImage */
\r
72 typedef void* VGeglImageKHR;
\r
74 #ifdef VG_VGEXT_PROTOTYPES
\r
75 VG_API_CALL VGImage VG_API_ENTRY vgCreateEGLImageTargetKHR(VGeglImageKHR image);
\r
77 typedef VGImage (VG_API_ENTRYP PFNVGCREATEEGLIMAGETARGETKHRPROC) (VGeglImageKHR image);
\r
82 #ifndef VG_KHR_iterative_average_blur
\r
83 #define VG_KHR_iterative_average_blur 1
\r
85 #ifdef VG_VGEXT_PROTOTYPES
\r
86 VG_API_CALL void vgIterativeAverageBlurKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGTilingMode tilingMode);
\r
88 typedef void (VG_API_ENTRYP PFNVGITERATIVEAVERAGEBLURKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGTilingMode tilingMode);
\r
93 #ifndef VG_KHR_advanced_blending
\r
94 #define VG_KHR_advanced_blending 1
\r
97 VG_BLEND_OVERLAY_KHR = 0x2010,
\r
98 VG_BLEND_HARDLIGHT_KHR = 0x2011,
\r
99 VG_BLEND_SOFTLIGHT_SVG_KHR = 0x2012,
\r
100 VG_BLEND_SOFTLIGHT_KHR = 0x2013,
\r
101 VG_BLEND_COLORDODGE_KHR = 0x2014,
\r
102 VG_BLEND_COLORBURN_KHR = 0x2015,
\r
103 VG_BLEND_DIFFERENCE_KHR = 0x2016,
\r
104 VG_BLEND_SUBTRACT_KHR = 0x2017,
\r
105 VG_BLEND_INVERT_KHR = 0x2018,
\r
106 VG_BLEND_EXCLUSION_KHR = 0x2019,
\r
107 VG_BLEND_LINEARDODGE_KHR = 0x201a,
\r
108 VG_BLEND_LINEARBURN_KHR = 0x201b,
\r
109 VG_BLEND_VIVIDLIGHT_KHR = 0x201c,
\r
110 VG_BLEND_LINEARLIGHT_KHR = 0x201d,
\r
111 VG_BLEND_PINLIGHT_KHR = 0x201e,
\r
112 VG_BLEND_HARDMIX_KHR = 0x201f,
\r
113 VG_BLEND_CLEAR_KHR = 0x2020,
\r
114 VG_BLEND_DST_KHR = 0x2021,
\r
115 VG_BLEND_SRC_OUT_KHR = 0x2022,
\r
116 VG_BLEND_DST_OUT_KHR = 0x2023,
\r
117 VG_BLEND_SRC_ATOP_KHR = 0x2024,
\r
118 VG_BLEND_DST_ATOP_KHR = 0x2025,
\r
119 VG_BLEND_XOR_KHR = 0x2026,
\r
121 VG_BLEND_MODE_KHR_FORCE_SIZE= VG_MAX_ENUM
\r
125 #ifndef VG_KHR_parametric_filter
\r
126 #define VG_KHR_parametric_filter 1
\r
129 VG_PF_OBJECT_VISIBLE_FLAG_KHR = (1 << 0),
\r
130 VG_PF_KNOCKOUT_FLAG_KHR = (1 << 1),
\r
131 VG_PF_OUTER_FLAG_KHR = (1 << 2),
\r
132 VG_PF_INNER_FLAG_KHR = (1 << 3),
\r
134 VG_PF_TYPE_KHR_FORCE_SIZE = VG_MAX_ENUM
\r
138 VGU_IMAGE_IN_USE_ERROR = 0xF010,
\r
140 VGU_ERROR_CODE_KHR_FORCE_SIZE = VG_MAX_ENUM
\r
143 #ifdef VG_VGEXT_PROTOTYPES
\r
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);
\r
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);
\r
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) ;
\r
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);
\r
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);
\r
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);
\r
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);
\r
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);
\r
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);
\r
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);
\r
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);
\r
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);
\r
161 /*-------------------------------------------------------------------------------
\r
163 *------------------------------------------------------------------------------*/
\r
165 #ifndef VG_NDS_paint_generation
\r
166 #define VG_NDS_paint_generation 1
\r
169 VG_PAINT_COLOR_RAMP_LINEAR_NDS = 0x1A10,
\r
170 VG_COLOR_MATRIX_NDS = 0x1A11,
\r
171 VG_PAINT_COLOR_TRANSFORM_LINEAR_NDS = 0x1A12,
\r
173 VG_PAINT_PARAM_TYPE_NDS_FORCE_SIZE = VG_MAX_ENUM
\r
174 } VGPaintParamTypeNds;
\r
177 VG_DRAW_IMAGE_COLOR_MATRIX_NDS = 0x1F10,
\r
179 VG_IMAGE_MODE_NDS_FORCE_SIZE = VG_MAX_ENUM
\r
184 #ifndef VG_NDS_projective_geometry
\r
185 #define VG_NDS_projective_geometry 1
\r
188 VG_CLIP_MODE_NDS = 0x1180,
\r
189 VG_CLIP_LINES_NDS = 0x1181,
\r
190 VG_MAX_CLIP_LINES_NDS = 0x1182,
\r
192 VG_PARAM_TYPE_NDS_FORCE_SIZE = VG_MAX_ENUM
\r
196 VG_CLIPMODE_NONE_NDS = 0x3000,
\r
197 VG_CLIPMODE_CLIP_CLOSED_NDS = 0x3001,
\r
198 VG_CLIPMODE_CLIP_OPEN_NDS = 0x3002,
\r
199 VG_CLIPMODE_CULL_NDS = 0x3003,
\r
201 VG_CLIPMODE_NDS_FORCE_SIZE = VG_MAX_ENUM
\r
205 VG_RQUAD_TO_NDS = ( 13 << 1 ),
\r
206 VG_RCUBIC_TO_NDS = ( 14 << 1 ),
\r
208 VG_PATH_SEGMENT_NDS_FORCE_SIZE = VG_MAX_ENUM
\r
209 } VGPathSegmentNds;
\r
212 VG_RQUAD_TO_ABS_NDS = (VG_RQUAD_TO_NDS | VG_ABSOLUTE),
\r
213 VG_RQUAD_TO_REL_NDS = (VG_RQUAD_TO_NDS | VG_RELATIVE),
\r
214 VG_RCUBIC_TO_ABS_NDS = (VG_RCUBIC_TO_NDS | VG_ABSOLUTE),
\r
215 VG_RCUBIC_TO_REL_NDS = (VG_RCUBIC_TO_NDS | VG_RELATIVE),
\r
217 VG_PATH_COMMAND_NDS_FORCE_SIZE = VG_MAX_ENUM
\r
218 } VGPathCommandNds;
\r
220 #ifdef VG_VGEXT_PROTOTYPES
\r
221 VG_API_CALL void VG_API_ENTRY vgProjectiveMatrixNDS(VGboolean enable) ;
\r
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);
\r
224 typedef void (VG_API_ENTRYP PFNVGPROJECTIVEMATRIXNDSPROC) (VGboolean enable) ;
\r
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);
\r
229 #ifdef __cplusplus
\r
233 #endif /* _VGEXT_H */
\r