vgext.h 11 KB

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