epoc32/include/VG/1.1/vgu.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
/*------------------------------------------------------------------------
williamr@4
     2
 * 
williamr@4
     3
 * VGU 1.1 Reference Implementation
williamr@4
     4
 * -------------------------------------
williamr@4
     5
 *
williamr@4
     6
 * Copyright (c) 2008-2009 The Khronos Group Inc.
williamr@4
     7
 *
williamr@4
     8
 * Permission is hereby granted, free of charge, to any person obtaining a
williamr@4
     9
 * copy of this software and /or associated documentation files
williamr@4
    10
 * (the "Materials "), to deal in the Materials without restriction,
williamr@4
    11
 * including without limitation the rights to use, copy, modify, merge,
williamr@4
    12
 * publish, distribute, sublicense, and/or sell copies of the Materials,
williamr@4
    13
 * and to permit persons to whom the Materials are furnished to do so,
williamr@4
    14
 * subject to the following conditions: 
williamr@4
    15
 *
williamr@4
    16
 * The above copyright notice and this permission notice shall be included 
williamr@4
    17
 * in all copies or substantial portions of the Materials. 
williamr@4
    18
 *
williamr@4
    19
 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
williamr@4
    20
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
williamr@4
    21
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
williamr@4
    22
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
williamr@4
    23
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
williamr@4
    24
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
williamr@4
    25
 * THE USE OR OTHER DEALINGS IN THE MATERIALS.
williamr@4
    26
 *
williamr@4
    27
 *//**
williamr@4
    28
 * \file
williamr@4
    29
 * \brief	VGU 1.1 API.
williamr@4
    30
 *//*-------------------------------------------------------------------*/
williamr@4
    31
williamr@4
    32
#ifndef __VG_1_1_VGU_H
williamr@4
    33
#define __VG_1_1_VGU_H
williamr@4
    34
williamr@4
    35
#ifndef __VG_VGU_H_
williamr@4
    36
#error Do not include this file directly. Use <VG/vgu.h>.
williamr@4
    37
#endif
williamr@4
    38
williamr@4
    39
/* differences from the actual sample implemtation provided by Khronos:
williamr@4
    40
- this comment
williamr@4
    41
- the Doxygen comment with tag 'publishedAll', and tag 'released'
williamr@4
    42
- changing 
williamr@4
    43
	#define VG_API_CALL extern 
williamr@4
    44
	to 
williamr@4
    45
	#define VG_API_CALL IMPORT_C
williamr@4
    46
- the addition of __SOFTFP in some of the function prototypes
williamr@4
    47
 */
williamr@4
    48
williamr@4
    49
/**
williamr@4
    50
@publishedAll
williamr@4
    51
@released
williamr@4
    52
*/
williamr@4
    53
#ifdef __cplusplus
williamr@4
    54
