use crate::ffi;
use crate::ptr::{NonNullConst, NonNullMut, Opaque};
extern "C" {
pub fn gfxd_target(ucode: Option<gfxd_ucode_t>);
pub fn gfxd_endian(endian: Endian, wordsize: ffi::c_int);
pub fn gfxd_dynamic(arg: Option<NonNullConst<ffi::c_char>>);
pub fn gfxd_enable(cap: FeatureOption);
pub fn gfxd_disable(cap: FeatureOption);
pub fn gfxd_udata_set(ptr: Option<NonNullMut<ffi::c_void>>);
pub fn gfxd_udata_get() -> Option<NonNullMut<ffi::c_void>>;
}
#[repr(C)]
pub struct gfxd_ucode {
_data: Opaque,
}
pub type gfxd_ucode_t = NonNullConst<gfxd_ucode>;
extern "C" {
pub static gfxd_f3d: gfxd_ucode_t;
pub static gfxd_f3db: gfxd_ucode_t;
pub static gfxd_f3dex: gfxd_ucode_t;
pub static gfxd_f3dexb: gfxd_ucode_t;
pub static gfxd_f3dex2: gfxd_ucode_t;
}
pub const gfxd_endian_big: Endian = Endian::gfxd_endian_big;
pub const gfxd_endian_little: Endian = Endian::gfxd_endian_little;
pub const gfxd_endian_host: Endian = Endian::gfxd_endian_host;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum Endian {
gfxd_endian_big = 0,
gfxd_endian_little = 1,
gfxd_endian_host = 2,
}
pub const gfxd_stop_on_invalid: FeatureOption = FeatureOption::gfxd_stop_on_invalid;
pub const gfxd_stop_on_end: FeatureOption = FeatureOption::gfxd_stop_on_end;
pub const gfxd_emit_dec_color: FeatureOption = FeatureOption::gfxd_emit_dec_color;
pub const gfxd_emit_q_macro: FeatureOption = FeatureOption::gfxd_emit_q_macro;
pub const gfxd_emit_ext_macro: FeatureOption = FeatureOption::gfxd_emit_ext_macro;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum FeatureOption {
gfxd_stop_on_invalid = 0,
gfxd_stop_on_end = 1,
gfxd_emit_dec_color = 2,
gfxd_emit_q_macro = 3,
gfxd_emit_ext_macro = 4,
}