intel_tex 0.1.4

Rust bindings for Intel's ISPC texture compressor.
Documentation
#[allow(
    non_camel_case_types,
    dead_code,
    non_upper_case_globals,
    non_snake_case,
    improper_ctypes
)]
#[allow(clippy::unreadable_literal)]
pub mod kernel {
    /* automatically generated by rust-bindgen */

    pub const _STDINT_H: u32 = 1;
    pub const _FEATURES_H: u32 = 1;
    pub const _DEFAULT_SOURCE: u32 = 1;
    pub const __USE_ISOC11: u32 = 1;
    pub const __USE_ISOC99: u32 = 1;
    pub const __USE_ISOC95: u32 = 1;
    pub const __USE_POSIX_IMPLICITLY: u32 = 1;
    pub const _POSIX_SOURCE: u32 = 1;
    pub const _POSIX_C_SOURCE: u32 = 200809;
    pub const __USE_POSIX: u32 = 1;
    pub const __USE_POSIX2: u32 = 1;
    pub const __USE_POSIX199309: u32 = 1;
    pub const __USE_POSIX199506: u32 = 1;
    pub const __USE_XOPEN2K: u32 = 1;
    pub const __USE_XOPEN2K8: u32 = 1;
    pub const _ATFILE_SOURCE: u32 = 1;
    pub const __USE_MISC: u32 = 1;
    pub const __USE_ATFILE: u32 = 1;
    pub const __USE_FORTIFY_LEVEL: u32 = 0;
    pub const _STDC_PREDEF_H: u32 = 1;
    pub const __STDC_IEC_559__: u32 = 1;
    pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
    pub const __STDC_ISO_10646__: u32 = 201605;
    pub const __STDC_NO_THREADS__: u32 = 1;
    pub const __GNU_LIBRARY__: u32 = 6;
    pub const __GLIBC__: u32 = 2;
    pub const __GLIBC_MINOR__: u32 = 24;
    pub const _SYS_CDEFS_H: u32 = 1;
    pub const __WORDSIZE: u32 = 64;
    pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
    pub const __SYSCALL_WORDSIZE: u32 = 64;
    pub const _BITS_WCHAR_H: u32 = 1;
    pub const INT8_MIN: i32 = -128;
    pub const INT16_MIN: i32 = -32768;
    pub const INT32_MIN: i32 = -2147483648;
    pub const INT8_MAX: u32 = 127;
    pub const INT16_MAX: u32 = 32767;
    pub const INT32_MAX: u32 = 2147483647;
    pub const UINT8_MAX: u32 = 255;
    pub const UINT16_MAX: u32 = 65535;
    pub const UINT32_MAX: u32 = 4294967295;
    pub const INT_LEAST8_MIN: i32 = -128;
    pub const INT_LEAST16_MIN: i32 = -32768;
    pub const INT_LEAST32_MIN: i32 = -2147483648;
    pub const INT_LEAST8_MAX: u32 = 127;
    pub const INT_LEAST16_MAX: u32 = 32767;
    pub const INT_LEAST32_MAX: u32 = 2147483647;
    pub const UINT_LEAST8_MAX: u32 = 255;
    pub const UINT_LEAST16_MAX: u32 = 65535;
    pub const UINT_LEAST32_MAX: u32 = 4294967295;
    pub const INT_FAST8_MIN: i32 = -128;
    pub const INT_FAST16_MIN: i64 = -9223372036854775808;
    pub const INT_FAST32_MIN: i64 = -9223372036854775808;
    pub const INT_FAST8_MAX: u32 = 127;
    pub const INT_FAST16_MAX: u64 = 9223372036854775807;
    pub const INT_FAST32_MAX: u64 = 9223372036854775807;
    pub const UINT_FAST8_MAX: u32 = 255;
    pub const UINT_FAST16_MAX: i32 = -1;
    pub const UINT_FAST32_MAX: i32 = -1;
    pub const INTPTR_MIN: i64 = -9223372036854775808;
    pub const INTPTR_MAX: u64 = 9223372036854775807;
    pub const UINTPTR_MAX: i32 = -1;
    pub const PTRDIFF_MIN: i64 = -9223372036854775808;
    pub const PTRDIFF_MAX: u64 = 9223372036854775807;
    pub const SIG_ATOMIC_MIN: i32 = -2147483648;
    pub const SIG_ATOMIC_MAX: u32 = 2147483647;
    pub const SIZE_MAX: i32 = -1;
    pub const WINT_MIN: u32 = 0;
    pub const WINT_MAX: u32 = 4294967295;
    pub const true_: u32 = 1;
    pub const false_: u32 = 0;
    pub const __bool_true_false_are_defined: u32 = 1;
    pub type int_least8_t = ::std::os::raw::c_schar;
    pub type int_least16_t = ::std::os::raw::c_short;
    pub type int_least32_t = ::std::os::raw::c_int;
    pub type int_least64_t = ::std::os::raw::c_long;
    pub type uint_least8_t = ::std::os::raw::c_uchar;
    pub type uint_least16_t = ::std::os::raw::c_ushort;
    pub type uint_least32_t = ::std::os::raw::c_uint;
    pub type uint_least64_t = ::std::os::raw::c_ulong;
    pub type int_fast8_t = ::std::os::raw::c_schar;
    pub type int_fast16_t = ::std::os::raw::c_long;
    pub type int_fast32_t = ::std::os::raw::c_long;
    pub type int_fast64_t = ::std::os::raw::c_long;
    pub type uint_fast8_t = ::std::os::raw::c_uchar;
    pub type uint_fast16_t = ::std::os::raw::c_ulong;
    pub type uint_fast32_t = ::std::os::raw::c_ulong;
    pub type uint_fast64_t = ::std::os::raw::c_ulong;
    pub type intmax_t = ::std::os::raw::c_long;
    pub type uintmax_t = ::std::os::raw::c_ulong;
    
