Mercurial > games > semicongine
comparison semiconginev2/old/thirdparty/x11/xvlib.nim @ 1218:56781cc0fc7c compiletime-tests
did: renamge main package
author | sam <sam@basx.dev> |
---|---|
date | Wed, 17 Jul 2024 21:01:37 +0700 |
parents | semicongine/old/thirdparty/x11/xvlib.nim@239adab121a3 |
children |
comparison
equal
deleted
inserted
replaced
1217:f819a874058f | 1218:56781cc0fc7c |
---|---|
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 #** File: | |
27 #** | |
28 #** Xvlib.h --- Xv library public header file | |
29 #** | |
30 #** Author: | |
31 #** | |
32 #** David Carver (Digital Workstation Engineering/Project Athena) | |
33 #** | |
34 #** Revisions: | |
35 #** | |
36 #** 26.06.91 Carver | |
37 #** - changed XvFreeAdaptors to XvFreeAdaptorInfo | |
38 #** - changed XvFreeEncodings to XvFreeEncodingInfo | |
39 #** | |
40 #** 11.06.91 Carver | |
41 #** - changed SetPortControl to SetPortAttribute | |
42 #** - changed GetPortControl to GetPortAttribute | |
43 #** - changed QueryBestSize | |
44 #** | |
45 #** 05.15.91 Carver | |
46 #** - version 2.0 upgrade | |
47 #** | |
48 #** 01.24.91 Carver | |
49 #** - version 1.4 upgrade | |
50 #** | |
51 #* | |
52 | |
53 import | |
54 x, xlib, xshm, xv | |
55 | |
56 const | |
57 libXv* = "libXv.so" | |
58 | |
59 type | |
60 PXvRational* = ptr XvRational | |
61 XvRational*{.final.} = object | |
62 numerator*: cint | |
63 denominator*: cint | |
64 | |
65 PXvAttribute* = ptr XvAttribute | |
66 XvAttribute*{.final.} = object | |
67 flags*: cint # XvGettable, XvSettable | |
68 min_value*: cint | |
69 max_value*: cint | |
70 name*: cstring | |
71 | |
72 PPXvEncodingInfo* = ptr PXvEncodingInfo | |
73 PXvEncodingInfo* = ptr XvEncodingInfo | |
74 XvEncodingInfo*{.final.} = object | |
75 encoding_id*: XvEncodingID | |
76 name*: cstring | |
77 width*: culong | |
78 height*: culong | |
79 rate*: XvRational | |
80 num_encodings*: culong | |
81 | |
82 PXvFormat* = ptr XvFormat | |
83 XvFormat*{.final.} = object | |
84 depth*: cchar | |
85 visual_id*: culong | |
86 | |
87 PPXvAdaptorInfo* = ptr PXvAdaptorInfo | |
88 PXvAdaptorInfo* = ptr XvAdaptorInfo | |
89 XvAdaptorInfo*{.final.} = object | |
90 base_id*: XvPortID | |
91 num_ports*: culong | |
92 thetype*: cchar | |
93 name*: cstring | |
94 num_formats*: culong | |
95 formats*: PXvFormat | |
96 num_adaptors*: culong | |
97 | |
98 PXvVideoNotifyEvent* = ptr XvVideoNotifyEvent | |
99 XvVideoNotifyEvent*{.final.} = object | |
100 theType*: cint | |
101 serial*: culong # # of last request processed by server | |
102 send_event*: XBool # true if this came from a SendEvent request | |
103 display*: PDisplay # Display the event was read from | |
104 drawable*: Drawable # drawable | |
105 reason*: culong # what generated this event | |
106 port_id*: XvPortID # what port | |
107 time*: Time # milliseconds | |
108 | |
109 PXvPortNotifyEvent* = ptr XvPortNotifyEvent | |
110 XvPortNotifyEvent*{.final.} = object | |
111 theType*: cint | |
112 serial*: culong # # of last request processed by server | |
113 send_event*: XBool # true if this came from a SendEvent request | |
114 display*: PDisplay # Display the event was read from | |
115 port_id*: XvPortID # what port | |
116 time*: Time # milliseconds | |
117 attribute*: Atom # atom that identifies attribute | |
118 value*: clong # value of attribute | |
119 | |
120 PXvEvent* = ptr XvEvent | |
121 XvEvent*{.final.} = object | |
122 pad*: array[0..23, clong] # case longint of | |
123 # 0 : ( | |
124 # theType : cint; | |
125 # ); | |
126 # 1 : ( | |
127 # xvvideo : XvVideoNotifyEvent; | |
128 # ); | |
129 # 2 : ( | |
130 # xvport : XvPortNotifyEvent; | |
131 # ); | |
132 # 3 : ( | |
133 # | |
134 # ); | |
135 | |
136 PXvImageFormatValues* = ptr XvImageFormatValues | |
137 XvImageFormatValues*{.final.} = object | |
138 id*: cint # Unique descriptor for the format | |
139 theType*: cint # XvRGB, XvYUV | |
140 byte_order*: cint # LSBFirst, MSBFirst | |
141 guid*: array[0..15, cchar] # Globally Unique IDentifier | |
142 bits_per_pixel*: cint | |
143 format*: cint # XvPacked, XvPlanar | |
144 num_planes*: cint # for RGB formats only | |
145 depth*: cint | |
146 red_mask*: cuint | |
147 green_mask*: cuint | |
148 blue_mask*: cuint # for YUV formats only | |
149 y_sample_bits*: cuint | |
150 u_sample_bits*: cuint | |
151 v_sample_bits*: cuint | |
152 horz_y_period*: cuint | |
153 horz_u_period*: cuint | |
154 horz_v_period*: cuint | |
155 vert_y_period*: cuint | |
156 vert_u_period*: cuint | |
157 vert_v_period*: cuint | |
158 component_order*: array[0..31, char] # eg. UYVY | |
159 scanline_order*: cint # XvTopToBottom, XvBottomToTop | |
160 | |
161 PXvImage* = ptr XvImage | |
162 XvImage*{.final.} = object | |
163 id*: cint | |
164 width*, height*: cint | |
165 data_size*: cint # bytes | |
166 num_planes*: cint | |
167 pitches*: cint # bytes | |
168 offsets*: cint # bytes | |
169 data*: pointer | |
170 obdata*: XPointer | |
171 | |
172 proc XvQueryExtension*(display: PDisplay, p_version, p_revision, p_requestBase, | |
173 p_eventBase, p_errorBase: cuint): cint{.cdecl, dynlib: libXv, importc.} | |
174 proc XvQueryAdaptors*(display: PDisplay, window: Window, p_nAdaptors: cuint, | |
175 p_pAdaptors: PPXvAdaptorInfo): cint{.cdecl, dynlib: libXv, | |
176 importc.} | |
177 proc XvQueryEncodings*(display: PDisplay, port: XvPortID, p_nEncoding: cuint, | |
178 p_pEncoding: PPXvEncodingInfo): cint{.cdecl, | |
179 dynlib: libXv, importc.} | |
180 proc XvPutVideo*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, | |
181 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. | |
182 cdecl, dynlib: libXv, importc.} | |
183 proc XvPutStill*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, | |
184 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. | |
185 cdecl, dynlib: libXv, importc.} | |
186 proc XvGetVideo*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, | |
187 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. | |
188 cdecl, dynlib: libXv, importc.} | |
189 proc XvGetStill*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, | |
190 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. | |
191 cdecl, dynlib: libXv, importc.} | |
192 proc XvStopVideo*(display: PDisplay, port: XvPortID, drawable: Drawable): cint{. | |
193 cdecl, dynlib: libXv, importc.} | |
194 proc XvGrabPort*(display: PDisplay, port: XvPortID, time: Time): cint{.cdecl, | |
195 dynlib: libXv, importc.} | |
196 proc XvUngrabPort*(display: PDisplay, port: XvPortID, time: Time): cint{. | |
197 cdecl, dynlib: libXv, importc.} | |
198 proc XvSelectVideoNotify*(display: PDisplay, drawable: Drawable, onoff: XBool): cint{. | |
199 cdecl, dynlib: libXv, importc.} | |
200 proc XvSelectPortNotify*(display: PDisplay, port: XvPortID, onoff: XBool): cint{. | |
201 cdecl, dynlib: libXv, importc.} | |
202 proc XvSetPortAttribute*(display: PDisplay, port: XvPortID, attribute: Atom, | |
203 value: cint): cint{.cdecl, dynlib: libXv, importc.} | |
204 proc XvGetPortAttribute*(display: PDisplay, port: XvPortID, attribute: Atom, | |
205 p_value: cint): cint{.cdecl, dynlib: libXv, importc.} | |
206 proc XvQueryBestSize*(display: PDisplay, port: XvPortID, motion: XBool, | |
207 vid_w, vid_h, drw_w, drw_h: cuint, | |
208 p_actual_width, p_actual_height: cuint): cint{.cdecl, | |
209 dynlib: libXv, importc.} | |
210 proc XvQueryPortAttributes*(display: PDisplay, port: XvPortID, number: cint): PXvAttribute{. | |
211 cdecl, dynlib: libXv, importc.} | |
212 proc XvFreeAdaptorInfo*(adaptors: PXvAdaptorInfo){.cdecl, dynlib: libXv, importc.} | |
213 proc XvFreeEncodingInfo*(encodings: PXvEncodingInfo){.cdecl, dynlib: libXv, | |
214 importc.} | |
215 proc XvListImageFormats*(display: PDisplay, port_id: XvPortID, | |
216 count_return: cint): PXvImageFormatValues{.cdecl, | |
217 dynlib: libXv, importc.} | |
218 proc XvCreateImage*(display: PDisplay, port: XvPortID, id: cint, data: pointer, | |
219 width, height: cint): PXvImage{.cdecl, dynlib: libXv, | |
220 importc.} | |
221 proc XvPutImage*(display: PDisplay, id: XvPortID, d: Drawable, gc: GC, | |
222 image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, | |
223 dest_x, dest_y: cint, dest_w, dest_h: cuint): cint{.cdecl, | |
224 dynlib: libXv, importc.} | |
225 proc XvShmPutImage*(display: PDisplay, id: XvPortID, d: Drawable, gc: GC, | |
226 image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, | |
227 dest_x, dest_y: cint, dest_w, dest_h: cuint, | |
228 send_event: XBool): cint{.cdecl, dynlib: libXv, importc.} | |
229 proc XvShmCreateImage*(display: PDisplay, port: XvPortID, id: cint, | |
230 data: pointer, width, height: cint, | |
231 shminfo: PXShmSegmentInfo): PXvImage{.cdecl, | |
232 dynlib: libXv, importc.} | |
233 # implementation |