source: trunk/src/3rdparty/powervr/wsegl.h@ 635

Last change on this file since 635 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

  • Property svn:eol-style set to native
File size: 5.7 KB
Line 
1/******************************************************************************
2 Name : wsegl.h
3 Copyright : Copyright (c) Imagination Technologies Limited.
4 This specification is protected by copyright laws and contains
5 material proprietary to Imagination Technologies Limited.
6 You may use and distribute this specification free of charge for implementing
7 the functionality therein, without altering or removing any trademark, copyright,
8 or other notice from the specification.
9 Platform : ANSI
10*****************************************************************************/
11
12
13#if !defined(__WSEGL_H__)
14#define __WSEGL_H__
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20/*
21// WSEGL Platform-specific definitions
22*/
23#define WSEGL_EXPORT
24#define WSEGL_IMPORT
25
26/*
27// WSEGL API Version Number
28*/
29
30#define WSEGL_VERSION 1
31#define WSEGL_DEFAULT_DISPLAY 0
32#define WSEGL_DEFAULT_NATIVE_ENGINE 0
33
34#define WSEGL_FALSE 0
35#define WSEGL_TRUE 1
36#define WSEGL_NULL 0
37
38#define WSEGL_UNREFERENCED_PARAMETER(param) (param) = (param)
39
40/*
41// WSEGL handles
42*/
43typedef void *WSEGLDisplayHandle;
44typedef void *WSEGLDrawableHandle;
45
46/*
47// Display capability type
48*/
49typedef enum WSEGLCapsType_TAG
50{
51 WSEGL_NO_CAPS = 0,
52 WSEGL_CAP_MIN_SWAP_INTERVAL = 1, /* System default value = 1 */
53 WSEGL_CAP_MAX_SWAP_INTERVAL = 2, /* System default value = 1 */
54 WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value = 0 (FALSE) */
55 WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value = 0 (FALSE) */
56
57} WSEGLCapsType;
58
59/*
60// Display capability
61*/
62typedef struct WSEGLCaps_TAG
63{
64 WSEGLCapsType eCapsType;
65 unsigned long ui32CapsValue;
66
67} WSEGLCaps;
68
69/*
70// Drawable type
71*/
72#define WSEGL_NO_DRAWABLE 0x0
73#define WSEGL_DRAWABLE_WINDOW 0x1
74#define WSEGL_DRAWABLE_PIXMAP 0x2
75
76
77/*
78// Pixel format of display/drawable
79*/
80typedef enum WSEGLPixelFormat_TAG
81{
82 WSEGL_PIXELFORMAT_565 = 0,
83 WSEGL_PIXELFORMAT_4444 = 1,
84 WSEGL_PIXELFORMAT_8888 = 2,
85 WSEGL_PIXELFORMAT_1555 = 3
86
87} WSEGLPixelFormat;
88
89/*
90// Transparent of display/drawable
91*/
92typedef enum WSEGLTransparentType_TAG
93{
94 WSEGL_OPAQUE = 0,
95 WSEGL_COLOR_KEY = 1,
96
97} WSEGLTransparentType;
98
99/*
100// Display/drawable configuration
101*/
102typedef struct WSEGLConfig_TAG
103{
104 /*
105 // Type of drawables this configuration applies to -
106 // OR'd values of drawable types.
107 */
108 unsigned long ui32DrawableType;
109
110 /* Pixel format */
111 WSEGLPixelFormat ePixelFormat;
112
113 /* Native Renderable - set to WSEGL_TRUE if native renderable */
114 unsigned long ulNativeRenderable;
115
116 /* FrameBuffer Level Parameter */
117 unsigned long ulFrameBufferLevel;
118
119 /* Native Visual ID */
120 unsigned long ulNativeVisualID;
121
122 /* Native Visual */
123 void *hNativeVisual;
124
125 /* Transparent Type */
126 WSEGLTransparentType eTransparentType;
127
128 /* Transparent Color - only used if transparent type is COLOR_KEY */
129 unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
130
131
132} WSEGLConfig;
133
134/*
135// WSEGL errors
136*/
137typedef enum WSEGLError_TAG
138{
139 WSEGL_SUCCESS = 0,
140 WSEGL_CANNOT_INITIALISE = 1,
141 WSEGL_BAD_NATIVE_DISPLAY = 2,
142 WSEGL_BAD_NATIVE_WINDOW = 3,
143 WSEGL_BAD_NATIVE_PIXMAP = 4,
144 WSEGL_BAD_NATIVE_ENGINE = 5,
145 WSEGL_BAD_DRAWABLE = 6,
146 WSEGL_BAD_CONFIG = 7,
147 WSEGL_OUT_OF_MEMORY = 8
148
149} WSEGLError;
150
151/*
152// Drawable orientation (in degrees anti-clockwise)
153*/
154typedef enum WSEGLRotationAngle_TAG
155{
156 WSEGL_ROTATE_0 = 0,
157 WSEGL_ROTATE_90 = 1,
158 WSEGL_ROTATE_180 = 2,
159 WSEGL_ROTATE_270 = 3
160
161} WSEGLRotationAngle;
162
163/*
164// Drawable information required by OpenGL-ES driver
165*/
166typedef struct WSEGLDrawableParams_TAG
167{
168 /* Width in pixels of the drawable */
169 unsigned long ui32Width;
170
171 /* Height in pixels of the drawable */
172 unsigned long ui32Height;
173
174 /* Stride in pixels of the drawable */
175 unsigned long ui32Stride;
176
177 /* Pixel format of the drawable */
178 WSEGLPixelFormat ePixelFormat;
179
180 /* User space cpu virtual address of the drawable */
181 void *pvLinearAddress;
182
183 /* HW address of the drawable */
184 unsigned long ui32HWAddress;
185
186 /* Private data for the drawable */
187 void *hPrivateData;
188
189} WSEGLDrawableParams;
190
191
192/*
193// Table of function pointers that is returned by WSEGL_GetFunctionTablePointer()
194//
195// The first entry in the table is the version number of the wsegl.h header file that
196// the module has been written against, and should therefore be set to WSEGL_VERSION
197*/
198typedef struct WSEGL_FunctionTable_TAG
199{
200 unsigned long ui32WSEGLVersion;
201
202 WSEGLError (*pfnWSEGL_IsDisplayValid)(NativeDisplayType);
203
204 WSEGLError (*pfnWSEGL_InitialiseDisplay)(NativeDisplayType, WSEGLDisplayHandle *, const WSEGLCaps **, WSEGLConfig **);
205
206 WSEGLError (*pfnWSEGL_CloseDisplay)(WSEGLDisplayHandle);
207
208 WSEGLError (*pfnWSEGL_CreateWindowDrawable)(WSEGLDisplayHandle, WSEGLConfig *, WSEGLDrawableHandle *, NativeWindowType, WSEGLRotationAngle *);
209
210 WSEGLError (*pfnWSEGL_CreatePixmapDrawable)(WSEGLDisplayHandle, WSEGLConfig *, WSEGLDrawableHandle *, NativePixmapType, WSEGLRotationAngle *);
211
212 WSEGLError (*pfnWSEGL_DeleteDrawable)(WSEGLDrawableHandle);
213
214 WSEGLError (*pfnWSEGL_SwapDrawable)(WSEGLDrawableHandle, unsigned long);
215
216 WSEGLError (*pfnWSEGL_SwapControlInterval)(WSEGLDrawableHandle, unsigned long);
217
218 WSEGLError (*pfnWSEGL_WaitNative)(WSEGLDrawableHandle, unsigned long);
219
220 WSEGLError (*pfnWSEGL_CopyFromDrawable)(WSEGLDrawableHandle, NativePixmapType);
221
222 WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long, unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
223
224 WSEGLError (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle, WSEGLDrawableParams *, WSEGLDrawableParams *);
225
226
227} WSEGL_FunctionTable;
228
229
230WSEGL_IMPORT const WSEGL_FunctionTable *WSEGL_GetFunctionTablePointer(void);
231
232#ifdef __cplusplus
233}
234#endif
235
236#endif /* __WSEGL_H__ */
237
238/******************************************************************************
239 End of file (wsegl.h)
240******************************************************************************/
Note: See TracBrowser for help on using the repository browser.