epoc32/include/VG/1.0/openvg.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
equal deleted inserted replaced
3:e1b950c65cb4 4:837f303aceeb
     1 /*------------------------------------------------------------------------
     1 /*------------------------------------------------------------------------
     2  *
     2  *
     3  * OpenVG 1.1 Reference Implementation
     3  * OpenVG 1.0.1 Reference Implementation
     4  * -------------------------------------
     4  * -------------------------------------
     5  *
     5  *
     6  * Copyright (c) 2008 The Khronos Group Inc.
     6  * Copyright (c) 2007-2009 The Khronos Group Inc.
     7  *
     7  *
     8  * Permission is hereby granted, free of charge, to any person obtaining a
     8  * Permission is hereby granted, free of charge, to any person obtaining a
     9  * copy of this software and /or associated documentation files
     9  * copy of this software and /or associated documentation files
    10  * (the "Materials "), to deal in the Materials without restriction,
    10  * (the "Materials "), to deal in the Materials without restriction,
    11  * including without limitation the rights to use, copy, modify, merge,
    11  * including without limitation the rights to use, copy, modify, merge,
    24  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
    24  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
    25  * THE USE OR OTHER DEALINGS IN THE MATERIALS.
    25  * THE USE OR OTHER DEALINGS IN THE MATERIALS.
    26  *
    26  *
    27  *//**
    27  *//**
    28  * \file
    28  * \file
    29  * \brief	OpenVG 1.1 API.
    29  * \brief	OpenVG 1.0.1 API.
    30  *//*-------------------------------------------------------------------*/
    30  *//*-------------------------------------------------------------------*/
    31 
    31 
    32 #ifndef __VG_1_1_OPENVG_H
    32 #ifndef __VG_1_0_OPENVG_H
    33 #define __VG_1_1_OPENVG_H
    33 #define __VG_1_0_OPENVG_H
    34 
    34 
    35 #ifndef __VG_OPENVG_H_
    35 #ifndef __VG_OPENVG_H_
    36 #error Do not include this file directly. Use <VG/openvg.h>.
    36 #error Do not include this file directly. Use <VG/openvg.h>.
    37 #endif
    37 #endif
    38 
    38 
    41 - the Doxygen comment with tag 'publishedAll', and tag 'released'
    41 - the Doxygen comment with tag 'publishedAll', and tag 'released'
    42 - changing 
    42 - changing 
    43 	#define VG_API_CALL extern 
    43 	#define VG_API_CALL extern 
    44 	to 
    44 	to 
    45 	#define VG_API_CALL IMPORT_C
    45 	#define VG_API_CALL IMPORT_C
    46 - the addition of __SOFTFP to all function prototypes
    46 - the addition of __SOFTFP in some of the function prototypes
    47 - the addition of VG_PATH_DATATYPE_INVALID in VGPathDatatype
    47 - the addition of VG_PATH_DATATYPE_INVALID in VGPathDatatype
    48 - the addition of VG_IMAGE_FORMAT_INVALID in VGImageFormat
    48 - the addition of VG_IMAGE_FORMAT_INVALID in VGImageFormat
    49 - the addition of VGeglImageKHR typedef for the VG_KHR_EGL_image extension
    49 - the addition of VGeglImageKHR typedef for the VG_KHR_EGL_image extension
    50  */
    50  */
    51 
    51 
    56 
    56 
    57 #ifdef __cplusplus
    57 #ifdef __cplusplus
    58 extern "C" {
    58 extern "C" {
    59 #endif
    59 #endif
    60 
    60 
       
    61 #define OPENVG_VERSION_1_0		1
       
    62 #define OPENVG_VERSION_1_0_1	1
       
    63 
    61 #include <khronos_types.h>
    64 #include <khronos_types.h>
    62 
    65 
    63 #define OPENVG_VERSION_1_0 1
    66 typedef khronos_float    VGfloat;
    64 #define OPENVG_VERSION_1_1 2
       
    65 
       
    66 typedef khronos_float_t  VGfloat;
       
    67 typedef khronos_int8_t   VGbyte;
    67 typedef khronos_int8_t   VGbyte;
    68 typedef khronos_uint8_t  VGubyte;
    68 typedef khronos_uint8_t  VGubyte;
    69 typedef khronos_int16_t  VGshort;
    69 typedef khronos_int16_t  VGshort;
    70 typedef khronos_int32_t  VGint;
    70 typedef khronos_int32_t  VGint;
    71 typedef khronos_uint32_t VGuint;
    71 typedef khronos_uint32_t VGuint;
   105   VG_IMAGE_MODE                               = 0x1105,
   105   VG_IMAGE_MODE                               = 0x1105,
   106 
   106 
   107   /* Scissoring rectangles */
   107   /* Scissoring rectangles */
   108   VG_SCISSOR_RECTS                            = 0x1106,
   108   VG_SCISSOR_RECTS                            = 0x1106,
   109 
   109 
   110   /* Color Transformation */
       
   111   VG_COLOR_TRANSFORM                          = 0x1170,
       
   112   VG_COLOR_TRANSFORM_VALUES                   = 0x1171,
       
   113 
       
   114   /* Stroke parameters */
   110   /* Stroke parameters */
   115   VG_STROKE_LINE_WIDTH                        = 0x1110,
   111   VG_STROKE_LINE_WIDTH                        = 0x1110,
   116   VG_STROKE_CAP_STYLE                         = 0x1111,
   112   VG_STROKE_CAP_STYLE                         = 0x1111,
   117   VG_STROKE_JOIN_STYLE                        = 0x1112,
   113   VG_STROKE_JOIN_STYLE                        = 0x1112,
   118   VG_STROKE_MITER_LIMIT                       = 0x1113,
   114   VG_STROKE_MITER_LIMIT                       = 0x1113,
   123   /* Edge fill color for VG_TILE_FILL tiling mode */
   119   /* Edge fill color for VG_TILE_FILL tiling mode */
   124   VG_TILE_FILL_COLOR                          = 0x1120,
   120   VG_TILE_FILL_COLOR                          = 0x1120,
   125 
   121 
   126   /* Color for vgClear */
   122   /* Color for vgClear */
   127   VG_CLEAR_COLOR                              = 0x1121,
   123   VG_CLEAR_COLOR                              = 0x1121,
   128 
       
   129   /* Glyph origin */
       
   130   VG_GLYPH_ORIGIN                             = 0x1122,
       
   131 
   124 
   132   /* Enable/disable alpha masking and scissoring */
   125   /* Enable/disable alpha masking and scissoring */
   133   VG_MASKING                                  = 0x1130,
   126   VG_MASKING                                  = 0x1130,
   134   VG_SCISSORING                               = 0x1131,
   127   VG_SCISSORING                               = 0x1131,
   135 
   128 
   174 
   167 
   175 typedef enum {
   168 typedef enum {
   176   VG_MATRIX_PATH_USER_TO_SURFACE              = 0x1400,
   169   VG_MATRIX_PATH_USER_TO_SURFACE              = 0x1400,
   177   VG_MATRIX_IMAGE_USER_TO_SURFACE             = 0x1401,
   170   VG_MATRIX_IMAGE_USER_TO_SURFACE             = 0x1401,
   178   VG_MATRIX_FILL_PAINT_TO_USER                = 0x1402,
   171   VG_MATRIX_FILL_PAINT_TO_USER                = 0x1402,
   179   VG_MATRIX_STROKE_PAINT_TO_USER              = 0x1403,
   172   VG_MATRIX_STROKE_PAINT_TO_USER              = 0x1403
   180   VG_MATRIX_GLYPH_USER_TO_SURFACE             = 0x1404
       
   181 } VGMatrixMode;
   173 } VGMatrixMode;
   182 
   174 
   183 typedef enum {
   175 typedef enum {
   184   VG_CLEAR_MASK                               = 0x1500,
   176   VG_CLEAR_MASK                               = 0x1500,
   185   VG_FILL_MASK                                = 0x1501,
   177   VG_FILL_MASK                                = 0x1501,
   350   VG_lRGBA_8888                               =  8,
   342   VG_lRGBA_8888                               =  8,
   351   VG_lRGBA_8888_PRE                           =  9,
   343   VG_lRGBA_8888_PRE                           =  9,
   352   VG_lL_8                                     = 10,
   344   VG_lL_8                                     = 10,
   353   VG_A_8                                      = 11,
   345   VG_A_8                                      = 11,
   354   VG_BW_1                                     = 12,
   346   VG_BW_1                                     = 12,
   355   VG_A_1                                      = 13,
       
   356   VG_A_4                                      = 14,
       
   357 
   347 
   358   /* {A,X}RGB channel ordering */
   348   /* {A,X}RGB channel ordering */
   359   VG_sXRGB_8888                               =  0 | (1 << 6),
   349   VG_sXRGB_8888                               =  0 | (1 << 6),
   360   VG_sARGB_8888                               =  1 | (1 << 6),
   350   VG_sARGB_8888                               =  1 | (1 << 6),
   361   VG_sARGB_8888_PRE                           =  2 | (1 << 6),
   351   VG_sARGB_8888_PRE                           =  2 | (1 << 6),
   443   VG_RENDERER                                 = 0x2301,
   433   VG_RENDERER                                 = 0x2301,
   444   VG_VERSION                                  = 0x2302,
   434   VG_VERSION                                  = 0x2302,
   445   VG_EXTENSIONS                               = 0x2303
   435   VG_EXTENSIONS                               = 0x2303
   446 } VGStringID;
   436 } VGStringID;
   447 
   437 
   448 typedef enum {
       
   449   VG_FONT_NUM_GLYPHS                          = 0x2F00
       
   450 } VGFontParamType;
       
   451 
       
   452 
       
   453 /* Function Prototypes */
   438 /* Function Prototypes */
   454 
   439 
   455 #ifndef VG_API_CALL
   440 #ifndef VG_API_CALL
   456 #define VG_API_CALL IMPORT_C
   441 #   if defined(SYMBIAN_VG_DLL_EXPORTS) 
       
   442 #       define VG_API_CALL EXPORT_C
       
   443 #   else
       
   444 #       define VG_API_CALL IMPORT_C
       
   445 #   endif //defined(SYMBIAN_VG_DLL_EXPORTS)
   457 #endif
   446 #endif
   458 #ifndef VG_APIENTRY
   447 
   459 #define VG_APIENTRY /* nothing */
   448 VG_API_CALL VGErrorCode vgGetError(void);
   460 #endif
   449 
   461 #ifndef VG_APIEXIT
   450 VG_API_CALL void vgFlush(void);
   462 #define VG_APIEXIT __SOFTFP
   451 VG_API_CALL void vgFinish(void);
   463 #endif
       
   464 
       
   465 VG_API_CALL VGErrorCode VG_APIENTRY
       
   466     vgGetError(void) VG_APIEXIT;
       
   467 
       
   468 VG_API_CALL void VG_APIENTRY
       
   469     vgFlush(void) VG_APIEXIT;
       
   470 VG_API_CALL void VG_APIENTRY
       
   471     vgFinish(void) VG_APIEXIT;
       
   472 
   452 
   473 /* Getters and Setters */
   453 /* Getters and Setters */
   474 VG_API_CALL void VG_APIENTRY
   454 VG_API_CALL void vgSetf (VGParamType type, VGfloat value) __SOFTFP;
   475    vgSetf (VGParamType type, VGfloat value) VG_APIEXIT;
   455 VG_API_CALL void vgSeti (VGParamType type, VGint value);
   476 VG_API_CALL void VG_APIENTRY
   456 VG_API_CALL void vgSetfv(VGParamType type, VGint count,
   477     vgSeti (VGParamType type, VGint value) VG_APIEXIT;
   457                          const VGfloat * values);
   478 VG_API_CALL void VG_APIENTRY
   458 VG_API_CALL void vgSetiv(VGParamType type, VGint count,
   479     vgSetfv(VGParamType type, VGint count,
   459                          const VGint * values);
   480         const VGfloat * values) VG_APIEXIT;
   460 
   481 VG_API_CALL void VG_APIENTRY
   461 VG_API_CALL VGfloat vgGetf(VGParamType type) __SOFTFP;
   482     vgSetiv(VGParamType type, VGint count,
   462 VG_API_CALL VGint   vgGeti(VGParamType type);
   483         const VGint * values) VG_APIEXIT;
   463 VG_API_CALL VGint   vgGetVectorSize(VGParamType type);
   484 VG_API_CALL VGfloat VG_APIENTRY
   464 VG_API_CALL void    vgGetfv(VGParamType type, VGint count, VGfloat * values);
   485     vgGetf(VGParamType type) VG_APIEXIT;
   465 VG_API_CALL void    vgGetiv(VGParamType type, VGint count, VGint * values);
   486 VG_API_CALL VGint   VG_APIENTRY
   466 
   487     vgGeti(VGParamType type) VG_APIEXIT;
   467 VG_API_CALL void vgSetParameterf(VGHandle object,
   488 VG_API_CALL VGint   VG_APIENTRY
   468                                  VGint paramType,
   489     vgGetVectorSize(VGParamType type) VG_APIEXIT;
   469                                  VGfloat value) __SOFTFP;
   490 VG_API_CALL void    VG_APIENTRY
   470 VG_API_CALL void vgSetParameteri(VGHandle object,
   491     vgGetfv(VGParamType type, VGint count,
   471                                  VGint paramType,
   492         VGfloat * values) VG_APIEXIT;
   472                                  VGint value);
   493 VG_API_CALL void    VG_APIENTRY
   473 VG_API_CALL void vgSetParameterfv(VGHandle object,
   494     vgGetiv(VGParamType type, VGint count,
   474                                   VGint paramType,
   495         VGint * values) VG_APIEXIT;
   475                                   VGint count, const VGfloat * values);
   496 VG_API_CALL void VG_APIENTRY
   476 VG_API_CALL void vgSetParameteriv(VGHandle object,
   497     vgSetParameterf(VGHandle object,
   477                                   VGint paramType,
   498         VGint paramType,
   478                                   VGint count, const VGint * values);
   499         VGfloat value) VG_APIEXIT;
   479 
   500 VG_API_CALL void VG_APIENTRY
   480 VG_API_CALL VGfloat vgGetParameterf(VGHandle object,
   501     vgSetParameteri(VGHandle object,
   481                                     VGint paramType) __SOFTFP;
   502         VGint paramType,
   482 VG_API_CALL VGint vgGetParameteri(VGHandle object,
   503         VGint value) VG_APIEXIT;
   483                                   VGint paramType);
   504 VG_API_CALL void VG_APIENTRY
   484 VG_API_CALL VGint vgGetParameterVectorSize(VGHandle object,
   505     vgSetParameterfv(VGHandle object,
   485                                            VGint paramType);
   506         VGint paramType,
   486 VG_API_CALL void vgGetParameterfv(VGHandle object,
   507         VGint count,
   487                                   VGint paramType,
   508         const VGfloat * values) VG_APIEXIT;
   488                                   VGint count, VGfloat * values);
   509 VG_API_CALL void VG_APIENTRY
   489 VG_API_CALL void vgGetParameteriv(VGHandle object,
   510     vgSetParameteriv(VGHandle object,
   490                                   VGint paramType,
   511         VGint paramType,
   491                                   VGint count, VGint * values);
   512         VGint count,
       
   513         const VGint * values) VG_APIEXIT;
       
   514 
       
   515 VG_API_CALL VGfloat VG_APIENTRY
       
   516     vgGetParameterf(VGHandle object,
       
   517         VGint paramType) VG_APIEXIT;
       
   518 VG_API_CALL VGint VG_APIENTRY
       
   519     vgGetParameteri(VGHandle object,
       
   520         VGint paramType) VG_APIEXIT;
       
   521 VG_API_CALL VGint VG_APIENTRY
       
   522     vgGetParameterVectorSize(VGHandle object,
       
   523         VGint paramType) VG_APIEXIT;
       
   524 VG_API_CALL void VG_APIENTRY
       
   525     vgGetParameterfv(VGHandle object,
       
   526         VGint paramType,
       
   527         VGint count,
       
   528         VGfloat * values) VG_APIEXIT;
       
   529 VG_API_CALL void VG_APIENTRY
       
   530     vgGetParameteriv(VGHandle object,
       
   531         VGint paramType,
       
   532         VGint count,
       
   533         VGint * values) VG_APIEXIT;
       
   534 
   492 
   535 /* Matrix Manipulation */
   493 /* Matrix Manipulation */
   536 VG_API_CALL void VG_APIENTRY
   494 VG_API_CALL void vgLoadIdentity(void);
   537     vgLoadIdentity(void) VG_APIEXIT;
   495 VG_API_CALL void vgLoadMatrix(const VGfloat * m);
   538 VG_API_CALL void VG_APIENTRY
   496 VG_API_CALL void vgGetMatrix(VGfloat * m);
   539     vgLoadMatrix(const VGfloat * m) VG_APIEXIT;
   497 VG_API_CALL void vgMultMatrix(const VGfloat * m);
   540 VG_API_CALL void VG_APIENTRY
   498 VG_API_CALL void vgTranslate(VGfloat tx, VGfloat ty) __SOFTFP;
   541     vgGetMatrix(VGfloat * m) VG_APIEXIT;
   499 VG_API_CALL void vgScale(VGfloat sx, VGfloat sy) __SOFTFP;
   542 VG_API_CALL void VG_APIENTRY
   500 VG_API_CALL void vgShear(VGfloat shx, VGfloat shy) __SOFTFP;
   543     vgMultMatrix(const VGfloat * m) VG_APIEXIT;
   501 VG_API_CALL void vgRotate(VGfloat angle) __SOFTFP;
   544 VG_API_CALL void VG_APIENTRY
       
   545     vgTranslate(VGfloat tx, VGfloat ty) VG_APIEXIT;
       
   546 VG_API_CALL void VG_APIENTRY
       
   547     vgScale(VGfloat sx, VGfloat sy) VG_APIEXIT;
       
   548 VG_API_CALL void VG_APIENTRY
       
   549     vgShear(VGfloat shx, VGfloat shy) VG_APIEXIT;
       
   550 VG_API_CALL void VG_APIENTRY
       
   551     vgRotate(VGfloat angle) VG_APIEXIT;
       
   552 
   502 
   553 /* Masking and Clearing */
   503 /* Masking and Clearing */
   554 typedef VGHandle VGMaskLayer;
   504 VG_API_CALL void vgMask(VGImage mask, VGMaskOperation operation,
   555 
   505                         VGint x, VGint y, VGint width, VGint height);
   556 VG_API_CALL void VG_APIENTRY
   506 VG_API_CALL void vgClear(VGint x, VGint y, VGint width, VGint height);
   557     vgMask(VGHandle mask, VGMaskOperation operation,
       
   558         VGint x, VGint y,
       
   559         VGint width, VGint height) VG_APIEXIT;
       
   560 VG_API_CALL void VG_APIENTRY
       
   561     vgRenderToMask(VGPath path,
       
   562         VGbitfield paintModes,
       
   563         VGMaskOperation operation) VG_APIEXIT;
       
   564 VG_API_CALL VGMaskLayer VG_APIENTRY
       
   565     vgCreateMaskLayer(VGint width, VGint height) VG_APIEXIT;
       
   566 VG_API_CALL void VG_APIENTRY
       
   567     vgDestroyMaskLayer(VGMaskLayer maskLayer) VG_APIEXIT;
       
   568 VG_API_CALL void VG_APIENTRY
       
   569     vgFillMaskLayer(VGMaskLayer maskLayer,
       
   570         VGint x, VGint y,
       
   571         VGint width, VGint height,
       
   572         VGfloat value) VG_APIEXIT;
       
   573 VG_API_CALL void VG_APIENTRY
       
   574     vgCopyMask(VGMaskLayer maskLayer,
       
   575         VGint sx, VGint sy,
       
   576         VGint dx, VGint dy,
       
   577         VGint width, VGint height) VG_APIEXIT;
       
   578 VG_API_CALL void VG_APIENTRY
       
   579     vgClear(VGint x, VGint y,
       
   580         VGint width, VGint height) VG_APIEXIT;
       
   581 
   507 
   582 /* Paths */
   508 /* Paths */
   583 VG_API_CALL VGPath VG_APIENTRY
   509 VG_API_CALL VGPath vgCreatePath(VGint pathFormat,
   584     vgCreatePath(VGint pathFormat,
   510                                 VGPathDatatype datatype,
   585         VGPathDatatype datatype,
   511                                 VGfloat scale, VGfloat bias,
   586         VGfloat scale, VGfloat bias,
   512                                 VGint segmentCapacityHint,
   587         VGint segmentCapacityHint,
   513                                 VGint coordCapacityHint,
   588         VGint coordCapacityHint,
   514                                 VGbitfield capabilities) __SOFTFP;
   589         VGbitfield capabilities) VG_APIEXIT;
   515 VG_API_CALL void vgClearPath(VGPath path, VGbitfield capabilities);
   590 VG_API_CALL void VG_APIENTRY
   516 VG_API_CALL void vgDestroyPath(VGPath path);
   591     vgClearPath(VGPath path, VGbitfield capabilities) VG_APIEXIT;
   517 VG_API_CALL void vgRemovePathCapabilities(VGPath path,
   592 VG_API_CALL void VG_APIENTRY
   518                                           VGbitfield capabilities);
   593     vgDestroyPath(VGPath path) VG_APIEXIT;
   519 VG_API_CALL VGbitfield vgGetPathCapabilities(VGPath path);
   594 VG_API_CALL void VG_APIENTRY
   520 VG_API_CALL void vgAppendPath(VGPath dstPath, VGPath srcPath);
   595     vgRemovePathCapabilities(VGPath path,
   521 VG_API_CALL void vgAppendPathData(VGPath dstPath,
   596         VGbitfield capabilities) VG_APIEXIT;
   522                                   VGint numSegments,
   597 VG_API_CALL VGbitfield VG_APIENTRY
   523                                   const VGubyte * pathSegments,
   598     vgGetPathCapabilities(VGPath path) VG_APIEXIT;
   524                                   const void * pathData);
   599 VG_API_CALL void VG_APIENTRY
   525 VG_API_CALL void vgModifyPathCoords(VGPath dstPath, VGint startIndex,
   600     vgAppendPath(VGPath dstPath, VGPath srcPath) VG_APIEXIT;
   526                                     VGint numSegments,
   601 VG_API_CALL void VG_APIENTRY
   527                                     const void * pathData);
   602     vgAppendPathData(VGPath dstPath,
   528 VG_API_CALL void vgTransformPath(VGPath dstPath, VGPath srcPath);
   603         VGint numSegments,
   529 VG_API_CALL VGboolean vgInterpolatePath(VGPath dstPath,
   604         const VGubyte * pathSegments,
   530                                         VGPath startPath,
   605         const void * pathData) VG_APIEXIT;
   531                                         VGPath endPath,
   606 VG_API_CALL void VG_APIENTRY
   532                                         VGfloat amount) __SOFTFP;
   607     vgModifyPathCoords(VGPath dstPath,
   533 VG_API_CALL VGfloat vgPathLength(VGPath path,
   608         VGint startIndex,
   534                                  VGint startSegment, VGint numSegments) __SOFTFP;
   609         VGint numSegments,
   535 VG_API_CALL void vgPointAlongPath(VGPath path,
   610         const void * pathData) VG_APIEXIT;
   536                                   VGint startSegment, VGint numSegments,
   611 VG_API_CALL void VG_APIENTRY
   537                                   VGfloat distance,
   612     vgTransformPath(VGPath dstPath, VGPath srcPath) VG_APIEXIT;
   538                                   VGfloat * x, VGfloat * y,
   613 VG_API_CALL VGboolean VG_APIENTRY
   539                                   VGfloat * tangentX, VGfloat * tangentY) __SOFTFP;
   614     vgInterpolatePath(VGPath dstPath,
   540 VG_API_CALL void vgPathBounds(VGPath path,
   615         VGPath startPath,
   541                               VGfloat * minX, VGfloat * minY,
   616         VGPath endPath,
   542                               VGfloat * width, VGfloat * height);
   617         VGfloat amount) VG_APIEXIT;
   543 VG_API_CALL void vgPathTransformedBounds(VGPath path,
   618 VG_API_CALL VGfloat VG_APIENTRY
   544                                          VGfloat * minX, VGfloat * minY,
   619     vgPathLength(VGPath path,
   545                                          VGfloat * width, VGfloat * height);
   620         VGint startSegment,
   546 VG_API_CALL void vgDrawPath(VGPath path, VGbitfield paintModes);
   621         VGint numSegments) VG_APIEXIT;
       
   622 VG_API_CALL void VG_APIENTRY
       
   623     vgPointAlongPath(VGPath path,
       
   624         VGint startSegment,
       
   625         VGint numSegments,
       
   626         VGfloat distance,
       
   627         VGfloat * x, VGfloat * y,
       
   628         VGfloat * tangentX,
       
   629         VGfloat * tangentY) VG_APIEXIT;
       
   630 VG_API_CALL void VG_APIENTRY
       
   631     vgPathBounds(VGPath path,
       
   632         VGfloat * minX,
       
   633         VGfloat * minY,
       
   634         VGfloat * width,
       
   635         VGfloat * height) VG_APIEXIT;
       
   636 VG_API_CALL void VG_APIENTRY
       
   637     vgPathTransformedBounds(VGPath path,
       
   638         VGfloat * minX,
       
   639         VGfloat * minY,
       
   640         VGfloat * width,
       
   641         VGfloat * height) VG_APIEXIT;
       
   642 VG_API_CALL void VG_APIENTRY
       
   643     vgDrawPath(VGPath path, VGbitfield paintModes) VG_APIEXIT;
       
   644 
   547 
   645 /* Paint */
   548 /* Paint */
   646 VG_API_CALL VGPaint VG_APIENTRY
   549 VG_API_CALL VGPaint vgCreatePaint(void);
   647     vgCreatePaint(void) VG_APIEXIT;
   550 VG_API_CALL void vgDestroyPaint(VGPaint paint);
   648 VG_API_CALL void VG_APIENTRY
   551 VG_API_CALL void vgSetPaint(VGPaint paint, VGbitfield paintModes);
   649     vgDestroyPaint(VGPaint paint) VG_APIEXIT;
   552 VG_API_CALL VGPaint vgGetPaint(VGPaintMode paintMode);
   650 VG_API_CALL void VG_APIENTRY
   553 VG_API_CALL void vgSetColor(VGPaint paint, VGuint rgba);
   651     vgSetPaint(VGPaint paint, VGbitfield paintModes) VG_APIEXIT;
   554 VG_API_CALL VGuint vgGetColor(VGPaint paint);
   652 VG_API_CALL VGPaint VG_APIENTRY
   555 VG_API_CALL void vgPaintPattern(VGPaint paint, VGImage pattern);
   653     vgGetPaint(VGPaintMode paintMode) VG_APIEXIT;
       
   654 VG_API_CALL void VG_APIENTRY
       
   655     vgSetColor(VGPaint paint, VGuint rgba) VG_APIEXIT;
       
   656 VG_API_CALL VGuint VG_APIENTRY
       
   657     vgGetColor(VGPaint paint) VG_APIEXIT;
       
   658 VG_API_CALL void VG_APIENTRY
       
   659     vgPaintPattern(VGPaint paint, VGImage pattern) VG_APIEXIT;
       
   660 
   556 
   661 /* Images */
   557 /* Images */
   662 VG_API_CALL VGImage VG_APIENTRY
   558 VG_API_CALL VGImage vgCreateImage(VGImageFormat format,
   663     vgCreateImage(VGImageFormat format,
   559                                   VGint width, VGint height,
   664         VGint width, VGint height,
   560                                   VGbitfield allowedQuality);
   665         VGbitfield allowedQuality) VG_APIEXIT;
   561 VG_API_CALL void vgDestroyImage(VGImage image);
   666 VG_API_CALL void VG_APIENTRY
   562 VG_API_CALL void vgClearImage(VGImage image,
   667     vgDestroyImage(VGImage image) VG_APIEXIT;
   563                               VGint x, VGint y, VGint width, VGint height);
   668 VG_API_CALL void VG_APIENTRY
   564 VG_API_CALL void vgImageSubData(VGImage image,
   669     vgClearImage(VGImage image,
   565                                 const void * data, VGint dataStride,
   670         VGint x, VGint y,
   566                                 VGImageFormat dataFormat,
   671         VGint width, VGint height) VG_APIEXIT;
   567                                 VGint x, VGint y, VGint width, VGint height);
   672 VG_API_CALL void VG_APIENTRY
   568 VG_API_CALL void vgGetImageSubData(VGImage image,
   673     vgImageSubData(VGImage image,
   569                                    void * data, VGint dataStride,
   674         const void * data,
   570                                    VGImageFormat dataFormat,
   675         VGint dataStride,
   571                                    VGint x, VGint y,
   676         VGImageFormat dataFormat,
   572                                    VGint width, VGint height);
   677         VGint x, VGint y,
   573 VG_API_CALL VGImage vgChildImage(VGImage parent,
   678         VGint width, VGint height) VG_APIEXIT;
   574                                  VGint x, VGint y, VGint width, VGint height);
   679 VG_API_CALL void VG_APIENTRY
   575 VG_API_CALL VGImage vgGetParent(VGImage image); 
   680     vgGetImageSubData(VGImage image,
   576 VG_API_CALL void vgCopyImage(VGImage dst, VGint dx, VGint dy,
   681         void * data,
   577                              VGImage src, VGint sx, VGint sy,
   682         VGint dataStride,
   578                              VGint width, VGint height,
   683         VGImageFormat dataFormat,
   579                              VGboolean dither);
   684         VGint x, VGint y,
   580 VG_API_CALL void vgDrawImage(VGImage image);
   685         VGint width, VGint height) VG_APIEXIT;
   581 VG_API_CALL void vgSetPixels(VGint dx, VGint dy,
   686 VG_API_CALL VGImage VG_APIENTRY
   582                              VGImage src, VGint sx, VGint sy,
   687     vgChildImage(VGImage parent,
   583                              VGint width, VGint height);
   688         VGint x, VGint y,
   584 VG_API_CALL void vgWritePixels(const void * data, VGint dataStride,
   689         VGint width, VGint height) VG_APIEXIT;
   585                                VGImageFormat dataFormat,
   690 VG_API_CALL VGImage VG_APIENTRY
   586                                VGint dx, VGint dy,
   691     vgGetParent(VGImage image) VG_APIEXIT;
   587                                VGint width, VGint height);
   692 VG_API_CALL void VG_APIENTRY
   588 VG_API_CALL void vgGetPixels(VGImage dst, VGint dx, VGint dy,
   693     vgCopyImage(VGImage dst, VGint dx, VGint dy,
   589                              VGint sx, VGint sy,
   694         VGImage src, VGint sx, VGint sy,
   590                              VGint width, VGint height);
   695         VGint width, VGint height,
   591 VG_API_CALL void vgReadPixels(void * data, VGint dataStride,
   696         VGboolean dither) VG_APIEXIT;
   592                               VGImageFormat dataFormat,
   697 VG_API_CALL void VG_APIENTRY
   593                               VGint sx, VGint sy,
   698     vgDrawImage(VGImage image) VG_APIEXIT;
   594                               VGint width, VGint height);
   699 VG_API_CALL void VG_APIENTRY
   595 VG_API_CALL void vgCopyPixels(VGint dx, VGint dy,
   700     vgSetPixels(VGint dx, VGint dy,
   596                               VGint sx, VGint sy,
   701         VGImage src, VGint sx, VGint sy,
   597                               VGint width, VGint height);
   702         VGint width, VGint height) VG_APIEXIT;
       
   703 VG_API_CALL void VG_APIENTRY
       
   704     vgWritePixels(const void * data, VGint dataStride,
       
   705         VGImageFormat dataFormat,
       
   706         VGint dx, VGint dy,
       
   707         VGint width, VGint height) VG_APIEXIT;
       
   708 VG_API_CALL void VG_APIENTRY
       
   709     vgGetPixels(VGImage dst, VGint dx, VGint dy,
       
   710         VGint sx, VGint sy,
       
   711         VGint width, VGint height) VG_APIEXIT;
       
   712 VG_API_CALL void VG_APIENTRY
       
   713     vgReadPixels(void * data, VGint dataStride,
       
   714         VGImageFormat dataFormat,
       
   715         VGint sx, VGint sy,
       
   716         VGint width, VGint height) VG_APIEXIT;
       
   717 VG_API_CALL void VG_APIENTRY
       
   718     vgCopyPixels(VGint dx, VGint dy,
       
   719         VGint sx, VGint sy,
       
   720         VGint width, VGint height) VG_APIEXIT;
       
   721 
       
   722 /* Text */
       
   723 typedef VGHandle VGFont;
       
   724 
       
   725 VG_API_CALL VGFont VG_APIENTRY
       
   726     vgCreateFont(VGint glyphCapacityHint) VG_APIEXIT;
       
   727 VG_API_CALL void VG_APIENTRY
       
   728     vgDestroyFont(VGFont font) VG_APIEXIT;
       
   729 VG_API_CALL void VG_APIENTRY
       
   730     vgSetGlyphToPath(VGFont font,
       
   731         VGuint glyphIndex,
       
   732         VGPath path,
       
   733         VGboolean isHinted,
       
   734         const VGfloat glyphOrigin [2],
       
   735         const VGfloat escapement[2]) VG_APIEXIT;
       
   736 VG_API_CALL void VG_APIENTRY
       
   737     vgSetGlyphToImage(VGFont font,
       
   738         VGuint glyphIndex,
       
   739         VGImage image,
       
   740         const VGfloat glyphOrigin [2],
       
   741         const VGfloat escapement[2]) VG_APIEXIT;
       
   742 VG_API_CALL void VG_APIENTRY
       
   743     vgClearGlyph(VGFont font,
       
   744         VGuint glyphIndex) VG_APIEXIT;
       
   745 VG_API_CALL void VG_APIENTRY
       
   746     vgDrawGlyph(VGFont font,
       
   747         VGuint glyphIndex,
       
   748         VGbitfield paintModes,
       
   749         VGboolean allowAutoHinting) VG_APIEXIT;
       
   750 VG_API_CALL void VG_APIENTRY
       
   751     vgDrawGlyphs(VGFont font,
       
   752         VGint glyphCount,
       
   753         const VGuint * glyphIndices,
       
   754         const VGfloat * adjustments_x,
       
   755         const VGfloat * adjustments_y,
       
   756         VGbitfield paintModes,
       
   757         VGboolean allowAutoHinting) VG_APIEXIT;
       
   758 
   598 
   759 /* Image Filters */
   599 /* Image Filters */
   760 VG_API_CALL void VG_APIENTRY
   600 VG_API_CALL void vgColorMatrix(VGImage dst, VGImage src,
   761     vgColorMatrix(VGImage dst, VGImage src,
   601                                const VGfloat * matrix);
   762         const VGfloat * matrix) VG_APIEXIT;
   602 VG_API_CALL void vgConvolve(VGImage dst, VGImage src,
   763 VG_API_CALL void VG_APIENTRY
   603                             VGint kernelWidth, VGint kernelHeight,
   764     vgConvolve(VGImage dst, VGImage src,
   604                             VGint shiftX, VGint shiftY,
   765         VGint kernelWidth, VGint kernelHeight,
   605                             const VGshort * kernel,
   766         VGint shiftX, VGint shiftY,
   606                             VGfloat scale,
   767         const VGshort * kernel,
   607                             VGfloat bias,
   768         VGfloat scale,
   608                             VGTilingMode tilingMode) __SOFTFP;
   769         VGfloat bias,
   609 VG_API_CALL void vgSeparableConvolve(VGImage dst, VGImage src,
   770         VGTilingMode tilingMode) VG_APIEXIT;
   610                                      VGint kernelWidth,
   771 VG_API_CALL void VG_APIENTRY
   611                                      VGint kernelHeight,
   772     vgSeparableConvolve(VGImage dst, VGImage src,
   612                                      VGint shiftX, VGint shiftY,
   773         VGint kernelWidth,
   613                                      const VGshort * kernelX,
   774         VGint kernelHeight,
   614                                      const VGshort * kernelY,
   775         VGint shiftX, VGint shiftY,
   615                                      VGfloat scale,
   776         const VGshort * kernelX,
   616                                      VGfloat bias,
   777         const VGshort * kernelY,
   617                                      VGTilingMode tilingMode) __SOFTFP;
   778         VGfloat scale,
   618 VG_API_CALL void vgGaussianBlur(VGImage dst, VGImage src,
   779         VGfloat bias,
   619                                 VGfloat stdDeviationX,
   780         VGTilingMode tilingMode) VG_APIEXIT;
   620                                 VGfloat stdDeviationY,
   781 VG_API_CALL void VG_APIENTRY
   621                                 VGTilingMode tilingMode) __SOFTFP;
   782     vgGaussianBlur(VGImage dst, VGImage src,
   622 VG_API_CALL void vgLookup(VGImage dst, VGImage src,
   783         VGfloat stdDeviationX,
   623                           const VGubyte * redLUT,
   784         VGfloat stdDeviationY,
   624                           const VGubyte * greenLUT,
   785         VGTilingMode tilingMode) VG_APIEXIT;
   625                           const VGubyte * blueLUT,
   786 VG_API_CALL void VG_APIENTRY
   626                           const VGubyte * alphaLUT,
   787     vgLookup(VGImage dst, VGImage src,
   627                           VGboolean outputLinear,
   788         const VGubyte * redLUT,
   628                           VGboolean outputPremultiplied);
   789         const VGubyte * greenLUT,
   629 VG_API_CALL void vgLookupSingle(VGImage dst, VGImage src,
   790         const VGubyte * blueLUT,
   630                                 const VGuint * lookupTable,
   791         const VGubyte * alphaLUT,
   631                                 VGImageChannel sourceChannel,
   792         VGboolean outputLinear,
   632                                 VGboolean outputLinear,
   793         VGboolean outputPremultiplied) VG_APIEXIT;
   633                                 VGboolean outputPremultiplied);
   794 VG_API_CALL void VG_APIENTRY
       
   795     vgLookupSingle(VGImage dst, VGImage src,
       
   796         const VGuint * lookupTable,
       
   797         VGImageChannel sourceChannel,
       
   798         VGboolean outputLinear,
       
   799         VGboolean outputPremultiplied) VG_APIEXIT;
       
   800 
   634 
   801 /* Hardware Queries */
   635 /* Hardware Queries */
   802 VG_API_CALL VGHardwareQueryResult VG_APIENTRY
   636 VG_API_CALL VGHardwareQueryResult vgHardwareQuery(VGHardwareQueryType key,
   803     vgHardwareQuery
   637                                                   VGint setting);
   804         (VGHardwareQueryType key,
       
   805         VGint setting) VG_APIEXIT;
       
   806 
   638 
   807 /* Renderer and Extension Information */
   639 /* Renderer and Extension Information */
   808 VG_API_CALL const VGubyte * VG_APIENTRY
   640 VG_API_CALL const VGubyte * vgGetString(VGStringID name);
   809     vgGetString(VGStringID name) VG_APIEXIT;
   641 
   810 
   642 #ifdef __cplusplus 
   811 #ifdef __cplusplus
       
   812 } /* extern "C" */
   643 } /* extern "C" */
   813 #endif
   644 #endif
   814 
   645 
   815 #endif /* __VG_1_1_OPENVG_H */
   646 #endif /*__VG_1_0_OPENVG_H */