extern "C" {
williamr@4
    55
#endif
williamr@4
    56
williamr@4
    57
#include <VG/openvg.h>
williamr@4
    58
williamr@4
    59
#define VGU_VERSION_1_0		1
williamr@4
    60
#define VGU_VERSION_1_0_1	1
williamr@4
    61
#define VGU_VERSION_1_1		2
williamr@4
    62
williamr@4
    63
#ifndef VGU_API_CALL
williamr@4
    64
#   if defined(SYMBIAN_VG_DLL_EXPORTS)
williamr@4
    65
#       define VGU_API_CALL EXPORT_C
williamr@4
    66
#   else
williamr@4
    67
#       define VGU_API_CALL IMPORT_C
williamr@4
    68
#   endif //defined(SYMBIAN_VG_DLL_EXPORTS)
williamr@4
    69
#endif
williamr@4
    70
#ifndef VGU_APIENTRY
williamr@4
    71
#define VGU_APIENTRY /* nothing */
williamr@4
    72
#endif
williamr@4
    73
#ifndef VGU_APIEXIT
williamr@4
    74
#define VGU_APIEXIT __SOFTFP
williamr@4
    75
#endif
williamr@4
    76
williamr@4
    77
typedef enum {
williamr@4
    78
  VGU_NO_ERROR                                 = 0,
williamr@4
    79
  VGU_BAD_HANDLE_ERROR                         = 0xF000,
williamr@4
    80
  VGU_ILLEGAL_ARGUMENT_ERROR                   = 0xF001,
williamr@4
    81
  VGU_OUT_OF_MEMORY_ERROR                      = 0xF002,
williamr@4
    82
  VGU_PATH_CAPABILITY_ERROR                    = 0xF003,
williamr@4
    83
  VGU_BAD_WARP_ERROR                           = 0xF004
williamr@4
    84
} VGUErrorCode;
williamr@4
    85
williamr@4
    86
typedef enum {
williamr@4
    87
  VGU_ARC_OPEN                                 = 0xF100,
williamr@4
    88
  VGU_ARC_CHORD                                = 0xF101,
williamr@4
    89
  VGU_ARC_PIE                                  = 0xF102
williamr@4
    90
} VGUArcType;
williamr@4
    91
williamr@4
    92
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
    93
     vguLine(VGPath path,
williamr@4
    94
        VGfloat x0, VGfloat y0,
williamr@4
    95
        VGfloat x1, VGfloat y1) VGU_APIEXIT;
williamr@4
    96
williamr@4
    97
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
    98
     vguPolygon(VGPath path,
williamr@4
    99
        const VGfloat * points,
williamr@4
   100
        VGint count,
williamr@4
   101
        VGboolean closed) VGU_APIEXIT;
williamr@4
   102
williamr@4
   103
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
   104
     vguRect(VGPath path,
williamr@4
   105
        VGfloat x, VGfloat y,
williamr@4
   106
        VGfloat width, VGfloat height) VGU_APIEXIT;
williamr@4
   107
williamr@4
   108
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
   109
     vguRoundRect(VGPath path,
williamr@4
   110
        VGfloat x, VGfloat y,
williamr@4
   111
        VGfloat width,
williamr@4
   112
        VGfloat height,
williamr@4
   113
        VGfloat arcWidth,
williamr@4
   114
        VGfloat arcHeight) VGU_APIEXIT;
williamr@4
   115
williamr@4
   116
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
   117
     vguEllipse(VGPath path,
williamr@4
   118
        VGfloat cx, VGfloat cy,
williamr@4
   119
        VGfloat width,
williamr@4
   120
        VGfloat height) VGU_APIEXIT;
williamr@4
   121
williamr@4
   122
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
   123
     vguArc(VGPath path,
williamr@4
   124
        VGfloat x, VGfloat y,
williamr@4
   125
        VGfloat width, VGfloat height,
williamr@4
   126
        VGfloat startAngle,
williamr@4
   127
        VGfloat angleExtent,
williamr@4
   128
        VGUArcType arcType) VGU_APIEXIT;
williamr@4
   129
williamr@4
   130
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
   131
    vguComputeWarpQuadToSquare(VGfloat sx0, VGfloat sy0,
williamr@4
   132
        VGfloat sx1, VGfloat sy1,
williamr@4
   133
        VGfloat sx2, VGfloat sy2,
williamr@4
   134
        VGfloat sx3, VGfloat sy3,
williamr@4
   135
        VGfloat * matrix) VGU_APIEXIT;
williamr@4
   136
williamr@4
   137
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
   138
    vguComputeWarpSquareToQuad(VGfloat dx0, VGfloat dy0,
williamr@4
   139
        VGfloat dx1, VGfloat dy1,
williamr@4
   140
        VGfloat dx2, VGfloat dy2,
williamr@4
   141
        VGfloat dx3, VGfloat dy3,
williamr@4
   142
        VGfloat * matrix) VGU_APIEXIT;
williamr@4
   143
williamr@4
   144
VGU_API_CALL VGUErrorCode VGU_APIENTRY
williamr@4
   145
    vguComputeWarpQuadToQuad(VGfloat dx0, VGfloat dy0,
williamr@4
   146
        VGfloat dx1, VGfloat dy1,
williamr@4
   147
        VGfloat dx2, VGfloat dy2,
williamr@4
   148
        VGfloat dx3, VGfloat dy3,
williamr@4
   149
        VGfloat sx0, VGfloat sy0,
williamr@4
   150
        VGfloat sx1, VGfloat sy1,
williamr@4
   151
        VGfloat sx2, VGfloat sy2,
williamr@4
   152
        VGfloat sx3, VGfloat sy3,
williamr@4
   153
        VGfloat * matrix) VGU_APIEXIT;
williamr@4
   154
williamr@4
   155
#ifdef __cplusplus
williamr@4
   156
} /* extern "C" */
williamr@4
   157
#endif
williamr@4
   158
williamr@4
   159
#endif /* __VG_1_1_VGU_H */