| OLD | NEW |
| (Empty) |
| 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 <VG/openvg.h> | |
| 44 #include <VG/vgu.h> | |
| 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,VGIma
ge 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,VGIm
age 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,VG
float angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint shadowColorR
GBA); | |
| 146 VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguGlowKHR(VGImage dst,VGImage src,VGflo
at dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGbitfield filterFlags,VG
bitfield allowedQuality,VGuint glowColorRGBA) ; | |
| 147 VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguBevelKHR(VGImage dst,VGImage src,VGfl
oat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,VGfloat
angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint highlightColorRGB
A,VGuint shadowColorRGBA); | |
| 148 VGU_API_CALL VGUErrorCode VGU_API_ENTRY vguGradientGlowKHR(VGImage dst,VGImage s
rc,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 stopsCoun
t,const VGfloat* bevelColorRampStops); | |
| 150 #endif | |
| 151 typedef void (VG_API_ENTRYP PFNVGPARAMETRICFILTERKHRPROC) (VGImage dst,VGImage s
rc,VGImage blur,VGfloat strength,VGfloat offsetX,VGfloat offsetY,VGbitfield filt
erFlags,VGPaint highlightPaint,VGPaint shadowPaint); | |
| 152 typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUDROPSHADOWKHRPROC) (VGImage dst,VGIma
ge src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat dista
nce,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint shadow
ColorRGBA); | |
| 153 typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUGLOWKHRPROC) (VGImage dst,VGImage src
,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGbitfield filterFl
ags,VGbitfield allowedQuality,VGuint glowColorRGBA); | |
| 154 typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUBEVELKHRPROC) (VGImage dst,VGImage sr
c,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat distance,V
Gfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint highlightCo
lorRGBA,VGuint shadowColorRGBA); | |
| 155 typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUGRADIENTGLOWKHRPROC) (VGImage dst,VGI
mage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat dis
tance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint stop
sCount,const VGfloat* glowColorRampStops); | |
| 156 typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUGRADIENTBEVELKHRPROC) (VGImage dst,VG
Image src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGfloat di
stance,VGfloat angle,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint sto
psCount,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 Ai
n,const VGfloat Bin,const VGfloat Cin,const VGfloat* matrix,const VGboolean inve
rse,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 VGfl
oat Ain,const VGfloat Bin,const VGfloat Cin,const VGfloat* matrix,const VGboolea
n inverse,VGfloat* Aout,VGfloat* Bout,VGfloat* Cout); | |
| 226 | |
| 227 #endif | |
| 228 | |
| 229 #ifdef __cplusplus | |
| 230 } /* extern "C" */ | |
| 231 #endif | |
| 232 | |
| 233 #endif /* _VGEXT_H */ | |
| OLD | NEW |