Subversion Repositories Kolibri OS

Rev

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 */