epoc32/include/WF/wfc.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
/* Copyright (c) 2009 The Khronos Group Inc.
williamr@4
     2
 *
williamr@4
     3
 * Permission is hereby granted, free of charge, to any person obtaining a
williamr@4
     4
 * copy of this software and/or associated documentation files (the
williamr@4
     5
 * "Materials"), to deal in the Materials without restriction, including
williamr@4
     6
 * without limitation the rights to use, copy, modify, merge, publish,
williamr@4
     7
 * distribute, sublicense, and/or sell copies of the Materials, and to
williamr@4
     8
 * permit persons to whom the Materials are furnished to do so, subject to
williamr@4
     9
 * the following conditions:
williamr@4
    10
 *
williamr@4
    11
 * The above copyright notice and this permission notice shall be included
williamr@4
    12
 * in all copies or substantial portions of the Materials.
williamr@4
    13
 *
williamr@4
    14
 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
williamr@4
    15
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
williamr@4
    16
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
williamr@4
    17
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
williamr@4
    18
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
williamr@4
    19
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
williamr@4
    20
 * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
williamr@4
    21
 */
williamr@4
    22
williamr@4
    23
/*! \defgroup wfc OpenWF Composition SI
williamr@4
    24
 * @{
williamr@4
    25
 */
williamr@4
    26
williamr@4
    27
/*! \file wfc.h
williamr@4
    28
 *
williamr@4
    29
 *  \brief OpenWF Composition public API, type definitions and function prototypes
williamr@4
    30
 *
williamr@4
    31
 *  This is one of the three header files defined by the specification.
williamr@4
    32
 *  This file contains the portable definitions of data types
williamr@4
    33
 *  and function prototypes.
williamr@4
    34
williamr@4
    35
 *  Refer to OpenWF Composition specification for the
williamr@4
    36
 *  additional documentation.
williamr@4
    37
 *
williamr@4
    38
 */
williamr@4
    39
williamr@4
    40
/*! @} */
williamr@4
    41
williamr@4
    42
#ifndef _WFC_H_
williamr@4
    43
#define _WFC_H_
williamr@4
    44
williamr@4
    45
#include <WF/wfcplatform.h>
williamr@4
    46
williamr@4
    47
#ifdef __cplusplus
williamr@4
    48
