xcb_dl/headers/
xvmc.rs

1// This file was generated using generate.py. Do not edit.
2#![allow(unused_macros)]
3
4use crate::ffi::*;
5use crate::lazy::*;
6use crate::*;
7use std::os::raw::*;
8
9/// The name of the `XvMC` extension.
10pub const XCB_XVMC_NAME: &[u8] = b"XVideo-MotionCompensation";
11
12/// The name of the `XvMC` extension.
13pub const XCB_XVMC_NAME_STR: &str = "XVideo-MotionCompensation";
14
15/// The `XvMC::CONTEXT` type.
16pub type xcb_xvmc_context_t = u32;
17
18/// An iterator over `XvMC::CONTEXT` objects.
19#[derive(Copy, Clone, Debug)]
20#[repr(C)]
21pub struct xcb_xvmc_context_iterator_t {
22    /// The value of the current iteration.
23    pub data: *mut xcb_xvmc_context_t,
24    /// The number of elements remaining including this one.
25    pub rem: c_int,
26    /// The offset of `data`, in bytes, from the start of the containing object.
27    pub index: c_int,
28}
29
30impl Default for xcb_xvmc_context_iterator_t {
31    fn default() -> Self {
32        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
33    }
34}
35
36/// The `XvMC::SURFACE` type.
37pub type xcb_xvmc_surface_t = u32;
38
39/// An iterator over `XvMC::SURFACE` objects.
40#[derive(Copy, Clone, Debug)]
41#[repr(C)]
42pub struct xcb_xvmc_surface_iterator_t {
43    /// The value of the current iteration.
44    pub data: *mut xcb_xvmc_surface_t,
45    /// The number of elements remaining including this one.
46    pub rem: c_int,
47    /// The offset of `data`, in bytes, from the start of the containing object.
48    pub index: c_int,
49}
50
51impl Default for xcb_xvmc_surface_iterator_t {
52    fn default() -> Self {
53        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
54    }
55}
56
57/// The `XvMC::SUBPICTURE` type.
58pub type xcb_xvmc_subpicture_t = u32;
59
60/// An iterator over `XvMC::SUBPICTURE` objects.
61#[derive(Copy, Clone, Debug)]
62#[repr(C)]
63pub struct xcb_xvmc_subpicture_iterator_t {
64    /// The value of the current iteration.
65    pub data: *mut xcb_xvmc_subpicture_t,
66    /// The number of elements remaining including this one.
67    pub rem: c_int,
68    /// The offset of `data`, in bytes, from the start of the containing object.
69    pub index: c_int,
70}
71
72impl Default for xcb_xvmc_subpicture_iterator_t {
73    fn default() -> Self {
74        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
75    }
76}
77
78/// The `XvMC::SurfaceInfo` struct.
79#[derive(Copy, Clone, Debug)]
80#[repr(C)]
81pub struct xcb_xvmc_surface_info_t {
82    pub id: xcb_xvmc_surface_t,
83    pub chroma_format: u16,
84    pub pad0: u16,
85    pub max_width: u16,
86    pub max_height: u16,
87    pub subpicture_max_width: u16,
88    pub subpicture_max_height: u16,
89    pub mc_type: u32,
90    pub flags: u32,
91}
92
93impl Default for xcb_xvmc_surface_info_t {
94    fn default() -> Self {
95        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
96    }
97}
98
99/// An iterator over `XvMC::SurfaceInfo` objects.
100#[derive(Copy, Clone, Debug)]
101#[repr(C)]
102pub struct xcb_xvmc_surface_info_iterator_t {
103    /// The value of the current iteration.
104    pub data: *mut xcb_xvmc_surface_info_t,
105    /// The number of elements remaining including this one.
106    pub rem: c_int,
107    /// The offset of `data`, in bytes, from the start of the containing object.
108    pub index: c_int,
109}
110
111impl Default for xcb_xvmc_surface_info_iterator_t {
112    fn default() -> Self {
113        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
114    }
115}
116
117/// The cookie for the reply to a `XvMC::QueryVersion` request.
118///
119/// Pass this cookie to [`xcb_xvmc_query_version_reply`] to retrieve the reply.
120///
121/// [`xcb_xvmc_query_version_reply`]: XcbXvmc::xcb_xvmc_query_version_reply
122#[derive(Copy, Clone, Debug)]
123#[repr(C)]
124pub struct xcb_xvmc_query_version_cookie_t {
125    /// The sequence number of the request.
126    pub sequence: c_uint,
127}
128
129impl Default for xcb_xvmc_query_version_cookie_t {
130    fn default() -> Self {
131        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
132    }
133}
134
135/// The opcode for `XvMC::QueryVersion` requests.
136///
137/// If this value appears in [`xcb_protocol_request_t::opcode`], and
138/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
139/// [`xcb_xvmc_query_version_request_t`].
140pub const XCB_XVMC_QUERY_VERSION: u8 = 0i32 as u8;
141
142/// The `XvMC::QueryVersion` request.
143#[derive(Copy, Clone, Debug)]
144#[repr(C)]
145pub struct xcb_xvmc_query_version_request_t {
146    pub major_opcode: u8,
147    pub minor_opcode: u8,
148    pub length: u16,
149}
150
151impl Default for xcb_xvmc_query_version_request_t {
152    fn default() -> Self {
153        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
154    }
155}
156
157/// The `XvMC::QueryVersion` reply.
158#[derive(Copy, Clone, Debug)]
159#[repr(C)]
160pub struct xcb_xvmc_query_version_reply_t {
161    pub response_type: u8,
162    pub pad0: u8,
163    pub sequence: u16,
164    pub length: u32,
165    pub major: u32,
166    pub minor: u32,
167}
168
169impl Default for xcb_xvmc_query_version_reply_t {
170    fn default() -> Self {
171        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
172    }
173}
174
175/// The cookie for the reply to a `XvMC::ListSurfaceTypes` request.
176///
177/// Pass this cookie to [`xcb_xvmc_list_surface_types_reply`] to retrieve the reply.
178///
179/// [`xcb_xvmc_list_surface_types_reply`]: XcbXvmc::xcb_xvmc_list_surface_types_reply
180#[derive(Copy, Clone, Debug)]
181#[repr(C)]
182pub struct xcb_xvmc_list_surface_types_cookie_t {
183    /// The sequence number of the request.
184    pub sequence: c_uint,
185}
186
187impl Default for xcb_xvmc_list_surface_types_cookie_t {
188    fn default() -> Self {
189        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
190    }
191}
192
193/// The opcode for `XvMC::ListSurfaceTypes` requests.
194///
195/// If this value appears in [`xcb_protocol_request_t::opcode`], and
196/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
197/// [`xcb_xvmc_list_surface_types_request_t`].
198pub const XCB_XVMC_LIST_SURFACE_TYPES: u8 = 1i32 as u8;
199
200/// The `XvMC::ListSurfaceTypes` request.
201#[derive(Copy, Clone, Debug)]
202#[repr(C)]
203pub struct xcb_xvmc_list_surface_types_request_t {
204    pub major_opcode: u8,
205    pub minor_opcode: u8,
206    pub length: u16,
207    pub port_id: xcb_xv_port_t,
208}
209
210impl Default for xcb_xvmc_list_surface_types_request_t {
211    fn default() -> Self {
212        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
213    }
214}
215
216/// The `XvMC::ListSurfaceTypes` reply.
217///
218/// The following fields can be accessed via accessor functions:
219///
220/// - `surfaces`
221#[derive(Copy, Clone, Debug)]
222#[repr(C)]
223pub struct xcb_xvmc_list_surface_types_reply_t {
224    pub response_type: u8,
225    pub pad0: u8,
226    pub sequence: u16,
227    pub length: u32,
228    pub num: u32,
229    pub pad1: [u8; 20],
230}
231
232impl Default for xcb_xvmc_list_surface_types_reply_t {
233    fn default() -> Self {
234        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
235    }
236}
237
238/// The cookie for the reply to a `XvMC::CreateContext` request.
239///
240/// Pass this cookie to [`xcb_xvmc_create_context_reply`] to retrieve the reply.
241///
242/// [`xcb_xvmc_create_context_reply`]: XcbXvmc::xcb_xvmc_create_context_reply
243#[derive(Copy, Clone, Debug)]
244#[repr(C)]
245pub struct xcb_xvmc_create_context_cookie_t {
246    /// The sequence number of the request.
247    pub sequence: c_uint,
248}
249
250impl Default for xcb_xvmc_create_context_cookie_t {
251    fn default() -> Self {
252        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
253    }
254}
255
256/// The opcode for `XvMC::CreateContext` requests.
257///
258/// If this value appears in [`xcb_protocol_request_t::opcode`], and
259/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
260/// [`xcb_xvmc_create_context_request_t`].
261pub const XCB_XVMC_CREATE_CONTEXT: u8 = 2i32 as u8;
262
263/// The `XvMC::CreateContext` request.
264#[derive(Copy, Clone, Debug)]
265#[repr(C)]
266pub struct xcb_xvmc_create_context_request_t {
267    pub major_opcode: u8,
268    pub minor_opcode: u8,
269    pub length: u16,
270    pub context_id: xcb_xvmc_context_t,
271    pub port_id: xcb_xv_port_t,
272    pub surface_id: xcb_xvmc_surface_t,
273    pub width: u16,
274    pub height: u16,
275    pub flags: u32,
276}
277
278impl Default for xcb_xvmc_create_context_request_t {
279    fn default() -> Self {
280        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
281    }
282}
283
284/// The `XvMC::CreateContext` reply.
285///
286/// The following fields can be accessed via accessor functions:
287///
288/// - `priv_data`
289#[derive(Copy, Clone, Debug)]
290#[repr(C)]
291pub struct xcb_xvmc_create_context_reply_t {
292    pub response_type: u8,
293    pub pad0: u8,
294    pub sequence: u16,
295    pub length: u32,
296    pub width_actual: u16,
297    pub height_actual: u16,
298    pub flags_return: u32,
299    pub pad1: [u8; 20],
300}
301
302impl Default for xcb_xvmc_create_context_reply_t {
303    fn default() -> Self {
304        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
305    }
306}
307
308/// The opcode for `XvMC::DestroyContext` requests.
309///
310/// If this value appears in [`xcb_protocol_request_t::opcode`], and
311/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
312/// [`xcb_xvmc_destroy_context_request_t`].
313pub const XCB_XVMC_DESTROY_CONTEXT: u8 = 3i32 as u8;
314
315/// The `XvMC::DestroyContext` request.
316#[derive(Copy, Clone, Debug)]
317#[repr(C)]
318pub struct xcb_xvmc_destroy_context_request_t {
319    pub major_opcode: u8,
320    pub minor_opcode: u8,
321    pub length: u16,
322    pub context_id: xcb_xvmc_context_t,
323}
324
325impl Default for xcb_xvmc_destroy_context_request_t {
326    fn default() -> Self {
327        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
328    }
329}
330
331/// The cookie for the reply to a `XvMC::CreateSurface` request.
332///
333/// Pass this cookie to [`xcb_xvmc_create_surface_reply`] to retrieve the reply.
334///
335/// [`xcb_xvmc_create_surface_reply`]: XcbXvmc::xcb_xvmc_create_surface_reply
336#[derive(Copy, Clone, Debug)]
337#[repr(C)]
338pub struct xcb_xvmc_create_surface_cookie_t {
339    /// The sequence number of the request.
340    pub sequence: c_uint,
341}
342
343impl Default for xcb_xvmc_create_surface_cookie_t {
344    fn default() -> Self {
345        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
346    }
347}
348
349/// The opcode for `XvMC::CreateSurface` requests.
350///
351/// If this value appears in [`xcb_protocol_request_t::opcode`], and
352/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
353/// [`xcb_xvmc_create_surface_request_t`].
354pub const XCB_XVMC_CREATE_SURFACE: u8 = 4i32 as u8;
355
356/// The `XvMC::CreateSurface` request.
357#[derive(Copy, Clone, Debug)]
358#[repr(C)]
359pub struct xcb_xvmc_create_surface_request_t {
360    pub major_opcode: u8,
361    pub minor_opcode: u8,
362    pub length: u16,
363    pub surface_id: xcb_xvmc_surface_t,
364    pub context_id: xcb_xvmc_context_t,
365}
366
367impl Default for xcb_xvmc_create_surface_request_t {
368    fn default() -> Self {
369        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
370    }
371}
372
373/// The `XvMC::CreateSurface` reply.
374///
375/// The following fields can be accessed via accessor functions:
376///
377/// - `priv_data`
378#[derive(Copy, Clone, Debug)]
379#[repr(C)]
380pub struct xcb_xvmc_create_surface_reply_t {
381    pub response_type: u8,
382    pub pad0: u8,
383    pub sequence: u16,
384    pub length: u32,
385    pub pad1: [u8; 24],
386}
387
388impl Default for xcb_xvmc_create_surface_reply_t {
389    fn default() -> Self {
390        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
391    }
392}
393
394/// The opcode for `XvMC::DestroySurface` requests.
395///
396/// If this value appears in [`xcb_protocol_request_t::opcode`], and
397/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
398/// [`xcb_xvmc_destroy_surface_request_t`].
399pub const XCB_XVMC_DESTROY_SURFACE: u8 = 5i32 as u8;
400
401/// The `XvMC::DestroySurface` request.
402#[derive(Copy, Clone, Debug)]
403#[repr(C)]
404pub struct xcb_xvmc_destroy_surface_request_t {
405    pub major_opcode: u8,
406    pub minor_opcode: u8,
407    pub length: u16,
408    pub surface_id: xcb_xvmc_surface_t,
409}
410
411impl Default for xcb_xvmc_destroy_surface_request_t {
412    fn default() -> Self {
413        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
414    }
415}
416
417/// The cookie for the reply to a `XvMC::CreateSubpicture` request.
418///
419/// Pass this cookie to [`xcb_xvmc_create_subpicture_reply`] to retrieve the reply.
420///
421/// [`xcb_xvmc_create_subpicture_reply`]: XcbXvmc::xcb_xvmc_create_subpicture_reply
422#[derive(Copy, Clone, Debug)]
423#[repr(C)]
424pub struct xcb_xvmc_create_subpicture_cookie_t {
425    /// The sequence number of the request.
426    pub sequence: c_uint,
427}
428
429impl Default for xcb_xvmc_create_subpicture_cookie_t {
430    fn default() -> Self {
431        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
432    }
433}
434
435/// The opcode for `XvMC::CreateSubpicture` requests.
436///
437/// If this value appears in [`xcb_protocol_request_t::opcode`], and
438/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
439/// [`xcb_xvmc_create_subpicture_request_t`].
440pub const XCB_XVMC_CREATE_SUBPICTURE: u8 = 6i32 as u8;
441
442/// The `XvMC::CreateSubpicture` request.
443#[derive(Copy, Clone, Debug)]
444#[repr(C)]
445pub struct xcb_xvmc_create_subpicture_request_t {
446    pub major_opcode: u8,
447    pub minor_opcode: u8,
448    pub length: u16,
449    pub subpicture_id: xcb_xvmc_subpicture_t,
450    pub context: xcb_xvmc_context_t,
451    pub xvimage_id: u32,
452    pub width: u16,
453    pub height: u16,
454}
455
456impl Default for xcb_xvmc_create_subpicture_request_t {
457    fn default() -> Self {
458        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
459    }
460}
461
462/// The `XvMC::CreateSubpicture` reply.
463///
464/// The following fields can be accessed via accessor functions:
465///
466/// - `priv_data`
467#[derive(Copy, Clone, Debug)]
468#[repr(C)]
469pub struct xcb_xvmc_create_subpicture_reply_t {
470    pub response_type: u8,
471    pub pad0: u8,
472    pub sequence: u16,
473    pub length: u32,
474    pub width_actual: u16,
475    pub height_actual: u16,
476    pub num_palette_entries: u16,
477    pub entry_bytes: u16,
478    pub component_order: [u8; 4],
479    pub pad1: [u8; 12],
480}
481
482impl Default for xcb_xvmc_create_subpicture_reply_t {
483    fn default() -> Self {
484        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
485    }
486}
487
488/// The opcode for `XvMC::DestroySubpicture` requests.
489///
490/// If this value appears in [`xcb_protocol_request_t::opcode`], and
491/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
492/// [`xcb_xvmc_destroy_subpicture_request_t`].
493pub const XCB_XVMC_DESTROY_SUBPICTURE: u8 = 7i32 as u8;
494
495/// The `XvMC::DestroySubpicture` request.
496#[derive(Copy, Clone, Debug)]
497#[repr(C)]
498pub struct xcb_xvmc_destroy_subpicture_request_t {
499    pub major_opcode: u8,
500    pub minor_opcode: u8,
501    pub length: u16,
502    pub subpicture_id: xcb_xvmc_subpicture_t,
503}
504
505impl Default for xcb_xvmc_destroy_subpicture_request_t {
506    fn default() -> Self {
507        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
508    }
509}
510
511/// The cookie for the reply to a `XvMC::ListSubpictureTypes` request.
512///
513/// Pass this cookie to [`xcb_xvmc_list_subpicture_types_reply`] to retrieve the reply.
514///
515/// [`xcb_xvmc_list_subpicture_types_reply`]: XcbXvmc::xcb_xvmc_list_subpicture_types_reply
516#[derive(Copy, Clone, Debug)]
517#[repr(C)]
518pub struct xcb_xvmc_list_subpicture_types_cookie_t {
519    /// The sequence number of the request.
520    pub sequence: c_uint,
521}
522
523impl Default for xcb_xvmc_list_subpicture_types_cookie_t {
524    fn default() -> Self {
525        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
526    }
527}
528
529/// The opcode for `XvMC::ListSubpictureTypes` requests.
530///
531/// If this value appears in [`xcb_protocol_request_t::opcode`], and
532/// [`xcb_protocol_request_t::ext`] is [`XcbXvmc::xcb_xvmc_id()`], then the type of the request is
533/// [`xcb_xvmc_list_subpicture_types_request_t`].
534pub const XCB_XVMC_LIST_SUBPICTURE_TYPES: u8 = 8i32 as u8;
535
536/// The `XvMC::ListSubpictureTypes` request.
537#[derive(Copy, Clone, Debug)]
538#[repr(C)]
539pub struct xcb_xvmc_list_subpicture_types_request_t {
540    pub major_opcode: u8,
541    pub minor_opcode: u8,
542    pub length: u16,
543    pub port_id: xcb_xv_port_t,
544    pub surface_id: xcb_xvmc_surface_t,
545}
546
547impl Default for xcb_xvmc_list_subpicture_types_request_t {
548    fn default() -> Self {
549        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
550    }
551}
552
553/// The `XvMC::ListSubpictureTypes` reply.
554///
555/// The following fields can be accessed via accessor functions:
556///
557/// - `types`
558#[derive(Copy, Clone, Debug)]
559#[repr(C)]
560pub struct xcb_xvmc_list_subpicture_types_reply_t {
561    pub response_type: u8,
562    pub pad0: u8,
563    pub sequence: u16,
564    pub length: u32,
565    pub num: u32,
566    pub pad1: [u8; 20],
567}
568
569impl Default for xcb_xvmc_list_subpicture_types_reply_t {
570    fn default() -> Self {
571        unsafe { std::mem::MaybeUninit::zeroed().assume_init() }
572    }
573}
574
575#[cfg(feature = "xcb_xvmc")]
576pub(crate) struct XcbXvmcXvmc {
577    xcb_xvmc_id: LazySymbol<*mut xcb_extension_t>,
578    xcb_xvmc_context_next: LazySymbol<unsafe fn(i: *mut xcb_xvmc_context_iterator_t)>,
579    xcb_xvmc_context_end:
580        LazySymbol<unsafe fn(i: xcb_xvmc_context_iterator_t) -> xcb_generic_iterator_t>,
581    xcb_xvmc_surface_next: LazySymbol<unsafe fn(i: *mut xcb_xvmc_surface_iterator_t)>,
582    xcb_xvmc_surface_end:
583        LazySymbol<unsafe fn(i: xcb_xvmc_surface_iterator_t) -> xcb_generic_iterator_t>,
584    xcb_xvmc_subpicture_next: LazySymbol<unsafe fn(i: *mut xcb_xvmc_subpicture_iterator_t)>,
585    xcb_xvmc_subpicture_end:
586        LazySymbol<unsafe fn(i: xcb_xvmc_subpicture_iterator_t) -> xcb_generic_iterator_t>,
587    xcb_xvmc_surface_info_next: LazySymbol<unsafe fn(i: *mut xcb_xvmc_surface_info_iterator_t)>,
588    xcb_xvmc_surface_info_end:
589        LazySymbol<unsafe fn(i: xcb_xvmc_surface_info_iterator_t) -> xcb_generic_iterator_t>,
590    xcb_xvmc_query_version:
591        LazySymbol<unsafe fn(c: *mut xcb_connection_t) -> xcb_xvmc_query_version_cookie_t>,
592    xcb_xvmc_query_version_unchecked:
593        LazySymbol<unsafe fn(c: *mut xcb_connection_t) -> xcb_xvmc_query_version_cookie_t>,
594    xcb_xvmc_query_version_reply: LazySymbol<
595        unsafe fn(
596            c: *mut xcb_connection_t,
597            cookie: xcb_xvmc_query_version_cookie_t,
598            e: *mut *mut xcb_generic_error_t,
599        ) -> *mut xcb_xvmc_query_version_reply_t,
600    >,
601    xcb_xvmc_list_surface_types_sizeof: LazySymbol<unsafe fn(_buffer: *const c_void) -> c_int>,
602    xcb_xvmc_list_surface_types: LazySymbol<
603        unsafe fn(
604            c: *mut xcb_connection_t,
605            port_id: xcb_xv_port_t,
606        ) -> xcb_xvmc_list_surface_types_cookie_t,
607    >,
608    xcb_xvmc_list_surface_types_unchecked: LazySymbol<
609        unsafe fn(
610            c: *mut xcb_connection_t,
611            port_id: xcb_xv_port_t,
612        ) -> xcb_xvmc_list_surface_types_cookie_t,
613    >,
614    xcb_xvmc_list_surface_types_surfaces: LazySymbol<
615        unsafe fn(r: *const xcb_xvmc_list_surface_types_reply_t) -> *mut xcb_xvmc_surface_info_t,
616    >,
617    xcb_xvmc_list_surface_types_surfaces_length:
618        LazySymbol<unsafe fn(r: *const xcb_xvmc_list_surface_types_reply_t) -> c_int>,
619    xcb_xvmc_list_surface_types_surfaces_iterator: LazySymbol<
620        unsafe fn(
621            r: *const xcb_xvmc_list_surface_types_reply_t,
622        ) -> xcb_xvmc_surface_info_iterator_t,
623    >,
624    xcb_xvmc_list_surface_types_reply: LazySymbol<
625        unsafe fn(
626            c: *mut xcb_connection_t,
627            cookie: xcb_xvmc_list_surface_types_cookie_t,
628            e: *mut *mut xcb_generic_error_t,
629        ) -> *mut xcb_xvmc_list_surface_types_reply_t,
630    >,
631    xcb_xvmc_create_context_sizeof: LazySymbol<unsafe fn(_buffer: *const c_void) -> c_int>,
632    xcb_xvmc_create_context: LazySymbol<
633        unsafe fn(
634            c: *mut xcb_connection_t,
635            context_id: xcb_xvmc_context_t,
636            port_id: xcb_xv_port_t,
637            surface_id: xcb_xvmc_surface_t,
638            width: u16,
639            height: u16,
640            flags: u32,
641        ) -> xcb_xvmc_create_context_cookie_t,
642    >,
643    xcb_xvmc_create_context_unchecked: LazySymbol<
644        unsafe fn(
645            c: *mut xcb_connection_t,
646            context_id: xcb_xvmc_context_t,
647            port_id: xcb_xv_port_t,
648            surface_id: xcb_xvmc_surface_t,
649            width: u16,
650            height: u16,
651            flags: u32,
652        ) -> xcb_xvmc_create_context_cookie_t,
653    >,
654    xcb_xvmc_create_context_priv_data:
655        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_context_reply_t) -> *mut u32>,
656    xcb_xvmc_create_context_priv_data_length:
657        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_context_reply_t) -> c_int>,
658    xcb_xvmc_create_context_priv_data_end:
659        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_context_reply_t) -> xcb_generic_iterator_t>,
660    xcb_xvmc_create_context_reply: LazySymbol<
661        unsafe fn(
662            c: *mut xcb_connection_t,
663            cookie: xcb_xvmc_create_context_cookie_t,
664            e: *mut *mut xcb_generic_error_t,
665        ) -> *mut xcb_xvmc_create_context_reply_t,
666    >,
667    xcb_xvmc_destroy_context_checked: LazySymbol<
668        unsafe fn(c: *mut xcb_connection_t, context_id: xcb_xvmc_context_t) -> xcb_void_cookie_t,
669    >,
670    xcb_xvmc_destroy_context: LazySymbol<
671        unsafe fn(c: *mut xcb_connection_t, context_id: xcb_xvmc_context_t) -> xcb_void_cookie_t,
672    >,
673    xcb_xvmc_create_surface_sizeof: LazySymbol<unsafe fn(_buffer: *const c_void) -> c_int>,
674    xcb_xvmc_create_surface: LazySymbol<
675        unsafe fn(
676            c: *mut xcb_connection_t,
677            surface_id: xcb_xvmc_surface_t,
678            context_id: xcb_xvmc_context_t,
679        ) -> xcb_xvmc_create_surface_cookie_t,
680    >,
681    xcb_xvmc_create_surface_unchecked: LazySymbol<
682        unsafe fn(
683            c: *mut xcb_connection_t,
684            surface_id: xcb_xvmc_surface_t,
685            context_id: xcb_xvmc_context_t,
686        ) -> xcb_xvmc_create_surface_cookie_t,
687    >,
688    xcb_xvmc_create_surface_priv_data:
689        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_surface_reply_t) -> *mut u32>,
690    xcb_xvmc_create_surface_priv_data_length:
691        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_surface_reply_t) -> c_int>,
692    xcb_xvmc_create_surface_priv_data_end:
693        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_surface_reply_t) -> xcb_generic_iterator_t>,
694    xcb_xvmc_create_surface_reply: LazySymbol<
695        unsafe fn(
696            c: *mut xcb_connection_t,
697            cookie: xcb_xvmc_create_surface_cookie_t,
698            e: *mut *mut xcb_generic_error_t,
699        ) -> *mut xcb_xvmc_create_surface_reply_t,
700    >,
701    xcb_xvmc_destroy_surface_checked: LazySymbol<
702        unsafe fn(c: *mut xcb_connection_t, surface_id: xcb_xvmc_surface_t) -> xcb_void_cookie_t,
703    >,
704    xcb_xvmc_destroy_surface: LazySymbol<
705        unsafe fn(c: *mut xcb_connection_t, surface_id: xcb_xvmc_surface_t) -> xcb_void_cookie_t,
706    >,
707    xcb_xvmc_create_subpicture_sizeof: LazySymbol<unsafe fn(_buffer: *const c_void) -> c_int>,
708    xcb_xvmc_create_subpicture: LazySymbol<
709        unsafe fn(
710            c: *mut xcb_connection_t,
711            subpicture_id: xcb_xvmc_subpicture_t,
712            context: xcb_xvmc_context_t,
713            xvimage_id: u32,
714            width: u16,
715            height: u16,
716        ) -> xcb_xvmc_create_subpicture_cookie_t,
717    >,
718    xcb_xvmc_create_subpicture_unchecked: LazySymbol<
719        unsafe fn(
720            c: *mut xcb_connection_t,
721            subpicture_id: xcb_xvmc_subpicture_t,
722            context: xcb_xvmc_context_t,
723            xvimage_id: u32,
724            width: u16,
725            height: u16,
726        ) -> xcb_xvmc_create_subpicture_cookie_t,
727    >,
728    xcb_xvmc_create_subpicture_priv_data:
729        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_subpicture_reply_t) -> *mut u32>,
730    xcb_xvmc_create_subpicture_priv_data_length:
731        LazySymbol<unsafe fn(r: *const xcb_xvmc_create_subpicture_reply_t) -> c_int>,
732    xcb_xvmc_create_subpicture_priv_data_end: LazySymbol<
733        unsafe fn(r: *const xcb_xvmc_create_subpicture_reply_t) -> xcb_generic_iterator_t,
734    >,
735    xcb_xvmc_create_subpicture_reply: LazySymbol<
736        unsafe fn(
737            c: *mut xcb_connection_t,
738            cookie: xcb_xvmc_create_subpicture_cookie_t,
739            e: *mut *mut xcb_generic_error_t,
740        ) -> *mut xcb_xvmc_create_subpicture_reply_t,
741    >,
742    xcb_xvmc_destroy_subpicture_checked: LazySymbol<
743        unsafe fn(
744            c: *mut xcb_connection_t,
745            subpicture_id: xcb_xvmc_subpicture_t,
746        ) -> xcb_void_cookie_t,
747    >,
748    xcb_xvmc_destroy_subpicture: LazySymbol<
749        unsafe fn(
750            c: *mut xcb_connection_t,
751            subpicture_id: xcb_xvmc_subpicture_t,
752        ) -> xcb_void_cookie_t,
753    >,
754    xcb_xvmc_list_subpicture_types_sizeof: LazySymbol<unsafe fn(_buffer: *const c_void) -> c_int>,
755    xcb_xvmc_list_subpicture_types: LazySymbol<
756        unsafe fn(
757            c: *mut xcb_connection_t,
758            port_id: xcb_xv_port_t,
759            surface_id: xcb_xvmc_surface_t,
760        ) -> xcb_xvmc_list_subpicture_types_cookie_t,
761    >,
762    xcb_xvmc_list_subpicture_types_unchecked: LazySymbol<
763        unsafe fn(
764            c: *mut xcb_connection_t,
765            port_id: xcb_xv_port_t,
766            surface_id: xcb_xvmc_surface_t,
767        ) -> xcb_xvmc_list_subpicture_types_cookie_t,
768    >,
769    xcb_xvmc_list_subpicture_types_types: LazySymbol<
770        unsafe fn(
771            r: *const xcb_xvmc_list_subpicture_types_reply_t,
772        ) -> *mut xcb_xv_image_format_info_t,
773    >,
774    xcb_xvmc_list_subpicture_types_types_length:
775        LazySymbol<unsafe fn(r: *const xcb_xvmc_list_subpicture_types_reply_t) -> c_int>,
776    xcb_xvmc_list_subpicture_types_types_iterator: LazySymbol<
777        unsafe fn(
778            r: *const xcb_xvmc_list_subpicture_types_reply_t,
779        ) -> xcb_xv_image_format_info_iterator_t,
780    >,
781    xcb_xvmc_list_subpicture_types_reply: LazySymbol<
782        unsafe fn(
783            c: *mut xcb_connection_t,
784            cookie: xcb_xvmc_list_subpicture_types_cookie_t,
785            e: *mut *mut xcb_generic_error_t,
786        ) -> *mut xcb_xvmc_list_subpicture_types_reply_t,
787    >,
788}
789
790macro_rules! sym {
791    ($self:expr, $f:ident) => {
792        $self.xvmc.$f.get(&$self.lib, concat!(stringify!($f), "\0"))
793    };
794}
795
796macro_rules! has_sym {
797    ($self:expr, $f:ident) => {
798        unsafe {
799            $self
800                .xvmc
801                .$f
802                .exists(&$self.lib, concat!(stringify!($f), "\0"))
803        }
804    };
805}
806
807#[cfg(feature = "xcb_xvmc")]
808impl XcbXvmc {
809    /// The libxcb identifier of the `XvMC` extension.
810    #[inline]
811    pub fn xcb_xvmc_id(&self) -> *mut xcb_extension_t {
812        unsafe { sym!(self, xcb_xvmc_id) }
813    }
814
815    /// Returns `true` iff the symbol `xcb_xvmc_id` could be loaded.
816    #[cfg(feature = "has_symbol")]
817    pub fn has_xcb_xvmc_id(&self) -> bool {
818        has_sym!(self, xcb_xvmc_id)
819    }
820
821    /// Advances a `xcb_xvmc_context_iterator_t` iterator by 1 element.
822    #[inline]
823    pub unsafe fn xcb_xvmc_context_next(&self, i: *mut xcb_xvmc_context_iterator_t) {
824        sym!(self, xcb_xvmc_context_next)(i)
825    }
826
827    /// Returns `true` iff the symbol `xcb_xvmc_context_next` could be loaded.
828    #[cfg(feature = "has_symbol")]
829    pub fn has_xcb_xvmc_context_next(&self) -> bool {
830        has_sym!(self, xcb_xvmc_context_next)
831    }
832
833    /// Returns a `xcb_generic_iterator_t` pointing just past the end of a `xcb_xvmc_context_iterator_t`.
834    #[inline]
835    pub unsafe fn xcb_xvmc_context_end(
836        &self,
837        i: xcb_xvmc_context_iterator_t,
838    ) -> xcb_generic_iterator_t {
839        sym!(self, xcb_xvmc_context_end)(i)
840    }
841
842    /// Returns `true` iff the symbol `xcb_xvmc_context_end` could be loaded.
843    #[cfg(feature = "has_symbol")]
844    pub fn has_xcb_xvmc_context_end(&self) -> bool {
845        has_sym!(self, xcb_xvmc_context_end)
846    }
847
848    /// Advances a `xcb_xvmc_surface_iterator_t` iterator by 1 element.
849    #[inline]
850    pub unsafe fn xcb_xvmc_surface_next(&self, i: *mut xcb_xvmc_surface_iterator_t) {
851        sym!(self, xcb_xvmc_surface_next)(i)
852    }
853
854    /// Returns `true` iff the symbol `xcb_xvmc_surface_next` could be loaded.
855    #[cfg(feature = "has_symbol")]
856    pub fn has_xcb_xvmc_surface_next(&self) -> bool {
857        has_sym!(self, xcb_xvmc_surface_next)
858    }
859
860    /// Returns a `xcb_generic_iterator_t` pointing just past the end of a `xcb_xvmc_surface_iterator_t`.
861    #[inline]
862    pub unsafe fn xcb_xvmc_surface_end(
863        &self,
864        i: xcb_xvmc_surface_iterator_t,
865    ) -> xcb_generic_iterator_t {
866        sym!(self, xcb_xvmc_surface_end)(i)
867    }
868
869    /// Returns `true` iff the symbol `xcb_xvmc_surface_end` could be loaded.
870    #[cfg(feature = "has_symbol")]
871    pub fn has_xcb_xvmc_surface_end(&self) -> bool {
872        has_sym!(self, xcb_xvmc_surface_end)
873    }
874
875    /// Advances a `xcb_xvmc_subpicture_iterator_t` iterator by 1 element.
876    #[inline]
877    pub unsafe fn xcb_xvmc_subpicture_next(&self, i: *mut xcb_xvmc_subpicture_iterator_t) {
878        sym!(self, xcb_xvmc_subpicture_next)(i)
879    }
880
881    /// Returns `true` iff the symbol `xcb_xvmc_subpicture_next` could be loaded.
882    #[cfg(feature = "has_symbol")]
883    pub fn has_xcb_xvmc_subpicture_next(&self) -> bool {
884        has_sym!(self, xcb_xvmc_subpicture_next)
885    }
886
887    /// Returns a `xcb_generic_iterator_t` pointing just past the end of a `xcb_xvmc_subpicture_iterator_t`.
888    #[inline]
889    pub unsafe fn xcb_xvmc_subpicture_end(
890        &self,
891        i: xcb_xvmc_subpicture_iterator_t,
892    ) -> xcb_generic_iterator_t {
893        sym!(self, xcb_xvmc_subpicture_end)(i)
894    }
895
896    /// Returns `true` iff the symbol `xcb_xvmc_subpicture_end` could be loaded.
897    #[cfg(feature = "has_symbol")]
898    pub fn has_xcb_xvmc_subpicture_end(&self) -> bool {
899        has_sym!(self, xcb_xvmc_subpicture_end)
900    }
901
902    /// Advances a `xcb_xvmc_surface_info_iterator_t` iterator by 1 element.
903    #[inline]
904    pub unsafe fn xcb_xvmc_surface_info_next(&self, i: *mut xcb_xvmc_surface_info_iterator_t) {
905        sym!(self, xcb_xvmc_surface_info_next)(i)
906    }
907
908    /// Returns `true` iff the symbol `xcb_xvmc_surface_info_next` could be loaded.
909    #[cfg(feature = "has_symbol")]
910    pub fn has_xcb_xvmc_surface_info_next(&self) -> bool {
911        has_sym!(self, xcb_xvmc_surface_info_next)
912    }
913
914    /// Returns a `xcb_generic_iterator_t` pointing just past the end of a `xcb_xvmc_surface_info_iterator_t`.
915    #[inline]
916    pub unsafe fn xcb_xvmc_surface_info_end(
917        &self,
918        i: xcb_xvmc_surface_info_iterator_t,
919    ) -> xcb_generic_iterator_t {
920        sym!(self, xcb_xvmc_surface_info_end)(i)
921    }
922
923    /// Returns `true` iff the symbol `xcb_xvmc_surface_info_end` could be loaded.
924    #[cfg(feature = "has_symbol")]
925    pub fn has_xcb_xvmc_surface_info_end(&self) -> bool {
926        has_sym!(self, xcb_xvmc_surface_info_end)
927    }
928
929    /// Sends a `XvMC::QueryVersion` request (checked).
930    ///
931    /// This request generates a reply. You must either discard it with
932    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_query_version_reply`].
933    ///
934    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
935    /// [`xcb_xvmc_query_version_reply`]: Self::xcb_xvmc_query_version_reply
936    #[inline]
937    pub unsafe fn xcb_xvmc_query_version(
938        &self,
939        c: *mut xcb_connection_t,
940    ) -> xcb_xvmc_query_version_cookie_t {
941        sym!(self, xcb_xvmc_query_version)(c)
942    }
943
944    /// Returns `true` iff the symbol `xcb_xvmc_query_version` could be loaded.
945    #[cfg(feature = "has_symbol")]
946    pub fn has_xcb_xvmc_query_version(&self) -> bool {
947        has_sym!(self, xcb_xvmc_query_version)
948    }
949
950    /// Sends a `XvMC::QueryVersion` request (unchecked).
951    ///
952    /// This request generates a reply. You must either discard it with
953    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_query_version_reply`].
954    ///
955    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
956    /// [`xcb_xvmc_query_version_reply`]: Self::xcb_xvmc_query_version_reply
957    #[inline]
958    pub unsafe fn xcb_xvmc_query_version_unchecked(
959        &self,
960        c: *mut xcb_connection_t,
961    ) -> xcb_xvmc_query_version_cookie_t {
962        sym!(self, xcb_xvmc_query_version_unchecked)(c)
963    }
964
965    /// Returns `true` iff the symbol `xcb_xvmc_query_version_unchecked` could be loaded.
966    #[cfg(feature = "has_symbol")]
967    pub fn has_xcb_xvmc_query_version_unchecked(&self) -> bool {
968        has_sym!(self, xcb_xvmc_query_version_unchecked)
969    }
970
971    /// Waits for the reply to a `XvMC::QueryVersion` request.
972    #[inline]
973    pub unsafe fn xcb_xvmc_query_version_reply(
974        &self,
975        c: *mut xcb_connection_t,
976        cookie: xcb_xvmc_query_version_cookie_t,
977        e: *mut *mut xcb_generic_error_t,
978    ) -> *mut xcb_xvmc_query_version_reply_t {
979        sym!(self, xcb_xvmc_query_version_reply)(c, cookie, e)
980    }
981
982    /// Returns `true` iff the symbol `xcb_xvmc_query_version_reply` could be loaded.
983    #[cfg(feature = "has_symbol")]
984    pub fn has_xcb_xvmc_query_version_reply(&self) -> bool {
985        has_sym!(self, xcb_xvmc_query_version_reply)
986    }
987
988    /// Computes the size of a `xcb_xvmc_list_surface_types_reply_t` object.
989    #[inline]
990    pub unsafe fn xcb_xvmc_list_surface_types_sizeof(&self, _buffer: *const c_void) -> c_int {
991        sym!(self, xcb_xvmc_list_surface_types_sizeof)(_buffer)
992    }
993
994    /// Returns `true` iff the symbol `xcb_xvmc_list_surface_types_sizeof` could be loaded.
995    #[cfg(feature = "has_symbol")]
996    pub fn has_xcb_xvmc_list_surface_types_sizeof(&self) -> bool {
997        has_sym!(self, xcb_xvmc_list_surface_types_sizeof)
998    }
999
1000    /// Sends a `XvMC::ListSurfaceTypes` request (checked).
1001    ///
1002    /// This request generates a reply. You must either discard it with
1003    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_list_surface_types_reply`].
1004    ///
1005    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1006    /// [`xcb_xvmc_list_surface_types_reply`]: Self::xcb_xvmc_list_surface_types_reply
1007    #[inline]
1008    pub unsafe fn xcb_xvmc_list_surface_types(
1009        &self,
1010        c: *mut xcb_connection_t,
1011        port_id: xcb_xv_port_t,
1012    ) -> xcb_xvmc_list_surface_types_cookie_t {
1013        sym!(self, xcb_xvmc_list_surface_types)(c, port_id)
1014    }
1015
1016    /// Returns `true` iff the symbol `xcb_xvmc_list_surface_types` could be loaded.
1017    #[cfg(feature = "has_symbol")]
1018    pub fn has_xcb_xvmc_list_surface_types(&self) -> bool {
1019        has_sym!(self, xcb_xvmc_list_surface_types)
1020    }
1021
1022    /// Sends a `XvMC::ListSurfaceTypes` request (unchecked).
1023    ///
1024    /// This request generates a reply. You must either discard it with
1025    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_list_surface_types_reply`].
1026    ///
1027    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1028    /// [`xcb_xvmc_list_surface_types_reply`]: Self::xcb_xvmc_list_surface_types_reply
1029    #[inline]
1030    pub unsafe fn xcb_xvmc_list_surface_types_unchecked(
1031        &self,
1032        c: *mut xcb_connection_t,
1033        port_id: xcb_xv_port_t,
1034    ) -> xcb_xvmc_list_surface_types_cookie_t {
1035        sym!(self, xcb_xvmc_list_surface_types_unchecked)(c, port_id)
1036    }
1037
1038    /// Returns `true` iff the symbol `xcb_xvmc_list_surface_types_unchecked` could be loaded.
1039    #[cfg(feature = "has_symbol")]
1040    pub fn has_xcb_xvmc_list_surface_types_unchecked(&self) -> bool {
1041        has_sym!(self, xcb_xvmc_list_surface_types_unchecked)
1042    }
1043
1044    /// Returns a pointer to the `surfaces` field of a `xcb_xvmc_list_surface_types_reply_t` struct.
1045    #[inline]
1046    pub unsafe fn xcb_xvmc_list_surface_types_surfaces(
1047        &self,
1048        r: *const xcb_xvmc_list_surface_types_reply_t,
1049    ) -> *mut xcb_xvmc_surface_info_t {
1050        sym!(self, xcb_xvmc_list_surface_types_surfaces)(r)
1051    }
1052
1053    /// Returns `true` iff the symbol `xcb_xvmc_list_surface_types_surfaces` could be loaded.
1054    #[cfg(feature = "has_symbol")]
1055    pub fn has_xcb_xvmc_list_surface_types_surfaces(&self) -> bool {
1056        has_sym!(self, xcb_xvmc_list_surface_types_surfaces)
1057    }
1058
1059    /// Returns the number of elements of the `surfaces` field of a `xcb_xvmc_list_surface_types_reply_t` struct.
1060    #[inline]
1061    pub unsafe fn xcb_xvmc_list_surface_types_surfaces_length(
1062        &self,
1063        r: *const xcb_xvmc_list_surface_types_reply_t,
1064    ) -> c_int {
1065        sym!(self, xcb_xvmc_list_surface_types_surfaces_length)(r)
1066    }
1067
1068    /// Returns `true` iff the symbol `xcb_xvmc_list_surface_types_surfaces_length` could be loaded.
1069    #[cfg(feature = "has_symbol")]
1070    pub fn has_xcb_xvmc_list_surface_types_surfaces_length(&self) -> bool {
1071        has_sym!(self, xcb_xvmc_list_surface_types_surfaces_length)
1072    }
1073
1074    /// Returns an iterator over the elements of the
1075    /// `surfaces` field of a `xcb_xvmc_list_surface_types_reply_t` struct.
1076    #[inline]
1077    pub unsafe fn xcb_xvmc_list_surface_types_surfaces_iterator(
1078        &self,
1079        r: *const xcb_xvmc_list_surface_types_reply_t,
1080    ) -> xcb_xvmc_surface_info_iterator_t {
1081        sym!(self, xcb_xvmc_list_surface_types_surfaces_iterator)(r)
1082    }
1083
1084    /// Returns `true` iff the symbol `xcb_xvmc_list_surface_types_surfaces_iterator` could be loaded.
1085    #[cfg(feature = "has_symbol")]
1086    pub fn has_xcb_xvmc_list_surface_types_surfaces_iterator(&self) -> bool {
1087        has_sym!(self, xcb_xvmc_list_surface_types_surfaces_iterator)
1088    }
1089
1090    /// Waits for the reply to a `XvMC::ListSurfaceTypes` request.
1091    #[inline]
1092    pub unsafe fn xcb_xvmc_list_surface_types_reply(
1093        &self,
1094        c: *mut xcb_connection_t,
1095        cookie: xcb_xvmc_list_surface_types_cookie_t,
1096        e: *mut *mut xcb_generic_error_t,
1097    ) -> *mut xcb_xvmc_list_surface_types_reply_t {
1098        sym!(self, xcb_xvmc_list_surface_types_reply)(c, cookie, e)
1099    }
1100
1101    /// Returns `true` iff the symbol `xcb_xvmc_list_surface_types_reply` could be loaded.
1102    #[cfg(feature = "has_symbol")]
1103    pub fn has_xcb_xvmc_list_surface_types_reply(&self) -> bool {
1104        has_sym!(self, xcb_xvmc_list_surface_types_reply)
1105    }
1106
1107    /// Computes the size of a `xcb_xvmc_create_context_reply_t` object.
1108    #[inline]
1109    pub unsafe fn xcb_xvmc_create_context_sizeof(&self, _buffer: *const c_void) -> c_int {
1110        sym!(self, xcb_xvmc_create_context_sizeof)(_buffer)
1111    }
1112
1113    /// Returns `true` iff the symbol `xcb_xvmc_create_context_sizeof` could be loaded.
1114    #[cfg(feature = "has_symbol")]
1115    pub fn has_xcb_xvmc_create_context_sizeof(&self) -> bool {
1116        has_sym!(self, xcb_xvmc_create_context_sizeof)
1117    }
1118
1119    /// Sends a `XvMC::CreateContext` request (checked).
1120    ///
1121    /// This request generates a reply. You must either discard it with
1122    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_create_context_reply`].
1123    ///
1124    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1125    /// [`xcb_xvmc_create_context_reply`]: Self::xcb_xvmc_create_context_reply
1126    #[inline]
1127    pub unsafe fn xcb_xvmc_create_context(
1128        &self,
1129        c: *mut xcb_connection_t,
1130        context_id: xcb_xvmc_context_t,
1131        port_id: xcb_xv_port_t,
1132        surface_id: xcb_xvmc_surface_t,
1133        width: u16,
1134        height: u16,
1135        flags: u32,
1136    ) -> xcb_xvmc_create_context_cookie_t {
1137        sym!(self, xcb_xvmc_create_context)(
1138            c, context_id, port_id, surface_id, width, height, flags,
1139        )
1140    }
1141
1142    /// Returns `true` iff the symbol `xcb_xvmc_create_context` could be loaded.
1143    #[cfg(feature = "has_symbol")]
1144    pub fn has_xcb_xvmc_create_context(&self) -> bool {
1145        has_sym!(self, xcb_xvmc_create_context)
1146    }
1147
1148    /// Sends a `XvMC::CreateContext` request (unchecked).
1149    ///
1150    /// This request generates a reply. You must either discard it with
1151    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_create_context_reply`].
1152    ///
1153    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1154    /// [`xcb_xvmc_create_context_reply`]: Self::xcb_xvmc_create_context_reply
1155    #[inline]
1156    pub unsafe fn xcb_xvmc_create_context_unchecked(
1157        &self,
1158        c: *mut xcb_connection_t,
1159        context_id: xcb_xvmc_context_t,
1160        port_id: xcb_xv_port_t,
1161        surface_id: xcb_xvmc_surface_t,
1162        width: u16,
1163        height: u16,
1164        flags: u32,
1165    ) -> xcb_xvmc_create_context_cookie_t {
1166        sym!(self, xcb_xvmc_create_context_unchecked)(
1167            c, context_id, port_id, surface_id, width, height, flags,
1168        )
1169    }
1170
1171    /// Returns `true` iff the symbol `xcb_xvmc_create_context_unchecked` could be loaded.
1172    #[cfg(feature = "has_symbol")]
1173    pub fn has_xcb_xvmc_create_context_unchecked(&self) -> bool {
1174        has_sym!(self, xcb_xvmc_create_context_unchecked)
1175    }
1176
1177    /// Returns a pointer to the `priv_data` field of a `xcb_xvmc_create_context_reply_t` struct.
1178    #[inline]
1179    pub unsafe fn xcb_xvmc_create_context_priv_data(
1180        &self,
1181        r: *const xcb_xvmc_create_context_reply_t,
1182    ) -> *mut u32 {
1183        sym!(self, xcb_xvmc_create_context_priv_data)(r)
1184    }
1185
1186    /// Returns `true` iff the symbol `xcb_xvmc_create_context_priv_data` could be loaded.
1187    #[cfg(feature = "has_symbol")]
1188    pub fn has_xcb_xvmc_create_context_priv_data(&self) -> bool {
1189        has_sym!(self, xcb_xvmc_create_context_priv_data)
1190    }
1191
1192    /// Returns the number of elements of the `priv_data` field of a `xcb_xvmc_create_context_reply_t` struct.
1193    #[inline]
1194    pub unsafe fn xcb_xvmc_create_context_priv_data_length(
1195        &self,
1196        r: *const xcb_xvmc_create_context_reply_t,
1197    ) -> c_int {
1198        sym!(self, xcb_xvmc_create_context_priv_data_length)(r)
1199    }
1200
1201    /// Returns `true` iff the symbol `xcb_xvmc_create_context_priv_data_length` could be loaded.
1202    #[cfg(feature = "has_symbol")]
1203    pub fn has_xcb_xvmc_create_context_priv_data_length(&self) -> bool {
1204        has_sym!(self, xcb_xvmc_create_context_priv_data_length)
1205    }
1206
1207    /// Returns a `xcb_generic_iterator_t` pointing just past the end of the
1208    /// `priv_data` field of a `xcb_xvmc_create_context_reply_t` struct.
1209    #[inline]
1210    pub unsafe fn xcb_xvmc_create_context_priv_data_end(
1211        &self,
1212        r: *const xcb_xvmc_create_context_reply_t,
1213    ) -> xcb_generic_iterator_t {
1214        sym!(self, xcb_xvmc_create_context_priv_data_end)(r)
1215    }
1216
1217    /// Returns `true` iff the symbol `xcb_xvmc_create_context_priv_data_end` could be loaded.
1218    #[cfg(feature = "has_symbol")]
1219    pub fn has_xcb_xvmc_create_context_priv_data_end(&self) -> bool {
1220        has_sym!(self, xcb_xvmc_create_context_priv_data_end)
1221    }
1222
1223    /// Waits for the reply to a `XvMC::CreateContext` request.
1224    #[inline]
1225    pub unsafe fn xcb_xvmc_create_context_reply(
1226        &self,
1227        c: *mut xcb_connection_t,
1228        cookie: xcb_xvmc_create_context_cookie_t,
1229        e: *mut *mut xcb_generic_error_t,
1230    ) -> *mut xcb_xvmc_create_context_reply_t {
1231        sym!(self, xcb_xvmc_create_context_reply)(c, cookie, e)
1232    }
1233
1234    /// Returns `true` iff the symbol `xcb_xvmc_create_context_reply` could be loaded.
1235    #[cfg(feature = "has_symbol")]
1236    pub fn has_xcb_xvmc_create_context_reply(&self) -> bool {
1237        has_sym!(self, xcb_xvmc_create_context_reply)
1238    }
1239
1240    /// Sends a `XvMC::DestroyContext` request (checked).
1241    ///
1242    /// This request generates a reply. You must either discard it with
1243    /// [`discard_reply`] or retrieve it with [`xcb_request_check`].
1244    ///
1245    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1246    /// [`xcb_request_check`]: crate::Xcb::xcb_request_check
1247    #[inline]
1248    pub unsafe fn xcb_xvmc_destroy_context_checked(
1249        &self,
1250        c: *mut xcb_connection_t,
1251        context_id: xcb_xvmc_context_t,
1252    ) -> xcb_void_cookie_t {
1253        sym!(self, xcb_xvmc_destroy_context_checked)(c, context_id)
1254    }
1255
1256    /// Returns `true` iff the symbol `xcb_xvmc_destroy_context_checked` could be loaded.
1257    #[cfg(feature = "has_symbol")]
1258    pub fn has_xcb_xvmc_destroy_context_checked(&self) -> bool {
1259        has_sym!(self, xcb_xvmc_destroy_context_checked)
1260    }
1261
1262    /// Sends a `XvMC::DestroyContext` request (unchecked).
1263    #[inline]
1264    pub unsafe fn xcb_xvmc_destroy_context(
1265        &self,
1266        c: *mut xcb_connection_t,
1267        context_id: xcb_xvmc_context_t,
1268    ) -> xcb_void_cookie_t {
1269        sym!(self, xcb_xvmc_destroy_context)(c, context_id)
1270    }
1271
1272    /// Returns `true` iff the symbol `xcb_xvmc_destroy_context` could be loaded.
1273    #[cfg(feature = "has_symbol")]
1274    pub fn has_xcb_xvmc_destroy_context(&self) -> bool {
1275        has_sym!(self, xcb_xvmc_destroy_context)
1276    }
1277
1278    /// Computes the size of a `xcb_xvmc_create_surface_reply_t` object.
1279    #[inline]
1280    pub unsafe fn xcb_xvmc_create_surface_sizeof(&self, _buffer: *const c_void) -> c_int {
1281        sym!(self, xcb_xvmc_create_surface_sizeof)(_buffer)
1282    }
1283
1284    /// Returns `true` iff the symbol `xcb_xvmc_create_surface_sizeof` could be loaded.
1285    #[cfg(feature = "has_symbol")]
1286    pub fn has_xcb_xvmc_create_surface_sizeof(&self) -> bool {
1287        has_sym!(self, xcb_xvmc_create_surface_sizeof)
1288    }
1289
1290    /// Sends a `XvMC::CreateSurface` request (checked).
1291    ///
1292    /// This request generates a reply. You must either discard it with
1293    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_create_surface_reply`].
1294    ///
1295    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1296    /// [`xcb_xvmc_create_surface_reply`]: Self::xcb_xvmc_create_surface_reply
1297    #[inline]
1298    pub unsafe fn xcb_xvmc_create_surface(
1299        &self,
1300        c: *mut xcb_connection_t,
1301        surface_id: xcb_xvmc_surface_t,
1302        context_id: xcb_xvmc_context_t,
1303    ) -> xcb_xvmc_create_surface_cookie_t {
1304        sym!(self, xcb_xvmc_create_surface)(c, surface_id, context_id)
1305    }
1306
1307    /// Returns `true` iff the symbol `xcb_xvmc_create_surface` could be loaded.
1308    #[cfg(feature = "has_symbol")]
1309    pub fn has_xcb_xvmc_create_surface(&self) -> bool {
1310        has_sym!(self, xcb_xvmc_create_surface)
1311    }
1312
1313    /// Sends a `XvMC::CreateSurface` request (unchecked).
1314    ///
1315    /// This request generates a reply. You must either discard it with
1316    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_create_surface_reply`].
1317    ///
1318    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1319    /// [`xcb_xvmc_create_surface_reply`]: Self::xcb_xvmc_create_surface_reply
1320    #[inline]
1321    pub unsafe fn xcb_xvmc_create_surface_unchecked(
1322        &self,
1323        c: *mut xcb_connection_t,
1324        surface_id: xcb_xvmc_surface_t,
1325        context_id: xcb_xvmc_context_t,
1326    ) -> xcb_xvmc_create_surface_cookie_t {
1327        sym!(self, xcb_xvmc_create_surface_unchecked)(c, surface_id, context_id)
1328    }
1329
1330    /// Returns `true` iff the symbol `xcb_xvmc_create_surface_unchecked` could be loaded.
1331    #[cfg(feature = "has_symbol")]
1332    pub fn has_xcb_xvmc_create_surface_unchecked(&self) -> bool {
1333        has_sym!(self, xcb_xvmc_create_surface_unchecked)
1334    }
1335
1336    /// Returns a pointer to the `priv_data` field of a `xcb_xvmc_create_surface_reply_t` struct.
1337    #[inline]
1338    pub unsafe fn xcb_xvmc_create_surface_priv_data(
1339        &self,
1340        r: *const xcb_xvmc_create_surface_reply_t,
1341    ) -> *mut u32 {
1342        sym!(self, xcb_xvmc_create_surface_priv_data)(r)
1343    }
1344
1345    /// Returns `true` iff the symbol `xcb_xvmc_create_surface_priv_data` could be loaded.
1346    #[cfg(feature = "has_symbol")]
1347    pub fn has_xcb_xvmc_create_surface_priv_data(&self) -> bool {
1348        has_sym!(self, xcb_xvmc_create_surface_priv_data)
1349    }
1350
1351    /// Returns the number of elements of the `priv_data` field of a `xcb_xvmc_create_surface_reply_t` struct.
1352    #[inline]
1353    pub unsafe fn xcb_xvmc_create_surface_priv_data_length(
1354        &self,
1355        r: *const xcb_xvmc_create_surface_reply_t,
1356    ) -> c_int {
1357        sym!(self, xcb_xvmc_create_surface_priv_data_length)(r)
1358    }
1359
1360    /// Returns `true` iff the symbol `xcb_xvmc_create_surface_priv_data_length` could be loaded.
1361    #[cfg(feature = "has_symbol")]
1362    pub fn has_xcb_xvmc_create_surface_priv_data_length(&self) -> bool {
1363        has_sym!(self, xcb_xvmc_create_surface_priv_data_length)
1364    }
1365
1366    /// Returns a `xcb_generic_iterator_t` pointing just past the end of the
1367    /// `priv_data` field of a `xcb_xvmc_create_surface_reply_t` struct.
1368    #[inline]
1369    pub unsafe fn xcb_xvmc_create_surface_priv_data_end(
1370        &self,
1371        r: *const xcb_xvmc_create_surface_reply_t,
1372    ) -> xcb_generic_iterator_t {
1373        sym!(self, xcb_xvmc_create_surface_priv_data_end)(r)
1374    }
1375
1376    /// Returns `true` iff the symbol `xcb_xvmc_create_surface_priv_data_end` could be loaded.
1377    #[cfg(feature = "has_symbol")]
1378    pub fn has_xcb_xvmc_create_surface_priv_data_end(&self) -> bool {
1379        has_sym!(self, xcb_xvmc_create_surface_priv_data_end)
1380    }
1381
1382    /// Waits for the reply to a `XvMC::CreateSurface` request.
1383    #[inline]
1384    pub unsafe fn xcb_xvmc_create_surface_reply(
1385        &self,
1386        c: *mut xcb_connection_t,
1387        cookie: xcb_xvmc_create_surface_cookie_t,
1388        e: *mut *mut xcb_generic_error_t,
1389    ) -> *mut xcb_xvmc_create_surface_reply_t {
1390        sym!(self, xcb_xvmc_create_surface_reply)(c, cookie, e)
1391    }
1392
1393    /// Returns `true` iff the symbol `xcb_xvmc_create_surface_reply` could be loaded.
1394    #[cfg(feature = "has_symbol")]
1395    pub fn has_xcb_xvmc_create_surface_reply(&self) -> bool {
1396        has_sym!(self, xcb_xvmc_create_surface_reply)
1397    }
1398
1399    /// Sends a `XvMC::DestroySurface` request (checked).
1400    ///
1401    /// This request generates a reply. You must either discard it with
1402    /// [`discard_reply`] or retrieve it with [`xcb_request_check`].
1403    ///
1404    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1405    /// [`xcb_request_check`]: crate::Xcb::xcb_request_check
1406    #[inline]
1407    pub unsafe fn xcb_xvmc_destroy_surface_checked(
1408        &self,
1409        c: *mut xcb_connection_t,
1410        surface_id: xcb_xvmc_surface_t,
1411    ) -> xcb_void_cookie_t {
1412        sym!(self, xcb_xvmc_destroy_surface_checked)(c, surface_id)
1413    }
1414
1415    /// Returns `true` iff the symbol `xcb_xvmc_destroy_surface_checked` could be loaded.
1416    #[cfg(feature = "has_symbol")]
1417    pub fn has_xcb_xvmc_destroy_surface_checked(&self) -> bool {
1418        has_sym!(self, xcb_xvmc_destroy_surface_checked)
1419    }
1420
1421    /// Sends a `XvMC::DestroySurface` request (unchecked).
1422    #[inline]
1423    pub unsafe fn xcb_xvmc_destroy_surface(
1424        &self,
1425        c: *mut xcb_connection_t,
1426        surface_id: xcb_xvmc_surface_t,
1427    ) -> xcb_void_cookie_t {
1428        sym!(self, xcb_xvmc_destroy_surface)(c, surface_id)
1429    }
1430
1431    /// Returns `true` iff the symbol `xcb_xvmc_destroy_surface` could be loaded.
1432    #[cfg(feature = "has_symbol")]
1433    pub fn has_xcb_xvmc_destroy_surface(&self) -> bool {
1434        has_sym!(self, xcb_xvmc_destroy_surface)
1435    }
1436
1437    /// Computes the size of a `xcb_xvmc_create_subpicture_reply_t` object.
1438    #[inline]
1439    pub unsafe fn xcb_xvmc_create_subpicture_sizeof(&self, _buffer: *const c_void) -> c_int {
1440        sym!(self, xcb_xvmc_create_subpicture_sizeof)(_buffer)
1441    }
1442
1443    /// Returns `true` iff the symbol `xcb_xvmc_create_subpicture_sizeof` could be loaded.
1444    #[cfg(feature = "has_symbol")]
1445    pub fn has_xcb_xvmc_create_subpicture_sizeof(&self) -> bool {
1446        has_sym!(self, xcb_xvmc_create_subpicture_sizeof)
1447    }
1448
1449    /// Sends a `XvMC::CreateSubpicture` request (checked).
1450    ///
1451    /// This request generates a reply. You must either discard it with
1452    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_create_subpicture_reply`].
1453    ///
1454    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1455    /// [`xcb_xvmc_create_subpicture_reply`]: Self::xcb_xvmc_create_subpicture_reply
1456    #[inline]
1457    pub unsafe fn xcb_xvmc_create_subpicture(
1458        &self,
1459        c: *mut xcb_connection_t,
1460        subpicture_id: xcb_xvmc_subpicture_t,
1461        context: xcb_xvmc_context_t,
1462        xvimage_id: u32,
1463        width: u16,
1464        height: u16,
1465    ) -> xcb_xvmc_create_subpicture_cookie_t {
1466        sym!(self, xcb_xvmc_create_subpicture)(c, subpicture_id, context, xvimage_id, width, height)
1467    }
1468
1469    /// Returns `true` iff the symbol `xcb_xvmc_create_subpicture` could be loaded.
1470    #[cfg(feature = "has_symbol")]
1471    pub fn has_xcb_xvmc_create_subpicture(&self) -> bool {
1472        has_sym!(self, xcb_xvmc_create_subpicture)
1473    }
1474
1475    /// Sends a `XvMC::CreateSubpicture` request (unchecked).
1476    ///
1477    /// This request generates a reply. You must either discard it with
1478    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_create_subpicture_reply`].
1479    ///
1480    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1481    /// [`xcb_xvmc_create_subpicture_reply`]: Self::xcb_xvmc_create_subpicture_reply
1482    #[inline]
1483    pub unsafe fn xcb_xvmc_create_subpicture_unchecked(
1484        &self,
1485        c: *mut xcb_connection_t,
1486        subpicture_id: xcb_xvmc_subpicture_t,
1487        context: xcb_xvmc_context_t,
1488        xvimage_id: u32,
1489        width: u16,
1490        height: u16,
1491    ) -> xcb_xvmc_create_subpicture_cookie_t {
1492        sym!(self, xcb_xvmc_create_subpicture_unchecked)(
1493            c,
1494            subpicture_id,
1495            context,
1496            xvimage_id,
1497            width,
1498            height,
1499        )
1500    }
1501
1502    /// Returns `true` iff the symbol `xcb_xvmc_create_subpicture_unchecked` could be loaded.
1503    #[cfg(feature = "has_symbol")]
1504    pub fn has_xcb_xvmc_create_subpicture_unchecked(&self) -> bool {
1505        has_sym!(self, xcb_xvmc_create_subpicture_unchecked)
1506    }
1507
1508    /// Returns a pointer to the `priv_data` field of a `xcb_xvmc_create_subpicture_reply_t` struct.
1509    #[inline]
1510    pub unsafe fn xcb_xvmc_create_subpicture_priv_data(
1511        &self,
1512        r: *const xcb_xvmc_create_subpicture_reply_t,
1513    ) -> *mut u32 {
1514        sym!(self, xcb_xvmc_create_subpicture_priv_data)(r)
1515    }
1516
1517    /// Returns `true` iff the symbol `xcb_xvmc_create_subpicture_priv_data` could be loaded.
1518    #[cfg(feature = "has_symbol")]
1519    pub fn has_xcb_xvmc_create_subpicture_priv_data(&self) -> bool {
1520        has_sym!(self, xcb_xvmc_create_subpicture_priv_data)
1521    }
1522
1523    /// Returns the number of elements of the `priv_data` field of a `xcb_xvmc_create_subpicture_reply_t` struct.
1524    #[inline]
1525    pub unsafe fn xcb_xvmc_create_subpicture_priv_data_length(
1526        &self,
1527        r: *const xcb_xvmc_create_subpicture_reply_t,
1528    ) -> c_int {
1529        sym!(self, xcb_xvmc_create_subpicture_priv_data_length)(r)
1530    }
1531
1532    /// Returns `true` iff the symbol `xcb_xvmc_create_subpicture_priv_data_length` could be loaded.
1533    #[cfg(feature = "has_symbol")]
1534    pub fn has_xcb_xvmc_create_subpicture_priv_data_length(&self) -> bool {
1535        has_sym!(self, xcb_xvmc_create_subpicture_priv_data_length)
1536    }
1537
1538    /// Returns a `xcb_generic_iterator_t` pointing just past the end of the
1539    /// `priv_data` field of a `xcb_xvmc_create_subpicture_reply_t` struct.
1540    #[inline]
1541    pub unsafe fn xcb_xvmc_create_subpicture_priv_data_end(
1542        &self,
1543        r: *const xcb_xvmc_create_subpicture_reply_t,
1544    ) -> xcb_generic_iterator_t {
1545        sym!(self, xcb_xvmc_create_subpicture_priv_data_end)(r)
1546    }
1547
1548    /// Returns `true` iff the symbol `xcb_xvmc_create_subpicture_priv_data_end` could be loaded.
1549    #[cfg(feature = "has_symbol")]
1550    pub fn has_xcb_xvmc_create_subpicture_priv_data_end(&self) -> bool {
1551        has_sym!(self, xcb_xvmc_create_subpicture_priv_data_end)
1552    }
1553
1554    /// Waits for the reply to a `XvMC::CreateSubpicture` request.
1555    #[inline]
1556    pub unsafe fn xcb_xvmc_create_subpicture_reply(
1557        &self,
1558        c: *mut xcb_connection_t,
1559        cookie: xcb_xvmc_create_subpicture_cookie_t,
1560        e: *mut *mut xcb_generic_error_t,
1561    ) -> *mut xcb_xvmc_create_subpicture_reply_t {
1562        sym!(self, xcb_xvmc_create_subpicture_reply)(c, cookie, e)
1563    }
1564
1565    /// Returns `true` iff the symbol `xcb_xvmc_create_subpicture_reply` could be loaded.
1566    #[cfg(feature = "has_symbol")]
1567    pub fn has_xcb_xvmc_create_subpicture_reply(&self) -> bool {
1568        has_sym!(self, xcb_xvmc_create_subpicture_reply)
1569    }
1570
1571    /// Sends a `XvMC::DestroySubpicture` request (checked).
1572    ///
1573    /// This request generates a reply. You must either discard it with
1574    /// [`discard_reply`] or retrieve it with [`xcb_request_check`].
1575    ///
1576    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1577    /// [`xcb_request_check`]: crate::Xcb::xcb_request_check
1578    #[inline]
1579    pub unsafe fn xcb_xvmc_destroy_subpicture_checked(
1580        &self,
1581        c: *mut xcb_connection_t,
1582        subpicture_id: xcb_xvmc_subpicture_t,
1583    ) -> xcb_void_cookie_t {
1584        sym!(self, xcb_xvmc_destroy_subpicture_checked)(c, subpicture_id)
1585    }
1586
1587    /// Returns `true` iff the symbol `xcb_xvmc_destroy_subpicture_checked` could be loaded.
1588    #[cfg(feature = "has_symbol")]
1589    pub fn has_xcb_xvmc_destroy_subpicture_checked(&self) -> bool {
1590        has_sym!(self, xcb_xvmc_destroy_subpicture_checked)
1591    }
1592
1593    /// Sends a `XvMC::DestroySubpicture` request (unchecked).
1594    #[inline]
1595    pub unsafe fn xcb_xvmc_destroy_subpicture(
1596        &self,
1597        c: *mut xcb_connection_t,
1598        subpicture_id: xcb_xvmc_subpicture_t,
1599    ) -> xcb_void_cookie_t {
1600        sym!(self, xcb_xvmc_destroy_subpicture)(c, subpicture_id)
1601    }
1602
1603    /// Returns `true` iff the symbol `xcb_xvmc_destroy_subpicture` could be loaded.
1604    #[cfg(feature = "has_symbol")]
1605    pub fn has_xcb_xvmc_destroy_subpicture(&self) -> bool {
1606        has_sym!(self, xcb_xvmc_destroy_subpicture)
1607    }
1608
1609    /// Computes the size of a `xcb_xvmc_list_subpicture_types_reply_t` object.
1610    #[inline]
1611    pub unsafe fn xcb_xvmc_list_subpicture_types_sizeof(&self, _buffer: *const c_void) -> c_int {
1612        sym!(self, xcb_xvmc_list_subpicture_types_sizeof)(_buffer)
1613    }
1614
1615    /// Returns `true` iff the symbol `xcb_xvmc_list_subpicture_types_sizeof` could be loaded.
1616    #[cfg(feature = "has_symbol")]
1617    pub fn has_xcb_xvmc_list_subpicture_types_sizeof(&self) -> bool {
1618        has_sym!(self, xcb_xvmc_list_subpicture_types_sizeof)
1619    }
1620
1621    /// Sends a `XvMC::ListSubpictureTypes` request (checked).
1622    ///
1623    /// This request generates a reply. You must either discard it with
1624    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_list_subpicture_types_reply`].
1625    ///
1626    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1627    /// [`xcb_xvmc_list_subpicture_types_reply`]: Self::xcb_xvmc_list_subpicture_types_reply
1628    #[inline]
1629    pub unsafe fn xcb_xvmc_list_subpicture_types(
1630        &self,
1631        c: *mut xcb_connection_t,
1632        port_id: xcb_xv_port_t,
1633        surface_id: xcb_xvmc_surface_t,
1634    ) -> xcb_xvmc_list_subpicture_types_cookie_t {
1635        sym!(self, xcb_xvmc_list_subpicture_types)(c, port_id, surface_id)
1636    }
1637
1638    /// Returns `true` iff the symbol `xcb_xvmc_list_subpicture_types` could be loaded.
1639    #[cfg(feature = "has_symbol")]
1640    pub fn has_xcb_xvmc_list_subpicture_types(&self) -> bool {
1641        has_sym!(self, xcb_xvmc_list_subpicture_types)
1642    }
1643
1644    /// Sends a `XvMC::ListSubpictureTypes` request (unchecked).
1645    ///
1646    /// This request generates a reply. You must either discard it with
1647    /// [`discard_reply`] or retrieve it with [`xcb_xvmc_list_subpicture_types_reply`].
1648    ///
1649    /// [`discard_reply`]: crate::Xcb::xcb_discard_reply
1650    /// [`xcb_xvmc_list_subpicture_types_reply`]: Self::xcb_xvmc_list_subpicture_types_reply
1651    #[inline]
1652    pub unsafe fn xcb_xvmc_list_subpicture_types_unchecked(
1653        &self,
1654        c: *mut xcb_connection_t,
1655        port_id: xcb_xv_port_t,
1656        surface_id: xcb_xvmc_surface_t,
1657    ) -> xcb_xvmc_list_subpicture_types_cookie_t {
1658        sym!(self, xcb_xvmc_list_subpicture_types_unchecked)(c, port_id, surface_id)
1659    }
1660
1661    /// Returns `true` iff the symbol `xcb_xvmc_list_subpicture_types_unchecked` could be loaded.
1662    #[cfg(feature = "has_symbol")]
1663    pub fn has_xcb_xvmc_list_subpicture_types_unchecked(&self) -> bool {
1664        has_sym!(self, xcb_xvmc_list_subpicture_types_unchecked)
1665    }
1666
1667    /// Returns a pointer to the `types` field of a `xcb_xvmc_list_subpicture_types_reply_t` struct.
1668    #[inline]
1669    pub unsafe fn xcb_xvmc_list_subpicture_types_types(
1670        &self,
1671        r: *const xcb_xvmc_list_subpicture_types_reply_t,
1672    ) -> *mut xcb_xv_image_format_info_t {
1673        sym!(self, xcb_xvmc_list_subpicture_types_types)(r)
1674    }
1675
1676    /// Returns `true` iff the symbol `xcb_xvmc_list_subpicture_types_types` could be loaded.
1677    #[cfg(feature = "has_symbol")]
1678    pub fn has_xcb_xvmc_list_subpicture_types_types(&self) -> bool {
1679        has_sym!(self, xcb_xvmc_list_subpicture_types_types)
1680    }
1681
1682    /// Returns the number of elements of the `types` field of a `xcb_xvmc_list_subpicture_types_reply_t` struct.
1683    #[inline]
1684    pub unsafe fn xcb_xvmc_list_subpicture_types_types_length(
1685        &self,
1686        r: *const xcb_xvmc_list_subpicture_types_reply_t,
1687    ) -> c_int {
1688        sym!(self, xcb_xvmc_list_subpicture_types_types_length)(r)
1689    }
1690
1691    /// Returns `true` iff the symbol `xcb_xvmc_list_subpicture_types_types_length` could be loaded.
1692    #[cfg(feature = "has_symbol")]
1693    pub fn has_xcb_xvmc_list_subpicture_types_types_length(&self) -> bool {
1694        has_sym!(self, xcb_xvmc_list_subpicture_types_types_length)
1695    }
1696
1697    /// Returns an iterator over the elements of the
1698    /// `types` field of a `xcb_xvmc_list_subpicture_types_reply_t` struct.
1699    #[inline]
1700    pub unsafe fn xcb_xvmc_list_subpicture_types_types_iterator(
1701        &self,
1702        r: *const xcb_xvmc_list_subpicture_types_reply_t,
1703    ) -> xcb_xv_image_format_info_iterator_t {
1704        sym!(self, xcb_xvmc_list_subpicture_types_types_iterator)(r)
1705    }
1706
1707    /// Returns `true` iff the symbol `xcb_xvmc_list_subpicture_types_types_iterator` could be loaded.
1708    #[cfg(feature = "has_symbol")]
1709    pub fn has_xcb_xvmc_list_subpicture_types_types_iterator(&self) -> bool {
1710        has_sym!(self, xcb_xvmc_list_subpicture_types_types_iterator)
1711    }
1712
1713    /// Waits for the reply to a `XvMC::ListSubpictureTypes` request.
1714    #[inline]
1715    pub unsafe fn xcb_xvmc_list_subpicture_types_reply(
1716        &self,
1717        c: *mut xcb_connection_t,
1718        cookie: xcb_xvmc_list_subpicture_types_cookie_t,
1719        e: *mut *mut xcb_generic_error_t,
1720    ) -> *mut xcb_xvmc_list_subpicture_types_reply_t {
1721        sym!(self, xcb_xvmc_list_subpicture_types_reply)(c, cookie, e)
1722    }
1723
1724    /// Returns `true` iff the symbol `xcb_xvmc_list_subpicture_types_reply` could be loaded.
1725    #[cfg(feature = "has_symbol")]
1726    pub fn has_xcb_xvmc_list_subpicture_types_reply(&self) -> bool {
1727        has_sym!(self, xcb_xvmc_list_subpicture_types_reply)
1728    }
1729}
1730
1731#[cfg(feature = "xcb_xvmc")]
1732#[cfg(all(test, feature = "has_symbol"))]
1733mod test {
1734    #[test]
1735    fn has_all() {
1736        let lib = unsafe { crate::XcbXvmc::load().unwrap() };
1737        assert!(lib.has_xcb_xvmc_id());
1738        assert!(lib.has_xcb_xvmc_context_next());
1739        assert!(lib.has_xcb_xvmc_context_end());
1740        assert!(lib.has_xcb_xvmc_surface_next());
1741        assert!(lib.has_xcb_xvmc_surface_end());
1742        assert!(lib.has_xcb_xvmc_subpicture_next());
1743        assert!(lib.has_xcb_xvmc_subpicture_end());
1744        assert!(lib.has_xcb_xvmc_surface_info_next());
1745        assert!(lib.has_xcb_xvmc_surface_info_end());
1746        assert!(lib.has_xcb_xvmc_query_version());
1747        assert!(lib.has_xcb_xvmc_query_version_unchecked());
1748        assert!(lib.has_xcb_xvmc_query_version_reply());
1749        assert!(lib.has_xcb_xvmc_list_surface_types_sizeof());
1750        assert!(lib.has_xcb_xvmc_list_surface_types());
1751        assert!(lib.has_xcb_xvmc_list_surface_types_unchecked());
1752        assert!(lib.has_xcb_xvmc_list_surface_types_surfaces());
1753        assert!(lib.has_xcb_xvmc_list_surface_types_surfaces_length());
1754        assert!(lib.has_xcb_xvmc_list_surface_types_surfaces_iterator());
1755        assert!(lib.has_xcb_xvmc_list_surface_types_reply());
1756        assert!(lib.has_xcb_xvmc_create_context_sizeof());
1757        assert!(lib.has_xcb_xvmc_create_context());
1758        assert!(lib.has_xcb_xvmc_create_context_unchecked());
1759        assert!(lib.has_xcb_xvmc_create_context_priv_data());
1760        assert!(lib.has_xcb_xvmc_create_context_priv_data_length());
1761        assert!(lib.has_xcb_xvmc_create_context_priv_data_end());
1762        assert!(lib.has_xcb_xvmc_create_context_reply());
1763        assert!(lib.has_xcb_xvmc_destroy_context_checked());
1764        assert!(lib.has_xcb_xvmc_destroy_context());
1765        assert!(lib.has_xcb_xvmc_create_surface_sizeof());
1766        assert!(lib.has_xcb_xvmc_create_surface());
1767        assert!(lib.has_xcb_xvmc_create_surface_unchecked());
1768        assert!(lib.has_xcb_xvmc_create_surface_priv_data());
1769        assert!(lib.has_xcb_xvmc_create_surface_priv_data_length());
1770        assert!(lib.has_xcb_xvmc_create_surface_priv_data_end());
1771        assert!(lib.has_xcb_xvmc_create_surface_reply());
1772        assert!(lib.has_xcb_xvmc_destroy_surface_checked());
1773        assert!(lib.has_xcb_xvmc_destroy_surface());
1774        assert!(lib.has_xcb_xvmc_create_subpicture_sizeof());
1775        assert!(lib.has_xcb_xvmc_create_subpicture());
1776        assert!(lib.has_xcb_xvmc_create_subpicture_unchecked());
1777        assert!(lib.has_xcb_xvmc_create_subpicture_priv_data());
1778        assert!(lib.has_xcb_xvmc_create_subpicture_priv_data_length());
1779        assert!(lib.has_xcb_xvmc_create_subpicture_priv_data_end());
1780        assert!(lib.has_xcb_xvmc_create_subpicture_reply());
1781        assert!(lib.has_xcb_xvmc_destroy_subpicture_checked());
1782        assert!(lib.has_xcb_xvmc_destroy_subpicture());
1783        assert!(lib.has_xcb_xvmc_list_subpicture_types_sizeof());
1784        assert!(lib.has_xcb_xvmc_list_subpicture_types());
1785        assert!(lib.has_xcb_xvmc_list_subpicture_types_unchecked());
1786        assert!(lib.has_xcb_xvmc_list_subpicture_types_types());
1787        assert!(lib.has_xcb_xvmc_list_subpicture_types_types_length());
1788        assert!(lib.has_xcb_xvmc_list_subpicture_types_types_iterator());
1789        assert!(lib.has_xcb_xvmc_list_subpicture_types_reply());
1790    }
1791}