1 /* $Revision: 6810 $ on $Date:: 2008-10-29 07:31:37 -0700 #$ */
3 /*------------------------------------------------------------------------
5 * VG extensions Reference Implementation
6 * -------------------------------------
8 * Copyright (c) 2008 The Khronos Group Inc.
10 * Permission is hereby granted, free of charge, to any person obtaining a
11 * copy of this software and /or associated documentation files
12 * (the "Materials "), to deal in the Materials without restriction,
13 * including without limitation the rights to use, copy, modify, merge,
14 * publish, distribute, sublicense, and/or sell copies of the Materials,
15 * and to permit persons to whom the Materials are furnished to do so,
16 * subject to the following conditions:
18 * The above copyright notice and this permission notice shall be included
19 * in all copies or substantial portions of the Materials.
21 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
26 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
27 * THE USE OR OTHER DEALINGS IN THE MATERIALS.
31 * \brief VG extensions
32 *//*-------------------------------------------------------------------*/
43 #include <VG/openvg.h>
47 # define VG_API_ENTRYP VG_API_ENTRY*
50 #ifndef VGU_API_ENTRYP
51 # define VGU_API_ENTRYP VGU_API_ENTRY*
54 /*-------------------------------------------------------------------------------
56 *------------------------------------------------------------------------------*/
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,
66 VG_PARAM_TYPE_KHR_FORCE_SIZE
= VG_MAX_ENUM
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
;
74 #ifdef VG_VGEXT_PROTOTYPES
75 VG_API_CALL VGImage VG_API_ENTRY
vgCreateEGLImageTargetKHR(VGeglImageKHR image
);
77 typedef VGImage (VG_API_ENTRYP PFNVGCREATEEGLIMAGETARGETKHRPROC
) (VGeglImageKHR image
);
82 #ifndef VG_KHR_iterative_average_blur
83 #define VG_KHR_iterative_average_blur 1
85 #ifdef VG_VGEXT_PROTOTYPES
86 VG_API_CALL
void vgIterativeAverageBlurKHR(VGImage dst
,VGImage src
,VGfloat dimX
,VGfloat dimY
,VGuint iterative
,VGTilingMode tilingMode
);
88 typedef void (VG_API_ENTRYP PFNVGITERATIVEAVERAGEBLURKHRPROC
) (VGImage dst
,VGImage src
,VGfloat dimX
,VGfloat dimY
,VGuint iterative
,VGTilingMode tilingMode
);
93 #ifndef VG_KHR_advanced_blending
94 #define VG_KHR_advanced_blending 1
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,
121 VG_BLEND_MODE_KHR_FORCE_SIZE
= VG_MAX_ENUM
125 #ifndef VG_KHR_parametric_filter
126 #define VG_KHR_parametric_filter 1
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),
134 VG_PF_TYPE_KHR_FORCE_SIZE
= VG_MAX_ENUM
138 VGU_IMAGE_IN_USE_ERROR
= 0xF010,
140 VGU_ERROR_CODE_KHR_FORCE_SIZE
= VG_MAX_ENUM
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
);
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
);
161 /*-------------------------------------------------------------------------------
163 *------------------------------------------------------------------------------*/
165 #ifndef VG_NDS_paint_generation
166 #define VG_NDS_paint_generation 1
169 VG_PAINT_COLOR_RAMP_LINEAR_NDS
= 0x1A10,
170 VG_COLOR_MATRIX_NDS
= 0x1A11,
171 VG_PAINT_COLOR_TRANSFORM_LINEAR_NDS
= 0x1A12,
173 VG_PAINT_PARAM_TYPE_NDS_FORCE_SIZE
= VG_MAX_ENUM
174 } VGPaintParamTypeNds
;
177 VG_DRAW_IMAGE_COLOR_MATRIX_NDS
= 0x1F10,
179 VG_IMAGE_MODE_NDS_FORCE_SIZE
= VG_MAX_ENUM
184 #ifndef VG_NDS_projective_geometry
185 #define VG_NDS_projective_geometry 1
188 VG_CLIP_MODE_NDS
= 0x1180,
189 VG_CLIP_LINES_NDS
= 0x1181,
190 VG_MAX_CLIP_LINES_NDS
= 0x1182,
192 VG_PARAM_TYPE_NDS_FORCE_SIZE
= VG_MAX_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,
201 VG_CLIPMODE_NDS_FORCE_SIZE
= VG_MAX_ENUM
205 VG_RQUAD_TO_NDS
= ( 13 << 1 ),
206 VG_RCUBIC_TO_NDS
= ( 14 << 1 ),
208 VG_PATH_SEGMENT_NDS_FORCE_SIZE
= VG_MAX_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
),
217 VG_PATH_COMMAND_NDS_FORCE_SIZE
= VG_MAX_ENUM
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
);
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
);
233 #endif /* _VGEXT_H */