extern "C" {
williamr@4
    49
#endif
williamr@4
    50
williamr@4
    51
#define OPENWFC_VERSION_1_0       (1)
williamr@4
    52
williamr@4
    53
#define WFC_NONE                  (0)
williamr@4
    54
williamr@4
    55
#define WFC_INVALID_HANDLE        ((WFCHandle)0)
williamr@4
    56
williamr@4
    57
#define WFC_DEFAULT_DEVICE_ID     (0)
williamr@4
    58
williamr@4
    59
typedef enum {
williamr@4
    60
    WFC_FALSE                               = KHR_BOOLEAN_FALSE,
williamr@4
    61
    WFC_TRUE                                = KHR_BOOLEAN_TRUE,
williamr@4
    62
    WFC_BOOLEAN_FORCE_32BIT                 = 0x7FFFFFFF
williamr@4
    63
} WFCboolean;
williamr@4
    64
williamr@4
    65
typedef WFCHandle WFCDevice;
williamr@4
    66
typedef WFCHandle WFCContext;
williamr@4
    67
typedef WFCHandle WFCSource;
williamr@4
    68
typedef WFCHandle WFCMask;
williamr@4
    69
typedef WFCHandle WFCElement;
williamr@4
    70
williamr@4
    71
typedef enum {
williamr@4
    72
    WFC_ERROR_NONE                          = 0,
williamr@4
    73
    WFC_ERROR_OUT_OF_MEMORY                 = 0x7001,
williamr@4
    74
    WFC_ERROR_ILLEGAL_ARGUMENT              = 0x7002,
williamr@4
    75
    WFC_ERROR_UNSUPPORTED                   = 0x7003,
williamr@4
    76
    WFC_ERROR_BAD_ATTRIBUTE                 = 0x7004,
williamr@4
    77
    WFC_ERROR_IN_USE                        = 0x7005,
williamr@4
    78
    WFC_ERROR_BUSY                          = 0x7006,
williamr@4
    79
    WFC_ERROR_BAD_DEVICE                    = 0x7007,
williamr@4
    80
    WFC_ERROR_BAD_HANDLE                    = 0x7008,
williamr@4
    81
    WFC_ERROR_INCONSISTENCY                 = 0x7009,
williamr@4
    82
    WFC_ERROR_FORCE_32BIT                   = 0x7FFFFFFF
williamr@4
    83
} WFCErrorCode;
williamr@4
    84
williamr@4
    85
typedef enum {
williamr@4
    86
    WFC_DEVICE_FILTER_SCREEN_NUMBER         = 0x7020,
williamr@4
    87
    WFC_DEVICE_FILTER_FORCE_32BIT           = 0x7FFFFFFF
williamr@4
    88
} WFCDeviceFilter;
williamr@4
    89
williamr@4
    90
typedef enum {
williamr@4
    91
    /* Read-only */
williamr@4
    92
    WFC_DEVICE_CLASS                        = 0x7030,
williamr@4
    93
    WFC_DEVICE_ID                           = 0x7031,
williamr@4
    94
    WFC_DEVICE_FORCE_32BIT                  = 0x7FFFFFFF
williamr@4
    95
} WFCDeviceAttrib;
williamr@4
    96
williamr@4
    97
typedef enum {
williamr@4
    98
    WFC_DEVICE_CLASS_FULLY_CAPABLE          = 0x7040,
williamr@4
    99
    WFC_DEVICE_CLASS_OFF_SCREEN_ONLY        = 0x7041,
williamr@4
   100
    WFC_DEVICE_CLASS_FORCE_32BIT            = 0x7FFFFFFF
williamr@4
   101
} WFCDeviceClass;
williamr@4
   102
williamr@4
   103
typedef enum {
williamr@4
   104
    /* Read-only */
williamr@4
   105
    WFC_CONTEXT_TYPE                        = 0x7051,
williamr@4
   106
    WFC_CONTEXT_TARGET_HEIGHT               = 0x7052,
williamr@4
   107
    WFC_CONTEXT_TARGET_WIDTH                = 0x7053,
williamr@4
   108
    WFC_CONTEXT_LOWEST_ELEMENT              = 0x7054,
williamr@4
   109
williamr@4
   110
    /* Read-write */
williamr@4
   111
    WFC_CONTEXT_ROTATION                    = 0x7061,
williamr@4
   112
    WFC_CONTEXT_BG_COLOR                    = 0x7062,
williamr@4
   113
    WFC_CONTEXT_FORCE_32BIT                 = 0x7FFFFFFF
williamr@4
   114
} WFCContextAttrib;
williamr@4
   115
williamr@4
   116
typedef enum {
williamr@4
   117
    WFC_CONTEXT_TYPE_ON_SCREEN              = 0x7071,
williamr@4
   118
    WFC_CONTEXT_TYPE_OFF_SCREEN             = 0x7072,
williamr@4
   119
    WFC_CONTEXT_TYPE_FORCE_32BIT            = 0x7FFFFFFF
williamr@4
   120
} WFCContextType;
williamr@4
   121
williamr@4
   122
typedef enum {
williamr@4
   123
    /* Clockwise rotation */
williamr@4
   124
    WFC_ROTATION_0                          = 0x7081,  /* default */
williamr@4
   125
    WFC_ROTATION_90                         = 0x7082,
williamr@4
   126
    WFC_ROTATION_180                        = 0x7083,
williamr@4
   127
    WFC_ROTATION_270                        = 0x7084,
williamr@4
   128
    WFC_ROTATION_FORCE_32BIT                = 0x7FFFFFFF
williamr@4
   129
} WFCRotation;
williamr@4
   130
williamr@4
   131
typedef enum {
williamr@4
   132
    WFC_ELEMENT_DESTINATION_RECTANGLE       = 0x7101,
williamr@4
   133
    WFC_ELEMENT_SOURCE                      = 0x7102,
williamr@4
   134
    WFC_ELEMENT_SOURCE_RECTANGLE            = 0x7103,
williamr@4
   135
    WFC_ELEMENT_SOURCE_FLIP                 = 0x7104,
williamr@4
   136
    WFC_ELEMENT_SOURCE_ROTATION             = 0x7105,
williamr@4
   137
    WFC_ELEMENT_SOURCE_SCALE_FILTER         = 0x7106,
williamr@4
   138
    WFC_ELEMENT_TRANSPARENCY_TYPES          = 0x7107,
williamr@4
   139
    WFC_ELEMENT_GLOBAL_ALPHA                = 0x7108,
williamr@4
   140
    WFC_ELEMENT_MASK                        = 0x7109,
williamr@4
   141
    WFC_ELEMENT_FORCE_32BIT                 = 0x7FFFFFFF
williamr@4
   142
} WFCElementAttrib;
williamr@4
   143
williamr@4
   144
typedef enum {
williamr@4
   145
    WFC_SCALE_FILTER_NONE                   = 0x7151,  /* default */
williamr@4
   146
    WFC_SCALE_FILTER_FASTER                 = 0x7152,
williamr@4
   147
    WFC_SCALE_FILTER_BETTER                 = 0x7153,
williamr@4
   148
    WFC_SCALE_FILTER_FORCE_32BIT            = 0x7FFFFFFF
williamr@4
   149
} WFCScaleFilter;
williamr@4
   150
williamr@4
   151
typedef enum {
williamr@4
   152
    WFC_TRANSPARENCY_NONE                   = 0,       /* default */
williamr@4
   153
    WFC_TRANSPARENCY_ELEMENT_GLOBAL_ALPHA   = (1 << 0),
williamr@4
   154
    WFC_TRANSPARENCY_SOURCE                 = (1 << 1),
williamr@4
   155
    WFC_TRANSPARENCY_MASK                   = (1 << 2),
williamr@4
   156
    WFC_TRANSPARENCY_FORCE_32BIT            = 0x7FFFFFFF
williamr@4
   157
} WFCTransparencyType;
williamr@4
   158
williamr@4
   159
typedef enum {
williamr@4
   160
    WFC_VENDOR                              = 0x7200,
williamr@4
   161
    WFC_RENDERER                            = 0x7201,
williamr@4
   162
    WFC_VERSION                             = 0x7202,
williamr@4
   163
    WFC_EXTENSIONS                          = 0x7203,
williamr@4
   164
    WFC_STRINGID_FORCE_32BIT                = 0x7FFFFFFF
williamr@4
   165
} WFCStringID;
williamr@4
   166
williamr@4
   167
williamr@4
   168
/* Function Prototypes */
williamr@4
   169
williamr@4
   170
/* Device */
williamr@4
   171
WFC_API_CALL WFCint WFC_APIENTRY
williamr@4
   172
    wfcEnumerateDevices(WFCint *deviceIds, WFCint deviceIdsCount,
williamr@4
   173
        const WFCint *filterList) WFC_APIEXIT;
williamr@4
   174
WFC_API_CALL WFCDevice WFC_APIENTRY
williamr@4
   175
    wfcCreateDevice(WFCint deviceId, const WFCint *attribList) WFC_APIEXIT;
williamr@4
   176
WFC_API_CALL WFCErrorCode WFC_APIENTRY
williamr@4
   177
    wfcGetError(WFCDevice dev) WFC_APIEXIT;
williamr@4
   178
WFC_API_CALL WFCint WFC_APIENTRY
williamr@4
   179
    wfcGetDeviceAttribi(WFCDevice dev, WFCDeviceAttrib attrib) WFC_APIEXIT;
williamr@4
   180
WFC_API_CALL WFCErrorCode WFC_APIENTRY
williamr@4
   181
    wfcDestroyDevice(WFCDevice dev) WFC_APIEXIT;
williamr@4
   182
williamr@4
   183
/* Context */
williamr@4
   184
WFC_API_CALL WFCContext WFC_APIENTRY
williamr@4
   185
    wfcCreateOnScreenContext(WFCDevice dev,
williamr@4
   186
        WFCint screenNumber,
williamr@4
   187
        const WFCint *attribList) WFC_APIEXIT;
williamr@4
   188
WFC_API_CALL WFCContext WFC_APIENTRY
williamr@4
   189
    wfcCreateOffScreenContext(WFCDevice dev,
williamr@4
   190
        WFCNativeStreamType stream,
williamr@4
   191
        const WFCint *attribList) WFC_APIEXIT;
williamr@4
   192
WFC_API_CALL void WFC_APIENTRY
williamr@4
   193
    wfcCommit(WFCDevice dev, WFCContext ctx, WFCboolean wait) WFC_APIEXIT;
williamr@4
   194
WFC_API_CALL WFCint WFC_APIENTRY
williamr@4
   195
    wfcGetContextAttribi(WFCDevice dev, WFCContext ctx,
williamr@4
   196
        WFCContextAttrib attrib) WFC_APIEXIT;
williamr@4
   197
WFC_API_CALL void WFC_APIENTRY
williamr@4
   198
    wfcGetContextAttribfv(WFCDevice dev, WFCContext ctx,
williamr@4
   199
        WFCContextAttrib attrib, WFCint count, WFCfloat *values) WFC_APIEXIT;
williamr@4
   200
WFC_API_CALL void WFC_APIENTRY
williamr@4
   201
    wfcSetContextAttribi(WFCDevice dev, WFCContext ctx,
williamr@4
   202
        WFCContextAttrib attrib, WFCint value) WFC_APIEXIT;
williamr@4
   203
WFC_API_CALL void WFC_APIENTRY
williamr@4
   204
    wfcSetContextAttribfv(WFCDevice dev, WFCContext ctx,
williamr@4
   205
        WFCContextAttrib attrib,
williamr@4
   206
        WFCint count, const WFCfloat *values) WFC_APIEXIT;
williamr@4
   207
WFC_API_CALL void WFC_APIENTRY
williamr@4
   208
    wfcDestroyContext(WFCDevice dev, WFCContext ctx) WFC_APIEXIT;
williamr@4
   209
williamr@4
   210
/* Source */
williamr@4
   211
WFC_API_CALL WFCSource WFC_APIENTRY
williamr@4
   212
    wfcCreateSourceFromStream(WFCDevice dev, WFCContext ctx,
williamr@4
   213
        WFCNativeStreamType stream,
williamr@4
   214
        const WFCint *attribList) WFC_APIEXIT;
williamr@4
   215
WFC_API_CALL void WFC_APIENTRY
williamr@4
   216
    wfcDestroySource(WFCDevice dev, WFCSource src) WFC_APIEXIT;
williamr@4
   217
williamr@4
   218
/* Mask */
williamr@4
   219
WFC_API_CALL WFCMask WFC_APIENTRY
williamr@4
   220
    wfcCreateMaskFromStream(WFCDevice dev, WFCContext ctx,
williamr@4
   221
        WFCNativeStreamType stream,
williamr@4
   222
        const WFCint *attribList) WFC_APIEXIT;
williamr@4
   223
WFC_API_CALL void WFC_APIENTRY
williamr@4
   224
    wfcDestroyMask(WFCDevice dev, WFCMask mask) WFC_APIEXIT;
williamr@4
   225
williamr@4
   226
/* Element */
williamr@4
   227
WFC_API_CALL WFCElement WFC_APIENTRY
williamr@4
   228
    wfcCreateElement(WFCDevice dev, WFCContext ctx,
williamr@4
   229
        const WFCint *attribList) WFC_APIEXIT;
williamr@4
   230
WFC_API_CALL WFCint WFC_APIENTRY
williamr@4
   231
    wfcGetElementAttribi(WFCDevice dev, WFCElement element,
williamr@4
   232
        WFCElementAttrib attrib) WFC_APIEXIT;
williamr@4
   233
WFC_API_CALL WFCfloat WFC_APIENTRY
williamr@4
   234
    wfcGetElementAttribf(WFCDevice dev, WFCElement element,
williamr@4
   235
        WFCElementAttrib attrib) WFC_APIEXIT;
williamr@4
   236
WFC_API_CALL void WFC_APIENTRY
williamr@4
   237
    wfcGetElementAttribiv(WFCDevice dev, WFCElement element,
williamr@4
   238
        WFCElementAttrib attrib, WFCint count, WFCint *values) WFC_APIEXIT;
williamr@4
   239
WFC_API_CALL void WFC_APIENTRY
williamr@4
   240
    wfcGetElementAttribfv(WFCDevice dev, WFCElement element,
williamr@4
   241
        WFCElementAttrib attrib, WFCint count, WFCfloat *values) WFC_APIEXIT;
williamr@4
   242
WFC_API_CALL void WFC_APIENTRY
williamr@4
   243
    wfcSetElementAttribi(WFCDevice dev, WFCElement element,
williamr@4
   244
        WFCElementAttrib attrib, WFCint value) WFC_APIEXIT;
williamr@4
   245
WFC_API_CALL void WFC_APIENTRY
williamr@4
   246
    wfcSetElementAttribf(WFCDevice dev, WFCElement element,
williamr@4
   247
        WFCElementAttrib attrib, WFCfloat value) WFC_APIEXIT;
williamr@4
   248
WFC_API_CALL void WFC_APIENTRY
williamr@4
   249
    wfcSetElementAttribiv(WFCDevice dev, WFCElement element,
williamr@4
   250
        WFCElementAttrib attrib,
williamr@4
   251
        WFCint count, const WFCint *values) WFC_APIEXIT;
williamr@4
   252
WFC_API_CALL void WFC_APIENTRY
williamr@4
   253
    wfcSetElementAttribfv(WFCDevice dev, WFCElement element,
williamr@4
   254
        WFCElementAttrib attrib,
williamr@4
   255
        WFCint count, const WFCfloat *values) WFC_APIEXIT;
williamr@4
   256
WFC_API_CALL void WFC_APIENTRY
williamr@4
   257
    wfcInsertElement(WFCDevice dev, WFCElement element,
williamr@4
   258
        WFCElement subordinate) WFC_APIEXIT;
williamr@4
   259
WFC_API_CALL void WFC_APIENTRY
williamr@4
   260
    wfcRemoveElement(WFCDevice dev, WFCElement element) WFC_APIEXIT;
williamr@4
   261
WFC_API_CALL WFCElement WFC_APIENTRY
williamr@4
   262
    wfcGetElementAbove(WFCDevice dev, WFCElement element) WFC_APIEXIT;
williamr@4
   263
WFC_API_CALL WFCElement WFC_APIENTRY
williamr@4
   264
    wfcGetElementBelow(WFCDevice dev, WFCElement element) WFC_APIEXIT;
williamr@4
   265
WFC_API_CALL void WFC_APIENTRY
williamr@4
   266
    wfcDestroyElement(WFCDevice dev, WFCElement element) WFC_APIEXIT;
williamr@4
   267
williamr@4
   268
/* Rendering */
williamr@4
   269
WFC_API_CALL void WFC_APIENTRY
williamr@4
   270
    wfcActivate(WFCDevice dev, WFCContext ctx) WFC_APIEXIT;
williamr@4
   271
WFC_API_CALL void WFC_APIENTRY
williamr@4
   272
    wfcDeactivate(WFCDevice dev, WFCContext ctx) WFC_APIEXIT;
williamr@4
   273
WFC_API_CALL void WFC_APIENTRY
williamr@4
   274
    wfcCompose(WFCDevice dev, WFCContext ctx, WFCboolean wait) WFC_APIEXIT;
williamr@4
   275
WFC_API_CALL void WFC_APIENTRY
williamr@4
   276
    wfcFence(WFCDevice dev, WFCContext ctx, WFCEGLDisplay dpy,
williamr@4
   277
        WFCEGLSync sync) WFC_APIEXIT;
williamr@4
   278
williamr@4
   279
/* Renderer and extension information */
williamr@4
   280
WFC_API_CALL WFCint WFC_APIENTRY
williamr@4
   281
    wfcGetStrings(WFCDevice dev,
williamr@4
   282
        WFCStringID name,
williamr@4
   283
        const char **strings,
williamr@4
   284
        WFCint stringsCount) WFC_APIEXIT;
williamr@4
   285
WFC_API_CALL WFCboolean WFC_APIENTRY
williamr@4
   286
    wfcIsExtensionSupported(WFCDevice dev, const char *string) WFC_APIEXIT;
williamr@4
   287
williamr@4
   288
#ifdef __cplusplus
williamr@4
   289
}
williamr@4
   290
#endif
williamr@4
   291
williamr@4
   292
#endif /* _WFC_H_ */