Mercurial > sdl-ios-xcode
comparison src/video/Xext/extensions/Xvlib.h @ 292:eadc0746dfaf
Added SDL_LockRect() and SDL_UnlockRect()
Incorporated XFree86 extension libraries into the source
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 05 Mar 2002 19:55:32 +0000 |
parents | |
children | 585a7e1285ae |
comparison
equal
deleted
inserted
replaced
291:68a8a8237c09 | 292:eadc0746dfaf |
---|---|
1 /*********************************************************** | |
2 Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts, | |
3 and the Massachusetts Institute of Technology, Cambridge, Massachusetts. | |
4 | |
5 All Rights Reserved | |
6 | |
7 Permission to use, copy, modify, and distribute this software and its | |
8 documentation for any purpose and without fee is hereby granted, | |
9 provided that the above copyright notice appear in all copies and that | |
10 both that copyright notice and this permission notice appear in | |
11 supporting documentation, and that the names of Digital or MIT not be | |
12 used in advertising or publicity pertaining to distribution of the | |
13 software without specific, written prior permission. | |
14 | |
15 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING | |
16 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL | |
17 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR | |
18 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |
19 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | |
20 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | |
21 SOFTWARE. | |
22 | |
23 ******************************************************************/ | |
24 /* $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $ */ | |
25 | |
26 #ifndef XVLIB_H | |
27 #define XVLIB_H | |
28 /* | |
29 ** File: | |
30 ** | |
31 ** Xvlib.h --- Xv library public header file | |
32 ** | |
33 ** Author: | |
34 ** | |
35 ** David Carver (Digital Workstation Engineering/Project Athena) | |
36 ** | |
37 ** Revisions: | |
38 ** | |
39 ** 26.06.91 Carver | |
40 ** - changed XvFreeAdaptors to XvFreeAdaptorInfo | |
41 ** - changed XvFreeEncodings to XvFreeEncodingInfo | |
42 ** | |
43 ** 11.06.91 Carver | |
44 ** - changed SetPortControl to SetPortAttribute | |
45 ** - changed GetPortControl to GetPortAttribute | |
46 ** - changed QueryBestSize | |
47 ** | |
48 ** 05.15.91 Carver | |
49 ** - version 2.0 upgrade | |
50 ** | |
51 ** 01.24.91 Carver | |
52 ** - version 1.4 upgrade | |
53 ** | |
54 */ | |
55 | |
56 #include <X11/Xfuncproto.h> | |
57 #include <XFree86/extensions/Xv.h> | |
58 #include "SDLname.h" | |
59 | |
60 typedef struct { | |
61 int numerator; | |
62 int denominator; | |
63 } SDL_NAME(XvRational); | |
64 | |
65 typedef struct { | |
66 int flags; /* XvGettable, XvSettable */ | |
67 int min_value; | |
68 int max_value; | |
69 char *name; | |
70 } SDL_NAME(XvAttribute); | |
71 | |
72 typedef struct { | |
73 XvEncodingID encoding_id; | |
74 char *name; | |
75 unsigned long width; | |
76 unsigned long height; | |
77 SDL_NAME(XvRational) rate; | |
78 unsigned long num_encodings; | |
79 } SDL_NAME(XvEncodingInfo); | |
80 | |
81 typedef struct { | |
82 char depth; | |
83 unsigned long visual_id; | |
84 } SDL_NAME(XvFormat); | |
85 | |
86 typedef struct { | |
87 XvPortID base_id; | |
88 unsigned long num_ports; | |
89 char type; | |
90 char *name; | |
91 unsigned long num_formats; | |
92 SDL_NAME(XvFormat) *formats; | |
93 unsigned long num_adaptors; | |
94 } SDL_NAME(XvAdaptorInfo); | |
95 | |
96 typedef struct { | |
97 int type; | |
98 unsigned long serial; /* # of last request processed by server */ | |
99 Bool send_event; /* true if this came from a SendEvent request */ | |
100 Display *display; /* Display the event was read from */ | |
101 Drawable drawable; /* drawable */ | |
102 unsigned long reason; /* what generated this event */ | |
103 XvPortID port_id; /* what port */ | |
104 Time time; /* milliseconds */ | |
105 } SDL_NAME(XvVideoNotifyEvent); | |
106 | |
107 typedef struct { | |
108 int type; | |
109 unsigned long serial; /* # of last request processed by server */ | |
110 Bool send_event; /* true if this came from a SendEvent request */ | |
111 Display *display; /* Display the event was read from */ | |
112 XvPortID port_id; /* what port */ | |
113 Time time; /* milliseconds */ | |
114 Atom attribute; /* atom that identifies attribute */ | |
115 long value; /* value of attribute */ | |
116 } SDL_NAME(XvPortNotifyEvent); | |
117 | |
118 typedef union { | |
119 int type; | |
120 SDL_NAME(XvVideoNotifyEvent) xvvideo; | |
121 SDL_NAME(XvPortNotifyEvent) xvport; | |
122 long pad[24]; | |
123 } SDL_NAME(XvEvent); | |
124 | |
125 typedef struct { | |
126 int id; /* Unique descriptor for the format */ | |
127 int type; /* XvRGB, XvYUV */ | |
128 int byte_order; /* LSBFirst, MSBFirst */ | |
129 char guid[16]; /* Globally Unique IDentifier */ | |
130 int bits_per_pixel; | |
131 int format; /* XvPacked, XvPlanar */ | |
132 int num_planes; | |
133 | |
134 /* for RGB formats only */ | |
135 int depth; | |
136 unsigned int red_mask; | |
137 unsigned int green_mask; | |
138 unsigned int blue_mask; | |
139 | |
140 /* for YUV formats only */ | |
141 unsigned int y_sample_bits; | |
142 unsigned int u_sample_bits; | |
143 unsigned int v_sample_bits; | |
144 unsigned int horz_y_period; | |
145 unsigned int horz_u_period; | |
146 unsigned int horz_v_period; | |
147 unsigned int vert_y_period; | |
148 unsigned int vert_u_period; | |
149 unsigned int vert_v_period; | |
150 char component_order[32]; /* eg. UYVY */ | |
151 int scanline_order; /* XvTopToBottom, XvBottomToTop */ | |
152 } SDL_NAME(XvImageFormatValues); | |
153 | |
154 typedef struct { | |
155 int id; | |
156 int width, height; | |
157 int data_size; /* bytes */ | |
158 int num_planes; | |
159 int *pitches; /* bytes */ | |
160 int *offsets; /* bytes */ | |
161 char *data; | |
162 XPointer obdata; | |
163 } SDL_NAME(XvImage); | |
164 | |
165 _XFUNCPROTOBEGIN | |
166 | |
167 extern int SDL_NAME(XvQueryExtension)( | |
168 #if NeedFunctionPrototypes | |
169 Display* /* display */, | |
170 unsigned int* /* p_version */, | |
171 unsigned int* /* p_revision */, | |
172 unsigned int* /* p_requestBase */, | |
173 unsigned int* /* p_eventBase */, | |
174 unsigned int* /* p_errorBase */ | |
175 #endif | |
176 ); | |
177 | |
178 extern int SDL_NAME(XvQueryAdaptors)( | |
179 #if NeedFunctionPrototypes | |
180 Display* /* display */, | |
181 Window /* window */, | |
182 unsigned int* /* p_nAdaptors */, | |
183 SDL_NAME(XvAdaptorInfo)** /* p_pAdaptors */ | |
184 #endif | |
185 ); | |
186 | |
187 extern int SDL_NAME(XvQueryEncodings)( | |
188 #if NeedFunctionPrototypes | |
189 Display* /* display */, | |
190 XvPortID /* port */, | |
191 unsigned int* /* p_nEncoding */, | |
192 SDL_NAME(XvEncodingInfo)** /* p_pEncoding */ | |
193 #endif | |
194 ); | |
195 | |
196 extern int SDL_NAME(XvPutVideo)( | |
197 #if NeedFunctionPrototypes | |
198 Display* /* display */, | |
199 XvPortID /* port */, | |
200 Drawable /* d */, | |
201 GC /* gc */, | |
202 int /* vx */, | |
203 int /* vy */, | |
204 unsigned int /* vw */, | |
205 unsigned int /* vh */, | |
206 int /* dx */, | |
207 int /* dy */, | |
208 unsigned int /* dw */, | |
209 unsigned int /* dh */ | |
210 #endif | |
211 ); | |
212 | |
213 extern int SDL_NAME(XvPutStill)( | |
214 #if NeedFunctionPrototypes | |
215 Display* /* display */, | |
216 XvPortID /* port */, | |
217 Drawable /* d */, | |
218 GC /* gc */, | |
219 int /* vx */, | |
220 int /* vy */, | |
221 unsigned int /* vw */, | |
222 unsigned int /* vh */, | |
223 int /* dx */, | |
224 int /* dy */, | |
225 unsigned int /* dw */, | |
226 unsigned int /* dh */ | |
227 #endif | |
228 ); | |
229 | |
230 extern int SDL_NAME(XvGetVideo)( | |
231 #if NeedFunctionPrototypes | |
232 Display* /* display */, | |
233 XvPortID /* port */, | |
234 Drawable /* d */, | |
235 GC /* gc */, | |
236 int /* vx */, | |
237 int /* vy */, | |
238 unsigned int /* vw */, | |
239 unsigned int /* vh */, | |
240 int /* dx */, | |
241 int /* dy */, | |
242 unsigned int /* dw */, | |
243 unsigned int /* dh */ | |
244 #endif | |
245 ); | |
246 | |
247 extern int SDL_NAME(XvGetStill)( | |
248 #if NeedFunctionPrototypes | |
249 Display* /* display */, | |
250 XvPortID /* port */, | |
251 Drawable /* d */, | |
252 GC /* gc */, | |
253 int /* vx */, | |
254 int /* vy */, | |
255 unsigned int /* vw */, | |
256 unsigned int /* vh */, | |
257 int /* dx */, | |
258 int /* dy */, | |
259 unsigned int /* dw */, | |
260 unsigned int /* dh */ | |
261 #endif | |
262 ); | |
263 | |
264 extern int SDL_NAME(XvStopVideo)( | |
265 #if NeedFunctionPrototypes | |
266 Display* /* display */, | |
267 XvPortID /* port */, | |
268 Drawable /* drawable */ | |
269 #endif | |
270 ); | |
271 | |
272 extern int SDL_NAME(XvGrabPort)( | |
273 #if NeedFunctionPrototypes | |
274 Display* /* display */, | |
275 XvPortID /* port */, | |
276 Time /* time */ | |
277 #endif | |
278 ); | |
279 | |
280 extern int SDL_NAME(XvUngrabPort)( | |
281 #if NeedFunctionPrototypes | |
282 Display* /* display */, | |
283 XvPortID /* port */, | |
284 Time /* time */ | |
285 #endif | |
286 ); | |
287 | |
288 extern int SDL_NAME(XvSelectVideoNotify)( | |
289 #if NeedFunctionPrototypes | |
290 Display* /* display */, | |
291 Drawable /* drawable */, | |
292 Bool /* onoff */ | |
293 #endif | |
294 ); | |
295 | |
296 extern int SDL_NAME(XvSelectPortNotify)( | |
297 #if NeedFunctionPrototypes | |
298 Display* /* display */, | |
299 XvPortID /* port */, | |
300 Bool /* onoff */ | |
301 #endif | |
302 ); | |
303 | |
304 extern int SDL_NAME(XvSetPortAttribute)( | |
305 #if NeedFunctionPrototypes | |
306 Display* /* display */, | |
307 XvPortID /* port */, | |
308 Atom /* attribute */, | |
309 int /* value */ | |
310 #endif | |
311 ); | |
312 | |
313 extern int SDL_NAME(XvGetPortAttribute)( | |
314 #if NeedFunctionPrototypes | |
315 Display* /* display */, | |
316 XvPortID /* port */, | |
317 Atom /* attribute */, | |
318 int* /* p_value */ | |
319 #endif | |
320 ); | |
321 | |
322 extern int SDL_NAME(XvQueryBestSize)( | |
323 #if NeedFunctionPrototypes | |
324 Display* /* display */, | |
325 XvPortID /* port */, | |
326 Bool /* motion */, | |
327 unsigned int /* vid_w */, | |
328 unsigned int /* vid_h */, | |
329 unsigned int /* drw_w */, | |
330 unsigned int /* drw_h */, | |
331 unsigned int* /* p_actual_width */, | |
332 unsigned int* /* p_actual_width */ | |
333 #endif | |
334 ); | |
335 | |
336 extern SDL_NAME(XvAttribute)* SDL_NAME(XvQueryPortAttributes)( | |
337 #if NeedFunctionPrototypes | |
338 Display* /* display */, | |
339 XvPortID /* port */, | |
340 int* /* number */ | |
341 #endif | |
342 ); | |
343 | |
344 | |
345 extern void SDL_NAME(XvFreeAdaptorInfo)( | |
346 #if NeedFunctionPrototypes | |
347 SDL_NAME(XvAdaptorInfo)* /* adaptors */ | |
348 #endif | |
349 ); | |
350 | |
351 extern void SDL_NAME(XvFreeEncodingInfo)( | |
352 #if NeedFunctionPrototypes | |
353 SDL_NAME(XvEncodingInfo)* /* encodings */ | |
354 #endif | |
355 ); | |
356 | |
357 | |
358 extern SDL_NAME(XvImageFormatValues) * SDL_NAME(XvListImageFormats) ( | |
359 #if NeedFunctionPrototypes | |
360 Display *display, | |
361 XvPortID port_id, | |
362 int *count_return | |
363 #endif | |
364 ); | |
365 | |
366 extern SDL_NAME(XvImage) * SDL_NAME(XvCreateImage) ( | |
367 #if NeedFunctionPrototypes | |
368 Display *display, | |
369 XvPortID port, | |
370 int id, | |
371 char *data, | |
372 int width, | |
373 int height | |
374 #endif | |
375 ); | |
376 | |
377 extern int SDL_NAME(XvPutImage) ( | |
378 #if NeedFunctionPrototypes | |
379 Display *display, | |
380 XvPortID id, | |
381 Drawable d, | |
382 GC gc, | |
383 SDL_NAME(XvImage) *image, | |
384 int src_x, | |
385 int src_y, | |
386 unsigned int src_w, | |
387 unsigned int src_h, | |
388 int dest_x, | |
389 int dest_y, | |
390 unsigned int dest_w, | |
391 unsigned int dest_h | |
392 #endif | |
393 ); | |
394 | |
395 extern int SDL_NAME(XvShmPutImage) ( | |
396 #if NeedFunctionPrototypes | |
397 Display *display, | |
398 XvPortID id, | |
399 Drawable d, | |
400 GC gc, | |
401 SDL_NAME(XvImage) *image, | |
402 int src_x, | |
403 int src_y, | |
404 unsigned int src_w, | |
405 unsigned int src_h, | |
406 int dest_x, | |
407 int dest_y, | |
408 unsigned int dest_w, | |
409 unsigned int dest_h, | |
410 Bool send_event | |
411 #endif | |
412 ); | |
413 | |
414 #ifdef _XSHM_H_ | |
415 | |
416 extern SDL_NAME(XvImage) * SDL_NAME(XvShmCreateImage) ( | |
417 #if NeedFunctionPrototypes | |
418 Display *display, | |
419 XvPortID port, | |
420 int id, | |
421 char* data, | |
422 int width, | |
423 int height, | |
424 XShmSegmentInfo *shminfo | |
425 #endif | |
426 ); | |
427 | |
428 #endif | |
429 | |
430 | |
431 _XFUNCPROTOEND | |
432 | |
433 #endif /* XVLIB_H */ |