/* automatically generated by rust-bindgen 0.55.1 */

//! Rust FFI to [sokol_app.h](https://github.com/floooh/sokol/blob/master/sokol_app.h)

#![allow(warnings)]

pub const SOKOL_APP_INCLUDED: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __DARWIN_ONLY_64_BIT_INO_T: u32 = 0;
pub const __DARWIN_ONLY_UNIX_CONFORMANCE: u32 = 1;
pub const __DARWIN_ONLY_VERS_1050: u32 = 0;
pub const __DARWIN_UNIX03: u32 = 1;
pub const __DARWIN_64_BIT_INO_T: u32 = 1;
pub const __DARWIN_VERS_1050: u32 = 1;
pub const __DARWIN_NON_CANCELABLE: u32 = 0;
pub const __DARWIN_SUF_64_BIT_INO_T: &'static [u8; 9usize] = b"$INODE64\0";
pub const __DARWIN_SUF_1050: &'static [u8; 6usize] = b"$1050\0";
pub const __DARWIN_SUF_EXTSN: &'static [u8; 14usize] = b"$DARWIN_EXTSN\0";
pub const __DARWIN_C_ANSI: u32 = 4096;
pub const __DARWIN_C_FULL: u32 = 900000;
pub const __DARWIN_C_LEVEL: u32 = 900000;
pub const __STDC_WANT_LIB_EXT1__: u32 = 1;
pub const __DARWIN_NO_LONG_LONG: u32 = 0;
pub const _DARWIN_FEATURE_64_BIT_INODE: u32 = 1;
pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: u32 = 1;
pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: u32 = 3;
pub const __PTHREAD_SIZE__: u32 = 8176;
pub const __PTHREAD_ATTR_SIZE__: u32 = 56;
pub const __PTHREAD_MUTEXATTR_SIZE__: u32 = 8;
pub const __PTHREAD_MUTEX_SIZE__: u32 = 56;
pub const __PTHREAD_CONDATTR_SIZE__: u32 = 8;
pub const __PTHREAD_COND_SIZE__: u32 = 40;
pub const __PTHREAD_ONCE_SIZE__: u32 = 8;
pub const __PTHREAD_RWLOCK_SIZE__: u32 = 192;
pub const __PTHREAD_RWLOCKATTR_SIZE__: u32 = 16;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const INT64_MAX: u64 = 9223372036854775807;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT64_MIN: i64 = -9223372036854775808;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const UINT64_MAX: i32 = -1;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const UINT_LEAST64_MAX: i32 = -1;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i32 = -32768;
pub const INT_FAST32_MIN: i32 = -2147483648;
pub const INT_FAST64_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u32 = 32767;
pub const INT_FAST32_MAX: u32 = 2147483647;
pub const INT_FAST64_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: u32 = 65535;
pub const UINT_FAST32_MAX: u32 = 4294967295;
pub const UINT_FAST64_MAX: i32 = -1;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const UINTPTR_MAX: i32 = -1;
pub const SIZE_MAX: i32 = -1;
pub const RSIZE_MAX: i32 = -1;
pub const WINT_MIN: i32 = -2147483648;
pub const WINT_MAX: u32 = 2147483647;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const __bool_true_false_are_defined: u32 = 1;
pub type int_least8_t = i8;
pub type int_least16_t = i16;
pub type int_least32_t = i32;
pub type int_least64_t = i64;
pub type uint_least8_t = u8;
pub type uint_least16_t = u16;
pub type uint_least32_t = u32;
pub type uint_least64_t = u64;
pub type int_fast8_t = i8;
pub type int_fast16_t = i16;
pub type int_fast32_t = i32;
pub type int_fast64_t = i64;
pub type uint_fast8_t = u8;
pub type uint_fast16_t = u16;
pub type uint_fast32_t = u32;
pub type uint_fast64_t = u64;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_longlong;
pub type __uint64_t = ::std::os::raw::c_ulonglong;
pub type __darwin_intptr_t = ::std::os::raw::c_long;
pub type __darwin_natural_t = ::std::os::raw::c_uint;
pub type __darwin_ct_rune_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union __mbstate_t {
    pub __mbstate8: [::std::os::raw::c_char; 128usize],
    pub _mbstateL: ::std::os::raw::c_longlong,
    _bindgen_union_align: [u64; 16usize],
}
#[test]
fn bindgen_test_layout___mbstate_t() {
    assert_eq!(
        ::std::mem::size_of::<__mbstate_t>(),
        128usize,
        concat!("Size of: ", stringify!(__mbstate_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__mbstate_t>(),
        8usize,
        concat!("Alignment of ", stringify!(__mbstate_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__mbstate8 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t),
            "::",
            stringify!(__mbstate8)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__mbstate_t>()))._mbstateL as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t),
            "::",
            stringify!(_mbstateL)
        )
    );
}
impl Default for __mbstate_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type __darwin_mbstate_t = __mbstate_t;
pub type __darwin_ptrdiff_t = ::std::os::raw::c_long;
pub type __darwin_size_t = ::std::os::raw::c_ulong;
pub type __darwin_va_list = __builtin_va_list;
pub type __darwin_wchar_t = ::std::os::raw::c_int;
pub type __darwin_rune_t = __darwin_wchar_t;
pub type __darwin_wint_t = ::std::os::raw::c_int;
pub type __darwin_clock_t = ::std::os::raw::c_ulong;
pub type __darwin_socklen_t = __uint32_t;
pub type __darwin_ssize_t = ::std::os::raw::c_long;
pub type __darwin_time_t = ::std::os::raw::c_long;
pub type __darwin_blkcnt_t = __int64_t;
pub type __darwin_blksize_t = __int32_t;
pub type __darwin_dev_t = __int32_t;
pub type __darwin_fsblkcnt_t = ::std::os::raw::c_uint;
pub type __darwin_fsfilcnt_t = ::std::os::raw::c_uint;
pub type __darwin_gid_t = __uint32_t;
pub type __darwin_id_t = __uint32_t;
pub type __darwin_ino64_t = __uint64_t;
pub type __darwin_ino_t = __darwin_ino64_t;
pub type __darwin_mach_port_name_t = __darwin_natural_t;
pub type __darwin_mach_port_t = __darwin_mach_port_name_t;
pub type __darwin_mode_t = __uint16_t;
pub type __darwin_off_t = __int64_t;
pub type __darwin_pid_t = __int32_t;
pub type __darwin_sigset_t = __uint32_t;
pub type __darwin_suseconds_t = __int32_t;
pub type __darwin_uid_t = __uint32_t;
pub type __darwin_useconds_t = __uint32_t;
pub type __darwin_uuid_t = [::std::os::raw::c_uchar; 16usize];
pub type __darwin_uuid_string_t = [::std::os::raw::c_char; 37usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __darwin_pthread_handler_rec {
    pub __routine: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub __arg: *mut ::std::os::raw::c_void,
    pub __next: *mut __darwin_pthread_handler_rec,
}
#[test]
fn bindgen_test_layout___darwin_pthread_handler_rec() {
    assert_eq!(
        ::std::mem::size_of::<__darwin_pthread_handler_rec>(),
        24usize,
        concat!("Size of: ", stringify!(__darwin_pthread_handler_rec))
    );
    assert_eq!(
        ::std::mem::align_of::<__darwin_pthread_handler_rec>(),
        8usize,
        concat!("Alignment of ", stringify!(__darwin_pthread_handler_rec))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__darwin_pthread_handler_rec>())).__routine as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__darwin_pthread_handler_rec),
            "::",
            stringify!(__routine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__darwin_pthread_handler_rec>())).__arg as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__darwin_pthread_handler_rec),
            "::",
            stringify!(__arg)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__darwin_pthread_handler_rec>())).__next as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__darwin_pthread_handler_rec),
            "::",
            stringify!(__next)
        )
    );
}
impl Default for __darwin_pthread_handler_rec {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _opaque_pthread_attr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 56usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_attr_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_attr_t>(),
        64usize,
        concat!("Size of: ", stringify!(_opaque_pthread_attr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_attr_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_attr_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_attr_t>())).__sig as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_attr_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_attr_t>())).__opaque as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_attr_t),
            "::",
            stringify!(__opaque)
        )
    );
}
impl Default for _opaque_pthread_attr_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _opaque_pthread_cond_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 40usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_cond_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_cond_t>(),
        48usize,
        concat!("Size of: ", stringify!(_opaque_pthread_cond_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_cond_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_cond_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_cond_t>())).__sig as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_cond_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_cond_t>())).__opaque as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_cond_t),
            "::",
            stringify!(__opaque)
        )
    );
}
impl Default for _opaque_pthread_cond_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_condattr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 8usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_condattr_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_condattr_t>(),
        16usize,
        concat!("Size of: ", stringify!(_opaque_pthread_condattr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_condattr_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_condattr_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_condattr_t>())).__sig as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_condattr_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_condattr_t>())).__opaque as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_condattr_t),
            "::",
            stringify!(__opaque)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _opaque_pthread_mutex_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 56usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_mutex_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_mutex_t>(),
        64usize,
        concat!("Size of: ", stringify!(_opaque_pthread_mutex_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_mutex_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_mutex_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_mutex_t>())).__sig as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_mutex_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_mutex_t>())).__opaque as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_mutex_t),
            "::",
            stringify!(__opaque)
        )
    );
}
impl Default for _opaque_pthread_mutex_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_mutexattr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 8usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_mutexattr_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_mutexattr_t>(),
        16usize,
        concat!("Size of: ", stringify!(_opaque_pthread_mutexattr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_mutexattr_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_mutexattr_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_mutexattr_t>())).__sig as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_mutexattr_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_mutexattr_t>())).__opaque as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_mutexattr_t),
            "::",
            stringify!(__opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_once_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 8usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_once_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_once_t>(),
        16usize,
        concat!("Size of: ", stringify!(_opaque_pthread_once_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_once_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_once_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_once_t>())).__sig as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_once_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_once_t>())).__opaque as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_once_t),
            "::",
            stringify!(__opaque)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _opaque_pthread_rwlock_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 192usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_rwlock_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_rwlock_t>(),
        200usize,
        concat!("Size of: ", stringify!(_opaque_pthread_rwlock_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_rwlock_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_rwlock_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_rwlock_t>())).__sig as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_rwlock_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_rwlock_t>())).__opaque as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_rwlock_t),
            "::",
            stringify!(__opaque)
        )
    );
}
impl Default for _opaque_pthread_rwlock_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_rwlockattr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 16usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_rwlockattr_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_rwlockattr_t>(),
        24usize,
        concat!("Size of: ", stringify!(_opaque_pthread_rwlockattr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_rwlockattr_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_rwlockattr_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_rwlockattr_t>())).__sig as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_rwlockattr_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_rwlockattr_t>())).__opaque as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_rwlockattr_t),
            "::",
            stringify!(__opaque)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _opaque_pthread_t {
    pub __sig: ::std::os::raw::c_long,
    pub __cleanup_stack: *mut __darwin_pthread_handler_rec,
    pub __opaque: [::std::os::raw::c_char; 8176usize],
}
#[test]
fn bindgen_test_layout__opaque_pthread_t() {
    assert_eq!(
        ::std::mem::size_of::<_opaque_pthread_t>(),
        8192usize,
        concat!("Size of: ", stringify!(_opaque_pthread_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_opaque_pthread_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_opaque_pthread_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_t>())).__sig as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_t),
            "::",
            stringify!(__sig)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_opaque_pthread_t>())).__cleanup_stack as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_t),
            "::",
            stringify!(__cleanup_stack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_opaque_pthread_t>())).__opaque as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_opaque_pthread_t),
            "::",
            stringify!(__opaque)
        )
    );
}
impl Default for _opaque_pthread_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type __darwin_pthread_attr_t = _opaque_pthread_attr_t;
pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t;
pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t;
pub type __darwin_pthread_key_t = ::std::os::raw::c_ulong;
pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t;
pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t;
pub type __darwin_pthread_once_t = _opaque_pthread_once_t;
pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t;
pub type __darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t;
pub type __darwin_pthread_t = *mut _opaque_pthread_t;
pub type u_int8_t = ::std::os::raw::c_uchar;
pub type u_int16_t = ::std::os::raw::c_ushort;
pub type u_int32_t = ::std::os::raw::c_uint;
pub type u_int64_t = ::std::os::raw::c_ulonglong;
pub type register_t = i64;
pub type user_addr_t = u_int64_t;
pub type user_size_t = u_int64_t;
pub type user_ssize_t = i64;
pub type user_long_t = i64;
pub type user_ulong_t = u_int64_t;
pub type user_time_t = i64;
pub type user_off_t = i64;
pub type syscall_arg_t = u_int64_t;
pub type intmax_t = ::std::os::raw::c_long;
pub type uintmax_t = ::std::os::raw::c_ulong;
pub const SAPP_MAX_TOUCHPOINTS: ::std::os::raw::c_uint = 8;
pub const SAPP_MAX_MOUSEBUTTONS: ::std::os::raw::c_uint = 3;
pub const SAPP_MAX_KEYCODES: ::std::os::raw::c_uint = 512;
pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
pub const sapp_event_type_SAPP_EVENTTYPE_INVALID: sapp_event_type = 0;
pub const sapp_event_type_SAPP_EVENTTYPE_KEY_DOWN: sapp_event_type = 1;
pub const sapp_event_type_SAPP_EVENTTYPE_KEY_UP: sapp_event_type = 2;
pub const sapp_event_type_SAPP_EVENTTYPE_CHAR: sapp_event_type = 3;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_DOWN: sapp_event_type = 4;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_UP: sapp_event_type = 5;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_SCROLL: sapp_event_type = 6;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_MOVE: sapp_event_type = 7;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_ENTER: sapp_event_type = 8;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_LEAVE: sapp_event_type = 9;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_BEGAN: sapp_event_type = 10;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_MOVED: sapp_event_type = 11;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_ENDED: sapp_event_type = 12;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_CANCELLED: sapp_event_type = 13;
pub const sapp_event_type_SAPP_EVENTTYPE_RESIZED: sapp_event_type = 14;
pub const sapp_event_type_SAPP_EVENTTYPE_ICONIFIED: sapp_event_type = 15;
pub const sapp_event_type_SAPP_EVENTTYPE_RESTORED: sapp_event_type = 16;
pub const sapp_event_type_SAPP_EVENTTYPE_SUSPENDED: sapp_event_type = 17;
pub const sapp_event_type_SAPP_EVENTTYPE_RESUMED: sapp_event_type = 18;
pub const sapp_event_type_SAPP_EVENTTYPE_UPDATE_CURSOR: sapp_event_type = 19;
pub const sapp_event_type_SAPP_EVENTTYPE_QUIT_REQUESTED: sapp_event_type = 20;
pub const sapp_event_type_SAPP_EVENTTYPE_CLIPBOARD_PASTED: sapp_event_type = 21;
pub const sapp_event_type_SAPP_EVENTTYPE_FILES_DROPPED: sapp_event_type = 22;
pub const sapp_event_type__SAPP_EVENTTYPE_NUM: sapp_event_type = 23;
pub const sapp_event_type__SAPP_EVENTTYPE_FORCE_U32: sapp_event_type = 2147483647;
pub type sapp_event_type = ::std::os::raw::c_uint;
pub const sapp_keycode_SAPP_KEYCODE_INVALID: sapp_keycode = 0;
pub const sapp_keycode_SAPP_KEYCODE_SPACE: sapp_keycode = 32;
pub const sapp_keycode_SAPP_KEYCODE_APOSTROPHE: sapp_keycode = 39;
pub const sapp_keycode_SAPP_KEYCODE_COMMA: sapp_keycode = 44;
pub const sapp_keycode_SAPP_KEYCODE_MINUS: sapp_keycode = 45;
pub const sapp_keycode_SAPP_KEYCODE_PERIOD: sapp_keycode = 46;
pub const sapp_keycode_SAPP_KEYCODE_SLASH: sapp_keycode = 47;
pub const sapp_keycode_SAPP_KEYCODE_0: sapp_keycode = 48;
pub const sapp_keycode_SAPP_KEYCODE_1: sapp_keycode = 49;
pub const sapp_keycode_SAPP_KEYCODE_2: sapp_keycode = 50;
pub const sapp_keycode_SAPP_KEYCODE_3: sapp_keycode = 51;
pub const sapp_keycode_SAPP_KEYCODE_4: sapp_keycode = 52;
pub const sapp_keycode_SAPP_KEYCODE_5: sapp_keycode = 53;
pub const sapp_keycode_SAPP_KEYCODE_6: sapp_keycode = 54;
pub const sapp_keycode_SAPP_KEYCODE_7: sapp_keycode = 55;
pub const sapp_keycode_SAPP_KEYCODE_8: sapp_keycode = 56;
pub const sapp_keycode_SAPP_KEYCODE_9: sapp_keycode = 57;
pub const sapp_keycode_SAPP_KEYCODE_SEMICOLON: sapp_keycode = 59;
pub const sapp_keycode_SAPP_KEYCODE_EQUAL: sapp_keycode = 61;
pub const sapp_keycode_SAPP_KEYCODE_A: sapp_keycode = 65;
pub const sapp_keycode_SAPP_KEYCODE_B: sapp_keycode = 66;
pub const sapp_keycode_SAPP_KEYCODE_C: sapp_keycode = 67;
pub const sapp_keycode_SAPP_KEYCODE_D: sapp_keycode = 68;
pub const sapp_keycode_SAPP_KEYCODE_E: sapp_keycode = 69;
pub const sapp_keycode_SAPP_KEYCODE_F: sapp_keycode = 70;
pub const sapp_keycode_SAPP_KEYCODE_G: sapp_keycode = 71;
pub const sapp_keycode_SAPP_KEYCODE_H: sapp_keycode = 72;
pub const sapp_keycode_SAPP_KEYCODE_I: sapp_keycode = 73;
pub const sapp_keycode_SAPP_KEYCODE_J: sapp_keycode = 74;
pub const sapp_keycode_SAPP_KEYCODE_K: sapp_keycode = 75;
pub const sapp_keycode_SAPP_KEYCODE_L: sapp_keycode = 76;
pub const sapp_keycode_SAPP_KEYCODE_M: sapp_keycode = 77;
pub const sapp_keycode_SAPP_KEYCODE_N: sapp_keycode = 78;
pub const sapp_keycode_SAPP_KEYCODE_O: sapp_keycode = 79;
pub const sapp_keycode_SAPP_KEYCODE_P: sapp_keycode = 80;
pub const sapp_keycode_SAPP_KEYCODE_Q: sapp_keycode = 81;
pub const sapp_keycode_SAPP_KEYCODE_R: sapp_keycode = 82;
pub const sapp_keycode_SAPP_KEYCODE_S: sapp_keycode = 83;
pub const sapp_keycode_SAPP_KEYCODE_T: sapp_keycode = 84;
pub const sapp_keycode_SAPP_KEYCODE_U: sapp_keycode = 85;
pub const sapp_keycode_SAPP_KEYCODE_V: sapp_keycode = 86;
pub const sapp_keycode_SAPP_KEYCODE_W: sapp_keycode = 87;
pub const sapp_keycode_SAPP_KEYCODE_X: sapp_keycode = 88;
pub const sapp_keycode_SAPP_KEYCODE_Y: sapp_keycode = 89;
pub const sapp_keycode_SAPP_KEYCODE_Z: sapp_keycode = 90;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_BRACKET: sapp_keycode = 91;
pub const sapp_keycode_SAPP_KEYCODE_BACKSLASH: sapp_keycode = 92;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_BRACKET: sapp_keycode = 93;
pub const sapp_keycode_SAPP_KEYCODE_GRAVE_ACCENT: sapp_keycode = 96;
pub const sapp_keycode_SAPP_KEYCODE_WORLD_1: sapp_keycode = 161;
pub const sapp_keycode_SAPP_KEYCODE_WORLD_2: sapp_keycode = 162;
pub const sapp_keycode_SAPP_KEYCODE_ESCAPE: sapp_keycode = 256;
pub const sapp_keycode_SAPP_KEYCODE_ENTER: sapp_keycode = 257;
pub const sapp_keycode_SAPP_KEYCODE_TAB: sapp_keycode = 258;
pub const sapp_keycode_SAPP_KEYCODE_BACKSPACE: sapp_keycode = 259;
pub const sapp_keycode_SAPP_KEYCODE_INSERT: sapp_keycode = 260;
pub const sapp_keycode_SAPP_KEYCODE_DELETE: sapp_keycode = 261;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT: sapp_keycode = 262;
pub const sapp_keycode_SAPP_KEYCODE_LEFT: sapp_keycode = 263;
pub const sapp_keycode_SAPP_KEYCODE_DOWN: sapp_keycode = 264;
pub const sapp_keycode_SAPP_KEYCODE_UP: sapp_keycode = 265;
pub const sapp_keycode_SAPP_KEYCODE_PAGE_UP: sapp_keycode = 266;
pub const sapp_keycode_SAPP_KEYCODE_PAGE_DOWN: sapp_keycode = 267;
pub const sapp_keycode_SAPP_KEYCODE_HOME: sapp_keycode = 268;
pub const sapp_keycode_SAPP_KEYCODE_END: sapp_keycode = 269;
pub const sapp_keycode_SAPP_KEYCODE_CAPS_LOCK: sapp_keycode = 280;
pub const sapp_keycode_SAPP_KEYCODE_SCROLL_LOCK: sapp_keycode = 281;
pub const sapp_keycode_SAPP_KEYCODE_NUM_LOCK: sapp_keycode = 282;
pub const sapp_keycode_SAPP_KEYCODE_PRINT_SCREEN: sapp_keycode = 283;
pub const sapp_keycode_SAPP_KEYCODE_PAUSE: sapp_keycode = 284;
pub const sapp_keycode_SAPP_KEYCODE_F1: sapp_keycode = 290;
pub const sapp_keycode_SAPP_KEYCODE_F2: sapp_keycode = 291;
pub const sapp_keycode_SAPP_KEYCODE_F3: sapp_keycode = 292;
pub const sapp_keycode_SAPP_KEYCODE_F4: sapp_keycode = 293;
pub const sapp_keycode_SAPP_KEYCODE_F5: sapp_keycode = 294;
pub const sapp_keycode_SAPP_KEYCODE_F6: sapp_keycode = 295;
pub const sapp_keycode_SAPP_KEYCODE_F7: sapp_keycode = 296;
pub const sapp_keycode_SAPP_KEYCODE_F8: sapp_keycode = 297;
pub const sapp_keycode_SAPP_KEYCODE_F9: sapp_keycode = 298;
pub const sapp_keycode_SAPP_KEYCODE_F10: sapp_keycode = 299;
pub const sapp_keycode_SAPP_KEYCODE_F11: sapp_keycode = 300;
pub const sapp_keycode_SAPP_KEYCODE_F12: sapp_keycode = 301;
pub const sapp_keycode_SAPP_KEYCODE_F13: sapp_keycode = 302;
pub const sapp_keycode_SAPP_KEYCODE_F14: sapp_keycode = 303;
pub const sapp_keycode_SAPP_KEYCODE_F15: sapp_keycode = 304;
pub const sapp_keycode_SAPP_KEYCODE_F16: sapp_keycode = 305;
pub const sapp_keycode_SAPP_KEYCODE_F17: sapp_keycode = 306;
pub const sapp_keycode_SAPP_KEYCODE_F18: sapp_keycode = 307;
pub const sapp_keycode_SAPP_KEYCODE_F19: sapp_keycode = 308;
pub const sapp_keycode_SAPP_KEYCODE_F20: sapp_keycode = 309;
pub const sapp_keycode_SAPP_KEYCODE_F21: sapp_keycode = 310;
pub const sapp_keycode_SAPP_KEYCODE_F22: sapp_keycode = 311;
pub const sapp_keycode_SAPP_KEYCODE_F23: sapp_keycode = 312;
pub const sapp_keycode_SAPP_KEYCODE_F24: sapp_keycode = 313;
pub const sapp_keycode_SAPP_KEYCODE_F25: sapp_keycode = 314;
pub const sapp_keycode_SAPP_KEYCODE_KP_0: sapp_keycode = 320;
pub const sapp_keycode_SAPP_KEYCODE_KP_1: sapp_keycode = 321;
pub const sapp_keycode_SAPP_KEYCODE_KP_2: sapp_keycode = 322;
pub const sapp_keycode_SAPP_KEYCODE_KP_3: sapp_keycode = 323;
pub const sapp_keycode_SAPP_KEYCODE_KP_4: sapp_keycode = 324;
pub const sapp_keycode_SAPP_KEYCODE_KP_5: sapp_keycode = 325;
pub const sapp_keycode_SAPP_KEYCODE_KP_6: sapp_keycode = 326;
pub const sapp_keycode_SAPP_KEYCODE_KP_7: sapp_keycode = 327;
pub const sapp_keycode_SAPP_KEYCODE_KP_8: sapp_keycode = 328;
pub const sapp_keycode_SAPP_KEYCODE_KP_9: sapp_keycode = 329;
pub const sapp_keycode_SAPP_KEYCODE_KP_DECIMAL: sapp_keycode = 330;
pub const sapp_keycode_SAPP_KEYCODE_KP_DIVIDE: sapp_keycode = 331;
pub const sapp_keycode_SAPP_KEYCODE_KP_MULTIPLY: sapp_keycode = 332;
pub const sapp_keycode_SAPP_KEYCODE_KP_SUBTRACT: sapp_keycode = 333;
pub const sapp_keycode_SAPP_KEYCODE_KP_ADD: sapp_keycode = 334;
pub const sapp_keycode_SAPP_KEYCODE_KP_ENTER: sapp_keycode = 335;
pub const sapp_keycode_SAPP_KEYCODE_KP_EQUAL: sapp_keycode = 336;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_SHIFT: sapp_keycode = 340;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_CONTROL: sapp_keycode = 341;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_ALT: sapp_keycode = 342;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_SUPER: sapp_keycode = 343;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_SHIFT: sapp_keycode = 344;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_CONTROL: sapp_keycode = 345;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_ALT: sapp_keycode = 346;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_SUPER: sapp_keycode = 347;
pub const sapp_keycode_SAPP_KEYCODE_MENU: sapp_keycode = 348;
pub type sapp_keycode = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct sapp_touchpoint {
    pub identifier: usize,
    pub pos_x: f32,
    pub pos_y: f32,
    pub changed: bool,
}
#[test]
fn bindgen_test_layout_sapp_touchpoint() {
    assert_eq!(
        ::std::mem::size_of::<sapp_touchpoint>(),
        24usize,
        concat!("Size of: ", stringify!(sapp_touchpoint))
    );
    assert_eq!(
        ::std::mem::align_of::<sapp_touchpoint>(),
        8usize,
        concat!("Alignment of ", stringify!(sapp_touchpoint))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_touchpoint>())).identifier as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_touchpoint),
            "::",
            stringify!(identifier)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_touchpoint>())).pos_x as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_touchpoint),
            "::",
            stringify!(pos_x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_touchpoint>())).pos_y as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_touchpoint),
            "::",
            stringify!(pos_y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_touchpoint>())).changed as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_touchpoint),
            "::",
            stringify!(changed)
        )
    );
}
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_LEFT: sapp_mousebutton = 0;
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_RIGHT: sapp_mousebutton = 1;
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_MIDDLE: sapp_mousebutton = 2;
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_INVALID: sapp_mousebutton = 256;
pub type sapp_mousebutton = ::std::os::raw::c_uint;
pub const SAPP_MODIFIER_SHIFT: ::std::os::raw::c_uint = 1;
pub const SAPP_MODIFIER_CTRL: ::std::os::raw::c_uint = 2;
pub const SAPP_MODIFIER_ALT: ::std::os::raw::c_uint = 4;
pub const SAPP_MODIFIER_SUPER: ::std::os::raw::c_uint = 8;
pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sapp_event {
    pub frame_count: u64,
    pub type_: sapp_event_type,
    pub key_code: sapp_keycode,
    pub char_code: u32,
    pub key_repeat: bool,
    pub modifiers: u32,
    pub mouse_button: sapp_mousebutton,
    pub mouse_x: f32,
    pub mouse_y: f32,
    pub mouse_dx: f32,
    pub mouse_dy: f32,
    pub scroll_x: f32,
    pub scroll_y: f32,
    pub num_touches: ::std::os::raw::c_int,
    pub touches: [sapp_touchpoint; 8usize],
    pub window_width: ::std::os::raw::c_int,
    pub window_height: ::std::os::raw::c_int,
    pub framebuffer_width: ::std::os::raw::c_int,
    pub framebuffer_height: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_sapp_event() {
    assert_eq!(
        ::std::mem::size_of::<sapp_event>(),
        272usize,
        concat!("Size of: ", stringify!(sapp_event))
    );
    assert_eq!(
        ::std::mem::align_of::<sapp_event>(),
        8usize,
        concat!("Alignment of ", stringify!(sapp_event))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).frame_count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(frame_count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).type_ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).key_code as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(key_code)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).char_code as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(char_code)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).key_repeat as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(key_repeat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).modifiers as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(modifiers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).mouse_button as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(mouse_button)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).mouse_x as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(mouse_x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).mouse_y as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(mouse_y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).mouse_dx as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(mouse_dx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).mouse_dy as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(mouse_dy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).scroll_x as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(scroll_x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).scroll_y as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(scroll_y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).num_touches as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(num_touches)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).touches as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(touches)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).window_width as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(window_width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).window_height as *const _ as usize },
        260usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(window_height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).framebuffer_width as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(framebuffer_width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_event>())).framebuffer_height as *const _ as usize },
        268usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_event),
            "::",
            stringify!(framebuffer_height)
        )
    );
}
impl Default for sapp_event {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sapp_desc {
    pub init_cb: ::std::option::Option<unsafe extern "C" fn()>,
    pub frame_cb: ::std::option::Option<unsafe extern "C" fn()>,
    pub cleanup_cb: ::std::option::Option<unsafe extern "C" fn()>,
    pub event_cb: ::std::option::Option<unsafe extern "C" fn(arg1: *const sapp_event)>,
    pub fail_cb: ::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char)>,
    pub user_data: *mut ::std::os::raw::c_void,
    pub init_userdata_cb:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub frame_userdata_cb:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub cleanup_userdata_cb:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub event_userdata_cb: ::std::option::Option<
        unsafe extern "C" fn(arg1: *const sapp_event, arg2: *mut ::std::os::raw::c_void),
    >,
    pub fail_userdata_cb: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *const ::std::os::raw::c_char,
            arg2: *mut ::std::os::raw::c_void,
        ),
    >,
    pub width: ::std::os::raw::c_int,
    pub height: ::std::os::raw::c_int,
    pub sample_count: ::std::os::raw::c_int,
    pub swap_interval: ::std::os::raw::c_int,
    pub high_dpi: bool,
    pub fullscreen: bool,
    pub alpha: bool,
    pub window_title: *const ::std::os::raw::c_char,
    pub user_cursor: bool,
    pub enable_clipboard: bool,
    pub clipboard_size: ::std::os::raw::c_int,
    pub enable_dragndrop: bool,
    pub max_dropped_files: ::std::os::raw::c_int,
    pub max_dropped_file_path_length: ::std::os::raw::c_int,
    pub gl_force_gles2: bool,
    pub win32_console_utf8: bool,
    pub win32_console_create: bool,
    pub win32_console_attach: bool,
    pub html5_canvas_name: *const ::std::os::raw::c_char,
    pub html5_canvas_resize: bool,
    pub html5_preserve_drawing_buffer: bool,
    pub html5_premultiplied_alpha: bool,
    pub html5_ask_leave_site: bool,
    pub ios_keyboard_resizes_canvas: bool,
}
#[test]
fn bindgen_test_layout_sapp_desc() {
    assert_eq!(
        ::std::mem::size_of::<sapp_desc>(),
        160usize,
        concat!("Size of: ", stringify!(sapp_desc))
    );
    assert_eq!(
        ::std::mem::align_of::<sapp_desc>(),
        8usize,
        concat!("Alignment of ", stringify!(sapp_desc))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).init_cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(init_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).frame_cb as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(frame_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).cleanup_cb as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(cleanup_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).event_cb as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(event_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).fail_cb as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(fail_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).user_data as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(user_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).init_userdata_cb as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(init_userdata_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).frame_userdata_cb as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(frame_userdata_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).cleanup_userdata_cb as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(cleanup_userdata_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).event_userdata_cb as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(event_userdata_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).fail_userdata_cb as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(fail_userdata_cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).width as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).height as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).sample_count as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(sample_count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).swap_interval as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(swap_interval)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).high_dpi as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(high_dpi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).fullscreen as *const _ as usize },
        105usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(fullscreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).alpha as *const _ as usize },
        106usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(alpha)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).window_title as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(window_title)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).user_cursor as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(user_cursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).enable_clipboard as *const _ as usize },
        121usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(enable_clipboard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).clipboard_size as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(clipboard_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).enable_dragndrop as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(enable_dragndrop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).max_dropped_files as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(max_dropped_files)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_desc>())).max_dropped_file_path_length as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(max_dropped_file_path_length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).gl_force_gles2 as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(gl_force_gles2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).win32_console_utf8 as *const _ as usize },
        141usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(win32_console_utf8)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).win32_console_create as *const _ as usize },
        142usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(win32_console_create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).win32_console_attach as *const _ as usize },
        143usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(win32_console_attach)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).html5_canvas_name as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(html5_canvas_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).html5_canvas_resize as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(html5_canvas_resize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_desc>())).html5_preserve_drawing_buffer as *const _ as usize
        },
        153usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(html5_preserve_drawing_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_desc>())).html5_premultiplied_alpha as *const _ as usize
        },
        154usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(html5_premultiplied_alpha)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sapp_desc>())).html5_ask_leave_site as *const _ as usize },
        155usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(html5_ask_leave_site)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_desc>())).ios_keyboard_resizes_canvas as *const _ as usize
        },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_desc),
            "::",
            stringify!(ios_keyboard_resizes_canvas)
        )
    );
}
impl Default for sapp_desc {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
pub const sapp_html5_fetch_error_SAPP_HTML5_FETCH_ERROR_NO_ERROR: sapp_html5_fetch_error = 0;
pub const sapp_html5_fetch_error_SAPP_HTML5_FETCH_ERROR_BUFFER_TOO_SMALL: sapp_html5_fetch_error =
    1;
pub const sapp_html5_fetch_error_SAPP_HTML5_FETCH_ERROR_OTHER: sapp_html5_fetch_error = 2;
pub type sapp_html5_fetch_error = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sapp_html5_fetch_response {
    pub succeeded: bool,
    pub error_code: sapp_html5_fetch_error,
    pub file_index: ::std::os::raw::c_int,
    pub fetched_size: u32,
    pub buffer_ptr: *mut ::std::os::raw::c_void,
    pub buffer_size: u32,
    pub user_data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_sapp_html5_fetch_response() {
    assert_eq!(
        ::std::mem::size_of::<sapp_html5_fetch_response>(),
        40usize,
        concat!("Size of: ", stringify!(sapp_html5_fetch_response))
    );
    assert_eq!(
        ::std::mem::align_of::<sapp_html5_fetch_response>(),
        8usize,
        concat!("Alignment of ", stringify!(sapp_html5_fetch_response))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_response>())).succeeded as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_response),
            "::",
            stringify!(succeeded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_response>())).error_code as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_response),
            "::",
            stringify!(error_code)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_response>())).file_index as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_response),
            "::",
            stringify!(file_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_response>())).fetched_size as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_response),
            "::",
            stringify!(fetched_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_response>())).buffer_ptr as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_response),
            "::",
            stringify!(buffer_ptr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_response>())).buffer_size as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_response),
            "::",
            stringify!(buffer_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_response>())).user_data as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_response),
            "::",
            stringify!(user_data)
        )
    );
}
impl Default for sapp_html5_fetch_response {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sapp_html5_fetch_request {
    pub dropped_file_index: ::std::os::raw::c_int,
    pub callback:
        ::std::option::Option<unsafe extern "C" fn(arg1: *const sapp_html5_fetch_response)>,
    pub buffer_ptr: *mut ::std::os::raw::c_void,
    pub buffer_size: u32,
    pub user_data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_sapp_html5_fetch_request() {
    assert_eq!(
        ::std::mem::size_of::<sapp_html5_fetch_request>(),
        40usize,
        concat!("Size of: ", stringify!(sapp_html5_fetch_request))
    );
    assert_eq!(
        ::std::mem::align_of::<sapp_html5_fetch_request>(),
        8usize,
        concat!("Alignment of ", stringify!(sapp_html5_fetch_request))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_request>())).dropped_file_index as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_request),
            "::",
            stringify!(dropped_file_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_request>())).callback as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_request),
            "::",
            stringify!(callback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_request>())).buffer_ptr as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_request),
            "::",
            stringify!(buffer_ptr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_request>())).buffer_size as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_request),
            "::",
            stringify!(buffer_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<sapp_html5_fetch_request>())).user_data as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sapp_html5_fetch_request),
            "::",
            stringify!(user_data)
        )
    );
}
impl Default for sapp_html5_fetch_request {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
extern "C" {
    pub fn sokol_main(
        argc: ::std::os::raw::c_int,
        argv: *mut *mut ::std::os::raw::c_char,
    ) -> sapp_desc;
}
extern "C" {
    pub fn sapp_isvalid() -> bool;
}
extern "C" {
    pub fn sapp_width() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_widthf() -> f32;
}
extern "C" {
    pub fn sapp_height() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_heightf() -> f32;
}
extern "C" {
    pub fn sapp_color_format() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_depth_format() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_sample_count() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_high_dpi() -> bool;
}
extern "C" {
    pub fn sapp_dpi_scale() -> f32;
}
extern "C" {
    pub fn sapp_show_keyboard(show: bool);
}
extern "C" {
    pub fn sapp_keyboard_shown() -> bool;
}
extern "C" {
    pub fn sapp_is_fullscreen() -> bool;
}
extern "C" {
    pub fn sapp_toggle_fullscreen();
}
extern "C" {
    pub fn sapp_show_mouse(show: bool);
}
extern "C" {
    pub fn sapp_mouse_shown() -> bool;
}
extern "C" {
    pub fn sapp_lock_mouse(lock: bool);
}
extern "C" {
    pub fn sapp_mouse_locked() -> bool;
}
extern "C" {
    pub fn sapp_userdata() -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_query_desc() -> sapp_desc;
}
extern "C" {
    pub fn sapp_request_quit();
}
extern "C" {
    pub fn sapp_cancel_quit();
}
extern "C" {
    pub fn sapp_quit();
}
extern "C" {
    pub fn sapp_consume_event();
}
extern "C" {
    pub fn sapp_frame_count() -> u64;
}
extern "C" {
    pub fn sapp_set_clipboard_string(str_: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn sapp_get_clipboard_string() -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sapp_set_window_title(str_: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn sapp_get_num_dropped_files() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_get_dropped_file_path(
        index: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sapp_run(desc: *const sapp_desc);
}
extern "C" {
    pub fn sapp_gles2() -> bool;
}
extern "C" {
    pub fn sapp_html5_ask_leave_site(ask: bool);
}
extern "C" {
    pub fn sapp_html5_get_dropped_file_size(index: ::std::os::raw::c_int) -> u32;
}
extern "C" {
    pub fn sapp_html5_fetch_dropped_file(request: *const sapp_html5_fetch_request);
}
extern "C" {
    pub fn sapp_metal_get_device() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_metal_get_renderpass_descriptor() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_metal_get_drawable() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_macos_get_window() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_ios_get_window() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_device() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_device_context() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_render_target_view() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_depth_stencil_view() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_win32_get_hwnd() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_wgpu_get_device() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_wgpu_get_render_view() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_wgpu_get_resolve_view() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_wgpu_get_depth_stencil_view() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_android_get_native_activity() -> *const ::std::os::raw::c_void;
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
    pub gp_offset: ::std::os::raw::c_uint,
    pub fp_offset: ::std::os::raw::c_uint,
    pub overflow_arg_area: *mut ::std::os::raw::c_void,
    pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout___va_list_tag() {
    assert_eq!(
        ::std::mem::size_of::<__va_list_tag>(),
        24usize,
        concat!("Size of: ", stringify!(__va_list_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<__va_list_tag>(),
        8usize,
        concat!("Alignment of ", stringify!(__va_list_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(gp_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(fp_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(overflow_arg_area)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(reg_save_area)
        )
    );
}
impl Default for __va_list_tag {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