    #[repr(C)]
    #[derive(Debug, Copy, Clone)]
    pub struct rgba_surface {
        pub ptr: *mut u8,
        pub width: i32,
        pub height: i32,
        pub stride: i32,
    }

    #[repr(C)]
    #[derive(Debug, Copy, Clone)]
    pub struct bc6h_enc_settings {
        pub slow_mode: bool,
        pub fast_mode: bool,
        pub refineIterations_1p: i32,
        pub refineIterations_2p: i32,
        pub fastSkipTreshold: i32,
    }

    #[repr(C)]
    #[derive(Debug, Copy, Clone)]
    pub struct bc7_enc_settings {
        pub mode_selection: [bool; 4usize],
        pub refineIterations: [i32; 8usize],
        pub skip_mode2: bool,
        pub fastSkipTreshold_mode1: i32,
        pub fastSkipTreshold_mode3: i32,
        pub fastSkipTreshold_mode7: i32,
        pub mode45_channel0: i32,
        pub refineIterations_channel: i32,
        pub channels: i32,
    }

    #[repr(C)]
    #[derive(Debug, Copy, Clone)]
    pub struct etc_enc_settings {
        pub fastSkipTreshold: i32,
    }

    extern "C" {
        pub fn CompressBlocksBC1_ispc(src: *mut rgba_surface, dst: *mut u8);
    }

    extern "C" {
        pub fn CompressBlocksBC3_ispc(src: *mut rgba_surface, dst: *mut u8);
    }

    extern "C" {
        pub fn CompressBlocksBC6H_ispc(
            src: *mut rgba_surface,
            dst: *mut u8,
            settings: *mut bc6h_enc_settings,
        );
    }

    extern "C" {
        pub fn CompressBlocksBC7_ispc(
            src: *mut rgba_surface,
            dst: *mut u8,
            settings: *mut bc7_enc_settings,
        );
    }

    extern "C" {
        pub fn CompressBlocksETC1_ispc(
            src: *mut rgba_surface,
            dst: *mut u8,
            settings: *mut etc_enc_settings,
        );
    }
}