1 /**********************************************************************
2 Copyright (c) Imagination Technologies Ltd.
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 ******************************************************************************/
23 #if !defined (__SERVICESEXT_H__)
24 #define __SERVICESEXT_H__
26 #define PVRSRV_LOCKFLG_READONLY (1)
28 typedef enum _PVRSRV_ERROR_
31 PVRSRV_ERROR_GENERIC = 1,
32 PVRSRV_ERROR_OUT_OF_MEMORY = 2,
33 PVRSRV_ERROR_TOO_FEW_BUFFERS = 3,
34 PVRSRV_ERROR_SYMBOL_NOT_FOUND = 4,
35 PVRSRV_ERROR_OUT_OF_HSPACE = 5,
36 PVRSRV_ERROR_INVALID_PARAMS = 6,
37 PVRSRV_ERROR_TILE_MAP_FAILED = 7,
38 PVRSRV_ERROR_INIT_FAILURE = 8,
39 PVRSRV_ERROR_CANT_REGISTER_CALLBACK = 9,
40 PVRSRV_ERROR_INVALID_DEVICE = 10,
41 PVRSRV_ERROR_NOT_OWNER = 11,
42 PVRSRV_ERROR_BAD_MAPPING = 12,
43 PVRSRV_ERROR_TIMEOUT = 13,
44 PVRSRV_ERROR_NO_PRIMARY = 14,
45 PVRSRV_ERROR_FLIP_CHAIN_EXISTS = 15,
46 PVRSRV_ERROR_CANNOT_ACQUIRE_SYSDATA = 16,
47 PVRSRV_ERROR_SCENE_INVALID = 17,
48 PVRSRV_ERROR_STREAM_ERROR = 18,
49 PVRSRV_ERROR_INVALID_INTERRUPT = 19,
50 PVRSRV_ERROR_FAILED_DEPENDENCIES = 20,
51 PVRSRV_ERROR_CMD_NOT_PROCESSED = 21,
52 PVRSRV_ERROR_CMD_TOO_BIG = 22,
53 PVRSRV_ERROR_DEVICE_REGISTER_FAILED = 23,
54 PVRSRV_ERROR_FIFO_SPACE = 24,
55 PVRSRV_ERROR_TA_RECOVERY = 25,
56 PVRSRV_ERROR_INDOSORLOWPOWER = 26,
57 PVRSRV_ERROR_TOOMANYBUFFERS = 27,
58 PVRSRV_ERROR_NOT_SUPPORTED = 28,
59 PVRSRV_ERROR_PROCESSING_BLOCKED = 29,
62 PVRSRV_ERROR_CANNOT_FLUSH_QUEUE = 31,
63 PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE = 32,
64 PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS = 33,
65 PVRSRV_ERROR_RETRY = 34,
67 PVRSRV_ERROR_DDK_VERSION_MISMATCH = 35,
68 PVRSRV_ERROR_BUILD_MISMATCH = 36,
69 PVRSRV_ERROR_PDUMP_BUF_OVERFLOW,
71 PVRSRV_ERROR_FORCE_I32 = 0x7fffffff
76 typedef enum _PVRSRV_DEVICE_CLASS_
78 PVRSRV_DEVICE_CLASS_3D = 0 ,
79 PVRSRV_DEVICE_CLASS_DISPLAY = 1 ,
80 PVRSRV_DEVICE_CLASS_BUFFER = 2 ,
81 PVRSRV_DEVICE_CLASS_VIDEO = 3 ,
83 PVRSRV_DEVICE_CLASS_FORCE_I32 = 0x7fffffff
85 } PVRSRV_DEVICE_CLASS;
89 typedef enum _PVRSRV_SYS_POWER_STATE_
91 PVRSRV_SYS_POWER_STATE_Unspecified = -1,
92 PVRSRV_SYS_POWER_STATE_D0 = 0,
93 PVRSRV_SYS_POWER_STATE_D1 = 1,
94 PVRSRV_SYS_POWER_STATE_D2 = 2,
95 PVRSRV_SYS_POWER_STATE_D3 = 3,
96 PVRSRV_SYS_POWER_STATE_D4 = 4,
98 PVRSRV_SYS_POWER_STATE_FORCE_I32 = 0x7fffffff
100 } PVRSRV_SYS_POWER_STATE, *PPVRSRV_SYS_POWER_STATE;
103 typedef enum _PVRSRV_DEV_POWER_STATE_
105 PVRSRV_DEV_POWER_STATE_DEFAULT = -1,
106 PVRSRV_DEV_POWER_STATE_ON = 0,
107 PVRSRV_DEV_POWER_STATE_IDLE = 1,
108 PVRSRV_DEV_POWER_STATE_OFF = 2,
110 PVRSRV_DEV_POWER_STATE_FORCE_I32 = 0x7fffffff
112 } PVRSRV_DEV_POWER_STATE, *PPVRSRV_DEV_POWER_STATE;
115 typedef PVRSRV_ERROR (*PFN_PRE_POWER) (IMG_HANDLE hDevHandle,
116 PVRSRV_DEV_POWER_STATE eNewPowerState,
117 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
118 typedef PVRSRV_ERROR (*PFN_POST_POWER) (IMG_HANDLE hDevHandle,
119 PVRSRV_DEV_POWER_STATE eNewPowerState,
120 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
122 typedef PVRSRV_ERROR (*PFN_PRE_CLOCKSPEED_CHANGE) (IMG_HANDLE hDevHandle,
123 IMG_BOOL bIdleDevice,
124 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
125 typedef PVRSRV_ERROR (*PFN_POST_CLOCKSPEED_CHANGE) (IMG_HANDLE hDevHandle,
126 IMG_BOOL bIdleDevice,
127 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
130 typedef enum _PVRSRV_PIXEL_FORMAT_ {
132 PVRSRV_PIXEL_FORMAT_UNKNOWN = 0,
133 PVRSRV_PIXEL_FORMAT_RGB565 = 1,
134 PVRSRV_PIXEL_FORMAT_RGB555 = 2,
135 PVRSRV_PIXEL_FORMAT_RGB888 = 3,
136 PVRSRV_PIXEL_FORMAT_BGR888 = 4,
137 PVRSRV_PIXEL_FORMAT_GREY_SCALE = 8,
138 PVRSRV_PIXEL_FORMAT_PAL12 = 13,
139 PVRSRV_PIXEL_FORMAT_PAL8 = 14,
140 PVRSRV_PIXEL_FORMAT_PAL4 = 15,
141 PVRSRV_PIXEL_FORMAT_PAL2 = 16,
142 PVRSRV_PIXEL_FORMAT_PAL1 = 17,
143 PVRSRV_PIXEL_FORMAT_ARGB1555 = 18,
144 PVRSRV_PIXEL_FORMAT_ARGB4444 = 19,
145 PVRSRV_PIXEL_FORMAT_ARGB8888 = 20,
146 PVRSRV_PIXEL_FORMAT_ABGR8888 = 21,
147 PVRSRV_PIXEL_FORMAT_YV12 = 22,
148 PVRSRV_PIXEL_FORMAT_I420 = 23,
149 PVRSRV_PIXEL_FORMAT_IMC2 = 25,
150 PVRSRV_PIXEL_FORMAT_XRGB8888 = 26,
151 PVRSRV_PIXEL_FORMAT_XBGR8888,
152 PVRSRV_PIXEL_FORMAT_BGRA8888,
153 PVRSRV_PIXEL_FORMAT_XRGB4444,
154 PVRSRV_PIXEL_FORMAT_ARGB8332,
155 PVRSRV_PIXEL_FORMAT_A2RGB10,
156 PVRSRV_PIXEL_FORMAT_A2BGR10,
157 PVRSRV_PIXEL_FORMAT_P8,
158 PVRSRV_PIXEL_FORMAT_L8,
159 PVRSRV_PIXEL_FORMAT_A8L8,
160 PVRSRV_PIXEL_FORMAT_A4L4,
161 PVRSRV_PIXEL_FORMAT_L16,
162 PVRSRV_PIXEL_FORMAT_L6V5U5,
163 PVRSRV_PIXEL_FORMAT_V8U8,
164 PVRSRV_PIXEL_FORMAT_V16U16,
165 PVRSRV_PIXEL_FORMAT_QWVU8888,
166 PVRSRV_PIXEL_FORMAT_XLVU8888,
167 PVRSRV_PIXEL_FORMAT_QWVU16,
168 PVRSRV_PIXEL_FORMAT_D16,
169 PVRSRV_PIXEL_FORMAT_D24S8,
170 PVRSRV_PIXEL_FORMAT_D24X8,
173 PVRSRV_PIXEL_FORMAT_ABGR16,
174 PVRSRV_PIXEL_FORMAT_ABGR16F,
175 PVRSRV_PIXEL_FORMAT_ABGR32,
176 PVRSRV_PIXEL_FORMAT_ABGR32F,
177 PVRSRV_PIXEL_FORMAT_B10GR11,
178 PVRSRV_PIXEL_FORMAT_GR88,
179 PVRSRV_PIXEL_FORMAT_BGR32,
180 PVRSRV_PIXEL_FORMAT_GR32,
181 PVRSRV_PIXEL_FORMAT_E5BGR9,
184 PVRSRV_PIXEL_FORMAT_DUMMY1,
185 PVRSRV_PIXEL_FORMAT_DUMMY2,
186 PVRSRV_PIXEL_FORMAT_DUMMY3,
187 PVRSRV_PIXEL_FORMAT_DUMMY4,
188 PVRSRV_PIXEL_FORMAT_DUMMY5,
191 PVRSRV_PIXEL_FORMAT_R8G8_B8G8,
192 PVRSRV_PIXEL_FORMAT_G8R8_G8B8,
195 PVRSRV_PIXEL_FORMAT_NV11,
196 PVRSRV_PIXEL_FORMAT_NV12,
199 PVRSRV_PIXEL_FORMAT_YUY2,
200 PVRSRV_PIXEL_FORMAT_YUV420,
201 PVRSRV_PIXEL_FORMAT_YUV444,
202 PVRSRV_PIXEL_FORMAT_VUY444,
203 PVRSRV_PIXEL_FORMAT_YUYV,
204 PVRSRV_PIXEL_FORMAT_YVYU,
205 PVRSRV_PIXEL_FORMAT_UYVY,
206 PVRSRV_PIXEL_FORMAT_VYUY,
208 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_UYVY,
209 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YUYV,
210 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YVYU,
211 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_VYUY,
212 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_AYUV,
215 PVRSRV_PIXEL_FORMAT_A32B32G32R32,
216 PVRSRV_PIXEL_FORMAT_A32B32G32R32F,
217 PVRSRV_PIXEL_FORMAT_A32B32G32R32_UINT,
218 PVRSRV_PIXEL_FORMAT_A32B32G32R32_SINT,
221 PVRSRV_PIXEL_FORMAT_B32G32R32,
222 PVRSRV_PIXEL_FORMAT_B32G32R32F,
223 PVRSRV_PIXEL_FORMAT_B32G32R32_UINT,
224 PVRSRV_PIXEL_FORMAT_B32G32R32_SINT,
227 PVRSRV_PIXEL_FORMAT_G32R32,
228 PVRSRV_PIXEL_FORMAT_G32R32F,
229 PVRSRV_PIXEL_FORMAT_G32R32_UINT,
230 PVRSRV_PIXEL_FORMAT_G32R32_SINT,
233 PVRSRV_PIXEL_FORMAT_D32F,
234 PVRSRV_PIXEL_FORMAT_R32,
235 PVRSRV_PIXEL_FORMAT_R32F,
236 PVRSRV_PIXEL_FORMAT_R32_UINT,
237 PVRSRV_PIXEL_FORMAT_R32_SINT,
240 PVRSRV_PIXEL_FORMAT_A16B16G16R16,
241 PVRSRV_PIXEL_FORMAT_A16B16G16R16F,
242 PVRSRV_PIXEL_FORMAT_A16B16G16R16_SINT,
243 PVRSRV_PIXEL_FORMAT_A16B16G16R16_SNORM,
244 PVRSRV_PIXEL_FORMAT_A16B16G16R16_UINT,
245 PVRSRV_PIXEL_FORMAT_A16B16G16R16_UNORM,
248 PVRSRV_PIXEL_FORMAT_G16R16,
249 PVRSRV_PIXEL_FORMAT_G16R16F,
250 PVRSRV_PIXEL_FORMAT_G16R16_UINT,
251 PVRSRV_PIXEL_FORMAT_G16R16_UNORM,
252 PVRSRV_PIXEL_FORMAT_G16R16_SINT,
253 PVRSRV_PIXEL_FORMAT_G16R16_SNORM,
256 PVRSRV_PIXEL_FORMAT_R16,
257 PVRSRV_PIXEL_FORMAT_R16F,
258 PVRSRV_PIXEL_FORMAT_R16_UINT,
259 PVRSRV_PIXEL_FORMAT_R16_UNORM,
260 PVRSRV_PIXEL_FORMAT_R16_SINT,
261 PVRSRV_PIXEL_FORMAT_R16_SNORM,
264 PVRSRV_PIXEL_FORMAT_X8R8G8B8,
265 PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM,
266 PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM_SRGB,
268 PVRSRV_PIXEL_FORMAT_A8R8G8B8,
269 PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM,
270 PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM_SRGB,
272 PVRSRV_PIXEL_FORMAT_A8B8G8R8,
273 PVRSRV_PIXEL_FORMAT_A8B8G8R8_UINT,
274 PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM,
275 PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM_SRGB,
276 PVRSRV_PIXEL_FORMAT_A8B8G8R8_SINT,
277 PVRSRV_PIXEL_FORMAT_A8B8G8R8_SNORM,
280 PVRSRV_PIXEL_FORMAT_G8R8,
281 PVRSRV_PIXEL_FORMAT_G8R8_UINT,
282 PVRSRV_PIXEL_FORMAT_G8R8_UNORM,
283 PVRSRV_PIXEL_FORMAT_G8R8_SINT,
284 PVRSRV_PIXEL_FORMAT_G8R8_SNORM,
287 PVRSRV_PIXEL_FORMAT_A8,
288 PVRSRV_PIXEL_FORMAT_R8,
289 PVRSRV_PIXEL_FORMAT_R8_UINT,
290 PVRSRV_PIXEL_FORMAT_R8_UNORM,
291 PVRSRV_PIXEL_FORMAT_R8_SINT,
292 PVRSRV_PIXEL_FORMAT_R8_SNORM,
295 PVRSRV_PIXEL_FORMAT_A2B10G10R10,
296 PVRSRV_PIXEL_FORMAT_A2B10G10R10_UNORM,
297 PVRSRV_PIXEL_FORMAT_A2B10G10R10_UINT,
300 PVRSRV_PIXEL_FORMAT_B10G11R11,
301 PVRSRV_PIXEL_FORMAT_B10G11R11F,
304 PVRSRV_PIXEL_FORMAT_X24G8R32,
305 PVRSRV_PIXEL_FORMAT_G8R24,
306 PVRSRV_PIXEL_FORMAT_X8R24,
307 PVRSRV_PIXEL_FORMAT_E5B9G9R9,
308 PVRSRV_PIXEL_FORMAT_R1,
310 PVRSRV_PIXEL_FORMAT_DUMMY6,
311 PVRSRV_PIXEL_FORMAT_DUMMY7,
312 PVRSRV_PIXEL_FORMAT_DUMMY8,
313 PVRSRV_PIXEL_FORMAT_DUMMY9,
314 PVRSRV_PIXEL_FORMAT_DUMMY10,
315 PVRSRV_PIXEL_FORMAT_DUMMY11,
316 PVRSRV_PIXEL_FORMAT_DUMMY12,
317 PVRSRV_PIXEL_FORMAT_DUMMY13,
318 PVRSRV_PIXEL_FORMAT_DUMMY14,
319 PVRSRV_PIXEL_FORMAT_DUMMY15,
320 PVRSRV_PIXEL_FORMAT_DUMMY16,
321 PVRSRV_PIXEL_FORMAT_DUMMY17,
322 PVRSRV_PIXEL_FORMAT_DUMMY18,
323 PVRSRV_PIXEL_FORMAT_DUMMY19,
324 PVRSRV_PIXEL_FORMAT_DUMMY20,
327 PVRSRV_PIXEL_FORMAT_L_F16,
328 PVRSRV_PIXEL_FORMAT_L_F16_REP,
329 PVRSRV_PIXEL_FORMAT_L_F16_A_F16,
330 PVRSRV_PIXEL_FORMAT_A_F16,
331 PVRSRV_PIXEL_FORMAT_B16G16R16F,
333 PVRSRV_PIXEL_FORMAT_L_F32,
334 PVRSRV_PIXEL_FORMAT_A_F32,
335 PVRSRV_PIXEL_FORMAT_L_F32_A_F32,
338 PVRSRV_PIXEL_FORMAT_PVRTC2,
339 PVRSRV_PIXEL_FORMAT_PVRTC4,
340 PVRSRV_PIXEL_FORMAT_PVRTCII2,
341 PVRSRV_PIXEL_FORMAT_PVRTCII4,
342 PVRSRV_PIXEL_FORMAT_PVRTCIII,
343 PVRSRV_PIXEL_FORMAT_PVRO8,
344 PVRSRV_PIXEL_FORMAT_PVRO88,
345 PVRSRV_PIXEL_FORMAT_PT1,
346 PVRSRV_PIXEL_FORMAT_PT2,
347 PVRSRV_PIXEL_FORMAT_PT4,
348 PVRSRV_PIXEL_FORMAT_PT8,
349 PVRSRV_PIXEL_FORMAT_PTW,
350 PVRSRV_PIXEL_FORMAT_PTB,
351 PVRSRV_PIXEL_FORMAT_MONO8,
352 PVRSRV_PIXEL_FORMAT_MONO16,
355 PVRSRV_PIXEL_FORMAT_C0_YUYV,
356 PVRSRV_PIXEL_FORMAT_C0_UYVY,
357 PVRSRV_PIXEL_FORMAT_C0_YVYU,
358 PVRSRV_PIXEL_FORMAT_C0_VYUY,
359 PVRSRV_PIXEL_FORMAT_C1_YUYV,
360 PVRSRV_PIXEL_FORMAT_C1_UYVY,
361 PVRSRV_PIXEL_FORMAT_C1_YVYU,
362 PVRSRV_PIXEL_FORMAT_C1_VYUY,
365 PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_UV,
366 PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_VU,
367 PVRSRV_PIXEL_FORMAT_C0_YUV420_3P,
368 PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_UV,
369 PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_VU,
370 PVRSRV_PIXEL_FORMAT_C1_YUV420_3P,
372 PVRSRV_PIXEL_FORMAT_A2B10G10R10F,
373 PVRSRV_PIXEL_FORMAT_B8G8R8_SINT,
374 PVRSRV_PIXEL_FORMAT_PVRF32SIGNMASK,
376 PVRSRV_PIXEL_FORMAT_FORCE_I32 = 0x7fffffff,
377 } PVRSRV_PIXEL_FORMAT;
379 typedef enum _PVRSRV_ALPHA_FORMAT_ {
380 PVRSRV_ALPHA_FORMAT_UNKNOWN = 0x00000000,
381 PVRSRV_ALPHA_FORMAT_PRE = 0x00000001,
382 PVRSRV_ALPHA_FORMAT_NONPRE = 0x00000002,
383 PVRSRV_ALPHA_FORMAT_MASK = 0x0000000F,
384 } PVRSRV_ALPHA_FORMAT;
386 typedef enum _PVRSRV_COLOURSPACE_FORMAT_ {
387 PVRSRV_COLOURSPACE_FORMAT_UNKNOWN = 0x00000000,
388 PVRSRV_COLOURSPACE_FORMAT_LINEAR = 0x00010000,
389 PVRSRV_COLOURSPACE_FORMAT_NONLINEAR = 0x00020000,
390 PVRSRV_COLOURSPACE_FORMAT_MASK = 0x000F0000,
391 } PVRSRV_COLOURSPACE_FORMAT;
394 typedef enum _PVRSRV_ROTATION_ {
396 PVRSRV_ROTATE_90 = 1,
397 PVRSRV_ROTATE_180 = 2,
398 PVRSRV_ROTATE_270 = 3,
403 #define PVRSRV_CREATE_SWAPCHAIN_SHARED (1<<0)
404 #define PVRSRV_CREATE_SWAPCHAIN_QUERY (1<<1)
405 #define PVRSRV_CREATE_SWAPCHAIN_OEMOVERLAY (1<<2)
407 typedef struct _PVRSRV_SYNC_DATA_
410 IMG_UINT32 ui32WriteOpsPending;
411 volatile IMG_UINT32 ui32WriteOpsComplete;
414 IMG_UINT32 ui32ReadOpsPending;
415 volatile IMG_UINT32 ui32ReadOpsComplete;
418 IMG_UINT32 ui32LastOpDumpVal;
419 IMG_UINT32 ui32LastReadOpDumpVal;
423 typedef struct _PVRSRV_CLIENT_SYNC_INFO_
426 PVRSRV_SYNC_DATA *psSyncData;
432 IMG_DEV_VIRTADDR sWriteOpsCompleteDevVAddr;
435 IMG_DEV_VIRTADDR sReadOpsCompleteDevVAddr;
438 IMG_HANDLE hMappingInfo;
441 IMG_HANDLE hKernelSyncInfo;
443 } PVRSRV_CLIENT_SYNC_INFO, *PPVRSRV_CLIENT_SYNC_INFO;
446 typedef struct PVRSRV_RESOURCE_TAG
448 volatile IMG_UINT32 ui32Lock;
451 typedef PVRSRV_RESOURCE PVRSRV_RES_HANDLE;
454 typedef IMG_VOID (*PFN_CMD_COMPLETE) (IMG_HANDLE);
455 typedef IMG_VOID (**PPFN_CMD_COMPLETE) (IMG_HANDLE);
457 typedef IMG_BOOL (*PFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
458 typedef IMG_BOOL (**PPFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
461 typedef struct _IMG_RECT_
469 typedef struct _IMG_RECT_16_
478 typedef PVRSRV_ERROR (*PFN_GET_BUFFER_ADDR)(IMG_HANDLE,
487 typedef PVRSRV_ERROR (*PFN_GET_BUFFER_ID_FROM_TAG)(IMG_HANDLE, IMG_UINT32, IMG_HANDLE);
489 typedef struct DISPLAY_DIMS_TAG
491 IMG_UINT32 ui32ByteStride;
492 IMG_UINT32 ui32Width;
493 IMG_UINT32 ui32Height;
497 typedef struct DISPLAY_FORMAT_TAG
500 PVRSRV_PIXEL_FORMAT pixelformat;
503 typedef struct DISPLAY_SURF_ATTRIBUTES_TAG
506 PVRSRV_PIXEL_FORMAT pixelformat;
509 IMG_UINT32 ui32Reseved;
510 } DISPLAY_SURF_ATTRIBUTES;
513 typedef struct DISPLAY_MODE_INFO_TAG
516 PVRSRV_PIXEL_FORMAT pixelformat;
520 IMG_UINT32 ui32RefreshHZ;
522 IMG_UINT32 ui32OEMFlags;
527 #define MAX_DISPLAY_NAME_SIZE (50)
529 typedef struct DISPLAY_INFO_TAG
532 IMG_UINT32 ui32MaxSwapChains;
534 IMG_UINT32 ui32MaxSwapChainBuffers;
536 IMG_UINT32 ui32MinSwapInterval;
538 IMG_UINT32 ui32MaxSwapInterval;
540 IMG_UINT32 ui32PhysicalWidthmm;
541 IMG_UINT32 ui32PhysicalHeightmm;
543 IMG_CHAR szDisplayName[MAX_DISPLAY_NAME_SIZE];
544 #if defined(SUPPORT_HW_CURSOR)
546 IMG_UINT16 ui32CursorWidth;
547 IMG_UINT16 ui32CursorHeight;
551 typedef struct ACCESS_INFO_TAG
554 IMG_UINT32 ui32FBPhysBaseAddress;
555 IMG_UINT32 ui32FBMemAvailable;
556 IMG_UINT32 ui32SysPhysBaseAddress;
557 IMG_UINT32 ui32SysSize;
558 IMG_UINT32 ui32DevIRQ;
562 typedef struct PVRSRV_CURSOR_SHAPE_TAG
564 IMG_UINT16 ui16Width;
565 IMG_UINT16 ui16Height;
571 IMG_INT16 i16MaskByteStride;
575 IMG_INT16 i16ColourByteStride;
576 PVRSRV_PIXEL_FORMAT eColourPixelFormat;
577 } PVRSRV_CURSOR_SHAPE;
579 #define PVRSRV_SET_CURSOR_VISIBILITY (1<<0)
580 #define PVRSRV_SET_CURSOR_POSITION (1<<1)
581 #define PVRSRV_SET_CURSOR_SHAPE (1<<2)
582 #define PVRSRV_SET_CURSOR_ROTATION (1<<3)
584 typedef struct PVRSRV_CURSOR_INFO_TAG
587 IMG_UINT32 ui32Flags;
597 PVRSRV_CURSOR_SHAPE sCursorShape;
600 IMG_UINT32 ui32Rotation;
602 } PVRSRV_CURSOR_INFO;
605 typedef struct _PVRSRV_REGISTRY_INFO_
607 IMG_UINT32 ui32DevCookie;
611 IMG_UINT32 ui32BufSize;
612 } PVRSRV_REGISTRY_INFO, *PPVRSRV_REGISTRY_INFO;
615 PVRSRV_ERROR IMG_CALLCONV PVRSRVReadRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
616 PVRSRV_ERROR IMG_CALLCONV PVRSRVWriteRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
619 #define PVRSRV_BC_FLAGS_YUVCSC_CONFORMANT_RANGE (0 << 0)
620 #define PVRSRV_BC_FLAGS_YUVCSC_FULL_RANGE (1 << 0)
622 #define PVRSRV_BC_FLAGS_YUVCSC_BT601 (0 << 1)
623 #define PVRSRV_BC_FLAGS_YUVCSC_BT709 (1 << 1)
625 #define MAX_BUFFER_DEVICE_NAME_SIZE (50)
627 typedef struct BUFFER_INFO_TAG
629 IMG_UINT32 ui32BufferCount;
630 IMG_UINT32 ui32BufferDeviceID;
631 PVRSRV_PIXEL_FORMAT pixelformat;
632 IMG_UINT32 ui32ByteStride;
633 IMG_UINT32 ui32Width;
634 IMG_UINT32 ui32Height;
635 IMG_UINT32 ui32Flags;
636 IMG_CHAR szDeviceName[MAX_BUFFER_DEVICE_NAME_SIZE];
639 typedef enum _OVERLAY_DEINTERLACE_MODE_
644 BOB_EVEN_NONINTERLEAVED
645 } OVERLAY_DEINTERLACE_MODE;