#![allow(non_camel_case_types)]
use crate::{
c_int, c_void, xcb_connection_t, xcb_drawable_t, xcb_extension_t, xcb_gcontext_t,
xcb_generic_error_t, xcb_void_cookie_t, xcb_window_t,
};
pub(crate) type xcb_shm_seg_t = u32;
#[doc = crate::_tags!(unix ffi)]
#[repr(C)]
pub(crate) struct xcb_shm_query_version_cookie_t {
pub(crate) sequence: u32,
}
#[doc = crate::_tags!(unix ffi)]
#[repr(C)]
pub(crate) struct xcb_shm_create_segment_cookie_t {
pub(crate) sequence: u32,
}
#[doc = crate::_tags!(unix ffi)]
#[repr(C)]
pub(crate) struct xcb_shm_query_version_reply_t {
pub(crate) response_type: u8,
pub(crate) shared_pixmaps: u8,
pub(crate) sequence: u16,
pub(crate) length: u32,
pub(crate) major_version: u16,
pub(crate) minor_version: u16,
pub(crate) uid: u16,
pub(crate) gid: u16,
pub(crate) pixmap_format: u8,
pub(crate) pad0: [u8; 15],
}
#[doc = crate::_tags!(unix ffi)]
#[repr(C)]
pub(crate) struct xcb_shm_create_segment_reply_t {
pub(crate) response_type: u8,
pub(crate) nfd: u8,
pub(crate) sequence: u16,
pub(crate) length: u32,
pub(crate) pad0: [u8; 24],
}
#[rustfmt::skip]
#[link(name = "xcb-shm")]
unsafe extern "C" {
pub(crate) static mut xcb_shm_id: xcb_extension_t;
pub(crate) fn xcb_shm_query_version(c: *mut xcb_connection_t) -> xcb_shm_query_version_cookie_t;
pub(crate) fn xcb_shm_query_version_reply(c: *mut xcb_connection_t,
cookie: xcb_shm_query_version_cookie_t, e: *mut *mut xcb_generic_error_t)
-> *mut xcb_shm_query_version_reply_t;
pub(crate) fn xcb_shm_create_segment(c: *mut xcb_connection_t, shmseg: xcb_shm_seg_t,
size: u32, read_only: u8) -> xcb_shm_create_segment_cookie_t;
pub(crate) fn xcb_shm_create_segment_reply(c: *mut xcb_connection_t,
cookie: xcb_shm_create_segment_cookie_t, e: *mut *mut xcb_generic_error_t)
-> *mut xcb_shm_create_segment_reply_t;
pub(crate) fn xcb_shm_create_segment_reply_fds(c: *mut xcb_connection_t,
reply: *mut xcb_shm_create_segment_reply_t) -> *mut c_int;
pub(crate) fn xcb_shm_attach_fd(c: *mut xcb_connection_t,
shmseg: xcb_shm_seg_t, shm_fd: c_int, read_only: u8) -> xcb_void_cookie_t;
pub(crate) fn xcb_shm_detach(c: *mut xcb_connection_t, shmseg: xcb_shm_seg_t)
-> xcb_void_cookie_t;
pub(crate) fn xcb_shm_put_image(c: *mut xcb_connection_t, drawable: xcb_drawable_t,
gc: xcb_gcontext_t, total_width: u16, total_height: u16, src_x: u16, src_y: u16,
src_width: u16, src_height: u16, dst_x: i16, dst_y: i16, depth: u8, format: u8,
send_event: u8, shmseg: xcb_shm_seg_t, offset: u32) -> xcb_void_cookie_t;
}