Clone of mesa.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /* $Revision: 6810 $ on $Date:: 2008-10-29 10:31:37 -0400 #$ */
  2. /*------------------------------------------------------------------------
  3. *
  4. * VG extensions Reference Implementation
  5. * -------------------------------------
  6. *
  7. * Copyright (c) 2008 The Khronos Group Inc.
  8. *
  9. * Permission is hereby granted, free of charge, to any person obtaining a
  10. * copy of this software and /or associated documentation files
  11. * (the "Materials "), to deal in the Materials without restriction,
  12. * including without limitation the rights to use, copy, modify, merge,
  13. * publish, distribute, sublicense, and/or sell copies of the Materials,
  14. * and to permit persons to whom the Materials are furnished to do so,
  15. * subject to the following conditions:
  16. *
  17. * The above copyright notice and this permission notice shall be included
  18. * in all copies or substantial portions of the Materials.
  19. *
  20. * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  21. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  22. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  23. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  24. * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  25. * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
  26. * THE USE OR OTHER DEALINGS IN THE MATERIALS.
  27. *
  28. *//**
  29. * \file
  30. * \brief VG extensions
  31. *//*-------------------------------------------------------------------*/
  32. #ifndef _VGEXT_H
  33. #define _VGEXT_H
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. #include <VG/openvg.h>
  38. #include <VG/vgu.h>
  39. #ifndef VG_API_ENTRYP
  40. # define VG_API_ENTRYP VG_API_ENTRY*
  41. #endif
  42. #ifndef VGU_API_ENTRYP
  43. # define VGU_API_ENTRYP VGU_API_ENTRY*
  44. #endif
  45. /*-------------------------------------------------------------------------------
  46. * KHR extensions
  47. *------------------------------------------------------------------------------*/
  48. typedef enum {
  49. #ifndef VG_KHR_iterative_average_blur
  50. VG_MAX_AVERAGE_BLUR_DIMENSION_KHR = 0x116B,
  51. VG_AVERAGE_BLUR_DIMENSION_RESOLUTION_KHR = 0x116C,
  52. VG_MAX_AVERAGE_BLUR_ITERATIONS_KHR = 0x116D,
  53. #endif
  54. VG_PARAM_TYPE_KHR_FORCE_SIZE = VG_MAX_ENUM
  55. } VGParamTypeKHR;
  56. #ifndef VG_KHR_EGL_image
  57. #define VG_KHR_EGL_image 1
  58. /* VGEGLImageKHR is an opaque handle to an EGLImage */
  59. typedef void* VGeglImageKHR;
  60. #ifdef VG_VGEXT_PROTOTYPES
  61. VG_API_CALL VGImage VG_API_ENTRY vgCreateEGLImageTargetKHR(VGeglImageKHR image);
  62. #endif
  63. typedef VGImage (VG_API_ENTRYP PFNVGCREATEEGLIMAGETARGETKHRPROC) (VGeglImageKHR image);
  64. #endif
  65. #ifndef VG_KHR_iterative_average_blur
  66. #define VG_KHR_iterative_average_blur 1
  67. #ifdef VG_VGEXT_PROTOTYPES
  68. VG_API_CALL void vgIterativeAverageBlurKHR(VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGTilingMode tilingMode);
  69. #endif
  70. typedef void (VG_API_ENTRYP PFNVGITERATIVEAVERAGEBLURKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGTilingMode tilingMode);
  71. #endif
  72. #ifndef VG_KHR_advanced_blending
  73. #define VG_KHR_advanced_blending 1
  74. typedef enum {
  75. VG_BLEND_OVERLAY_KHR = 0x2010,
  76. VG_BLEND_HARDLIGHT_KHR = 0x2011,
  77. VG_BLEND_SOFTLIGHT_SVG_KHR = 0x2012,
  78. VG_BLEND_SOFTLIGHT_KHR = 0x2013,
  79. VG_BLEND_COLORDODGE_KHR = 0x2014,
  80. VG_BLEND_COLORBURN_KHR = 0x2015,
  81. VG_BLEND_DIFFERENCE_KHR = 0x2016,
  82. VG_BLEND_SUBTRACT_KHR = 0x2017,
  83. VG_BLEND_INVERT_KHR = 0x2018,
  84. VG_BLEND_EXCLUSION_KHR = 0x2019,
  85. VG_BLEND_LINEARDODGE_KHR = 0x201a,
  86. VG_BLEND_LINEARBURN_KHR = 0x201b,
  87. VG_BLEND_VIVIDLIGHT_KHR = 0x201c,
  88. VG_BLEND_LINEARLIGHT_KHR = 0x201d,
  89. VG_BLEND_PINLIGHT_KHR = 0x201e,
  90. VG_BLEND_HARDMIX_KHR = 0x201f,
  91. VG_BLEND_CLEAR_KHR = 0x2020,
  92. VG_BLEND_DST_KHR = 0x2021,
  93. VG_BLEND_SRC_OUT_KHR = 0x2022,
  94. VG_BLEND_DST_OUT_KHR = 0x2023,
  95. VG_BLEND_SRC_ATOP_KHR = 0x2024,
  96. VG_BLEND_DST_ATOP_KHR = 0x2025,
  97. VG_BLEND_XOR_KHR = 0x2026,
  98. VG_BLEND_MODE_KHR_FORCE_SIZE= VG_MAX_ENUM
  99. } VGBlendModeKHR;
  100. #endif
  101. #ifndef VG_KHR_parametric_filter
  102. #define VG_KHR_parametric_filter 1
  103. typedef enum {
  104. VG_PF_OBJECT_VISIBLE_FLAG_KHR = (1 << 0),
  105. VG_PF_KNOCKOUT_FLAG_KHR = (1 << 1),
  106. VG_PF_OUTER_FLAG_KHR = (1 << 2),
  107. VG_PF_INNER_FLAG_KHR = (1 << 3),
  108. VG_PF_TYPE_KHR_FORCE_SIZE = VG_MAX_ENUM
  109. } VGPfTypeKHR;
  110. typedef enum {
  111. VGU_IMAGE_IN_USE_ERROR = 0xF010,
  112. VGU_ERROR_CODE_KHR_FORCE_SIZE = VG_MAX_ENUM
  113. } VGUErrorCodeKHR;
  114. #ifdef VG_VGEXT_PROTOTYPES
  115. 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);
  116. 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);
  117. 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) ;
  118. 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);
  119. 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);
  120. 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);
  121. #endif
  122. typedef void (VG_API_ENTRYP PFNVGPARAMETRICFILTERKHRPROC) (VGImage dst,VGImage src,VGImage blur,VGfloat strength,VGfloat offsetX,VGfloat offsetY,VGbitfield filterFlags,VGPaint highlightPaint,VGPaint shadowPaint);
  123. 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);
  124. typedef VGUErrorCode (VGU_API_ENTRYP PFNVGUGLOWKHRPROC) (VGImage dst,VGImage src,VGfloat dimX,VGfloat dimY,VGuint iterative,VGfloat strength,VGbitfield filterFlags,VGbitfield allowedQuality,VGuint glowColorRGBA);
  125. 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);
  126. 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);
  127. 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);
  128. #endif
  129. /*-------------------------------------------------------------------------------
  130. * NDS extensions
  131. *------------------------------------------------------------------------------*/
  132. #ifndef VG_NDS_paint_generation
  133. #define VG_NDS_paint_generation 1
  134. typedef enum {
  135. VG_PAINT_COLOR_RAMP_LINEAR_NDS = 0x1A10,
  136. VG_COLOR_MATRIX_NDS = 0x1A11,
  137. VG_PAINT_COLOR_TRANSFORM_LINEAR_NDS = 0x1A12,
  138. VG_PAINT_PARAM_TYPE_NDS_FORCE_SIZE = VG_MAX_ENUM
  139. } VGPaintParamTypeNds;
  140. typedef enum {
  141. VG_DRAW_IMAGE_COLOR_MATRIX_NDS = 0x1F10,
  142. VG_IMAGE_MODE_NDS_FORCE_SIZE = VG_MAX_ENUM
  143. } VGImageModeNds;
  144. #endif
  145. #ifndef VG_NDS_projective_geometry
  146. #define VG_NDS_projective_geometry 1
  147. typedef enum {
  148. VG_CLIP_MODE_NDS = 0x1180,
  149. VG_CLIP_LINES_NDS = 0x1181,
  150. VG_MAX_CLIP_LINES_NDS = 0x1182,
  151. VG_PARAM_TYPE_NDS_FORCE_SIZE = VG_MAX_ENUM
  152. } VGParamTypeNds;
  153. typedef enum {
  154. VG_CLIPMODE_NONE_NDS = 0x3000,
  155. VG_CLIPMODE_CLIP_CLOSED_NDS = 0x3001,
  156. VG_CLIPMODE_CLIP_OPEN_NDS = 0x3002,
  157. VG_CLIPMODE_CULL_NDS = 0x3003,
  158. VG_CLIPMODE_NDS_FORCE_SIZE = VG_MAX_ENUM
  159. } VGClipModeNds;
  160. typedef enum {
  161. VG_RQUAD_TO_NDS = ( 13 << 1 ),
  162. VG_RCUBIC_TO_NDS = ( 14 << 1 ),
  163. VG_PATH_SEGMENT_NDS_FORCE_SIZE = VG_MAX_ENUM
  164. } VGPathSegmentNds;
  165. typedef enum {
  166. VG_RQUAD_TO_ABS_NDS = (VG_RQUAD_TO_NDS | VG_ABSOLUTE),
  167. VG_RQUAD_TO_REL_NDS = (VG_RQUAD_TO_NDS | VG_RELATIVE),
  168. VG_RCUBIC_TO_ABS_NDS = (VG_RCUBIC_TO_NDS | VG_ABSOLUTE),
  169. VG_RCUBIC_TO_REL_NDS = (VG_RCUBIC_TO_NDS | VG_RELATIVE),
  170. VG_PATH_COMMAND_NDS_FORCE_SIZE = VG_MAX_ENUM
  171. } VGPathCommandNds;
  172. #ifdef VG_VGEXT_PROTOTYPES
  173. VG_API_CALL void VG_API_ENTRY vgProjectiveMatrixNDS(VGboolean enable) ;
  174. 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);
  175. #endif
  176. typedef void (VG_API_ENTRYP PFNVGPROJECTIVEMATRIXNDSPROC) (VGboolean enable) ;
  177. 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);
  178. #endif
  179. #ifdef __cplusplus
  180. } /* extern "C" */
  181. #endif
  182. #endif /* _VGEXT_H */