/* automatically generated by rust-bindgen 0.55.1 */

#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage, Align> {
    storage: Storage,
    align: [Align; 0],
}
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
    #[inline]
    pub const fn new(storage: Storage) -> Self {
        Self { storage, align: [] }
    }
}
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
where
    Storage: AsRef<[u8]> + AsMut<[u8]>,
{
    #[inline]
    pub fn get_bit(&self, index: usize) -> bool {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = self.storage.as_ref()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        byte & mask == mask
    }
    #[inline]
    pub fn set_bit(&mut self, index: usize, val: bool) {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = &mut self.storage.as_mut()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        if val {
            *byte |= mask;
        } else {
            *byte &= !mask;
        }
    }
    #[inline]
    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        let mut val = 0;
        for i in 0..(bit_width as usize) {
            if self.get_bit(i + bit_offset) {
                let index = if cfg!(target_endian = "big") {
                    bit_width as usize - 1 - i
                } else {
                    i
                };
                val |= 1 << index;
            }
        }
        val
    }
    #[inline]
    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        for i in 0..(bit_width as usize) {
            let mask = 1 << i;
            let val_bit_is_set = val & mask == mask;
            let index = if cfg!(target_endian = "big") {
                bit_width as usize - 1 - i
            } else {
                i
            };
            self.set_bit(index + bit_offset, val_bit_is_set);
        }
    }
}
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::std::marker::PhantomData, [])
    }
    #[inline]
    pub fn as_ptr(&self) -> *const T {
        self as *const _ as *const T
    }
    #[inline]
    pub fn as_mut_ptr(&mut self) -> *mut T {
        self as *mut _ as *mut T
    }
    #[inline]
    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
        ::std::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
pub const __GNUC_VA_LIST: u32 = 1;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const __bool_true_false_are_defined: u32 = 1;
pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
pub const _SAL_VERSION: u32 = 20;
pub const __SAL_H_VERSION: u32 = 180000000;
pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
pub const _CRT_PACKING: u32 = 8;
pub const _HAS_EXCEPTIONS: u32 = 1;
pub const _STL_LANG: u32 = 0;
pub const _HAS_CXX17: u32 = 0;
pub const _HAS_CXX20: u32 = 0;
pub const _HAS_NODISCARD: u32 = 0;
pub const WCHAR_MIN: u32 = 0;
pub const WCHAR_MAX: u32 = 65535;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 65535;
pub const TM_ALLOCATOR_API_NAME: &'static [u8; 17usize] = b"tm_allocator_api\0";
pub const TM_API_REGISTRY_API_NAME: &'static [u8; 20usize] = b"tm_api_registry_api\0";
pub const TM_APPLICATION_API_NAME: &'static [u8; 19usize] = b"tm_application_api\0";
pub const TM_ASSET_DATABASE_API_NAME: &'static [u8; 22usize] = b"tm_asset_database_api\0";
pub const TM_ASSET_IO_API_NAME: &'static [u8; 16usize] = b"tm_asset_io_api\0";
pub const TM_BASE_64_API_NAME: &'static [u8; 15usize] = b"tm_base_64_api\0";
pub const TM_BUDDY_ALLOCATOR_RAW_API_NAME: &'static [u8; 27usize] = b"tm_buddy_allocator_raw_api\0";
pub const TM_BUDDY_ALLOCATOR_API_NAME: &'static [u8; 23usize] = b"tm_buddy_allocator_api\0";
pub const TM_BUFFERS_API_NAME: &'static [u8; 15usize] = b"tm_buffers_api\0";
pub const TM_BUFFER_FORMAT_API_NAME: &'static [u8; 21usize] = b"tm_buffer_format_api\0";
pub const TM_CAMERA_API_NAME: &'static [u8; 14usize] = b"tm_camera_api\0";
pub const TM_COLLABORATION_API_NAME: &'static [u8; 21usize] = b"tm_collaboration_api\0";
pub const TM_COLLABORATION_P2P_API_NAME: &'static [u8; 25usize] = b"tm_collaboration_p2p_api\0";
pub const TM_CONFIG_API_NAME: &'static [u8; 14usize] = b"tm_config_api\0";
pub const TM_CORE_ASSET_INTERFACE_NAME: &'static [u8; 16usize] = b"tm_core_asset_i\0";
pub const TM_CORE_API_NAME: &'static [u8; 12usize] = b"tm_core_api\0";
pub const TM_CORE_IMPORTER_API_NAME: &'static [u8; 21usize] = b"tm_core_importer_api\0";
pub const TM_CRASH_RECOVERY_API_NAME: &'static [u8; 22usize] = b"tm_crash_recovery_api\0";
pub const TM_ERROR_API_NAME: &'static [u8; 13usize] = b"tm_error_api\0";
pub const TM_FEATURE_FLAGS_API_NAME: &'static [u8; 17usize] = b"tm_feature_flags\0";
pub const TM_GIT_IGNORE_API_NAME: &'static [u8; 18usize] = b"tm_git_ignore_api\0";
pub const TM_IMAGE_LOADER_API_NAME: &'static [u8; 20usize] = b"tm_image_loader_api\0";
pub const TM_INPUT_API_NAME: &'static [u8; 13usize] = b"tm_input_api\0";
pub const TM_INTEGRATION_TEST_INTERFACE_NAME: &'static [u8; 22usize] = b"tm_integration_test_i\0";
pub const TM_JOB_SYSTEM_API_NAME: &'static [u8; 18usize] = b"tm_job_system_api\0";
pub const TM_JSON_ERROR_STRING_LENGTH: u32 = 79;
pub const TM_JSON_API_NAME: &'static [u8; 12usize] = b"tm_json_api\0";
pub const TM_LOCALIZER_STRINGS_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_localizer_strings_i\0";
pub const TM_LOCALIZER_API_NAME: &'static [u8; 17usize] = b"tm_localizer_api\0";
pub const TM_LOGGER_API_NAME: &'static [u8; 14usize] = b"tm_logger_api\0";
pub const TM_LZ4_API_NAME: &'static [u8; 11usize] = b"tm_lz4_api\0";
pub const TM_MATH_API_NAME: &'static [u8; 12usize] = b"tm_math_api\0";
pub const TM_MEMORY_TRACKER_SCOPE__NONE: u32 = 4294967295;
pub const TM_MEMORY_TRACKER_API_NAME: &'static [u8; 22usize] = b"tm_memory_tracker_api\0";
pub const TM_OS_API_NAME: &'static [u8; 10usize] = b"tm_os_api\0";
pub const TM_DIRECTORY_SEPARATOR: u8 = 47u8;
pub const TM_PATH_API_NAME: &'static [u8; 12usize] = b"tm_path_api\0";
pub const TM_PLUGINS_API_NAME: &'static [u8; 15usize] = b"tm_plugins_api\0";
pub const TM_PLUGIN_INIT_INTERFACE_NAME: &'static [u8; 17usize] = b"tm_plugin_init_i\0";
pub const TM_PLUGIN_SHUTDOWN_INTERFACE_NAME: &'static [u8; 21usize] = b"tm_plugin_shutdown_i\0";
pub const TM_PLUGIN_TICK_INTERFACE_NAME: &'static [u8; 17usize] = b"tm_plugin_tick_i\0";
pub const TM_PLUGIN_SET_THE_TRUTH_INTERFACE_NAME: &'static [u8; 26usize] =
    b"tm_plugin_set_the_truth_i\0";
pub const TM_PROFILER_API_NAME: &'static [u8; 16usize] = b"tm_profiler_api\0";
pub const TM_PROGRESS_REPORT_API_NAME: &'static [u8; 23usize] = b"tm_progress_report_api\0";
pub const TM_RANDOM_API_NAME: &'static [u8; 14usize] = b"tm_random_api\0";
pub const TM_RUNTIME_DATA_REPOSITORY_API_NAME: &'static [u8; 31usize] =
    b"tm_runtime_data_repository_api\0";
pub const SHA1_DIGEST_SIZE: u32 = 20;
pub const TM_STRING_REPOSITORY_API_NAME: &'static [u8; 25usize] = b"tm_string_repository_api\0";
pub const TM_TASK_SYSTEM_API_NAME: &'static [u8; 19usize] = b"tm_task_system_api\0";
pub const TM_TEMP_ALLOCATOR_API_NAME: &'static [u8; 22usize] = b"tm_temp_allocator_api\0";
pub const TM_THE_TRUTH_PROPERTY_NAME_LENGTH: u32 = 63;
pub const TM_THE_TRUTH_CREATE_TYPES_INTERFACE_NAME: &'static [u8; 28usize] =
    b"tm_the_truth_create_types_i\0";
pub const TM_THE_TRUTH_API_NAME: &'static [u8; 17usize] = b"tm_the_truth_api\0";
pub const TM_TT_TYPE__ASSET_ROOT: &'static [u8; 14usize] = b"tm_asset_root\0";
pub const TM_TT_TYPE__ASSET: &'static [u8; 9usize] = b"tm_asset\0";
pub const TM_TT_TYPE__ASSET_DIRECTORY: &'static [u8; 19usize] = b"tm_asset_directory\0";
pub const TM_TT_TYPE__ASSET_TAG: &'static [u8; 13usize] = b"tm_asset_tag\0";
pub const TM_ASSET_TAG_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_asset_tag_interface\0";
pub const TM_THE_TRUTH_ASSETS_API_NAME: &'static [u8; 24usize] = b"tm_the_truth_assets_api\0";
pub const TM_THE_TRUTH_MIGRATION_INTERFACE_NAME: &'static [u8; 25usize] =
    b"tm_the_truth_migration_i\0";
pub const TM_THE_TRUTH_MIGRATION_API_NAME: &'static [u8; 27usize] = b"tm_the_truth_migration_api\0";
pub const TM_TT_TYPE__BOOL: &'static [u8; 8usize] = b"tm_bool\0";
pub const TM_TT_TYPE__UINT32_T: &'static [u8; 12usize] = b"tm_uint32_t\0";
pub const TM_TT_TYPE__UINT64_T: &'static [u8; 12usize] = b"tm_uint64_t\0";
pub const TM_TT_TYPE__FLOAT: &'static [u8; 9usize] = b"tm_float\0";
pub const TM_TT_TYPE__DOUBLE: &'static [u8; 10usize] = b"tm_double\0";
pub const TM_TT_TYPE__STRING: &'static [u8; 10usize] = b"tm_string\0";
pub const TM_TT_TYPE__VEC2: &'static [u8; 10usize] = b"tm_vec2_t\0";
pub const TM_TT_TYPE__VEC3: &'static [u8; 10usize] = b"tm_vec3_t\0";
pub const TM_TT_TYPE__VEC4: &'static [u8; 10usize] = b"tm_vec4_t\0";
pub const TM_TT_TYPE__POSITION: &'static [u8; 12usize] = b"tm_position\0";
pub const TM_TT_TYPE__ROTATION: &'static [u8; 12usize] = b"tm_rotation\0";
pub const TM_TT_TYPE__SCALE: &'static [u8; 9usize] = b"tm_scale\0";
pub const TM_TT_TYPE__COLOR_RGB: &'static [u8; 13usize] = b"tm_color_rgb\0";
pub const TM_TT_TYPE__COLOR_RGBA: &'static [u8; 14usize] = b"tm_color_rgba\0";
pub const TM_TT_TYPE__RECT: &'static [u8; 10usize] = b"tm_rect_t\0";
pub const TM_THE_TRUTH_COMMON_TYPES_API_NAME: &'static [u8; 30usize] =
    b"tm_the_truth_common_types_api\0";
pub const TM_UNICODE_API_NAME: &'static [u8; 15usize] = b"tm_unicode_api\0";
pub const tm_unicode__dotted_cross: &'static [u8; 4usize] = b"\xE2\x81\x9C\0";
pub const tm_unicode__rightwards_arrow: &'static [u8; 4usize] = b"\xE2\x86\x92\0";
pub const tm_unicode__empty_set: &'static [u8; 4usize] = b"\xE2\x88\x85\0";
pub const tm_unicode__black_down_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x96\xBC\0";
pub const tm_unicode__black_up_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x96\xB2\0";
pub const tm_unicode__black_right_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x96\xB6\0";
pub const tm_unicode__black_left_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x97\x80\0";
pub const tm_unicode__die_face_1: &'static [u8; 4usize] = b"\xE2\x9A\x80\0";
pub const tm_unicode__neuter: &'static [u8; 4usize] = b"\xE2\x9A\xB2\0";
pub const tm_unicode__check_mark: &'static [u8; 4usize] = b"\xE2\x9C\x93\0";
pub const tm_unicode__multiplication_x: &'static [u8; 4usize] = b"\xE2\x9C\x95\0";
pub const tm_unicode__heavy_multiplication_x: &'static [u8; 4usize] = b"\xE2\x9C\x96\0";
pub const tm_unicode__earth: &'static [u8; 5usize] = b"\xF0\x9F\x8C\x8F\0";
pub const tm_unicode__house: &'static [u8; 5usize] = b"\xF0\x9F\x8F\xA0\0";
pub const tm_unicode__original_of: &'static [u8; 4usize] = b"\xE2\x8A\xB6\0";
pub const tm_unicode__image_of: &'static [u8; 4usize] = b"\xE2\x8A\xB7\0";
pub const tm_unicode__circle_dot_operator: &'static [u8; 4usize] = b"\xE2\x8A\x99\0";
pub const tm_unicode__triangular_ruler: &'static [u8; 5usize] = b"\xF0\x9F\x93\x90\0";
pub const tm_unicode__straight_ruler: &'static [u8; 5usize] = b"\xF0\x9F\x93\x8F\0";
pub const tm_unicode__maximize: &'static [u8; 5usize] = b"\xF0\x9F\x97\x96\0";
pub const tm_unicode__overlap: &'static [u8; 5usize] = b"\xF0\x9F\x97\x97\0";
pub const tm_unicode__plus_minus: &'static [u8; 3usize] = b"\xC2\xB1\0";
pub const tm_unicode__camera: &'static [u8; 5usize] = b"\xF0\x9F\x93\xB7\0";
pub const tm_unicode__electric_light_blub: &'static [u8; 5usize] = b"\xF0\x9F\x92\xA1\0";
pub const tm_unicode__horizontal_ellipsis: &'static [u8; 4usize] = b"\xE2\x80\xA6\0";
pub const tm_unicode__heavy_plus_sign: &'static [u8; 4usize] = b"\xE2\x9E\x95\0";
pub const tm_unicode__rightwards_arrow_to_bar: &'static [u8; 4usize] = b"\xE2\x87\xA5\0";
pub const tm_unicode__right_angle_with_arc: &'static [u8; 4usize] = b"\xE2\x8A\xBE\0";
pub const tm_unicode__refresh: &'static [u8; 5usize] = b"\xF0\x9F\x97\x98\0";
pub const tm_unicode__wrench_hammer: &'static [u8; 5usize] = b"\xF0\x9F\x9B\xA0\0";
pub const tm_unicode__wrench: &'static [u8; 5usize] = b"\xF0\x9F\x94\xA7\0";
pub const tm_unicode__zzz: &'static [u8; 5usize] = b"\xF0\x9F\x92\xA4\0";
pub const tm_unicode__magnifying_glass_left: &'static [u8; 5usize] = b"\xF0\x9F\x94\x8D\0";
pub const tm_unicode__eye: &'static [u8; 5usize] = b"\xF0\x9F\x91\x81\0";
pub const tm_unicode__gear: &'static [u8; 4usize] = b"\xE2\x9A\x99\0";
pub const tm_unicode__copyright: &'static [u8; 3usize] = b"\xC2\xA9\0";
pub const tm_unicode__leftwards_heavy_arrow: &'static [u8; 5usize] = b"\xF0\x9F\xA1\x84\0";
pub const tm_unicode__rightwards_heavy_arrow: &'static [u8; 5usize] = b"\xF0\x9F\xA1\x86\0";
pub const TM_UNIT_TEST_INTERFACE_NAME: &'static [u8; 15usize] = b"tm_unit_test_i\0";
pub const TM_VISIBILITY_FLAGS_EDITOR_INTERFACE_NAME: &'static [u8; 28usize] =
    b"tm_visibility_editor_name_i\0";
pub const TM_VISIBILITY_FLAGS_CONTEXT_INTERFACE_NAME: &'static [u8; 24usize] =
    b"tm_visibility_context_o\0";
pub const TM_VISIBILITY_FLAGS_API_NAME: &'static [u8; 24usize] = b"tm_visibility_flags_api\0";
pub const TM_TT_TYPE__VISIBILITY_FLAG: &'static [u8; 19usize] = b"tm_visibility_flag\0";
pub const TM_WEB_SOCKET_PROTOCOL_API_NAME: &'static [u8; 27usize] = b"tm_web_socket_protocol_api\0";
pub const TM_WEB_TALKER_API_NAME: &'static [u8; 18usize] = b"tm_web_talker_api\0";
pub const TM_ANALYTICS_API_NAME: &'static [u8; 17usize] = b"tm_analytics_api\0";
pub const TM_ANIMATION_BLENDER_API_NAME: &'static [u8; 25usize] = b"tm_animation_blender_api\0";
pub const TM_TT_TYPE__ANIMATION_CLIP: &'static [u8; 18usize] = b"tm_animation_clip\0";
pub const TM_ANIMATION_PLAYER_API_NAME: &'static [u8; 24usize] = b"tm_animation_player_api\0";
pub const TM_TT_TYPE__ANIMATION_SIMPLE_PLAYER_COMPONENT: &'static [u8; 37usize] =
    b"tm_animation_simple_player_component\0";
pub const TM_ANIMATION_SIMPLE_PLAYER_COMPONENT_API_NAME: &'static [u8; 41usize] =
    b"tm_animation_simple_player_component_api\0";
pub const TM_TT_TYPE__ASM_REGULAR_STATE: &'static [u8; 21usize] = b"tm_asm_regular_state\0";
pub const TM_TT_TYPE__ASM_RANDOM_STATE: &'static [u8; 20usize] = b"tm_asm_random_state\0";
pub const TM_TT_TYPE__ASM_RANDOM_STATE_ANIMATION: &'static [u8; 30usize] =
    b"tm_asm_random_state_animation\0";
pub const TM_TT_TYPE__ASM_BLEND_STATE: &'static [u8; 19usize] = b"tm_asm_blend_state\0";
pub const TM_TT_TYPE__ASM_BLEND_STATE_ANIMATION: &'static [u8; 29usize] =
    b"tm_asm_blend_state_animation\0";
pub const TM_TT_TYPE__ASM_EMPTY_STATE: &'static [u8; 19usize] = b"tm_asm_empty_state\0";
pub const TM_TT_TYPE__ASM_REGULAR_TRANSITION: &'static [u8; 26usize] =
    b"tm_asm_regular_transition\0";
pub const TM_TT_TYPE__ASM_LAYER: &'static [u8; 14usize] = b"tm_asm_layer \0";
pub const TM_TT_TYPE__ASM_EVENT: &'static [u8; 14usize] = b"tm_asm_event \0";
pub const TM_TT_TYPE__ASM_VARIABLE: &'static [u8; 17usize] = b"tm_asm_variable \0";
pub const TM_TT_TYPE__ASM_BLEND_SET_WEIGHT: &'static [u8; 24usize] = b"tm_asm_blend_set_weight\0";
pub const TM_TT_TYPE__ASM_BLEND_SET: &'static [u8; 17usize] = b"tm_asm_blend_set\0";
pub const TM_TT_TYPE__ASM_MOTION_MIXER: &'static [u8; 20usize] = b"tm_asm_motion_mixer\0";
pub const TM_TT_TYPE__ASM_MOTION_MIXER_SLIDER: &'static [u8; 27usize] =
    b"tm_asm_motion_mixer_slider\0";
pub const TM_TT_TYPE__ASM_MOTION_MIXER_BUTTON: &'static [u8; 27usize] =
    b"tm_asm_motion_mixer_button\0";
pub const TM_TT_TYPE__ASM_MOTION_MIXER_VARIABLE_KEY: &'static [u8; 33usize] =
    b"tm_asm_motion_mixer_variable_key\0";
pub const TM_TT_TYPE__ASM_MOTION_MIXER_EVENT_KEY: &'static [u8; 30usize] =
    b"tm_asm_motion_mixer_event_key\0";
pub const TM_TT_TYPE__ANIMATION_STATE_MACHINE: &'static [u8; 27usize] =
    b"tm_animation_state_machine\0";
pub const TM_ANIMATION_STATE_MACHINE_API_NAME: &'static [u8; 31usize] =
    b"tm_animation_state_machine_api\0";
pub const TM_TT_TYPE__ANIMATION_STATE_MACHINE_COMPONENT: &'static [u8; 37usize] =
    b"tm_animation_state_machine_component\0";
pub const TM_ANIMATION_STATE_MACHINE_COMPONENT_API_NAME: &'static [u8; 41usize] =
    b"tm_animation_state_machine_component_api\0";
pub const TM_BONE_TRANSLATION_API_NAME: &'static [u8; 24usize] = b"tm_bone_translation_api\0";
pub const TM_EXPRESSION_LANGUAGE_API_NAME: &'static [u8; 27usize] = b"tm_expression_language_api\0";
pub const TM_STATE_GRAPH_API_NAME: &'static [u8; 19usize] = b"tm_state_graph_api\0";
pub const TM_ASSIMP_API_NAME: &'static [u8; 14usize] = b"tm_assimp_api\0";
pub const TM_MIXER_API_NAME: &'static [u8; 13usize] = b"tm_mixer_api\0";
pub const TM_SOUND_BACKEND_API_NAME: &'static [u8; 21usize] = b"tm_sound_backend_api\0";
pub const TM_TT_TYPE__SOUND_SOURCE_COMPONENT: &'static [u8; 26usize] =
    b"tm_sound_source_component\0";
pub const TM_TONE_GENERATOR_API_NAME: &'static [u8; 22usize] = b"tm_tone_generator_api\0";
pub const TM_TT_TYPE__WAV: &'static [u8; 7usize] = b"tm_wav\0";
pub const TM_WAV_API_NAME: &'static [u8; 11usize] = b"tm_wav_api\0";
pub const TM_CACHE_TAG_ALL: u32 = 4294967295;
pub const TM_CACHE_MANAGER_API_NAME: &'static [u8; 21usize] = b"tm_cache_manager_api\0";
pub const TM_COLLABORATION_DISCORD_API_NAME: &'static [u8; 29usize] =
    b"tm_collaboration_discord_api\0";
pub const TM_CREATION_GRAPH_NODE_INTERFACE_NAME: &'static [u8; 33usize] =
    b"tm_creation_graph_node_interface\0";
pub const TM_CREATION_GRAPH_IO_TYPE_INTERFACE_NAME: &'static [u8; 36usize] =
    b"tm_creation_graph_io_type_interface\0";
pub const TM_CREATION_GRAPH_OUTPUT_NODE_TYPE_INTERFACE_NAME: &'static [u8; 45usize] =
    b"tm_creation_graph_output_node_type_interface\0";
pub const TM_CREATION_GRAPH_COMPILE_DATA_TO_WIRE_INTERFACE_NAME: &'static [u8; 49usize] =
    b"tm_creation_graph_compile_data_to_wire_interface\0";
pub const TM_TT_TYPE__CREATION_GRAPH: &'static [u8; 18usize] = b"tm_creation_graph\0";
pub const TM_TT_TYPE__CREATION_GRAPH__RESOURCE_REFERENCE: &'static [u8; 37usize] =
    b"tm_creation_graph_resource_reference\0";
pub const TM_CREATION_GRAPH_API_NAME: &'static [u8; 22usize] = b"tm_creation_graph_api\0";
pub const TM_CREATION_GRAPH_INTERPRETER_API_NAME: &'static [u8; 34usize] =
    b"tm_creation_graph_interpreter_api\0";
pub const TM_TT_TYPE__GRAPH: &'static [u8; 9usize] = b"tm_graph\0";
pub const TM_TT_TYPE__GRAPH_NODE: &'static [u8; 14usize] = b"tm_graph_node\0";
pub const TM_TT_TYPE__GRAPH_CONNECTION: &'static [u8; 20usize] = b"tm_graph_connection\0";
pub const TM_TT_TYPE__GRAPH_DATA: &'static [u8; 14usize] = b"tm_graph_data\0";
pub const TM_TT_TYPE__GRAPH_COMMENT: &'static [u8; 17usize] = b"tm_graph_comment\0";
pub const TM_TT_TYPE__GRAPH_INTERFACE: &'static [u8; 19usize] = b"tm_graph_interface\0";
pub const TM_TT_TYPE__GRAPH_INPUT: &'static [u8; 15usize] = b"tm_graph_input\0";
pub const TM_TT_TYPE__GRAPH_OUTPUT: &'static [u8; 16usize] = b"tm_graph_output\0";
pub const TM_TT_TYPE__GRAPH_CACHED_NODE_RESULT: &'static [u8; 28usize] =
    b"tm_graph_cached_node_result\0";
pub const TM_TT_TYPE__GRAPH_SETTINGS: &'static [u8; 18usize] = b"tm_graph_settings\0";
pub const TM_GRAPH_DRAG_AND_DROP_INTERFACE_NAME: &'static [u8; 25usize] =
    b"tm_graph_drag_and_drop_i\0";
pub const TM_GRAPH_API_NAME: &'static [u8; 13usize] = b"tm_graph_api\0";
pub const TM_TT_TYPE__IMAGE_MIPMAP_SETTINGS: &'static [u8; 19usize] = b"tm_mipmap_settings\0";
pub const TM_TT_TYPE__IMAGE_DESCRIPTION: &'static [u8; 21usize] = b"tm_image_description\0";
pub const TM_TT_TYPE__IMAGE_ARCHIVE: &'static [u8; 17usize] = b"tm_image_archive\0";
pub const TM_CREATION_GRAPH__IMAGE__OUTPUT_NODE: &'static [u8; 13usize] = b"image_output\0";
pub const TM_CREATION_GRAPH__SHADER_INSTANCE_OUTPUT: &'static [u8; 26usize] =
    b"tm_shader_instance_output\0";
pub const TM_CREATION_GRAPH__BOUNDING_VOLUME: &'static [u8; 16usize] = b"bounding_volume\0";
pub const TM_CREATION_GRAPH__DRAW_CALL: &'static [u8; 9usize] = b"drawcall\0";
pub const TM_CRUNCH_API_NAME: &'static [u8; 14usize] = b"tm_crunch_api\0";
pub const TM_DCC_ASSET_API_NAME: &'static [u8; 17usize] = b"tm_dcc_asset_api\0";
pub const TM_TT_TYPE__DCC_ASSET_COMPONENT: &'static [u8; 23usize] = b"tm_dcc_asset_component\0";
pub const TM_DCC_ASSET_COMPONENT_API_NAME: &'static [u8; 27usize] = b"tm_dcc_asset_component_api\0";
pub const TM_TT_TYPE__DCC_ASSET_MESH__NODE_SETTINGS: &'static [u8; 32usize] =
    b"tm_dcc_asset_mesh_node_settings\0";
pub const TM_TT_TYPE__DCC_ASSET_IMAGE__NODE_SETTINGS: &'static [u8; 33usize] =
    b"tm_dcc_asset_image_node_settings\0";
pub const TM_TT_TYPE__DCC_ASSET_MATERIAL__NODE_SETTINGS: &'static [u8; 36usize] =
    b"tm_dcc_asset_material_node_settings\0";
pub const TM_DCC_ASSET_CREATION_GRAPH_API_NAME: &'static [u8; 32usize] =
    b"tm_dcc_asset_creation_graph_api\0";
pub const TM_DCC_ASSET_RENDERER_API_NAME: &'static [u8; 26usize] = b"tm_dcc_asset_renderer_api\0";
pub const TM_TT_TYPE__DCC_ASSET_POSITION: &'static [u8; 22usize] = b"tm_dcc_asset_position\0";
pub const TM_TT_TYPE__DCC_ASSET_ROTATION: &'static [u8; 22usize] = b"tm_dcc_asset_rotation\0";
pub const TM_TT_TYPE__DCC_ASSET_SCALE: &'static [u8; 19usize] = b"tm_dcc_asset_scale\0";
pub const TM_TT_TYPE__DCC_ASSET_COLOR_RGB: &'static [u8; 23usize] = b"tm_dcc_asset_color_rgb\0";
pub const TM_TT_TYPE__DCC_ASSET_COLOR_RGBA: &'static [u8; 24usize] = b"tm_dcc_asset_color_rgba\0";
pub const TM_TT_TYPE__DCC_ASSET_BUFFER: &'static [u8; 20usize] = b"tm_dcc_asset_buffer\0";
pub const TM_TT_TYPE__DCC_ASSET_CAMERA: &'static [u8; 20usize] = b"tm_dcc_asset_camera\0";
pub const TM_TT_TYPE__DCC_ASSET_LIGHT: &'static [u8; 19usize] = b"tm_dcc_asset_light\0";
pub const TM_TT_TYPE__DCC_ASSET_ACCESSOR: &'static [u8; 22usize] = b"tm_dcc_asset_accessor\0";
pub const TM_TT_TYPE__DCC_ASSET_ATTRIBUTE: &'static [u8; 23usize] = b"tm_dcc_asset_attribute\0";
pub const TM_TT_TYPE__DCC_ASSET_IMAGE: &'static [u8; 19usize] = b"tm_dcc_asset_image\0";
pub const TM_TT_TYPE__DCC_ASSET_TEXTURE: &'static [u8; 21usize] = b"tm_dcc_asset_texture\0";
pub const TM_TT_TYPE__DCC_ASSET_MATERIAL_PBR_MR: &'static [u8; 29usize] =
    b"tm_dcc_asset_material_pbr_mr\0";
pub const TM_TT_TYPE__DCC_ASSET_MATERIAL_PBR_SG: &'static [u8; 29usize] =
    b"tm_dcc_asset_material_pbr_sg\0";
pub const TM_TT_TYPE__DCC_ASSET_MATERIAL: &'static [u8; 22usize] = b"tm_dcc_asset_material\0";
pub const TM_TT_TYPE__DCC_ASSET_BONE: &'static [u8; 18usize] = b"tm_dcc_asset_bone\0";
pub const TM_TT_TYPE__DCC_ASSET_MESH: &'static [u8; 18usize] = b"tm_dcc_asset_mesh\0";
pub const TM_TT_TYPE__DCC_ASSET_NODE: &'static [u8; 18usize] = b"tm_dcc_asset_node\0";
pub const TM_TT_TYPE__DCC_ASSET_SCENE: &'static [u8; 19usize] = b"tm_dcc_asset_scene\0";
pub const TM_TT_TYPE__DCC_ASSET_NODE_ANIMATION: &'static [u8; 28usize] =
    b"tm_dcc_asset_node_animation\0";
pub const TM_TT_TYPE__DCC_ASSET_ANIMATION: &'static [u8; 23usize] = b"tm_dcc_asset_animation\0";
pub const TM_TT_TYPE__DCC_ASSET_EXTRACTED_RESOURCE: &'static [u8; 32usize] =
    b"tm_dcc_asset_extracted_resource\0";
pub const TM_TT_TYPE__DCC_ASSET_SETTINGS: &'static [u8; 22usize] = b"tm_dcc_asset_settings\0";
pub const TM_TT_TYPE__DCC_ASSET: &'static [u8; 13usize] = b"tm_dcc_asset\0";
pub const TM_TT_TYPE__ENTITY_RIGGER__COMPONENT: &'static [u8; 27usize] =
    b"tm_entity_rigger_component\0";
pub const TM_ENTITY_RIGGER_COMPONENT_API_NAME: &'static [u8; 25usize] =
    b"tm_entitiy_component_api\0";
pub const TM_TT_TYPE__DCC_IMPORT_SETTINGS: &'static [u8; 23usize] = b"tm_dcc_import_settings\0";
pub const TM_IMPORT_SETTINGS_API_NAME: &'static [u8; 23usize] = b"tm_import_settings_api\0";
pub const TM_DDS_IMAGE_LOADER_API_NAME: &'static [u8; 20usize] = b"tm_dds_image_loader\0";
pub const TM_TT_TYPE__BLOOM_COMPONENT: &'static [u8; 39usize] =
    b"tm_default_render_pipe_bloom_component\0";
pub const TM_DEFAULT_RENDER_PIPE_API_NAME: &'static [u8; 27usize] = b"tm_default_render_pipe_api\0";
pub const TM_DEFAULT_RENDER_PIPELINE_NAME: &'static [u8; 27usize] = b"TM Default Render Pipeline\0";
pub const TM_TT_TYPE__EXPOSURE_COMPONENT: &'static [u8; 42usize] =
    b"tm_default_render_pipe_exposure_component\0";
pub const TM_TT_TYPE__LIGHT_COMPONENT: &'static [u8; 39usize] =
    b"tm_default_render_pipe_light_component\0";
pub const TM_VOLUME_COMPONENT_API_NAME: &'static [u8; 24usize] = b"tm_volume_component_api\0";
pub const TM_TT_TYPE__VOLUME_COMPONENT: &'static [u8; 40usize] =
    b"tm_default_render_pipe_volume_component\0";
pub const TM_DXC_SHADER_COMPILER_API_NAME: &'static [u8; 27usize] = b"tm_dxc_shader_compiler_api\0";
pub const TM_TT_TYPE__ASSET_BROWSER: &'static [u8; 17usize] = b"tm_asset_browser\0";
pub const TM_ASSET_BROWSER_CREATE_ASSET_INTERFACE_NAME: &'static [u8; 32usize] =
    b"tm_asset_browser_create_asset_i\0";
pub const TM_ASSET_BROWSER_OPEN_ASSET_API_NAME: &'static [u8; 32usize] =
    b"tm_asset_browser_open_asset_api\0";
pub const TM_ASSET_BROWSER_ADD_ASSET_API_NAME: &'static [u8; 31usize] =
    b"tm_asset_browser_add_asset_api\0";
pub const TM_ASSET_BROWSER_SELECT_ASSET_API_NAME: &'static [u8; 34usize] =
    b"tm_asset_browser_select_asset_api\0";
pub const TM_ASSET_BROWSER_API_NAME: &'static [u8; 21usize] = b"tm_asset_browser_api\0";
pub const TM_PROFILER_VIEW_API_NAME: &'static [u8; 21usize] = b"tm_profiler_view_api\0";
pub const TM_PROPERTIES_VIEW_API_NAME: &'static [u8; 23usize] = b"tm_properties_view_api\0";
pub const TM_TREE_VIEW_API_NAME: &'static [u8; 17usize] = b"tm_tree_view_api\0";
pub const TM_UI_POPUP_ITEM_PICKER_API_NAME: &'static [u8; 28usize] =
    b"tm_ui_popup_item_picker_api\0";
pub const TM_TT_TYPE__CAMERA_COMPONENT: &'static [u8; 20usize] = b"tm_camera_component\0";
pub const TM_MAX_COMPONENTS_FOR_ENGINE: u32 = 16;
pub const TM_TT_TYPE__ENTITY: &'static [u8; 10usize] = b"tm_entity\0";
pub const TM_MAX_COMPONENTS_IN_CONTEXT: u32 = 1024;
pub const TM_ENTITY_SIMULATION_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_entity_simulation_i\0";
pub const TM_ENTITY_CREATE_COMPONENT_INTERFACE_NAME: &'static [u8; 29usize] =
    b"tm_entity_create_component_i\0";
pub const TM_ENTITY_HOT_RELOAD_COMPONENT_INTERFACE_NAME: &'static [u8; 33usize] =
    b"tm_entity_hot_reload_component_i\0";
pub const TM_ENTITY_HOT_RELOAD_SYSTEM_INTERFACE_NAME: &'static [u8; 30usize] =
    b"tm_entity_hot_reload_system_i\0";
pub const TM_ENTITY_API_NAME: &'static [u8; 14usize] = b"tm_entity_api\0";
pub const TM_TT_TYPE__LINK_COMPONENT: &'static [u8; 18usize] = b"tm_link_component\0";
pub const TM_LINK_COMPONENT_API_NAME: &'static [u8; 22usize] = b"tm_link_component_api\0";
pub const TM_TT_TYPE__OWNER_COMPONENT: &'static [u8; 19usize] = b"tm_owner_component\0";
pub const TM_OWNER_COMPONENT_API_NAME: &'static [u8; 23usize] = b"tm_owner_component_api\0";
pub const TM_TT_TYPE__SCENE_TREE_COMPONENT: &'static [u8; 24usize] = b"tm_scene_tree_component\0";
pub const TM_SCENE_TREE_COMPONENT_API_NAME: &'static [u8; 28usize] =
    b"tm_scene_tree_component_api\0";
pub const TM_TT_TYPE__TAG_COMPONENT: &'static [u8; 17usize] = b"tm_tag_component\0";
pub const TM_TT_TYPE__TAG: &'static [u8; 7usize] = b"tm_tag\0";
pub const TM_TAG_COMPONENT_API_NAME: &'static [u8; 21usize] = b"tm_tag_component_api\0";
pub const TM_TT_TYPE__TRANSFORM_COMPONENT: &'static [u8; 23usize] = b"tm_transform_component\0";
pub const TM_TRANSFORM_COMPONENT_API_NAME: &'static [u8; 27usize] = b"tm_transform_component_api\0";
pub const TM_GAMEPLAY_CONTEXT_API_NAME: &'static [u8; 24usize] = b"tm_gameplay_context_api\0";
pub const TM_GAMEPLAY_ENTITY_API_NAME: &'static [u8; 23usize] = b"tm_gameplay_entity_api\0";
pub const TM_GAMEPLAY_PHYSICS_API_NAME: &'static [u8; 24usize] = b"tm_gameplay_physics_api\0";
pub const TM_GAMEPLAY_API_NAME: &'static [u8; 16usize] = b"tm_gameplay_api\0";
pub const TM_GLTF_API_NAME: &'static [u8; 12usize] = b"tm_gltf_api\0";
pub const TM_GRAPH_SUBGRAPH_NODE_TYPE: &'static [u8; 17usize] = b"tm_subgraph_node\0";
pub const TM_GRAPH_SUBGRAPH_NODE_SETTINGS_TYPE: &'static [u8; 26usize] =
    b"tm_subgraph_node_settings\0";
pub const TM_GRAPH_INPUT_NODE_TYPE: &'static [u8; 14usize] = b"tm_input_node\0";
pub const TM_GRAPH_OUTPUT_NODE_TYPE: &'static [u8; 15usize] = b"tm_output_node\0";
pub const TM_GRAPH_ADD_INPUT_CONNECTOR: &'static [u8; 23usize] = b"tm_add_input_connector\0";
pub const TM_GRAPH_ADD_OUTPUT_CONNECTOR: &'static [u8; 24usize] = b"tm_add_output_connector\0";
pub const TM_GRAPH_IMPORTER_API_NAME: &'static [u8; 22usize] = b"tm_graph_importer_api\0";
pub const TM_TT_TYPE__GRAPH_COMPONENT: &'static [u8; 19usize] = b"tm_graph_component\0";
pub const TM_TT_TYPE__ENTITY_GRAPH: &'static [u8; 16usize] = b"tm_entity_graph\0";
pub const TM_GRAPH_COMPONENT_COMPILE_DATA_INTERFACE_NAME: &'static [u8; 32usize] =
    b"tm_graph_component_compile_data\0";
pub const TM_GRAPH_COMPONENT_API_NAME: &'static [u8; 23usize] = b"tm_graph_component_api\0";
pub const TM_GRAPH_COMPONENT_NODE_INTERFACE_NAME: &'static [u8; 34usize] =
    b"tm_graph_component_node_interface\0";
pub const TM_TT_TYPE__KEYBOARD_ITEM: &'static [u8; 17usize] = b"tm_keyboard_item\0";
pub const TM_TT_TYPE__MOUSE_BUTTON: &'static [u8; 16usize] = b"tm_mouse_button\0";
pub const TM_TT_TYPE__ENTITY_ASSET_REFERENCE: &'static [u8; 26usize] =
    b"tm_entity_asset_reference\0";
pub const TM_TT_TYPE__LOCAL_ENTITY_ASSET_REFERENCE: &'static [u8; 32usize] =
    b"tm_local_entity_asset_reference\0";
pub const TM_TT_TYPE__TAG_REFERENCE: &'static [u8; 17usize] = b"tm_tag_reference\0";
pub const TM_GRAPH_INTERPRETER_API_NAME: &'static [u8; 25usize] = b"tm_graph_interpreter_api\0";
pub const TM_HTTPS_API_NAME: &'static [u8; 13usize] = b"tm_https_api\0";
pub const TM_OPENVR_API_NAME: &'static [u8; 14usize] = b"tm_openvr_api\0";
pub const TM_OS_DISPLAY_API_NAME: &'static [u8; 18usize] = b"tm_os_display_api\0";
pub const DEFAULT_DISPLAY_DPI: u32 = 96;
pub const TM_OS_WINDOW_API_NAME: &'static [u8; 17usize] = b"tm_os_window_api\0";
pub const TM_TT_TYPE__PHYSICS_BODY_COMPONENT: &'static [u8; 26usize] =
    b"tm_physics_body_component\0";
pub const TM_PHYSICS_BODY_COMPUTE_INERTIA_TENSOR_INTERFACE_NAME: &'static [u8; 41usize] =
    b"tm_physics_body_compute_inertia_tensor_i\0";
pub const TM_TT_TYPE__PHYSICS_COLLISION: &'static [u8; 21usize] = b"tm_physics_collision\0";
pub const TM_TT_TYPE__PHYSICS_JOINT_COMPONENT: &'static [u8; 27usize] =
    b"tm_physics_joint_component\0";
pub const TM_TT_TYPE__PHYSICS_JOINT__FIXED: &'static [u8; 23usize] = b"tm_physics_joint_fixed\0";
pub const TM_TT_TYPE__PHYSICS_JOINT__DISTANCE: &'static [u8; 26usize] =
    b"tm_physics_joint_distance\0";
pub const TM_TT_TYPE__PHYSICS_JOINT__SPHERICAL: &'static [u8; 27usize] =
    b"tm_physics_joint_spherical\0";
pub const TM_TT_TYPE__PHYSICS_JOINT__REVOLUTE: &'static [u8; 26usize] =
    b"tm_physics_joint_revolute\0";
pub const TM_TT_TYPE__PHYSICS_JOINT__PRISMATIC: &'static [u8; 27usize] =
    b"tm_physics_joint_prismatic\0";
pub const TM_TT_TYPE__PHYSICS_JOINT__D6: &'static [u8; 20usize] = b"tm_physics_joint_d6\0";
pub const TM_TT_TYPE__PHYSICS_MATERIAL: &'static [u8; 20usize] = b"tm_physics_material\0";
pub const TM_TT_TYPE__PHYSICS_MOVER_COMPONENT: &'static [u8; 27usize] =
    b"tm_physics_mover_component\0";
pub const TM_TT_TYPE__PHYSICS_SHAPE_COMPONENT: &'static [u8; 27usize] =
    b"tm_physics_shape_component\0";
pub const TM_TT_TYPE__PHYSICS_SHAPE__SPHERE: &'static [u8; 24usize] = b"tm_physics_shape_sphere\0";
pub const TM_TT_TYPE__PHYSICS_SHAPE__CAPSULE: &'static [u8; 25usize] =
    b"tm_physics_shape_capsule\0";
pub const TM_TT_TYPE__PHYSICS_SHAPE__BOX: &'static [u8; 21usize] = b"tm_physics_shape_box\0";
pub const TM_TT_TYPE__PHYSICS_SHAPE__CONVEX: &'static [u8; 24usize] = b"tm_physics_shape_convex\0";
pub const TM_TT_TYPE__PHYSICS_SHAPE__MESH: &'static [u8; 22usize] = b"tm_physics_shape_mesh\0";
pub const TM_PHYSICS_SHAPE_COOKING_INTERFACE_NAME: &'static [u8; 27usize] =
    b"tm_physics_shape_cooking_i\0";
pub const TM_PHYSICS_SHAPE_DRAWING_INTERFACE_NAME: &'static [u8; 27usize] =
    b"tm_physics_shape_drawing_i\0";
pub const TM_PHYSICS_SHAPE_API_NAME: &'static [u8; 21usize] = b"tm_physics_shape_api\0";
pub const TM_TT_TYPE__VELOCITY_COMPONENT: &'static [u8; 22usize] = b"tm_velocity_component\0";
pub const TM_TT_TYPE__PHYSX_RIGID_STATIC_COMPONENT: &'static [u8; 32usize] =
    b"tm_physx_rigid_static_component\0";
pub const TM_TT_TYPE__PHYSX_RIGID_BODY_COMPONENT: &'static [u8; 30usize] =
    b"tm_physx_rigid_body_component\0";
pub const TM_TT_TYPE__PHYSX_RIGID_BODY_SHAPE_COMPONENT: &'static [u8; 36usize] =
    b"tm_physx_rigid_body_shape_component\0";
pub const TM_TT_TYPE__PHYSX_JOINT_COMPONENT: &'static [u8; 25usize] = b"tm_physx_joint_component\0";
pub const TM_TT_TYPE__PHYSX_MOVER_COMPONENT: &'static [u8; 25usize] = b"tm_physx_mover_component\0";
pub const TM_PHYSX_SCENE_API_NAME: &'static [u8; 19usize] = b"tm_physx_scene_api\0";
pub const TM_PHYSX_CONVEX_COOKED_DATA_FORMAT: &'static [u8; 28usize] =
    b"tm_physx_convex_cooked_data\0";
pub const TM_PHYSX_MESH_COOKED_DATA_FORMAT: &'static [u8; 26usize] = b"tm_physx_mesh_cooked_data\0";
pub const TM_PHYSX_RAYCAST__COLLIDES_WITH_ALL: i32 = -1;
pub const TM_DEVICE_MEMORY_VIEW_API_NAME: &'static [u8; 22usize] = b"tm_device_memory_view\0";
pub const TM_NIL_RENDER_BACKEND_API_NAME: &'static [u8; 26usize] = b"tm_nil_render_backend_api\0";
pub const TM_RENDERER_API_NAME: &'static [u8; 16usize] = b"tm_renderer_api\0";
pub const TM_RENDERER_INIT_API_NAME: &'static [u8; 21usize] = b"tm_renderer_init_api\0";
pub const TM_RENDERER_MEMORY_STATISTICS_MAX_ALLOCATOR_BLOCKS: u32 = 256;
pub const TM_RENDERER_DEVICE_AFFINITY_MASK_ALL: u32 = 255;
pub const TM_RENDER_BACKEND_INTERFACE_NAME: &'static [u8; 20usize] = b"tm_render_backend_i\0";
pub const TM_RENDER_GRAPH_API_NAME: &'static [u8; 20usize] = b"tm_render_graph_api\0";
pub const TM_RENDER_GRAPH_MODULE_API_NAME: &'static [u8; 27usize] = b"tm_render_graph_module_api\0";
pub const TM_RENDER_GRAPH_SETUP_API_NAME: &'static [u8; 26usize] = b"tm_render_graph_setup_api\0";
pub const TM_RENDER_GRAPH_EXECUTE_API_NAME: &'static [u8; 28usize] =
    b"tm_render_graph_execute_api\0";
pub const TM_RENDER_PIPELINE_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_render_pipeline_api\0";
pub const TM_SHADOW_MAPPING_API_NAME: &'static [u8; 22usize] = b"tm_shadow_mapping_api\0";
pub const TM_RENDER_GRAPH_TOOLBOX_API_NAME: &'static [u8; 28usize] =
    b"tm_render_graph_toolbox_api\0";
pub const TM_DEBUG_VISUALIZATION_MAX_RESOURCE: u32 = 16;
pub const TM_COMPONENT_SHADER_SYSTEM_INTERFACE_NAME: &'static [u8; 29usize] =
    b"tm_component_shader_system_i\0";
pub const TM_COMPONENT_SHADER_SYSTEM_API_NAME: &'static [u8; 31usize] =
    b"tm_component_shader_system_api\0";
pub const TM_TT_TYPE__CUBEMAP_CAPTURE_COMPONENT: &'static [u8; 29usize] =
    b"tm_cubemap_capture_component\0";
pub const TM_CUBEMAP_CAPTURE_INTERFACE_NAME: &'static [u8; 29usize] =
    b"tm_cubemap_capture_interface\0";
pub const TM_GPU_PICKING_API_NAME: &'static [u8; 19usize] = b"tm_gpu_picking_api\0";
pub const TM_TT_TYPE__GRID_SETTINGS: &'static [u8; 17usize] = b"tm_grid_settings\0";
pub const TM_GRID_RENDERER_API_NAME: &'static [u8; 21usize] = b"tm_grid_renderer_api\0";
pub const TM_IMAGE_INSPECTOR_API_NAME: &'static [u8; 23usize] = b"tm_image_inspector_api\0";
pub const TM_PRIMITIVE_DRAWER_API_NAME: &'static [u8; 24usize] = b"tm_primitive_drawer_api\0";
pub const TM_PRIMITIVE_RENDERER_API_NAME: &'static [u8; 26usize] = b"tm_primitive_renderer_api\0";
pub const TM_TT_TYPE__RENDER_COMPONENT: &'static [u8; 20usize] = b"tm_render_component\0";
pub const TM_RENDER_COMPONENT_API_NAME: &'static [u8; 24usize] = b"tm_render_component_api\0";
pub const TM_TT_TYPE__SKINNING_COMPONENT: &'static [u8; 22usize] = b"tm_skinning_component\0";
pub const TM_SKINNING_COMPONENT_API_NAME: &'static [u8; 26usize] = b"tm_skinning_component_api\0";
pub const TM_TT_TYPE__SCULPT_COMPONENT: &'static [u8; 20usize] = b"tm_sculpt_component\0";
pub const TM_TT_TYPE__SCULPT_COMPONENT_SELECTION: &'static [u8; 30usize] =
    b"tm_sculpt_component_selection\0";
pub const TM_SCULPT_COMPONENT_API_NAME: &'static [u8; 24usize] = b"tm_sculpt_component_api\0";
pub const TM_SHADER_DECLARATION_API_NAME: &'static [u8; 26usize] = b"tm_shader_declaration_api\0";
pub const TM_SHADER_SYSTEM_API_NAME: &'static [u8; 21usize] = b"tm_shader_system_api\0";
pub const TM_SHADER_API_NAME: &'static [u8; 14usize] = b"tm_shader_api\0";
pub const TM_SHADER_REPOSITORY_INSTANCE_NAME: &'static [u8; 23usize] = b"tm_shader_repository_o\0";
pub const TM_SHADER_REPOSITORY_API_NAME: &'static [u8; 25usize] = b"tm_shader_repository_api\0";
pub const TM_SHADER_CREATION_GRAPH_API_NAME: &'static [u8; 29usize] =
    b"tm_shader_creation_graph_api\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_REPOSITORY: &'static [u8; 28usize] =
    b"tm_shader_system_repository\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_DECLARATION: &'static [u8; 29usize] =
    b"tm_shader_system_declaration\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_RENDER_STATE_BLOCK: &'static [u8; 36usize] =
    b"tm_shader_system_render_state_block\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_SAMPLER_STATE_BLOCK: &'static [u8; 37usize] =
    b"tm_shader_system_sampler_state_block\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_REQUEST: &'static [u8; 25usize] = b"tm_shader_system_request\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CONSTANT: &'static [u8; 26usize] =
    b"tm_shader_system_constant\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_RESOURCE: &'static [u8; 26usize] =
    b"tm_shader_system_resource\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_EXPORT: &'static [u8; 30usize] =
    b"tm_shader_system_stage_export\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_INCLUDE: &'static [u8; 25usize] = b"tm_shader_system_include\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_VARIATION: &'static [u8; 27usize] =
    b"tm_shader_system_variation\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_VARIATION_SYSTEM: &'static [u8; 34usize] =
    b"tm_shader_system_variation_system\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILE_CONFIGURATION: &'static [u8; 39usize] =
    b"tm_shader_system_compile_configuration\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILE_BRANCH: &'static [u8; 32usize] =
    b"tm_shader_system_compile_branch\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_PASS_CONDITION: &'static [u8; 32usize] =
    b"tm_shader_system_pass_condition\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_PASS: &'static [u8; 22usize] = b"tm_shader_system_pass\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILE_CONTEXT: &'static [u8; 33usize] =
    b"tm_shader_system_compile_context\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILED_RESULT: &'static [u8; 33usize] =
    b"tm_shader_system_compiled_result\0";
pub const TM_TT_TYPE__SHADER_SYSTEM__CONSTANT_NODE__SETTINGS: &'static [u8; 40usize] =
    b"tm_shader_system_constant_node_settings\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_RESOURCE_ASPECT: &'static [u8; 53usize] =
    b"tm_shader_system_creation_graph_node_resource_aspect\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_DEFINE: &'static [u8; 44usize] =
    b"tm_shader_system_creation_graph_node_define\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_ACTION: &'static [u8; 44usize] =
    b"tm_shader_system_creation_graph_node_action\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_SETTING_OPTION:
    &'static [u8; 62usize] = b"tm_shader_system_creation_graph_node_connector_setting_option\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_SETTING: &'static [u8; 55usize] =
    b"tm_shader_system_creation_graph_node_connector_setting\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_SETTINGS: &'static [u8; 56usize] =
    b"tm_shader_system_creation_graph_node_connector_settings\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR: &'static [u8; 47usize] =
    b"tm_shader_system_creation_graph_node_connector\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_TYPE_OF: &'static [u8; 55usize] =
    b"tm_shader_system_creation_graph_node_connector_type_of\0";
pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE: &'static [u8; 37usize] =
    b"tm_shader_system_creation_graph_node\0";
pub const TM_TT_TYPE__RUNNER_SETTINGS: &'static [u8; 19usize] = b"tm_runner_settings\0";
pub const TM_RUNNER_SETTINGS_API_NAME: &'static [u8; 23usize] = b"tm_runner_settings_api\0";
pub const TM_SIMULATE_CONTEXT_API_NAME: &'static [u8; 24usize] = b"tm_simulate_context_api\0";
pub const TM_TT_TYPE__STATISTICS_GRAPH: &'static [u8; 20usize] = b"tm_statistics_graph\0";
pub const TM_TT_TYPE__STATISTICS_GRAPH_SOURCE: &'static [u8; 27usize] =
    b"tm_statistics_graph_source\0";
pub const TM_STATISTICS_GRAPH_API_NAME: &'static [u8; 20usize] = b"tm_statistics_graph\0";
pub const TM_STATISTICS_SOURCE_API_NAME: &'static [u8; 25usize] = b"tm_statistics_source_api\0";
pub const TM_STB_IMAGE_LOADER_API_NAME: &'static [u8; 20usize] = b"tm_stb_image_loader\0";
pub const TYPE__CAMERA_CONTROLLER_COMPONENT: &'static [u8; 42usize] =
    b"the-machinery/camera_controller_component\0";
pub const TM_CAMERA_CONTROLLER_COMPONENT_API_NAME: &'static [u8; 35usize] =
    b"tm_camera_controller_component_api\0";
pub const TM_MAX_VIEWER_SYSTEMS: u32 = 4;
pub const TM_MAX_RENDER_COMPONENTS: u32 = 64;
pub const TM_MAX_SHADER_DATA_COMPONENTS: u32 = 15;
pub const TM_FRUSTUM_CULLING_API_NAME: &'static [u8; 23usize] = b"tm_frustum_culling_api\0";
pub const TM_RENDER_CONTEXT_API_NAME: &'static [u8; 22usize] = b"tm_render_context_api\0";
pub const TM_VIEWPORT_HUD_HEIGHT: f64 = 25.0;
pub const TM_VIEWPORT_HUD_OUTER_MARGIN_X: f64 = 5.0;
pub const TM_VIEWPORT_HUD_OUTER_MARGIN_Y: f64 = 5.0;
pub const TM_VIEWPORT_HUD_INNER_MARGIN: f64 = 5.0;
pub const TM_LIGHTING_ENVIRONEMENT_SEARCH_BUF_LEN: u32 = 1024;
pub const TM_SCENE_COMMON_API_NAME: &'static [u8; 20usize] = b"tm_scene_common_api\0";
pub const TM_VIEWER_API_NAME: &'static [u8; 14usize] = b"tm_viewer_api\0";
pub const TM_VIEWER_MANAGER_API_NAME: &'static [u8; 22usize] = b"tm_viewer_manager_api\0";
pub const TM_TT_TYPE__CLIPBOARD: &'static [u8; 13usize] = b"tm_clipboard\0";
pub const TM_UI_CLIPBOARD_API_NAME: &'static [u8; 20usize] = b"tm_ui_clipboard_api\0";
pub const TM_TAB_VT_INTERFACE_NAME: &'static [u8; 10usize] = b"tm_tab_vt\0";
pub const TM_TT_TYPE__DOCKING_SETTINGS: &'static [u8; 20usize] = b"tm_docking_settings\0";
pub const TM_DOCKING_API_NAME: &'static [u8; 15usize] = b"tm_docking_api\0";
pub const TM_UI_DRAG_API_NAME: &'static [u8; 15usize] = b"tm_ui_drag_api\0";
pub const TM_DRAW2D_API_NAME: &'static [u8; 14usize] = b"tm_draw2d_api\0";
pub const TM_FONT_API_NAME: &'static [u8; 12usize] = b"tm_font_api\0";
pub const TM_GIZMO_API_NAME: &'static [u8; 13usize] = b"tm_gizmo_api\0";
pub const TM_MODAL_PROGRESS_DONE: u32 = 4294967295;
pub const TM_UI_MODAL_API_NAME: &'static [u8; 16usize] = b"tm_ui_modal_api\0";
pub const TM_SHAPE3D_API_NAME: &'static [u8; 15usize] = b"tm_shape3d_api\0";
pub const TM_TT_TYPE__TOOLBAR_SETTINGS: &'static [u8; 20usize] = b"tm_toolbar_settings\0";
pub const TM_TAB_TOOLBAR_STATE_SIZE: u32 = 4096;
pub const TM_TTF_BAKER_API_NAME: &'static [u8; 17usize] = b"tm_ttf_baker_api\0";
pub const TM_TT_TYPE__UI_THEME: &'static [u8; 12usize] = b"tm_ui_theme\0";
pub const TM_TT_TYPE__UI_THEME_COLOR: &'static [u8; 18usize] = b"tm_ui_theme_color\0";
pub const TM_UI_API_NAME: &'static [u8; 10usize] = b"tm_ui_api\0";
pub const TM_UI_ICON_API_NAME: &'static [u8; 15usize] = b"tm_ui_icon_api\0";
pub const TM_UI_RENDERER_API_NAME: &'static [u8; 15usize] = b"tm_ui_renderer\0";
pub const TM_UI_TREE_API_NAME: &'static [u8; 15usize] = b"tm_ui_tree_api\0";
pub const TM_UPNP_API_NAME: &'static [u8; 12usize] = b"tm_upnp_api\0";
pub const TM_VULKAN_BACKEND_INTERFACE_NAME: &'static [u8; 20usize] = b"tm_vulkan_backend_i\0";
pub const TM_VULKAN_BACKEND_INSTANCE_EXTENSIONS_INTERFACE_NAME: &'static [u8; 48usize] =
    b"tm_vulkan_backend_instance_extensions_interface\0";
pub const TM_VULKAN_BACKEND_DEVICE_EXTENSIONS_INTERFACE_NAME: &'static [u8; 46usize] =
    b"tm_vulkan_backend_device_extensions_interface\0";
pub const TM_VULKAN_API_NAME: &'static [u8; 14usize] = b"tm_vulkan_api\0";
pub const TM_ASSET_BROWSER_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_asset_browser_tab\0";
pub const TM_ASSET_BROWSER_TAB_CUSTOM_MENU_ITEMS_INTERFACE_NAME: &'static [u8; 41usize] =
    b"tm_asset_browser_tab_custom_menu_items_i\0";
pub const TM_ASSET_BROWSER_TAB_API_NAME: &'static [u8; 25usize] = b"tm_asset_browser_tab_api\0";
pub const TM_CACHE_MANAGER_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_cache_manager_tab\0";
pub const TM_CANVAS_TAB_VT_NAME: &'static [u8; 14usize] = b"tm_canvas_tab\0";
pub const TM_COLLABORATION_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_collaboration_tab\0";
pub const TM_CONSOLE_TAB_VT_NAME: &'static [u8; 15usize] = b"tm_console_tab\0";
pub const TM_DELAUNAY_TAB_VT_NAME: &'static [u8; 16usize] = b"tm_delaunay_tab\0";
pub const TM_DOWNLOAD_VT_NAME: &'static [u8; 16usize] = b"tm_download_tab\0";
pub const TM_TT_TYPE__APPLICATION_SETTINGS__UPDATES: &'static [u8; 33usize] =
    b"tm_application_settings__updates\0";
pub const TM_TT_TYPE__APPLICATION_SETTINGS__DOWNLOAD: &'static [u8; 34usize] =
    b"tm_application_settings__download\0";
pub const TM_OLD_TREE_TAB_VT_NAME: &'static [u8; 12usize] = b"tm_tree_tab\0";
pub const TM_ENTITY_TREE_VIEW_WIP_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_tree_view_wip_tab\0";
pub const TM_GRAPH_TAB_VT_NAME: &'static [u8; 13usize] = b"tm_graph_tab\0";
pub const TM_IMPORT_PROJECT_TAB_VT_NAME: &'static [u8; 22usize] = b"tm_import_project_tab\0";
pub const TM_INPUT_LOG_TAB_VT_NAME: &'static [u8; 17usize] = b"tm_input_log_tab\0";
pub const TM_JSON_TAB_VT_NAME: &'static [u8; 12usize] = b"tm_json_tab\0";
pub const TM_LOGIN_TAB_VT_NAME: &'static [u8; 13usize] = b"tm_login_tab\0";
pub const TM_MODIFIED_ASSETS_TAB_VT_NAME: &'static [u8; 23usize] = b"tm_modified_assets_tab\0";
pub const TM_PREVIEW_TAB_VT_NAME: &'static [u8; 15usize] = b"tm_preview_tab\0";
pub const TM_PROFILER_TAB_VT_NAME: &'static [u8; 16usize] = b"tm_profiler_tab\0";
pub const TM_PROPERTIES_TAB_VT_NAME: &'static [u8; 18usize] = b"tm_properties_tab\0";
pub const TM_SCENE_TAB_VT_NAME: &'static [u8; 13usize] = b"tm_scene_tab\0";
pub const TM_TT_TYPE__SCENE_TAB: &'static [u8; 13usize] = b"tm_scene_tab\0";
pub const TM_TT_TYPE__SCENE_TAB_SETTINGS: &'static [u8; 22usize] = b"tm_scene_tab_settings\0";
pub const TM_TT_TYPE__SCENE_SETTINGS: &'static [u8; 18usize] = b"tm_scene_settings\0";
pub const TM_SIMULATE_TAB_VT_NAME: &'static [u8; 16usize] = b"tm_simulate_tab\0";
pub const TM_STATE_GRAPH_TAB_VT_NAME: &'static [u8; 19usize] = b"tm_state_graph_tab\0";
pub const TM_STATISTICS_TAB_VT_NAME: &'static [u8; 18usize] = b"tm_statistics_tab\0";
pub const TM_TASK_MANAGER_API_NAME: &'static [u8; 20usize] = b"tm_task_manager_api\0";
pub const TM_TASK_MANAGER_TAB_VT_NAME: &'static [u8; 20usize] = b"tm_task_manager_tab\0";
pub const THE_MACHINERY_VERSION: &'static [u8; 8usize] = b"2020.11\0";
pub const TM_TT_TYPE__APPLICATION_SETTINGS: &'static [u8; 24usize] = b"tm_application_settings\0";
pub const TM_TT_TYPE__WINDOW_LAYOUTS: &'static [u8; 18usize] = b"tm_window_layouts\0";
pub const TM_TT_TYPE__WINDOW_LAYOUT: &'static [u8; 17usize] = b"tm_window_layout\0";
pub const TM_TT_TYPE__RECENT_FILE: &'static [u8; 15usize] = b"tm_recent_file\0";
pub const TM_TT_TYPE__TABWELL: &'static [u8; 11usize] = b"tm_tabwell\0";
pub const TM_TT_TYPE__TAB_VIEW: &'static [u8; 12usize] = b"tm_tab_view\0";
pub const TM_TT_TYPE__PROJECT_SETTINGS: &'static [u8; 20usize] = b"tm_project_settings\0";
pub const TM_TT_TYPE__INTERFACE_SETTINGS: &'static [u8; 22usize] = b"tm_interface_settings\0";
pub const TM_TT_TYPE__PUBLISH_SETTINGS: &'static [u8; 20usize] = b"tm_publish_settings\0";
pub const TM_TREE_VIEW_TAB_VT_NAME: &'static [u8; 17usize] = b"tm_tree_view_tab\0";
pub const TM_UI_SAMPLE_TAB_VT_NAME: &'static [u8; 17usize] = b"tm_ui_sample_tab\0";
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
extern "C" {
    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
}
pub type size_t = ::std::os::raw::c_ulonglong;
pub type __vcrt_bool = bool;
pub type wchar_t = ::std::os::raw::c_ushort;
extern "C" {
    pub fn __security_init_cookie();
}
extern "C" {
    pub fn __security_check_cookie(_StackCookie: usize);
}
extern "C" {
    pub fn __report_gsfailure(_StackCookie: usize);
}
extern "C" {
    pub static mut __security_cookie: usize;
}
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_longlong;
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_ulonglong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_int;
pub type int_fast32_t = ::std::os::raw::c_int;
pub type int_fast64_t = ::std::os::raw::c_longlong;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_uint;
pub type uint_fast32_t = ::std::os::raw::c_uint;
pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
pub type intmax_t = ::std::os::raw::c_longlong;
pub type uintmax_t = ::std::os::raw::c_ulonglong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vec2_t {
    pub x: f32,
    pub y: f32,
}
#[test]
fn bindgen_test_layout_tm_vec2_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_vec2_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_vec2_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vec2_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_vec2_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec2_t>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec2_t),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec2_t>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec2_t),
            "::",
            stringify!(y)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vec3_t {
    pub x: f32,
    pub y: f32,
    pub z: f32,
}
#[test]
fn bindgen_test_layout_tm_vec3_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_vec3_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_vec3_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vec3_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_vec3_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec3_t>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec3_t),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec3_t>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec3_t),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec3_t>())).z as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec3_t),
            "::",
            stringify!(z)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vec4_t {
    pub x: f32,
    pub y: f32,
    pub z: f32,
    pub w: f32,
}
#[test]
fn bindgen_test_layout_tm_vec4_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_vec4_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_vec4_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vec4_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_vec4_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec4_t>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec4_t),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec4_t>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec4_t),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec4_t>())).z as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec4_t),
            "::",
            stringify!(z)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vec4_t>())).w as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vec4_t),
            "::",
            stringify!(w)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mat44_t {
    pub xx: f32,
    pub xy: f32,
    pub xz: f32,
    pub xw: f32,
    pub yx: f32,
    pub yy: f32,
    pub yz: f32,
    pub yw: f32,
    pub zx: f32,
    pub zy: f32,
    pub zz: f32,
    pub zw: f32,
    pub wx: f32,
    pub wy: f32,
    pub wz: f32,
    pub ww: f32,
}
#[test]
fn bindgen_test_layout_tm_mat44_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_mat44_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_mat44_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mat44_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_mat44_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).xx as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(xx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).xy as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(xy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).xz as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(xz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).xw as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(xw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).yx as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(yx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).yy as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(yy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).yz as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(yz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).yw as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(yw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).zx as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(zx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).zy as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(zy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).zz as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(zz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).zw as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(zw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).wx as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(wx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).wy as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(wy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).wz as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(wz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mat44_t>())).ww as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mat44_t),
            "::",
            stringify!(ww)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_transform_t {
    pub pos: tm_vec3_t,
    pub rot: tm_vec4_t,
    pub scl: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_transform_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_transform_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_transform_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_transform_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_transform_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_transform_t>())).pos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_transform_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_transform_t>())).rot as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_transform_t),
            "::",
            stringify!(rot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_transform_t>())).scl as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_transform_t),
            "::",
            stringify!(scl)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_rect_t {
    pub x: f32,
    pub y: f32,
    pub w: f32,
    pub h: f32,
}
#[test]
fn bindgen_test_layout_tm_rect_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_rect_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_rect_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_rect_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_rect_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_rect_t>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_rect_t),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_rect_t>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_rect_t),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_rect_t>())).w as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_rect_t),
            "::",
            stringify!(w)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_rect_t>())).h as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_rect_t),
            "::",
            stringify!(h)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_clock_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_clock_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_clock_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_clock_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_clock_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_clock_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_clock_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_clock_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_uuid_t {
    pub a: u64,
    pub b: u64,
}
#[test]
fn bindgen_test_layout_tm_uuid_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_uuid_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_uuid_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_uuid_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_uuid_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_uuid_t>())).a as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_uuid_t),
            "::",
            stringify!(a)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_uuid_t>())).b as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_uuid_t),
            "::",
            stringify!(b)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_color_srgb_t {
    pub r: u8,
    pub g: u8,
    pub b: u8,
    pub a: u8,
}
#[test]
fn bindgen_test_layout_tm_color_srgb_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_color_srgb_t>(),
        4usize,
        concat!("Size of: ", stringify!(tm_color_srgb_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_color_srgb_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_color_srgb_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_color_srgb_t>())).r as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_color_srgb_t),
            "::",
            stringify!(r)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_color_srgb_t>())).g as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_color_srgb_t),
            "::",
            stringify!(g)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_color_srgb_t>())).b as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_color_srgb_t),
            "::",
            stringify!(b)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_color_srgb_t>())).a as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_color_srgb_t),
            "::",
            stringify!(a)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tt_id_t {
    pub __bindgen_anon_1: tm_tt_id_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_tt_id_t__bindgen_ty_1 {
    pub u64_: u64,
    pub __bindgen_anon_1: tm_tt_id_t__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[repr(align(8))]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_id_t__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u32>,
}
#[test]
fn bindgen_test_layout_tm_tt_id_t__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_id_t__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_tt_id_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_id_t__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_tt_id_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl tm_tt_id_t__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn type_(&self) -> u64 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 10u8) as u64) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u64) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 10u8, val as u64)
        }
    }
    #[inline]
    pub fn generation(&self) -> u64 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 22u8) as u64) }
    }
    #[inline]
    pub fn set_generation(&mut self, val: u64) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(10usize, 22u8, val as u64)
        }
    }
    #[inline]
    pub fn index(&self) -> u64 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
    }
    #[inline]
    pub fn set_index(&mut self, val: u64) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(32usize, 32u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        type_: u64,
        generation: u64,
        index: u64,
    ) -> __BindgenBitfieldUnit<[u8; 8usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 10u8, {
            let type_: u64 = unsafe { ::std::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit.set(10usize, 22u8, {
            let generation: u64 = unsafe { ::std::mem::transmute(generation) };
            generation as u64
        });
        __bindgen_bitfield_unit.set(32usize, 32u8, {
            let index: u64 = unsafe { ::std::mem::transmute(index) };
            index as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_tm_tt_id_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_id_t__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tm_tt_id_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_id_t__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_id_t__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_id_t__bindgen_ty_1>())).u64_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_id_t__bindgen_ty_1),
            "::",
            stringify!(u64_)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_tt_id_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_id_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_tt_id_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_id_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_id_t))
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_undo_scope_t {
    pub u64_: u64,
}
#[test]
fn bindgen_test_layout_tm_tt_undo_scope_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_undo_scope_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_tt_undo_scope_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_undo_scope_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_undo_scope_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_undo_scope_t>())).u64_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_undo_scope_t),
            "::",
            stringify!(u64_)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_allocator_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_allocator_i {
    pub inst: *mut tm_allocator_o,
    pub mem_scope: u32,
    pub _padding_15: [::std::os::raw::c_char; 4usize],
    pub realloc: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            ptr: *mut ::std::os::raw::c_void,
            old_size: u64,
            new_size: u64,
            file: *const ::std::os::raw::c_char,
            line: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
}
#[test]
fn bindgen_test_layout_tm_allocator_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_allocator_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_allocator_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_allocator_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_allocator_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_i>())).mem_scope as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_i),
            "::",
            stringify!(mem_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_i>()))._padding_15 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_i),
            "::",
            stringify!(_padding_15)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_i>())).realloc as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_i),
            "::",
            stringify!(realloc)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_allocator_statistics_t {
    pub system_allocation_count: u64,
    pub system_allocated_bytes: u64,
    pub vm_reserved: u64,
    pub vm_committed: u64,
    pub system_churn_allocation_count: u64,
    pub system_churn_allocated_bytes: u64,
    pub vm_churn_committed: u64,
}
#[test]
fn bindgen_test_layout_tm_allocator_statistics_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_allocator_statistics_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_allocator_statistics_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_allocator_statistics_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_allocator_statistics_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_statistics_t>())).system_allocation_count
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_statistics_t),
            "::",
            stringify!(system_allocation_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_statistics_t>())).system_allocated_bytes as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_statistics_t),
            "::",
            stringify!(system_allocated_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_statistics_t>())).vm_reserved as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_statistics_t),
            "::",
            stringify!(vm_reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_statistics_t>())).vm_committed as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_statistics_t),
            "::",
            stringify!(vm_committed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_statistics_t>())).system_churn_allocation_count
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_statistics_t),
            "::",
            stringify!(system_churn_allocation_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_statistics_t>())).system_churn_allocated_bytes
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_statistics_t),
            "::",
            stringify!(system_churn_allocated_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_statistics_t>())).vm_churn_committed as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_statistics_t),
            "::",
            stringify!(vm_churn_committed)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_allocator_api {
    pub system: *mut tm_allocator_i,
    pub end_of_page: *mut tm_allocator_i,
    pub vm: *mut tm_allocator_i,
    pub statistics: *mut tm_allocator_statistics_t,
    pub create_child: ::std::option::Option<
        unsafe extern "C" fn(
            parent: *const tm_allocator_i,
            desc: *const ::std::os::raw::c_char,
        ) -> tm_allocator_i,
    >,
    pub destroy_child: ::std::option::Option<unsafe extern "C" fn(child: *const tm_allocator_i)>,
    pub destroy_child_allowing_leaks: ::std::option::Option<
        unsafe extern "C" fn(child: *const tm_allocator_i, max_leaked_bytes: u64),
    >,
    pub create_leaky_root_scope: ::std::option::Option<
        unsafe extern "C" fn(
            parent: *const tm_allocator_i,
            desc: *const ::std::os::raw::c_char,
        ) -> tm_allocator_i,
    >,
    pub create_fixed_vm: ::std::option::Option<
        unsafe extern "C" fn(reserve_size: u64, mem_scope: u32) -> tm_allocator_i,
    >,
}
#[test]
fn bindgen_test_layout_tm_allocator_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_allocator_api>(),
        72usize,
        concat!("Size of: ", stringify!(tm_allocator_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_allocator_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_allocator_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_api>())).system as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(system)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_api>())).end_of_page as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(end_of_page)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_api>())).vm as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(vm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_api>())).statistics as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(statistics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_api>())).create_child as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(create_child)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_allocator_api>())).destroy_child as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(destroy_child)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_api>())).destroy_child_allowing_leaks as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(destroy_child_allowing_leaks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_api>())).create_leaky_root_scope as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(create_leaky_root_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_allocator_api>())).create_fixed_vm as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_allocator_api),
            "::",
            stringify!(create_fixed_vm)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_api_registry_listener_i {
    pub ud: *mut ::std::os::raw::c_void,
    pub add_implementation: ::std::option::Option<
        unsafe extern "C" fn(
            ud: *mut ::std::os::raw::c_void,
            name: *const ::std::os::raw::c_char,
            implementation: *mut ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_api_registry_listener_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_api_registry_listener_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_api_registry_listener_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_api_registry_listener_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_api_registry_listener_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_api_registry_listener_i>())).ud as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_listener_i),
            "::",
            stringify!(ud)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_listener_i>())).add_implementation as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_listener_i),
            "::",
            stringify!(add_implementation)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_api_registry_api {
    pub set: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            api: *mut ::std::os::raw::c_void,
            bytes: u32,
        ),
    >,
    pub remove: ::std::option::Option<unsafe extern "C" fn(api: *mut ::std::os::raw::c_void)>,
    pub get: ::std::option::Option<
        unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
    >,
    pub get_optional: ::std::option::Option<
        unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
    >,
    pub add_implementation: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            implementation: *mut ::std::os::raw::c_void,
        ),
    >,
    pub remove_implementation: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            implementation: *mut ::std::os::raw::c_void,
        ),
    >,
    pub implementations: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            count: *mut u32,
        ) -> *mut *mut ::std::os::raw::c_void,
    >,
    pub add_listener:
        ::std::option::Option<unsafe extern "C" fn(listener: *const tm_api_registry_listener_i)>,
    pub static_variable: ::std::option::Option<
        unsafe extern "C" fn(
            id: u64,
            size: u32,
            file: *const ::std::os::raw::c_char,
            line: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub log_missing_apis: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_api_registry_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_api_registry_api>(),
        80usize,
        concat!("Size of: ", stringify!(tm_api_registry_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_api_registry_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_api_registry_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_api_registry_api>())).set as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(set)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_api_registry_api>())).remove as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(remove)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_api_registry_api>())).get as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(get)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_api>())).get_optional as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(get_optional)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_api>())).add_implementation as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(add_implementation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_api>())).remove_implementation as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(remove_implementation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_api>())).implementations as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(implementations)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_api>())).add_listener as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(add_listener)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_api>())).static_variable as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(static_variable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_api_registry_api>())).log_missing_apis as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_api_registry_api),
            "::",
            stringify!(log_missing_apis)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_viewer_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_application_o {
    _unused: [u8; 0],
}
pub type tm_application_modal_f = ::std::option::Option<
    unsafe extern "C" fn(
        data: *mut ::std::os::raw::c_void,
        ui: *mut tm_ui_o,
        rect: tm_rect_t,
        font: u32,
        font_info: *const tm_font_t,
        font_scale: f32,
        ui_has_focus: bool,
    ) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_application_api {
    pub application: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_application_o>,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            argc: ::std::os::raw::c_int,
            argv: *mut *mut ::std::os::raw::c_char,
        ) -> *mut tm_application_o,
    >,
    pub tick: ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o) -> bool>,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o)>,
    pub set_modal: ::std::option::Option<
        unsafe extern "C" fn(
            app: *mut tm_application_o,
            f: tm_application_modal_f,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub is_modal: ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> bool>,
    pub asset_root:
        ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> tm_tt_id_t>,
    pub load_core:
        ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> bool>,
    pub update_core:
        ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> bool>,
    pub set_cursor_hidden:
        ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o, hidden: bool)>,
    pub exit: ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o)>,
    pub viewer_manager: ::std::option::Option<
        unsafe extern "C" fn(app: *mut tm_application_o) -> *mut tm_viewer_manager_o,
    >,
    pub default_render_pipeline_api: ::std::option::Option<
        unsafe extern "C" fn(app: *mut tm_application_o) -> *mut tm_render_pipeline_api,
    >,
    pub ui_scale_factor: ::std::option::Option<
        unsafe extern "C" fn(app: *mut tm_application_o, ui: *mut tm_ui_o) -> f32,
    >,
}
#[test]
fn bindgen_test_layout_tm_application_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_application_api>(),
        112usize,
        concat!("Size of: ", stringify!(tm_application_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_application_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_application_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).application as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(application)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).create as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).tick as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(tick)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).destroy as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).set_modal as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(set_modal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).is_modal as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(is_modal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).asset_root as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(asset_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).load_core as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(load_core)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).update_core as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(update_core)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_application_api>())).set_cursor_hidden as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(set_cursor_hidden)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_application_api>())).exit as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(exit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_application_api>())).viewer_manager as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(viewer_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_application_api>())).default_render_pipeline_api as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(default_render_pipeline_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_application_api>())).ui_scale_factor as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_application_api),
            "::",
            stringify!(ui_scale_factor)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_database_config_t {
    pub allocator: *mut tm_allocator_i,
    pub fs: *mut tm_os_file_system_api,
    pub file_io: *mut tm_os_file_io_api,
}
#[test]
fn bindgen_test_layout_tm_asset_database_config_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_database_config_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_asset_database_config_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_database_config_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_database_config_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_config_t>())).allocator as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_config_t),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_database_config_t>())).fs as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_config_t),
            "::",
            stringify!(fs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_config_t>())).file_io as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_config_t),
            "::",
            stringify!(file_io)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_dabase_saved_item_t {
    pub uuid: tm_uuid_t,
    pub is_directory: bool,
    pub _padding_30: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_asset_dabase_saved_item_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_dabase_saved_item_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_asset_dabase_saved_item_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_dabase_saved_item_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_dabase_saved_item_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_dabase_saved_item_t>())).uuid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_dabase_saved_item_t),
            "::",
            stringify!(uuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_dabase_saved_item_t>())).is_directory as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_dabase_saved_item_t),
            "::",
            stringify!(is_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_dabase_saved_item_t>()))._padding_30 as *const _
                as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_dabase_saved_item_t),
            "::",
            stringify!(_padding_30)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_database_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_database_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            file: *const ::std::os::raw::c_char,
            tt: *mut tm_the_truth_o,
            config: *const tm_asset_database_config_t,
        ) -> *mut tm_asset_database_o,
    >,
    pub open: ::std::option::Option<
        unsafe extern "C" fn(
            file: *const ::std::os::raw::c_char,
            tt: *mut tm_the_truth_o,
            config: *const tm_asset_database_config_t,
        ) -> *mut tm_asset_database_o,
    >,
    pub close: ::std::option::Option<unsafe extern "C" fn(db: *mut tm_asset_database_o)>,
    pub save_modified: ::std::option::Option<
        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset_root: tm_tt_id_t),
    >,
    pub save_modified_except: ::std::option::Option<
        unsafe extern "C" fn(
            db: *mut tm_asset_database_o,
            asset_root: tm_tt_id_t,
            ignore: *mut tm_tt_id_t,
            num_ignore: u32,
        ),
    >,
    pub save_asset: ::std::option::Option<
        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset: tm_tt_id_t),
    >,
    pub delete_asset: ::std::option::Option<
        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset: tm_tt_id_t),
    >,
    pub revert_asset: ::std::option::Option<
        unsafe extern "C" fn(
            db: *mut tm_asset_database_o,
            asset: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> bool,
    >,
    pub load:
        ::std::option::Option<unsafe extern "C" fn(db: *mut tm_asset_database_o) -> tm_tt_id_t>,
    pub saved_name: ::std::option::Option<
        unsafe extern "C" fn(
            db: *mut tm_asset_database_o,
            item: tm_uuid_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub saved_directory: ::std::option::Option<
        unsafe extern "C" fn(db: *mut tm_asset_database_o, item: tm_uuid_t) -> tm_uuid_t,
    >,
    pub saved_version: ::std::option::Option<
        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset: tm_uuid_t) -> u64,
    >,
    pub all_saved_items: ::std::option::Option<
        unsafe extern "C" fn(
            db: *mut tm_asset_database_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_asset_dabase_saved_item_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_database_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_database_api>(),
        104usize,
        concat!("Size of: ", stringify!(tm_asset_database_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_database_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_database_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_database_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_database_api>())).open as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(open)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_database_api>())).close as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(close)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).save_modified as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(save_modified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).save_modified_except as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(save_modified_except)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).save_asset as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(save_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).delete_asset as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(delete_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).revert_asset as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(revert_asset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_database_api>())).load as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(load)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).saved_name as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(saved_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).saved_directory as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(saved_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).saved_version as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(saved_version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_database_api>())).all_saved_items as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_database_api),
            "::",
            stringify!(all_saved_items)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_asset_io_import {
    pub allocator: *mut tm_allocator_i,
    pub tt: *mut tm_the_truth_o,
    pub reimport_into: tm_tt_id_t,
    pub target_dir: tm_tt_id_t,
    pub asset_root: tm_tt_id_t,
    pub ui: *mut tm_ui_o,
    pub asset_browser: tm_tt_id_t,
    pub asset_browser_version_at_start: u64,
    pub undo_scope: tm_tt_undo_scope_t,
}
#[test]
fn bindgen_test_layout_tm_asset_io_import() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_io_import>(),
        72usize,
        concat!("Size of: ", stringify!(tm_asset_io_import))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_io_import>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_io_import))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_import>())).allocator as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_import>())).tt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_io_import>())).reimport_into as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(reimport_into)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_import>())).target_dir as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(target_dir)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_import>())).asset_root as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(asset_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_import>())).ui as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_io_import>())).asset_browser as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(asset_browser)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_io_import>())).asset_browser_version_at_start
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(asset_browser_version_at_start)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_import>())).undo_scope as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_import),
            "::",
            stringify!(undo_scope)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_io_i {
    pub inst: *mut tm_asset_io_o,
    pub enabled: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_io_o) -> bool>,
    pub can_import: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            extension: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub can_reimport: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
        ) -> bool,
    >,
    pub importer_extensions_string: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            output: *mut *mut ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
            separator: *const ::std::os::raw::c_char,
        ),
    >,
    pub importer_description_string: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            output: *mut *mut ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
            separator: *const ::std::os::raw::c_char,
        ),
    >,
    pub import_asset: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            file: *const ::std::os::raw::c_char,
            import: *const tm_asset_io_import,
        ) -> u64,
    >,
    pub can_export: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
        ) -> bool,
    >,
    pub exporter_extension: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub export_asset: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_io_o,
            file: *const ::std::os::raw::c_char,
            tt: *mut tm_the_truth_o,
            asset_root: tm_tt_id_t,
            asset: tm_tt_id_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_io_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_io_i>(),
        80usize,
        concat!("Size of: ", stringify!(tm_asset_io_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_io_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_io_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_i>())).enabled as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_i>())).can_import as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(can_import)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_i>())).can_reimport as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(can_reimport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_io_i>())).importer_extensions_string as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(importer_extensions_string)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_io_i>())).importer_description_string as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(importer_description_string)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_i>())).import_asset as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(import_asset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_i>())).can_export as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(can_export)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_io_i>())).exporter_extension as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(exporter_extension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_i>())).export_asset as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_i),
            "::",
            stringify!(export_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_io_api {
    pub add_asset_io: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_asset_io_i)>,
    pub remove_asset_io: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_asset_io_i)>,
    pub importer: ::std::option::Option<
        unsafe extern "C" fn(extension: *const ::std::os::raw::c_char) -> *mut tm_asset_io_i,
    >,
    pub reimporter: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset: tm_tt_id_t) -> *mut tm_asset_io_i,
    >,
    pub exporter: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset: tm_tt_id_t) -> *mut tm_asset_io_i,
    >,
    pub io_interfaces:
        ::std::option::Option<unsafe extern "C" fn(interfaces: *mut *mut tm_asset_io_i) -> u32>,
}
#[test]
fn bindgen_test_layout_tm_asset_io_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_io_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_asset_io_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_io_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_io_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_api>())).add_asset_io as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_api),
            "::",
            stringify!(add_asset_io)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_api>())).remove_asset_io as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_api),
            "::",
            stringify!(remove_asset_io)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_api>())).importer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_api),
            "::",
            stringify!(importer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_api>())).reimporter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_api),
            "::",
            stringify!(reimporter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_api>())).exporter as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_api),
            "::",
            stringify!(exporter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_io_api>())).io_interfaces as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_io_api),
            "::",
            stringify!(io_interfaces)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_base_64_api {
    pub encoded_size: ::std::option::Option<unsafe extern "C" fn(raw_size: u64) -> u64>,
    pub encode: ::std::option::Option<
        unsafe extern "C" fn(
            encoded: *mut ::std::os::raw::c_char,
            raw: *const u8,
            raw_size: u64,
        ) -> u64,
    >,
    pub decoded_size: ::std::option::Option<
        unsafe extern "C" fn(encoded: *const ::std::os::raw::c_char, encoded_size: u64) -> u64,
    >,
    pub decode: ::std::option::Option<
        unsafe extern "C" fn(
            raw: *mut u8,
            encoded: *const ::std::os::raw::c_char,
            encoded_size: u64,
        ) -> u64,
    >,
}
#[test]
fn bindgen_test_layout_tm_base_64_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_base_64_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_base_64_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_base_64_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_base_64_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_base_64_api>())).encoded_size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_base_64_api),
            "::",
            stringify!(encoded_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_base_64_api>())).encode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_base_64_api),
            "::",
            stringify!(encode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_base_64_api>())).decoded_size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_base_64_api),
            "::",
            stringify!(decoded_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_base_64_api>())).decode as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_base_64_api),
            "::",
            stringify!(decode)
        )
    );
}
pub const tm_bounding_volume_type_TM_BOUNDING_VOLUME_TYPE_SPHERE: tm_bounding_volume_type = 0;
pub const tm_bounding_volume_type_TM_BOUNDING_VOLUME_TYPE_BOX: tm_bounding_volume_type = 1;
pub type tm_bounding_volume_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_bounding_volume_sphere_t {
    pub visibility_mask: u64,
    pub culling_disabled: bool,
    pub _padding_16: [::std::os::raw::c_char; 3usize],
    pub position: tm_vec3_t,
    pub radius: f32,
    pub _padding_19: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_bounding_volume_sphere_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_bounding_volume_sphere_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_bounding_volume_sphere_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_bounding_volume_sphere_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_bounding_volume_sphere_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_sphere_t>())).visibility_mask as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_sphere_t),
            "::",
            stringify!(visibility_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_sphere_t>())).culling_disabled as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_sphere_t),
            "::",
            stringify!(culling_disabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_sphere_t>()))._padding_16 as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_sphere_t),
            "::",
            stringify!(_padding_16)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_sphere_t>())).position as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_sphere_t),
            "::",
            stringify!(position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_sphere_t>())).radius as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_sphere_t),
            "::",
            stringify!(radius)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_sphere_t>()))._padding_19 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_sphere_t),
            "::",
            stringify!(_padding_19)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_bounding_volume_box_t {
    pub visibility_mask: u64,
    pub culling_disabled: bool,
    pub _padding_26: [::std::os::raw::c_char; 3usize],
    pub tm: tm_mat44_t,
    pub min: tm_vec3_t,
    pub max: tm_vec3_t,
    pub _padding_30: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_bounding_volume_box_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_bounding_volume_box_t>(),
        104usize,
        concat!("Size of: ", stringify!(tm_bounding_volume_box_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_bounding_volume_box_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_bounding_volume_box_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_box_t>())).visibility_mask as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_box_t),
            "::",
            stringify!(visibility_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_box_t>())).culling_disabled as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_box_t),
            "::",
            stringify!(culling_disabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_box_t>()))._padding_26 as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_box_t),
            "::",
            stringify!(_padding_26)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bounding_volume_box_t>())).tm as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_box_t),
            "::",
            stringify!(tm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bounding_volume_box_t>())).min as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_box_t),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bounding_volume_box_t>())).max as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_box_t),
            "::",
            stringify!(max)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bounding_volume_box_t>()))._padding_30 as *const _ as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bounding_volume_box_t),
            "::",
            stringify!(_padding_30)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_buddy_allocator_raw_api {
    pub init:
        ::std::option::Option<unsafe extern "C" fn(buffer: *mut u8, size: u32, block_size: u32)>,
    pub realloc: ::std::option::Option<
        unsafe extern "C" fn(
            buffer: *mut u8,
            ptr: *mut ::std::os::raw::c_void,
            old_size: u64,
            new_size: u64,
        ) -> *mut ::std::os::raw::c_void,
    >,
}
#[test]
fn bindgen_test_layout_tm_buddy_allocator_raw_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_buddy_allocator_raw_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_buddy_allocator_raw_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_buddy_allocator_raw_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_buddy_allocator_raw_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buddy_allocator_raw_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buddy_allocator_raw_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buddy_allocator_raw_api>())).realloc as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buddy_allocator_raw_api),
            "::",
            stringify!(realloc)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_buddy_allocator_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            backing: *mut tm_allocator_i,
            initial_size: u32,
            block_size: u32,
        ) -> *mut tm_allocator_i,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i)>,
}
#[test]
fn bindgen_test_layout_tm_buddy_allocator_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_buddy_allocator_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_buddy_allocator_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_buddy_allocator_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_buddy_allocator_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buddy_allocator_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buddy_allocator_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buddy_allocator_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buddy_allocator_api),
            "::",
            stringify!(destroy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_buffers_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_buffers_i {
    pub inst: *mut tm_buffers_o,
    pub allocate: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_buffers_o,
            size: u64,
            initialize: *const ::std::os::raw::c_void,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub add: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_buffers_o,
            data: *const ::std::os::raw::c_void,
            size: u64,
            hash: u64,
        ) -> u32,
    >,
    pub retain: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o, id: u32)>,
    pub release: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o, id: u32)>,
    pub get: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *const tm_buffers_o,
            id: u32,
            size: *mut u64,
        ) -> *const ::std::os::raw::c_void,
    >,
    pub size:
        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> u64>,
    pub hash:
        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> u64>,
    pub lookup:
        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, hash: u64) -> u32>,
    pub debug__refcount:
        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> u32>,
}
#[test]
fn bindgen_test_layout_tm_buffers_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_buffers_i>(),
        80usize,
        concat!("Size of: ", stringify!(tm_buffers_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_buffers_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_buffers_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).allocate as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(allocate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).add as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(add)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).retain as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(retain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).release as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).get as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(get)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).size as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).hash as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).lookup as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(lookup)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_i>())).debug__refcount as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_i),
            "::",
            stringify!(debug__refcount)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_streamable_buffers_i {
    pub __bindgen_padding_0: [u64; 10usize],
    pub map: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_buffers_o,
            path: *const ::std::os::raw::c_char,
            offset: u64,
            size: u64,
            hash: u64,
        ) -> u32,
    >,
    pub map_database: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_buffers_o,
            hash: u64,
            size: u64,
            file: *const tm_file_o,
            page_size: u32,
            page_header_size: u32,
            first_page: u32,
        ) -> u32,
    >,
    pub is_mapped:
        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> bool>,
    pub is_loaded:
        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> bool>,
    pub unload: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o, id: u32)>,
    pub save: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_buffers_o,
            id: u32,
            path: *const ::std::os::raw::c_char,
            offset: u64,
        ),
    >,
    pub background_load_all: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o)>,
    pub ensure_all_loaded: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o)>,
    pub set_io: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_buffers_o, io: *mut tm_os_file_io_api),
    >,
}
#[test]
fn bindgen_test_layout_tm_streamable_buffers_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_streamable_buffers_i>(),
        152usize,
        concat!("Size of: ", stringify!(tm_streamable_buffers_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_streamable_buffers_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_streamable_buffers_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_streamable_buffers_i>())).map as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(map)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_streamable_buffers_i>())).map_database as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(map_database)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_streamable_buffers_i>())).is_mapped as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(is_mapped)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_streamable_buffers_i>())).is_loaded as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(is_loaded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_streamable_buffers_i>())).unload as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(unload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_streamable_buffers_i>())).save as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(save)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_streamable_buffers_i>())).background_load_all as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(background_load_all)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_streamable_buffers_i>())).ensure_all_loaded as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(ensure_all_loaded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_streamable_buffers_i>())).set_io as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_streamable_buffers_i),
            "::",
            stringify!(set_io)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_buffers_api {
    pub create:
        ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_buffers_i>,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(i: *mut tm_buffers_i)>,
    pub create_streamable: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            io: *mut tm_os_file_io_api,
        ) -> *mut tm_streamable_buffers_i,
    >,
    pub destroy_streamable:
        ::std::option::Option<unsafe extern "C" fn(i: *mut tm_streamable_buffers_i)>,
}
#[test]
fn bindgen_test_layout_tm_buffers_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_buffers_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_buffers_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_buffers_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_buffers_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_buffers_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffers_api>())).create_streamable as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_api),
            "::",
            stringify!(create_streamable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffers_api>())).destroy_streamable as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffers_api),
            "::",
            stringify!(destroy_streamable)
        )
    );
}
pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_FLOAT: tm_buffer_component_type = 0;
pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_NORMALIZED_INTEGER:
    tm_buffer_component_type = 1;
pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_INTEGER: tm_buffer_component_type = 2;
pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_DEPTH_STENCIL:
    tm_buffer_component_type = 3;
pub type tm_buffer_component_type = ::std::os::raw::c_int;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC1_RGB:
    tm_buffer_compression_format = 0;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC1_RGBA:
    tm_buffer_compression_format = 1;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC2:
    tm_buffer_compression_format = 2;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC3:
    tm_buffer_compression_format = 3;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC4:
    tm_buffer_compression_format = 4;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC5:
    tm_buffer_compression_format = 5;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC6H_U:
    tm_buffer_compression_format = 6;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC6H_S:
    tm_buffer_compression_format = 7;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC7:
    tm_buffer_compression_format = 8;
pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_MAX_FORMATS:
    tm_buffer_compression_format = 9;
pub type tm_buffer_compression_format = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_buffer_format_api {
    pub encode_uncompressed_format: ::std::option::Option<
        unsafe extern "C" fn(
            component_type: u32,
            sign: bool,
            bits_x: u8,
            bits_y: u8,
            bits_z: u8,
            bits_w: u8,
        ) -> u32,
    >,
    pub encode_compressed_format:
        ::std::option::Option<unsafe extern "C" fn(compression_type: u32) -> u32>,
    pub is_compressed: ::std::option::Option<unsafe extern "C" fn(format: u32) -> bool>,
    pub decode_uncompressed: ::std::option::Option<
        unsafe extern "C" fn(
            format: u32,
            component_type: *mut u32,
            sign: *mut bool,
            bits_x: *mut u8,
            bits_y: *mut u8,
            bits_z: *mut u8,
            bits_w: *mut u8,
        ) -> bool,
    >,
    pub decode_compression_format: ::std::option::Option<
        unsafe extern "C" fn(format: u32, compression_format: *mut u32) -> bool,
    >,
    pub bits_per_element: ::std::option::Option<unsafe extern "C" fn(format: u32) -> u32>,
    pub num_components: ::std::option::Option<unsafe extern "C" fn(format: u32) -> u32>,
    pub human_readable: ::std::option::Option<
        unsafe extern "C" fn(
            format: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_buffer_format_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_buffer_format_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_buffer_format_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_buffer_format_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_buffer_format_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).encode_uncompressed_format as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(encode_uncompressed_format)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).encode_compressed_format as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(encode_compressed_format)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).is_compressed as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(is_compressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).decode_uncompressed as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(decode_uncompressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).decode_compression_format as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(decode_compression_format)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).bits_per_element as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(bits_per_element)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).num_components as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(num_components)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_buffer_format_api>())).human_readable as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_buffer_format_api),
            "::",
            stringify!(human_readable)
        )
    );
}
pub const tm_camera_transform_TM_CAMERA_TRANSFORM_DEFAULT: tm_camera_transform = 0;
pub const tm_camera_transform_TM_CAMERA_TRANSFORM_EYE_LEFT: tm_camera_transform = 1;
pub const tm_camera_transform_TM_CAMERA_TRANSFORM_EYE_RIGHT: tm_camera_transform = 2;
pub const tm_camera_transform_TM_CAMERA_TRANSFORM_MAX_TRANSFORMS: tm_camera_transform = 3;
pub type tm_camera_transform = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_camera_t {
    pub projection: [tm_mat44_t; 3usize],
    pub view: [tm_mat44_t; 3usize],
    pub near_plane: f32,
    pub far_plane: f32,
    pub vertical_fov: f32,
}
#[test]
fn bindgen_test_layout_tm_camera_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_camera_t>(),
        396usize,
        concat!("Size of: ", stringify!(tm_camera_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_camera_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_camera_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_t>())).projection as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_t),
            "::",
            stringify!(projection)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_t>())).view as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_t),
            "::",
            stringify!(view)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_t>())).near_plane as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_t),
            "::",
            stringify!(near_plane)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_t>())).far_plane as *const _ as usize },
        388usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_t),
            "::",
            stringify!(far_plane)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_t>())).vertical_fov as *const _ as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_t),
            "::",
            stringify!(vertical_fov)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_camera_api {
    pub view_from_transform: ::std::option::Option<
        unsafe extern "C" fn(view: *mut tm_mat44_t, tm: *const tm_transform_t) -> *mut tm_mat44_t,
    >,
    pub transform_from_view: ::std::option::Option<
        unsafe extern "C" fn(
            tm: *mut tm_transform_t,
            view: *const tm_mat44_t,
        ) -> *mut tm_transform_t,
    >,
    pub projection_from_frustum: ::std::option::Option<
        unsafe extern "C" fn(
            proj: *mut tm_mat44_t,
            left: f32,
            right: f32,
            bottom: f32,
            top: f32,
            near: f32,
            far: f32,
        ) -> *mut tm_mat44_t,
    >,
    pub projection_from_fov: ::std::option::Option<
        unsafe extern "C" fn(
            proj: *mut tm_mat44_t,
            near_plane: f32,
            far_plane: f32,
            vertical_fov: f32,
            aspect: f32,
        ) -> *mut tm_mat44_t,
    >,
    pub orthographic_from_frustum: ::std::option::Option<
        unsafe extern "C" fn(
            proj: *mut tm_mat44_t,
            left: f32,
            right: f32,
            bottom: f32,
            top: f32,
            near: f32,
            far: f32,
        ) -> *mut tm_mat44_t,
    >,
    pub update_free_flight: ::std::option::Option<
        unsafe extern "C" fn(tm: *mut tm_transform_t, t: tm_vec3_t, r: tm_vec2_t),
    >,
    pub update_pan: ::std::option::Option<
        unsafe extern "C" fn(
            tm: *mut tm_transform_t,
            focus_position: *mut tm_vec3_t,
            pan: tm_vec2_t,
        ),
    >,
    pub update_maya: ::std::option::Option<
        unsafe extern "C" fn(
            tm: *mut tm_transform_t,
            focus_position: tm_vec3_t,
            zoom: f32,
            rot: tm_vec2_t,
        ),
    >,
    pub world_to_screen: ::std::option::Option<
        unsafe extern "C" fn(
            camera: *const tm_camera_t,
            transform: tm_camera_transform,
            viewport: tm_rect_t,
            world: *const tm_vec3_t,
            screen: *mut tm_vec3_t,
            n: u32,
        ) -> *mut tm_vec3_t,
    >,
    pub screen_to_world: ::std::option::Option<
        unsafe extern "C" fn(
            camera: *const tm_camera_t,
            transform: tm_camera_transform,
            viewport: tm_rect_t,
            screen: *const tm_vec3_t,
            world: *mut tm_vec3_t,
            n: u32,
        ) -> *mut tm_vec3_t,
    >,
    pub meters_per_pixel: ::std::option::Option<
        unsafe extern "C" fn(distance: f32, vertical_fov: f32, viewport_height: f32) -> f32,
    >,
}
#[test]
fn bindgen_test_layout_tm_camera_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_camera_api>(),
        88usize,
        concat!("Size of: ", stringify!(tm_camera_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_camera_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_camera_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_api>())).view_from_transform as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(view_from_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_api>())).transform_from_view as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(transform_from_view)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_api>())).projection_from_frustum as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(projection_from_frustum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_api>())).projection_from_fov as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(projection_from_fov)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_api>())).orthographic_from_frustum as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(orthographic_from_frustum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_api>())).update_free_flight as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(update_free_flight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_api>())).update_pan as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(update_pan)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_api>())).update_maya as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(update_maya)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_api>())).world_to_screen as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(world_to_screen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_api>())).screen_to_world as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(screen_to_world)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_api>())).meters_per_pixel as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_api),
            "::",
            stringify!(meters_per_pixel)
        )
    );
}
pub const tm_collaboration_status_TM_COLLABORATION_STATUS_DISCONNECTED: tm_collaboration_status = 0;
pub const tm_collaboration_status_TM_COLLABORATION_STATUS_HOST_STARTING: tm_collaboration_status =
    1;
pub const tm_collaboration_status_TM_COLLABORATION_STATUS_HOST: tm_collaboration_status = 2;
pub const tm_collaboration_status_TM_COLLABORATION_STATUS_CONNECTING: tm_collaboration_status = 3;
pub const tm_collaboration_status_TM_COLLABORATION_STATUS_CLIENT: tm_collaboration_status = 4;
pub const tm_collaboration_status_TM_COLLABORATION_STATUS_ERROR: tm_collaboration_status = 5;
pub type tm_collaboration_status = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_config_t {
    pub tt: *mut tm_the_truth_o,
    pub ud: *mut ::std::os::raw::c_void,
    pub host_save_state: ::std::option::Option<
        unsafe extern "C" fn(
            ud: *mut ::std::os::raw::c_void,
            carray: *mut *mut ::std::os::raw::c_char,
            a: *mut tm_allocator_i,
        ),
    >,
    pub client_reset_truth: ::std::option::Option<
        unsafe extern "C" fn(ud: *mut ::std::os::raw::c_void) -> *mut tm_the_truth_o,
    >,
    pub client_decompress_state: ::std::option::Option<
        unsafe extern "C" fn(
            app_ud: *mut ::std::os::raw::c_void,
            state: *const ::std::os::raw::c_char,
            size: u64,
            allocator: *mut tm_allocator_i,
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub client_buffer_hashes: ::std::option::Option<
        unsafe extern "C" fn(
            ud: *mut ::std::os::raw::c_void,
            state: *const ::std::os::raw::c_char,
            size: u64,
            count: *mut u64,
        ) -> *const u64,
    >,
    pub client_load_state: ::std::option::Option<
        unsafe extern "C" fn(
            ud: *mut ::std::os::raw::c_void,
            state: *const ::std::os::raw::c_char,
            size: u64,
        ) -> bool,
    >,
    pub cache_dir: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_collaboration_config_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_collaboration_config_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_collaboration_config_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_collaboration_config_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_collaboration_config_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_config_t>())).tt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_config_t>())).ud as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(ud)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_config_t>())).host_save_state as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(host_save_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_config_t>())).client_reset_truth as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(client_reset_truth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_config_t>())).client_decompress_state
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(client_decompress_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_config_t>())).client_buffer_hashes as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(client_buffer_hashes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_config_t>())).client_load_state as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(client_load_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_config_t>())).cache_dir as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_config_t),
            "::",
            stringify!(cache_dir)
        )
    );
}
pub const tm_collaboration_session_type_TM_COLLABORATION_SESSION_TYPE_NONE:
    tm_collaboration_session_type = 0;
pub const tm_collaboration_session_type_TM_COLLABORATION_SESSION_TYPE_HOST:
    tm_collaboration_session_type = 1;
pub const tm_collaboration_session_type_TM_COLLABORATION_SESSION_TYPE_CLIENT:
    tm_collaboration_session_type = 2;
pub type tm_collaboration_session_type = ::std::os::raw::c_int;
pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_DISCONNECTED:
    tm_collaboration_session_status = 0;
pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_CONNECTING:
    tm_collaboration_session_status = 1;
pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_CONNECTED:
    tm_collaboration_session_status = 2;
pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_ERROR:
    tm_collaboration_session_status = 3;
pub type tm_collaboration_session_status = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_session_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_session_i {
    pub inst: *mut tm_collaboration_session_o,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o)>,
    pub architecture:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o) -> u64>,
    pub host_id:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o) -> u64>,
    pub get_client_request: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: *mut u64) -> bool,
    >,
    pub accept_client: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64),
    >,
    pub send: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_collaboration_session_o,
            client_id: u64,
            buf: *const u8,
            size: u64,
        ),
    >,
    pub flush: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o)>,
    pub update: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o)>,
    pub get_package_data: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_collaboration_session_o,
            client_id: u64,
            data: *mut u8,
            size: *mut u64,
        ) -> bool,
    >,
    pub close_client: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64),
    >,
    pub send_ping: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64),
    >,
    pub type_: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_collaboration_session_o,
        ) -> tm_collaboration_session_type,
    >,
    pub status: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_collaboration_session_o,
        ) -> tm_collaboration_session_status,
    >,
    pub is_client_alive: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64) -> bool,
    >,
    pub receive_progress: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *const tm_collaboration_session_o,
            bytes: *mut u64,
            total: *mut u64,
        ) -> bool,
    >,
    pub status_message: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_collaboration_session_o,
            buf: *mut ::std::os::raw::c_char,
            max_size: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_collaboration_session_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_collaboration_session_i>(),
        136usize,
        concat!("Size of: ", stringify!(tm_collaboration_session_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_collaboration_session_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_collaboration_session_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_session_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).architecture as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(architecture)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).host_id as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(host_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).get_client_request as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(get_client_request)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).accept_client as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(accept_client)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_session_i>())).send as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(send)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).flush as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(flush)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).update as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).get_package_data as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(get_package_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).close_client as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(close_client)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).send_ping as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(send_ping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).type_ as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).status as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).is_client_alive as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(is_client_alive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).receive_progress as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(receive_progress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_session_i>())).status_message as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_session_i),
            "::",
            stringify!(status_message)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            config: *const tm_collaboration_config_t,
        ) -> *mut tm_collaboration_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(coll: *mut tm_collaboration_o)>,
    pub status: ::std::option::Option<
        unsafe extern "C" fn(coll: *const tm_collaboration_o) -> tm_collaboration_status,
    >,
    pub is_downloading: ::std::option::Option<
        unsafe extern "C" fn(
            coll: *const tm_collaboration_o,
            bytes: *mut u64,
            total: *mut u64,
        ) -> bool,
    >,
    pub set_session: ::std::option::Option<
        unsafe extern "C" fn(
            coll: *mut tm_collaboration_o,
            session: *const tm_collaboration_session_i,
        ),
    >,
    pub session: ::std::option::Option<
        unsafe extern "C" fn(coll: *mut tm_collaboration_o) -> *mut tm_collaboration_session_i,
    >,
    pub disconnect: ::std::option::Option<unsafe extern "C" fn(coll: *mut tm_collaboration_o)>,
    pub update: ::std::option::Option<unsafe extern "C" fn(coll: *mut tm_collaboration_o)>,
    pub handle: ::std::option::Option<
        unsafe extern "C" fn(coll: *const tm_collaboration_o) -> *const ::std::os::raw::c_char,
    >,
    pub set_handle: ::std::option::Option<
        unsafe extern "C" fn(c: *mut tm_collaboration_o, handle: *mut ::std::os::raw::c_char),
    >,
    pub host_handle: ::std::option::Option<
        unsafe extern "C" fn(c: *const tm_collaboration_o) -> *const ::std::os::raw::c_char,
    >,
    pub num_clients:
        ::std::option::Option<unsafe extern "C" fn(coll: *const tm_collaboration_o) -> u32>,
    pub client_handle: ::std::option::Option<
        unsafe extern "C" fn(
            coll: *const tm_collaboration_o,
            i: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub all_handles: ::std::option::Option<
        unsafe extern "C" fn(
            coll: *const tm_collaboration_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut *const ::std::os::raw::c_char,
    >,
    pub send_chat: ::std::option::Option<
        unsafe extern "C" fn(coll: *mut tm_collaboration_o, msg: *const ::std::os::raw::c_char),
    >,
    pub num_chat_messages:
        ::std::option::Option<unsafe extern "C" fn(coll: *const tm_collaboration_o) -> u32>,
    pub chat_message: ::std::option::Option<
        unsafe extern "C" fn(
            coll: *const tm_collaboration_o,
            i: u32,
            sender: *mut *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub resynchronize_state: ::std::option::Option<
        unsafe extern "C" fn(coll: *mut tm_collaboration_o, tt: *mut tm_the_truth_o),
    >,
    pub send_test_packages: ::std::option::Option<
        unsafe extern "C" fn(coll: *mut tm_collaboration_o, size: u64, num: u32),
    >,
}
#[test]
fn bindgen_test_layout_tm_collaboration_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_collaboration_api>(),
        152usize,
        concat!("Size of: ", stringify!(tm_collaboration_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_collaboration_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_collaboration_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).status as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).is_downloading as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(is_downloading)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).set_session as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(set_session)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).session as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(session)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).disconnect as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(disconnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).update as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).handle as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(handle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).set_handle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(set_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).host_handle as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(host_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).num_clients as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(num_clients)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).client_handle as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(client_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).all_handles as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(all_handles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_api>())).send_chat as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(send_chat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).num_chat_messages as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(num_chat_messages)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).chat_message as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(chat_message)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).resynchronize_state as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(resynchronize_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_api>())).send_test_packages as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_api),
            "::",
            stringify!(send_test_packages)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_p2p_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_discovered_host_t {
    pub address: *const tm_socket_address_t,
    pub name: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_collaboration_discovered_host_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_collaboration_discovered_host_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_collaboration_discovered_host_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_collaboration_discovered_host_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_collaboration_discovered_host_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discovered_host_t>())).address as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discovered_host_t),
            "::",
            stringify!(address)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discovered_host_t>())).name as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discovered_host_t),
            "::",
            stringify!(name)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_p2p_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            coll: *mut tm_collaboration_o,
            allocator: *mut tm_allocator_i,
        ) -> *mut tm_collaboration_p2p_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(coll_p2p: *mut tm_collaboration_p2p_o)>,
    pub update: ::std::option::Option<unsafe extern "C" fn(coll_p2p: *mut tm_collaboration_p2p_o)>,
    pub host: ::std::option::Option<
        unsafe extern "C" fn(coll_p2p: *mut tm_collaboration_p2p_o, port: u32, use_upnp: bool),
    >,
    pub connect: ::std::option::Option<
        unsafe extern "C" fn(
            coll_p2p: *mut tm_collaboration_p2p_o,
            address: *const tm_socket_address_t,
        ),
    >,
    pub discovered_lan_hosts: ::std::option::Option<
        unsafe extern "C" fn(
            coll_p2p: *const tm_collaboration_p2p_o,
            hosts: *mut tm_collaboration_discovered_host_t,
            max_hosts: u32,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_collaboration_p2p_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_collaboration_p2p_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_collaboration_p2p_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_collaboration_p2p_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_collaboration_p2p_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_p2p_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_p2p_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_p2p_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_p2p_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_p2p_api>())).update as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_p2p_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_collaboration_p2p_api>())).host as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_p2p_api),
            "::",
            stringify!(host)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_p2p_api>())).connect as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_p2p_api),
            "::",
            stringify!(connect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_p2p_api>())).discovered_lan_hosts as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_p2p_api),
            "::",
            stringify!(discovered_lan_hosts)
        )
    );
}
pub const tm_config_type_TM_CONFIG_TYPE_NULL: tm_config_type = 0;
pub const tm_config_type_TM_CONFIG_TYPE_FALSE: tm_config_type = 1;
pub const tm_config_type_TM_CONFIG_TYPE_TRUE: tm_config_type = 2;
pub const tm_config_type_TM_CONFIG_TYPE_NUMBER: tm_config_type = 3;
pub const tm_config_type_TM_CONFIG_TYPE_STRING: tm_config_type = 4;
pub const tm_config_type_TM_CONFIG_TYPE_ARRAY: tm_config_type = 5;
pub const tm_config_type_TM_CONFIG_TYPE_OBJECT: tm_config_type = 6;
pub type tm_config_type = ::std::os::raw::c_int;
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct tm_config_item_t {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout_tm_config_item_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_config_item_t>(),
        4usize,
        concat!("Size of: ", stringify!(tm_config_item_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_config_item_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_config_item_t))
    );
}
impl tm_config_item_t {
    #[inline]
    pub fn type_(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn offset(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
    }
    #[inline]
    pub fn set_offset(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 29u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(type_: u32, offset: u32) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 3u8, {
            let type_: u32 = unsafe { ::std::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit.set(3usize, 29u8, {
            let offset: u32 = unsafe { ::std::mem::transmute(offset) };
            offset as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_config_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_config_i {
    pub inst: *mut tm_config_o,
    pub root:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_config_o) -> tm_config_item_t>,
    pub to_number: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_config_o, item: tm_config_item_t) -> f64,
    >,
    pub to_string: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            item: tm_config_item_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub to_array: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            item: tm_config_item_t,
            items: *mut *mut tm_config_item_t,
        ) -> u32,
    >,
    pub to_object: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            item: tm_config_item_t,
            keys: *mut *mut tm_config_item_t,
            values: *mut *mut tm_config_item_t,
        ) -> u32,
    >,
    pub add_number: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_config_o, n: f64) -> tm_config_item_t,
    >,
    pub add_string: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            s: *const ::std::os::raw::c_char,
        ) -> tm_config_item_t,
    >,
    pub add_array: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            items: *const tm_config_item_t,
            size: u32,
        ) -> tm_config_item_t,
    >,
    pub add_object: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            keys: *const tm_config_item_t,
            values: *const tm_config_item_t,
            size: u32,
        ) -> tm_config_item_t,
    >,
    pub add_object_with_string_keys: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            keys: *mut *const ::std::os::raw::c_char,
            values: *const tm_config_item_t,
            size: u32,
        ) -> tm_config_item_t,
    >,
    pub array_set: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            array: tm_config_item_t,
            i: u32,
            item: tm_config_item_t,
        ),
    >,
    pub array_push: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            array: tm_config_item_t,
            item: tm_config_item_t,
        ),
    >,
    pub object_get: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            object: tm_config_item_t,
            key_hash: u64,
        ) -> tm_config_item_t,
    >,
    pub object_update: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            object: tm_config_item_t,
            key_hash: u64,
            value: tm_config_item_t,
        ),
    >,
    pub object_add: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_config_o,
            object: tm_config_item_t,
            key: *const ::std::os::raw::c_char,
            value: tm_config_item_t,
        ),
    >,
    pub set_root:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_config_o, root: tm_config_item_t)>,
    pub copy:
        ::std::option::Option<unsafe extern "C" fn(dst: *mut tm_config_o, src: *mut tm_config_o)>,
    pub allocator:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_config_o) -> *mut tm_allocator_i>,
}
#[test]
fn bindgen_test_layout_tm_config_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_config_i>(),
        152usize,
        concat!("Size of: ", stringify!(tm_config_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_config_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_config_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).root as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).to_number as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(to_number)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).to_string as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(to_string)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).to_array as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(to_array)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).to_object as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(to_object)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).add_number as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(add_number)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).add_string as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(add_string)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).add_array as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(add_array)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).add_object as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(add_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_config_i>())).add_object_with_string_keys as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(add_object_with_string_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).array_set as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(array_set)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).array_push as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(array_push)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).object_get as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(object_get)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).object_update as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(object_update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).object_add as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(object_add)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).set_root as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(set_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).copy as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(copy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_i>())).allocator as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_i),
            "::",
            stringify!(allocator)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_config_api {
    pub create:
        ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_config_i>,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(cdi: *mut tm_config_i)>,
    pub c_null: tm_config_item_t,
    pub c_false: tm_config_item_t,
    pub c_true: tm_config_item_t,
    pub _padding_153: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_config_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_config_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_config_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_config_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_config_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_api>())).c_null as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_api),
            "::",
            stringify!(c_null)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_api>())).c_false as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_api),
            "::",
            stringify!(c_false)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_api>())).c_true as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_api),
            "::",
            stringify!(c_true)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_config_api>()))._padding_153 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_config_api),
            "::",
            stringify!(_padding_153)
        )
    );
}
pub const tm_core_create_policy_TM_CORE_CREATE_POLICY__CREATE: tm_core_create_policy = 0;
pub const tm_core_create_policy_TM_CORE_CREATE_POLICY__REMOVE: tm_core_create_policy = 1;
pub const tm_core_create_policy_TM_CORE_CREATE_POLICY__IGNORE: tm_core_create_policy = 2;
pub type tm_core_create_policy = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_core_asset_i {
    pub core_id: u64,
    pub path: *const ::std::os::raw::c_char,
    pub create_policy: tm_core_create_policy,
    pub _padding_60: [::std::os::raw::c_char; 4usize],
    pub version: u64,
    pub user_data: *const ::std::os::raw::c_void,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            user_data: *const ::std::os::raw::c_void,
        ) -> tm_tt_id_t,
    >,
    pub update: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            data_id: tm_tt_id_t,
            old_version: u64,
            user_data: *const ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_core_asset_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_core_asset_i>(),
        56usize,
        concat!("Size of: ", stringify!(tm_core_asset_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_core_asset_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_core_asset_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>())).core_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(core_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>())).path as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(path)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>())).create_policy as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(create_policy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>()))._padding_60 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(_padding_60)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>())).version as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>())).user_data as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(user_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>())).create as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_asset_i>())).update as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_asset_i),
            "::",
            stringify!(update)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_core_update_result_t {
    pub created_assets: *mut tm_tt_id_t,
    pub removed_assets: *mut tm_tt_id_t,
    pub updated_assets: *mut tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_core_update_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_core_update_result_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_core_update_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_core_update_result_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_core_update_result_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_core_update_result_t>())).created_assets as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_update_result_t),
            "::",
            stringify!(created_assets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_core_update_result_t>())).removed_assets as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_update_result_t),
            "::",
            stringify!(removed_assets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_core_update_result_t>())).updated_assets as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_update_result_t),
            "::",
            stringify!(updated_assets)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_core_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset_root_id: tm_tt_id_t),
    >,
    pub update: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            asset_root_id: tm_tt_id_t,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_core_update_result_t,
    >,
    pub locate_asset: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            asset_root_id: tm_tt_id_t,
            core_id: u64,
        ) -> tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_core_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_core_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_core_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_core_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_core_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_api>())).update as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_api>())).locate_asset as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_api),
            "::",
            stringify!(locate_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_core_importer_asset_t {
    pub id: u64,
    pub version: u64,
    pub path: *const ::std::os::raw::c_char,
    pub create_policy: u32,
    pub _padding_46: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_core_importer_asset_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_core_importer_asset_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_core_importer_asset_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_core_importer_asset_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_core_importer_asset_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_importer_asset_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_asset_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_core_importer_asset_t>())).version as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_asset_t),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_importer_asset_t>())).path as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_asset_t),
            "::",
            stringify!(path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_core_importer_asset_t>())).create_policy as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_asset_t),
            "::",
            stringify!(create_policy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_core_importer_asset_t>()))._padding_46 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_asset_t),
            "::",
            stringify!(_padding_46)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_core_importer_state_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_core_importer_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            user_tt: *mut tm_the_truth_o,
            user_asset_root: tm_tt_id_t,
            core_project_path: *const ::std::os::raw::c_char,
            output_path: *const ::std::os::raw::c_char,
        ) -> *mut tm_core_importer_state_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(state: *mut tm_core_importer_state_o)>,
    pub register_assets: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut tm_core_importer_state_o,
            to_register: *const tm_core_importer_asset_t,
            num_to_register: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_core_importer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_core_importer_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_core_importer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_core_importer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_core_importer_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_importer_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_core_importer_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_core_importer_api>())).register_assets as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_core_importer_api),
            "::",
            stringify!(register_assets)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_crash_recovery_can_recover_result_t {
    pub data: *const ::std::os::raw::c_char,
    pub data_bytes: u32,
    pub _padding_24: [::std::os::raw::c_char; 4usize],
    pub project: *const ::std::os::raw::c_char,
    pub root: *const tm_uuid_t,
}
#[test]
fn bindgen_test_layout_tm_crash_recovery_can_recover_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_crash_recovery_can_recover_result_t>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_crash_recovery_can_recover_result_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_crash_recovery_can_recover_result_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_crash_recovery_can_recover_result_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_can_recover_result_t>())).data as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_can_recover_result_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_can_recover_result_t>())).data_bytes
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_can_recover_result_t),
            "::",
            stringify!(data_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_can_recover_result_t>()))._padding_24
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_can_recover_result_t),
            "::",
            stringify!(_padding_24)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_can_recover_result_t>())).project as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_can_recover_result_t),
            "::",
            stringify!(project)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_can_recover_result_t>())).root as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_can_recover_result_t),
            "::",
            stringify!(root)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_crash_recovery_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_crash_recovery_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            recovery_path: *const ::std::os::raw::c_char,
        ) -> *mut tm_crash_recovery_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(cr: *mut tm_crash_recovery_o)>,
    pub start_recording: ::std::option::Option<
        unsafe extern "C" fn(
            cr: *mut tm_crash_recovery_o,
            project: *const ::std::os::raw::c_char,
            tt: *mut tm_the_truth_o,
            root: tm_tt_id_t,
        ),
    >,
    pub stop_recording: ::std::option::Option<unsafe extern "C" fn(cr: *mut tm_crash_recovery_o)>,
    pub update: ::std::option::Option<unsafe extern "C" fn(cr: *mut tm_crash_recovery_o)>,
    pub can_recover: ::std::option::Option<
        unsafe extern "C" fn(
            cr: *mut tm_crash_recovery_o,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_crash_recovery_can_recover_result_t,
    >,
    pub recover: ::std::option::Option<
        unsafe extern "C" fn(
            cr: *mut tm_crash_recovery_o,
            rd: tm_crash_recovery_can_recover_result_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_crash_recovery_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_crash_recovery_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_crash_recovery_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_crash_recovery_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_crash_recovery_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crash_recovery_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crash_recovery_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_api>())).start_recording as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_api),
            "::",
            stringify!(start_recording)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_api>())).stop_recording as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_api),
            "::",
            stringify!(stop_recording)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crash_recovery_api>())).update as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_crash_recovery_api>())).can_recover as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_api),
            "::",
            stringify!(can_recover)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crash_recovery_api>())).recover as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crash_recovery_api),
            "::",
            stringify!(recover)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_error_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_error_i {
    pub inst: *mut tm_error_o,
    pub errorf: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_error_o,
            file: *const ::std::os::raw::c_char,
            line: u32,
            format: *const ::std::os::raw::c_char,
            ...
        ),
    >,
    pub fatal: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_error_o,
            file: *const ::std::os::raw::c_char,
            line: u32,
            format: *const ::std::os::raw::c_char,
            ...
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_error_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_error_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_error_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_error_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_error_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_error_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_error_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_error_i>())).errorf as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_error_i),
            "::",
            stringify!(errorf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_error_i>())).fatal as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_error_i),
            "::",
            stringify!(fatal)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_error_api {
    pub log: *mut tm_error_i,
    pub def: *mut tm_error_i,
}
#[test]
fn bindgen_test_layout_tm_error_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_error_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_error_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_error_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_error_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_error_api>())).log as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_error_api),
            "::",
            stringify!(log)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_error_api>())).def as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_error_api),
            "::",
            stringify!(def)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_feature_flags_api {
    pub enabled: ::std::option::Option<unsafe extern "C" fn(flag: u64) -> bool>,
    pub set_enabled: ::std::option::Option<unsafe extern "C" fn(flag: u64, enabled: bool)>,
    pub all_enabled: ::std::option::Option<unsafe extern "C" fn(count: *mut u32) -> *const u64>,
}
#[test]
fn bindgen_test_layout_tm_feature_flags_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_feature_flags_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_feature_flags_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_feature_flags_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_feature_flags_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_feature_flags_api>())).enabled as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_feature_flags_api),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_feature_flags_api>())).set_enabled as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_feature_flags_api),
            "::",
            stringify!(set_enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_feature_flags_api>())).all_enabled as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_feature_flags_api),
            "::",
            stringify!(all_enabled)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_git_ignore_api {
    pub match_: ::std::option::Option<
        unsafe extern "C" fn(
            patterns: *const ::std::os::raw::c_char,
            path: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_git_ignore_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_git_ignore_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_git_ignore_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_git_ignore_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_git_ignore_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_git_ignore_api>())).match_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_git_ignore_api),
            "::",
            stringify!(match_)
        )
    );
}
pub const tm_image_type_TM_IMAGE_TYPE_1D: tm_image_type = 0;
pub const tm_image_type_TM_IMAGE_TYPE_2D: tm_image_type = 1;
pub const tm_image_type_TM_IMAGE_TYPE_3D: tm_image_type = 2;
pub const tm_image_type_TM_IMAGE_TYPE_CUBE: tm_image_type = 3;
pub type tm_image_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_t {
    pub type_: u32,
    pub pixel_format: u32,
    pub width: u32,
    pub height: u32,
    pub depth: u32,
    pub mip_levels: u32,
    pub layers: u32,
    pub size: u32,
}
#[test]
fn bindgen_test_layout_tm_image_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_image_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_image_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_image_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_image_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).pixel_format as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(pixel_format)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).width as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).height as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).depth as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(depth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).mip_levels as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(mip_levels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).layers as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(layers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_t>())).size as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_t),
            "::",
            stringify!(size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_archive_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_archive_i {
    pub inst: *mut tm_image_archive_o,
    pub read: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_image_archive_o,
            buffer: *mut ::std::os::raw::c_void,
            offset: u64,
            size: u32,
        ) -> u32,
    >,
    pub size: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_image_archive_o) -> u64>,
}
#[test]
fn bindgen_test_layout_tm_image_archive_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_image_archive_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_image_archive_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_image_archive_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_image_archive_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_archive_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_archive_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_archive_i>())).read as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_archive_i),
            "::",
            stringify!(read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_archive_i>())).size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_archive_i),
            "::",
            stringify!(size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_loader_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_loader_i {
    pub inst: *mut tm_image_loader_o,
    pub extensions_string: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_image_loader_o,
            output: *mut *mut ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
            separator: *const ::std::os::raw::c_char,
        ),
    >,
    pub description_string: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_image_loader_o,
            output: *mut *mut ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
            separator: *const ::std::os::raw::c_char,
        ),
    >,
    pub support_from_archive: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_image_loader_o,
            image_archive: *mut tm_image_archive_i,
        ) -> bool,
    >,
    pub support_from_extension: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_image_loader_o,
            extension: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub load_image: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_image_loader_o,
            image_archive: *mut tm_image_archive_i,
            image: *mut tm_image_t,
            bits: *mut u8,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_image_loader_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_image_loader_i>(),
        48usize,
        concat!("Size of: ", stringify!(tm_image_loader_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_image_loader_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_image_loader_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_loader_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_loader_i>())).extensions_string as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_i),
            "::",
            stringify!(extensions_string)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_loader_i>())).description_string as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_i),
            "::",
            stringify!(description_string)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_loader_i>())).support_from_archive as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_i),
            "::",
            stringify!(support_from_archive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_loader_i>())).support_from_extension as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_i),
            "::",
            stringify!(support_from_extension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_loader_i>())).load_image as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_i),
            "::",
            stringify!(load_image)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_loader_api {
    pub add_loader: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_image_loader_i)>,
    pub remove_loader: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_image_loader_i)>,
    pub loader_from_archive: ::std::option::Option<
        unsafe extern "C" fn(image_archive: *mut tm_image_archive_i) -> *mut tm_image_loader_i,
    >,
    pub loader_from_extension: ::std::option::Option<
        unsafe extern "C" fn(extension: *const ::std::os::raw::c_char) -> *mut tm_image_loader_i,
    >,
    pub loaders:
        ::std::option::Option<unsafe extern "C" fn(loaders: *mut *mut tm_image_loader_i) -> u32>,
}
#[test]
fn bindgen_test_layout_tm_image_loader_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_image_loader_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_image_loader_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_image_loader_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_image_loader_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_loader_api>())).add_loader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_api),
            "::",
            stringify!(add_loader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_loader_api>())).remove_loader as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_api),
            "::",
            stringify!(remove_loader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_loader_api>())).loader_from_archive as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_api),
            "::",
            stringify!(loader_from_archive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_loader_api>())).loader_from_extension as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_api),
            "::",
            stringify!(loader_from_extension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_loader_api>())).loaders as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_loader_api),
            "::",
            stringify!(loaders)
        )
    );
}
pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_NONE: tm_input_controller_type = 0;
pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_KEYBOARD: tm_input_controller_type = 1;
pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_MOUSE: tm_input_controller_type = 2;
pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_GAMEPAD: tm_input_controller_type = 3;
pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_TOUCH: tm_input_controller_type = 4;
pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_PEN: tm_input_controller_type = 5;
pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_OTHER: tm_input_controller_type = -1;
pub type tm_input_controller_type = ::std::os::raw::c_int;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_NONE: tm_input_mouse_item = 0;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_LEFT: tm_input_mouse_item = 1;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_RIGHT: tm_input_mouse_item = 2;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_MIDDLE: tm_input_mouse_item = 3;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_4: tm_input_mouse_item = 4;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_5: tm_input_mouse_item = 5;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_WHEEL: tm_input_mouse_item = 6;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_MOVE: tm_input_mouse_item = 7;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_POSITION: tm_input_mouse_item = 8;
pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_COUNT: tm_input_mouse_item = 9;
pub type tm_input_mouse_item = ::std::os::raw::c_int;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_NONE: tm_input_pen_item = 0;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_1: tm_input_pen_item = 1;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_2: tm_input_pen_item = 2;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_3: tm_input_pen_item = 3;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_4: tm_input_pen_item = 4;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_5: tm_input_pen_item = 5;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_WHEEL: tm_input_pen_item = 6;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_POSITION: tm_input_pen_item = 7;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_PRESSURE: tm_input_pen_item = 8;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_ROTATION: tm_input_pen_item = 9;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_TILT: tm_input_pen_item = 10;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_INVERTED: tm_input_pen_item = 11;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_ERASER: tm_input_pen_item = 12;
pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_COUNT: tm_input_pen_item = 13;
pub type tm_input_pen_item = ::std::os::raw::c_int;
pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_NONE: tm_input_touch_item = 0;
pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_TOUCH: tm_input_touch_item = 1;
pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_POSITION: tm_input_touch_item = 2;
pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_PRESSURE: tm_input_touch_item = 3;
pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_ORIENTATION: tm_input_touch_item = 4;
pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_COUNT: tm_input_touch_item = 5;
pub type tm_input_touch_item = ::std::os::raw::c_int;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NONE: tm_input_keyboard_item = 0;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LBUTTON: tm_input_keyboard_item = 1;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RBUTTON: tm_input_keyboard_item = 2;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CANCEL: tm_input_keyboard_item = 3;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MBUTTON: tm_input_keyboard_item = 4;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_XBUTTON1: tm_input_keyboard_item = 5;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_XBUTTON2: tm_input_keyboard_item = 6;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BACKSPACE: tm_input_keyboard_item = 8;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_TAB: tm_input_keyboard_item = 9;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CLEAR: tm_input_keyboard_item = 12;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ENTER: tm_input_keyboard_item = 13;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SHIFT: tm_input_keyboard_item = 16;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CONTROL: tm_input_keyboard_item = 17;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MENU: tm_input_keyboard_item = 18;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PAUSE: tm_input_keyboard_item = 19;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CAPSLOCK: tm_input_keyboard_item = 20;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KANA: tm_input_keyboard_item = 21;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_JUNJA: tm_input_keyboard_item = 23;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_FINAL: tm_input_keyboard_item = 24;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HANJA: tm_input_keyboard_item = 25;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KANJI: tm_input_keyboard_item = 25;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ESCAPE: tm_input_keyboard_item = 27;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CONVERT: tm_input_keyboard_item = 28;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NONCONVERT: tm_input_keyboard_item = 29;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ACCEPT: tm_input_keyboard_item = 30;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MODECHANGE: tm_input_keyboard_item = 31;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SPACE: tm_input_keyboard_item = 32;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PAGEUP: tm_input_keyboard_item = 33;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PAGEDOWN: tm_input_keyboard_item = 34;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_END: tm_input_keyboard_item = 35;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HOME: tm_input_keyboard_item = 36;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFT: tm_input_keyboard_item = 37;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_UP: tm_input_keyboard_item = 38;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHT: tm_input_keyboard_item = 39;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_DOWN: tm_input_keyboard_item = 40;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SELECT: tm_input_keyboard_item = 41;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PRINT: tm_input_keyboard_item = 42;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EXECUTE: tm_input_keyboard_item = 43;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PRINTSCREEN: tm_input_keyboard_item = 44;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INSERT: tm_input_keyboard_item = 45;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_DELETE: tm_input_keyboard_item = 46;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HELP: tm_input_keyboard_item = 47;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_0: tm_input_keyboard_item = 48;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_1: tm_input_keyboard_item = 49;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_2: tm_input_keyboard_item = 50;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_3: tm_input_keyboard_item = 51;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_4: tm_input_keyboard_item = 52;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_5: tm_input_keyboard_item = 53;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_6: tm_input_keyboard_item = 54;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_7: tm_input_keyboard_item = 55;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_8: tm_input_keyboard_item = 56;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_9: tm_input_keyboard_item = 57;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_A: tm_input_keyboard_item = 65;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_B: tm_input_keyboard_item = 66;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_C: tm_input_keyboard_item = 67;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_D: tm_input_keyboard_item = 68;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_E: tm_input_keyboard_item = 69;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F: tm_input_keyboard_item = 70;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_G: tm_input_keyboard_item = 71;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_H: tm_input_keyboard_item = 72;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_I: tm_input_keyboard_item = 73;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_J: tm_input_keyboard_item = 74;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_K: tm_input_keyboard_item = 75;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_L: tm_input_keyboard_item = 76;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_M: tm_input_keyboard_item = 77;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_N: tm_input_keyboard_item = 78;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_O: tm_input_keyboard_item = 79;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_P: tm_input_keyboard_item = 80;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_Q: tm_input_keyboard_item = 81;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_R: tm_input_keyboard_item = 82;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_S: tm_input_keyboard_item = 83;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_T: tm_input_keyboard_item = 84;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_U: tm_input_keyboard_item = 85;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_V: tm_input_keyboard_item = 86;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_W: tm_input_keyboard_item = 87;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_X: tm_input_keyboard_item = 88;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_Y: tm_input_keyboard_item = 89;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_Z: tm_input_keyboard_item = 90;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LWIN: tm_input_keyboard_item = 91;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RWIN: tm_input_keyboard_item = 92;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_APPS: tm_input_keyboard_item = 93;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SLEEP: tm_input_keyboard_item = 95;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD0: tm_input_keyboard_item = 96;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD1: tm_input_keyboard_item = 97;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD2: tm_input_keyboard_item = 98;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD3: tm_input_keyboard_item = 99;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD4: tm_input_keyboard_item = 100;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD5: tm_input_keyboard_item = 101;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD6: tm_input_keyboard_item = 102;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD7: tm_input_keyboard_item = 103;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD8: tm_input_keyboard_item = 104;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD9: tm_input_keyboard_item = 105;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADASTERISK: tm_input_keyboard_item =
    106;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADPLUS: tm_input_keyboard_item = 107;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADENTER: tm_input_keyboard_item = 108;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADMINUS: tm_input_keyboard_item = 109;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADDOT: tm_input_keyboard_item = 110;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADSLASH: tm_input_keyboard_item = 111;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F1: tm_input_keyboard_item = 112;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F2: tm_input_keyboard_item = 113;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F3: tm_input_keyboard_item = 114;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F4: tm_input_keyboard_item = 115;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F5: tm_input_keyboard_item = 116;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F6: tm_input_keyboard_item = 117;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F7: tm_input_keyboard_item = 118;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F8: tm_input_keyboard_item = 119;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F9: tm_input_keyboard_item = 120;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F10: tm_input_keyboard_item = 121;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F11: tm_input_keyboard_item = 122;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F12: tm_input_keyboard_item = 123;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F13: tm_input_keyboard_item = 124;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F14: tm_input_keyboard_item = 125;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F15: tm_input_keyboard_item = 126;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F16: tm_input_keyboard_item = 127;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F17: tm_input_keyboard_item = 128;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F18: tm_input_keyboard_item = 129;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F19: tm_input_keyboard_item = 130;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F20: tm_input_keyboard_item = 131;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F21: tm_input_keyboard_item = 132;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F22: tm_input_keyboard_item = 133;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F23: tm_input_keyboard_item = 134;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F24: tm_input_keyboard_item = 135;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_VIEW: tm_input_keyboard_item =
    136;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_MENU: tm_input_keyboard_item =
    137;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_UP: tm_input_keyboard_item = 138;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_DOWN: tm_input_keyboard_item =
    139;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_LEFT: tm_input_keyboard_item =
    140;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_RIGHT: tm_input_keyboard_item =
    141;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_ACCEPT: tm_input_keyboard_item =
    142;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_CANCEL: tm_input_keyboard_item =
    143;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMLOCK: tm_input_keyboard_item = 144;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SCROLLLOCK: tm_input_keyboard_item = 145;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADEQUAL: tm_input_keyboard_item = 146;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_JISHO: tm_input_keyboard_item = 146;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_MASSHOU: tm_input_keyboard_item =
    147;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_TOUROKU: tm_input_keyboard_item =
    148;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_LOYA: tm_input_keyboard_item = 149;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_ROYA: tm_input_keyboard_item = 150;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTSHIFT: tm_input_keyboard_item = 160;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTSHIFT: tm_input_keyboard_item = 161;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTCONTROL: tm_input_keyboard_item = 162;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTCONTROL: tm_input_keyboard_item = 163;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTALT: tm_input_keyboard_item = 164;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTALT: tm_input_keyboard_item = 165;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_BACK: tm_input_keyboard_item = 166;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_FORWARD: tm_input_keyboard_item =
    167;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_REFRESH: tm_input_keyboard_item =
    168;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_STOP: tm_input_keyboard_item = 169;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SEARCH: tm_input_keyboard_item =
    170;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_FAVORITES: tm_input_keyboard_item =
    171;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_HOME: tm_input_keyboard_item = 172;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_VOLUME_MUTE: tm_input_keyboard_item = 173;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_VOLUME_DOWN: tm_input_keyboard_item = 174;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_VOLUME_UP: tm_input_keyboard_item = 175;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_NEXT_TRACK: tm_input_keyboard_item =
    176;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_PREV_TRACK: tm_input_keyboard_item =
    177;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_STOP: tm_input_keyboard_item = 178;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_PLAY_PAUSE: tm_input_keyboard_item =
    179;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_MAIL: tm_input_keyboard_item = 180;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_MEDIA_SELECT:
    tm_input_keyboard_item = 181;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_APP1: tm_input_keyboard_item = 182;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_APP2: tm_input_keyboard_item = 183;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SEMICOLON: tm_input_keyboard_item = 186;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EQUAL: tm_input_keyboard_item = 187;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COMMA: tm_input_keyboard_item = 188;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MINUS: tm_input_keyboard_item = 189;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_DOT: tm_input_keyboard_item = 190;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SLASH: tm_input_keyboard_item = 191;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GRAVE: tm_input_keyboard_item = 192;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_A: tm_input_keyboard_item = 195;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_B: tm_input_keyboard_item = 196;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_X: tm_input_keyboard_item = 197;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_Y: tm_input_keyboard_item = 198;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_SHOULDER:
    tm_input_keyboard_item = 199;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_SHOULDER:
    tm_input_keyboard_item = 200;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_TRIGGER:
    tm_input_keyboard_item = 201;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_TRIGGER:
    tm_input_keyboard_item = 202;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_UP: tm_input_keyboard_item =
    203;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_DOWN: tm_input_keyboard_item =
    204;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_LEFT: tm_input_keyboard_item =
    205;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_RIGHT: tm_input_keyboard_item =
    206;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_MENU: tm_input_keyboard_item = 207;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_VIEW: tm_input_keyboard_item = 208;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_BUTTON:
    tm_input_keyboard_item = 209;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_BUTTON:
    tm_input_keyboard_item = 210;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_UP:
    tm_input_keyboard_item = 211;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_DOWN:
    tm_input_keyboard_item = 212;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_RIGHT:
    tm_input_keyboard_item = 213;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_LEFT:
    tm_input_keyboard_item = 214;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_UP:
    tm_input_keyboard_item = 215;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_DOWN:
    tm_input_keyboard_item = 216;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_RIGHT:
    tm_input_keyboard_item = 217;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_LEFT:
    tm_input_keyboard_item = 218;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTBRACE: tm_input_keyboard_item = 219;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BACKSLASH: tm_input_keyboard_item = 220;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTBRACE: tm_input_keyboard_item = 221;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_APOSTROPHE: tm_input_keyboard_item = 222;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_8: tm_input_keyboard_item = 223;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_AX: tm_input_keyboard_item = 225;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_102: tm_input_keyboard_item = 226;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ICO_HELP: tm_input_keyboard_item = 227;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ICO_00: tm_input_keyboard_item = 228;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PROCESSKEY: tm_input_keyboard_item = 229;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ICO_CLEAR: tm_input_keyboard_item = 230;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PACKET: tm_input_keyboard_item = 231;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_RESET: tm_input_keyboard_item = 233;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_JUMP: tm_input_keyboard_item = 234;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_PA1: tm_input_keyboard_item = 235;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_PA2: tm_input_keyboard_item = 236;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_PA3: tm_input_keyboard_item = 237;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_WSCTRL: tm_input_keyboard_item = 238;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_CUSEL: tm_input_keyboard_item = 239;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_ATTN: tm_input_keyboard_item = 240;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FINISH: tm_input_keyboard_item = 241;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COPY: tm_input_keyboard_item = 242;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_AUTO: tm_input_keyboard_item = 243;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_ENLW: tm_input_keyboard_item = 244;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_BACKTAB: tm_input_keyboard_item = 245;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ATTN: tm_input_keyboard_item = 246;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CRSEL: tm_input_keyboard_item = 247;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EXSEL: tm_input_keyboard_item = 248;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EREOF: tm_input_keyboard_item = 249;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PLAY: tm_input_keyboard_item = 250;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ZOOM: tm_input_keyboard_item = 251;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NONAME: tm_input_keyboard_item = 252;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PA1: tm_input_keyboard_item = 253;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_CLEAR: tm_input_keyboard_item = 254;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HASHTILDE: tm_input_keyboard_item = 255;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_102ND: tm_input_keyboard_item = 256;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COMPOSE: tm_input_keyboard_item = 257;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_POWER: tm_input_keyboard_item = 258;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OPEN: tm_input_keyboard_item = 259;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PROPS: tm_input_keyboard_item = 260;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_FRONT: tm_input_keyboard_item = 261;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_STOP: tm_input_keyboard_item = 262;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_AGAIN: tm_input_keyboard_item = 263;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_UNDO: tm_input_keyboard_item = 264;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CUT: tm_input_keyboard_item = 265;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PASTE: tm_input_keyboard_item = 266;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_FIND: tm_input_keyboard_item = 267;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADCOMMA: tm_input_keyboard_item = 268;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RO: tm_input_keyboard_item = 269;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KATAKANAHIRAGANA: tm_input_keyboard_item =
    270;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_YEN: tm_input_keyboard_item = 271;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HENKAN: tm_input_keyboard_item = 272;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MUHENKAN: tm_input_keyboard_item = 273;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADJPCOMMA: tm_input_keyboard_item = 274;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INTERNATIONAL_7: tm_input_keyboard_item =
    275;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INTERNATIONAL_8: tm_input_keyboard_item =
    276;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INTERNATIONAL_9: tm_input_keyboard_item =
    277;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HANGEUL: tm_input_keyboard_item = 278;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KATAKANA: tm_input_keyboard_item = 279;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HIRAGANA: tm_input_keyboard_item = 280;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ZENKAKUHANKAKU: tm_input_keyboard_item =
    281;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_6: tm_input_keyboard_item = 282;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_7: tm_input_keyboard_item = 283;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_8: tm_input_keyboard_item = 284;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_9: tm_input_keyboard_item = 285;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADLEFTPAREN: tm_input_keyboard_item =
    286;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADRIGHTPAREN: tm_input_keyboard_item =
    287;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTMETA: tm_input_keyboard_item = 288;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTMETA: tm_input_keyboard_item = 289;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_EJECT: tm_input_keyboard_item = 290;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_VOLUME_UP: tm_input_keyboard_item =
    291;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_VOLUME_DOWN: tm_input_keyboard_item =
    292;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_MUTE: tm_input_keyboard_item = 293;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_WWW: tm_input_keyboard_item = 294;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SCROLLUP: tm_input_keyboard_item =
    295;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SCROLLDOWN: tm_input_keyboard_item =
    296;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_EDIT: tm_input_keyboard_item = 297;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SLEEP: tm_input_keyboard_item = 298;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_COFFEE: tm_input_keyboard_item =
    299;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_CALC: tm_input_keyboard_item = 300;
pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COUNT: tm_input_keyboard_item = 301;
pub type tm_input_keyboard_item = ::std::os::raw::c_int;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_NONE: tm_input_gamepad_item = 0;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_A: tm_input_gamepad_item = 1;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_B: tm_input_gamepad_item = 2;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_X: tm_input_gamepad_item = 3;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_Y: tm_input_gamepad_item = 4;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_LEFT_SHOULDER: tm_input_gamepad_item =
    5;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_RIGHT_SHOULDER: tm_input_gamepad_item =
    6;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_BACK: tm_input_gamepad_item = 7;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_START: tm_input_gamepad_item = 8;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_LEFT: tm_input_gamepad_item = 9;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_RIGHT: tm_input_gamepad_item = 10;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_UP: tm_input_gamepad_item = 11;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_DOWN: tm_input_gamepad_item = 12;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_BUTTON_LEFT_THUMB: tm_input_gamepad_item = 13;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_BUTTON_RIGHT_THUMB: tm_input_gamepad_item = 14;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_LEFT_TRIGGER: tm_input_gamepad_item =
    15;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_RIGHT_TRIGGER: tm_input_gamepad_item =
    16;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_LEFT_STICK: tm_input_gamepad_item = 17;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_RIGHT_STICK: tm_input_gamepad_item = 18;
pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_COUNT: tm_input_gamepad_item = 19;
pub type tm_input_gamepad_item = ::std::os::raw::c_int;
pub const tm_input_event_type_TM_INPUT_EVENT_TYPE_NONE: tm_input_event_type = 0;
pub const tm_input_event_type_TM_INPUT_EVENT_TYPE_DATA_CHANGE: tm_input_event_type = 1;
pub const tm_input_event_type_TM_INPUT_EVENT_TYPE_TEXT: tm_input_event_type = 2;
pub type tm_input_event_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_input_item_t {
    pub id: u64,
    pub name: *const ::std::os::raw::c_char,
    pub components: u32,
    pub _padding_412: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_input_item_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_input_item_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_input_item_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_input_item_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_input_item_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_item_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_item_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_item_t>())).name as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_item_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_item_t>())).components as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_item_t),
            "::",
            stringify!(components)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_item_t>()))._padding_412 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_item_t),
            "::",
            stringify!(_padding_412)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_input_data_t {
    pub __bindgen_anon_1: tm_input_data_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_input_data_t__bindgen_ty_1 {
    pub f: tm_vec4_t,
    pub codepoint: u32,
    _bindgen_union_align: [u32; 4usize],
}
#[test]
fn bindgen_test_layout_tm_input_data_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_input_data_t__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(tm_input_data_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_input_data_t__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_input_data_t__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_data_t__bindgen_ty_1>())).f as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_data_t__bindgen_ty_1),
            "::",
            stringify!(f)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_input_data_t__bindgen_ty_1>())).codepoint as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_data_t__bindgen_ty_1),
            "::",
            stringify!(codepoint)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_input_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_input_data_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_input_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_input_data_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_input_data_t))
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_input_event_t {
    pub time: u64,
    pub source: *mut tm_input_source_i,
    pub controller_id: u64,
    pub item_id: u64,
    pub type_: u64,
    pub data: tm_input_data_t,
    pub extra: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_input_event_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_input_event_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_input_event_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_input_event_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_input_event_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_event_t>())).time as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_event_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_event_t>())).source as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_event_t),
            "::",
            stringify!(source)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_event_t>())).controller_id as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_event_t),
            "::",
            stringify!(controller_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_event_t>())).item_id as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_event_t),
            "::",
            stringify!(item_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_event_t>())).type_ as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_event_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_event_t>())).data as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_event_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_event_t>())).extra as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_event_t),
            "::",
            stringify!(extra)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_input_source_i {
    pub controller_name: *const ::std::os::raw::c_char,
    pub controller_type: u32,
    pub _padding_464: [::std::os::raw::c_char; 4usize],
    pub controllers: ::std::option::Option<unsafe extern "C" fn(ids: *mut *mut u64) -> u32>,
    pub items: ::std::option::Option<unsafe extern "C" fn(items: *mut *mut tm_input_item_t) -> u32>,
    pub events: ::std::option::Option<
        unsafe extern "C" fn(start: u64, events: *mut tm_input_event_t, buffer_size: u64) -> u64,
    >,
    pub state:
        ::std::option::Option<unsafe extern "C" fn(controller: u64, item: u64) -> tm_input_data_t>,
}
#[test]
fn bindgen_test_layout_tm_input_source_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_input_source_i>(),
        48usize,
        concat!("Size of: ", stringify!(tm_input_source_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_input_source_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_input_source_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_input_source_i>())).controller_name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_source_i),
            "::",
            stringify!(controller_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_input_source_i>())).controller_type as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_source_i),
            "::",
            stringify!(controller_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_source_i>()))._padding_464 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_source_i),
            "::",
            stringify!(_padding_464)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_source_i>())).controllers as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_source_i),
            "::",
            stringify!(controllers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_source_i>())).items as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_source_i),
            "::",
            stringify!(items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_source_i>())).events as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_source_i),
            "::",
            stringify!(events)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_source_i>())).state as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_source_i),
            "::",
            stringify!(state)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_input_api {
    pub add_source: ::std::option::Option<unsafe extern "C" fn(source: *mut tm_input_source_i)>,
    pub remove_source: ::std::option::Option<unsafe extern "C" fn(source: *mut tm_input_source_i)>,
    pub sources: ::std::option::Option<
        unsafe extern "C" fn(sources: *mut *mut *mut tm_input_source_i) -> u32,
    >,
    pub events: ::std::option::Option<
        unsafe extern "C" fn(start: u64, events: *mut tm_input_event_t, buffer_size: u64) -> u64,
    >,
    pub keyboard_item_names:
        ::std::option::Option<unsafe extern "C" fn() -> *mut *const ::std::os::raw::c_char>,
}
#[test]
fn bindgen_test_layout_tm_input_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_input_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_input_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_input_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_input_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_api>())).add_source as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_api),
            "::",
            stringify!(add_source)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_api>())).remove_source as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_api),
            "::",
            stringify!(remove_source)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_api>())).sources as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_api),
            "::",
            stringify!(sources)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_input_api>())).events as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_api),
            "::",
            stringify!(events)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_input_api>())).keyboard_item_names as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_input_api),
            "::",
            stringify!(keyboard_item_names)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_integration_test_runner_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_integration_test_runner_i {
    pub inst: *mut tm_integration_test_runner_o,
    pub context: u64,
    pub app: *mut tm_application_o,
    pub wait: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_integration_test_runner_o, sec: f32, id: u64) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_integration_test_runner_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_integration_test_runner_i>(),
        32usize,
        concat!("Size of: ", stringify!(tm_integration_test_runner_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_integration_test_runner_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_integration_test_runner_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_i>())).inst as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_i>())).context as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_i),
            "::",
            stringify!(context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_i>())).app as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_i),
            "::",
            stringify!(app)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_i>())).wait as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_i),
            "::",
            stringify!(wait)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_integration_test_i {
    pub name: *const ::std::os::raw::c_char,
    pub context: u64,
    pub tick: ::std::option::Option<unsafe extern "C" fn(arg1: *mut tm_integration_test_runner_i)>,
}
#[test]
fn bindgen_test_layout_tm_integration_test_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_integration_test_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_integration_test_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_integration_test_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_integration_test_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_integration_test_i>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_i),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_integration_test_i>())).context as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_i),
            "::",
            stringify!(context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_integration_test_i>())).tick as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_i),
            "::",
            stringify!(tick)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_atomic_counter_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_jobdecl_t {
    pub task: ::std::option::Option<unsafe extern "C" fn(data: *mut ::std::os::raw::c_void)>,
    pub data: *mut ::std::os::raw::c_void,
    pub pin_thread_handle: u32,
    pub _padding_20: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_jobdecl_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_jobdecl_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_jobdecl_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_jobdecl_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_jobdecl_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_jobdecl_t>())).task as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_jobdecl_t),
            "::",
            stringify!(task)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_jobdecl_t>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_jobdecl_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_jobdecl_t>())).pin_thread_handle as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_jobdecl_t),
            "::",
            stringify!(pin_thread_handle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_jobdecl_t>()))._padding_20 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_jobdecl_t),
            "::",
            stringify!(_padding_20)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_job_system_api {
    pub run_jobs: ::std::option::Option<
        unsafe extern "C" fn(jobs: *mut tm_jobdecl_t, num_jobs: u32) -> *mut tm_atomic_counter_o,
    >,
    pub run_jobs_and_auto_free_counter:
        ::std::option::Option<unsafe extern "C" fn(jobs: *mut tm_jobdecl_t, num_jobs: u32)>,
    pub wait_for_counter:
        ::std::option::Option<unsafe extern "C" fn(counter: *mut tm_atomic_counter_o, value: u32)>,
    pub wait_for_counter_and_free:
        ::std::option::Option<unsafe extern "C" fn(counter: *mut tm_atomic_counter_o)>,
    pub wait_for_counter_and_free_no_fiber:
        ::std::option::Option<unsafe extern "C" fn(counter: *mut tm_atomic_counter_o)>,
    pub pin_thread_handle:
        ::std::option::Option<unsafe extern "C" fn(worker_thread_idx: u32) -> u32>,
    pub num_worker_threads: ::std::option::Option<unsafe extern "C" fn() -> u32>,
}
#[test]
fn bindgen_test_layout_tm_job_system_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_job_system_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_job_system_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_job_system_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_job_system_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_job_system_api>())).run_jobs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_job_system_api),
            "::",
            stringify!(run_jobs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_job_system_api>())).run_jobs_and_auto_free_counter as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_job_system_api),
            "::",
            stringify!(run_jobs_and_auto_free_counter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_job_system_api>())).wait_for_counter as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_job_system_api),
            "::",
            stringify!(wait_for_counter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_job_system_api>())).wait_for_counter_and_free as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_job_system_api),
            "::",
            stringify!(wait_for_counter_and_free)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_job_system_api>())).wait_for_counter_and_free_no_fiber
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_job_system_api),
            "::",
            stringify!(wait_for_counter_and_free_no_fiber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_job_system_api>())).pin_thread_handle as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_job_system_api),
            "::",
            stringify!(pin_thread_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_job_system_api>())).num_worker_threads as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_job_system_api),
            "::",
            stringify!(num_worker_threads)
        )
    );
}
pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_ALLOW_UNQUOTED_KEYS: tm_json_parse_ext = 1;
pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_ALLOW_COMMENTS: tm_json_parse_ext = 2;
pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_IMPLICIT_ROOT_OBJECT: tm_json_parse_ext = 4;
pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_OPTIONAL_COMMAS: tm_json_parse_ext = 8;
pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_EQUALS_FOR_COLON: tm_json_parse_ext = 16;
pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_LUA_QUOTING: tm_json_parse_ext = 32;
pub type tm_json_parse_ext = ::std::os::raw::c_int;
pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_PREFER_UNQUOTED_KEYS: tm_json_generate_ext = 1;
pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_IMPLICIT_ROOT_OBJECT: tm_json_generate_ext = 4;
pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_NO_COMMAS: tm_json_generate_ext = 8;
pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_USE_EQUALS_INSTEAD_OF_COLON:
    tm_json_generate_ext = 16;
pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_USE_LUA_QUOTING: tm_json_generate_ext = 32;
pub const tm_json_generate_ext_TM_JSON_GENERATE_INLINE_SMALL_ARRAYS: tm_json_generate_ext = 64;
pub const tm_json_generate_ext_TM_JSON_GENERATE_INLINE_SMALL_OBJECTS: tm_json_generate_ext = 128;
pub const tm_json_generate_ext_TM_JSON_GENERATE_INDENT_WITH_TABS: tm_json_generate_ext = 256;
pub type tm_json_generate_ext = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_json_line_info_t {
    pub config_item: u32,
    pub line_number: u32,
}
#[test]
fn bindgen_test_layout_tm_json_line_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_json_line_info_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_json_line_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_json_line_info_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_json_line_info_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_line_info_t>())).config_item as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_line_info_t),
            "::",
            stringify!(config_item)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_line_info_t>())).line_number as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_line_info_t),
            "::",
            stringify!(line_number)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_json_parse_info_t {
    pub success: bool,
    pub error: [::std::os::raw::c_char; 80usize],
    pub _padding_97: [::std::os::raw::c_char; 3usize],
    pub num_line_info: u32,
    pub allocated_line_info: u32,
    pub line_info: [tm_json_line_info_t; 1usize],
}
#[test]
fn bindgen_test_layout_tm_json_parse_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_json_parse_info_t>(),
        100usize,
        concat!("Size of: ", stringify!(tm_json_parse_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_json_parse_info_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_json_parse_info_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_parse_info_t>())).success as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_parse_info_t),
            "::",
            stringify!(success)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_parse_info_t>())).error as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_parse_info_t),
            "::",
            stringify!(error)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_json_parse_info_t>()))._padding_97 as *const _ as usize
        },
        81usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_parse_info_t),
            "::",
            stringify!(_padding_97)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_json_parse_info_t>())).num_line_info as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_parse_info_t),
            "::",
            stringify!(num_line_info)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_json_parse_info_t>())).allocated_line_info as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_parse_info_t),
            "::",
            stringify!(allocated_line_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_parse_info_t>())).line_info as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_parse_info_t),
            "::",
            stringify!(line_info)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_json_generate_t {
    pub s: *mut ::std::os::raw::c_char,
    pub len: u32,
    pub allocated: u32,
}
#[test]
fn bindgen_test_layout_tm_json_generate_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_json_generate_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_json_generate_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_json_generate_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_json_generate_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_generate_t>())).s as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_generate_t),
            "::",
            stringify!(s)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_generate_t>())).len as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_generate_t),
            "::",
            stringify!(len)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_generate_t>())).allocated as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_generate_t),
            "::",
            stringify!(allocated)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_json_api {
    pub parse: ::std::option::Option<
        unsafe extern "C" fn(
            s: *const ::std::os::raw::c_char,
            config: *mut tm_config_i,
            extensions: tm_json_parse_ext,
            error: *mut ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub parse_with_line_info: ::std::option::Option<
        unsafe extern "C" fn(
            s: *const ::std::os::raw::c_char,
            config: *mut tm_config_i,
            extensions: tm_json_parse_ext,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_json_parse_info_t,
    >,
    pub line_number: ::std::option::Option<
        unsafe extern "C" fn(pi: *const tm_json_parse_info_t, item: *const tm_config_item_t) -> u32,
    >,
    pub generate: ::std::option::Option<
        unsafe extern "C" fn(
            config: *mut tm_config_i,
            flags: tm_json_generate_ext,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_json_generate_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_json_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_json_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_json_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_json_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_json_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_api>())).parse as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_api),
            "::",
            stringify!(parse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_json_api>())).parse_with_line_info as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_api),
            "::",
            stringify!(parse_with_line_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_api>())).line_number as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_api),
            "::",
            stringify!(line_number)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_json_api>())).generate as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_json_api),
            "::",
            stringify!(generate)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_localizer_strings_t {
    pub num_strings: u32,
    pub stride_bytes: u32,
    pub strings: *const *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_localizer_strings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_localizer_strings_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_localizer_strings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_localizer_strings_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_localizer_strings_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_localizer_strings_t>())).num_strings as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_localizer_strings_t),
            "::",
            stringify!(num_strings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_localizer_strings_t>())).stride_bytes as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_localizer_strings_t),
            "::",
            stringify!(stride_bytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_localizer_strings_t>())).strings as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_localizer_strings_t),
            "::",
            stringify!(strings)
        )
    );
}
pub type tm_localizer_strings_i =
    ::std::option::Option<unsafe extern "C" fn(language: u64) -> tm_localizer_strings_t>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_localizer_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_localizer_i {
    pub inst: *mut tm_localizer_o,
    pub localize: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_localizer_o,
            s: *const ::std::os::raw::c_char,
            context: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_localizer_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_localizer_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_localizer_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_localizer_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_localizer_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_localizer_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_localizer_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_localizer_i>())).localize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_localizer_i),
            "::",
            stringify!(localize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_localizer_api {
    pub def: *mut *mut tm_localizer_i,
    pub passthrough: *mut tm_localizer_i,
}
#[test]
fn bindgen_test_layout_tm_localizer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_localizer_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_localizer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_localizer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_localizer_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_localizer_api>())).def as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_localizer_api),
            "::",
            stringify!(def)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_localizer_api>())).passthrough as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_localizer_api),
            "::",
            stringify!(passthrough)
        )
    );
}
pub const tm_log_type_TM_LOG_TYPE_INFO: tm_log_type = 0;
pub const tm_log_type_TM_LOG_TYPE_DEBUG: tm_log_type = 1;
pub const tm_log_type_TM_LOG_TYPE_ERROR: tm_log_type = 2;
pub type tm_log_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_logger_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_logger_i {
    pub inst: *mut tm_logger_o,
    pub log: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_logger_o,
            log_type: tm_log_type,
            msg: *const ::std::os::raw::c_char,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_logger_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_logger_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_logger_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_logger_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_logger_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_logger_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_logger_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_logger_i>())).log as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_logger_i),
            "::",
            stringify!(log)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_logger_api {
    pub add_logger: ::std::option::Option<unsafe extern "C" fn(logger: *const tm_logger_i)>,
    pub remove_logger: ::std::option::Option<unsafe extern "C" fn(logger: *const tm_logger_i)>,
    pub print: ::std::option::Option<
        unsafe extern "C" fn(log_type: tm_log_type, msg: *const ::std::os::raw::c_char),
    >,
    pub printf: ::std::option::Option<
        unsafe extern "C" fn(
            log_type: tm_log_type,
            format: *const ::std::os::raw::c_char,
            ...
        ) -> ::std::os::raw::c_int,
    >,
    pub default_logger: *mut tm_logger_i,
}
#[test]
fn bindgen_test_layout_tm_logger_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_logger_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_logger_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_logger_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_logger_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_logger_api>())).add_logger as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_logger_api),
            "::",
            stringify!(add_logger)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_logger_api>())).remove_logger as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_logger_api),
            "::",
            stringify!(remove_logger)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_logger_api>())).print as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_logger_api),
            "::",
            stringify!(print)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_logger_api>())).printf as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_logger_api),
            "::",
            stringify!(printf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_logger_api>())).default_logger as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_logger_api),
            "::",
            stringify!(default_logger)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_lz4_api {
    pub compress: ::std::option::Option<
        unsafe extern "C" fn(
            src: *const ::std::os::raw::c_char,
            src_size: u32,
            dst: *mut ::std::os::raw::c_char,
            dst_capacity: u32,
        ) -> u32,
    >,
    pub decompress: ::std::option::Option<
        unsafe extern "C" fn(
            src: *const ::std::os::raw::c_char,
            src_size: u32,
            dst: *mut ::std::os::raw::c_char,
            dst_capacity: u32,
        ) -> u32,
    >,
    pub compress_bound: ::std::option::Option<unsafe extern "C" fn(src_size: u32) -> u32>,
}
#[test]
fn bindgen_test_layout_tm_lz4_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_lz4_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_lz4_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_lz4_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_lz4_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_lz4_api>())).compress as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lz4_api),
            "::",
            stringify!(compress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_lz4_api>())).decompress as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lz4_api),
            "::",
            stringify!(decompress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_lz4_api>())).compress_bound as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lz4_api),
            "::",
            stringify!(compress_bound)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_math_api {
    pub mat44_multiply: ::std::option::Option<
        unsafe extern "C" fn(res: *mut tm_mat44_t, lhs: *const tm_mat44_t, rhs: *const tm_mat44_t),
    >,
    pub mat44_inverse:
        ::std::option::Option<unsafe extern "C" fn(res: *mut tm_mat44_t, m: *const tm_mat44_t)>,
    pub mat44_determinant: ::std::option::Option<unsafe extern "C" fn(m: *const tm_mat44_t) -> f32>,
    pub mat44_determinant33:
        ::std::option::Option<unsafe extern "C" fn(m: *const tm_mat44_t) -> f32>,
    pub mat44_to_quaternion:
        ::std::option::Option<unsafe extern "C" fn(m: *const tm_mat44_t) -> tm_vec4_t>,
    pub mat44_to_translation_quaternion_scale: ::std::option::Option<
        unsafe extern "C" fn(
            t: *mut tm_vec3_t,
            r: *mut tm_vec4_t,
            s: *mut tm_vec3_t,
            m: *const tm_mat44_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_math_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_math_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_math_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_math_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_math_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_math_api>())).mat44_multiply as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_math_api),
            "::",
            stringify!(mat44_multiply)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_math_api>())).mat44_inverse as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_math_api),
            "::",
            stringify!(mat44_inverse)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_math_api>())).mat44_determinant as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_math_api),
            "::",
            stringify!(mat44_determinant)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_math_api>())).mat44_determinant33 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_math_api),
            "::",
            stringify!(mat44_determinant33)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_math_api>())).mat44_to_quaternion as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_math_api),
            "::",
            stringify!(mat44_to_quaternion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_math_api>())).mat44_to_translation_quaternion_scale
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_math_api),
            "::",
            stringify!(mat44_to_translation_quaternion_scale)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_memory_tracker_scope_data_t {
    pub desc: *const ::std::os::raw::c_char,
    pub allocated_bytes: u64,
    pub allocation_count: u64,
    pub parent: u32,
    pub num_children: u32,
    pub tracing_enabled: bool,
    pub _padding_42: [::std::os::raw::c_char; 3usize],
    pub trace_count: u32,
}
#[test]
fn bindgen_test_layout_tm_memory_tracker_scope_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_memory_tracker_scope_data_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_memory_tracker_scope_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_memory_tracker_scope_data_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_memory_tracker_scope_data_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>())).desc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(desc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>())).allocated_bytes as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(allocated_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>())).allocation_count as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(allocation_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>())).parent as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(parent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>())).num_children as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(num_children)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>())).tracing_enabled as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(tracing_enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>()))._padding_42 as *const _
                as usize
        },
        33usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(_padding_42)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_scope_data_t>())).trace_count as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_scope_data_t),
            "::",
            stringify!(trace_count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_memory_tracker_trace_data_t {
    pub file: *const ::std::os::raw::c_char,
    pub line: u32,
    pub scope: u32,
    pub allocated_bytes: u64,
    pub allocation_count: u64,
}
#[test]
fn bindgen_test_layout_tm_memory_tracker_trace_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_memory_tracker_trace_data_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_memory_tracker_trace_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_memory_tracker_trace_data_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_memory_tracker_trace_data_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_trace_data_t>())).file as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_trace_data_t),
            "::",
            stringify!(file)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_trace_data_t>())).line as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_trace_data_t),
            "::",
            stringify!(line)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_trace_data_t>())).scope as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_trace_data_t),
            "::",
            stringify!(scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_trace_data_t>())).allocated_bytes as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_trace_data_t),
            "::",
            stringify!(allocated_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_trace_data_t>())).allocation_count as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_trace_data_t),
            "::",
            stringify!(allocation_count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_memory_tracker_api {
    pub check_for_leaked_scopes: ::std::option::Option<unsafe extern "C" fn()>,
    pub create_scope: ::std::option::Option<
        unsafe extern "C" fn(desc: *const ::std::os::raw::c_char, parent_scope: u32) -> u32,
    >,
    pub destroy_scope: ::std::option::Option<unsafe extern "C" fn(s: u32)>,
    pub destroy_scope_allowing_leaks:
        ::std::option::Option<unsafe extern "C" fn(scope: u32, max_leaked_bytes: u64)>,
    pub record_realloc: ::std::option::Option<
        unsafe extern "C" fn(
            old_ptr: *mut ::std::os::raw::c_void,
            old_size: u64,
            new_ptr: *mut ::std::os::raw::c_void,
            new_size: u64,
            file: *const ::std::os::raw::c_char,
            line: u32,
            scope: u32,
        ),
    >,
    pub allocated_bytes: ::std::option::Option<unsafe extern "C" fn(scope: u32) -> u64>,
    pub allocation_count: ::std::option::Option<unsafe extern "C" fn(scope: u32) -> u64>,
    pub set_scope_tracing: ::std::option::Option<unsafe extern "C" fn(scope: u32, enabled: bool)>,
    pub scope_data_snapshot: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *mut tm_memory_tracker_scope_data_t,
    >,
    pub trace_data_snapshot: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *mut tm_memory_tracker_trace_data_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_memory_tracker_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_memory_tracker_api>(),
        80usize,
        concat!("Size of: ", stringify!(tm_memory_tracker_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_memory_tracker_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_memory_tracker_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).check_for_leaked_scopes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(check_for_leaked_scopes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).create_scope as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(create_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).destroy_scope as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(destroy_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).destroy_scope_allowing_leaks
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(destroy_scope_allowing_leaks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).record_realloc as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(record_realloc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).allocated_bytes as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(allocated_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).allocation_count as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(allocation_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).set_scope_tracing as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(set_scope_tracing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).scope_data_snapshot as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(scope_data_snapshot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_memory_tracker_api>())).trace_data_snapshot as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_memory_tracker_api),
            "::",
            stringify!(trace_data_snapshot)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_file_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_file_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_file_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_file_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_file_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_file_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_file_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_file_system_watcher_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_file_system_watcher_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_file_system_watcher_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_file_system_watcher_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_file_system_watcher_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_file_system_watcher_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_file_system_watcher_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_system_watcher_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dll_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_dll_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_dll_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_dll_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dll_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dll_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_dll_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dll_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_socket_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_socket_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_socket_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_socket_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_socket_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_socket_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_socket_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_socket_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_file_time_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_file_time_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_file_time_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_file_time_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_file_time_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_file_time_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_file_time_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_time_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_critical_section_o {
    pub opaque: [u8; 64usize],
}
#[test]
fn bindgen_test_layout_tm_critical_section_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_critical_section_o>(),
        64usize,
        concat!("Size of: ", stringify!(tm_critical_section_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_critical_section_o>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_critical_section_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_critical_section_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_critical_section_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_semaphore_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_semaphore_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_semaphore_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_semaphore_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_semaphore_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_semaphore_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_semaphore_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_semaphore_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_thread_o {
    pub opaque: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_tm_thread_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_thread_o>(),
        16usize,
        concat!("Size of: ", stringify!(tm_thread_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_thread_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_thread_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_thread_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_thread_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_fiber_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_fiber_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_fiber_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_fiber_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_fiber_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_fiber_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_fiber_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fiber_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_socket_address_t {
    pub __bindgen_anon_1: tm_socket_address_t__bindgen_ty_1,
    pub port: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_socket_address_t__bindgen_ty_1 {
    pub ip: u32,
    pub ip_byte: [u8; 4usize],
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_tm_socket_address_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_socket_address_t__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(tm_socket_address_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_socket_address_t__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_socket_address_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_socket_address_t__bindgen_ty_1>())).ip as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_socket_address_t__bindgen_ty_1),
            "::",
            stringify!(ip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_socket_address_t__bindgen_ty_1>())).ip_byte as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_socket_address_t__bindgen_ty_1),
            "::",
            stringify!(ip_byte)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_socket_address_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_socket_address_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_socket_address_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_socket_address_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_socket_address_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_socket_address_t>())).port as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_socket_address_t),
            "::",
            stringify!(port)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_file_stat_t {
    pub exists: bool,
    pub is_directory: bool,
    pub _padding_106: [::std::os::raw::c_char; 6usize],
    pub last_modified_time: tm_file_time_o,
    pub size: u64,
}
#[test]
fn bindgen_test_layout_tm_file_stat_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_file_stat_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_file_stat_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_file_stat_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_file_stat_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_file_stat_t>())).exists as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_stat_t),
            "::",
            stringify!(exists)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_file_stat_t>())).is_directory as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_stat_t),
            "::",
            stringify!(is_directory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_file_stat_t>()))._padding_106 as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_stat_t),
            "::",
            stringify!(_padding_106)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_file_stat_t>())).last_modified_time as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_stat_t),
            "::",
            stringify!(last_modified_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_file_stat_t>())).size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_file_stat_t),
            "::",
            stringify!(size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_strings_t {
    pub count: u32,
    pub bytes: u32,
}
#[test]
fn bindgen_test_layout_tm_strings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_strings_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_strings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_strings_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_strings_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_strings_t>())).count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_strings_t),
            "::",
            stringify!(count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_strings_t>())).bytes as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_strings_t),
            "::",
            stringify!(bytes)
        )
    );
}
pub type tm_thread_entry_f =
    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
pub type tm_fiber_entry_f =
    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_virtual_memory_api {
    pub map: ::std::option::Option<unsafe extern "C" fn(size: u64) -> *mut ::std::os::raw::c_void>,
    pub unmap:
        ::std::option::Option<unsafe extern "C" fn(p: *mut ::std::os::raw::c_void, size: u64)>,
    pub reserve:
        ::std::option::Option<unsafe extern "C" fn(size: u64) -> *mut ::std::os::raw::c_void>,
    pub commit:
        ::std::option::Option<unsafe extern "C" fn(p: *mut ::std::os::raw::c_void, size: u64)>,
}
#[test]
fn bindgen_test_layout_tm_os_virtual_memory_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_virtual_memory_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_os_virtual_memory_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_virtual_memory_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_virtual_memory_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_virtual_memory_api>())).map as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_virtual_memory_api),
            "::",
            stringify!(map)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_virtual_memory_api>())).unmap as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_virtual_memory_api),
            "::",
            stringify!(unmap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_virtual_memory_api>())).reserve as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_virtual_memory_api),
            "::",
            stringify!(reserve)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_virtual_memory_api>())).commit as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_virtual_memory_api),
            "::",
            stringify!(commit)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_file_io_api {
    pub open_input: ::std::option::Option<
        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> tm_file_o,
    >,
    pub open_output: ::std::option::Option<
        unsafe extern "C" fn(path: *const ::std::os::raw::c_char, append: bool) -> tm_file_o,
    >,
    pub set_position: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o, pos: u64)>,
    pub size: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o) -> u64>,
    pub read: ::std::option::Option<
        unsafe extern "C" fn(
            file: tm_file_o,
            buffer: *mut ::std::os::raw::c_void,
            size: u64,
        ) -> i64,
    >,
    pub write: ::std::option::Option<
        unsafe extern "C" fn(
            file: tm_file_o,
            buffer: *const ::std::os::raw::c_void,
            size: u64,
        ) -> bool,
    >,
    pub read_at: ::std::option::Option<
        unsafe extern "C" fn(
            file: tm_file_o,
            offset: u64,
            buffer: *mut ::std::os::raw::c_void,
            size: u64,
        ) -> i64,
    >,
    pub write_at: ::std::option::Option<
        unsafe extern "C" fn(
            file: tm_file_o,
            offset: u64,
            buffer: *const ::std::os::raw::c_void,
            size: u64,
        ) -> bool,
    >,
    pub close: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o)>,
    pub is_valid: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o) -> bool>,
    pub invalid_file: tm_file_o,
}
#[test]
fn bindgen_test_layout_tm_os_file_io_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_file_io_api>(),
        88usize,
        concat!("Size of: ", stringify!(tm_os_file_io_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_file_io_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_file_io_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).open_input as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(open_input)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).open_output as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(open_output)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).set_position as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(set_position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).read as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).write as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).read_at as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(read_at)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).write_at as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(write_at)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).close as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(close)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).is_valid as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(is_valid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_io_api>())).invalid_file as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_io_api),
            "::",
            stringify!(invalid_file)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_file_system_api {
    pub stat: ::std::option::Option<
        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> tm_file_stat_t,
    >,
    pub directory_entries: ::std::option::Option<
        unsafe extern "C" fn(
            path: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_strings_t,
    >,
    pub make_directory:
        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
    pub remove_file:
        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
    pub remove_directory:
        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
    pub rename: ::std::option::Option<
        unsafe extern "C" fn(
            old_name: *const ::std::os::raw::c_char,
            new_name: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub copy_file: ::std::option::Option<
        unsafe extern "C" fn(
            from: *const ::std::os::raw::c_char,
            to: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub getcwd: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *const ::std::os::raw::c_char,
    >,
    pub chdir:
        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
    pub is_absolute:
        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
    pub absolute: ::std::option::Option<
        unsafe extern "C" fn(
            path: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub temp_directory: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *const ::std::os::raw::c_char,
    >,
    pub create_watcher: ::std::option::Option<
        unsafe extern "C" fn(dir_path: *const ::std::os::raw::c_char) -> tm_file_system_watcher_o,
    >,
    pub any_changes:
        ::std::option::Option<unsafe extern "C" fn(watcher: tm_file_system_watcher_o) -> bool>,
    pub destroy_watcher:
        ::std::option::Option<unsafe extern "C" fn(watcher: tm_file_system_watcher_o)>,
    pub app_folder: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_os_file_system_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_file_system_api>(),
        128usize,
        concat!("Size of: ", stringify!(tm_os_file_system_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_file_system_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_file_system_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_system_api>())).stat as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(stat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).directory_entries as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(directory_entries)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).make_directory as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(make_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).remove_file as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(remove_file)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).remove_directory as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(remove_directory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_system_api>())).rename as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(rename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_system_api>())).copy_file as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(copy_file)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_system_api>())).getcwd as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(getcwd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_system_api>())).chdir as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(chdir)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).is_absolute as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(is_absolute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_file_system_api>())).absolute as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(absolute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).temp_directory as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(temp_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).create_watcher as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(create_watcher)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).any_changes as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(any_changes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).destroy_watcher as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(destroy_watcher)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_file_system_api>())).app_folder as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_file_system_api),
            "::",
            stringify!(app_folder)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_dll_api {
    pub open: ::std::option::Option<
        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> tm_dll_o,
    >,
    pub is_valid: ::std::option::Option<unsafe extern "C" fn(handle: tm_dll_o) -> bool>,
    pub sym: ::std::option::Option<
        unsafe extern "C" fn(
            handle: tm_dll_o,
            name: *const ::std::os::raw::c_char,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub close: ::std::option::Option<unsafe extern "C" fn(handle: tm_dll_o)>,
}
#[test]
fn bindgen_test_layout_tm_os_dll_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_dll_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_os_dll_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_dll_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_dll_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dll_api>())).open as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dll_api),
            "::",
            stringify!(open)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dll_api>())).is_valid as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dll_api),
            "::",
            stringify!(is_valid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dll_api>())).sym as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dll_api),
            "::",
            stringify!(sym)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dll_api>())).close as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dll_api),
            "::",
            stringify!(close)
        )
    );
}
pub const tm_os_socket_type_TM_OS_SOCKET_TYPE_TCP: tm_os_socket_type = 1;
pub const tm_os_socket_type_TM_OS_SOCKET_TYPE_UDP: tm_os_socket_type = 2;
pub const tm_os_socket_type_TM_OS_SOCKET_TYPE_INVALID: tm_os_socket_type = 3;
pub type tm_os_socket_type = ::std::os::raw::c_int;
pub const tm_os_socket_error_TM_OS_SOCKET_ERROR_WOULD_BLOCK: tm_os_socket_error = -1000;
pub const tm_os_socket_error_TM_OS_SOCKET_ERROR_CLOSED: tm_os_socket_error = -1001;
pub const tm_os_socket_error_TM_OS_SOCKET_ERROR_OTHER: tm_os_socket_error = -1;
pub type tm_os_socket_error = ::std::os::raw::c_int;
pub const tm_os_socket_connect_TM_OS_SOCKET_CONNECT_PENDING: tm_os_socket_connect = 0;
pub const tm_os_socket_connect_TM_OS_SOCKET_CONNECT_ESTABLISHED: tm_os_socket_connect = 1;
pub const tm_os_socket_connect_TM_OS_SOCKET_CONNECT_FAILED: tm_os_socket_connect = 2;
pub type tm_os_socket_connect = ::std::os::raw::c_int;
pub const tm_os_socket_getaddrinfo_TM_OS_SOCKET_GETADDRINFO_IN_PROGRESS: tm_os_socket_getaddrinfo =
    0;
pub const tm_os_socket_getaddrinfo_TM_OS_SOCKET_GETADDRINFO_SUCCESS: tm_os_socket_getaddrinfo = 1;
pub const tm_os_socket_getaddrinfo_TM_OS_SOCKET_GETADDRINFO_ERROR: tm_os_socket_getaddrinfo = 2;
pub type tm_os_socket_getaddrinfo = ::std::os::raw::c_int;
pub const tm_os_socket_option_TM_SOCKET_OPTION__NODELAY: tm_os_socket_option = 0;
pub const tm_os_socket_option_TM_SOCKET_OPTION__NONBLOCK: tm_os_socket_option = 1;
pub type tm_os_socket_option = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_socket_api {
    pub init: ::std::option::Option<unsafe extern "C" fn()>,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
    pub socket:
        ::std::option::Option<unsafe extern "C" fn(type_: tm_os_socket_type) -> tm_socket_o>,
    pub set_option: ::std::option::Option<
        unsafe extern "C" fn(socket: tm_socket_o, option: tm_os_socket_option, enabled: bool),
    >,
    pub is_valid: ::std::option::Option<unsafe extern "C" fn(socket: tm_socket_o) -> bool>,
    pub bind: ::std::option::Option<
        unsafe extern "C" fn(socket: tm_socket_o, address: tm_socket_address_t) -> bool,
    >,
    pub getsockname: ::std::option::Option<
        unsafe extern "C" fn(socket: tm_socket_o, address: *mut tm_socket_address_t) -> bool,
    >,
    pub listen:
        ::std::option::Option<unsafe extern "C" fn(socket: tm_socket_o, queue_size: u32) -> bool>,
    pub accept: ::std::option::Option<
        unsafe extern "C" fn(socket: tm_socket_o, address: *mut tm_socket_address_t) -> tm_socket_o,
    >,
    pub connect: ::std::option::Option<
        unsafe extern "C" fn(
            socket: tm_socket_o,
            target: tm_socket_address_t,
        ) -> tm_os_socket_connect,
    >,
    pub send: ::std::option::Option<
        unsafe extern "C" fn(
            socket: tm_socket_o,
            buffer: *const ::std::os::raw::c_void,
            size: u32,
        ) -> i32,
    >,
    pub recv: ::std::option::Option<
        unsafe extern "C" fn(
            socket: tm_socket_o,
            buffer: *mut ::std::os::raw::c_void,
            size: u32,
        ) -> i32,
    >,
    pub sendto: ::std::option::Option<
        unsafe extern "C" fn(
            socket: tm_socket_o,
            buffer: *const ::std::os::raw::c_void,
            size: u32,
            target: tm_socket_address_t,
        ) -> i32,
    >,
    pub recvfrom: ::std::option::Option<
        unsafe extern "C" fn(
            socket: tm_socket_o,
            buffer: *mut ::std::os::raw::c_void,
            size: u32,
            source: *mut tm_socket_address_t,
        ) -> i32,
    >,
    pub close: ::std::option::Option<unsafe extern "C" fn(socket: tm_socket_o) -> bool>,
    pub getaddrinfo: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            service: *const ::std::os::raw::c_char,
            addresses: *mut tm_socket_address_t,
            size: u32,
        ) -> u32,
    >,
    pub getaddrinfo_async: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            service: *const ::std::os::raw::c_char,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub getaddrinfo_result: ::std::option::Option<
        unsafe extern "C" fn(
            query: *mut ::std::os::raw::c_void,
            addresses: *mut tm_socket_address_t,
            count: *mut u32,
        ) -> tm_os_socket_getaddrinfo,
    >,
}
#[test]
fn bindgen_test_layout_tm_os_socket_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_socket_api>(),
        144usize,
        concat!("Size of: ", stringify!(tm_os_socket_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_socket_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_socket_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).shutdown as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(shutdown)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).socket as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(socket)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).set_option as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(set_option)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).is_valid as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(is_valid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).bind as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(bind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).getsockname as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(getsockname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).listen as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(listen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).accept as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(accept)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).connect as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(connect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).send as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(send)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).recv as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(recv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).sendto as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(sendto)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).recvfrom as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(recvfrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).close as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(close)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_socket_api>())).getaddrinfo as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(getaddrinfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_socket_api>())).getaddrinfo_async as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(getaddrinfo_async)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_socket_api>())).getaddrinfo_result as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_socket_api),
            "::",
            stringify!(getaddrinfo_result)
        )
    );
}
pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__LOWEST: tm_os_thread__priority = 0;
pub const tm_os_thread__priority_TM_OS_THREAD__PRIOIRTY__LOW: tm_os_thread__priority = 1;
pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__NORMAL: tm_os_thread__priority = 2;
pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__HIGH: tm_os_thread__priority = 3;
pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__HIGHEST: tm_os_thread__priority = 4;
pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__TIME_CRITICAL: tm_os_thread__priority = 5;
pub type tm_os_thread__priority = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_thread_api {
    pub create_critical_section:
        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
    pub enter_critical_section:
        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
    pub leave_critical_section:
        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
    pub destroy_critical_section:
        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
    pub create_semaphore:
        ::std::option::Option<unsafe extern "C" fn(initial_count: u32) -> tm_semaphore_o>,
    pub semaphore_add: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o, count: u32)>,
    pub semaphore_wait: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o)>,
    pub semaphore_poll: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o) -> bool>,
    pub destroy_semaphore: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o)>,
    pub thread_id: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub processor_id: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub create_thread: ::std::option::Option<
        unsafe extern "C" fn(
            entry: tm_thread_entry_f,
            user_data: *mut ::std::os::raw::c_void,
            stack_size: u32,
            debug_name: *const ::std::os::raw::c_char,
        ) -> tm_thread_o,
    >,
    pub set_thread_priority: ::std::option::Option<
        unsafe extern "C" fn(thread: tm_thread_o, priority: tm_os_thread__priority),
    >,
    pub wait_for_thread: ::std::option::Option<unsafe extern "C" fn(thread: tm_thread_o)>,
    pub thread_id_from_tm_thread:
        ::std::option::Option<unsafe extern "C" fn(thread: tm_thread_o) -> u32>,
    pub convert_thread_to_fiber: ::std::option::Option<
        unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void) -> tm_fiber_o,
    >,
    pub convert_fiber_to_thread: ::std::option::Option<unsafe extern "C" fn()>,
    pub create_fiber: ::std::option::Option<
        unsafe extern "C" fn(
            entry: tm_fiber_entry_f,
            user_data: *mut ::std::os::raw::c_void,
            stack_size: u32,
        ) -> tm_fiber_o,
    >,
    pub destroy_fiber: ::std::option::Option<unsafe extern "C" fn(fiber: tm_fiber_o)>,
    pub switch_to_fiber: ::std::option::Option<unsafe extern "C" fn(fiber: tm_fiber_o)>,
    pub fiber_user_data:
        ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>,
    pub yield_processor: ::std::option::Option<unsafe extern "C" fn()>,
    pub sleep: ::std::option::Option<unsafe extern "C" fn(seconds: f64)>,
}
#[test]
fn bindgen_test_layout_tm_os_thread_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_thread_api>(),
        184usize,
        concat!("Size of: ", stringify!(tm_os_thread_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_thread_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_thread_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).create_critical_section as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(create_critical_section)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).enter_critical_section as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(enter_critical_section)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).leave_critical_section as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(leave_critical_section)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).destroy_critical_section as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(destroy_critical_section)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).create_semaphore as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(create_semaphore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).semaphore_add as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(semaphore_add)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).semaphore_wait as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(semaphore_wait)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).semaphore_poll as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(semaphore_poll)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).destroy_semaphore as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(destroy_semaphore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).thread_id as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(thread_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).processor_id as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(processor_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).create_thread as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(create_thread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).set_thread_priority as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(set_thread_priority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).wait_for_thread as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(wait_for_thread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).thread_id_from_tm_thread as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(thread_id_from_tm_thread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).convert_thread_to_fiber as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(convert_thread_to_fiber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).convert_fiber_to_thread as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(convert_fiber_to_thread)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).create_fiber as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(create_fiber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).destroy_fiber as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(destroy_fiber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).switch_to_fiber as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(switch_to_fiber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).fiber_user_data as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(fiber_user_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_thread_api>())).yield_processor as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(yield_processor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_thread_api>())).sleep as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_thread_api),
            "::",
            stringify!(sleep)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_time_api {
    pub now: ::std::option::Option<unsafe extern "C" fn() -> tm_clock_o>,
    pub delta: ::std::option::Option<unsafe extern "C" fn(to: tm_clock_o, from: tm_clock_o) -> f64>,
    pub add:
        ::std::option::Option<unsafe extern "C" fn(from: tm_clock_o, delta: f64) -> tm_clock_o>,
    pub file_time_now: ::std::option::Option<unsafe extern "C" fn() -> tm_file_time_o>,
    pub file_time_delta: ::std::option::Option<
        unsafe extern "C" fn(to: tm_file_time_o, from: tm_file_time_o) -> f64,
    >,
}
#[test]
fn bindgen_test_layout_tm_os_time_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_time_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_os_time_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_time_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_time_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_time_api>())).now as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_time_api),
            "::",
            stringify!(now)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_time_api>())).delta as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_time_api),
            "::",
            stringify!(delta)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_time_api>())).add as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_time_api),
            "::",
            stringify!(add)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_time_api>())).file_time_now as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_time_api),
            "::",
            stringify!(file_time_now)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_time_api>())).file_time_delta as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_time_api),
            "::",
            stringify!(file_time_delta)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_dialogs_open_t {
    pub extensions: *const ::std::os::raw::c_char,
    pub description: *const ::std::os::raw::c_char,
    pub allow_multi_select: bool,
    pub _padding_571: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_os_dialogs_open_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_dialogs_open_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_os_dialogs_open_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_dialogs_open_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_dialogs_open_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dialogs_open_t>())).extensions as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_open_t),
            "::",
            stringify!(extensions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_dialogs_open_t>())).description as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_open_t),
            "::",
            stringify!(description)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_dialogs_open_t>())).allow_multi_select as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_open_t),
            "::",
            stringify!(allow_multi_select)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_dialogs_open_t>()))._padding_571 as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_open_t),
            "::",
            stringify!(_padding_571)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_dialogs_open_res_t {
    pub num_files: u32,
    pub _padding_579: [::std::os::raw::c_char; 4usize],
    pub files: *mut *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_os_dialogs_open_res_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_dialogs_open_res_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_os_dialogs_open_res_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_dialogs_open_res_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_dialogs_open_res_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_dialogs_open_res_t>())).num_files as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_open_res_t),
            "::",
            stringify!(num_files)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_dialogs_open_res_t>()))._padding_579 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_open_res_t),
            "::",
            stringify!(_padding_579)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dialogs_open_res_t>())).files as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_open_res_t),
            "::",
            stringify!(files)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_dialogs_save_t {
    pub default_name: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_os_dialogs_save_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_dialogs_save_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_os_dialogs_save_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_dialogs_save_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_dialogs_save_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_dialogs_save_t>())).default_name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_save_t),
            "::",
            stringify!(default_name)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_dialogs_api {
    pub open: ::std::option::Option<
        unsafe extern "C" fn(
            s: *const tm_os_dialogs_open_t,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_os_dialogs_open_res_t,
    >,
    pub open_folder: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *mut ::std::os::raw::c_char,
    >,
    pub save: ::std::option::Option<
        unsafe extern "C" fn(
            s: *const tm_os_dialogs_save_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub message_box: ::std::option::Option<
        unsafe extern "C" fn(
            title: *const ::std::os::raw::c_char,
            text: *const ::std::os::raw::c_char,
        ),
    >,
    pub show_count: ::std::option::Option<unsafe extern "C" fn() -> u64>,
}
#[test]
fn bindgen_test_layout_tm_os_dialogs_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_dialogs_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_os_dialogs_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_dialogs_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_dialogs_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dialogs_api>())).open as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_api),
            "::",
            stringify!(open)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dialogs_api>())).open_folder as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_api),
            "::",
            stringify!(open_folder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dialogs_api>())).save as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_api),
            "::",
            stringify!(save)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dialogs_api>())).message_box as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_api),
            "::",
            stringify!(message_box)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dialogs_api>())).show_count as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dialogs_api),
            "::",
            stringify!(show_count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_info_api {
    pub num_logical_processors: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub avx_support: ::std::option::Option<unsafe extern "C" fn() -> bool>,
}
#[test]
fn bindgen_test_layout_tm_os_info_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_info_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_os_info_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_info_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_info_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_info_api>())).num_logical_processors as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_info_api),
            "::",
            stringify!(num_logical_processors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_info_api>())).avx_support as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_info_api),
            "::",
            stringify!(avx_support)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_clipboard_item_t {
    pub format: *const ::std::os::raw::c_char,
    pub data: *const ::std::os::raw::c_char,
    pub size: u32,
    pub _padding_639: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_os_clipboard_item_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_clipboard_item_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_os_clipboard_item_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_clipboard_item_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_clipboard_item_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_clipboard_item_t>())).format as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_clipboard_item_t),
            "::",
            stringify!(format)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_clipboard_item_t>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_clipboard_item_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_clipboard_item_t>())).size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_clipboard_item_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_clipboard_item_t>()))._padding_639 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_clipboard_item_t),
            "::",
            stringify!(_padding_639)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_clipboard_api {
    pub get: ::std::option::Option<
        unsafe extern "C" fn(
            format: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_os_clipboard_item_t,
    >,
    pub set:
        ::std::option::Option<unsafe extern "C" fn(items: *mut tm_os_clipboard_item_t, n: u32)>,
}
#[test]
fn bindgen_test_layout_tm_os_clipboard_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_clipboard_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_os_clipboard_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_clipboard_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_clipboard_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_clipboard_api>())).get as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_clipboard_api),
            "::",
            stringify!(get)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_clipboard_api>())).set as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_clipboard_api),
            "::",
            stringify!(set)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_debugger_api {
    pub is_debugger_present: ::std::option::Option<unsafe extern "C" fn() -> bool>,
    pub debug_break: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_os_debugger_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_debugger_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_os_debugger_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_debugger_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_debugger_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_debugger_api>())).is_debugger_present as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_debugger_api),
            "::",
            stringify!(is_debugger_present)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_debugger_api>())).debug_break as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_debugger_api),
            "::",
            stringify!(debug_break)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_system_api {
    pub open_url: ::std::option::Option<unsafe extern "C" fn(url: *const ::std::os::raw::c_char)>,
    pub open_file:
        ::std::option::Option<unsafe extern "C" fn(file: *const ::std::os::raw::c_char) -> bool>,
    pub exe_path: ::std::option::Option<
        unsafe extern "C" fn(
            argv_0: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub execute: ::std::option::Option<
        unsafe extern "C" fn(command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_tm_os_system_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_system_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_os_system_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_system_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_system_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_system_api>())).open_url as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_system_api),
            "::",
            stringify!(open_url)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_system_api>())).open_file as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_system_api),
            "::",
            stringify!(open_file)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_system_api>())).exe_path as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_system_api),
            "::",
            stringify!(exe_path)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_system_api>())).execute as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_system_api),
            "::",
            stringify!(execute)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_api {
    pub virtual_memory: *mut tm_os_virtual_memory_api,
    pub file_io: *mut tm_os_file_io_api,
    pub file_system: *mut tm_os_file_system_api,
    pub dll: *mut tm_os_dll_api,
    pub socket: *mut tm_os_socket_api,
    pub thread: *mut tm_os_thread_api,
    pub time: *mut tm_os_time_api,
    pub dialogs: *mut tm_os_dialogs_api,
    pub info: *mut tm_os_info_api,
    pub clipboard: *mut tm_os_clipboard_api,
    pub debugger: *mut tm_os_debugger_api,
    pub system: *mut tm_os_system_api,
}
#[test]
fn bindgen_test_layout_tm_os_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_api>(),
        96usize,
        concat!("Size of: ", stringify!(tm_os_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).virtual_memory as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(virtual_memory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).file_io as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(file_io)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).file_system as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(file_system)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).dll as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(dll)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).socket as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(socket)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).thread as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(thread)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).time as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).dialogs as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(dialogs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).info as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).clipboard as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(clipboard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).debugger as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(debugger)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_api>())).system as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_api),
            "::",
            stringify!(system)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_path_api {
    pub split: ::std::option::Option<
        unsafe extern "C" fn(
            path: *const ::std::os::raw::c_char,
            ext: *mut *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub split_dir: ::std::option::Option<
        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_path_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_path_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_path_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_path_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_path_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_path_api>())).split as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_path_api),
            "::",
            stringify!(split)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_path_api>())).split_dir as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_path_api),
            "::",
            stringify!(split_dir)
        )
    );
}
pub type tm_plugin_load_f =
    ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_plugins_api {
    pub load: ::std::option::Option<
        unsafe extern "C" fn(path: *const ::std::os::raw::c_char, hot_reload: bool) -> u64,
    >,
    pub unload: ::std::option::Option<unsafe extern "C" fn(plugin: u64)>,
    pub reload: ::std::option::Option<unsafe extern "C" fn(plugin: u64)>,
    pub check_hot_reload: ::std::option::Option<unsafe extern "C" fn() -> bool>,
    pub reload_count: ::std::option::Option<unsafe extern "C" fn() -> u64>,
    pub enumerate: ::std::option::Option<
        unsafe extern "C" fn(
            dir: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut *const ::std::os::raw::c_char,
    >,
    pub load_plugin_context:
        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
    pub plugin_dllpath: ::std::option::Option<
        unsafe extern "C" fn(
            ta: *mut tm_temp_allocator_i,
            exe: *const ::std::os::raw::c_char,
            name: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub app_dllpath: ::std::option::Option<
        unsafe extern "C" fn(
            ta: *mut tm_temp_allocator_i,
            exe: *const ::std::os::raw::c_char,
            name: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_plugins_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_plugins_api>(),
        72usize,
        concat!("Size of: ", stringify!(tm_plugins_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_plugins_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_plugins_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).load as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).unload as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(unload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).reload as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(reload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).check_hot_reload as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(check_hot_reload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).reload_count as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(reload_count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).enumerate as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(enumerate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_plugins_api>())).load_plugin_context as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(load_plugin_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).plugin_dllpath as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(plugin_dllpath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugins_api>())).app_dllpath as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugins_api),
            "::",
            stringify!(app_dllpath)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_plugin_init_i {
    pub inst: *mut tm_plugin_o,
    pub init: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_plugin_o, allocator: *mut tm_allocator_i),
    >,
}
#[test]
fn bindgen_test_layout_tm_plugin_init_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_plugin_init_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_plugin_init_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_plugin_init_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_plugin_init_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugin_init_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_init_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugin_init_i>())).init as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_init_i),
            "::",
            stringify!(init)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_plugin_shutdown_i {
    pub inst: *mut tm_plugin_o,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_plugin_o)>,
}
#[test]
fn bindgen_test_layout_tm_plugin_shutdown_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_plugin_shutdown_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_plugin_shutdown_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_plugin_shutdown_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_plugin_shutdown_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugin_shutdown_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_shutdown_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugin_shutdown_i>())).shutdown as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_shutdown_i),
            "::",
            stringify!(shutdown)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_plugin_tick_i {
    pub inst: *mut tm_plugin_o,
    pub tick: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_plugin_o, dt: f32)>,
}
#[test]
fn bindgen_test_layout_tm_plugin_tick_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_plugin_tick_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_plugin_tick_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_plugin_tick_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_plugin_tick_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugin_tick_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_tick_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugin_tick_i>())).tick as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_tick_i),
            "::",
            stringify!(tick)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_plugin_set_the_truth_i {
    pub inst: *mut tm_plugin_o,
    pub set_the_truth: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_plugin_o, tt: *mut tm_the_truth_o),
    >,
}
#[test]
fn bindgen_test_layout_tm_plugin_set_the_truth_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_plugin_set_the_truth_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_plugin_set_the_truth_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_plugin_set_the_truth_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_plugin_set_the_truth_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_plugin_set_the_truth_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_set_the_truth_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_plugin_set_the_truth_i>())).set_the_truth as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_plugin_set_the_truth_i),
            "::",
            stringify!(set_the_truth)
        )
    );
}
pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_BEGIN: tm_profiler_event_type = 0;
pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_END: tm_profiler_event_type = 1;
pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_INSTANT: tm_profiler_event_type = 2;
pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_START: tm_profiler_event_type = 3;
pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_FINISH: tm_profiler_event_type = 4;
pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_FIBER_SWITCH: tm_profiler_event_type = 5;
pub type tm_profiler_event_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_profiler_event_t {
    pub type_: u32,
    pub thread_id: u32,
    pub time_stamp: u64,
    pub __bindgen_anon_1: tm_profiler_event_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_profiler_event_t__bindgen_ty_1 {
    pub __bindgen_anon_1: tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1,
    pub __bindgen_anon_2: tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u64; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1 {
    pub id: u32,
    pub _padding_51: [::std::os::raw::c_char; 4usize],
    pub category: *const ::std::os::raw::c_char,
    pub name: *const ::std::os::raw::c_char,
    pub object: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1>())).id
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1>()))._padding_51
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_padding_51)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1>())).category
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(category)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1>())).name
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1>())).object
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(object)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2 {
    pub from_fiber: u32,
    pub to_fiber: u32,
}
#[test]
fn bindgen_test_layout_tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2>())).from_fiber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(from_fiber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2>())).to_fiber
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(to_fiber)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_profiler_event_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_profiler_event_t__bindgen_ty_1>(),
        32usize,
        concat!("Size of: ", stringify!(tm_profiler_event_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_profiler_event_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_profiler_event_t__bindgen_ty_1)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_profiler_event_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_profiler_event_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_profiler_event_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_profiler_event_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_profiler_event_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_event_t>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_event_t>())).thread_id as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t),
            "::",
            stringify!(thread_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_event_t>())).time_stamp as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_event_t),
            "::",
            stringify!(time_stamp)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_profiler_buffer_t {
    pub total_recorded: u64,
    pub start: [u64; 2usize],
    pub events: [*const tm_profiler_event_t; 2usize],
    pub count: [u32; 2usize],
}
#[test]
fn bindgen_test_layout_tm_profiler_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_profiler_buffer_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_profiler_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_profiler_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_profiler_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_buffer_t>())).total_recorded as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_buffer_t),
            "::",
            stringify!(total_recorded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_buffer_t>())).start as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_buffer_t),
            "::",
            stringify!(start)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_buffer_t>())).events as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_buffer_t),
            "::",
            stringify!(events)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_buffer_t>())).count as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_buffer_t),
            "::",
            stringify!(count)
        )
    );
}
pub const TM_PROFILER_THREAD_BUFFER_SIZE: ::std::os::raw::c_int = 256;
pub type _bindgen_ty_1 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_profiler_api {
    pub init: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i, event_buffer_size: u32),
    >,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
    pub enabled: *mut bool,
    pub begin: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            category: *const ::std::os::raw::c_char,
            object: *const ::std::os::raw::c_char,
        ) -> u64,
    >,
    pub end: ::std::option::Option<unsafe extern "C" fn(begin_id: u64)>,
    pub instant: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            category: *const ::std::os::raw::c_char,
            object: *const ::std::os::raw::c_char,
        ),
    >,
    pub start: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            category: *const ::std::os::raw::c_char,
            object: *const ::std::os::raw::c_char,
        ) -> u64,
    >,
    pub finish: ::std::option::Option<unsafe extern "C" fn(start_id: u64)>,
    pub intern: ::std::option::Option<
        unsafe extern "C" fn(s: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char,
    >,
    pub fiber_switch: ::std::option::Option<unsafe extern "C" fn(from_fiber: u32, to_fiber: u32)>,
    pub submit:
        ::std::option::Option<unsafe extern "C" fn(events: *mut tm_profiler_event_t, count: u32)>,
    pub copy: ::std::option::Option<
        unsafe extern "C" fn(
            dest: *mut tm_profiler_event_t,
            start: u64,
            count: u32,
            actual_start: *mut u64,
            actual_count: *mut u32,
        ),
    >,
    pub buffer: ::std::option::Option<unsafe extern "C" fn() -> tm_profiler_buffer_t>,
}
#[test]
fn bindgen_test_layout_tm_profiler_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_profiler_api>(),
        104usize,
        concat!("Size of: ", stringify!(tm_profiler_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_profiler_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_profiler_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).shutdown as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(shutdown)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).enabled as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).begin as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(begin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).end as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(end)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).instant as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(instant)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).start as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(start)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).finish as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(finish)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).intern as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(intern)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).fiber_switch as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(fiber_switch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).submit as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(submit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).copy as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(copy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_api>())).buffer as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_api),
            "::",
            stringify!(buffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_task_progress_t {
    pub num_tasks: u32,
    pub task_index: u32,
    pub text: *const ::std::os::raw::c_char,
    pub fraction: f32,
    pub _padding_21: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_task_progress_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_task_progress_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_task_progress_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_task_progress_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_task_progress_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_progress_t>())).num_tasks as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_progress_t),
            "::",
            stringify!(num_tasks)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_progress_t>())).task_index as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_progress_t),
            "::",
            stringify!(task_index)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_progress_t>())).text as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_progress_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_progress_t>())).fraction as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_progress_t),
            "::",
            stringify!(fraction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_progress_t>()))._padding_21 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_progress_t),
            "::",
            stringify!(_padding_21)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_task_status_t {
    pub task_id: *mut u64,
    pub text: *mut *const ::std::os::raw::c_char,
    pub fraction: *mut f32,
    pub num_tasks: u32,
    pub _padding_30: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_task_status_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_task_status_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_task_status_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_task_status_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_task_status_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_status_t>())).task_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_status_t),
            "::",
            stringify!(task_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_status_t>())).text as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_status_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_status_t>())).fraction as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_status_t),
            "::",
            stringify!(fraction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_status_t>())).num_tasks as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_status_t),
            "::",
            stringify!(num_tasks)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_status_t>()))._padding_30 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_status_t),
            "::",
            stringify!(_padding_30)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_progress_report_api {
    pub create:
        ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i, task_display_time: f32)>,
    pub destroy: ::std::option::Option<unsafe extern "C" fn()>,
    pub update: ::std::option::Option<
        unsafe extern "C" fn(dt: f64, ta: *mut tm_temp_allocator_i) -> tm_task_progress_t,
    >,
    pub status: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> tm_task_status_t,
    >,
    pub idle: ::std::option::Option<unsafe extern "C" fn() -> bool>,
    pub set_task_progress: ::std::option::Option<
        unsafe extern "C" fn(task: u64, text: *const ::std::os::raw::c_char, fraction: f32),
    >,
}
#[test]
fn bindgen_test_layout_tm_progress_report_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_progress_report_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_progress_report_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_progress_report_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_progress_report_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_progress_report_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_progress_report_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_progress_report_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_progress_report_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_progress_report_api>())).update as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_progress_report_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_progress_report_api>())).status as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_progress_report_api),
            "::",
            stringify!(status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_progress_report_api>())).idle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_progress_report_api),
            "::",
            stringify!(idle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_progress_report_api>())).set_task_progress as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_progress_report_api),
            "::",
            stringify!(set_task_progress)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_random_api {
    pub next: ::std::option::Option<unsafe extern "C" fn() -> u64>,
    pub next_n: ::std::option::Option<unsafe extern "C" fn(res: *mut u64, n: u32)>,
    pub seed_new_state: ::std::option::Option<unsafe extern "C" fn(s: *mut u64)>,
}
#[test]
fn bindgen_test_layout_tm_random_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_random_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_random_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_random_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_random_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_random_api>())).next as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_random_api),
            "::",
            stringify!(next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_random_api>())).next_n as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_random_api),
            "::",
            stringify!(next_n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_random_api>())).seed_new_state as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_random_api),
            "::",
            stringify!(seed_new_state)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_runtime_data_repository_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_runtime_data_t {
    pub version: u64,
    pub data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_runtime_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_runtime_data_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_runtime_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_runtime_data_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_runtime_data_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_runtime_data_t>())).version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_t),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_runtime_data_t>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_runtime_data_io_i {
    pub load: ::std::option::Option<
        unsafe extern "C" fn(
            io_context: *mut ::std::os::raw::c_void,
            tt: *mut tm_the_truth_o,
            asset_id: tm_tt_id_t,
            result_runtime_data: *mut ::std::os::raw::c_void,
        ) -> bool,
    >,
    pub unload: ::std::option::Option<
        unsafe extern "C" fn(
            io_context: *mut ::std::os::raw::c_void,
            runtime_data: *mut ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_runtime_data_io_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_runtime_data_io_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_runtime_data_io_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_runtime_data_io_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_runtime_data_io_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_runtime_data_io_i>())).load as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_io_i),
            "::",
            stringify!(load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_runtime_data_io_i>())).unload as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_io_i),
            "::",
            stringify!(unload)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_runtime_data_repository_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            tt: *mut tm_the_truth_o,
            type_: u64,
            runtime_data_size: u32,
            io_interface: *mut tm_runtime_data_io_i,
        ) -> *mut tm_runtime_data_repository_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_runtime_data_repository_o,
            io_context: *mut ::std::os::raw::c_void,
        ),
    >,
    pub lookup: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_runtime_data_repository_o,
            asset_id: tm_tt_id_t,
            wanted_version: u64,
            io_context: *mut ::std::os::raw::c_void,
        ) -> tm_runtime_data_t,
    >,
    pub garbage_collect: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_runtime_data_repository_o,
            io_context: *mut ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_runtime_data_repository_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_runtime_data_repository_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_runtime_data_repository_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_runtime_data_repository_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_runtime_data_repository_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_runtime_data_repository_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_repository_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_runtime_data_repository_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_repository_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_runtime_data_repository_api>())).lookup as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_repository_api),
            "::",
            stringify!(lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_runtime_data_repository_api>())).garbage_collect as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runtime_data_repository_api),
            "::",
            stringify!(garbage_collect)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct SHA1_CTX {
    pub state: [u32; 5usize],
    pub count: [u32; 2usize],
    pub buffer: [u8; 64usize],
}
#[test]
fn bindgen_test_layout_SHA1_CTX() {
    assert_eq!(
        ::std::mem::size_of::<SHA1_CTX>(),
        92usize,
        concat!("Size of: ", stringify!(SHA1_CTX))
    );
    assert_eq!(
        ::std::mem::align_of::<SHA1_CTX>(),
        4usize,
        concat!("Alignment of ", stringify!(SHA1_CTX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SHA1_CTX>())).state as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SHA1_CTX),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SHA1_CTX>())).count as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SHA1_CTX),
            "::",
            stringify!(count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SHA1_CTX>())).buffer as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(SHA1_CTX),
            "::",
            stringify!(buffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_string_repository_i {
    pub inst: *mut tm_string_repository_o,
    pub add: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_string_repository_o,
            s: *const ::std::os::raw::c_char,
        ) -> u64,
    >,
    pub retain:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_string_repository_o, hash: u64)>,
    pub remove:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_string_repository_o, hash: u64)>,
    pub lookup: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_string_repository_o,
            hash: u64,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub intern: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_string_repository_o,
            s: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_string_repository_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_string_repository_i>(),
        48usize,
        concat!("Size of: ", stringify!(tm_string_repository_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_string_repository_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_string_repository_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_string_repository_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_string_repository_i>())).add as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_i),
            "::",
            stringify!(add)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_string_repository_i>())).retain as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_i),
            "::",
            stringify!(retain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_string_repository_i>())).remove as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_i),
            "::",
            stringify!(remove)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_string_repository_i>())).lookup as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_i),
            "::",
            stringify!(lookup)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_string_repository_i>())).intern as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_i),
            "::",
            stringify!(intern)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_string_repository_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_string_repository_i,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(i: *mut tm_string_repository_i)>,
}
#[test]
fn bindgen_test_layout_tm_string_repository_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_string_repository_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_string_repository_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_string_repository_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_string_repository_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_string_repository_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_string_repository_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_string_repository_api),
            "::",
            stringify!(destroy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_task_system_api {
    pub run_task: ::std::option::Option<
        unsafe extern "C" fn(
            f: ::std::option::Option<
                unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, id: u64),
            >,
            data: *mut ::std::os::raw::c_void,
            debug_name: *const ::std::os::raw::c_char,
        ) -> u64,
    >,
    pub is_task_done: ::std::option::Option<unsafe extern "C" fn(id: u64) -> bool>,
    pub is_task_done_else_assist: ::std::option::Option<unsafe extern "C" fn(id: u64) -> bool>,
    pub cancel_task: ::std::option::Option<unsafe extern "C" fn(id: u64)>,
    pub is_task_canceled: ::std::option::Option<unsafe extern "C" fn(id: u64) -> bool>,
}
#[test]
fn bindgen_test_layout_tm_task_system_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_task_system_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_task_system_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_task_system_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_task_system_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_system_api>())).run_task as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_system_api),
            "::",
            stringify!(run_task)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_system_api>())).is_task_done as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_system_api),
            "::",
            stringify!(is_task_done)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_task_system_api>())).is_task_done_else_assist as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_system_api),
            "::",
            stringify!(is_task_done_else_assist)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_system_api>())).cancel_task as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_system_api),
            "::",
            stringify!(cancel_task)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_task_system_api>())).is_task_canceled as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_system_api),
            "::",
            stringify!(is_task_canceled)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_temp_allocator_i {
    pub inst: *mut tm_temp_allocator_o,
    pub realloc: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_temp_allocator_o,
            ptr: *mut ::std::os::raw::c_void,
            old_size: u64,
            new_size: u64,
        ) -> *mut ::std::os::raw::c_void,
    >,
}
#[test]
fn bindgen_test_layout_tm_temp_allocator_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_temp_allocator_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_temp_allocator_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_temp_allocator_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_temp_allocator_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_i>())).realloc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_i),
            "::",
            stringify!(realloc)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_temp_allocator_1024_o {
    pub ta: tm_temp_allocator_i,
    pub buffer: [::std::os::raw::c_char; 1024usize],
    pub backing: *mut tm_allocator_i,
    pub first_block: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_temp_allocator_1024_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_temp_allocator_1024_o>(),
        1056usize,
        concat!("Size of: ", stringify!(tm_temp_allocator_1024_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_temp_allocator_1024_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_temp_allocator_1024_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_1024_o>())).ta as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_1024_o),
            "::",
            stringify!(ta)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_1024_o>())).buffer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_1024_o),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_1024_o>())).backing as *const _ as usize
        },
        1040usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_1024_o),
            "::",
            stringify!(backing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_1024_o>())).first_block as *const _ as usize
        },
        1048usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_1024_o),
            "::",
            stringify!(first_block)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_temp_allocator_statistics_t {
    pub temp_allocation_blocks: u64,
    pub temp_allocation_bytes: u64,
    pub frame_allocation_blocks: u64,
    pub frame_allocation_bytes: u64,
}
#[test]
fn bindgen_test_layout_tm_temp_allocator_statistics_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_temp_allocator_statistics_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_temp_allocator_statistics_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_temp_allocator_statistics_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_temp_allocator_statistics_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_statistics_t>())).temp_allocation_blocks
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_statistics_t),
            "::",
            stringify!(temp_allocation_blocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_statistics_t>())).temp_allocation_bytes
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_statistics_t),
            "::",
            stringify!(temp_allocation_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_statistics_t>())).frame_allocation_blocks
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_statistics_t),
            "::",
            stringify!(frame_allocation_blocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_statistics_t>())).frame_allocation_bytes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_statistics_t),
            "::",
            stringify!(frame_allocation_bytes)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_temp_allocator_api {
    pub init_1024: ::std::option::Option<
        unsafe extern "C" fn(ta: *mut tm_temp_allocator_1024_o, backing: *mut tm_allocator_i),
    >,
    pub shutdown_1024:
        ::std::option::Option<unsafe extern "C" fn(ta: *mut tm_temp_allocator_1024_o)>,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(backing: *mut tm_allocator_i) -> *mut tm_temp_allocator_i,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(ta: *mut tm_temp_allocator_i)>,
    pub allocator: ::std::option::Option<
        unsafe extern "C" fn(a: *mut tm_allocator_i, ta: *mut tm_temp_allocator_i),
    >,
    pub frame_alloc:
        ::std::option::Option<unsafe extern "C" fn(size: u64) -> *mut ::std::os::raw::c_void>,
    pub frame_allocator: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_allocator_i>,
    pub tick_frame: ::std::option::Option<unsafe extern "C" fn()>,
    pub vprintf: ::std::option::Option<
        unsafe extern "C" fn(
            ta: *mut tm_temp_allocator_i,
            format: *const ::std::os::raw::c_char,
            args: va_list,
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub printf: ::std::option::Option<
        unsafe extern "C" fn(
            ta: *mut tm_temp_allocator_i,
            format: *const ::std::os::raw::c_char,
            ...
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub frame_vprintf: ::std::option::Option<
        unsafe extern "C" fn(
            format: *const ::std::os::raw::c_char,
            args: va_list,
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub frame_printf: ::std::option::Option<
        unsafe extern "C" fn(
            format: *const ::std::os::raw::c_char,
            ...
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub statistics: *mut tm_temp_allocator_statistics_t,
}
#[test]
fn bindgen_test_layout_tm_temp_allocator_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_temp_allocator_api>(),
        104usize,
        concat!("Size of: ", stringify!(tm_temp_allocator_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_temp_allocator_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_temp_allocator_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_api>())).init_1024 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(init_1024)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_api>())).shutdown_1024 as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(shutdown_1024)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_api>())).create as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_api>())).destroy as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_api>())).allocator as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_api>())).frame_alloc as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(frame_alloc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_api>())).frame_allocator as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(frame_allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_api>())).tick_frame as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(tick_frame)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_api>())).vprintf as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(vprintf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_temp_allocator_api>())).printf as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(printf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_api>())).frame_vprintf as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(frame_vprintf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_api>())).frame_printf as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(frame_printf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_temp_allocator_api>())).statistics as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_temp_allocator_api),
            "::",
            stringify!(statistics)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_hash_id_to_id_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_set_t {
    _unused: [u8; 0],
}
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_NONE: tm_the_truth_property_type =
    0;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_BOOL: tm_the_truth_property_type =
    1;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_UINT32_T:
    tm_the_truth_property_type = 2;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_UINT64_T:
    tm_the_truth_property_type = 3;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_FLOAT: tm_the_truth_property_type =
    4;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_DOUBLE: tm_the_truth_property_type =
    5;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_STRING: tm_the_truth_property_type =
    6;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_BUFFER: tm_the_truth_property_type =
    7;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_REFERENCE:
    tm_the_truth_property_type = 8;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_SUBOBJECT:
    tm_the_truth_property_type = 9;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_REFERENCE_SET:
    tm_the_truth_property_type = 10;
pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_SUBOBJECT_SET:
    tm_the_truth_property_type = 11;
pub const tm_the_truth_property_type_TM_THE_TRUTH_NUM_PROPERTY_TYPES: tm_the_truth_property_type =
    12;
pub type tm_the_truth_property_type = ::std::os::raw::c_int;
pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__DEFAULT: tm_the_truth_editor = 0;
pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__HIDDEN: tm_the_truth_editor = 1;
pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__UINT32_T__ENUM: tm_the_truth_editor = 2;
pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__STRING__OPEN_PATH: tm_the_truth_editor = 3;
pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__STRING__SAVE_PATH: tm_the_truth_editor = 4;
pub type tm_the_truth_editor = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_editor_enum_t {
    pub count: u32,
    pub _padding_363: [::std::os::raw::c_char; 4usize],
    pub names: *const *const ::std::os::raw::c_char,
    pub tooltips: *const *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_the_truth_editor_enum_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_editor_enum_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_the_truth_editor_enum_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_editor_enum_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_editor_enum_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_editor_enum_t>())).count as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_editor_enum_t),
            "::",
            stringify!(count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_editor_enum_t>()))._padding_363 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_editor_enum_t),
            "::",
            stringify!(_padding_363)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_editor_enum_t>())).names as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_editor_enum_t),
            "::",
            stringify!(names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_editor_enum_t>())).tooltips as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_editor_enum_t),
            "::",
            stringify!(tooltips)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_editor_string_open_path_t {
    pub extensions: *const ::std::os::raw::c_char,
    pub description: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_the_truth_editor_string_open_path_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_editor_string_open_path_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_the_truth_editor_string_open_path_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_editor_string_open_path_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_the_truth_editor_string_open_path_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_editor_string_open_path_t>())).extensions
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_editor_string_open_path_t),
            "::",
            stringify!(extensions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_editor_string_open_path_t>())).description
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_editor_string_open_path_t),
            "::",
            stringify!(description)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_editor_string_save_path_t {
    pub default_file_name: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_the_truth_editor_string_save_path_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_editor_string_save_path_t>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_the_truth_editor_string_save_path_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_editor_string_save_path_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_the_truth_editor_string_save_path_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_editor_string_save_path_t>())).default_file_name
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_editor_string_save_path_t),
            "::",
            stringify!(default_file_name)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_object_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_the_truth_property_definition_t {
    pub name: *const ::std::os::raw::c_char,
    pub type_: u32,
    pub editor: u32,
    pub __bindgen_anon_1: tm_the_truth_property_definition_t__bindgen_ty_1,
    pub type_hash: u64,
    pub buffer_extension: *const ::std::os::raw::c_char,
    pub buffer_extension_f: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            property: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub tooltip: *const ::std::os::raw::c_char,
    pub not_serialized: bool,
    pub _padding_454: [::std::os::raw::c_char; 7usize],
    pub ui_name: *const ::std::os::raw::c_char,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_the_truth_property_definition_t__bindgen_ty_1 {
    pub enum_editor: tm_the_truth_editor_enum_t,
    pub string_open_path_editor: tm_the_truth_editor_string_open_path_t,
    pub string_save_path_editor: tm_the_truth_editor_string_save_path_t,
    _bindgen_union_align: [u64; 3usize],
}
#[test]
fn bindgen_test_layout_tm_the_truth_property_definition_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_property_definition_t__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_the_truth_property_definition_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_property_definition_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_the_truth_property_definition_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t__bindgen_ty_1>())).enum_editor
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t__bindgen_ty_1),
            "::",
            stringify!(enum_editor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t__bindgen_ty_1>()))
                .string_open_path_editor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t__bindgen_ty_1),
            "::",
            stringify!(string_open_path_editor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t__bindgen_ty_1>()))
                .string_save_path_editor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t__bindgen_ty_1),
            "::",
            stringify!(string_save_path_editor)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_the_truth_property_definition_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_property_definition_t>(),
        88usize,
        concat!("Size of: ", stringify!(tm_the_truth_property_definition_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_property_definition_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_the_truth_property_definition_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).type_ as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).editor as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(editor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).type_hash as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(type_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).buffer_extension
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(buffer_extension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).buffer_extension_f
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(buffer_extension_f)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).tooltip as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).not_serialized
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(not_serialized)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>()))._padding_454 as *const _
                as usize
        },
        73usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(_padding_454)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_property_definition_t>())).ui_name as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_property_definition_t),
            "::",
            stringify!(ui_name)
        )
    );
}
pub type tm_the_truth_create_types_i =
    ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>;
pub const tm_the_truth_create_types_TM_THE_TRUTH_CREATE_TYPES_NONE: tm_the_truth_create_types = 0;
pub const tm_the_truth_create_types_TM_THE_TRUTH_CREATE_TYPES_ALL: tm_the_truth_create_types = 1;
pub type tm_the_truth_create_types = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_get_types_with_aspect_t {
    pub type_: u64,
    pub data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_the_truth_get_types_with_aspect_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_get_types_with_aspect_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_the_truth_get_types_with_aspect_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_get_types_with_aspect_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_the_truth_get_types_with_aspect_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_get_types_with_aspect_t>())).type_ as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_get_types_with_aspect_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_get_types_with_aspect_t>())).data as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_get_types_with_aspect_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_get_aspects_t {
    pub id: u64,
    pub data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_the_truth_get_aspects_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_get_aspects_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_the_truth_get_aspects_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_get_aspects_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_get_aspects_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_get_aspects_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_get_aspects_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_get_aspects_t>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_get_aspects_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_local_set_t {
    pub num_added: u32,
    pub _padding_501: [::std::os::raw::c_char; 4usize],
    pub added: *const tm_tt_id_t,
    pub num_removed: u32,
    pub _padding_506: [::std::os::raw::c_char; 4usize],
    pub removed: *const tm_tt_id_t,
    pub num_instantiated: u32,
    pub _padding_511: [::std::os::raw::c_char; 4usize],
    pub instantiated: *const tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_the_truth_local_set_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_local_set_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_the_truth_local_set_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_local_set_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_local_set_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>())).num_added as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(num_added)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>()))._padding_501 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(_padding_501)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_local_set_t>())).added as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(added)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>())).num_removed as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(num_removed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>()))._padding_506 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(_padding_506)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>())).removed as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(removed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>())).num_instantiated as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(num_instantiated)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>()))._padding_511 as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(_padding_511)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_local_set_t>())).instantiated as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_local_set_t),
            "::",
            stringify!(instantiated)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_set_local_subobject_set_t {
    pub num_added: u32,
    pub _padding_520: [::std::os::raw::c_char; 4usize],
    pub added: *mut *mut tm_the_truth_object_o,
    pub num_removed: u32,
    pub _padding_525: [::std::os::raw::c_char; 4usize],
    pub removed: *const tm_tt_id_t,
    pub num_instantiated: u32,
    pub _padding_530: [::std::os::raw::c_char; 4usize],
    pub instantiated: *mut *mut tm_the_truth_object_o,
}
#[test]
fn bindgen_test_layout_tm_the_truth_set_local_subobject_set_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_set_local_subobject_set_t>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(tm_the_truth_set_local_subobject_set_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_set_local_subobject_set_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_the_truth_set_local_subobject_set_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>())).num_added as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(num_added)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>()))._padding_520
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(_padding_520)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>())).added as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(added)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>())).num_removed
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(num_removed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>()))._padding_525
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(_padding_525)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>())).removed as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(removed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>())).num_instantiated
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(num_instantiated)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>()))._padding_530
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(_padding_530)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_set_local_subobject_set_t>())).instantiated
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_set_local_subobject_set_t),
            "::",
            stringify!(instantiated)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_changed_objects_t {
    pub overflow: bool,
    pub _padding_540: [::std::os::raw::c_char; 3usize],
    pub num_objects: u32,
    pub objects: *mut tm_tt_id_t,
    pub version: u64,
}
#[test]
fn bindgen_test_layout_tm_the_truth_changed_objects_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_changed_objects_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_the_truth_changed_objects_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_changed_objects_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_changed_objects_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_changed_objects_t>())).overflow as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_changed_objects_t),
            "::",
            stringify!(overflow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_changed_objects_t>()))._padding_540 as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_changed_objects_t),
            "::",
            stringify!(_padding_540)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_changed_objects_t>())).num_objects as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_changed_objects_t),
            "::",
            stringify!(num_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_changed_objects_t>())).objects as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_changed_objects_t),
            "::",
            stringify!(objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_changed_objects_t>())).version as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_changed_objects_t),
            "::",
            stringify!(version)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_hash_u64_to_id_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_interop_context_t {
    pub to_tt: *mut tm_the_truth_o,
    pub from_tt: *mut tm_the_truth_o,
    pub type_lookup: *mut tm_hash32_t,
    pub property_lookup: *mut tm_hash32_t,
    pub buffer_lookup: *mut tm_hash32_t,
    pub object_lookup: *mut tm_hash_u64_to_id_t,
}
#[test]
fn bindgen_test_layout_tm_the_truth_interop_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_interop_context_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_the_truth_interop_context_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_interop_context_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_interop_context_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_interop_context_t>())).to_tt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_interop_context_t),
            "::",
            stringify!(to_tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_interop_context_t>())).from_tt as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_interop_context_t),
            "::",
            stringify!(from_tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_interop_context_t>())).type_lookup as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_interop_context_t),
            "::",
            stringify!(type_lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_interop_context_t>())).property_lookup as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_interop_context_t),
            "::",
            stringify!(property_lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_interop_context_t>())).buffer_lookup as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_interop_context_t),
            "::",
            stringify!(buffer_lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_interop_context_t>())).object_lookup as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_interop_context_t),
            "::",
            stringify!(object_lookup)
        )
    );
}
pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_ADDED:
    tm_the_truth_prototype_relation = 0;
pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_ASSET:
    tm_the_truth_prototype_relation = 1;
pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_INHERITED:
    tm_the_truth_prototype_relation = 2;
pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_INSTANTIATED:
    tm_the_truth_prototype_relation = 3;
pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_REMOVED:
    tm_the_truth_prototype_relation = 4;
pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_NONE:
    tm_the_truth_prototype_relation = 5;
pub type tm_the_truth_prototype_relation = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_buffer_t {
    pub id: u32,
    pub _padding_604: [::std::os::raw::c_char; 4usize],
    pub size: u64,
    pub data: *const ::std::os::raw::c_void,
    pub hash: u64,
}
#[test]
fn bindgen_test_layout_tm_tt_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_buffer_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_tt_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_buffer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_buffer_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_buffer_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_buffer_t>()))._padding_604 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_buffer_t),
            "::",
            stringify!(_padding_604)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_buffer_t>())).size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_buffer_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_buffer_t>())).data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_buffer_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_buffer_t>())).hash as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_buffer_t),
            "::",
            stringify!(hash)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tt_prop_value_t {
    pub type_: tm_the_truth_property_type,
    pub _padding_620: [::std::os::raw::c_char; 4usize],
    pub __bindgen_anon_1: tm_tt_prop_value_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_tt_prop_value_t__bindgen_ty_1 {
    pub b: bool,
    pub u32_: u32,
    pub u64_: u64,
    pub f32_: f32,
    pub f64_: f64,
    pub string: *const ::std::os::raw::c_char,
    pub buffer: tm_tt_buffer_t,
    pub object: tm_tt_id_t,
    pub set: *const tm_tt_id_t,
    _bindgen_union_align: [u64; 4usize],
}
#[test]
fn bindgen_test_layout_tm_tt_prop_value_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_prop_value_t__bindgen_ty_1>(),
        32usize,
        concat!("Size of: ", stringify!(tm_tt_prop_value_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_prop_value_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).b as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(b)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).u32_ as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(u32_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).u64_ as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(u64_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).f32_ as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(f32_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).f64_ as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(f64_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).string as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(string)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).buffer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).object as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop_value_t__bindgen_ty_1>())).set as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t__bindgen_ty_1),
            "::",
            stringify!(set)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_tt_prop_value_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_prop_value_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_tt_prop_value_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_prop_value_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_prop_value_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_prop_value_t>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_prop_value_t>()))._padding_620 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop_value_t),
            "::",
            stringify!(_padding_620)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_undo_action_t {
    pub before: *const tm_the_truth_object_o,
    pub after: *const tm_the_truth_object_o,
}
#[test]
fn bindgen_test_layout_tm_tt_undo_action_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_undo_action_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_tt_undo_action_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_undo_action_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_undo_action_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_undo_action_t>())).before as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_undo_action_t),
            "::",
            stringify!(before)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_undo_action_t>())).after as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_undo_action_t),
            "::",
            stringify!(after)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_serialize_options_t {
    pub serialize_buffers_as_hashes: bool,
    pub skip_type_index: bool,
    pub _padding_661: [::std::os::raw::c_char; 6usize],
    pub types: *mut tm_set_t,
}
#[test]
fn bindgen_test_layout_tm_tt_serialize_options_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_serialize_options_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_tt_serialize_options_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_serialize_options_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_serialize_options_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_serialize_options_t>())).serialize_buffers_as_hashes
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_serialize_options_t),
            "::",
            stringify!(serialize_buffers_as_hashes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_serialize_options_t>())).skip_type_index as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_serialize_options_t),
            "::",
            stringify!(skip_type_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_serialize_options_t>()))._padding_661 as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_serialize_options_t),
            "::",
            stringify!(_padding_661)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_serialize_options_t>())).types as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_serialize_options_t),
            "::",
            stringify!(types)
        )
    );
}
pub const TM_THE_TRUTH_MAX_PROPERTIES: ::std::os::raw::c_int = 64;
pub type _bindgen_ty_2 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_the_truth_serialized_type_info_t {
    pub runtime_type: u64,
    pub properties_differ: bool,
    pub _padding_681: [::std::os::raw::c_char; 3usize],
    pub num_properties: u32,
    pub serialized_property_to_runtime_property: [u32; 64usize],
    pub serialized_property_type: [u32; 64usize],
}
#[test]
fn bindgen_test_layout_tm_the_truth_serialized_type_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_serialized_type_info_t>(),
        528usize,
        concat!("Size of: ", stringify!(tm_the_truth_serialized_type_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_serialized_type_info_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_the_truth_serialized_type_info_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_serialized_type_info_t>())).runtime_type as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_serialized_type_info_t),
            "::",
            stringify!(runtime_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_serialized_type_info_t>())).properties_differ
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_serialized_type_info_t),
            "::",
            stringify!(properties_differ)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_serialized_type_info_t>()))._padding_681 as *const _
                as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_serialized_type_info_t),
            "::",
            stringify!(_padding_681)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_serialized_type_info_t>())).num_properties
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_serialized_type_info_t),
            "::",
            stringify!(num_properties)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_serialized_type_info_t>()))
                .serialized_property_to_runtime_property as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_serialized_type_info_t),
            "::",
            stringify!(serialized_property_to_runtime_property)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_serialized_type_info_t>())).serialized_property_type
                as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_serialized_type_info_t),
            "::",
            stringify!(serialized_property_type)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_deserialize_options_t {
    pub buffers_preloaded: bool,
    pub skip_type_index: bool,
    pub _padding_704: [::std::os::raw::c_char; 6usize],
    pub type_infos: *const tm_the_truth_serialized_type_info_t,
}
#[test]
fn bindgen_test_layout_tm_tt_deserialize_options_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_deserialize_options_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_tt_deserialize_options_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_deserialize_options_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_deserialize_options_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_deserialize_options_t>())).buffers_preloaded as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_deserialize_options_t),
            "::",
            stringify!(buffers_preloaded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_deserialize_options_t>())).skip_type_index as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_deserialize_options_t),
            "::",
            stringify!(skip_type_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_deserialize_options_t>()))._padding_704 as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_deserialize_options_t),
            "::",
            stringify!(_padding_704)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_deserialize_options_t>())).type_infos as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_deserialize_options_t),
            "::",
            stringify!(type_infos)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_serialize_changes_options_t {
    pub no_header: bool,
}
#[test]
fn bindgen_test_layout_tm_tt_serialize_changes_options_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_serialize_changes_options_t>(),
        1usize,
        concat!("Size of: ", stringify!(tm_tt_serialize_changes_options_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_serialize_changes_options_t>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tm_tt_serialize_changes_options_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_serialize_changes_options_t>())).no_header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_serialize_changes_options_t),
            "::",
            stringify!(no_header)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_deserialize_changes_options_t {
    pub header: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_tt_deserialize_changes_options_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_deserialize_changes_options_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_tt_deserialize_changes_options_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_deserialize_changes_options_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_tt_deserialize_changes_options_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_deserialize_changes_options_t>())).header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_deserialize_changes_options_t),
            "::",
            stringify!(header)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_memory_use_t {
    pub resident: u64,
    pub unloaded: u64,
}
#[test]
fn bindgen_test_layout_tm_tt_memory_use_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_memory_use_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_tt_memory_use_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_memory_use_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_memory_use_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_memory_use_t>())).resident as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_memory_use_t),
            "::",
            stringify!(resident)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_memory_use_t>())).unloaded as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_memory_use_t),
            "::",
            stringify!(unloaded)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_api {
    pub allocator:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_allocator_i>,
    pub buffers:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_buffers_i>,
    pub streamable_buffers: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_streamable_buffers_i,
    >,
    pub create_object_type: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            name: *const ::std::os::raw::c_char,
            properties: *const tm_the_truth_property_definition_t,
            num_properties: u32,
        ) -> u64,
    >,
    pub set_default_object: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, object_type: u64, object: tm_tt_id_t),
    >,
    pub set_default_object_to_create_subobjects:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, object_type: u64)>,
    pub default_object: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object_type: u64) -> tm_tt_id_t,
    >,
    pub is_default: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> bool,
    >,
    pub set_aspect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object_type: u64,
            aspect: u64,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub set_default_aspect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            aspect: u64,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub set_property_aspect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object_type: u64,
            property: u32,
            aspect: u64,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub reload_aspects: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub set_dont_propagate_version_tick: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, object_type: u64, state: bool),
    >,
    pub object_type_from_name_hash: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, name_hash: u64) -> u64,
    >,
    pub optional_object_type_from_name_hash: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, name_hash: u64) -> u64,
    >,
    pub num_types: ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> u32>,
    pub type_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub type_name_hash: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object_type: u64) -> u64,
    >,
    pub num_properties: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object_type: u64) -> u32,
    >,
    pub properties: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
        ) -> *const tm_the_truth_property_definition_t,
    >,
    pub find_property: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
            name_hash: u64,
            type_: u32,
            res: *mut u32,
        ) -> bool,
    >,
    pub property_index: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, type_: u64, name_hash: u64) -> u32,
    >,
    pub has_property: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, type_: u64, name_hash: u64) -> u32,
    >,
    pub get_aspect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
            aspect: u64,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub get_types_with_aspect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            aspect: u64,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_the_truth_get_types_with_aspect_t,
    >,
    pub get_aspects: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
        ) -> *const tm_the_truth_get_aspects_t,
    >,
    pub get_property_aspect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
            property: u32,
            aspect: u64,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub all_objects_of_type: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_tt_id_t,
    >,
    pub create_undo_scope: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            name: *const ::std::os::raw::c_char,
        ) -> tm_tt_undo_scope_t,
    >,
    pub create_thread_safe_undo_scope: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            name: *const ::std::os::raw::c_char,
        ) -> tm_tt_undo_scope_t,
    >,
    pub clear_undo_scopes: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub undo_scope_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            scope: tm_tt_undo_scope_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub undo_scope_objects: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            scope: tm_tt_undo_scope_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_tt_id_t,
    >,
    pub undo_scope_actions: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            scope: tm_tt_undo_scope_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_tt_undo_action_t,
    >,
    pub undo: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, scope: tm_tt_undo_scope_t),
    >,
    pub redo: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, scope: tm_tt_undo_scope_t),
    >,
    pub create_object_of_type: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            type_: u64,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub create_object_from_prototype: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            prototype: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub clone_object: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub instantiate_subobject: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub remove_instantiated_subobject: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub instantiate_subobject_from_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            subobject: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub remove_instantiated_subobject_from_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            subobject: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub add_instantiated_subobject_back_to_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            subobject: tm_tt_id_t,
        ),
    >,
    pub id: ::std::option::Option<
        unsafe extern "C" fn(obj: *const tm_the_truth_object_o) -> tm_tt_id_t,
    >,
    pub destroy_object: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub destroy_objects: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: *const tm_tt_id_t,
            n: u32,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub garbage_collect: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub is_alive: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> bool,
    >,
    pub interop_ensure_compatibility:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_the_truth_interop_context_t)>,
    pub interop_clone_object: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_the_truth_interop_context_t,
            object: tm_tt_id_t,
        ) -> tm_tt_id_t,
    >,
    pub deep_clone_assets: ::std::option::Option<
        unsafe extern "C" fn(
            to_tt: *mut tm_the_truth_o,
            from_tt: *const tm_the_truth_o,
            assets: *const tm_tt_id_t,
            n: u32,
            undo_scope: tm_tt_undo_scope_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_tt_id_t,
    >,
    pub uuid: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> tm_uuid_t,
    >,
    pub read: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
        ) -> *const tm_the_truth_object_o,
    >,
    pub get_bool: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> bool,
    >,
    pub get_uint32_t: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> u32,
    >,
    pub get_uint64_t: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> u64,
    >,
    pub get_float: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> f32,
    >,
    pub get_double: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> f64,
    >,
    pub get_string: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub get_string_hash: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> u64,
    >,
    pub get_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_tt_buffer_t,
    >,
    pub get_reference: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_tt_id_t,
    >,
    pub get_subobject: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_tt_id_t,
    >,
    pub get_property_value: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_tt_prop_value_t,
    >,
    pub property_value_equal: ::std::option::Option<
        unsafe extern "C" fn(a: tm_tt_prop_value_t, b: tm_tt_prop_value_t) -> bool,
    >,
    pub get_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub get_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub get_reference_set_size: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> u64,
    >,
    pub get_subobject_set_size: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> u64,
    >,
    pub get_subobject_set_locally_removed: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub find_subobject_of_type: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
            type_: u64,
        ) -> tm_tt_id_t,
    >,
    pub is_subobject_of: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
            subobject: tm_tt_id_t,
        ) -> bool,
    >,
    pub property_index_of_subobject: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            subobject: tm_tt_id_t,
        ) -> u32,
    >,
    pub write: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
        ) -> *mut tm_the_truth_object_o,
    >,
    pub commit: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub commit_range: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut *mut tm_the_truth_object_o,
            n: u32,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub retarget_write: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            object: tm_tt_id_t,
        ),
    >,
    pub try_write: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            original: *mut *const tm_the_truth_object_o,
        ) -> *mut tm_the_truth_object_o,
    >,
    pub try_commit: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            original: *const tm_the_truth_object_o,
            undo_scope: tm_tt_undo_scope_t,
        ) -> bool,
    >,
    pub set_bool: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: bool,
        ),
    >,
    pub set_uint32_t: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: u32,
        ),
    >,
    pub set_uint64_t: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: u64,
        ),
    >,
    pub set_float: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: f32,
        ),
    >,
    pub set_double: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: f64,
        ),
    >,
    pub set_string: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: *const ::std::os::raw::c_char,
        ),
    >,
    pub set_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: u32,
        ),
    >,
    pub set_reference: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: tm_tt_id_t,
        ),
    >,
    pub set_subobject: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: *mut tm_the_truth_object_o,
        ),
    >,
    pub set_subobject_id: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_property_value: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            value: tm_tt_prop_value_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub clear: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
        ),
    >,
    pub clear_object: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, obj: *mut tm_the_truth_object_o),
    >,
    pub propagate_property: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            property: u32,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub propagate_object: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub propagate_object_except: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            skip: *const tm_tt_id_t,
            num_skip: u32,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub add_to_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *const tm_tt_id_t,
            count: u32,
        ),
    >,
    pub remove_from_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *const tm_tt_id_t,
            count: u32,
        ),
    >,
    pub clear_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
        ),
    >,
    pub remove_from_prototype_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *const tm_tt_id_t,
            count: u32,
        ),
    >,
    pub cancel_remove_from_prototype_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *const tm_tt_id_t,
            count: u32,
        ),
    >,
    pub add_to_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *mut *mut tm_the_truth_object_o,
            count: u32,
        ),
    >,
    pub remove_from_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *const tm_tt_id_t,
            count: u32,
        ),
    >,
    pub clear_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
        ),
    >,
    pub remove_from_prototype_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *const tm_tt_id_t,
            count: u32,
        ),
    >,
    pub cancel_remove_from_prototype_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            items: *const tm_tt_id_t,
            count: u32,
        ),
    >,
    pub prototype: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> tm_tt_id_t,
    >,
    pub owner: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> tm_tt_id_t,
    >,
    pub is_currently_owner_of: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            subobject: tm_tt_id_t,
        ) -> bool,
    >,
    pub is_overridden: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> bool,
    >,
    pub has_data: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> bool,
    >,
    pub prototype_relation: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent: tm_tt_id_t,
            property: u32,
            object: tm_tt_id_t,
        ) -> tm_the_truth_prototype_relation,
    >,
    pub version: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> u32,
    >,
    pub changed_objects: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            type_: u64,
            since_version: u64,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_the_truth_changed_objects_t,
    >,
    pub request_changelog:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> u64>,
    pub relinquish_changelog:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, h: u64)>,
    pub disable_changelog_start_scope:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub disable_changelog_end_scope:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub changelog_size: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> u64>,
    pub serialize: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            o: tm_tt_id_t,
            carray: *mut *mut ::std::os::raw::c_char,
            a: *mut tm_allocator_i,
            opt: *const tm_tt_serialize_options_t,
        ),
    >,
    pub deserialize: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            buffer: *mut *const ::std::os::raw::c_char,
            opt: *const tm_tt_deserialize_options_t,
        ) -> tm_tt_id_t,
    >,
    pub buffer_hashes: ::std::option::Option<
        unsafe extern "C" fn(
            buffer: *mut *const ::std::os::raw::c_char,
            count: *mut u64,
        ) -> *const u64,
    >,
    pub deserialize_from_file: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            file: *const ::std::os::raw::c_char,
        ) -> tm_tt_id_t,
    >,
    pub migration_ids: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, n: *mut u32) -> *mut u64,
    >,
    pub serialize_changes_header: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            carray: *mut *mut ::std::os::raw::c_char,
            a: *mut tm_allocator_i,
        ),
    >,
    pub serialize_changes: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            begin: u64,
            end: u64,
            carray: *mut *mut ::std::os::raw::c_char,
            a: *mut tm_allocator_i,
            opt: *const tm_tt_serialize_changes_options_t,
        ),
    >,
    pub deserialize_changes: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            buffer: *mut *const ::std::os::raw::c_char,
            opt: *const tm_tt_deserialize_changes_options_t,
        ),
    >,
    pub serialize_patch: ::std::option::Option<
        unsafe extern "C" fn(
            from_tt: *mut tm_the_truth_o,
            from_o: tm_tt_id_t,
            to_tt: *mut tm_the_truth_o,
            to_o: tm_tt_id_t,
            carray: *mut *mut ::std::os::raw::c_char,
            a: *mut tm_allocator_i,
        ),
    >,
    pub deserialize_patch: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, buffer: *mut *const ::std::os::raw::c_char),
    >,
    pub deserialize_patch_from_file: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, file: *const ::std::os::raw::c_char),
    >,
    pub serialize_type: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            type_: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub deserialize_type: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            buf: *mut *const ::std::os::raw::c_char,
            type_info: *mut tm_the_truth_serialized_type_info_t,
        ),
    >,
    pub memory_use: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            id: tm_tt_id_t,
            buffers: *mut tm_set_t,
        ) -> tm_tt_memory_use_t,
    >,
    pub add_properties: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            type_: u64,
            properties: *const tm_the_truth_property_definition_t,
            num_properties: u32,
        ),
    >,
    pub resolve_or_create_placeholder: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            uuid: tm_uuid_t,
            type_: u64,
            default_initialize: bool,
        ) -> tm_tt_id_t,
    >,
    pub resolve_or_fail: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, uuid: tm_uuid_t, type_: u64) -> tm_tt_id_t,
    >,
    pub set_uuid: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, id: tm_tt_id_t, uuid: tm_uuid_t),
    >,
    pub set_prototype: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            id: tm_tt_id_t,
        ),
    >,
    pub detach_from_prototype: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            id: tm_tt_id_t,
            lookup: *mut tm_hash_id_to_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub detach_all_instances: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            id: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub get_local_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_the_truth_local_set_t,
    >,
    pub get_local_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_the_truth_local_set_t,
    >,
    pub set_local_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            set: tm_the_truth_local_set_t,
        ),
    >,
    pub set_local_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            property: u32,
            set: tm_the_truth_set_local_subobject_set_t,
        ),
    >,
    pub string_repository: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_string_repository_i,
    >,
    pub set_migration_ids:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, ids: *mut u64, n: u32)>,
    pub set_properties_to_default: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, obj: *mut tm_the_truth_object_o, mask: u64),
    >,
    pub instantiate_subobjects_recursively: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub quick_set_properties: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            undo_scope: tm_tt_undo_scope_t,
            id: tm_tt_id_t,
            ...
        ),
    >,
    pub quick_create_object: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            undo_scope: tm_tt_undo_scope_t,
            type_hash: u64,
            ...
        ) -> tm_tt_id_t,
    >,
    pub quick_get_property: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            id: tm_tt_id_t,
            prop_1: u32,
            ...
        ) -> tm_tt_prop_value_t,
    >,
    pub internal__set_owner: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            object: tm_tt_id_t,
        ),
    >,
    pub debug_inspect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub internal__detect_overlapping_writes:
        ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> bool>,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            types: tm_the_truth_create_types,
        ) -> *mut tm_the_truth_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
}
#[test]
fn bindgen_test_layout_tm_the_truth_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_api>(),
        1248usize,
        concat!("Size of: ", stringify!(tm_the_truth_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).allocator as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).buffers as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).streamable_buffers as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(streamable_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).create_object_type as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(create_object_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_default_object as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_default_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_default_object_to_create_subobjects
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_default_object_to_create_subobjects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).default_object as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(default_object)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).is_default as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(is_default)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_aspect as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_aspect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_default_aspect as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_default_aspect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_property_aspect as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_property_aspect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).reload_aspects as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(reload_aspects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_dont_propagate_version_tick as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_dont_propagate_version_tick)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).object_type_from_name_hash as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(object_type_from_name_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).optional_object_type_from_name_hash
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(optional_object_type_from_name_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).num_types as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(num_types)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).type_name as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(type_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).type_name_hash as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(type_name_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).num_properties as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(num_properties)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).properties as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(properties)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).find_property as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(find_property)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).property_index as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(property_index)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).has_property as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(has_property)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_aspect as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_aspect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_types_with_aspect as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_types_with_aspect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_aspects as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_aspects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_property_aspect as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_property_aspect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).all_objects_of_type as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(all_objects_of_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).create_undo_scope as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(create_undo_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).create_thread_safe_undo_scope as *const _
                as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(create_thread_safe_undo_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).clear_undo_scopes as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(clear_undo_scopes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).undo_scope_name as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(undo_scope_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).undo_scope_objects as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(undo_scope_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).undo_scope_actions as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(undo_scope_actions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).undo as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(undo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).redo as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(redo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).create_object_of_type as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(create_object_of_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).create_object_from_prototype as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(create_object_from_prototype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).clone_object as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(clone_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).instantiate_subobject as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(instantiate_subobject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).remove_instantiated_subobject as *const _
                as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(remove_instantiated_subobject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).instantiate_subobject_from_set as *const _
                as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(instantiate_subobject_from_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).remove_instantiated_subobject_from_set
                as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(remove_instantiated_subobject_from_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).add_instantiated_subobject_back_to_set
                as *const _ as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(add_instantiated_subobject_back_to_set)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).id as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).destroy_object as *const _ as usize },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(destroy_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).destroy_objects as *const _ as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(destroy_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).garbage_collect as *const _ as usize
        },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(garbage_collect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).is_alive as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(is_alive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).interop_ensure_compatibility as *const _
                as usize
        },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(interop_ensure_compatibility)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).interop_clone_object as *const _ as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(interop_clone_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).deep_clone_assets as *const _ as usize
        },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(deep_clone_assets)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).uuid as *const _ as usize },
        416usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(uuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).read as *const _ as usize },
        424usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_bool as *const _ as usize },
        432usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_bool)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_uint32_t as *const _ as usize },
        440usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_uint32_t)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_uint64_t as *const _ as usize },
        448usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_uint64_t)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_float as *const _ as usize },
        456usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_float)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_double as *const _ as usize },
        464usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_double)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_string as *const _ as usize },
        472usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_string)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_string_hash as *const _ as usize
        },
        480usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_string_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_buffer as *const _ as usize },
        488usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_reference as *const _ as usize },
        496usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_reference)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).get_subobject as *const _ as usize },
        504usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_subobject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_property_value as *const _ as usize
        },
        512usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_property_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).property_value_equal as *const _ as usize
        },
        520usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(property_value_equal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_reference_set as *const _ as usize
        },
        528usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_subobject_set as *const _ as usize
        },
        536usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_reference_set_size as *const _ as usize
        },
        544usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_reference_set_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_subobject_set_size as *const _ as usize
        },
        552usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_subobject_set_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_subobject_set_locally_removed
                as *const _ as usize
        },
        560usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_subobject_set_locally_removed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).find_subobject_of_type as *const _ as usize
        },
        568usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(find_subobject_of_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).is_subobject_of as *const _ as usize
        },
        576usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(is_subobject_of)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).property_index_of_subobject as *const _
                as usize
        },
        584usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(property_index_of_subobject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).write as *const _ as usize },
        592usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).commit as *const _ as usize },
        600usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(commit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).commit_range as *const _ as usize },
        608usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(commit_range)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).retarget_write as *const _ as usize },
        616usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(retarget_write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).try_write as *const _ as usize },
        624usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(try_write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).try_commit as *const _ as usize },
        632usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(try_commit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_bool as *const _ as usize },
        640usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_bool)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_uint32_t as *const _ as usize },
        648usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_uint32_t)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_uint64_t as *const _ as usize },
        656usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_uint64_t)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_float as *const _ as usize },
        664usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_float)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_double as *const _ as usize },
        672usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_double)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_string as *const _ as usize },
        680usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_string)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_buffer as *const _ as usize },
        688usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_reference as *const _ as usize },
        696usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_reference)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_subobject as *const _ as usize },
        704usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_subobject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_subobject_id as *const _ as usize
        },
        712usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_subobject_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_property_value as *const _ as usize
        },
        720usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_property_value)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).clear as *const _ as usize },
        728usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(clear)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).clear_object as *const _ as usize },
        736usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(clear_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).propagate_property as *const _ as usize
        },
        744usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(propagate_property)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).propagate_object as *const _ as usize
        },
        752usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(propagate_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).propagate_object_except as *const _
                as usize
        },
        760usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(propagate_object_except)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).add_to_reference_set as *const _ as usize
        },
        768usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(add_to_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).remove_from_reference_set as *const _
                as usize
        },
        776usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(remove_from_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).clear_reference_set as *const _ as usize
        },
        784usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(clear_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).remove_from_prototype_reference_set
                as *const _ as usize
        },
        792usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(remove_from_prototype_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).cancel_remove_from_prototype_reference_set
                as *const _ as usize
        },
        800usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(cancel_remove_from_prototype_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).add_to_subobject_set as *const _ as usize
        },
        808usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(add_to_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).remove_from_subobject_set as *const _
                as usize
        },
        816usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(remove_from_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).clear_subobject_set as *const _ as usize
        },
        824usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(clear_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).remove_from_prototype_subobject_set
                as *const _ as usize
        },
        832usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(remove_from_prototype_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).cancel_remove_from_prototype_subobject_set
                as *const _ as usize
        },
        840usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(cancel_remove_from_prototype_subobject_set)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).prototype as *const _ as usize },
        848usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(prototype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).owner as *const _ as usize },
        856usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(owner)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).is_currently_owner_of as *const _ as usize
        },
        864usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(is_currently_owner_of)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).is_overridden as *const _ as usize },
        872usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(is_overridden)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).has_data as *const _ as usize },
        880usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(has_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).prototype_relation as *const _ as usize
        },
        888usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(prototype_relation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).version as *const _ as usize },
        896usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).changed_objects as *const _ as usize
        },
        904usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(changed_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).request_changelog as *const _ as usize
        },
        912usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(request_changelog)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).relinquish_changelog as *const _ as usize
        },
        920usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(relinquish_changelog)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).disable_changelog_start_scope as *const _
                as usize
        },
        928usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(disable_changelog_start_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).disable_changelog_end_scope as *const _
                as usize
        },
        936usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(disable_changelog_end_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).changelog_size as *const _ as usize },
        944usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(changelog_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).serialize as *const _ as usize },
        952usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(serialize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).deserialize as *const _ as usize },
        960usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(deserialize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).buffer_hashes as *const _ as usize },
        968usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(buffer_hashes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).deserialize_from_file as *const _ as usize
        },
        976usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(deserialize_from_file)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).migration_ids as *const _ as usize },
        984usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(migration_ids)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).serialize_changes_header as *const _
                as usize
        },
        992usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(serialize_changes_header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).serialize_changes as *const _ as usize
        },
        1000usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(serialize_changes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).deserialize_changes as *const _ as usize
        },
        1008usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(deserialize_changes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).serialize_patch as *const _ as usize
        },
        1016usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(serialize_patch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).deserialize_patch as *const _ as usize
        },
        1024usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(deserialize_patch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).deserialize_patch_from_file as *const _
                as usize
        },
        1032usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(deserialize_patch_from_file)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).serialize_type as *const _ as usize },
        1040usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(serialize_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).deserialize_type as *const _ as usize
        },
        1048usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(deserialize_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).memory_use as *const _ as usize },
        1056usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(memory_use)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).add_properties as *const _ as usize },
        1064usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(add_properties)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).resolve_or_create_placeholder as *const _
                as usize
        },
        1072usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(resolve_or_create_placeholder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).resolve_or_fail as *const _ as usize
        },
        1080usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(resolve_or_fail)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_uuid as *const _ as usize },
        1088usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_uuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).set_prototype as *const _ as usize },
        1096usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_prototype)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).detach_from_prototype as *const _ as usize
        },
        1104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(detach_from_prototype)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).detach_all_instances as *const _ as usize
        },
        1112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(detach_all_instances)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_local_reference_set as *const _
                as usize
        },
        1120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_local_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).get_local_subobject_set as *const _
                as usize
        },
        1128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(get_local_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_local_reference_set as *const _
                as usize
        },
        1136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_local_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_local_subobject_set as *const _
                as usize
        },
        1144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_local_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).string_repository as *const _ as usize
        },
        1152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(string_repository)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_migration_ids as *const _ as usize
        },
        1160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_migration_ids)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).set_properties_to_default as *const _
                as usize
        },
        1168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(set_properties_to_default)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).instantiate_subobjects_recursively
                as *const _ as usize
        },
        1176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(instantiate_subobjects_recursively)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).quick_set_properties as *const _ as usize
        },
        1184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(quick_set_properties)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).quick_create_object as *const _ as usize
        },
        1192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(quick_create_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).quick_get_property as *const _ as usize
        },
        1200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(quick_get_property)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).internal__set_owner as *const _ as usize
        },
        1208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(internal__set_owner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).debug_inspect as *const _ as usize },
        1216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(debug_inspect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_api>())).internal__detect_overlapping_writes
                as *const _ as usize
        },
        1224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(internal__detect_overlapping_writes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).create as *const _ as usize },
        1232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_api>())).destroy as *const _ as usize },
        1240usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_api),
            "::",
            stringify!(destroy)
        )
    );
}
pub const TM_TT_PROP__ASSET_ROOT__ASSETS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASSET_ROOT__DIRECTORIES: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_3 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASSET__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASSET__DIRECTORY: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASSET__UUID_TAGS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ASSET__OBJECT: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_4 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASSET_DIRECTORY__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASSET_DIRECTORY__PARENT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_5 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASSET_TAG__UUID: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASSET_TAG__NAME: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_6 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_tag_t {
    pub uuid: u64,
    pub name: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_asset_tag_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_tag_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_asset_tag_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_tag_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_tag_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_tag_t>())).uuid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_tag_t),
            "::",
            stringify!(uuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_tag_t>())).name as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_tag_t),
            "::",
            stringify!(name)
        )
    );
}
pub type tm_tt_assets_file_extension_aspect_i = ::std::os::raw::c_char;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_assets_buffer_write_t {
    pub id: u32,
    pub _padding_74: [::std::os::raw::c_char; 4usize],
    pub hash: u64,
    pub ext: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_tt_assets_buffer_write_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_assets_buffer_write_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_tt_assets_buffer_write_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_assets_buffer_write_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_assets_buffer_write_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_assets_buffer_write_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_write_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_assets_buffer_write_t>()))._padding_74 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_write_t),
            "::",
            stringify!(_padding_74)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_assets_buffer_write_t>())).hash as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_write_t),
            "::",
            stringify!(hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_assets_buffer_write_t>())).ext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_write_t),
            "::",
            stringify!(ext)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tt_assets_buffer_t {
    pub object_id: tm_tt_id_t,
    pub property_index: u32,
    pub _padding_91: [::std::os::raw::c_char; 4usize],
    pub hash: u64,
}
#[test]
fn bindgen_test_layout_tm_tt_assets_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_assets_buffer_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_tt_assets_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_assets_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tt_assets_buffer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_assets_buffer_t>())).object_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_t),
            "::",
            stringify!(object_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_assets_buffer_t>())).property_index as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_t),
            "::",
            stringify!(property_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_assets_buffer_t>()))._padding_91 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_t),
            "::",
            stringify!(_padding_91)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tt_assets_buffer_t>())).hash as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_assets_buffer_t),
            "::",
            stringify!(hash)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_saved_truth_data_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_assets_api {
    pub create_asset_truth_types:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub get_asset_path: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
            path: *mut ::std::os::raw::c_char,
            n: u32,
        ) -> u32,
    >,
    pub get_directory_path: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            directory: tm_tt_id_t,
            path: *mut ::std::os::raw::c_char,
            n: u32,
        ) -> u32,
    >,
    pub get_asset_path_with_extension: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
            path: *mut ::std::os::raw::c_char,
            n: u32,
        ) -> u32,
    >,
    pub asset_from_path: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            root: tm_tt_id_t,
            path: *const ::std::os::raw::c_char,
        ) -> tm_tt_id_t,
    >,
    pub asset_from_path_with_type: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            root: tm_tt_id_t,
            path: *const ::std::os::raw::c_char,
            type_: u64,
        ) -> tm_tt_id_t,
    >,
    pub directory_from_path: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            root: tm_tt_id_t,
            path: *const ::std::os::raw::c_char,
        ) -> tm_tt_id_t,
    >,
    pub find_subdirectory_by_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            root: tm_tt_id_t,
            parent_dir: tm_tt_id_t,
            subdir_name: *const ::std::os::raw::c_char,
        ) -> tm_tt_id_t,
    >,
    pub unique_asset_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            root: tm_tt_id_t,
            asset_r: *const tm_the_truth_object_o,
            desired_name: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub unique_directory_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            root: tm_tt_id_t,
            directory_r: *const tm_the_truth_object_o,
            desired_name: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub object_asset_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub object_to_config: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            config: *mut tm_config_i,
            buffers: *mut *mut tm_tt_assets_buffer_write_t,
            buffers_ta: *mut tm_temp_allocator_i,
            save_uuid: bool,
        ),
    >,
    pub create_object_from_config: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            config: *mut tm_config_i,
            buffers: *mut *mut tm_tt_assets_buffer_t,
            buffers_ta: *mut tm_temp_allocator_i,
        ) -> tm_tt_id_t,
    >,
    pub read_object_from_config: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            config: *mut tm_config_i,
            buffers: *mut *mut tm_tt_assets_buffer_t,
            buffers_ta: *mut tm_temp_allocator_i,
            id: tm_tt_id_t,
        ),
    >,
    pub save_to_directory: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            asset_root: tm_tt_id_t,
            dir: *const ::std::os::raw::c_char,
            ignore: *mut tm_tt_id_t,
            num_ignore: u32,
            old_std: *mut tm_saved_truth_data_o,
            allocator: *mut tm_allocator_i,
        ) -> *mut tm_saved_truth_data_o,
    >,
    pub load_from_directory: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            dir: *const ::std::os::raw::c_char,
            allocator: *mut tm_allocator_i,
            asset_root: *mut tm_tt_id_t,
        ) -> *mut tm_saved_truth_data_o,
    >,
    pub current_truth_data: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            asset_root: tm_tt_id_t,
            allocator: *mut tm_allocator_i,
        ) -> *mut tm_saved_truth_data_o,
    >,
    pub revert_asset: ::std::option::Option<
        unsafe extern "C" fn(
            sd: *mut tm_saved_truth_data_o,
            asset: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> bool,
    >,
    pub save_asset: ::std::option::Option<
        unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o, asset: tm_tt_id_t) -> bool,
    >,
    pub saved_name: ::std::option::Option<
        unsafe extern "C" fn(
            sd: *mut tm_saved_truth_data_o,
            item: tm_tt_id_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub saved_directory: ::std::option::Option<
        unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o, item: tm_tt_id_t) -> tm_tt_id_t,
    >,
    pub saved_version: ::std::option::Option<
        unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o, item: tm_tt_id_t) -> u64,
    >,
    pub all_saved_items: ::std::option::Option<
        unsafe extern "C" fn(
            sd: *mut tm_saved_truth_data_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_tt_id_t,
    >,
    pub free_saved_data:
        ::std::option::Option<unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o)>,
    pub set_mock_file_system: ::std::option::Option<
        unsafe extern "C" fn(fs: *mut tm_os_file_system_api, file_io: *mut tm_os_file_io_api),
    >,
}
#[test]
fn bindgen_test_layout_tm_the_truth_assets_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_assets_api>(),
        200usize,
        concat!("Size of: ", stringify!(tm_the_truth_assets_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_assets_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_assets_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).create_asset_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(create_asset_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).get_asset_path as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(get_asset_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).get_directory_path as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(get_directory_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).get_asset_path_with_extension
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(get_asset_path_with_extension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).asset_from_path as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(asset_from_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).asset_from_path_with_type
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(asset_from_path_with_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).directory_from_path as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(directory_from_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).find_subdirectory_by_name
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(find_subdirectory_by_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).unique_asset_name as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(unique_asset_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).unique_directory_name as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(unique_directory_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).object_asset_name as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(object_asset_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).object_to_config as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(object_to_config)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).create_object_from_config
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(create_object_from_config)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).read_object_from_config as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(read_object_from_config)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).save_to_directory as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(save_to_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).load_from_directory as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(load_from_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).current_truth_data as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(current_truth_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).revert_asset as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(revert_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).save_asset as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(save_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).saved_name as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(saved_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).saved_directory as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(saved_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).saved_version as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(saved_version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).all_saved_items as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(all_saved_items)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).free_saved_data as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(free_saved_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_assets_api>())).set_mock_file_system as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_assets_api),
            "::",
            stringify!(set_mock_file_system)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_migration_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_migration_i {
    pub inst: *mut tm_the_truth_migration_o,
    pub id: u64,
    pub num_prerequisites: u32,
    pub _padding_81: [::std::os::raw::c_char; 4usize],
    pub prerequisites: *mut u64,
    pub migrate: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_the_truth_migration_o, tt: *mut tm_the_truth_o) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_the_truth_migration_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_migration_i>(),
        40usize,
        concat!("Size of: ", stringify!(tm_the_truth_migration_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_migration_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_migration_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_migration_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_migration_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_truth_migration_i>())).id as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_migration_i),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_migration_i>())).num_prerequisites as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_migration_i),
            "::",
            stringify!(num_prerequisites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_migration_i>()))._padding_81 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_migration_i),
            "::",
            stringify!(_padding_81)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_migration_i>())).prerequisites as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_migration_i),
            "::",
            stringify!(prerequisites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_migration_i>())).migrate as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_migration_i),
            "::",
            stringify!(migrate)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_migration_api {
    pub migrate: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
}
#[test]
fn bindgen_test_layout_tm_the_truth_migration_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_migration_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_the_truth_migration_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_migration_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_migration_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_migration_api>())).migrate as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_migration_api),
            "::",
            stringify!(migrate)
        )
    );
}
pub const TM_TT_PROP__VEC2__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__VEC2__Y: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_7 = ::std::os::raw::c_int;
pub const TM_TT_PROP__VEC3__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__VEC3__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__VEC3__Z: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_8 = ::std::os::raw::c_int;
pub const TM_TT_PROP__VEC4__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__VEC4__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__VEC4__Z: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__VEC4__W: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_9 = ::std::os::raw::c_int;
pub const TM_TT_PROP__POSITION__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__POSITION__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__POSITION__Z: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_10 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ROTATION__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ROTATION__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ROTATION__Z: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ROTATION__W: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_11 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SCALE__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SCALE__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SCALE__Z: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_12 = ::std::os::raw::c_int;
pub const TM_TT_PROP__COLOR_RGB__R: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__COLOR_RGB__G: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__COLOR_RGB__B: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_13 = ::std::os::raw::c_int;
pub const TM_TT_PROP__COLOR_RGBA__R: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__COLOR_RGBA__G: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__COLOR_RGBA__B: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__COLOR_RGBA__A: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_14 = ::std::os::raw::c_int;
pub const TM_TT_PROP__RECT__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__RECT__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__RECT__W: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__RECT__H: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_15 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_truth_common_types_api {
    pub create_common_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub read_floats: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            obj: *const tm_the_truth_object_o,
            res: *mut f32,
            n: u32,
        ) -> *mut f32,
    >,
    pub write_floats: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            values: *const f32,
            n: u32,
        ),
    >,
    pub get_vec2: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec2_t,
    >,
    pub get_vec3: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec3_t,
    >,
    pub get_vec4: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec4_t,
    >,
    pub get_rect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_rect_t,
    >,
    pub get_position: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec3_t,
    >,
    pub get_rotation: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec4_t,
    >,
    pub get_scale: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec3_t,
    >,
    pub get_color_rgb: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec3_t,
    >,
    pub get_color_rgba: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_vec4_t,
    >,
    pub get_color_srgb: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_color_srgb_t,
    >,
    pub get_color_srgba: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            parent_r: *const tm_the_truth_object_o,
            property: u32,
        ) -> tm_color_srgb_t,
    >,
    pub set_vec2: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec2: tm_vec2_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_vec3: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec3: tm_vec3_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_vec4: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec4: tm_vec4_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_rect: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            rect: tm_rect_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_position: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec3: tm_vec3_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_rotation: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec4: tm_vec4_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_scale: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec3: tm_vec3_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_color_rgb: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec3: tm_vec3_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_color_rgba: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            vec4: tm_vec4_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_color_srgb: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            col: tm_color_srgb_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub set_color_srgba: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_w: *mut tm_the_truth_object_o,
            property: u32,
            col: tm_color_srgb_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_the_truth_common_types_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_truth_common_types_api>(),
        200usize,
        concat!("Size of: ", stringify!(tm_the_truth_common_types_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_truth_common_types_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_truth_common_types_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).create_common_types
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(create_common_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).read_floats as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(read_floats)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).write_floats as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(write_floats)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_vec2 as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_vec2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_vec3 as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_vec3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_vec4 as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_vec4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_rect as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_position as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_rotation as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_scale as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_color_rgb as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_color_rgb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_color_rgba as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_color_rgba)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_color_srgb as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_color_srgb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).get_color_srgba as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(get_color_srgba)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_vec2 as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_vec2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_vec3 as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_vec3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_vec4 as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_vec4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_rect as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_position as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_rotation as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_scale as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_color_rgb as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_color_rgb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_color_rgba as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_color_rgba)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_color_srgb as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_color_srgb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_truth_common_types_api>())).set_color_srgba as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_truth_common_types_api),
            "::",
            stringify!(set_color_srgba)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_undo_stack_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_undo_stack_i {
    pub inst: *mut tm_undo_stack_o,
    pub add: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_undo_stack_o,
            tt: *mut tm_the_truth_o,
            scope: tm_tt_undo_scope_t,
        ),
    >,
    pub add_to_document: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_undo_stack_o,
            tt: *mut tm_the_truth_o,
            scope: tm_tt_undo_scope_t,
            document_object: tm_tt_id_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_undo_stack_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_undo_stack_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_undo_stack_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_undo_stack_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_undo_stack_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_undo_stack_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_undo_stack_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_undo_stack_i>())).add as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_undo_stack_i),
            "::",
            stringify!(add)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_undo_stack_i>())).add_to_document as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_undo_stack_i),
            "::",
            stringify!(add_to_document)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_unicode_api {
    pub utf8_encode:
        ::std::option::Option<unsafe extern "C" fn(utf8: *mut u8, codepoint: u32) -> *mut u8>,
    pub utf8_decode: ::std::option::Option<unsafe extern "C" fn(utf8: *mut *const u8) -> u32>,
    pub utf8_num_codepoints: ::std::option::Option<unsafe extern "C" fn(utf8: *const u8) -> u32>,
    pub utf8_decode_n: ::std::option::Option<
        unsafe extern "C" fn(codepoints: *mut u32, n: u32, utf8: *mut *const u8) -> u32,
    >,
    pub utf8_to_utf32: ::std::option::Option<
        unsafe extern "C" fn(utf8: *const u8, ta: *mut tm_temp_allocator_i) -> *mut u32,
    >,
    pub utf8_to_utf32_n: ::std::option::Option<
        unsafe extern "C" fn(utf8: *const u8, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u32,
    >,
    pub utf32_to_utf8: ::std::option::Option<
        unsafe extern "C" fn(utf32: *const u32, ta: *mut tm_temp_allocator_i) -> *mut u8,
    >,
    pub utf32_to_utf8_n: ::std::option::Option<
        unsafe extern "C" fn(utf32: *const u32, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u8,
    >,
    pub utf16_encode:
        ::std::option::Option<unsafe extern "C" fn(utf16: *mut u16, codepoint: u32) -> *mut u16>,
    pub utf16_decode: ::std::option::Option<unsafe extern "C" fn(utf16: *mut *const u16) -> u32>,
    pub utf8_to_utf16: ::std::option::Option<
        unsafe extern "C" fn(utf8: *const u8, ta: *mut tm_temp_allocator_i) -> *mut u16,
    >,
    pub utf8_to_utf16_n: ::std::option::Option<
        unsafe extern "C" fn(utf8: *const u8, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u16,
    >,
    pub utf16_to_utf8: ::std::option::Option<
        unsafe extern "C" fn(utf16: *const u16, ta: *mut tm_temp_allocator_i) -> *mut u8,
    >,
    pub utf16_to_utf8_n: ::std::option::Option<
        unsafe extern "C" fn(utf16: *const u16, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u8,
    >,
}
#[test]
fn bindgen_test_layout_tm_unicode_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_unicode_api>(),
        112usize,
        concat!("Size of: ", stringify!(tm_unicode_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_unicode_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_unicode_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf8_encode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_encode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf8_decode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_decode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_unicode_api>())).utf8_num_codepoints as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_num_codepoints)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf8_decode_n as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_decode_n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf8_to_utf32 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_to_utf32)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf8_to_utf32_n as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_to_utf32_n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf32_to_utf8 as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf32_to_utf8)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf32_to_utf8_n as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf32_to_utf8_n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf16_encode as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf16_encode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf16_decode as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf16_decode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf8_to_utf16 as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_to_utf16)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf8_to_utf16_n as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf8_to_utf16_n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf16_to_utf8 as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf16_to_utf8)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unicode_api>())).utf16_to_utf8_n as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unicode_api),
            "::",
            stringify!(utf16_to_utf8_n)
        )
    );
}
pub const TM_UNICODE__DOTTED_CROSS: ::std::os::raw::c_int = 8284;
pub const TM_UNICODE__RIGHTWARDS_ARROW: ::std::os::raw::c_int = 8594;
pub const TM_UNICODE__EMPTY_SET: ::std::os::raw::c_int = 8709;
pub const TM_UNICODE__BLACK_DOWN_POINTING_TRIANGLE: ::std::os::raw::c_int = 9660;
pub const TM_UNICODE__BLACK_UP_POINTING_TRIANGLE: ::std::os::raw::c_int = 9650;
pub const TM_UNICODE__BLACK_RIGHT_POINTING_TRIANGLE: ::std::os::raw::c_int = 9654;
pub const TM_UNICODE__BLACK_LEFT_POINTING_TRIANGLE: ::std::os::raw::c_int = 9664;
pub const TM_UNICODE__DIE_FACE_1: ::std::os::raw::c_int = 9856;
pub const TM_UNICODE__NEUTER: ::std::os::raw::c_int = 9906;
pub const TM_UNICODE__CHECK_MARK: ::std::os::raw::c_int = 10003;
pub const TM_UNICODE__MULTIPLICATION_X: ::std::os::raw::c_int = 10005;
pub const TM_UNICODE__HEAVY_MULTIPLICATION_X: ::std::os::raw::c_int = 10006;
pub const TM_UNICODE__EARTH: ::std::os::raw::c_int = 127759;
pub const TM_UNICODE__HOUSE: ::std::os::raw::c_int = 127968;
pub const TM_UNICODE__ORIGINAL_OF: ::std::os::raw::c_int = 8886;
pub const TM_UNICODE__IMAGE_OF: ::std::os::raw::c_int = 8887;
pub const TM_UNICODE__CIRCLE_DOT_OPERATOR: ::std::os::raw::c_int = 8857;
pub const TM_UNICODE__MAXIMIZE: ::std::os::raw::c_int = 128470;
pub const TM_UNICODE__OVERLAP: ::std::os::raw::c_int = 128471;
pub const TM_UNICODE__PLUS_MINUS: ::std::os::raw::c_int = 49841;
pub const TM_UNICODE__CAMERA: ::std::os::raw::c_int = 128247;
pub const TM_UNICODE__ELECTRIC_LIGHT_BLUB: ::std::os::raw::c_int = 128161;
pub const TM_UNICODE__HORIZONTAL_ELLIPSIS: ::std::os::raw::c_int = 8230;
pub const TM_UNICODE__HEAVY_PLUS_SIGN: ::std::os::raw::c_int = 10133;
pub const TM_UNICODE__RIGHTWARDS_ARROW_TO_BAR: ::std::os::raw::c_int = 8677;
pub const TM_UNICODE__RIGHT_ANGLE_WITH_ARC: ::std::os::raw::c_int = 8894;
pub const TM_UNICODE__REFRESH: ::std::os::raw::c_int = 128472;
pub const TM_UNICODE__WRENCH_HAMMER: ::std::os::raw::c_int = 128736;
pub const TM_UNICODE__WRENCH: ::std::os::raw::c_int = 128295;
pub const TM_UNICODE__ZZZ: ::std::os::raw::c_int = 128164;
pub const TM_UNICODE__MAGNIFYING_GLASS_LEFT: ::std::os::raw::c_int = 128269;
pub const TM_UNICODE__EYE: ::std::os::raw::c_int = 128065;
pub const TM_UNICODE__GEAR: ::std::os::raw::c_int = 9881;
pub const TM_UNICODE__COPYRIGHT: ::std::os::raw::c_int = 169;
pub const TM_UNICODE__LEFTWARDS_HEAVY_ARROW: ::std::os::raw::c_int = 129092;
pub const TM_UNICODE__RIGHTWARDS_HEAVY_ARROW: ::std::os::raw::c_int = 129094;
pub type _bindgen_ty_16 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_unit_test_runner_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_unit_test_runner_i {
    pub inst: *mut tm_unit_test_runner_o,
    pub test_file: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_unit_test_runner_o,
            name: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub test_custom: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_unit_test_runner_o,
            name: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub test_disk:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_unit_test_runner_o) -> bool>,
    pub test_network:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_unit_test_runner_o) -> bool>,
    pub test_slow_paths:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_unit_test_runner_o) -> bool>,
    pub record: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_unit_test_runner_o,
            pass: bool,
            test_str: *const ::std::os::raw::c_char,
            file: *const ::std::os::raw::c_char,
            line: u32,
        ) -> bool,
    >,
    pub expect_error: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_unit_test_runner_o,
            err: *const ::std::os::raw::c_char,
            file: *const ::std::os::raw::c_char,
            line: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_unit_test_runner_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_unit_test_runner_i>(),
        64usize,
        concat!("Size of: ", stringify!(tm_unit_test_runner_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_unit_test_runner_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_unit_test_runner_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unit_test_runner_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unit_test_runner_i>())).test_file as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(test_file)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_unit_test_runner_i>())).test_custom as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(test_custom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unit_test_runner_i>())).test_disk as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(test_disk)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_unit_test_runner_i>())).test_network as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(test_network)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_unit_test_runner_i>())).test_slow_paths as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(test_slow_paths)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unit_test_runner_i>())).record as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(record)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_unit_test_runner_i>())).expect_error as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_runner_i),
            "::",
            stringify!(expect_error)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_unit_test_i {
    pub name: *const ::std::os::raw::c_char,
    pub test: ::std::option::Option<
        unsafe extern "C" fn(tr: *mut tm_unit_test_runner_i, a: *mut tm_allocator_i),
    >,
}
#[test]
fn bindgen_test_layout_tm_unit_test_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_unit_test_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_unit_test_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_unit_test_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_unit_test_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unit_test_i>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_i),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_unit_test_i>())).test as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_unit_test_i),
            "::",
            stringify!(test)
        )
    );
}
pub const tm_visibility_flag_behaviour_TM_VISIBILITY_FLAG_OPT_IN: tm_visibility_flag_behaviour = 0;
pub const tm_visibility_flag_behaviour_TM_VISIBILITY_FLAG_OPT_OUT: tm_visibility_flag_behaviour = 1;
pub type tm_visibility_flag_behaviour = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_visibility_flag_desc_t {
    pub name: u64,
    pub description: *const ::std::os::raw::c_char,
    pub tooltip: *const ::std::os::raw::c_char,
    pub uuid: u32,
    pub behaviour: tm_visibility_flag_behaviour,
}
#[test]
fn bindgen_test_layout_tm_visibility_flag_desc_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_visibility_flag_desc_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_visibility_flag_desc_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_visibility_flag_desc_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_visibility_flag_desc_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_visibility_flag_desc_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flag_desc_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flag_desc_t>())).description as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flag_desc_t),
            "::",
            stringify!(description)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flag_desc_t>())).tooltip as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flag_desc_t),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_visibility_flag_desc_t>())).uuid as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flag_desc_t),
            "::",
            stringify!(uuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flag_desc_t>())).behaviour as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flag_desc_t),
            "::",
            stringify!(behaviour)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_visibility_context_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_visibility_flags_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub create_context: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            name: u64,
        ) -> *mut tm_visibility_context_o,
    >,
    pub context_name:
        ::std::option::Option<unsafe extern "C" fn(context: *mut tm_visibility_context_o) -> u64>,
    pub destroy_context:
        ::std::option::Option<unsafe extern "C" fn(context: *mut tm_visibility_context_o)>,
    pub register_visibility_flag: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_visibility_context_o,
            desc: *const tm_visibility_flag_desc_t,
        ) -> u64,
    >,
    pub name_from_visibility_flag: ::std::option::Option<
        unsafe extern "C" fn(context: *mut tm_visibility_context_o, visibility_flag: u64) -> u64,
    >,
    pub visibility_flag_from_name: ::std::option::Option<
        unsafe extern "C" fn(context: *mut tm_visibility_context_o, name: u64) -> u64,
    >,
    pub unregister_visibility_flag: ::std::option::Option<
        unsafe extern "C" fn(context: *mut tm_visibility_context_o, uuid: u32),
    >,
    pub enumerate_flags: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_visibility_context_o,
            flags: *mut tm_visibility_flag_desc_t,
            num_flags: *mut u32,
        ),
    >,
    pub build_visibility_mask: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_visibility_context_o,
            uuids: *const u32,
            num_uuids: u32,
        ) -> u64,
    >,
}
#[test]
fn bindgen_test_layout_tm_visibility_flags_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_visibility_flags_api>(),
        80usize,
        concat!("Size of: ", stringify!(tm_visibility_flags_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_visibility_flags_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_visibility_flags_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).create_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).create_context as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(create_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).context_name as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(context_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).destroy_context as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(destroy_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).register_visibility_flag as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(register_visibility_flag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).name_from_visibility_flag
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(name_from_visibility_flag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).visibility_flag_from_name
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(visibility_flag_from_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).unregister_visibility_flag
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(unregister_visibility_flag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).enumerate_flags as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(enumerate_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visibility_flags_api>())).build_visibility_mask as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visibility_flags_api),
            "::",
            stringify!(build_visibility_mask)
        )
    );
}
pub const TM_TT_PROP__VISIBILITY_FLAG__UUID: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_17 = ::std::os::raw::c_int;
pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_CONTINUATION: tm_web_socket_opcode = 0;
pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_TEXT: tm_web_socket_opcode = 1;
pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_BINARY: tm_web_socket_opcode = 2;
pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_CLOSE: tm_web_socket_opcode = 8;
pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_PING: tm_web_socket_opcode = 9;
pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_PONG: tm_web_socket_opcode = 10;
pub type tm_web_socket_opcode = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_web_socket_protocol_api {
    pub make_client_handshake: ::std::option::Option<
        unsafe extern "C" fn(
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
            host: *const ::std::os::raw::c_char,
            port: u32,
            request: *const ::std::os::raw::c_char,
            key: *const ::std::os::raw::c_char,
        ),
    >,
    pub make_server_handshake: ::std::option::Option<
        unsafe extern "C" fn(
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
            key: *const ::std::os::raw::c_char,
            key_size: u32,
        ),
    >,
    pub make_frame_header: ::std::option::Option<
        unsafe extern "C" fn(buffer: *mut u8, fin: bool, opcode: u8, size: u64, mask: u32) -> u32,
    >,
    pub parse_frame_header: ::std::option::Option<
        unsafe extern "C" fn(
            buffer: *mut u8,
            buf_size: u64,
            fin: *mut bool,
            opcode: *mut u8,
            size: *mut u64,
            mask: *mut u32,
        ) -> u32,
    >,
    pub mask_data: ::std::option::Option<
        unsafe extern "C" fn(data: *mut u8, size: u64, offset: u64, mask: u32),
    >,
    pub mask_segmented_buffer: ::std::option::Option<
        unsafe extern "C" fn(seg: *mut tm_segmented_buffer_t, size: u64, mask: u32),
    >,
}
#[test]
fn bindgen_test_layout_tm_web_socket_protocol_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_web_socket_protocol_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_web_socket_protocol_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_web_socket_protocol_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_web_socket_protocol_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_protocol_api>())).make_client_handshake as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_protocol_api),
            "::",
            stringify!(make_client_handshake)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_protocol_api>())).make_server_handshake as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_protocol_api),
            "::",
            stringify!(make_server_handshake)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_protocol_api>())).make_frame_header as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_protocol_api),
            "::",
            stringify!(make_frame_header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_protocol_api>())).parse_frame_header as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_protocol_api),
            "::",
            stringify!(parse_frame_header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_protocol_api>())).mask_data as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_protocol_api),
            "::",
            stringify!(mask_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_protocol_api>())).mask_segmented_buffer as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_protocol_api),
            "::",
            stringify!(mask_segmented_buffer)
        )
    );
}
pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_IN_PROGRESS: tm_http_request_status = 0;
pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_SUCCESS: tm_http_request_status = 1;
pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_ERROR: tm_http_request_status = 2;
pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_CLOSED: tm_http_request_status = 3;
pub type tm_http_request_status = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_http_request_t {
    pub id: u64,
    pub request_target: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_http_request_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_http_request_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_http_request_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_http_request_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_http_request_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_http_request_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_http_request_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_http_request_t>())).request_target as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_http_request_t),
            "::",
            stringify!(request_target)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_segmented_buffer_t {
    pub data: *mut ::std::os::raw::c_void,
    pub size: u64,
    pub next: *mut tm_segmented_buffer_t,
}
#[test]
fn bindgen_test_layout_tm_segmented_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_segmented_buffer_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_segmented_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_segmented_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_segmented_buffer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_segmented_buffer_t>())).data as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_segmented_buffer_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_segmented_buffer_t>())).size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_segmented_buffer_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_segmented_buffer_t>())).next as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_segmented_buffer_t),
            "::",
            stringify!(next)
        )
    );
}
pub const tm_web_socket_pseudo_opcode_TM_WEB_SOCKET_PSEUDO_OPCODE_OPEN:
    tm_web_socket_pseudo_opcode = 16;
pub const tm_web_socket_pseudo_opcode_TM_WEB_SOCKET_PSEUDO_OPCODE_ERROR:
    tm_web_socket_pseudo_opcode = 17;
pub type tm_web_socket_pseudo_opcode = ::std::os::raw::c_int;
pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_CONNECTING: tm_web_socket_status = 0;
pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_OPEN: tm_web_socket_status = 1;
pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_CLOSING: tm_web_socket_status = 2;
pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_CLOSED: tm_web_socket_status = 3;
pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_ERROR: tm_web_socket_status = 4;
pub type tm_web_socket_status = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_web_socket_request_t {
    pub id: u64,
    pub request_target: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_web_socket_request_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_web_socket_request_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_web_socket_request_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_web_socket_request_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_web_socket_request_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_socket_request_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_request_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_request_t>())).request_target as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_request_t),
            "::",
            stringify!(request_target)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_web_socket_event_t {
    pub opcode: u32,
    pub _padding_103: [::std::os::raw::c_char; 4usize],
    pub payload_size: u64,
    pub payload: tm_segmented_buffer_t,
    pub payload_reference: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_web_socket_event_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_web_socket_event_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_web_socket_event_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_web_socket_event_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_web_socket_event_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_socket_event_t>())).opcode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_event_t),
            "::",
            stringify!(opcode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_event_t>()))._padding_103 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_event_t),
            "::",
            stringify!(_padding_103)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_event_t>())).payload_size as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_event_t),
            "::",
            stringify!(payload_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_socket_event_t>())).payload as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_event_t),
            "::",
            stringify!(payload)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_socket_event_t>())).payload_reference as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_socket_event_t),
            "::",
            stringify!(payload_reference)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_web_talker_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_web_talker_api {
    pub listening_address: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_web_talker_o, address: *mut tm_socket_address_t) -> bool,
    >,
    pub receive: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o)>,
    pub send: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o)>,
    pub http_get_requests: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            buffer: *mut tm_http_request_t,
            capacity: u32,
        ) -> u32,
    >,
    pub http_respond_raw: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            id: u64,
            response: *const ::std::os::raw::c_char,
        ),
    >,
    pub http_respond_html: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            id: u64,
            html: *const ::std::os::raw::c_char,
        ),
    >,
    pub http_request: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            address: tm_socket_address_t,
            headers: *const ::std::os::raw::c_char,
        ) -> u64,
    >,
    pub http_request_status: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64) -> tm_http_request_status,
    >,
    pub http_response: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            id: u64,
            size: *mut u64,
        ) -> tm_segmented_buffer_t,
    >,
    pub http_close:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64)>,
    pub ws_get_requests: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            buffer: *mut tm_web_socket_request_t,
            capacity: u32,
        ) -> u32,
    >,
    pub ws_connect: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            address: tm_socket_address_t,
            host: *const ::std::os::raw::c_char,
            request: *const ::std::os::raw::c_char,
        ) -> u64,
    >,
    pub ws_status: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64) -> tm_web_socket_status,
    >,
    pub ws_recv_progress: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            id: u64,
            bytes: *mut u64,
            total: *mut u64,
        ) -> bool,
    >,
    pub ws_get_events: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            id: u64,
            buffer: *mut tm_web_socket_event_t,
            capacity: u32,
        ) -> u32,
    >,
    pub ws_send_text_frame: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64, s: *const ::std::os::raw::c_char),
    >,
    pub ws_send_binary_frame: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64, data: *const u8, size: u64),
    >,
    pub ws_send_segmented_binary_frame: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_web_talker_o,
            id: u64,
            buf: *const tm_segmented_buffer_t,
            size: u64,
        ),
    >,
    pub ws_send_ping:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64)>,
    pub ws_close: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64)>,
    pub copy_segmented_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            buffer: *mut ::std::os::raw::c_void,
            segments: *const tm_segmented_buffer_t,
            size: u64,
        ),
    >,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            socket: *mut tm_os_socket_api,
            port: u32,
        ) -> *mut tm_web_talker_o,
    >,
    pub create_no_server: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            socket: *mut tm_os_socket_api,
        ) -> *mut tm_web_talker_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut tm_web_talker_o)>,
}
#[test]
fn bindgen_test_layout_tm_web_talker_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_web_talker_api>(),
        192usize,
        concat!("Size of: ", stringify!(tm_web_talker_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_web_talker_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_web_talker_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).listening_address as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(listening_address)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).receive as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(receive)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).send as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(send)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).http_get_requests as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(http_get_requests)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).http_respond_raw as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(http_respond_raw)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).http_respond_html as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(http_respond_html)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).http_request as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(http_request)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).http_request_status as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(http_request_status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).http_response as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(http_response)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).http_close as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(http_close)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).ws_get_requests as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_get_requests)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).ws_connect as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_connect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).ws_status as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).ws_recv_progress as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_recv_progress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).ws_get_events as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_get_events)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).ws_send_text_frame as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_send_text_frame)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).ws_send_binary_frame as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_send_binary_frame)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).ws_send_segmented_binary_frame as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_send_segmented_binary_frame)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).ws_send_ping as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_send_ping)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).ws_close as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(ws_close)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).copy_segmented_buffer as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(copy_segmented_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).create as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_web_talker_api>())).create_no_server as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(create_no_server)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_web_talker_api>())).destroy as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_web_talker_api),
            "::",
            stringify!(destroy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_analytics_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_analytics_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            parent: *mut tm_allocator_i,
            property_id: *const ::std::os::raw::c_char,
            client_id: *const ::std::os::raw::c_char,
        ) -> *mut tm_analytics_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o)>,
    pub update: ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o)>,
    pub pageview: ::std::option::Option<
        unsafe extern "C" fn(
            ana: *mut tm_analytics_o,
            hostname: *const ::std::os::raw::c_char,
            page: *const ::std::os::raw::c_char,
            title: *const ::std::os::raw::c_char,
        ),
    >,
    pub event: ::std::option::Option<
        unsafe extern "C" fn(
            ana: *mut tm_analytics_o,
            category: *const ::std::os::raw::c_char,
            action: *const ::std::os::raw::c_char,
            label: *const ::std::os::raw::c_char,
            value: f64,
        ),
    >,
    pub exception: ::std::option::Option<
        unsafe extern "C" fn(
            ana: *mut tm_analytics_o,
            description: *const ::std::os::raw::c_char,
            fatal: bool,
        ),
    >,
    pub timing: ::std::option::Option<
        unsafe extern "C" fn(
            ana: *mut tm_analytics_o,
            category: *const ::std::os::raw::c_char,
            variable: *const ::std::os::raw::c_char,
            time: f64,
            label: *mut ::std::os::raw::c_char,
        ),
    >,
    pub screenview: ::std::option::Option<
        unsafe extern "C" fn(
            ana: *mut tm_analytics_o,
            application_name: *const ::std::os::raw::c_char,
            application_version: *const ::std::os::raw::c_char,
            application_id: *const ::std::os::raw::c_char,
            screen_name: *const ::std::os::raw::c_char,
        ),
    >,
    pub vcustom:
        ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o, args: va_list)>,
    pub custom: ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o, ...)>,
    pub to_s: ::std::option::Option<
        unsafe extern "C" fn(
            value: f64,
            buffer: *mut ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_analytics_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_analytics_api>(),
        88usize,
        concat!("Size of: ", stringify!(tm_analytics_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_analytics_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_analytics_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).update as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).pageview as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(pageview)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).event as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(event)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).exception as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(exception)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).timing as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(timing)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).screenview as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(screenview)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).vcustom as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(vcustom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).custom as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(custom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_analytics_api>())).to_s as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_analytics_api),
            "::",
            stringify!(to_s)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_blender_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_blend_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_blend_playing_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_blender_playing_o {
    _unused: [u8; 0],
}
pub const TM_ANIMATION_BLENDER_MAX_LAYERS: ::std::os::raw::c_int = 16;
pub type _bindgen_ty_18 = ::std::os::raw::c_int;
pub const TM_ANIMATION_BLENDER_MAX_MIX: ::std::os::raw::c_int = 32;
pub type _bindgen_ty_19 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_pose_t {
    pub hash: u64,
    pub n: u32,
    pub _padding_30: [::std::os::raw::c_char; 4usize],
    pub bone_names: *mut u64,
    pub pos: *mut tm_vec3_t,
    pub rot: *mut tm_vec4_t,
    pub scl: *mut tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_animation_pose_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_pose_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_animation_pose_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_pose_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_animation_pose_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_pose_t>())).hash as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_pose_t),
            "::",
            stringify!(hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_pose_t>())).n as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_pose_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_pose_t>()))._padding_30 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_pose_t),
            "::",
            stringify!(_padding_30)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_pose_t>())).bone_names as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_pose_t),
            "::",
            stringify!(bone_names)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_pose_t>())).pos as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_pose_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_pose_t>())).rot as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_pose_t),
            "::",
            stringify!(rot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_pose_t>())).scl as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_pose_t),
            "::",
            stringify!(scl)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_bone_weights_t {
    pub default_weight: f32,
    pub _padding_52: [::std::os::raw::c_char; 4usize],
    pub hash: u64,
    pub n: u32,
    pub _padding_60: [::std::os::raw::c_char; 4usize],
    pub bone_names: *mut u64,
    pub weights: *mut f32,
}
#[test]
fn bindgen_test_layout_tm_bone_weights_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_bone_weights_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_bone_weights_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_bone_weights_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_bone_weights_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bone_weights_t>())).default_weight as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_weights_t),
            "::",
            stringify!(default_weight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_weights_t>()))._padding_52 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_weights_t),
            "::",
            stringify!(_padding_52)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_weights_t>())).hash as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_weights_t),
            "::",
            stringify!(hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_weights_t>())).n as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_weights_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_weights_t>()))._padding_60 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_weights_t),
            "::",
            stringify!(_padding_60)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_weights_t>())).bone_names as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_weights_t),
            "::",
            stringify!(bone_names)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_weights_t>())).weights as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_weights_t),
            "::",
            stringify!(weights)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_blender_api {
    pub blend: ::std::option::Option<
        unsafe extern "C" fn(
            p1: *mut tm_animation_pose_t,
            p1_weight: f32,
            p2: *const tm_animation_pose_t,
            p2_weight: f32,
        ),
    >,
    pub offset_blend: ::std::option::Option<
        unsafe extern "C" fn(
            p1: *mut tm_animation_pose_t,
            p2: *const tm_animation_pose_t,
            p2_weight: f32,
            bone_weights: *const tm_bone_weights_t,
        ),
    >,
    pub mix: ::std::option::Option<
        unsafe extern "C" fn(
            p: *mut tm_animation_pose_t,
            poses: *mut *const tm_animation_pose_t,
            weights: *const f32,
            n: u32,
        ),
    >,
    pub create_blender: ::std::option::Option<
        unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_animation_blender_o,
    >,
    pub destroy_blender:
        ::std::option::Option<unsafe extern "C" fn(blender: *mut tm_animation_blender_o)>,
    pub create_blend: ::std::option::Option<
        unsafe extern "C" fn(
            blender: *mut tm_animation_blender_o,
            num_layers: u32,
        ) -> *mut tm_animation_blend_o,
    >,
    pub destroy_blend:
        ::std::option::Option<unsafe extern "C" fn(blend: *mut tm_animation_blend_o)>,
    pub tick: ::std::option::Option<
        unsafe extern "C" fn(
            blender: *mut tm_animation_blender_o,
            dt: f32,
        ) -> *mut tm_atomic_counter_o,
    >,
    pub play_animation: ::std::option::Option<
        unsafe extern "C" fn(
            blend: *mut tm_animation_blend_o,
            layer: u32,
            animation: *mut tm_animation_player_playing_o,
            crossfade_time: f32,
        ) -> *mut tm_animation_blender_playing_o,
    >,
    pub play_empty: ::std::option::Option<
        unsafe extern "C" fn(blend: *mut tm_animation_blend_o, layer: u32, crossfade_time: f32),
    >,
    pub play_pose: ::std::option::Option<
        unsafe extern "C" fn(
            blend: *mut tm_animation_blend_o,
            layer: u32,
            pose: *const tm_animation_pose_t,
            crossfade_time: f32,
        ) -> *mut tm_animation_blender_playing_o,
    >,
    pub update_pose: ::std::option::Option<
        unsafe extern "C" fn(
            playing: *mut tm_animation_blender_playing_o,
            pose: *const tm_animation_pose_t,
        ),
    >,
    pub play_mix: ::std::option::Option<
        unsafe extern "C" fn(
            blend: *mut tm_animation_blend_o,
            layer: u32,
            animations: *mut *mut tm_animation_player_playing_o,
            weights: *const f32,
            n: u32,
            crossfade_time: f32,
        ) -> *mut tm_animation_blender_playing_o,
    >,
    pub update_mix_weights: ::std::option::Option<
        unsafe extern "C" fn(playing: *mut tm_animation_blender_playing_o, weights: *const f32),
    >,
    pub set_bone_weights: ::std::option::Option<
        unsafe extern "C" fn(
            playing: *mut tm_animation_blender_playing_o,
            bone_weights: *const tm_bone_weights_t,
        ),
    >,
    pub blend_step:
        ::std::option::Option<unsafe extern "C" fn(blend: *mut tm_animation_blend_o, dt: f32)>,
    pub blend_compute_pose: ::std::option::Option<
        unsafe extern "C" fn(b: *mut tm_animation_blend_o) -> *mut tm_animation_pose_t,
    >,
    pub blend_pose: ::std::option::Option<
        unsafe extern "C" fn(b: *mut tm_animation_blend_o) -> *mut tm_animation_pose_t,
    >,
    pub locomotion_delta:
        ::std::option::Option<unsafe extern "C" fn(b: *mut tm_animation_blend_o) -> tm_transform_t>,
}
#[test]
fn bindgen_test_layout_tm_animation_blender_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_blender_api>(),
        152usize,
        concat!("Size of: ", stringify!(tm_animation_blender_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_blender_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_animation_blender_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_blender_api>())).blend as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(blend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).offset_blend as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(offset_blend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_blender_api>())).mix as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(mix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).create_blender as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(create_blender)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).destroy_blender as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(destroy_blender)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).create_blend as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(create_blend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).destroy_blend as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(destroy_blend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_blender_api>())).tick as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(tick)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).play_animation as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(play_animation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).play_empty as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(play_empty)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).play_pose as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(play_pose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).update_pose as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(update_pose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).play_mix as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(play_mix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).update_mix_weights as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(update_mix_weights)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).set_bone_weights as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(set_bone_weights)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).blend_step as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(blend_step)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).blend_compute_pose as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(blend_compute_pose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).blend_pose as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(blend_pose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_blender_api>())).locomotion_delta as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_blender_api),
            "::",
            stringify!(locomotion_delta)
        )
    );
}
pub const tm_tt_value__animation_clip__locomotion_TM_TT_VALUE__ANIMATION_CLIP__LOCOMOTION__TRANSLATION_XZ : tm_tt_value__animation_clip__locomotion = 0 ;
pub const tm_tt_value__animation_clip__locomotion_TM_TT_VALUE__ANIMATION_CLIP__LOCOMOTION__TRANSLATION_XYZ : tm_tt_value__animation_clip__locomotion = 1 ;
pub const tm_tt_value__animation_clip__locomotion_TM_TT_VALUE__ANIMATION_CLIP__LOCOMOTION__FULL_TRANSFORM : tm_tt_value__animation_clip__locomotion = 2 ;
pub type tm_tt_value__animation_clip__locomotion = ::std::os::raw::c_int;
pub const TM_TT_PROP__ANIMATION_CLIP__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ANIMATION_CLIP__ANIMATION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ANIMATION_CLIP__LOOP: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ANIMATION_CLIP__SPEED: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__ANIMATION_CLIP__CUSTOM_RANGE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__ANIMATION_CLIP__BEGIN: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__ANIMATION_CLIP__END: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__ANIMATION_CLIP__LOCOMOTION_NODE: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__ANIMATION_CLIP__LOCOMOTION: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_20 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_float_key_t {
    pub time: f32,
    pub v: f32,
}
#[test]
fn bindgen_test_layout_tm_animation_float_key_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_float_key_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_animation_float_key_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_float_key_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_animation_float_key_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_float_key_t>())).time as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_float_key_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_float_key_t>())).v as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_float_key_t),
            "::",
            stringify!(v)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_vec3_key_t {
    pub time: f32,
    pub v: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_animation_vec3_key_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_vec3_key_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_animation_vec3_key_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_vec3_key_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_animation_vec3_key_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_vec3_key_t>())).time as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_vec3_key_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_vec3_key_t>())).v as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_vec3_key_t),
            "::",
            stringify!(v)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_quat_key_t {
    pub time: f32,
    pub q: tm_vec4_t,
}
#[test]
fn bindgen_test_layout_tm_animation_quat_key_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_quat_key_t>(),
        20usize,
        concat!("Size of: ", stringify!(tm_animation_quat_key_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_quat_key_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_animation_quat_key_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_quat_key_t>())).time as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_quat_key_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_quat_key_t>())).q as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_quat_key_t),
            "::",
            stringify!(q)
        )
    );
}
pub const tm_animation_extrapolation_TM_ANIMATION_EXTRAPOLATION__CONSTANT:
    tm_animation_extrapolation = 0;
pub const tm_animation_extrapolation_TM_ANIMATION_EXTRAPOLATION__LINEAR:
    tm_animation_extrapolation = 1;
pub const tm_animation_extrapolation_TM_ANIMATION_EXTRAPOLATION__REPEAT:
    tm_animation_extrapolation = 2;
pub type tm_animation_extrapolation = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_raw_t {
    pub buffers: *const tm_buffers_i,
    pub buffer: u32,
    pub _padding_60: [::std::os::raw::c_char; 4usize],
    pub ticks_per_second: f64,
    pub duration: f64,
    pub num_bones: u32,
    pub _padding_70: [::std::os::raw::c_char; 4usize],
    pub bone_names: *mut u64,
    pub num_pos_keys: *mut u32,
    pub pos_keys: *mut *const tm_animation_vec3_key_t,
    pub num_rot_keys: *mut u32,
    pub rot_keys: *mut *const tm_animation_quat_key_t,
    pub num_scl_keys: *mut u32,
    pub scl_keys: *mut *const tm_animation_vec3_key_t,
    pub bone_pre_extrapolation: *mut u16,
    pub bone_post_extrapolation: *mut u16,
    pub num_curves: u32,
    pub _padding_91: [::std::os::raw::c_char; 4usize],
    pub curve_names: *mut u64,
    pub num_curve_keys: *mut u32,
    pub curve_keys: *mut *mut tm_animation_float_key_t,
    pub curve_pre_extrapolation: *mut u16,
    pub curve_post_extrapolation: *mut u16,
}
#[test]
fn bindgen_test_layout_tm_animation_raw_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_raw_t>(),
        160usize,
        concat!("Size of: ", stringify!(tm_animation_raw_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_raw_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_animation_raw_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).buffers as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(buffers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).buffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>()))._padding_60 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(_padding_60)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_raw_t>())).ticks_per_second as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(ticks_per_second)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).duration as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(duration)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).num_bones as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(num_bones)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>()))._padding_70 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(_padding_70)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).bone_names as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(bone_names)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).num_pos_keys as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(num_pos_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).pos_keys as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(pos_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).num_rot_keys as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(num_rot_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).rot_keys as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(rot_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).num_scl_keys as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(num_scl_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).scl_keys as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(scl_keys)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_raw_t>())).bone_pre_extrapolation as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(bone_pre_extrapolation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_raw_t>())).bone_post_extrapolation as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(bone_post_extrapolation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).num_curves as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(num_curves)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>()))._padding_91 as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(_padding_91)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).curve_names as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(curve_names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_raw_t>())).num_curve_keys as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(num_curve_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_raw_t>())).curve_keys as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(curve_keys)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_raw_t>())).curve_pre_extrapolation as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(curve_pre_extrapolation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_raw_t>())).curve_post_extrapolation as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_raw_t),
            "::",
            stringify!(curve_post_extrapolation)
        )
    );
}
pub const tm_animation_player_loop_TM_ANIMATION_PLAYER_LOOP__NONE: tm_animation_player_loop = 0;
pub const tm_animation_player_loop_TM_ANIMATION_PLAYER_LOOP__LOOP: tm_animation_player_loop = 1;
pub const tm_animation_player_loop_TM_ANIMATION_PLAYER_LOOP__PING_PONG: tm_animation_player_loop =
    2;
pub type tm_animation_player_loop = ::std::os::raw::c_int;
pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__NONE:
    tm_animation_player_locomotion = 0;
pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__TRANSLATION_XZ:
    tm_animation_player_locomotion = 1;
pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__TRANSLATION_XYZ:
    tm_animation_player_locomotion = 2;
pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__FULL_TRANSFORM:
    tm_animation_player_locomotion = 3;
pub type tm_animation_player_locomotion = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_player_playing_o {
    pub animation_player: *mut tm_animation_player_o,
    pub generation: u64,
    pub time: f64,
    pub eval_time: f64,
    pub length: f64,
    pub ticks_per_second: f32,
    pub speed: f32,
    pub base_speed: f32,
    pub loop_: tm_animation_player_loop,
    pub loop_range_begin: f64,
    pub loop_range_end: f64,
    pub loop_count: i32,
    pub num_bones: u32,
    pub bone_names: *mut u64,
    pub bone_pos: *mut tm_vec3_t,
    pub bone_rot: *mut tm_vec4_t,
    pub bone_scl: *mut tm_vec3_t,
    pub bone_hash: u64,
    pub num_curves: u32,
    pub _padding_179: [::std::os::raw::c_char; 4usize],
    pub curve_names: *mut u64,
    pub curve_values: *mut f32,
    pub curve_hash: u64,
    pub locomotion: u32,
    pub locomotion_bone: u32,
    pub locomotion_delta: tm_transform_t,
}
#[test]
fn bindgen_test_layout_tm_animation_player_playing_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_player_playing_o>(),
        200usize,
        concat!("Size of: ", stringify!(tm_animation_player_playing_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_player_playing_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_animation_player_playing_o))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).animation_player as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(animation_player)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).generation as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(generation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).time as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).eval_time as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(eval_time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).length as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).ticks_per_second as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(ticks_per_second)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).speed as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(speed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).base_speed as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(base_speed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).loop_ as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(loop_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).loop_range_begin as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(loop_range_begin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).loop_range_end as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(loop_range_end)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).loop_count as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(loop_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).num_bones as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(num_bones)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).bone_names as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(bone_names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).bone_pos as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(bone_pos)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).bone_rot as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(bone_rot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).bone_scl as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(bone_scl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).bone_hash as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(bone_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).num_curves as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(num_curves)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>()))._padding_179 as *const _
                as usize
        },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(_padding_179)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).curve_names as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(curve_names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).curve_values as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(curve_values)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).curve_hash as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(curve_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).locomotion as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(locomotion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).locomotion_bone as *const _
                as usize
        },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(locomotion_bone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_playing_o>())).locomotion_delta as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_playing_o),
            "::",
            stringify!(locomotion_delta)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_player_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_animation_player_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(player: *mut tm_animation_player_o)>,
    pub parse_raw: ::std::option::Option<
        unsafe extern "C" fn(
            ap: *mut tm_animation_player_o,
            tt: *const tm_the_truth_o,
            animation: tm_tt_id_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_animation_raw_t,
    >,
    pub play_raw: ::std::option::Option<
        unsafe extern "C" fn(
            ap: *mut tm_animation_player_o,
            raw: *const tm_animation_raw_t,
        ) -> *mut tm_animation_player_playing_o,
    >,
    pub play: ::std::option::Option<
        unsafe extern "C" fn(
            ap: *mut tm_animation_player_o,
            tt: *const tm_the_truth_o,
            animation: tm_tt_id_t,
        ) -> *mut tm_animation_player_playing_o,
    >,
    pub stop:
        ::std::option::Option<unsafe extern "C" fn(playing: *mut tm_animation_player_playing_o)>,
    pub set_time: ::std::option::Option<
        unsafe extern "C" fn(playing: *mut tm_animation_player_playing_o, t: f64),
    >,
    pub tick: ::std::option::Option<
        unsafe extern "C" fn(ap: *mut tm_animation_player_o, dt: f32) -> *mut tm_atomic_counter_o,
    >,
}
#[test]
fn bindgen_test_layout_tm_animation_player_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_player_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_animation_player_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_player_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_animation_player_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_player_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_player_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_api>())).parse_raw as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(parse_raw)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_api>())).play_raw as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(play_raw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_player_api>())).play as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(play)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_player_api>())).stop as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(stop)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_player_api>())).set_time as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(set_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_animation_player_api>())).tick as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_player_api),
            "::",
            stringify!(tick)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_scene_tree_component_t {
    _unused: [u8; 0],
}
pub const TM_TT_PROP__ANIMATION_SIMPLE_PLAYER__ANIMATION: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_21 = ::std::os::raw::c_int;
pub const tm_animation_simple_player__locomotion_TM_ANIMATION_SIMPLE_PLAYER__LOCOMOTION__DRIVE:
    tm_animation_simple_player__locomotion = 0;
pub const tm_animation_simple_player__locomotion_TM_ANIMATION_SIMPLE_PLAYER__LOCOMOTION__EXTERNAL : tm_animation_simple_player__locomotion = 1 ;
pub type tm_animation_simple_player__locomotion = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_animation_simple_player_component_t {
    pub animation: tm_tt_id_t,
    pub playing: *mut tm_animation_player_playing_o,
    pub locomotion: u32,
    pub locomotion_delta: tm_transform_t,
    pub _padding_44: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_animation_simple_player_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_simple_player_component_t>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(tm_animation_simple_player_component_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_simple_player_component_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_animation_simple_player_component_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_simple_player_component_t>())).animation as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_simple_player_component_t),
            "::",
            stringify!(animation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_simple_player_component_t>())).playing as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_simple_player_component_t),
            "::",
            stringify!(playing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_simple_player_component_t>())).locomotion
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_simple_player_component_t),
            "::",
            stringify!(locomotion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_simple_player_component_t>())).locomotion_delta
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_simple_player_component_t),
            "::",
            stringify!(locomotion_delta)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_simple_player_component_t>()))._padding_44
                as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_simple_player_component_t),
            "::",
            stringify!(_padding_44)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_simple_player_component_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_simple_player_component_api {
    pub update: ::std::option::Option<
        unsafe extern "C" fn(man: *mut tm_animation_simple_player_component_manager_o, dt: f32),
    >,
    pub play: ::std::option::Option<
        unsafe extern "C" fn(
            man: *mut tm_animation_simple_player_component_manager_o,
            c: *mut tm_animation_simple_player_component_t,
            animation: tm_tt_id_t,
            st: *mut tm_scene_tree_component_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_animation_simple_player_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_simple_player_component_api>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_animation_simple_player_component_api)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_simple_player_component_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_animation_simple_player_component_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_simple_player_component_api>())).update as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_simple_player_component_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_simple_player_component_api>())).play as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_simple_player_component_api),
            "::",
            stringify!(play)
        )
    );
}
pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__NAME:
    tm_asm_state_interface_properties = 0;
pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__SORT_ORDER:
    tm_asm_state_interface_properties = 1;
pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__POSITION_X:
    tm_asm_state_interface_properties = 2;
pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__POSITION_Y:
    tm_asm_state_interface_properties = 3;
pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__BLEND_SET:
    tm_asm_state_interface_properties = 4;
pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__SPEED:
    tm_asm_state_interface_properties = 5;
pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__FIRST_CUSTOM:
    tm_asm_state_interface_properties = 6;
pub type tm_asm_state_interface_properties = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_REGULAR_STATE__ANIMATION: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_22 = ::std::os::raw::c_int;
pub const TM_TT_VALUE__ASM_RANDOM_STATE__STRATEGY__DONT_REPEAT: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__ASM_RANDOM_STATE__STRATEGY__INDEPENDENT_PICK: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__ASM_RANDOM_STATE__STRATEGY__SHUFFLE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_23 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_RANDOM_STATE__STRATEGY: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__ASM_RANDOM_STATE__LOOP_CROSSFADE_TIME: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__ASM_RANDOM_STATE__ANIMATIONS: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_24 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_RANDOM_STATE_ANIMATION__ANIMATION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_RANDOM_STATE_ANIMATION__WEIGHT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_25 = ::std::os::raw::c_int;
pub const tm_tt_value__asm_blend_state__dimensions_TM_TT_VALUE__ASM_BLEND_STATE__DIMENSIONS__1D:
    tm_tt_value__asm_blend_state__dimensions = 0;
pub const tm_tt_value__asm_blend_state__dimensions_TM_TT_VALUE__ASM_BLEND_STATE__DIMENSIONS__2D:
    tm_tt_value__asm_blend_state__dimensions = 1;
pub type tm_tt_value__asm_blend_state__dimensions = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_BLEND_STATE__DIMENSIONS: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__ASM_BLEND_STATE__VARIABLE_X: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__ASM_BLEND_STATE__VARIABLE_Y: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__ASM_BLEND_STATE__ANIMATIONS: ::std::os::raw::c_int = 9;
pub type _bindgen_ty_26 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_BLEND_STATE_ANIMATION__ANIMATION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_BLEND_STATE_ANIMATION__X: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASM_BLEND_STATE_ANIMATION__Y: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_27 = ::std::os::raw::c_int;
pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__NAME:
    tm_asm_transition_interface_properties = 0;
pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__SORT_ORDER:
    tm_asm_transition_interface_properties = 1;
pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__FROM_STATE:
    tm_asm_transition_interface_properties = 2;
pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__TO_STATE:
    tm_asm_transition_interface_properties = 3;
pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__FIRST_CUSTOM:
    tm_asm_transition_interface_properties = 4;
pub type tm_asm_transition_interface_properties = ::std::os::raw::c_int;
pub const tm_tt_value__asm_regular_transition__on_TM_TT_VALUE__ASM_REGULAR_TRANSITION__ON__EVENT:
    tm_tt_value__asm_regular_transition__on = 0;
pub const tm_tt_value__asm_regular_transition__on_TM_TT_VALUE__ASM_REGULAR_TRANSITION__ON__ANIMATION_FINISHED : tm_tt_value__asm_regular_transition__on = 1 ;
pub const tm_tt_value__asm_regular_transition__on_TM_TT_VALUE__ASM_REGULAR_TRANSITION__ON__CONDITION : tm_tt_value__asm_regular_transition__on = 2 ;
pub type tm_tt_value__asm_regular_transition__on = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__ON: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__EVENT: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__CONDITION: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__CROSSFADE_TIME: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_28 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_LAYER__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_LAYER__SORT_ORDER: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASM_LAYER__DEFAULT_STATE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ASM_LAYER__STATES: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__ASM_LAYER__TRANSITIONS: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_29 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_EVENT__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_EVENT__SORT_ORDER: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_30 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_VARIABLE__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_VARIABLE__SORT_ORDER: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASM_VARIABLE__DEFAULT: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ASM_VARIABLE__MIN: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__ASM_VARIABLE__MAX: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__ASM_VARAIBLE__COMPUTED: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__ASM_VARIABLE__EXPRESSION: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_31 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_BLEND_SET_WEIGHT__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_BLEND_SET_WEIGHT__WEIGHT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_32 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_BLEND_SET__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_BLEND_SET__SORT_ORDER: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASM_BLEND_SET__DEFAULT_WEIGHT: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ASM_BLEND_SET__WEIGHTS: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_33 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_MOTION_MIXER__SLIDERS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_MOTION_MIXER__BUTTONS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASM_MOTION_MIXER__VARIABLE_KEYS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ASM_MOTION_MIXER__EVENT_KEYS: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_34 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_MOTION_MIXER_SLIDER__VARIABLE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_MOTION_MIXER_SLIDER__SORT_ORDER: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_35 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_MOTION_MIXER_BUTTON__EVENT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_MOTION_MIXER_BUTTON__SORT_ORDER: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_36 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__SORT_ORDER: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__KEY: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__VARIABLE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__LERP_TIME: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_37 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ASM_MOTION_MIXER_EVENT_KEY__SORT_ORDER: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASM_MOTION_MIXER_EVENT_KEY__KEY: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASM_MOTION_MIXER_EVENT_KEY__EVENT: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_38 = ::std::os::raw::c_int;
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__PREVIEW_ENTITY: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__LAYERS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__EVENTS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__VARIABLES: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__BLEND_SETS: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__MOTION_MIXER: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_39 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_state_machine_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_state_machine_o {
    _unused: [u8; 0],
}
pub const TM_STATE_MACHINE__MAX_LAYERS: ::std::os::raw::c_int = 16;
pub type _bindgen_ty_40 = ::std::os::raw::c_int;
pub const TM_STATE_MACHINE__MAX_VARIABLES: ::std::os::raw::c_int = 64;
pub type _bindgen_ty_41 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_animation_state_machine_state_t {
    pub num_layers: u32,
    pub _padding_239: [::std::os::raw::c_char; 4usize],
    pub layer_uuid: [tm_uuid_t; 16usize],
    pub state_uuid: [tm_uuid_t; 16usize],
    pub state_type_hash: [u64; 16usize],
    pub state_name_hash: [u64; 16usize],
    pub state_animation_time: [f64; 16usize],
    pub num_variables: u32,
    pub _padding_247: [::std::os::raw::c_char; 4usize],
    pub variable_names: [u64; 64usize],
    pub variable_values: [f32; 64usize],
}
#[test]
fn bindgen_test_layout_tm_animation_state_machine_state_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_state_machine_state_t>(),
        1680usize,
        concat!("Size of: ", stringify!(tm_animation_state_machine_state_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_state_machine_state_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_animation_state_machine_state_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).num_layers as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(num_layers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>()))._padding_239 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(_padding_239)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).layer_uuid as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(layer_uuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).state_uuid as *const _
                as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(state_uuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).state_type_hash
                as *const _ as usize
        },
        520usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(state_type_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).state_name_hash
                as *const _ as usize
        },
        648usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(state_name_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).state_animation_time
                as *const _ as usize
        },
        776usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(state_animation_time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).num_variables as *const _
                as usize
        },
        904usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(num_variables)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>()))._padding_247 as *const _
                as usize
        },
        908usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(_padding_247)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).variable_names
                as *const _ as usize
        },
        912usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(variable_names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_state_t>())).variable_values
                as *const _ as usize
        },
        1424usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_state_t),
            "::",
            stringify!(variable_values)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_state_machine_api {
    pub compile: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            sm_id: tm_tt_id_t,
            vm: *mut ::std::os::raw::c_char,
            allocator: *mut tm_allocator_i,
        ),
    >,
    pub create_manager: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
        ) -> *mut tm_animation_state_machine_manager_o,
    >,
    pub destroy_manager: ::std::option::Option<
        unsafe extern "C" fn(manager: *mut tm_animation_state_machine_manager_o),
    >,
    pub create_state_machine: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_animation_state_machine_manager_o,
            tt: *mut tm_the_truth_o,
            data: *mut ::std::os::raw::c_void,
        ) -> *mut tm_animation_state_machine_o,
    >,
    pub destroy_state_machine:
        ::std::option::Option<unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o)>,
    pub state: ::std::option::Option<
        unsafe extern "C" fn(
            sm: *const tm_animation_state_machine_o,
        ) -> tm_animation_state_machine_state_t,
    >,
    pub set_state: ::std::option::Option<
        unsafe extern "C" fn(
            sm: *mut tm_animation_state_machine_o,
            state: *const tm_animation_state_machine_state_t,
        ),
    >,
    pub event: ::std::option::Option<
        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o, name_hash: u64),
    >,
    pub tick_state_machine:
        ::std::option::Option<unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o, dt: f32)>,
    pub tick: ::std::option::Option<
        unsafe extern "C" fn(manager: *mut tm_animation_state_machine_manager_o, dt: f32),
    >,
    pub pose: ::std::option::Option<
        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o) -> *mut tm_animation_pose_t,
    >,
    pub locomotion_delta: ::std::option::Option<
        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o) -> tm_transform_t,
    >,
    pub get_variable: ::std::option::Option<
        unsafe extern "C" fn(sm: *const tm_animation_state_machine_o, name: u64) -> f32,
    >,
    pub set_variable: ::std::option::Option<
        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o, name: u64, value: f32),
    >,
    pub is_state_playing: ::std::option::Option<
        unsafe extern "C" fn(sm: *const tm_animation_state_machine_o, name_hash: u64) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_animation_state_machine_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_state_machine_api>(),
        120usize,
        concat!("Size of: ", stringify!(tm_animation_state_machine_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_state_machine_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_animation_state_machine_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).compile as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(compile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).create_manager as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(create_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).destroy_manager as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(destroy_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).create_state_machine
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(create_state_machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).destroy_state_machine
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(destroy_state_machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).state as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).set_state as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(set_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).event as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).tick_state_machine
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(tick_state_machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).tick as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(tick)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).pose as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(pose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).locomotion_delta as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(locomotion_delta)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).get_variable as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(get_variable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).set_variable as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(set_variable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_api>())).is_state_playing as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_api),
            "::",
            stringify!(is_state_playing)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_entity_t {
    pub __bindgen_anon_1: tm_entity_t__bindgen_ty_1,
    pub u64_: u64,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_t__bindgen_ty_1 {
    pub index: u32,
    pub generation: u32,
}
#[test]
fn bindgen_test_layout_tm_entity_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_t__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tm_entity_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_t__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_entity_t__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_t__bindgen_ty_1>())).index as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_t__bindgen_ty_1),
            "::",
            stringify!(index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_t__bindgen_ty_1>())).generation as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_t__bindgen_ty_1),
            "::",
            stringify!(generation)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_entity_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_entity_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_t>())).u64_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_t),
            "::",
            stringify!(u64_)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_set_entity_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_component_manager_o {
    _unused: [u8; 0],
}
pub const TM_TT_PROP__ANIMATION_STATE_MACHINE_COMPONENT__STATE_MACHINE: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_42 = ::std::os::raw::c_int;
pub const tm_animation_state_machine__locomotion_TM_ANIMATION_STATE_MACHINE__LOCOMOTION__DRIVE:
    tm_animation_state_machine__locomotion = 0;
pub const tm_animation_state_machine__locomotion_TM_ANIMATION_STATE_MACHINE__LOCOMOTION__EXTERNAL : tm_animation_state_machine__locomotion = 1 ;
pub type tm_animation_state_machine__locomotion = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_animation_state_machine_component_t {
    pub state_machine_id: tm_tt_id_t,
    pub state_machine: *mut tm_animation_state_machine_o,
    pub state_machine_data: *mut ::std::os::raw::c_char,
    pub locomotion: u32,
    pub locomotion_delta: tm_transform_t,
    pub _padding_36: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_animation_state_machine_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_state_machine_component_t>(),
        72usize,
        concat!(
            "Size of: ",
            stringify!(tm_animation_state_machine_component_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_state_machine_component_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_animation_state_machine_component_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_t>())).state_machine_id
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_t),
            "::",
            stringify!(state_machine_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_t>())).state_machine
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_t),
            "::",
            stringify!(state_machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_t>())).state_machine_data
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_t),
            "::",
            stringify!(state_machine_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_t>())).locomotion
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_t),
            "::",
            stringify!(locomotion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_t>())).locomotion_delta
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_t),
            "::",
            stringify!(locomotion_delta)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_t>()))._padding_36
                as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_t),
            "::",
            stringify!(_padding_36)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_state_machine_component_api {
    pub update:
        ::std::option::Option<unsafe extern "C" fn(man: *mut tm_component_manager_o, dt: f32)>,
    pub reload: ::std::option::Option<
        unsafe extern "C" fn(
            man: *mut tm_component_manager_o,
            e: tm_entity_t,
            c: *mut tm_animation_state_machine_component_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_animation_state_machine_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_animation_state_machine_component_api>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_animation_state_machine_component_api)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_animation_state_machine_component_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_animation_state_machine_component_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_api>())).update as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_animation_state_machine_component_api>())).reload as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_animation_state_machine_component_api),
            "::",
            stringify!(reload)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_bone_translation_api {
    pub get_bone_translation_table: ::std::option::Option<
        unsafe extern "C" fn(
            hash_1: u64,
            bone_names_1: *const u64,
            n_1: u16,
            hash_2: u64,
            bone_names_2: *const u64,
            n_2: u16,
        ) -> *mut u16,
    >,
}
#[test]
fn bindgen_test_layout_tm_bone_translation_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_bone_translation_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_bone_translation_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_bone_translation_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_bone_translation_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bone_translation_api>())).get_bone_translation_table
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_translation_api),
            "::",
            stringify!(get_bone_translation_table)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_expression_language_api {
    pub compile: ::std::option::Option<
        unsafe extern "C" fn(
            source: *const ::std::os::raw::c_char,
            variables: *const u64,
            num_variables: u16,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut ::std::os::raw::c_char,
    >,
    pub is_error: ::std::option::Option<
        unsafe extern "C" fn(
            byte_code: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub is_constant: ::std::option::Option<
        unsafe extern "C" fn(byte_code: *const ::std::os::raw::c_char, value: *mut f32) -> bool,
    >,
    pub used_variables: ::std::option::Option<
        unsafe extern "C" fn(
            byte_code: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut u16,
    >,
    pub size: ::std::option::Option<
        unsafe extern "C" fn(byte_code: *const ::std::os::raw::c_char) -> u32,
    >,
    pub run: ::std::option::Option<
        unsafe extern "C" fn(
            byte_code: *const ::std::os::raw::c_char,
            variables: *const f32,
        ) -> f32,
    >,
}
#[test]
fn bindgen_test_layout_tm_expression_language_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_expression_language_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_expression_language_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_expression_language_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_expression_language_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_expression_language_api>())).compile as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_expression_language_api),
            "::",
            stringify!(compile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_expression_language_api>())).is_error as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_expression_language_api),
            "::",
            stringify!(is_error)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_expression_language_api>())).is_constant as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_expression_language_api),
            "::",
            stringify!(is_constant)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_expression_language_api>())).used_variables as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_expression_language_api),
            "::",
            stringify!(used_variables)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_expression_language_api>())).size as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_expression_language_api),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_expression_language_api>())).run as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_expression_language_api),
            "::",
            stringify!(run)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_state_graph_aspect_i {
    pub prop_graph__nodes: u32,
    pub prop_graph__transitions: u32,
    pub prop_node__pos_x: u32,
    pub prop_node__pos_y: u32,
    pub prop_transition__from_node: u32,
    pub prop_transition__to_node: u32,
    pub node_aspect: u64,
    pub transition_aspect: u64,
}
#[test]
fn bindgen_test_layout_tm_state_graph_aspect_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_state_graph_aspect_i>(),
        40usize,
        concat!("Size of: ", stringify!(tm_state_graph_aspect_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_state_graph_aspect_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_state_graph_aspect_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).prop_graph__nodes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(prop_graph__nodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).prop_graph__transitions as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(prop_graph__transitions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).prop_node__pos_x as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(prop_node__pos_x)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).prop_node__pos_y as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(prop_node__pos_y)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).prop_transition__from_node
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(prop_transition__from_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).prop_transition__to_node as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(prop_transition__to_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).node_aspect as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(node_aspect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_aspect_i>())).transition_aspect as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_aspect_i),
            "::",
            stringify!(transition_aspect)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_state_graph_setup_t {
    pub tt: *mut tm_the_truth_o,
    pub undo_stack: *mut tm_undo_stack_i,
    pub root_object: tm_tt_id_t,
    pub aspect: *const tm_state_graph_aspect_i,
}
#[test]
fn bindgen_test_layout_tm_state_graph_setup_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_state_graph_setup_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_state_graph_setup_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_state_graph_setup_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_state_graph_setup_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_state_graph_setup_t>())).tt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_setup_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_setup_t>())).undo_stack as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_setup_t),
            "::",
            stringify!(undo_stack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_setup_t>())).root_object as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_setup_t),
            "::",
            stringify!(root_object)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_state_graph_setup_t>())).aspect as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_setup_t),
            "::",
            stringify!(aspect)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_state_graph_node_aspect_i {
    pub graph_title: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            id: tm_tt_id_t,
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub spawn_title: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            type_: u64,
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub spawn_category: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            type_: u64,
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub draw: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            id: tm_tt_id_t,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            rect: tm_rect_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_state_graph_node_aspect_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_state_graph_node_aspect_i>(),
        32usize,
        concat!("Size of: ", stringify!(tm_state_graph_node_aspect_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_state_graph_node_aspect_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_state_graph_node_aspect_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_node_aspect_i>())).graph_title as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_node_aspect_i),
            "::",
            stringify!(graph_title)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_node_aspect_i>())).spawn_title as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_node_aspect_i),
            "::",
            stringify!(spawn_title)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_node_aspect_i>())).spawn_category as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_node_aspect_i),
            "::",
            stringify!(spawn_category)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_node_aspect_i>())).draw as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_node_aspect_i),
            "::",
            stringify!(draw)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_state_graph_transition_aspect_i {
    pub graph_title: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            id: tm_tt_id_t,
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_state_graph_transition_aspect_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_state_graph_transition_aspect_i>(),
        8usize,
        concat!("Size of: ", stringify!(tm_state_graph_transition_aspect_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_state_graph_transition_aspect_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_state_graph_transition_aspect_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_transition_aspect_i>())).graph_title as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_transition_aspect_i),
            "::",
            stringify!(graph_title)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_state_graph_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_state_graph_ui_res_t {
    pub focus_changed: bool,
    pub _padding_98: [::std::os::raw::c_char; 7usize],
    pub focus: tm_tt_id_t,
    pub selection_changed: bool,
    pub _padding_105: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_state_graph_ui_res_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_state_graph_ui_res_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_state_graph_ui_res_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_state_graph_ui_res_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_state_graph_ui_res_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_ui_res_t>())).focus_changed as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_ui_res_t),
            "::",
            stringify!(focus_changed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_ui_res_t>()))._padding_98 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_ui_res_t),
            "::",
            stringify!(_padding_98)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_state_graph_ui_res_t>())).focus as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_ui_res_t),
            "::",
            stringify!(focus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_ui_res_t>())).selection_changed as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_ui_res_t),
            "::",
            stringify!(selection_changed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_ui_res_t>()))._padding_105 as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_ui_res_t),
            "::",
            stringify!(_padding_105)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_state_graph_api {
    pub create_graph: ::std::option::Option<
        unsafe extern "C" fn(
            parent_allocator: *mut tm_allocator_i,
            setup: *const tm_state_graph_setup_t,
        ) -> *mut tm_state_graph_o,
    >,
    pub destroy_graph: ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_state_graph_o)>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_state_graph_o,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            rect: tm_rect_t,
            tab_id: u64,
        ) -> tm_state_graph_ui_res_t,
    >,
    pub selected_objects: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_state_graph_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_state_graph_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_state_graph_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_state_graph_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_state_graph_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_state_graph_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_state_graph_api>())).create_graph as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_api),
            "::",
            stringify!(create_graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_api>())).destroy_graph as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_api),
            "::",
            stringify!(destroy_graph)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_state_graph_api>())).ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_state_graph_api>())).selected_objects as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_state_graph_api),
            "::",
            stringify!(selected_objects)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_assimp_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(truth: *mut tm_the_truth_o)>,
    pub import: ::std::option::Option<
        unsafe extern "C" fn(
            file: *const ::std::os::raw::c_char,
            import: *const tm_asset_io_import,
        ),
    >,
    pub io_interface: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_asset_io_i>,
    pub migrate_from_assimp_to_dcc_asset:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
}
#[test]
fn bindgen_test_layout_tm_assimp_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_assimp_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_assimp_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_assimp_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_assimp_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_assimp_api>())).create_truth_types as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_assimp_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_assimp_api>())).import as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_assimp_api),
            "::",
            stringify!(import)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_assimp_api>())).io_interface as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_assimp_api),
            "::",
            stringify!(io_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_assimp_api>())).migrate_from_assimp_to_dcc_asset as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_assimp_api),
            "::",
            stringify!(migrate_from_assimp_to_dcc_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mixer_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mixer_item_o {
    _unused: [u8; 0],
}
pub const tm_mixer_positioning_enum_TM_MIXER_POSITIONING__2D: tm_mixer_positioning_enum = 0;
pub const tm_mixer_positioning_enum_TM_MIXER_POSITIONING__3D: tm_mixer_positioning_enum = 1;
pub const tm_mixer_positioning_enum_TM_MIXER_POSITIONING__MATRIX: tm_mixer_positioning_enum = 2;
pub type tm_mixer_positioning_enum = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mixer_positioning_2d_t {
    pub pan: f32,
    pub channel_mask: u32,
}
#[test]
fn bindgen_test_layout_tm_mixer_positioning_2d_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_positioning_2d_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_mixer_positioning_2d_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_positioning_2d_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_mixer_positioning_2d_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_positioning_2d_t>())).pan as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_2d_t),
            "::",
            stringify!(pan)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_2d_t>())).channel_mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_2d_t),
            "::",
            stringify!(channel_mask)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mixer_positioning_3d_t {
    pub pos: tm_vec3_t,
    pub min_distance: f32,
    pub max_distance: f32,
    pub spread: f32,
}
#[test]
fn bindgen_test_layout_tm_mixer_positioning_3d_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_positioning_3d_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_mixer_positioning_3d_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_positioning_3d_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_mixer_positioning_3d_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_positioning_3d_t>())).pos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_3d_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_3d_t>())).min_distance as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_3d_t),
            "::",
            stringify!(min_distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_3d_t>())).max_distance as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_3d_t),
            "::",
            stringify!(max_distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_3d_t>())).spread as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_3d_t),
            "::",
            stringify!(spread)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mixer_positioning_matrix_t {
    pub matrix: *const f32,
}
#[test]
fn bindgen_test_layout_tm_mixer_positioning_matrix_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_positioning_matrix_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_mixer_positioning_matrix_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_positioning_matrix_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_mixer_positioning_matrix_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_matrix_t>())).matrix as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_matrix_t),
            "::",
            stringify!(matrix)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_mixer_positioning_t {
    pub type_: tm_mixer_positioning_enum,
    pub _padding_142: [::std::os::raw::c_char; 4usize],
    pub __bindgen_anon_1: tm_mixer_positioning_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_mixer_positioning_t__bindgen_ty_1 {
    pub pos_2d: tm_mixer_positioning_2d_t,
    pub pos_3d: tm_mixer_positioning_3d_t,
    pub pos_matrix: tm_mixer_positioning_matrix_t,
    _bindgen_union_align: [u64; 3usize],
}
#[test]
fn bindgen_test_layout_tm_mixer_positioning_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_positioning_t__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_mixer_positioning_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_positioning_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_mixer_positioning_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_t__bindgen_ty_1>())).pos_2d as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_t__bindgen_ty_1),
            "::",
            stringify!(pos_2d)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_t__bindgen_ty_1>())).pos_3d as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_t__bindgen_ty_1),
            "::",
            stringify!(pos_3d)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_t__bindgen_ty_1>())).pos_matrix as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_t__bindgen_ty_1),
            "::",
            stringify!(pos_matrix)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_mixer_positioning_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_positioning_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_mixer_positioning_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_positioning_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_mixer_positioning_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_positioning_t>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_positioning_t>()))._padding_142 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_positioning_t),
            "::",
            stringify!(_padding_142)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_mixer_settings_t {
    pub world: *mut ::std::os::raw::c_void,
    pub volume: f32,
    pub pitch: f32,
    pub pos: tm_mixer_positioning_t,
}
#[test]
fn bindgen_test_layout_tm_mixer_settings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_settings_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_mixer_settings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_settings_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_mixer_settings_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_settings_t>())).world as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_settings_t),
            "::",
            stringify!(world)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_settings_t>())).volume as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_settings_t),
            "::",
            stringify!(volume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_settings_t>())).pitch as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_settings_t),
            "::",
            stringify!(pitch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_settings_t>())).pos as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_settings_t),
            "::",
            stringify!(pos)
        )
    );
}
pub const TM_MIXER_MAX_CHANNELS: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_43 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mixer_render_t {
    pub channels: [*const f32; 8usize],
}
#[test]
fn bindgen_test_layout_tm_mixer_render_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_render_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_mixer_render_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_render_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_mixer_render_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_render_t>())).channels as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_render_t),
            "::",
            stringify!(channels)
        )
    );
}
pub const TM_MIXER_MAX_SAMPLER_USER_DATA_BYTES: ::std::os::raw::c_int = 256;
pub type _bindgen_ty_44 = ::std::os::raw::c_int;
pub type tm_mixer_sampler_f = ::std::option::Option<
    unsafe extern "C" fn(
        ud: *const ::std::os::raw::c_void,
        offset: f64,
        buffer: *mut f32,
        num_samples: u32,
        sample_frequency: f32,
    ) -> u32,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_mixer_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_mixer_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
    pub default_mixer: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_mixer_o>,
    pub set_default_mixer: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
    pub play: ::std::option::Option<
        unsafe extern "C" fn(
            mixer: *mut tm_mixer_o,
            sampler: tm_mixer_sampler_f,
            ud: *const ::std::os::raw::c_void,
            ud_bytes: u32,
            settings: *const tm_mixer_settings_t,
            channel_mask: u32,
        ) -> *mut tm_mixer_item_o,
    >,
    pub play_sine_wave: ::std::option::Option<
        unsafe extern "C" fn(
            mixer: *mut tm_mixer_o,
            tone: *const tm_tone_t,
            settings: *const tm_mixer_settings_t,
        ) -> *mut tm_mixer_item_o,
    >,
    pub play_wav: ::std::option::Option<
        unsafe extern "C" fn(
            mixer: *mut tm_mixer_o,
            tt: *mut tm_the_truth_o,
            id: tm_tt_id_t,
            loop_: bool,
            settings: *const tm_mixer_settings_t,
        ) -> *mut tm_mixer_item_o,
    >,
    pub volume: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> f32>,
    pub set_volume:
        ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o, volume: f32)>,
    pub pitch: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> f32>,
    pub set_pitch:
        ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o, pitch: f32)>,
    pub offset: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> f64>,
    pub set_offset:
        ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o, offset: f64)>,
    pub positioning: ::std::option::Option<
        unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> *const tm_mixer_positioning_t,
    >,
    pub set_positioning: ::std::option::Option<
        unsafe extern "C" fn(mi: *mut tm_mixer_item_o, pos: *const tm_mixer_positioning_t),
    >,
    pub listener:
        ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o) -> tm_transform_t>,
    pub set_listener:
        ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o, tm: tm_transform_t)>,
    pub generation: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> u64>,
    pub is_alive: ::std::option::Option<
        unsafe extern "C" fn(mi: *mut tm_mixer_item_o, generation: u64) -> bool,
    >,
    pub pause: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o)>,
    pub unpause: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o)>,
    pub is_paused: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> bool>,
    pub stop: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o)>,
    pub stop_world: ::std::option::Option<
        unsafe extern "C" fn(mixer: *mut tm_mixer_o, world: *mut ::std::os::raw::c_void),
    >,
    pub pause_world: ::std::option::Option<
        unsafe extern "C" fn(mixer: *mut tm_mixer_o, world: *mut ::std::os::raw::c_void),
    >,
    pub unpause_world: ::std::option::Option<
        unsafe extern "C" fn(mixer: *mut tm_mixer_o, world: *mut ::std::os::raw::c_void),
    >,
    pub stop_all_sound: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
    pub commit: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            mixer: *mut tm_mixer_o,
            num_samples: u32,
            channel_mask: u32,
        ) -> tm_mixer_render_t,
    >,
    pub start_render_thread: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
}
#[test]
fn bindgen_test_layout_tm_mixer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_mixer_api>(),
        240usize,
        concat!("Size of: ", stringify!(tm_mixer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_mixer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_mixer_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).default_mixer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(default_mixer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).set_default_mixer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(set_default_mixer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).play as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(play)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).play_sine_wave as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(play_sine_wave)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).play_wav as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(play_wav)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).volume as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(volume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).set_volume as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(set_volume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).pitch as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(pitch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).set_pitch as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(set_pitch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).offset as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).set_offset as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(set_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).positioning as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(positioning)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).set_positioning as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(set_positioning)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).listener as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(listener)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).set_listener as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(set_listener)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).generation as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(generation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).is_alive as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(is_alive)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).pause as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(pause)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).unpause as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(unpause)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).is_paused as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(is_paused)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).stop as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(stop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).stop_world as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(stop_world)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).pause_world as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(pause_world)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).unpause_world as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(unpause_world)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).stop_all_sound as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(stop_all_sound)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).commit as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(commit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_mixer_api>())).render as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(render)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_mixer_api>())).start_render_thread as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_mixer_api),
            "::",
            stringify!(start_render_thread)
        )
    );
}
pub const TM_SOUND_BACKEND_MAX_CHANNELS: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_45 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_sound_backend_api {
    pub num_speakers: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub channel_mask: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub remaining_samples: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub feed: ::std::option::Option<unsafe extern "C" fn(samples: *mut f32, num_samples: u32)>,
    pub wait: ::std::option::Option<unsafe extern "C" fn(seconds: f32)>,
    pub signal: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_sound_backend_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_sound_backend_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_sound_backend_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_sound_backend_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_sound_backend_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_backend_api>())).num_speakers as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_backend_api),
            "::",
            stringify!(num_speakers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_backend_api>())).channel_mask as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_backend_api),
            "::",
            stringify!(channel_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_backend_api>())).remaining_samples as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_backend_api),
            "::",
            stringify!(remaining_samples)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_sound_backend_api>())).feed as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_backend_api),
            "::",
            stringify!(feed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_sound_backend_api>())).wait as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_backend_api),
            "::",
            stringify!(wait)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_sound_backend_api>())).signal as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_backend_api),
            "::",
            stringify!(signal)
        )
    );
}
pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__SOUND: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__VOLUME: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__PITCH: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__MIN_DISTANCE: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__MAX_DISTANCE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__SPREAD: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_46 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_sound_source_component_t {
    pub sound_id: tm_tt_id_t,
    pub volume_db: f32,
    pub pitch_octaves: f32,
    pub min_distance: f32,
    pub max_distance: f32,
    pub spread: f32,
    pub _padding_42: [::std::os::raw::c_char; 4usize],
    pub mixer_item: *mut tm_mixer_item_o,
}
#[test]
fn bindgen_test_layout_tm_sound_source_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_sound_source_component_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_sound_source_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_sound_source_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_sound_source_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>())).sound_id as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(sound_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>())).volume_db as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(volume_db)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>())).pitch_octaves as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(pitch_octaves)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>())).min_distance as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(min_distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>())).max_distance as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(max_distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>())).spread as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(spread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>()))._padding_42 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(_padding_42)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sound_source_component_t>())).mixer_item as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sound_source_component_t),
            "::",
            stringify!(mixer_item)
        )
    );
}
pub const tm_speaker_TM_SPEAKER__FRONT_LEFT: tm_speaker = 1;
pub const tm_speaker_TM_SPEAKER__FRONT_RIGHT: tm_speaker = 2;
pub const tm_speaker_TM_SPEAKER__FRONT_CENTER: tm_speaker = 4;
pub const tm_speaker_TM_SPEAKER__LOW_FREQUENCY: tm_speaker = 8;
pub const tm_speaker_TM_SPEAKER__BACK_LEFT: tm_speaker = 16;
pub const tm_speaker_TM_SPEAKER__BACK_RIGHT: tm_speaker = 32;
pub const tm_speaker_TM_SPEAKER__FRONT_LEFT_OF_CENTER: tm_speaker = 64;
pub const tm_speaker_TM_SPEAKER__FRONT_RIGHT_OF_CENTER: tm_speaker = 128;
pub const tm_speaker_TM_SPEAKER__BACK_CENTER: tm_speaker = 256;
pub const tm_speaker_TM_SPEAKER__SIDE_LEFT: tm_speaker = 512;
pub const tm_speaker_TM_SPEAKER__SIDE_RIGHT: tm_speaker = 1024;
pub const tm_speaker_TM_SPEAKER__TOP_CENTER: tm_speaker = 2048;
pub const tm_speaker_TM_SPEAKER__TOP_FRONT_LEFT: tm_speaker = 4096;
pub const tm_speaker_TM_SPEAKER__TOP_FRONT_CENTER: tm_speaker = 8192;
pub const tm_speaker_TM_SPEAKER__TOP_FRONT_RIGHT: tm_speaker = 16384;
pub const tm_speaker_TM_SPEAKER__TOP_BACK_LEFT: tm_speaker = 32768;
pub const tm_speaker_TM_SPEAKER__TOP_BACK_CENTER: tm_speaker = 65536;
pub const tm_speaker_TM_SPEAKER__TOP_BACK_RIGHT: tm_speaker = 131072;
pub const tm_speaker_TM_SPEAKER__END: tm_speaker = 262144;
pub type tm_speaker = ::std::os::raw::c_int;
pub const tm_speakers_TM_SPEAKERS__MONO: tm_speakers = 4;
pub const tm_speakers_TM_SPEAKERS__1POINT1: tm_speakers = 12;
pub const tm_speakers_TM_SPEAKERS__STEREO: tm_speakers = 3;
pub const tm_speakers_TM_SPEAKERS__2POINT1: tm_speakers = 11;
pub const tm_speakers_TM_SPEAKERS__3POINT0: tm_speakers = 7;
pub const tm_speakers_TM_SPEAKERS__3POINT1: tm_speakers = 15;
pub const tm_speakers_TM_SPEAKERS__QUAD: tm_speakers = 51;
pub const tm_speakers_TM_SPEAKERS__SURROUND: tm_speakers = 263;
pub const tm_speakers_TM_SPEAKERS__5POINT0: tm_speakers = 1543;
pub const tm_speakers_TM_SPEAKERS__5POINT1: tm_speakers = 63;
pub const tm_speakers_TM_SPEAKERS__7POINT0: tm_speakers = 1591;
pub const tm_speakers_TM_SPEAKERS__6POINT1: tm_speakers = 319;
pub const tm_speakers_TM_SPEAKERS__7POINT1: tm_speakers = 255;
pub type tm_speakers = ::std::os::raw::c_int;
extern "C" {
    pub static tm_speakers_default_channel_mask: [u32; 9usize];
}
pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_LEFT: tm_speaker_log = 0;
pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_RIGHT: tm_speaker_log = 1;
pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_CENTER: tm_speaker_log = 2;
pub const tm_speaker_log_TM_SPEAKER_LOG__LOW_FREQUENCY: tm_speaker_log = 3;
pub const tm_speaker_log_TM_SPEAKER_LOG__BACK_LEFT: tm_speaker_log = 4;
pub const tm_speaker_log_TM_SPEAKER_LOG__BACK_RIGHT: tm_speaker_log = 5;
pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_LEFT_OF_CENTER: tm_speaker_log = 6;
pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_RIGHT_OF_CENTER: tm_speaker_log = 7;
pub const tm_speaker_log_TM_SPEAKER_LOG__BACK_CENTER: tm_speaker_log = 8;
pub const tm_speaker_log_TM_SPEAKER_LOG__SIDE_LEFT: tm_speaker_log = 9;
pub const tm_speaker_log_TM_SPEAKER_LOG__SIDE_RIGHT: tm_speaker_log = 10;
pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_CENTER: tm_speaker_log = 11;
pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_FRONT_LEFT: tm_speaker_log = 12;
pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_FRONT_CENTER: tm_speaker_log = 13;
pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_FRONT_RIGHT: tm_speaker_log = 14;
pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_BACK_LEFT: tm_speaker_log = 15;
pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_BACK_CENTER: tm_speaker_log = 16;
pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_BACK_RIGHT: tm_speaker_log = 17;
pub const tm_speaker_log_TM_SPEAKER_LOG__END: tm_speaker_log = 18;
pub type tm_speaker_log = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tone_t {
    pub frequency: f32,
    pub attack_time: f32,
    pub decay_time: f32,
    pub sustain_time: f32,
    pub release_time: f32,
    pub sustain_level: f32,
}
#[test]
fn bindgen_test_layout_tm_tone_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tone_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_tone_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tone_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_tone_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tone_t>())).frequency as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tone_t),
            "::",
            stringify!(frequency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tone_t>())).attack_time as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tone_t),
            "::",
            stringify!(attack_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tone_t>())).decay_time as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tone_t),
            "::",
            stringify!(decay_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tone_t>())).sustain_time as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tone_t),
            "::",
            stringify!(sustain_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tone_t>())).release_time as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tone_t),
            "::",
            stringify!(release_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tone_t>())).sustain_level as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tone_t),
            "::",
            stringify!(sustain_level)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tone_generator_api {
    pub sample_sine_wave: ::std::option::Option<
        unsafe extern "C" fn(
            tone: *const tm_tone_t,
            offset: f64,
            buffer: *mut f32,
            num_samples: u32,
            buffer_frequency: f32,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_tone_generator_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_tone_generator_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_tone_generator_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tone_generator_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tone_generator_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tone_generator_api>())).sample_sine_wave as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tone_generator_api),
            "::",
            stringify!(sample_sine_wave)
        )
    );
}
pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__NONE: tm_tt_value__wav__format = 0;
pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__UNSIGNED_8BIT_PCM:
    tm_tt_value__wav__format = 1;
pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__SIGNED_16BIT_PCM:
    tm_tt_value__wav__format = 2;
pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__SIGNED_24BIT_PCM:
    tm_tt_value__wav__format = 3;
pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__32BIT_FLOAT_PCM:
    tm_tt_value__wav__format = 4;
pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__SIGNED_32BIT_PCM:
    tm_tt_value__wav__format = 5;
pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__16BIT_FLOAT_PCM:
    tm_tt_value__wav__format = 6;
pub type tm_tt_value__wav__format = ::std::os::raw::c_int;
pub const TM_TT_PROP__WAV__FREQUENCY: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__WAV__NUM_CHANNELS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__WAV__FORMAT: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__WAV__CHANNEL_MASK: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__WAV__DATA: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_47 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_wav_t {
    pub frequency: u32,
    pub num_channels: u32,
    pub format: tm_tt_value__wav__format,
    pub channel_mask: u32,
    pub data: *const ::std::os::raw::c_void,
    pub data_bytes: u64,
    pub num_samples: u64,
    pub loop_: bool,
    pub _padding_41: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_wav_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_wav_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_wav_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_wav_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_wav_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).frequency as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(frequency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).num_channels as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(num_channels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).format as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(format)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).channel_mask as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(channel_mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).data_bytes as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(data_bytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).num_samples as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(num_samples)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>())).loop_ as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(loop_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_t>()))._padding_41 as *const _ as usize },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_t),
            "::",
            stringify!(_padding_41)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_wav_api {
    pub read: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, id: tm_tt_id_t) -> tm_wav_t,
    >,
    pub sample: ::std::option::Option<
        unsafe extern "C" fn(
            wav: *const tm_wav_t,
            offset: f64,
            buffer: *mut f32,
            num_samples: u32,
            sample_frequency: f32,
        ) -> u32,
    >,
    pub read_samples: ::std::option::Option<
        unsafe extern "C" fn(wav: *const tm_wav_t, offset: u64, buffer: *mut f32, num_samples: u32),
    >,
}
#[test]
fn bindgen_test_layout_tm_wav_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_wav_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_wav_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_wav_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_wav_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_api>())).read as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_api),
            "::",
            stringify!(read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_api>())).sample as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_api),
            "::",
            stringify!(sample)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_wav_api>())).read_samples as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_wav_api),
            "::",
            stringify!(read_samples)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_cache_manager_o {
    _unused: [u8; 0],
}
pub const tm_cache_invalidation_type_TM_CACHE_INVALIDATION_TYPE_UPDATE: tm_cache_invalidation_type =
    0;
pub const tm_cache_invalidation_type_TM_CACHE_INVALIDATION_TYPE_REBUILD:
    tm_cache_invalidation_type = 1;
pub type tm_cache_invalidation_type = ::std::os::raw::c_int;
pub type tm_cache_invalidation_callback = ::std::option::Option<
    unsafe extern "C" fn(
        tt: *mut tm_the_truth_o,
        type_: tm_cache_invalidation_type,
        user_data: *mut ::std::os::raw::c_void,
        tag: u64,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_cache_manager_api {
    pub init: ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i)>,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
    pub register_tag: ::std::option::Option<
        unsafe extern "C" fn(
            tag: u64,
            display_name: *const ::std::os::raw::c_char,
            callback: tm_cache_invalidation_callback,
        ),
    >,
    pub unregister_tag: ::std::option::Option<unsafe extern "C" fn(tag: u64)>,
    pub update_tag: ::std::option::Option<
        unsafe extern "C" fn(
            tag: u64,
            tt: *mut tm_the_truth_o,
            user_data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub rebuild_tag: ::std::option::Option<
        unsafe extern "C" fn(
            tag: u64,
            tt: *mut tm_the_truth_o,
            user_data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            rect: tm_rect_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_cache_manager_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_cache_manager_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_cache_manager_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_cache_manager_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_cache_manager_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cache_manager_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cache_manager_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cache_manager_api>())).shutdown as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cache_manager_api),
            "::",
            stringify!(shutdown)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_cache_manager_api>())).register_tag as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cache_manager_api),
            "::",
            stringify!(register_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_cache_manager_api>())).unregister_tag as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cache_manager_api),
            "::",
            stringify!(unregister_tag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cache_manager_api>())).update_tag as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cache_manager_api),
            "::",
            stringify!(update_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_cache_manager_api>())).rebuild_tag as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cache_manager_api),
            "::",
            stringify!(rebuild_tag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cache_manager_api>())).ui as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cache_manager_api),
            "::",
            stringify!(ui)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_discord_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_discord_friend_t {
    pub user_id: u64,
    pub username: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_discord_friend_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_discord_friend_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_discord_friend_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_discord_friend_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_discord_friend_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_discord_friend_t>())).user_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_discord_friend_t),
            "::",
            stringify!(user_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_discord_friend_t>())).username as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_discord_friend_t),
            "::",
            stringify!(username)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_collaboration_discord_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            coll: *mut tm_collaboration_o,
            a: *mut tm_allocator_i,
        ) -> *mut tm_collaboration_discord_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o)>,
    pub check_available:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o) -> bool>,
    pub update: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o)>,
    pub host: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o, use_p2p_upnp: bool),
    >,
    pub invite: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o, user_id: u64),
    >,
    pub username: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_collaboration_discord_o,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub get_friends_with_the_machinery_running: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_collaboration_discord_o,
            ta: *mut tm_temp_allocator_i,
            num: *mut u32,
        ) -> *mut tm_discord_friend_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_collaboration_discord_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_collaboration_discord_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_collaboration_discord_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_collaboration_discord_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_collaboration_discord_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>())).check_available as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(check_available)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>())).update as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>())).host as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(host)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>())).invite as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(invite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>())).username as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(username)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_collaboration_discord_api>()))
                .get_friends_with_the_machinery_running as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_collaboration_discord_api),
            "::",
            stringify!(get_friends_with_the_machinery_running)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_output_node_type_t {
    pub node_name_hash: u64,
    pub display_name: *const ::std::os::raw::c_char,
    pub asset_tag: *const tm_asset_tag_t,
    pub size: u64,
    pub write_wire: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_creation_graph_interpreter_context_t,
            wire: u32,
            data: *const ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_output_node_type_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_output_node_type_t>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(tm_creation_graph_output_node_type_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_output_node_type_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_output_node_type_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_node_type_t>())).node_name_hash
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_node_type_t),
            "::",
            stringify!(node_name_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_node_type_t>())).display_name
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_node_type_t),
            "::",
            stringify!(display_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_node_type_t>())).asset_tag as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_node_type_t),
            "::",
            stringify!(asset_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_node_type_t>())).size as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_node_type_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_node_type_t>())).write_wire as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_node_type_t),
            "::",
            stringify!(write_wire)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_creation_graph_instance_t {
    pub graph: tm_tt_id_t,
    pub version: u64,
    pub interpreter: *mut tm_creation_graph_interpreter_o,
    pub data: *mut tm_creation_graph_instance_data_o,
    pub output: *mut tm_creation_graph_output_data_t,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_instance_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_instance_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_creation_graph_instance_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_instance_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_instance_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_instance_t>())).graph as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_instance_t),
            "::",
            stringify!(graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_instance_t>())).version as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_instance_t),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_instance_t>())).interpreter as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_instance_t),
            "::",
            stringify!(interpreter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_instance_t>())).data as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_instance_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_instance_t>())).output as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_instance_t),
            "::",
            stringify!(output)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_creation_graph_output_data_t {
    pub allocator: *mut tm_allocator_i,
    pub output_node_types: *mut tm_creation_graph_output_node_type_t,
    pub output_data: *mut *mut u8,
    pub consumer: tm_creation_graph_instance_t,
    pub dirty: bool,
    pub _padding_48: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_creation_graph_output_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_output_data_t>(),
        72usize,
        concat!("Size of: ", stringify!(tm_creation_graph_output_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_output_data_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_output_data_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_data_t>())).allocator as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_data_t),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_data_t>())).output_node_types
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_data_t),
            "::",
            stringify!(output_node_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_data_t>())).output_data as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_data_t),
            "::",
            stringify!(output_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_data_t>())).consumer as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_data_t),
            "::",
            stringify!(consumer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_data_t>())).dirty as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_data_t),
            "::",
            stringify!(dirty)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_data_t>()))._padding_48 as *const _
                as usize
        },
        65usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_data_t),
            "::",
            stringify!(_padding_48)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_node_cache_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_draw_call_data_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_bounding_volume_data_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_image_data_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_command_buffer_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_interpreter_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_system_context_o {
    _unused: [u8; 0],
}
pub type tm_compile_data_to_wire_f = ::std::option::Option<
    unsafe extern "C" fn(
        rc: *mut tm_creation_graph_instance_t,
        wire: u32,
        tt: *const tm_the_truth_o,
        data_id: tm_tt_id_t,
        to_type_hash: u64,
    ) -> bool,
>;
pub const TM_TT_PROP__CREATION_GRAPH__GRAPH: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_48 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH__RESOURCE_REFERENCE__CREATION_GRAPH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH__RESOURCE_REFERENCE__OUTPUT_NODE_TYPE_HASH:
    ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__CREATION_GRAPH__RESOURCE_REFERENCE__OUTPUT_NODE_NAME: ::std::os::raw::c_int =
    2;
pub type _bindgen_ty_49 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_destroy_instance_context_t {
    pub manager_shutdown: bool,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_destroy_instance_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_destroy_instance_context_t>(),
        1usize,
        concat!(
            "Size of: ",
            stringify!(tm_creation_graph_destroy_instance_context_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_destroy_instance_context_t>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_destroy_instance_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_destroy_instance_context_t>()))
                .manager_shutdown as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_destroy_instance_context_t),
            "::",
            stringify!(manager_shutdown)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_tick_context_t {
    pub dt: f32,
    pub _padding_85: [::std::os::raw::c_char; 4usize],
    pub shader_context: *mut tm_shader_system_context_o,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_tick_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_tick_context_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_creation_graph_tick_context_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_tick_context_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_tick_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_tick_context_t>())).dt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_tick_context_t),
            "::",
            stringify!(dt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_tick_context_t>()))._padding_85 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_tick_context_t),
            "::",
            stringify!(_padding_85)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_tick_context_t>())).shader_context as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_tick_context_t),
            "::",
            stringify!(shader_context)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_viewport_interact_context_t {
    pub viewport: tm_rect_t,
    pub transform: *const tm_transform_t,
    pub input: *const tm_ui_input_state_t,
    pub camera: *const tm_camera_t,
    pub render_graph: *const tm_render_graph_o,
    pub shader_context: *const tm_shader_system_context_o,
    pub undo_stack: *mut tm_undo_stack_i,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_viewport_interact_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_viewport_interact_context_t>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(tm_creation_graph_viewport_interact_context_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_viewport_interact_context_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_viewport_interact_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_viewport_interact_context_t>())).viewport
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_viewport_interact_context_t),
            "::",
            stringify!(viewport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_viewport_interact_context_t>())).transform
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_viewport_interact_context_t),
            "::",
            stringify!(transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_viewport_interact_context_t>())).input
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_viewport_interact_context_t),
            "::",
            stringify!(input)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_viewport_interact_context_t>())).camera
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_viewport_interact_context_t),
            "::",
            stringify!(camera)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_viewport_interact_context_t>())).render_graph
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_viewport_interact_context_t),
            "::",
            stringify!(render_graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_viewport_interact_context_t>())).shader_context
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_viewport_interact_context_t),
            "::",
            stringify!(shader_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_viewport_interact_context_t>())).undo_stack
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_viewport_interact_context_t),
            "::",
            stringify!(undo_stack)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_output_t {
    pub version: u64,
    pub num_output_objects: u32,
    pub _padding_122: [::std::os::raw::c_char; 4usize],
    pub output: *const ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_output_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_output_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_creation_graph_output_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_output_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_output_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_t>())).version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_t),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_t>())).num_output_objects as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_t),
            "::",
            stringify!(num_output_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_t>()))._padding_122 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_t),
            "::",
            stringify!(_padding_122)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_output_t>())).output as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_output_t),
            "::",
            stringify!(output)
        )
    );
}
pub const TM_CREATION_GRAPH_MAX_OUTPUT_NODE_TYPES: ::std::os::raw::c_int = 32;
pub type _bindgen_ty_50 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_all_outputs_t {
    pub version: u64,
    pub num_output_node_types: u32,
    pub _padding_136: [::std::os::raw::c_char; 4usize],
    pub output_node_type_hashes: [u64; 32usize],
    pub output_node_type_display_names: [*const ::std::os::raw::c_char; 32usize],
}
#[test]
fn bindgen_test_layout_tm_creation_graph_all_outputs_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_all_outputs_t>(),
        528usize,
        concat!("Size of: ", stringify!(tm_creation_graph_all_outputs_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_all_outputs_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_all_outputs_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_all_outputs_t>())).version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_all_outputs_t),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_all_outputs_t>())).num_output_node_types
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_all_outputs_t),
            "::",
            stringify!(num_output_node_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_all_outputs_t>()))._padding_136 as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_all_outputs_t),
            "::",
            stringify!(_padding_136)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_all_outputs_t>())).output_node_type_hashes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_all_outputs_t),
            "::",
            stringify!(output_node_type_hashes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_all_outputs_t>()))
                .output_node_type_display_names as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_all_outputs_t),
            "::",
            stringify!(output_node_type_display_names)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_blackboard_value_t {
    _unused: [u8; 0],
}
pub const TM_CREATION_GRAPH_PRE_CMD: ::std::os::raw::c_int = 0;
pub const TM_CREATION_GRAPH_POST_CMD: ::std::os::raw::c_int = 1;
pub const TM_CREATION_GRAPH_MAX_RESOURCE_BUFFERS: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_51 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_task_t {
    pub f: ::std::option::Option<unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, id: u64)>,
    pub data: *mut ::std::os::raw::c_void,
    pub debug_name: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_task_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_task_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_creation_graph_task_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_task_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_task_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_creation_graph_task_t>())).f as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_task_t),
            "::",
            stringify!(f)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_creation_graph_task_t>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_task_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_task_t>())).debug_name as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_task_t),
            "::",
            stringify!(debug_name)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_creation_graph_context_t {
    pub rb: *mut tm_renderer_backend_i,
    pub device_affinity_mask: u32,
    pub _padding_167: [::std::os::raw::c_char; 4usize],
    pub ta: *mut tm_temp_allocator_i,
    pub requested_tasks: *mut *mut tm_creation_graph_task_t,
    pub res_buf: [*mut tm_renderer_resource_command_buffer_o; 2usize],
    pub cmd_buf: *mut tm_renderer_command_buffer_o,
    pub event_context: *mut ::std::os::raw::c_void,
    pub entity_id: u64,
    pub entity_ctx: *mut tm_entity_context_o,
    pub invalidate_node: tm_tt_id_t,
    pub invalidate_cache_tag: u64,
    pub shader_repository: *mut tm_shader_repository_o,
    pub event_id: u64,
    pub tt: *mut tm_the_truth_o,
    pub shader_context: *mut tm_shader_system_context_o,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_context_t>(),
        128usize,
        concat!("Size of: ", stringify!(tm_creation_graph_context_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_context_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_context_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_creation_graph_context_t>())).rb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(rb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).device_affinity_mask as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>()))._padding_167 as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(_padding_167)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_creation_graph_context_t>())).ta as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(ta)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).requested_tasks as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(requested_tasks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).res_buf as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(res_buf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).cmd_buf as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(cmd_buf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).event_context as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(event_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).entity_id as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(entity_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).entity_ctx as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(entity_ctx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).invalidate_node as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(invalidate_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).invalidate_cache_tag as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(invalidate_cache_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).shader_repository as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(shader_repository)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).event_id as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(event_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_creation_graph_context_t>())).tt as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_context_t>())).shader_context as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_context_t),
            "::",
            stringify!(shader_context)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_cached_node_result_t {
    pub object: tm_tt_id_t,
    pub validity_hash: u64,
}
#[test]
fn bindgen_test_layout_tm_cached_node_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_cached_node_result_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_cached_node_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_cached_node_result_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_cached_node_result_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cached_node_result_t>())).object as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cached_node_result_t),
            "::",
            stringify!(object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_cached_node_result_t>())).validity_hash as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cached_node_result_t),
            "::",
            stringify!(validity_hash)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_api {
    pub create_manager: ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
    pub update_manager: ::std::option::Option<unsafe extern "C" fn()>,
    pub destroy_manager: ::std::option::Option<unsafe extern "C" fn()>,
    pub set_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub register_graph_nodes:
        ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>,
    pub asset_browser_create_interface:
        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_asset_browser_create_asset_i>,
    pub create_instance: ::std::option::Option<
        unsafe extern "C" fn(
            asset: tm_tt_id_t,
            context: *mut tm_creation_graph_context_t,
        ) -> tm_creation_graph_instance_t,
    >,
    pub destroy_instance: ::std::option::Option<
        unsafe extern "C" fn(
            instance: *mut tm_creation_graph_instance_t,
            context: *mut tm_creation_graph_context_t,
        ),
    >,
    pub invalidate: ::std::option::Option<unsafe extern "C" fn(asset: tm_tt_id_t)>,
    pub write_blackboard: ::std::option::Option<
        unsafe extern "C" fn(
            asset: tm_tt_id_t,
            key_name: u64,
            value: *const tm_creation_graph_blackboard_value_t,
        ),
    >,
    pub read_blackboard: ::std::option::Option<
        unsafe extern "C" fn(
            asset: tm_tt_id_t,
            key_name: u64,
            value: *mut tm_creation_graph_blackboard_value_t,
        ) -> bool,
    >,
    pub remove_blackboard:
        ::std::option::Option<unsafe extern "C" fn(asset: tm_tt_id_t, key_name: u64)>,
    pub lock_resource_cache: ::std::option::Option<
        unsafe extern "C" fn(
            graph_id: tm_tt_id_t,
            node_id: tm_tt_id_t,
        ) -> *mut tm_creation_graph_node_cache_t,
    >,
    pub unlock_resource_cache:
        ::std::option::Option<unsafe extern "C" fn(cache: *mut tm_creation_graph_node_cache_t)>,
    pub add_listener:
        ::std::option::Option<unsafe extern "C" fn(asset: tm_tt_id_t, object: tm_tt_id_t)>,
    pub tick_queue: ::std::option::Option<
        unsafe extern "C" fn(
            instance: *mut tm_creation_graph_instance_t,
            dt: f32,
            context: *mut tm_creation_graph_context_t,
        ),
    >,
    pub has_event: ::std::option::Option<
        unsafe extern "C" fn(instance: *mut tm_creation_graph_instance_t, event_id: u64) -> bool,
    >,
    pub trigger_event: ::std::option::Option<
        unsafe extern "C" fn(
            instance: *mut tm_creation_graph_instance_t,
            event_id: u64,
            context: *mut tm_creation_graph_context_t,
        ),
    >,
    pub update_interface: ::std::option::Option<
        unsafe extern "C" fn(
            instance: *mut tm_creation_graph_instance_t,
            event_id: u64,
            context: *mut tm_creation_graph_context_t,
        ),
    >,
    pub lookup_cached_node_result: ::std::option::Option<
        unsafe extern "C" fn(graph_id: tm_tt_id_t, node_id: tm_tt_id_t) -> tm_cached_node_result_t,
    >,
    pub set_cached_node_result: ::std::option::Option<
        unsafe extern "C" fn(
            graph_id: tm_tt_id_t,
            node_id: tm_tt_id_t,
            validity_hash: u64,
            object: tm_tt_id_t,
        ),
    >,
    pub output: ::std::option::Option<
        unsafe extern "C" fn(
            instance: *mut tm_creation_graph_instance_t,
            node_name_hash: u64,
            context: *mut tm_creation_graph_context_t,
            output_node_type: *mut *const tm_creation_graph_output_node_type_t,
        ) -> tm_creation_graph_output_t,
    >,
    pub all_outputs: ::std::option::Option<
        unsafe extern "C" fn(
            instance: *mut tm_creation_graph_instance_t,
            context: *mut tm_creation_graph_context_t,
        ) -> tm_creation_graph_all_outputs_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_api>(),
        192usize,
        concat!("Size of: ", stringify!(tm_creation_graph_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).create_manager as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(create_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).update_manager as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(update_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).destroy_manager as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(destroy_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).set_the_truth as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(set_the_truth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).create_truth_types as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).register_graph_nodes as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(register_graph_nodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).asset_browser_create_interface
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(asset_browser_create_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).create_instance as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(create_instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).destroy_instance as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(destroy_instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).invalidate as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(invalidate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).write_blackboard as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(write_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).read_blackboard as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(read_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).remove_blackboard as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(remove_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).lock_resource_cache as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(lock_resource_cache)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).unlock_resource_cache as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(unlock_resource_cache)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).add_listener as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(add_listener)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).tick_queue as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(tick_queue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_creation_graph_api>())).has_event as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(has_event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).trigger_event as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(trigger_event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).update_interface as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(update_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).lookup_cached_node_result as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(lookup_cached_node_result)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).set_cached_node_result as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(set_cached_node_result)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_creation_graph_api>())).output as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(output)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_api>())).all_outputs as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_api),
            "::",
            stringify!(all_outputs)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_interpreter_wire_content_t {
    pub type_info: u64,
    pub n: u32,
    pub size: u32,
    pub data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_interpreter_wire_content_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_interpreter_wire_content_t>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_creation_graph_interpreter_wire_content_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_interpreter_wire_content_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_interpreter_wire_content_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_wire_content_t>())).type_info
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_wire_content_t),
            "::",
            stringify!(type_info)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_wire_content_t>())).n as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_wire_content_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_wire_content_t>())).size
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_wire_content_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_wire_content_t>())).data
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_wire_content_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_creation_graph_interpreter_context_t {
    pub instance: *mut tm_creation_graph_instance_t,
    pub node: u32,
    pub _padding_54: [::std::os::raw::c_char; 4usize],
    pub graph_id: tm_tt_id_t,
    pub node_id: tm_tt_id_t,
    pub node_type: *const tm_graph_node_type_i,
    pub wires: *const u32,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_interpreter_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_interpreter_context_t>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(tm_creation_graph_interpreter_context_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_interpreter_context_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_interpreter_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_context_t>())).instance as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_context_t),
            "::",
            stringify!(instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_context_t>())).node as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_context_t),
            "::",
            stringify!(node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_context_t>()))._padding_54
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_context_t),
            "::",
            stringify!(_padding_54)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_context_t>())).graph_id as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_context_t),
            "::",
            stringify!(graph_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_context_t>())).node_id as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_context_t),
            "::",
            stringify!(node_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_context_t>())).node_type
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_context_t),
            "::",
            stringify!(node_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_context_t>())).wires as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_context_t),
            "::",
            stringify!(wires)
        )
    );
}
pub type tm_creation_graph_interpreter_run_node_f =
    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_creation_graph_interpreter_context_t)>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_creation_graph_interpreter_node_t {
    pub f: tm_creation_graph_interpreter_run_node_f,
    pub wires_index: u32,
    pub _padding_91: [::std::os::raw::c_char; 4usize],
    pub node_type: *const tm_graph_node_type_i,
    pub graph_id: tm_tt_id_t,
    pub node_id: tm_tt_id_t,
    pub dependencies_index: u32,
    pub _padding_108: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_creation_graph_interpreter_node_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_interpreter_node_t>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(tm_creation_graph_interpreter_node_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_interpreter_node_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_interpreter_node_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>())).f as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(f)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>())).wires_index as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(wires_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>()))._padding_91 as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(_padding_91)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>())).node_type as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(node_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>())).graph_id as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(graph_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>())).node_id as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(node_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>())).dependencies_index
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(dependencies_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_node_t>()))._padding_108
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_node_t),
            "::",
            stringify!(_padding_108)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_interpreter_api {
    pub create_graph_interpreter: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
        ) -> *mut tm_creation_graph_interpreter_o,
    >,
    pub destroy_graph_interpreter:
        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_creation_graph_interpreter_o)>,
    pub set_graph: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_creation_graph_interpreter_o,
            nodes: *const tm_creation_graph_interpreter_node_t,
            num_nodes: u32,
            num_wires: u32,
            node_wires: *mut u32,
            num_node_wires: u32,
            dependencies: *mut u32,
            num_dependencies: u32,
        ),
    >,
    pub default_instance: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_creation_graph_interpreter_o,
        ) -> tm_creation_graph_instance_t,
    >,
    pub active_instances: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_creation_graph_interpreter_o,
            count: *mut u32,
        ) -> *mut *mut tm_creation_graph_instance_data_o,
    >,
    pub create_instance: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_creation_graph_interpreter_o,
        ) -> tm_creation_graph_instance_t,
    >,
    pub destroy_instance:
        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t)>,
    pub run_node_at_index: ::std::option::Option<
        unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, node: u32),
    >,
    pub add_event_node: ::std::option::Option<
        unsafe extern "C" fn(gr: *mut tm_creation_graph_interpreter_o, e: u64, node: u32),
    >,
    pub has_event: ::std::option::Option<
        unsafe extern "C" fn(gr: *mut tm_creation_graph_interpreter_o, e: u64) -> bool,
    >,
    pub trigger_event:
        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, e: u64)>,
    pub trigger_wire: ::std::option::Option<
        unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, wire: u32),
    >,
    pub queue_wire: ::std::option::Option<
        unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, wire: u32, delay: f32),
    >,
    pub tick_queue:
        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, dt: f32)>,
    pub get_node_run_context: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            node: u32,
        ) -> tm_creation_graph_interpreter_context_t,
    >,
    pub read_wire: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            wire: u32,
        ) -> tm_creation_graph_interpreter_wire_content_t,
    >,
    pub read_wires: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            content: *mut tm_creation_graph_interpreter_wire_content_t,
            wires: *const u32,
            n: u32,
        ),
    >,
    pub read_wires_indirect: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            content: *mut *mut tm_creation_graph_interpreter_wire_content_t,
            wires: *const u32,
            n: u32,
        ),
    >,
    pub write_wire: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            wire: u32,
            type_info: u64,
            n: u32,
            size: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub read_variable: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            variable: u64,
        ) -> tm_creation_graph_interpreter_wire_content_t,
    >,
    pub write_variable: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            variable: u64,
            n: u32,
            size: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub random_float:
        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t) -> f32>,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_interpreter_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_interpreter_api>(),
        176usize,
        concat!("Size of: ", stringify!(tm_creation_graph_interpreter_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_interpreter_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_interpreter_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).create_graph_interpreter
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(create_graph_interpreter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).destroy_graph_interpreter
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(destroy_graph_interpreter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).set_graph as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(set_graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).default_instance
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(default_instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).active_instances
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(active_instances)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).create_instance
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(create_instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).destroy_instance
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(destroy_instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).run_node_at_index
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(run_node_at_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).add_event_node as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(add_event_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).has_event as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(has_event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).trigger_event as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(trigger_event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).trigger_wire as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(trigger_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).queue_wire as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(queue_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).tick_queue as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(tick_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).get_node_run_context
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(get_node_run_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).read_wire as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(read_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).read_wires as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(read_wires)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).read_wires_indirect
                as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(read_wires_indirect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).write_wire as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(write_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).read_variable as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(read_variable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).write_variable as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(write_variable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_interpreter_api>())).random_float as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_interpreter_api),
            "::",
            stringify!(random_float)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_repository_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_runtime_data_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_aspect_i {
    pub node_interface_name: *const ::std::os::raw::c_char,
    pub io_type_interface_name: *const ::std::os::raw::c_char,
    pub graph_object: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, root_object: tm_tt_id_t) -> tm_tt_id_t,
    >,
    pub subgraph_type_hash: u64,
}
#[test]
fn bindgen_test_layout_tm_graph_aspect_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_aspect_i>(),
        32usize,
        concat!("Size of: ", stringify!(tm_graph_aspect_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_aspect_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_aspect_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_aspect_i>())).node_interface_name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_aspect_i),
            "::",
            stringify!(node_interface_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_aspect_i>())).io_type_interface_name as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_aspect_i),
            "::",
            stringify!(io_type_interface_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_aspect_i>())).graph_object as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_aspect_i),
            "::",
            stringify!(graph_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_aspect_i>())).subgraph_type_hash as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_aspect_i),
            "::",
            stringify!(subgraph_type_hash)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_io_type_t {
    pub type_hash: u64,
    pub display_name: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_graph_io_type_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_io_type_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_graph_io_type_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_io_type_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_io_type_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_io_type_t>())).type_hash as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_io_type_t),
            "::",
            stringify!(type_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_io_type_t>())).display_name as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_io_type_t),
            "::",
            stringify!(display_name)
        )
    );
}
pub const TM_TT_PROP__GRAPH__NODES: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH__CONNECTIONS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH__DATA: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRAPH__COMMENTS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__GRAPH__INTERFACE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_52 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_NODE__TYPE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_NODE__LABEL: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_NODE__POSITION_X: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRAPH_NODE__POSITION_Y: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__GRAPH_NODE__WIDTH: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__GRAPH_NODE__SETTINGS: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_53 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_CONNECTION__FROM_NODE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_CONNECTION__TO_NODE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_CONNECTION__FROM_CONNECTOR_HASH: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRAPH_CONNECTION__TO_CONNECTOR_HASH: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_54 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_DATA__TO_NODE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_DATA__TO_CONNECTOR_HASH: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_DATA__DATA: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_55 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_COMMENT__TEXT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_COMMENT__POSITION_X: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_COMMENT__POSITION_Y: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRAPH_COMMENT__FONT_SCALE: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__GRAPH_COMMENT__COLOR: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_56 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_INTERFACE__INPUTS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_INTERFACE__OUTPUTS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_INTERFACE__LAST_ID: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRAPH_INTERFACE__CACHED_NODE_RESULT: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_57 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_INPUT__DISPLAY_NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_INPUT__ID: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_INPUT__TYPE_HASH: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRAPH_INPUT__VALUE_SET_BY_USER: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__GRAPH_INPUT__VALUE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__GRAPH_INPUT__TOOLTIP: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__GRAPH_INPUT__PUBLIC: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_58 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_OUTPUT__DISPLAY_NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_OUTPUT__ID: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_OUTPUT__TYPE_HASH: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_59 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_CACHED_NODE_RESULT__NODE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_CACHED_NODE_RESULT__VALIDITY_HASH: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_CACHED_NODE_RESULT__OBJECT: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_60 = ::std::os::raw::c_int;
pub const TM_TT_PROP__GRAPH_SETTINGS__GRAPH_UUID_A: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRAPH_SETTINGS__VIEW_POSITION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRAPH_SETTINGS__VIEW_SCALE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRAPH_SETTINGS__GRID_SNAPPING: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__GRAPH_SETTINGS__GRID_SIZE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_61 = ::std::os::raw::c_int;
pub const TM_GRAPH_MAX_CONNECTORS: ::std::os::raw::c_int = 16;
pub type _bindgen_ty_62 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_connector_t {
    pub name: *const ::std::os::raw::c_char,
    pub type_hash: u64,
    pub edit_type_hash: u64,
    pub display_name: *const ::std::os::raw::c_char,
    pub optional: bool,
    pub _padding_227: [::std::os::raw::c_char; 7usize],
    pub tooltip: *mut ::std::os::raw::c_char,
    pub hidden: bool,
    pub _padding_236: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_graph_connector_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_connector_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_graph_connector_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_connector_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_connector_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_connector_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_connector_t>())).type_hash as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(type_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_connector_t>())).edit_type_hash as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(edit_type_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_connector_t>())).display_name as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(display_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_connector_t>())).optional as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(optional)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_connector_t>()))._padding_227 as *const _ as usize
        },
        33usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(_padding_227)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_connector_t>())).tooltip as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_connector_t>())).hidden as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(hidden)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_connector_t>()))._padding_236 as *const _ as usize
        },
        49usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_connector_t),
            "::",
            stringify!(_padding_236)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_node_connectors_t {
    pub in_: [tm_graph_connector_t; 16usize],
    pub out: [tm_graph_connector_t; 16usize],
    pub num_in: u32,
    pub num_out: u32,
}
#[test]
fn bindgen_test_layout_tm_graph_node_connectors_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_node_connectors_t>(),
        1800usize,
        concat!("Size of: ", stringify!(tm_graph_node_connectors_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_node_connectors_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_node_connectors_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_node_connectors_t>())).in_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_connectors_t),
            "::",
            stringify!(in_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_node_connectors_t>())).out as *const _ as usize },
        896usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_connectors_t),
            "::",
            stringify!(out)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_connectors_t>())).num_in as *const _ as usize
        },
        1792usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_connectors_t),
            "::",
            stringify!(num_in)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_connectors_t>())).num_out as *const _ as usize
        },
        1796usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_connectors_t),
            "::",
            stringify!(num_out)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_node_type_i {
    pub name: *const ::std::os::raw::c_char,
    pub display_name: *const ::std::os::raw::c_char,
    pub category: *const ::std::os::raw::c_char,
    pub static_connectors: tm_graph_node_connectors_t,
    pub settings_type_hash: u64,
    pub cache_tag: u64,
    pub dynamic_connectors: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            graph_id: tm_tt_id_t,
            node_data: *const tm_tt_id_t,
            node_settings: tm_tt_id_t,
            connectors: *mut tm_graph_node_connectors_t,
        ),
    >,
    pub render_background_callback: ::std::option::Option<
        unsafe extern "C" fn(
            nt: *const tm_graph_node_type_i,
            bg_rect: tm_rect_t,
            title_rect: tm_rect_t,
            title_bg_color: tm_color_srgb_t,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            graph_scale: f32,
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_graph_node_type_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_node_type_i>(),
        1856usize,
        concat!("Size of: ", stringify!(tm_graph_node_type_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_node_type_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_node_type_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_node_type_i>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_type_i>())).display_name as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(display_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_node_type_i>())).category as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(category)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_type_i>())).static_connectors as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(static_connectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_type_i>())).settings_type_hash as *const _ as usize
        },
        1824usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(settings_type_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_node_type_i>())).cache_tag as *const _ as usize },
        1832usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(cache_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_type_i>())).dynamic_connectors as *const _ as usize
        },
        1840usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(dynamic_connectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_type_i>())).render_background_callback as *const _
                as usize
        },
        1848usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_type_i),
            "::",
            stringify!(render_background_callback)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_graph_node_cache_invalidation_context_t {
    pub graph_id: tm_tt_id_t,
    pub node_id: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_graph_node_cache_invalidation_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_node_cache_invalidation_context_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_graph_node_cache_invalidation_context_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_node_cache_invalidation_context_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_graph_node_cache_invalidation_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_cache_invalidation_context_t>())).graph_id
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_cache_invalidation_context_t),
            "::",
            stringify!(graph_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_node_cache_invalidation_context_t>())).node_id
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_node_cache_invalidation_context_t),
            "::",
            stringify!(node_id)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_drag_and_drop_i {
    pub type_name: *const ::std::os::raw::c_char,
    pub can_create_from: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            graph_id: tm_tt_id_t,
            dragged_object: tm_tt_id_t,
        ) -> bool,
    >,
    pub setup_graph_node_from_dragged_object: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            graph_id: tm_tt_id_t,
            node_id: tm_tt_id_t,
            dragged_object: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_graph_drag_and_drop_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_drag_and_drop_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_graph_drag_and_drop_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_drag_and_drop_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_drag_and_drop_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_drag_and_drop_i>())).type_name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_drag_and_drop_i),
            "::",
            stringify!(type_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_drag_and_drop_i>())).can_create_from as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_drag_and_drop_i),
            "::",
            stringify!(can_create_from)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_drag_and_drop_i>()))
                .setup_graph_node_from_dragged_object as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_drag_and_drop_i),
            "::",
            stringify!(setup_graph_node_from_dragged_object)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_graph_ui_res_t {
    pub focus_changed: bool,
    pub selection_changed: bool,
    pub _padding_338: [::std::os::raw::c_char; 6usize],
    pub focus: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_graph_ui_res_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_ui_res_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_graph_ui_res_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_ui_res_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_ui_res_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_ui_res_t>())).focus_changed as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_ui_res_t),
            "::",
            stringify!(focus_changed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_ui_res_t>())).selection_changed as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_ui_res_t),
            "::",
            stringify!(selection_changed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_ui_res_t>()))._padding_338 as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_ui_res_t),
            "::",
            stringify!(_padding_338)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_ui_res_t>())).focus as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_ui_res_t),
            "::",
            stringify!(focus)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub create_graph: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            tt: *mut tm_the_truth_o,
            graph_id: tm_tt_id_t,
            node_interface_name: *const ::std::os::raw::c_char,
            undo_stack: *mut tm_undo_stack_i,
            asset_root: tm_tt_id_t,
            settings_tt: *mut tm_the_truth_o,
            settings_object: tm_tt_id_t,
        ) -> *mut tm_graph_o,
    >,
    pub destroy_graph:
        ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_graph_o, truth_destroyed: bool)>,
    pub set_settings_object: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_graph_o,
            settings_tt: *mut tm_the_truth_o,
            settings_object: tm_tt_id_t,
        ),
    >,
    pub id: ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_graph_o) -> tm_tt_id_t>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_graph_o,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            rect: tm_rect_t,
            tab: *mut tm_tab_i,
        ) -> tm_graph_ui_res_t,
    >,
    pub menu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_graph_o,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            pos: tm_vec2_t,
        ),
    >,
    pub selected_objects: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_graph_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub migrate_to_connector_hash: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            graphs: *mut tm_tt_id_t,
            num_graphs: u32,
            node_types: *const *const tm_graph_node_type_i,
            num_node_types: u32,
        ) -> bool,
    >,
    pub needs_migrate_to_connector_hash:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
    pub migrate_to_instantiated_connections: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            graphs: *mut tm_tt_id_t,
            num_graphs: u32,
        ) -> bool,
    >,
    pub refresh_node_types: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_graph_o,
            node_interface_name: *const ::std::os::raw::c_char,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_graph_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_api>(),
        96usize,
        concat!("Size of: ", stringify!(tm_graph_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).create_truth_types as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).create_graph as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(create_graph)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).destroy_graph as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(destroy_graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_api>())).set_settings_object as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(set_settings_object)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).id as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).ui as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).menu as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(menu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).selected_objects as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(selected_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_api>())).migrate_to_connector_hash as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(migrate_to_connector_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_api>())).needs_migrate_to_connector_hash as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(needs_migrate_to_connector_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_api>())).migrate_to_instantiated_connections as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(migrate_to_instantiated_connections)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_api>())).refresh_node_types as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_api),
            "::",
            stringify!(refresh_node_types)
        )
    );
}
pub const TM_CREATION_GRAPH__STATIC_WIRE__SINK: ::std::os::raw::c_int = 0;
pub const TM_CREATION_GRAPH__STATIC_WIRE__CONTEXT: ::std::os::raw::c_int = 1;
pub const TM_CREATION_GRAPH__STATIC_WIRE__COUNT: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_63 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_creation_graph_compile_context_t {
    pub tt: *mut tm_the_truth_o,
    pub graph_id: tm_tt_id_t,
    pub settings_id: tm_tt_id_t,
    pub instanced_settings_id: tm_tt_id_t,
    pub asset_tag_uuid: u64,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_compile_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_compile_context_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_creation_graph_compile_context_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_compile_context_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_compile_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_compile_context_t>())).tt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_compile_context_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_compile_context_t>())).graph_id as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_compile_context_t),
            "::",
            stringify!(graph_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_compile_context_t>())).settings_id as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_compile_context_t),
            "::",
            stringify!(settings_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_compile_context_t>())).instanced_settings_id
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_compile_context_t),
            "::",
            stringify!(instanced_settings_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_compile_context_t>())).asset_tag_uuid
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_compile_context_t),
            "::",
            stringify!(asset_tag_uuid)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_node_type_i {
    pub __bindgen_padding_0: [u64; 232usize],
    pub user_data: *mut ::std::os::raw::c_void,
    pub run: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_creation_graph_interpreter_context_t),
    >,
    pub compile: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_creation_graph_interpreter_context_t,
            compile_ctx: *mut tm_creation_graph_compile_context_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_node_type_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_node_type_i>(),
        1880usize,
        concat!("Size of: ", stringify!(tm_creation_graph_node_type_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_node_type_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_creation_graph_node_type_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_node_type_i>())).user_data as *const _ as usize
        },
        1856usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_node_type_i),
            "::",
            stringify!(user_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_node_type_i>())).run as *const _ as usize
        },
        1864usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_node_type_i),
            "::",
            stringify!(run)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_node_type_i>())).compile as *const _ as usize
        },
        1872usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_node_type_i),
            "::",
            stringify!(compile)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gpu_vertex_channel_t {
    pub offset: u32,
    pub stride: u16,
    pub _padding_13: [::std::os::raw::c_char; 2usize],
    pub format: u32,
    pub buffer_handle: u32,
}
#[test]
fn bindgen_test_layout_tm_gpu_vertex_channel_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gpu_vertex_channel_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_gpu_vertex_channel_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gpu_vertex_channel_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_gpu_vertex_channel_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_vertex_channel_t>())).offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_channel_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_vertex_channel_t>())).stride as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_channel_t),
            "::",
            stringify!(stride)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gpu_vertex_channel_t>()))._padding_13 as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_channel_t),
            "::",
            stringify!(_padding_13)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_vertex_channel_t>())).format as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_channel_t),
            "::",
            stringify!(format)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gpu_vertex_channel_t>())).buffer_handle as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_channel_t),
            "::",
            stringify!(buffer_handle)
        )
    );
}
pub const TM_VERTEX_BUFFER_CHANNEL_POSITION: ::std::os::raw::c_int = 0;
pub const TM_VERTEX_BUFFER_CHANNEL_NORMAL0: ::std::os::raw::c_int = 1;
pub const TM_VERTEX_BUFFER_CHANNEL_NORMAL1: ::std::os::raw::c_int = 2;
pub const TM_VERTEX_BUFFER_CHANNEL_TANGENT0: ::std::os::raw::c_int = 3;
pub const TM_VERTEX_BUFFER_CHANNEL_TANGENT1: ::std::os::raw::c_int = 4;
pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_INDICES0: ::std::os::raw::c_int = 5;
pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_INDICES1: ::std::os::raw::c_int = 6;
pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_BONES0: ::std::os::raw::c_int = 7;
pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_BONES1: ::std::os::raw::c_int = 8;
pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD0: ::std::os::raw::c_int = 9;
pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD1: ::std::os::raw::c_int = 10;
pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD2: ::std::os::raw::c_int = 11;
pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD3: ::std::os::raw::c_int = 12;
pub const TM_VERTEX_BUFFER_CHANNEL_COLOR0: ::std::os::raw::c_int = 13;
pub const TM_VERTEX_BUFFER_CHANNEL_COLOR1: ::std::os::raw::c_int = 14;
pub const TM_VERTEX_BUFFER_CHANNEL_MAX_CHANNELS: ::std::os::raw::c_int = 16;
pub type _bindgen_ty_64 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gpu_vertex_buffer_t {
    pub active_channels_flag: u32,
    pub num_vertices: u32,
    pub num_vertex_sets: u32,
    pub channels: [tm_gpu_vertex_channel_t; 16usize],
}
#[test]
fn bindgen_test_layout_tm_gpu_vertex_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gpu_vertex_buffer_t>(),
        268usize,
        concat!("Size of: ", stringify!(tm_gpu_vertex_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gpu_vertex_buffer_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_gpu_vertex_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gpu_vertex_buffer_t>())).active_channels_flag as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_buffer_t),
            "::",
            stringify!(active_channels_flag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gpu_vertex_buffer_t>())).num_vertices as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_buffer_t),
            "::",
            stringify!(num_vertices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gpu_vertex_buffer_t>())).num_vertex_sets as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_buffer_t),
            "::",
            stringify!(num_vertex_sets)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_vertex_buffer_t>())).channels as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_vertex_buffer_t),
            "::",
            stringify!(channels)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gpu_geometry_t {
    pub vfetch_system: *mut tm_shader_system_o,
    pub vfetch_system_cbuffer: u32,
    pub vfetch_system_rbinder: u32,
}
#[test]
fn bindgen_test_layout_tm_gpu_geometry_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gpu_geometry_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_gpu_geometry_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gpu_geometry_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gpu_geometry_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_geometry_t>())).vfetch_system as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_geometry_t),
            "::",
            stringify!(vfetch_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gpu_geometry_t>())).vfetch_system_cbuffer as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_geometry_t),
            "::",
            stringify!(vfetch_system_cbuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gpu_geometry_t>())).vfetch_system_rbinder as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_geometry_t),
            "::",
            stringify!(vfetch_system_rbinder)
        )
    );
}
pub const TM_TT_PROP__IMAGE_FILTER_SETTINGS__COLOR_SPACE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__IMAGE_FILTER_SETTINGS__FILTER: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__IMAGE_FILTER_SETTINGS__OVERRIDE_EXISTING_MIPS: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_65 = ::std::os::raw::c_int;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__TYPE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__PIXEL_FORMAT: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__WIDTH: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__HEIGHT: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__DEPTH: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__MIP_LEVELS: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__LAYER_COUNT: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__IMAGE_DESCRIPTION__SAMPLE_COUNT: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_66 = ::std::os::raw::c_int;
pub const TM_TT_PROP__IMAGE_ACRCHIVE__FILENAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__IMAGE_ACRCHIVE__VALIDITY_HASH: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__IMAGE_ACRCHIVE__DESCRIPTION: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__IMAGE_ACRCHIVE__BUFFER: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_67 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gpu_buffer_t {
    pub validity_hash: u64,
    pub size: u32,
    pub usage_flags: u32,
    pub handle: u32,
    pub resource_state: u16,
    pub _padding_14: [::std::os::raw::c_char; 2usize],
}
#[test]
fn bindgen_test_layout_tm_gpu_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gpu_buffer_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_gpu_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gpu_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gpu_buffer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_buffer_t>())).validity_hash as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_buffer_t),
            "::",
            stringify!(validity_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_buffer_t>())).size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_buffer_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_buffer_t>())).usage_flags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_buffer_t),
            "::",
            stringify!(usage_flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_buffer_t>())).handle as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_buffer_t),
            "::",
            stringify!(handle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_buffer_t>())).resource_state as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_buffer_t),
            "::",
            stringify!(resource_state)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_buffer_t>()))._padding_14 as *const _ as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_buffer_t),
            "::",
            stringify!(_padding_14)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_shader_instance_t {
    pub shader: *mut tm_shader_o,
    pub cbuf: u32,
    pub rbinder: u32,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_shader_instance_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_shader_instance_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_creation_graph_shader_instance_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_shader_instance_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_shader_instance_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_shader_instance_t>())).shader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_shader_instance_t),
            "::",
            stringify!(shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_shader_instance_t>())).cbuf as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_shader_instance_t),
            "::",
            stringify!(cbuf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_shader_instance_t>())).rbinder as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_shader_instance_t),
            "::",
            stringify!(rbinder)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_command_buffer_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_crunch_result_t {
    pub data: *mut ::std::os::raw::c_void,
    pub data_size: u32,
    pub _padding_18: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_crunch_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_crunch_result_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_crunch_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_crunch_result_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_crunch_result_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crunch_result_t>())).data as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crunch_result_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crunch_result_t>())).data_size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crunch_result_t),
            "::",
            stringify!(data_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crunch_result_t>()))._padding_18 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crunch_result_t),
            "::",
            stringify!(_padding_18)
        )
    );
}
pub type tm_crunch_progress = ::std::option::Option<
    unsafe extern "C" fn(
        phase_index: u32,
        total_phases: u32,
        subphase_index: u32,
        total_subphases: u32,
        user_data: *mut ::std::os::raw::c_void,
    ) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_crunch_api {
    pub compress: ::std::option::Option<
        unsafe extern "C" fn(
            data: *mut ::std::os::raw::c_void,
            width: u32,
            height: u32,
            srgb: bool,
            format: u32,
            ta: *mut tm_temp_allocator_i,
            progress_func: tm_crunch_progress,
            progress_func_data: *mut ::std::os::raw::c_void,
        ) -> tm_crunch_result_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_crunch_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_crunch_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_crunch_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_crunch_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_crunch_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_crunch_api>())).compress as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_crunch_api),
            "::",
            stringify!(compress)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_geometry_t {
    pub vertices: *mut tm_vec3_t,
    pub indices: *mut u32,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_geometry_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_geometry_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_dcc_asset_geometry_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_geometry_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dcc_asset_geometry_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_geometry_t>())).vertices as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_geometry_t),
            "::",
            stringify!(vertices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_dcc_asset_geometry_t>())).indices as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_geometry_t),
            "::",
            stringify!(indices)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub truth_type_info:
        ::std::option::Option<unsafe extern "C" fn() -> *const dcc_asset_type_info_t>,
    pub bounds: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
            bounds: *mut tm_vec3_t,
            include_node_positions: bool,
        ),
    >,
    pub geometry: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
            ta: *mut tm_temp_allocator_i,
        ) -> tm_dcc_asset_geometry_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_dcc_asset_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dcc_asset_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_api>())).create_truth_types as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_api>())).truth_type_info as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_api),
            "::",
            stringify!(truth_type_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_dcc_asset_api>())).bounds as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_api),
            "::",
            stringify!(bounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_dcc_asset_api>())).geometry as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_api),
            "::",
            stringify!(geometry)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_context_o {
    _unused: [u8; 0],
}
pub const TM_TT_PROP__DCC_ASSET_COMPONENT__DCC_ASSET: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_COMPONENT__VISIBILITY_FLAGS: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_68 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_component_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub create: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub set_component_dcc_asset: ::std::option::Option<
        unsafe extern "C" fn(component_data: *mut ::std::os::raw::c_void, dcc_asset: tm_tt_id_t),
    >,
    pub create_dcc_asset_scene_manager:
        ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
    pub update_dcc_asset_scene_manager: ::std::option::Option<unsafe extern "C" fn()>,
    pub destroy_dcc_asset_scene_manager: ::std::option::Option<unsafe extern "C" fn()>,
    pub set_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub animation_scrubber_ui: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
            entity_ctx: *mut tm_entity_context_o,
            e: *const tm_entity_t,
            p: *mut tm_animation_player_playing_o,
            tab_id: u64,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            content_r: tm_rect_t,
            toolbar_direction: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_component_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_dcc_asset_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dcc_asset_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).create_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).create as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).set_component_dcc_asset
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(set_component_dcc_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).create_dcc_asset_scene_manager
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(create_dcc_asset_scene_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).update_dcc_asset_scene_manager
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(update_dcc_asset_scene_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).destroy_dcc_asset_scene_manager
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(destroy_dcc_asset_scene_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).set_the_truth as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(set_the_truth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_component_api>())).animation_scrubber_ui as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_component_api),
            "::",
            stringify!(animation_scrubber_ui)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_gpu_resource_cache_o {
    _unused: [u8; 0],
}
pub const TM_TT_PROP__DCC_ASSET_MESH__DCC_ASSET: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_MESH__MESH: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_69 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_IMAGE__DCC_ASSET: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_IMAGE__IMAGE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_70 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__DCC_ASSET: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__MATERIAL: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_71 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_creation_graph_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub compile_data_to_wire: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            wire: u32,
            tt: *const tm_the_truth_o,
            data_id: tm_tt_id_t,
            to_type_hash: u64,
        ) -> bool,
    >,
    pub register_graph_nodes:
        ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>,
    pub create_resource_manager:
        ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
    pub update_resource_manager: ::std::option::Option<unsafe extern "C" fn()>,
    pub destroy_resource_manager: ::std::option::Option<unsafe extern "C" fn()>,
    pub set_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub resource_cache: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
            wanted_version: u64,
        ) -> *mut tm_dcc_asset_gpu_resource_cache_o,
    >,
    pub buffer_handle: ::std::option::Option<
        unsafe extern "C" fn(
            resource_cache: *mut tm_dcc_asset_gpu_resource_cache_o,
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            additional_usage_flags: u32,
            backend: *mut tm_renderer_backend_i,
            device_affinity_mask: u32,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            validity_hash: *mut u64,
        ) -> u32,
    >,
    pub image_handle: ::std::option::Option<
        unsafe extern "C" fn(
            resource_cache: *mut tm_dcc_asset_gpu_resource_cache_o,
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            additional_usage_flags: u32,
            backend: *mut tm_renderer_backend_i,
            device_affinity_mask: u32,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            image_desc: *mut tm_renderer_image_buffer_t,
            validity_hash: *mut u64,
            context: *mut tm_creation_graph_context_t,
            instance: *mut tm_creation_graph_instance_t,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_creation_graph_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_creation_graph_api>(),
        80usize,
        concat!("Size of: ", stringify!(tm_dcc_asset_creation_graph_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_creation_graph_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dcc_asset_creation_graph_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).create_truth_types
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).compile_data_to_wire
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(compile_data_to_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).register_graph_nodes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(register_graph_nodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).create_resource_manager
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(create_resource_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).update_resource_manager
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(update_resource_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).destroy_resource_manager
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(destroy_resource_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).set_the_truth as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(set_the_truth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).resource_cache as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(resource_cache)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).buffer_handle as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(buffer_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_creation_graph_api>())).image_handle as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_creation_graph_api),
            "::",
            stringify!(image_handle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_scene_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_scene_instance_o {
    pub instance_idx: u32,
    pub _padding_24: [::std::os::raw::c_char; 4usize],
    pub entity_id: u64,
    pub transform_version: u32,
    pub scene_to_world: tm_mat44_t,
    pub front_face_cw: bool,
    pub _padding_30: [::std::os::raw::c_char; 3usize],
    pub last_transform_version: u32,
    pub _padding_32: [::std::os::raw::c_char; 4usize],
    pub shader: *mut tm_shader_o,
    pub cbufs: *mut tm_shader_constant_buffer_instance_t,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_scene_instance_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_scene_instance_o>(),
        112usize,
        concat!("Size of: ", stringify!(tm_dcc_asset_scene_instance_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_scene_instance_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dcc_asset_scene_instance_o))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).instance_idx as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(instance_idx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>()))._padding_24 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(_padding_24)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).entity_id as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(entity_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).transform_version as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(transform_version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).scene_to_world as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(scene_to_world)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).front_face_cw as *const _
                as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(front_face_cw)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>()))._padding_30 as *const _
                as usize
        },
        85usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(_padding_30)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).last_transform_version
                as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(last_transform_version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>()))._padding_32 as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(_padding_32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).shader as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_scene_instance_o>())).cbufs as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_scene_instance_o),
            "::",
            stringify!(cbufs)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_renderer_shader_system_t {
    pub systems: [*mut tm_shader_system_o; 2usize],
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_renderer_shader_system_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_renderer_shader_system_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_dcc_asset_renderer_shader_system_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_renderer_shader_system_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_dcc_asset_renderer_shader_system_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_shader_system_t>())).systems as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_shader_system_t),
            "::",
            stringify!(systems)
        )
    );
}
pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_OPAQUE: ::std::os::raw::c_int = 0;
pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_MASKED: ::std::os::raw::c_int = 1;
pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_TRANSPARENCY: ::std::os::raw::c_int = 2;
pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_MAX_SYSTEMS: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_72 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_renderer_frame_memory_thread_context_t {
    pub p: *mut u8,
    pub used: u64,
    pub block_size: u64,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_renderer_frame_memory_thread_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_renderer_frame_memory_thread_context_t>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_dcc_asset_renderer_frame_memory_thread_context_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_renderer_frame_memory_thread_context_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_dcc_asset_renderer_frame_memory_thread_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_frame_memory_thread_context_t>())).p
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_frame_memory_thread_context_t),
            "::",
            stringify!(p)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_frame_memory_thread_context_t>())).used
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_frame_memory_thread_context_t),
            "::",
            stringify!(used)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_frame_memory_thread_context_t>()))
                .block_size as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_frame_memory_thread_context_t),
            "::",
            stringify!(block_size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_renderer_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            rb: *mut tm_renderer_backend_i,
            allocator: *mut tm_allocator_i,
            shader_repository: *mut tm_shader_repository_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
        ) -> *mut tm_dcc_asset_scene_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            scene: *mut tm_dcc_asset_scene_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub refresh_instance: ::std::option::Option<
        unsafe extern "C" fn(
            scene: *mut tm_dcc_asset_scene_o,
            instance: *mut tm_dcc_asset_scene_instance_o,
            tt: *const tm_the_truth_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            allocator: *mut tm_allocator_i,
        ),
    >,
    pub update_instance_parameters: ::std::option::Option<
        unsafe extern "C" fn(
            scene: *mut tm_dcc_asset_scene_o,
            instance: *mut tm_dcc_asset_scene_instance_o,
            mem_context: *mut tm_dcc_asset_renderer_frame_memory_thread_context_t,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            entity_id: u64,
            scene_to_world: *const tm_mat44_t,
            last_scene_to_world: *const tm_mat44_t,
        ),
    >,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            scene: *mut tm_dcc_asset_scene_o,
            instance: *mut tm_dcc_asset_scene_instance_o,
            tt: *const tm_the_truth_o,
            context: *mut tm_shader_system_context_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
            viewer: *const tm_ci_render_viewer_t,
            systems: *const tm_dcc_asset_renderer_shader_system_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_renderer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_renderer_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_dcc_asset_renderer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_renderer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dcc_asset_renderer_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_api>())).refresh_instance as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_api),
            "::",
            stringify!(refresh_instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_api>())).update_instance_parameters
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_api),
            "::",
            stringify!(update_instance_parameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_renderer_api>())).render as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_renderer_api),
            "::",
            stringify!(render)
        )
    );
}
pub const TM_TT_PROP__DCC_ASSET_POSITION__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_POSITION__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_POSITION__Z: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_73 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_ROTATION__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_ROTATION__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_ROTATION__Z: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_ROTATION__W: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_74 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_SCALE__X: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_SCALE__Y: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_SCALE__Z: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_75 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_COLOR__R: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_COLOR__G: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_COLOR__B: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_COLOR__A: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_76 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_BUFFER__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_BUFFER__DATA: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_BUFFER__STRIDE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_77 = ::std::os::raw::c_int;
pub const TM_TT_VALUE__DCC_ASSET_CAMERA__TYPE__NONE: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__DCC_ASSET_CAMERA__TYPE__PERSPECTIVE: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__DCC_ASSET_CAMERA__TYPE__ORTHOGRAPHIC: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_78 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_CAMERA__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_CAMERA__TYPE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_CAMERA__ASPECT_RATIO: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_CAMERA__YFOV: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_CAMERA__ZNEAR: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET_CAMERA__ZFAR: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_79 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_LIGHT__NAME: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_80 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__BUFFER: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__OFFSET: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__COUNT: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__IS_FLOAT: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__IS_SIGNED: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__IS_NORMALIZED: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__BITS: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__COMPONENT_COUNT: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_81 = ::std::os::raw::c_int;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__NONE: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__POSITION: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__NORMAL: ::std::os::raw::c_int = 2;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__TANGENT: ::std::os::raw::c_int = 3;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__BINORMAL: ::std::os::raw::c_int = 4;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__TEXCOORD: ::std::os::raw::c_int = 5;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__COLOR: ::std::os::raw::c_int = 6;
pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__SKIN_DATA: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_82 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_ATTRIBUTE__SEMANTIC: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_ATTRIBUTE__SET: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_ATTRIBUTE__ACCESSOR: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_83 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dcc_asset_raw_image_header_t {
    pub format: u32,
    pub width: u32,
    pub height: u32,
}
#[test]
fn bindgen_test_layout_tm_dcc_asset_raw_image_header_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_dcc_asset_raw_image_header_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_dcc_asset_raw_image_header_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dcc_asset_raw_image_header_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_dcc_asset_raw_image_header_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_raw_image_header_t>())).format as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_raw_image_header_t),
            "::",
            stringify!(format)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_raw_image_header_t>())).width as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_raw_image_header_t),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dcc_asset_raw_image_header_t>())).height as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dcc_asset_raw_image_header_t),
            "::",
            stringify!(height)
        )
    );
}
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__NONE: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__JPEG: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__TIFF: ::std::os::raw::c_int = 2;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__PNG: ::std::os::raw::c_int = 3;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__DDS: ::std::os::raw::c_int = 4;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__EXR: ::std::os::raw::c_int = 5;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__DCC_ASSET_RAW: ::std::os::raw::c_int = 6;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__TGA: ::std::os::raw::c_int = 7;
pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__UNKNOWN: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_84 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_IMAGE__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_IMAGE__BUFFER: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_IMAGE__TYPE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_85 = ::std::os::raw::c_int;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__UV: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__SPHERE: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__CYLINDER: ::std::os::raw::c_int = 2;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__BOX: ::std::os::raw::c_int = 3;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__PLANE: ::std::os::raw::c_int = 4;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__OTHER: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_86 = ::std::os::raw::c_int;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__WRAP: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__CLAMP: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__DECAL: ::std::os::raw::c_int = 2;
pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__MIRROR: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_87 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_TEXTURE__IMAGE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_TEXTURE__MAPPING: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_TEXTURE__UV_SET: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_TEXTURE__ADDRESS_MODE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_88 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_MR__METALLIC_FACTOR: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_MR__ROUGHNESS_FACTOR: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_MR__METALLIC_ROUGHNESS_TEXTURE: ::std::os::raw::c_int =
    2;
pub type _bindgen_ty_89 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_SG__GLOSSINESS_FACTOR: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_SG__SPECULAR_FACTOR: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_SG__SPECULAR_GLOSSINESS_TEXTURE:
    ::std::os::raw::c_int = 2;
pub type _bindgen_ty_90 = ::std::os::raw::c_int;
pub const TM_TT_VALUE__DCC_ASSET_MATERIAL__ALPHA_MODE__OPAQUE: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__DCC_ASSET_MATERIAL__ALPHA_MODE__MASK: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__DCC_ASSET_MATERIAL__ALPHA_MODE__BLEND: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_91 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__BASE_COLOR_FACTOR: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__BASE_COLOR_TEXTURE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__NORMAL_TEXTURE: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__OCCLUSION_TEXTURE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__EMISSIVE_FACTOR: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__EMISSIVE_TEXTURE: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__PBR_METALLIC_ROUGHNESS: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__PBR_SPECULAR_GLOSSINESS: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__ALPHA_MODE: ::std::os::raw::c_int = 9;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__ALPHA_CUTOFF: ::std::os::raw::c_int = 10;
pub const TM_TT_PROP__DCC_ASSET_MATERIAL__DOUBLE_SIDED: ::std::os::raw::c_int = 11;
pub type _bindgen_ty_92 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_BONE__INDEX: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_BONE__NODE_NAME: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_BONE__INVERSE_BIND_POSITION: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_BONE__INVERSE_BIND_ROTATION: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_BONE__INVERSE_BIND_SCALE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_93 = ::std::os::raw::c_int;
pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__POINTS: ::std::os::raw::c_int = 0;
pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__LINES: ::std::os::raw::c_int = 1;
pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__TRIANGLES: ::std::os::raw::c_int = 2;
pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__POLYGON: ::std::os::raw::c_int = 3;
pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__MIXED_OR_UNKNOWN: ::std::os::raw::c_int =
    255;
pub type _bindgen_ty_94 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_MESH__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_MESH__PRIMITIVE_TYPE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_MESH__MATERIAL: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_MESH__ATTRIBUTES: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_MESH__INDICES: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET_MESH__BOUNDS_MIN: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__DCC_ASSET_MESH__BOUNDS_MAX: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__DCC_ASSET_MESH__BONES: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_95 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_NODE__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_NODE__POSITION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_NODE__ROTATION: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_NODE__SCALE: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_NODE__CHILDREN: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET_NODE__MESHES: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__DCC_ASSET_NODE__CAMERAS: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__DCC_ASSET_NODE__LIGHTS: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_96 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_SCENE__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_SCENE__ROOT_NODES: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_97 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_prop__dcc_asset_node_animation__float_key_t {
    pub time: f32,
    pub v: f32,
}
#[test]
fn bindgen_test_layout_tm_tt_prop__dcc_asset_node_animation__float_key_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_prop__dcc_asset_node_animation__float_key_t>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__float_key_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_prop__dcc_asset_node_animation__float_key_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__float_key_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop__dcc_asset_node_animation__float_key_t>())).time
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__float_key_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop__dcc_asset_node_animation__float_key_t>())).v
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__float_key_t),
            "::",
            stringify!(v)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_prop__dcc_asset_node_animation__vec3_key_t {
    pub time: f32,
    pub v: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_tt_prop__dcc_asset_node_animation__vec3_key_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_prop__dcc_asset_node_animation__vec3_key_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__vec3_key_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_prop__dcc_asset_node_animation__vec3_key_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__vec3_key_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop__dcc_asset_node_animation__vec3_key_t>())).time
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__vec3_key_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop__dcc_asset_node_animation__vec3_key_t>())).v
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__vec3_key_t),
            "::",
            stringify!(v)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tt_prop__dcc_asset_node_animation__quat_key_t {
    pub time: f32,
    pub q: tm_vec4_t,
}
#[test]
fn bindgen_test_layout_tm_tt_prop__dcc_asset_node_animation__quat_key_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tt_prop__dcc_asset_node_animation__quat_key_t>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__quat_key_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tt_prop__dcc_asset_node_animation__quat_key_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__quat_key_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop__dcc_asset_node_animation__quat_key_t>())).time
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__quat_key_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tt_prop__dcc_asset_node_animation__quat_key_t>())).q
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tt_prop__dcc_asset_node_animation__quat_key_t),
            "::",
            stringify!(q)
        )
    );
}
pub const tm_tt_value__dcc_asset_node_animation__pre_post_state_TM_TT_VALUE__DCC_ASSET_NODE_ANIMATION__PRE_POST_STATE__DEFAULT : tm_tt_value__dcc_asset_node_animation__pre_post_state = 0 ;
pub const tm_tt_value__dcc_asset_node_animation__pre_post_state_TM_TT_VALUE__DCC_ASSET_NODE_ANIMATION__PRE_POST_STATE__CONSTANT : tm_tt_value__dcc_asset_node_animation__pre_post_state = 1 ;
pub const tm_tt_value__dcc_asset_node_animation__pre_post_state_TM_TT_VALUE__DCC_ASSET_NODE_ANIMATION__PRE_POST_STATE__LINEAR : tm_tt_value__dcc_asset_node_animation__pre_post_state = 2 ;
pub const tm_tt_value__dcc_asset_node_animation__pre_post_state_TM_TT_VALUE__DCC_ASSET_NODE_ANIMATION__PRE_POST_STATE__REPEAT : tm_tt_value__dcc_asset_node_animation__pre_post_state = 3 ;
pub type tm_tt_value__dcc_asset_node_animation__pre_post_state = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__NODE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__POSITION_KEYS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__ROTATION_KEYS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__SCALING_KEYS: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__PRE_STATE: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__POST_STATE: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_98 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_ANIMATION__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_ANIMATION__DURATION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_ANIMATION__TICKS_PER_SECOND: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_ANIMATION__NODE_ANIMATIONS: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_99 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_EXTRACTED_RESOURCE__OBJECT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_EXTRACTED_RESOURCE__RESOURCE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_100 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET_SETTINGS__IMPORT_SETTINGS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACT_IMAGES: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACTED_IMAGES: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACT_MATERIALS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACTED_MATERIALS: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET_SETTINGS__RIG_ENTITY: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__DCC_ASSET_SETTINGS__ENTITY: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_101 = ::std::os::raw::c_int;
pub const TM_TT_PROP__DCC_ASSET__SCENE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__DCC_ASSET__ACCESSORS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__DCC_ASSET__BUFFERS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__DCC_ASSET__CAMERAS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__DCC_ASSET__LIGHTS: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__DCC_ASSET__IMAGES: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__DCC_ASSET__MATERIALS: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__DCC_ASSET__MESHES: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__DCC_ASSET__NODES: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__DCC_ASSET__SCENES: ::std::os::raw::c_int = 9;
pub const TM_TT_PROP__DCC_ASSET__ANIMATIONS: ::std::os::raw::c_int = 10;
pub const TM_TT_PROP__DCC_ASSET__SETTINGS: ::std::os::raw::c_int = 11;
pub type _bindgen_ty_102 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct dcc_asset_type_info_t {
    pub position_type: u64,
    pub rotation_type: u64,
    pub scale_type: u64,
    pub color_rgba_type: u64,
    pub color_rgb_type: u64,
    pub attribute_type: u64,
    pub accessor_type: u64,
    pub buffer_type: u64,
    pub camera_type: u64,
    pub light_type: u64,
    pub bone_type: u64,
    pub mesh_type: u64,
    pub image_type: u64,
    pub texture_type: u64,
    pub pbr_mr_type: u64,
    pub pbr_sg_type: u64,
    pub material_type: u64,
    pub node_type: u64,
    pub scene_type: u64,
    pub node_animation_type: u64,
    pub animation_type: u64,
    pub asset_type: u64,
    pub extracted_resource_type: u64,
    pub settings_type: u64,
}
#[test]
fn bindgen_test_layout_dcc_asset_type_info_t() {
    assert_eq!(
        ::std::mem::size_of::<dcc_asset_type_info_t>(),
        192usize,
        concat!("Size of: ", stringify!(dcc_asset_type_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<dcc_asset_type_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(dcc_asset_type_info_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).position_type as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(position_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).rotation_type as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(rotation_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).scale_type as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(scale_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).color_rgba_type as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(color_rgba_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).color_rgb_type as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(color_rgb_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).attribute_type as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(attribute_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).accessor_type as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(accessor_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).buffer_type as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(buffer_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).camera_type as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(camera_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).light_type as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(light_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<dcc_asset_type_info_t>())).bone_type as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(bone_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<dcc_asset_type_info_t>())).mesh_type as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(mesh_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).image_type as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(image_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).texture_type as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(texture_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).pbr_mr_type as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(pbr_mr_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).pbr_sg_type as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(pbr_sg_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).material_type as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(material_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<dcc_asset_type_info_t>())).node_type as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(node_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).scene_type as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(scene_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).node_animation_type as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(node_animation_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).animation_type as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(animation_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).asset_type as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(asset_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).extracted_resource_type as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(extracted_resource_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<dcc_asset_type_info_t>())).settings_type as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(dcc_asset_type_info_t),
            "::",
            stringify!(settings_type)
        )
    );
}
pub const TM_TT_PROP__ENTITY_RIGGER_COMPONENT__DCC_ASSET: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ENTITY_RIGGER_COMPONENT__MESH_CREATION_GRAPH: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_103 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_entity_rigger_component_t {
    pub dcc_asset: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_entity_rigger_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_rigger_component_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_entity_rigger_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_rigger_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_rigger_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_rigger_component_t>())).dcc_asset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_rigger_component_t),
            "::",
            stringify!(dcc_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_rigger_component_api {
    pub parse_scene_tree: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            dcc_asset: tm_tt_id_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_scene_tree_node_t,
    >,
    pub rig_from_dcc_asset: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            parent_entity: tm_tt_id_t,
            dcc_asset: tm_tt_id_t,
            mesh_cg: tm_tt_id_t,
            task_id: u64,
            undo_scope: tm_tt_undo_scope_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_entity_rigger_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_rigger_component_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_entity_rigger_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_rigger_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_rigger_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_rigger_component_api>())).parse_scene_tree as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_rigger_component_api),
            "::",
            stringify!(parse_scene_tree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_rigger_component_api>())).rig_from_dcc_asset
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_rigger_component_api),
            "::",
            stringify!(rig_from_dcc_asset)
        )
    );
}
pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__IMAGE_CG: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__MATERIAL_CG: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__MESH_CG: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__IMAGE_DIRECTORY: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__MATERIAL_DIRECTORY: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__IMPORT_SETTINGS__IMPORT__IMAGE_CG: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__IMPORT_SETTINGS__DROP__IMAGE_CG: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_104 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_import_settings_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub asset_browser_create_interface:
        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_asset_browser_create_asset_i>,
    pub find_import_settings_for_asset: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            asset_root: tm_tt_id_t,
            asset: tm_tt_id_t,
        ) -> tm_tt_id_t,
    >,
    pub find_import_settings_for_dir: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            asset_root: tm_tt_id_t,
            dir: tm_tt_id_t,
        ) -> tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_import_settings_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_import_settings_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_import_settings_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_import_settings_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_import_settings_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_import_settings_api>())).create_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_import_settings_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_import_settings_api>())).asset_browser_create_interface
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_import_settings_api),
            "::",
            stringify!(asset_browser_create_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_import_settings_api>())).find_import_settings_for_asset
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_import_settings_api),
            "::",
            stringify!(find_import_settings_for_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_import_settings_api>())).find_import_settings_for_dir
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_import_settings_api),
            "::",
            stringify!(find_import_settings_for_dir)
        )
    );
}
pub const TM_TT_PROP__BLOOM_COMPONENT__ENABLED: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__BLOOM_COMPONENT__THRESHOLD: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__BLOOM_COMPONENT__FALLOFF: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__BLOOM_COMPONENT__TINT: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_105 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_bloom_component_t {
    pub enabled: bool,
    pub _padding_19: [::std::os::raw::c_char; 3usize],
    pub threshold: f32,
    pub falloff: f32,
    pub tint: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_bloom_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_bloom_component_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_bloom_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_bloom_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_bloom_component_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bloom_component_t>())).enabled as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bloom_component_t),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_bloom_component_t>()))._padding_19 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bloom_component_t),
            "::",
            stringify!(_padding_19)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bloom_component_t>())).threshold as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bloom_component_t),
            "::",
            stringify!(threshold)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bloom_component_t>())).falloff as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bloom_component_t),
            "::",
            stringify!(falloff)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bloom_component_t>())).tint as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bloom_component_t),
            "::",
            stringify!(tint)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_system_o {
    _unused: [u8; 0],
}
pub const tm_default_render_pipe_module_TM_DEFAULT_RENDER_PIPE_MODULE_DEBUG:
    tm_default_render_pipe_module = 0;
pub type tm_default_render_pipe_module = ::std::os::raw::c_int;
pub const tm_default_render_pipe_image_filter_content_TM_DEFAULT_RENDER_PIPE_FILTER_CONTENT_LINEAR : tm_default_render_pipe_image_filter_content = 0 ;
pub const tm_default_render_pipe_image_filter_content_TM_DEFAULT_RENDER_PIPE_FILTER_CONTENT_SRGB:
    tm_default_render_pipe_image_filter_content = 1;
pub const tm_default_render_pipe_image_filter_content_TM_DEFAULT_RENDER_PIPE_FILTER_CONTENT_NORMAL_MAP : tm_default_render_pipe_image_filter_content = 2 ;
pub type tm_default_render_pipe_image_filter_content = ::std::os::raw::c_int;
pub const tm_default_render_pipe_image_filter_TM_DEFAULT_RENDER_PIPE_GENERATE_IMAGE_FILTER_MIPMAP_BOX : tm_default_render_pipe_image_filter = 0 ;
pub const tm_default_render_pipe_image_filter_TM_DEFAULT_RENDER_PIPE_GENERATE_IMAGE_FILTER_SPECULAR_IBL : tm_default_render_pipe_image_filter = 1 ;
pub const tm_default_render_pipe_image_filter_TM_DEFAULT_RENDER_PIPE_GENERATE_IMAGE_FILTER_DIFFUSE_IBL : tm_default_render_pipe_image_filter = 2 ;
pub type tm_default_render_pipe_image_filter = ::std::os::raw::c_int;
pub const TM_FILTER_IMAGE_PRE_CMD: ::std::os::raw::c_int = 0;
pub const TM_FILTER_IMAGE_POST_CMD: ::std::os::raw::c_int = 1;
pub const TM_FILTER_IMAGE_MAX_RESOURCE_BUFFERS: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_106 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_default_render_pipe_api {
    pub create_module: ::std::option::Option<
        unsafe extern "C" fn(
            pipe_module: tm_default_render_pipe_module,
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ) -> *mut tm_render_graph_module_o,
    >,
    pub destroy_module: ::std::option::Option<
        unsafe extern "C" fn(
            mod_: *mut tm_render_graph_module_o,
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub filter_image: ::std::option::Option<
        unsafe extern "C" fn(
            backend: *mut tm_renderer_backend_i,
            device_affinity_mask: u32,
            res_buf: *mut *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
            shader_repository: *mut tm_shader_repository_o,
            allocator: *mut tm_allocator_i,
            input_image_description: *const tm_renderer_image_buffer_t,
            input_resource: u32,
            input_resource_state: u16,
            output_resource: *mut u32,
            output_image_description: *mut tm_renderer_image_buffer_t,
            filter: tm_default_render_pipe_image_filter,
            content: tm_default_render_pipe_image_filter_content,
            release_input: bool,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_default_render_pipe_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_default_render_pipe_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_default_render_pipe_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_default_render_pipe_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_default_render_pipe_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_default_render_pipe_api>())).create_module as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_default_render_pipe_api),
            "::",
            stringify!(create_module)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_default_render_pipe_api>())).destroy_module as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_default_render_pipe_api),
            "::",
            stringify!(destroy_module)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_default_render_pipe_api>())).filter_image as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_default_render_pipe_api),
            "::",
            stringify!(filter_image)
        )
    );
}
pub const TM_TT_PROP__EXPOSURE_COMPONENT__ENABLED: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__EXPOSURE_COMPONENT__METERING: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__EXPOSURE_COMPONENT__EXPOSURE_COMPENSATION: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__EXPOSURE_COMPONENT__MASK: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__EXPOSURE_COMPONENT__MIN_EV100: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__EXPOSURE_COMPONENT__MAX_EV100: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__EXPOSURE_COMPONENT__SPEED_UP: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__EXPOSURE_COMPONENT__SPEED_DOWN: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_107 = ::std::os::raw::c_int;
pub const tm_exposure_metering_mode_TM_EXPOSURE_METERING_MODE_MANUAL: tm_exposure_metering_mode = 0;
pub const tm_exposure_metering_mode_TM_EXPOSURE_METERING_MODE_AUTOMATIC: tm_exposure_metering_mode =
    1;
pub type tm_exposure_metering_mode = ::std::os::raw::c_int;
pub const tm_exposure_mask_mode_TM_EXPOSURE_MASK_CONSTANT: tm_exposure_mask_mode = 0;
pub const tm_exposure_mask_mode_TM_EXPOSURE_MASK_FAVOUR_CENTER: tm_exposure_mask_mode = 1;
pub type tm_exposure_mask_mode = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_exposure_component_t {
    pub enabled: bool,
    pub _padding_33: [::std::os::raw::c_char; 3usize],
    pub metering_mode: tm_exposure_metering_mode,
    pub exposure_compensation: f32,
    pub mask_mode: tm_exposure_mask_mode,
    pub min_ev100: f32,
    pub max_ev100: f32,
    pub speed_up: f32,
    pub speed_down: f32,
}
#[test]
fn bindgen_test_layout_tm_exposure_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_exposure_component_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_exposure_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_exposure_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_exposure_component_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_exposure_component_t>())).enabled as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>()))._padding_33 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(_padding_33)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>())).metering_mode as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(metering_mode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>())).exposure_compensation as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(exposure_compensation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>())).mask_mode as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(mask_mode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>())).min_ev100 as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(min_ev100)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>())).max_ev100 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(max_ev100)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>())).speed_up as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(speed_up)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_exposure_component_t>())).speed_down as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_exposure_component_t),
            "::",
            stringify!(speed_down)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_handle_t {
    _unused: [u8; 0],
}
pub const TM_TT_PROP__LIGHT_COMPONENT__TYPE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__LIGHT_COMPONENT__COLOR: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__LIGHT_COMPONENT__INTENSITY: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__LIGHT_COMPONENT__SPOT_ANGLE_INNER: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__LIGHT_COMPONENT__SPOT_ANGLE_OUTER: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__LIGHT_COMPONENT__CAST_SHADOWS: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__LIGHT_COMPONENT__SHADOW_DEPTH_BIAS: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__LIGHT_COMPONENT__NUM_CASCADES: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__LIGHT_COMPONENT__SHADOW_DISTANCE: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__LIGHT_COMPONENT__UNIFORM_LOG_WEIGHT: ::std::os::raw::c_int = 9;
pub const TM_TT_PROP__LIGHT_COMPONENT__IBL_DIFFUSE: ::std::os::raw::c_int = 10;
pub const TM_TT_PROP__LIGHT_COMPONENT__IBL_SPECULAR: ::std::os::raw::c_int = 11;
pub const TM_TT_PROP__LIGHT_COMPONENT__AREA_EXTENT: ::std::os::raw::c_int = 12;
pub const TM_TT_PROP__LIGHT_COMPONENT__AREA_RADIUS: ::std::os::raw::c_int = 13;
pub type _bindgen_ty_108 = ::std::os::raw::c_int;
pub const TM_LIGHT_TYPE_POINT: ::std::os::raw::c_int = 0;
pub const TM_LIGHT_TYPE_SPOT: ::std::os::raw::c_int = 1;
pub const TM_LIGHT_TYPE_DIRECTIONAL: ::std::os::raw::c_int = 2;
pub const TM_LIGHT_TYPE_IBL: ::std::os::raw::c_int = 3;
pub const TM_LIGHT_TYPE_AREA_SPHERE: ::std::os::raw::c_int = 4;
pub const TM_LIGHT_TYPE_AREA_RECT: ::std::os::raw::c_int = 5;
pub const TM_LIGHT_TYPE_AREA_DISK: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_109 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_light_component_t {
    pub type_: u32,
    pub color_rgb: tm_vec3_t,
    pub intensity: f32,
    pub spot_angle_inner: f32,
    pub spot_angle_outer: f32,
    pub extent: tm_vec2_t,
    pub radius: f32,
    pub cast_shadows: bool,
    pub _padding_55: [::std::os::raw::c_char; 7usize],
    pub shadow_depth_bias: f32,
    pub shadow_distance: f32,
    pub uniform_log_weight: f32,
    pub num_cascades: u8,
    pub _padding_60: [::std::os::raw::c_char; 3usize],
    pub ibl_diffuse: tm_light_component_t__bindgen_ty_1,
    pub ibl_specular: tm_light_component_t__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_light_component_t__bindgen_ty_1 {
    pub asset: tm_tt_id_t,
    pub version: u64,
}
#[test]
fn bindgen_test_layout_tm_light_component_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_light_component_t__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(tm_light_component_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_light_component_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_light_component_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t__bindgen_ty_1>())).asset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t__bindgen_ty_1),
            "::",
            stringify!(asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t__bindgen_ty_1>())).version as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t__bindgen_ty_1),
            "::",
            stringify!(version)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_light_component_t__bindgen_ty_2 {
    pub asset: tm_tt_id_t,
    pub version: u64,
}
#[test]
fn bindgen_test_layout_tm_light_component_t__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tm_light_component_t__bindgen_ty_2>(),
        16usize,
        concat!("Size of: ", stringify!(tm_light_component_t__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_light_component_t__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_light_component_t__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t__bindgen_ty_2>())).asset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t__bindgen_ty_2),
            "::",
            stringify!(asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t__bindgen_ty_2>())).version as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t__bindgen_ty_2),
            "::",
            stringify!(version)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_light_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_light_component_t>(),
        96usize,
        concat!("Size of: ", stringify!(tm_light_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_light_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_light_component_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_light_component_t>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_light_component_t>())).color_rgb as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(color_rgb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_light_component_t>())).intensity as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(intensity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).spot_angle_inner as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(spot_angle_inner)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).spot_angle_outer as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(spot_angle_outer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_light_component_t>())).extent as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(extent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_light_component_t>())).radius as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(radius)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).cast_shadows as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(cast_shadows)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>()))._padding_55 as *const _ as usize
        },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(_padding_55)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).shadow_depth_bias as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(shadow_depth_bias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).shadow_distance as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(shadow_distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).uniform_log_weight as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(uniform_log_weight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).num_cascades as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(num_cascades)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>()))._padding_60 as *const _ as usize
        },
        61usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(_padding_60)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).ibl_diffuse as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(ibl_diffuse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_light_component_t>())).ibl_specular as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_light_component_t),
            "::",
            stringify!(ibl_specular)
        )
    );
}
pub const TM_TT_PROP__VOLUME_COMPONENT__TYPE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__VOLUME_COMPONENT__BLEND_DISTANCE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__VOLUME_COMPONENT__SPHERE_RADIUS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__VOLUME_COMPONENT__BOX_LOWERBOUND: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__VOLUME_COMPONENT__BOX_UPPERBOUND: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_110 = ::std::os::raw::c_int;
pub const tm_tt_volume_type_TM_TT_VOLUME_TYPE_SPHERE: tm_tt_volume_type = 0;
pub const tm_tt_volume_type_TM_TT_VOLUME_TYPE_BOX: tm_tt_volume_type = 1;
pub const tm_tt_volume_type_TM_TT_VOLUME_TYPE_BOX_EXTENT: tm_tt_volume_type = 2;
pub type tm_tt_volume_type = ::std::os::raw::c_int;
pub const tm_volume_type_TM_VOLUME_TYPE_SPHERE: tm_volume_type = 0;
pub const tm_volume_type_TM_VOLUME_TYPE_BOX: tm_volume_type = 1;
pub type tm_volume_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_volume_component_t {
    pub type_: tm_volume_type,
    pub blend_distance: f32,
    pub sphere_radius: f32,
    pub box_lower_bound: tm_vec3_t,
    pub box_upper_bound: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_volume_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_volume_component_t>(),
        36usize,
        concat!("Size of: ", stringify!(tm_volume_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_volume_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_volume_component_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_volume_component_t>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_t>())).blend_distance as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_t),
            "::",
            stringify!(blend_distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_t>())).sphere_radius as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_t),
            "::",
            stringify!(sphere_radius)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_t>())).box_lower_bound as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_t),
            "::",
            stringify!(box_lower_bound)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_t>())).box_upper_bound as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_t),
            "::",
            stringify!(box_upper_bound)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_volume_component_api {
    pub contains: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *const tm_volume_component_t,
            transform: *const tm_transform_t,
            points: *const tm_vec3_t,
            result: *mut bool,
            count: u32,
        ),
    >,
    pub contains_with_blend: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *const tm_volume_component_t,
            transform: *const tm_transform_t,
            points: *const tm_vec3_t,
            result: *mut f32,
            count: u32,
        ),
    >,
    pub distance: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *const tm_volume_component_t,
            transform: *const tm_transform_t,
            points: *const tm_vec3_t,
            result: *mut f32,
            count: u32,
        ),
    >,
    pub get_volume: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *const tm_volume_component_t,
            transform: *const tm_transform_t,
        ) -> f32,
    >,
    pub sort_volumes_from_point: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            entities: *const tm_entity_t,
            entity_transforms: *const tm_transform_component_t,
            entity_indices: *const u32,
            num_objects: u32,
            point: tm_vec3_t,
            volume_result: *mut *mut u32,
            volume_weights: *mut *mut f32,
            global_result: *mut *mut u32,
            allocator: *mut tm_allocator_i,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_volume_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_volume_component_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_volume_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_volume_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_volume_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_api>())).contains as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_api),
            "::",
            stringify!(contains)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_api>())).contains_with_blend as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_api),
            "::",
            stringify!(contains_with_blend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_api>())).distance as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_api),
            "::",
            stringify!(distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_api>())).get_volume as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_api),
            "::",
            stringify!(get_volume)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_volume_component_api>())).sort_volumes_from_point as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_volume_component_api),
            "::",
            stringify!(sort_volumes_from_point)
        )
    );
}
pub const tm_dxc_output_format_TM_DXC_OUTPUT_FORMAT_DXIL: tm_dxc_output_format = 0;
pub const tm_dxc_output_format_TM_DXC_OUTPUT_FORMAT_SPIRV: tm_dxc_output_format = 1;
pub type tm_dxc_output_format = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_dxc_shader_compiler_api {
    pub load: ::std::option::Option<
        unsafe extern "C" fn(dll_path: *const ::std::os::raw::c_char) -> bool,
    >,
    pub unload: ::std::option::Option<unsafe extern "C" fn()>,
    pub compile: ::std::option::Option<
        unsafe extern "C" fn(
            source: *const ::std::os::raw::c_char,
            entry_point: *const ::std::os::raw::c_char,
            stage: u32,
            output_format: tm_dxc_output_format,
            result: *mut tm_renderer_shader_blob_t,
            allocator: *mut tm_allocator_i,
        ) -> bool,
    >,
    pub preprocess: ::std::option::Option<
        unsafe extern "C" fn(
            source: *const ::std::os::raw::c_char,
            preprocessed_source_blob: *mut tm_renderer_shader_blob_t,
            allocator: *mut tm_allocator_i,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_dxc_shader_compiler_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_dxc_shader_compiler_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_dxc_shader_compiler_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_dxc_shader_compiler_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_dxc_shader_compiler_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_dxc_shader_compiler_api>())).load as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dxc_shader_compiler_api),
            "::",
            stringify!(load)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dxc_shader_compiler_api>())).unload as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dxc_shader_compiler_api),
            "::",
            stringify!(unload)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dxc_shader_compiler_api>())).compile as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dxc_shader_compiler_api),
            "::",
            stringify!(compile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_dxc_shader_compiler_api>())).preprocess as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_dxc_shader_compiler_api),
            "::",
            stringify!(preprocess)
        )
    );
}
pub const TM_TT_PROP__ASSET_BROWSER__SELECTION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ASSET_BROWSER__CURRENT_DIRECTORY: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ASSET_BROWSER__FOCUS: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_111 = ::std::os::raw::c_int;
pub const tm_asset_save_status_TM_ASSET_SAVE_STATUS__SAVED: tm_asset_save_status = 0;
pub const tm_asset_save_status_TM_ASSET_SAVE_STATUS__MODIFIED: tm_asset_save_status = 1;
pub const tm_asset_save_status_TM_ASSET_SAVE_STATUS__CREATED: tm_asset_save_status = 2;
pub type tm_asset_save_status = ::std::os::raw::c_int;
pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__CREATED : tm_asset_save_file_tree_modification_type = 0 ;
pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__DELETED : tm_asset_save_file_tree_modification_type = 1 ;
pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__MOVED : tm_asset_save_file_tree_modification_type = 2 ;
pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__RENAMED : tm_asset_save_file_tree_modification_type = 3 ;
pub type tm_asset_save_file_tree_modification_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_asset_save_file_tree_modification_t {
    pub item: tm_tt_id_t,
    pub type_: tm_asset_save_file_tree_modification_type,
    pub _padding_54: [::std::os::raw::c_char; 4usize],
    pub original_name: *const ::std::os::raw::c_char,
    pub original_directory: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_asset_save_file_tree_modification_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_save_file_tree_modification_t>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_asset_save_file_tree_modification_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_save_file_tree_modification_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_asset_save_file_tree_modification_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_save_file_tree_modification_t>())).item as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_file_tree_modification_t),
            "::",
            stringify!(item)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_save_file_tree_modification_t>())).type_ as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_file_tree_modification_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_save_file_tree_modification_t>()))._padding_54
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_file_tree_modification_t),
            "::",
            stringify!(_padding_54)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_save_file_tree_modification_t>())).original_name
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_file_tree_modification_t),
            "::",
            stringify!(original_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_save_file_tree_modification_t>())).original_directory
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_file_tree_modification_t),
            "::",
            stringify!(original_directory)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_save_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_save_i {
    pub inst: *mut tm_asset_save_o,
    pub can_save_individual_assets:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_save_o) -> bool>,
    pub file_tree_modifications: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_save_o,
            ta: *mut tm_temp_allocator_i,
            n: *mut u32,
        ) -> *mut tm_asset_save_file_tree_modification_t,
    >,
    pub status: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_asset_save_o, asset: tm_tt_id_t) -> tm_asset_save_status,
    >,
    pub save_asset:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_save_o, asset: tm_tt_id_t)>,
    pub revert_asset: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_save_o,
            asset: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub save_all: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_save_o)>,
    pub save_all_except: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_asset_save_o, ignore: *mut tm_tt_id_t, num_ignore: u32),
    >,
    pub asset_root_path: ::std::option::Option<
        unsafe extern "C" fn(inst: *const tm_asset_save_o) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_save_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_save_i>(),
        72usize,
        concat!("Size of: ", stringify!(tm_asset_save_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_save_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_save_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_save_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_save_i>())).can_save_individual_assets as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(can_save_individual_assets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_save_i>())).file_tree_modifications as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(file_tree_modifications)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_save_i>())).status as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_save_i>())).save_asset as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(save_asset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_save_i>())).revert_asset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(revert_asset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_save_i>())).save_all as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(save_all)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_save_i>())).save_all_except as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(save_all_except)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_save_i>())).asset_root_path as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_save_i),
            "::",
            stringify!(asset_root_path)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_create_asset_i {
    pub inst: *mut tm_asset_browser_create_asset_o,
    pub menu_name: *const ::std::os::raw::c_char,
    pub asset_name: *const ::std::os::raw::c_char,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_create_asset_o,
            tt: *mut tm_the_truth_o,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_create_asset_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_create_asset_i>(),
        32usize,
        concat!("Size of: ", stringify!(tm_asset_browser_create_asset_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_create_asset_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_browser_create_asset_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_create_asset_i>())).inst as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_create_asset_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_create_asset_i>())).menu_name as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_create_asset_i),
            "::",
            stringify!(menu_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_create_asset_i>())).asset_name as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_create_asset_i),
            "::",
            stringify!(asset_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_create_asset_i>())).create as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_create_asset_i),
            "::",
            stringify!(create)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_open_asset_api {
    pub inst: *mut tm_asset_browser_open_asset_o,
    pub open: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_open_asset_o,
            ui: *mut tm_ui_o,
            tab: *mut tm_tab_i,
            object: tm_tt_id_t,
        ),
    >,
    pub can_open: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_open_asset_o,
            ui: *mut tm_ui_o,
            object: tm_tt_id_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_open_asset_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_open_asset_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_asset_browser_open_asset_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_open_asset_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_browser_open_asset_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_open_asset_api>())).inst as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_open_asset_api),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_open_asset_api>())).open as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_open_asset_api),
            "::",
            stringify!(open)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_open_asset_api>())).can_open as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_open_asset_api),
            "::",
            stringify!(can_open)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_add_asset_api {
    pub inst: *mut tm_asset_browser_add_asset_o,
    pub current_directory: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_add_asset_o,
            ui: *mut tm_ui_o,
        ) -> tm_tt_id_t,
    >,
    pub exists: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_add_asset_o,
            directory: tm_tt_id_t,
            name: *const ::std::os::raw::c_char,
        ) -> tm_tt_id_t,
    >,
    pub add: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_add_asset_o,
            directory: tm_tt_id_t,
            object: tm_tt_id_t,
            name: *const ::std::os::raw::c_char,
            undo_scope: tm_tt_undo_scope_t,
            select: bool,
            ui: *mut tm_ui_o,
        ),
    >,
    pub add_directory: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_add_asset_o,
            parent_directory: tm_tt_id_t,
            name: *const ::std::os::raw::c_char,
            undo_scope: tm_tt_undo_scope_t,
            select: bool,
            ui: *mut tm_ui_o,
        ) -> tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_add_asset_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_add_asset_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_asset_browser_add_asset_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_add_asset_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_browser_add_asset_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_add_asset_api>())).inst as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_add_asset_api),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_add_asset_api>())).current_directory as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_add_asset_api),
            "::",
            stringify!(current_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_add_asset_api>())).exists as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_add_asset_api),
            "::",
            stringify!(exists)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_add_asset_api>())).add as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_add_asset_api),
            "::",
            stringify!(add)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_add_asset_api>())).add_directory as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_add_asset_api),
            "::",
            stringify!(add_directory)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_select_asset_api {
    pub inst: *mut tm_asset_browser_select_asset_o,
    pub select_asset: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_select_asset_o,
            tab: *mut tm_tab_i,
            ui: *mut tm_ui_o,
            asset: tm_tt_id_t,
        ),
    >,
    pub find_asset: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_select_asset_o,
            ui: *mut tm_ui_o,
            asset: tm_tt_id_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_select_asset_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_select_asset_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_asset_browser_select_asset_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_select_asset_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_asset_browser_select_asset_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_select_asset_api>())).inst as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_select_asset_api),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_select_asset_api>())).select_asset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_select_asset_api),
            "::",
            stringify!(select_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_select_asset_api>())).find_asset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_select_asset_api),
            "::",
            stringify!(find_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_custom_menu_item_t {
    pub ud: *mut ::std::os::raw::c_void,
    pub menu_item: ::std::option::Option<
        unsafe extern "C" fn(
            item: *mut tm_ui_menu_item_t,
            ud: *mut ::std::os::raw::c_void,
            ab: *mut tm_asset_browser_o,
            tt: *mut tm_the_truth_o,
            asset_browser_object: tm_tt_id_t,
        ),
    >,
    pub menu_select: ::std::option::Option<
        unsafe extern "C" fn(
            ud: *mut ::std::os::raw::c_void,
            ab: *mut tm_asset_browser_o,
            ui: *mut tm_ui_o,
            tt: *mut tm_the_truth_o,
            asset_browser_object: tm_tt_id_t,
            undo_stack: *mut tm_undo_stack_i,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_custom_menu_item_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_custom_menu_item_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_asset_browser_custom_menu_item_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_custom_menu_item_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_asset_browser_custom_menu_item_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_custom_menu_item_t>())).ud as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_custom_menu_item_t),
            "::",
            stringify!(ud)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_custom_menu_item_t>())).menu_item as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_custom_menu_item_t),
            "::",
            stringify!(menu_item)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_custom_menu_item_t>())).menu_select as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_custom_menu_item_t),
            "::",
            stringify!(menu_select)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_asset_browser_config_t {
    pub tt: *mut tm_the_truth_o,
    pub asset_browser: tm_tt_id_t,
    pub undo_stack: *mut tm_undo_stack_i,
    pub tab: *mut tm_tab_i,
    pub open_ud: *mut ::std::os::raw::c_void,
    pub open: ::std::option::Option<
        unsafe extern "C" fn(
            open_ud: *mut ::std::os::raw::c_void,
            ui: *mut tm_ui_o,
            tab: *mut tm_tab_i,
            asset: tm_tt_id_t,
        ),
    >,
    pub num_custom_menu_items: u32,
    pub _padding_227: [::std::os::raw::c_char; 4usize],
    pub custom_menu_items: *const tm_asset_browser_custom_menu_item_t,
    pub save_interface: *mut tm_asset_save_i,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_config_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_config_t>(),
        72usize,
        concat!("Size of: ", stringify!(tm_asset_browser_config_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_config_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_browser_config_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_browser_config_t>())).tt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_config_t>())).asset_browser as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(asset_browser)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_config_t>())).undo_stack as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(undo_stack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_browser_config_t>())).tab as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(tab)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_config_t>())).open_ud as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(open_ud)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_browser_config_t>())).open as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(open)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_config_t>())).num_custom_menu_items as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(num_custom_menu_items)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_config_t>()))._padding_227 as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(_padding_227)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_config_t>())).custom_menu_items as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(custom_menu_items)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_config_t>())).save_interface as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_config_t),
            "::",
            stringify!(save_interface)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_ui_res_t {
    pub focus_changed: bool,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_ui_res_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_ui_res_t>(),
        1usize,
        concat!("Size of: ", stringify!(tm_asset_browser_ui_res_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_ui_res_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_asset_browser_ui_res_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_ui_res_t>())).focus_changed as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_ui_res_t),
            "::",
            stringify!(focus_changed)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_api {
    pub create_asset_browser: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            config: *const tm_asset_browser_config_t,
        ) -> *mut tm_asset_browser_o,
    >,
    pub destroy_asset_browser:
        ::std::option::Option<unsafe extern "C" fn(asset_browser: *mut tm_asset_browser_o)>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_o,
            asset_root: tm_tt_id_t,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            rect: tm_rect_t,
            tab_id: u64,
        ) -> tm_asset_browser_ui_res_t,
    >,
    pub set_new_truth: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_o,
            tt: *mut tm_the_truth_o,
            asset_browser: tm_tt_id_t,
        ),
    >,
    pub menu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_o,
            asset_root: tm_tt_id_t,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            pos: tm_vec2_t,
        ),
    >,
    pub process_dropped_os_files: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_o,
            ui: *mut tm_ui_o,
            asset_root: tm_tt_id_t,
            files: *mut *mut ::std::os::raw::c_char,
            num_files: u32,
        ),
    >,
    pub focused_object:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_browser_o) -> tm_tt_id_t>,
    pub selected_objects: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_browser_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_asset_browser_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_browser_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_api>())).create_asset_browser as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(create_asset_browser)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_api>())).destroy_asset_browser as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(destroy_asset_browser)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_browser_api>())).ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_api>())).set_new_truth as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(set_new_truth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_browser_api>())).menu as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(menu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_api>())).process_dropped_os_files as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(process_dropped_os_files)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_api>())).focused_object as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(focused_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_api>())).selected_objects as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_api),
            "::",
            stringify!(selected_objects)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_profiler_view_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_profiler_view_api {
    pub create_profiler_view: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_profiler_view_o,
    >,
    pub destroy_profiler_view:
        ::std::option::Option<unsafe extern "C" fn(profiler_view: *mut tm_profiler_view_o)>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_profiler_view_o,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            rect: tm_rect_t,
            tab_id: u64,
        ),
    >,
    pub start_recording: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_profiler_view_o, with_history: bool),
    >,
    pub stop_recording: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_profiler_view_o)>,
    pub is_recording:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_profiler_view_o) -> bool>,
    pub menu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_profiler_view_o,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            pos: tm_vec2_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_profiler_view_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_profiler_view_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_profiler_view_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_profiler_view_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_profiler_view_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_view_api>())).create_profiler_view as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_view_api),
            "::",
            stringify!(create_profiler_view)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_view_api>())).destroy_profiler_view as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_view_api),
            "::",
            stringify!(destroy_profiler_view)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_view_api>())).ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_view_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_view_api>())).start_recording as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_view_api),
            "::",
            stringify!(start_recording)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_view_api>())).stop_recording as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_view_api),
            "::",
            stringify!(stop_recording)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_profiler_view_api>())).is_recording as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_view_api),
            "::",
            stringify!(is_recording)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_profiler_view_api>())).menu as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_profiler_view_api),
            "::",
            stringify!(menu)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_view_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_ui_info_t {
    pub last_hovered_focusable_control: u64,
    pub last_hovered_context_menu_rect: tm_rect_t,
}
#[test]
fn bindgen_test_layout_tm_properties_ui_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_ui_info_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_properties_ui_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_ui_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_properties_ui_info_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_ui_info_t>())).last_hovered_focusable_control
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_info_t),
            "::",
            stringify!(last_hovered_focusable_control)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_ui_info_t>())).last_hovered_context_menu_rect
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_info_t),
            "::",
            stringify!(last_hovered_context_menu_rect)
        )
    );
}
pub const tm_properties_metric_TM_PROPERTIES_METRIC_LABEL_WIDTH: tm_properties_metric = 0;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_MARGIN: tm_properties_metric = 1;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_ITEM_HEIGHT: tm_properties_metric = 2;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_INDENT: tm_properties_metric = 3;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_EDIT_WIDTH: tm_properties_metric = 4;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_SUBOBJECT_LABEL_MARGIN: tm_properties_metric =
    5;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_CHECKBOX_CONTROL_WIDTH: tm_properties_metric =
    6;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_GROUP_RECT_PADDING: tm_properties_metric = 7;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_GROUP_LABEL_LEFT_MARGIN: tm_properties_metric =
    8;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_MENU_WIDTH: tm_properties_metric = 9;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_RGB_LABEL_SIZE:
    tm_properties_metric = 10;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_INPUT_SIZE: tm_properties_metric =
    11;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_HSV_LABEL_SIZE:
    tm_properties_metric = 12;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_SLIDER_MARGIN:
    tm_properties_metric = 13;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_SLIDER_KNOB_SIZE:
    tm_properties_metric = 14;
pub const tm_properties_metric_TM_PROPERTIES_METRIC_NUM: tm_properties_metric = 15;
pub type tm_properties_metric = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_properties_ui_args_t {
    pub pv: *mut tm_properties_view_o,
    pub ui: *mut tm_ui_o,
    pub uistyle: *mut tm_ui_style_t,
    pub tab: *mut tm_tab_i,
    pub tt: *mut tm_the_truth_o,
    pub asset_root: tm_tt_id_t,
    pub undo_stack: *mut tm_undo_stack_i,
    pub metrics: *mut f32,
    pub last_undo_scope: tm_tt_undo_scope_t,
}
#[test]
fn bindgen_test_layout_tm_properties_ui_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_ui_args_t>(),
        72usize,
        concat!("Size of: ", stringify!(tm_properties_ui_args_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_ui_args_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_properties_ui_args_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_ui_args_t>())).pv as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(pv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_ui_args_t>())).ui as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_ui_args_t>())).uistyle as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(uistyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_ui_args_t>())).tab as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_ui_args_t>())).tt as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_ui_args_t>())).asset_root as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(asset_root)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_ui_args_t>())).undo_stack as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(undo_stack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_ui_args_t>())).metrics as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(metrics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_ui_args_t>())).last_undo_scope as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_ui_args_t),
            "::",
            stringify!(last_undo_scope)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_float_display_converter_i {
    pub inst: *mut ::std::os::raw::c_void,
    pub model_to_display: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: f32) -> f32,
    >,
    pub display_to_model: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: f32) -> f32,
    >,
    pub get_spinner_settings: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, spinner: *mut tm_ui_spinner_t),
    >,
}
#[test]
fn bindgen_test_layout_tm_properties_float_display_converter_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_float_display_converter_i>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_properties_float_display_converter_i)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_float_display_converter_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_properties_float_display_converter_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_display_converter_i>())).inst as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_display_converter_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_display_converter_i>())).model_to_display
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_display_converter_i),
            "::",
            stringify!(model_to_display)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_display_converter_i>())).display_to_model
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_display_converter_i),
            "::",
            stringify!(display_to_model)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_display_converter_i>())).get_spinner_settings
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_display_converter_i),
            "::",
            stringify!(get_spinner_settings)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_uint32_display_converter_i {
    pub inst: *mut ::std::os::raw::c_void,
    pub model_to_display: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: u32) -> u32,
    >,
    pub display_to_model: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: u32) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_properties_uint32_display_converter_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_uint32_display_converter_i>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_properties_uint32_display_converter_i)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_uint32_display_converter_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_properties_uint32_display_converter_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_uint32_display_converter_i>())).inst as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_uint32_display_converter_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_uint32_display_converter_i>())).model_to_display
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_uint32_display_converter_i),
            "::",
            stringify!(model_to_display)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_uint32_display_converter_i>())).display_to_model
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_uint32_display_converter_i),
            "::",
            stringify!(display_to_model)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_propeties_reference_picker_args_t {
    pub tags: *const u64,
    pub excludes: *const tm_tt_id_t,
    pub num_tags: u32,
    pub num_excludes: u32,
}
#[test]
fn bindgen_test_layout_tm_propeties_reference_picker_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_propeties_reference_picker_args_t>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_propeties_reference_picker_args_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_propeties_reference_picker_args_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_propeties_reference_picker_args_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_propeties_reference_picker_args_t>())).tags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_propeties_reference_picker_args_t),
            "::",
            stringify!(tags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_propeties_reference_picker_args_t>())).excludes as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_propeties_reference_picker_args_t),
            "::",
            stringify!(excludes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_propeties_reference_picker_args_t>())).num_tags as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_propeties_reference_picker_args_t),
            "::",
            stringify!(num_tags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_propeties_reference_picker_args_t>())).num_excludes
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_propeties_reference_picker_args_t),
            "::",
            stringify!(num_excludes)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_aspect_i {
    pub custom_ui: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            object: tm_tt_id_t,
            indent: u32,
        ) -> f32,
    >,
    pub prototype_asset_picker_type_name:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, o: tm_tt_id_t) -> u64>,
    pub custom_subobject_ui: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            subobject: tm_tt_id_t,
            indent: u32,
        ) -> f32,
    >,
    pub custom_child_ui: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            parent: tm_tt_id_t,
            child: tm_tt_id_t,
            indent: u32,
        ) -> f32,
    >,
    pub get_type_display_name:
        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
    pub get_display_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_properties_aspect_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_aspect_i>(),
        48usize,
        concat!("Size of: ", stringify!(tm_properties_aspect_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_aspect_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_properties_aspect_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_aspect_i>())).custom_ui as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_aspect_i),
            "::",
            stringify!(custom_ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_aspect_i>())).prototype_asset_picker_type_name
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_aspect_i),
            "::",
            stringify!(prototype_asset_picker_type_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_aspect_i>())).custom_subobject_ui as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_aspect_i),
            "::",
            stringify!(custom_subobject_ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_aspect_i>())).custom_child_ui as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_aspect_i),
            "::",
            stringify!(custom_child_ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_aspect_i>())).get_type_display_name as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_aspect_i),
            "::",
            stringify!(get_type_display_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_aspect_i>())).get_display_name as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_aspect_i),
            "::",
            stringify!(get_display_name)
        )
    );
}
pub type tm_tt_prop_aspect__properties__asset_picker = *mut ::std::os::raw::c_char;
pub type tm_tt_prop_aspect__properties__custom_ui = ::std::option::Option<
    unsafe extern "C" fn(
        args: *mut tm_properties_ui_args_t,
        item_rect: tm_rect_t,
        name: *const ::std::os::raw::c_char,
        tooltip: *const ::std::os::raw::c_char,
        object: tm_tt_id_t,
        indent: u32,
        property: u32,
    ) -> f32,
>;
pub type tm_validate_aspect_i = ::std::option::Option<
    unsafe extern "C" fn(
        tt: *mut tm_the_truth_o,
        o: tm_tt_id_t,
        property: u32,
        value: *const ::std::os::raw::c_void,
    ) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_view_config_t {
    pub tt: *mut tm_the_truth_o,
    pub undo_stack: *mut tm_undo_stack_i,
}
#[test]
fn bindgen_test_layout_tm_properties_view_config_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_view_config_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_properties_view_config_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_view_config_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_properties_view_config_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_config_t>())).tt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_config_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_config_t>())).undo_stack as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_config_t),
            "::",
            stringify!(undo_stack)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_float_slider_t {
    pub min: f32,
    pub max: f32,
    pub step: f32,
    pub show_edit_box: bool,
    pub _padding_310: [::std::os::raw::c_char; 3usize],
    pub edit_min: f32,
    pub edit_max: f32,
    pub converter: *mut tm_properties_float_display_converter_i,
}
#[test]
fn bindgen_test_layout_tm_properties_float_slider_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_float_slider_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_properties_float_slider_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_float_slider_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_properties_float_slider_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>())).min as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>())).max as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(max)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>())).step as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(step)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>())).show_edit_box as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(show_edit_box)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>()))._padding_310 as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(_padding_310)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>())).edit_min as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(edit_min)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>())).edit_max as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(edit_max)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_float_slider_t>())).converter as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_float_slider_t),
            "::",
            stringify!(converter)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_properties_view_api {
    pub create_properties_view: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            config: *const tm_properties_view_config_t,
        ) -> *mut tm_properties_view_o,
    >,
    pub destroy_properties_view:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_properties_view_o)>,
    pub set_object: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_properties_view_o, object: tm_tt_id_t) -> bool,
    >,
    pub set_object_with_mask: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_properties_view_o,
            object: tm_tt_id_t,
            property_mask: u64,
        ) -> bool,
    >,
    pub set_objects: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_properties_view_o,
            objects: *const tm_tt_id_t,
            n: u32,
        ) -> bool,
    >,
    pub objects: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_properties_view_o) -> *const tm_tt_id_t,
    >,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_properties_view_o,
            asset_root: tm_tt_id_t,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            rect: tm_rect_t,
            tab: *mut tm_tab_i,
        ),
    >,
    pub ui_info: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_properties_view_o) -> *mut tm_properties_ui_info_t,
    >,
    pub metrics:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_properties_view_o) -> *mut f32>,
    pub get_type_display_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object_type: u64,
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
        ),
    >,
    pub get_display_name: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            object: tm_tt_id_t,
            buffer: *mut ::std::os::raw::c_char,
            size: u32,
        ),
    >,
    pub ui_object: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            object: tm_tt_id_t,
            indent: u32,
        ) -> f32,
    >,
    pub ui_object_default: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            object: tm_tt_id_t,
            indent: u32,
        ) -> f32,
    >,
    pub ui_property: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            object: tm_tt_id_t,
            indent: u32,
            property: u32,
        ) -> f32,
    >,
    pub ui_property_with_name: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            indent: u32,
            property: u32,
        ) -> f32,
    >,
    pub ui_property_default: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            object: tm_tt_id_t,
            indent: u32,
            property: u32,
        ) -> f32,
    >,
    pub ui_property_default_with_name: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            indent: u32,
            property: u32,
        ) -> f32,
    >,
    pub ui_tree_item: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            key: u64,
            rect: tm_rect_t,
            indent: u32,
            expanded_default: bool,
            tooltip: *const ::std::os::raw::c_char,
        ) -> bool,
    >,
    pub ui_group: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            indent: u32,
            expanded_default: bool,
            is_expanded: *mut bool,
        ) -> f32,
    >,
    pub show_subobject_menu: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            undo_stack: *mut tm_undo_stack_i,
            ui: *mut tm_ui_o,
            uistyle: *mut tm_ui_style_t,
            object: tm_tt_id_t,
            property: u32,
            sub: tm_tt_id_t,
            pos: tm_vec2_t,
        ) -> tm_tt_undo_scope_t,
    >,
    pub begin_context_menu_scope:
        ::std::option::Option<unsafe extern "C" fn(pv: *mut tm_properties_view_o, rect: tm_rect_t)>,
    pub end_context_menu_scope: ::std::option::Option<
        unsafe extern "C" fn(
            pv: *mut tm_properties_view_o,
            out_id: *mut u64,
            out_text: *mut *mut ::std::os::raw::c_char,
        ),
    >,
    pub selected_context_menu_item: ::std::option::Option<
        unsafe extern "C" fn(
            pv: *mut tm_properties_view_o,
            out_id: *mut u64,
            out_text: *mut *mut ::std::os::raw::c_char,
        ),
    >,
    pub add_context_menu_items: ::std::option::Option<
        unsafe extern "C" fn(
            pv: *mut tm_properties_view_o,
            items: *const tm_ui_menu_item_t,
            num_items: u32,
        ),
    >,
    pub context_menu:
        ::std::option::Option<unsafe extern "C" fn(args: *mut tm_properties_ui_args_t)>,
    pub ui_bool: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
        ) -> f32,
    >,
    pub ui_uint32: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            converter: *mut tm_properties_uint32_display_converter_i,
        ) -> f32,
    >,
    pub ui_uint64: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
        ) -> f32,
    >,
    pub ui_float: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            converter: *const tm_properties_float_display_converter_i,
        ) -> f32,
    >,
    pub ui_double: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
        ) -> f32,
    >,
    pub ui_string: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
        ) -> f32,
    >,
    pub ui_reference: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
        ) -> f32,
    >,
    pub ui_reference_args: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            picker_args: *const tm_propeties_reference_picker_args_t,
        ) -> f32,
    >,
    pub ui_subobject: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            indent: u32,
            expanded_by_default: bool,
        ) -> f32,
    >,
    pub ui_reference_set: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            indent: u32,
        ) -> f32,
    >,
    pub ui_subobject_set: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            indent: u32,
        ) -> f32,
    >,
    pub ui_subobject_set_item_header: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            object: tm_tt_id_t,
            property: u32,
            sub: tm_tt_id_t,
            indent: u32,
            expanded_by_default: bool,
        ) -> bool,
    >,
    pub ui_subobject_set_item: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            object: tm_tt_id_t,
            property: u32,
            sub: tm_tt_id_t,
            indent: u32,
            expanded_by_default: bool,
        ) -> f32,
    >,
    pub ui_subobject_direct: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            parent: tm_tt_id_t,
            subobject: tm_tt_id_t,
            indent: u32,
            expanded_by_default: bool,
        ) -> f32,
    >,
    pub ui_uint32_popup_picker: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            items: *mut *const ::std::os::raw::c_char,
            num_items: u32,
        ) -> f32,
    >,
    pub ui_uint64_popup_picker: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            items: *mut *const ::std::os::raw::c_char,
            items_values: *const u64,
            num_items: u32,
        ) -> f32,
    >,
    pub ui_reference_popup_picker: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            items: *mut *const ::std::os::raw::c_char,
            items_references: *const tm_tt_id_t,
            num_items: u32,
        ) -> f32,
    >,
    pub ui_string_popup_picker: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            items: *mut *const ::std::os::raw::c_char,
            num_items: u32,
        ) -> f32,
    >,
    pub ui_uint32_dropdown: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            items: *mut *const ::std::os::raw::c_char,
            item_tooltips: *mut *const ::std::os::raw::c_char,
            items_uint32: *const u32,
            num_items: u32,
        ) -> f32,
    >,
    pub ui_uint64_dropdown: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            items: *mut *const ::std::os::raw::c_char,
            item_tooltips: *mut *const ::std::os::raw::c_char,
            items_uint64: *const u64,
            num_items: u32,
        ) -> f32,
    >,
    pub ui_float_slider: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            slider: *const tm_properties_float_slider_t,
        ) -> f32,
    >,
    pub ui_vec2: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            position: tm_tt_id_t,
        ) -> f32,
    >,
    pub ui_vec3: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            position: tm_tt_id_t,
        ) -> f32,
    >,
    pub ui_vec4: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            position: tm_tt_id_t,
        ) -> f32,
    >,
    pub ui_color_picker: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            color: tm_tt_id_t,
        ) -> f32,
    >,
    pub ui_rotation: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            rotation: tm_tt_id_t,
        ) -> f32,
    >,
    pub ui_visibility_flags: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            indent: u32,
        ) -> f32,
    >,
    pub ui_label: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
        ) -> f32,
    >,
    pub ui_horizontal_line: ::std::option::Option<
        unsafe extern "C" fn(args: *mut tm_properties_ui_args_t, item_rect: tm_rect_t) -> f32,
    >,
    pub ui_static_text: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            text: *const ::std::os::raw::c_char,
        ) -> f32,
    >,
    pub ui_prototype: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            parent: tm_tt_id_t,
            property: u32,
            subobject: tm_tt_id_t,
            pick_type_hash: u64,
        ) -> f32,
    >,
    pub ui_open_path: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            extensions: *const ::std::os::raw::c_char,
            description: *const ::std::os::raw::c_char,
        ) -> f32,
    >,
    pub ui_save_path: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            name: *const ::std::os::raw::c_char,
            tooltip: *const ::std::os::raw::c_char,
            object: tm_tt_id_t,
            property: u32,
            extensions: *const ::std::os::raw::c_char,
            description: *const ::std::os::raw::c_char,
        ) -> f32,
    >,
    pub ui_color_button: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            color_button: *const tm_ui_button_t,
            color: tm_tt_id_t,
        ) -> bool,
    >,
    pub ui_expanded_color_picker: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            color: tm_tt_id_t,
        ) -> f32,
    >,
    pub internal__copy_expanded_state: ::std::option::Option<
        unsafe extern "C" fn(
            pv: *mut tm_properties_view_o,
            from_key: tm_tt_id_t,
            to_key: tm_tt_id_t,
        ),
    >,
    pub ui_multi_object: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            item_rect: tm_rect_t,
            parent_proxy: tm_tt_id_t,
            property: u32,
            objects: *const tm_tt_id_t,
            n: u32,
            indent: u32,
        ) -> f32,
    >,
    pub proxy_to_objects: ::std::option::Option<
        unsafe extern "C" fn(pv: *mut tm_properties_view_o, proxy: tm_tt_id_t) -> *const tm_tt_id_t,
    >,
    pub multi_proxy: ::std::option::Option<
        unsafe extern "C" fn(
            pv: *mut tm_properties_view_o,
            parent_proxy: tm_tt_id_t,
            property: u32,
            objects: *const tm_tt_id_t,
            n: u32,
        ) -> tm_tt_id_t,
    >,
    pub get_property_value: ::std::option::Option<
        unsafe extern "C" fn(
            pv: *mut tm_properties_view_o,
            object: tm_tt_id_t,
            property: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_prop_value_t,
    >,
    pub was_changed: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            object: tm_tt_id_t,
            property: u32,
        ) -> bool,
    >,
    pub popup_pick_with_categories: ::std::option::Option<
        unsafe extern "C" fn(
            args: *mut tm_properties_ui_args_t,
            ui_id: u64,
            pos: tm_vec2_t,
            strings: *const *const ::std::os::raw::c_char,
            categories: *const *const ::std::os::raw::c_char,
            num_strings: u32,
            pick_index: *mut u32,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_properties_view_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_properties_view_api>(),
        536usize,
        concat!("Size of: ", stringify!(tm_properties_view_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_properties_view_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_properties_view_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).create_properties_view as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(create_properties_view)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).destroy_properties_view as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(destroy_properties_view)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).set_object as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(set_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).set_object_with_mask as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(set_object_with_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).set_objects as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(set_objects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).objects as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(objects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_info as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).metrics as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(metrics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).get_type_display_name as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(get_type_display_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).get_display_name as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(get_display_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_object as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_object_default as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_object_default)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_property as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_property)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_property_with_name as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_property_with_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_property_default as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_property_default)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_property_default_with_name
                as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_property_default_with_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_tree_item as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_tree_item)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_group as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_group)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).show_subobject_menu as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(show_subobject_menu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).begin_context_menu_scope as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(begin_context_menu_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).end_context_menu_scope as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(end_context_menu_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).selected_context_menu_item
                as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(selected_context_menu_item)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).add_context_menu_items as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(add_context_menu_items)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).context_menu as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(context_menu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_bool as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_bool)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_uint32 as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_uint32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_uint64 as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_uint64)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_float as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_float)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_double as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_double)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_string as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_string)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_reference as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_reference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_reference_args as *const _
                as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_reference_args)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_subobject as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_subobject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_reference_set as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_reference_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_subobject_set as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_subobject_set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_subobject_set_item_header
                as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_subobject_set_item_header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_subobject_set_item as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_subobject_set_item)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_subobject_direct as *const _
                as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_subobject_direct)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_uint32_popup_picker as *const _
                as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_uint32_popup_picker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_uint64_popup_picker as *const _
                as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_uint64_popup_picker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_reference_popup_picker as *const _
                as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_reference_popup_picker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_string_popup_picker as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_string_popup_picker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_uint32_dropdown as *const _
                as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_uint32_dropdown)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_uint64_dropdown as *const _
                as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_uint64_dropdown)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_float_slider as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_float_slider)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_vec2 as *const _ as usize },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_vec2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_vec3 as *const _ as usize },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_vec3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_vec4 as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_vec4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_color_picker as *const _ as usize
        },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_color_picker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_rotation as *const _ as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_visibility_flags as *const _
                as usize
        },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_visibility_flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_properties_view_api>())).ui_label as *const _ as usize },
        416usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_label)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_horizontal_line as *const _
                as usize
        },
        424usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_horizontal_line)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_static_text as *const _ as usize
        },
        432usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_static_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_prototype as *const _ as usize
        },
        440usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_prototype)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_open_path as *const _ as usize
        },
        448usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_open_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_save_path as *const _ as usize
        },
        456usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_save_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_color_button as *const _ as usize
        },
        464usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_color_button)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_expanded_color_picker as *const _
                as usize
        },
        472usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_expanded_color_picker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).internal__copy_expanded_state
                as *const _ as usize
        },
        480usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(internal__copy_expanded_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).ui_multi_object as *const _ as usize
        },
        488usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(ui_multi_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).proxy_to_objects as *const _ as usize
        },
        496usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(proxy_to_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).multi_proxy as *const _ as usize
        },
        504usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(multi_proxy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).get_property_value as *const _
                as usize
        },
        512usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(get_property_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).was_changed as *const _ as usize
        },
        520usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(was_changed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_properties_view_api>())).popup_pick_with_categories
                as *const _ as usize
        },
        528usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_properties_view_api),
            "::",
            stringify!(popup_pick_with_categories)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tree_view_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tree_view_children_t {
    pub children: *const tm_tt_id_t,
    pub child_count: u32,
    pub property: u32,
    pub aspect_reference_type: u32,
    pub _padding_29: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_tree_view_children_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tree_view_children_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_tree_view_children_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tree_view_children_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tree_view_children_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_children_t>())).children as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_children_t),
            "::",
            stringify!(children)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_children_t>())).child_count as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_children_t),
            "::",
            stringify!(child_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_children_t>())).property as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_children_t),
            "::",
            stringify!(property)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_children_t>())).aspect_reference_type as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_children_t),
            "::",
            stringify!(aspect_reference_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_children_t>()))._padding_29 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_children_t),
            "::",
            stringify!(_padding_29)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tree_view_aspect_i {
    pub setup: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *const tm_the_truth_o,
            root: tm_tt_id_t,
        ),
    >,
    pub context_menu: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            undo_stack: *mut tm_undo_stack_i,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            pos: tm_vec2_t,
            parent: *mut tm_tree_view_parent_t,
            object: tm_tt_id_t,
            object_property: u32,
        ),
    >,
    pub compute_node_properties: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            parent: *const tm_tree_view_parent_t,
            object: tm_tt_id_t,
            can_expand: *mut bool,
            can_select: *mut bool,
            can_drop: *mut bool,
            can_drag: *mut bool,
            expanded_key: *mut u64,
            ta: *mut tm_temp_allocator_i,
        ),
    >,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            ui: *mut tm_ui_o,
            uistyle: *mut tm_ui_style_t,
            object: tm_tt_id_t,
            tree_has_focus: bool,
            res: *mut tm_ui_tree_item_res_t,
            can_drop: bool,
        ),
    >,
    pub icon: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            object: tm_tt_id_t,
            rect: tm_rect_t,
            res: *mut tm_ui_tree_item_res_t,
        ) -> tm_rect_t,
    >,
    pub additional_elements: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            object: tm_tt_id_t,
            parent: *mut tm_tree_view_parent_t,
            rect: tm_rect_t,
            res: *mut tm_ui_tree_item_res_t,
            metrics: *mut tm_ui_tree_item_metrics_t,
        ),
    >,
    pub display_name: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            buffer: *mut ::std::os::raw::c_char,
            buffer_size: u32,
        ),
    >,
    pub tooltip: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            object: tm_tt_id_t,
        ),
    >,
    pub get_node_children: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            parent: *mut tm_tree_view_parent_t,
            object: tm_tt_id_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_tree_view_children_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_tree_view_aspect_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_tree_view_aspect_i>(),
        72usize,
        concat!("Size of: ", stringify!(tm_tree_view_aspect_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tree_view_aspect_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tree_view_aspect_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).setup as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(setup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).context_menu as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(context_menu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).compute_node_properties as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(compute_node_properties)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).ui as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).icon as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(icon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).additional_elements as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(additional_elements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).display_name as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(display_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).tooltip as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_aspect_i>())).get_node_children as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_aspect_i),
            "::",
            stringify!(get_node_children)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tree_view_setup_t {
    pub allocator: *mut tm_allocator_i,
    pub undo_stack: *mut tm_undo_stack_i,
    pub tt: *mut tm_the_truth_o,
    pub keyboard_interaction: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            ui: *mut tm_ui_o,
            is_first_responder: bool,
        ),
    >,
    pub toolbar: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            tree: *mut tm_tree_view_o,
            tt: *mut tm_the_truth_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            rect: tm_rect_t,
            is_first_responder: bool,
        ) -> tm_rect_t,
    >,
    pub root: tm_tt_id_t,
    pub cache_tree_heights: bool,
    pub _padding_103: [::std::os::raw::c_char; 7usize],
    pub state: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_tree_view_setup_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tree_view_setup_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_tree_view_setup_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tree_view_setup_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tree_view_setup_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_setup_t>())).allocator as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_setup_t>())).undo_stack as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(undo_stack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_setup_t>())).tt as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_setup_t>())).keyboard_interaction as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(keyboard_interaction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_setup_t>())).toolbar as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(toolbar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_setup_t>())).root as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(root)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_setup_t>())).cache_tree_heights as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(cache_tree_heights)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_setup_t>()))._padding_103 as *const _ as usize
        },
        49usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(_padding_103)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_setup_t>())).state as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_setup_t),
            "::",
            stringify!(state)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tree_view_ui_res_t {
    pub focus_changed: bool,
    pub _padding_114: [::std::os::raw::c_char; 7usize],
    pub focus: tm_tt_id_t,
    pub selection_changed: bool,
    pub focus_on_tree_background: bool,
    pub _padding_124: [::std::os::raw::c_char; 6usize],
}
#[test]
fn bindgen_test_layout_tm_tree_view_ui_res_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tree_view_ui_res_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_tree_view_ui_res_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tree_view_ui_res_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tree_view_ui_res_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_ui_res_t>())).focus_changed as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_ui_res_t),
            "::",
            stringify!(focus_changed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_ui_res_t>()))._padding_114 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_ui_res_t),
            "::",
            stringify!(_padding_114)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_ui_res_t>())).focus as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_ui_res_t),
            "::",
            stringify!(focus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_ui_res_t>())).selection_changed as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_ui_res_t),
            "::",
            stringify!(selection_changed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_ui_res_t>())).focus_on_tree_background as *const _
                as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_ui_res_t),
            "::",
            stringify!(focus_on_tree_background)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_ui_res_t>()))._padding_124 as *const _ as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_ui_res_t),
            "::",
            stringify!(_padding_124)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tree_view_parent_t {
    pub id: tm_tt_id_t,
    pub property: u32,
    pub aspect_reference_type: u32,
    pub parent: *mut tm_tree_view_parent_t,
    pub pr: u32,
    pub _padding_148: [::std::os::raw::c_char; 4usize],
    pub expanded_key: u64,
}
#[test]
fn bindgen_test_layout_tm_tree_view_parent_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tree_view_parent_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_tree_view_parent_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tree_view_parent_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tree_view_parent_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_parent_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_parent_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_parent_t>())).property as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_parent_t),
            "::",
            stringify!(property)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_parent_t>())).aspect_reference_type as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_parent_t),
            "::",
            stringify!(aspect_reference_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_parent_t>())).parent as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_parent_t),
            "::",
            stringify!(parent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_parent_t>())).pr as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_parent_t),
            "::",
            stringify!(pr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_parent_t>()))._padding_148 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_parent_t),
            "::",
            stringify!(_padding_148)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_parent_t>())).expanded_key as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_parent_t),
            "::",
            stringify!(expanded_key)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tree_view_api {
    pub create_tree_view: ::std::option::Option<
        unsafe extern "C" fn(setup: *const tm_tree_view_setup_t) -> *mut tm_tree_view_o,
    >,
    pub destroy_tree_view: ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o)>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            tree: *mut tm_tree_view_o,
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            rect: tm_rect_t,
        ) -> tm_tree_view_ui_res_t,
    >,
    pub property_group_object: ::std::option::Option<
        unsafe extern "C" fn(object: tm_tt_id_t, property: u32) -> tm_tt_id_t,
    >,
    pub set_expanded: ::std::option::Option<
        unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t, expanded: bool),
    >,
    pub is_expanded: ::std::option::Option<
        unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t) -> bool,
    >,
    pub select:
        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
    pub add_to_selection:
        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
    pub scroll_to_object:
        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
    pub deselect_all: ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o)>,
    pub rename:
        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
    pub get_sorted_subobjects: ::std::option::Option<
        unsafe extern "C" fn(
            tree: *const tm_tree_view_o,
            object: tm_tt_id_t,
            property: u32,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub selected_objects: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tree_view_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub get_root_object:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tree_view_o) -> tm_tt_id_t>,
    pub set_root_object:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tree_view_o, object: tm_tt_id_t)>,
    pub add_default_menu_items: ::std::option::Option<
        unsafe extern "C" fn(
            tree: *mut tm_tree_view_o,
            parent: *mut tm_tree_view_parent_t,
            object: tm_tt_id_t,
            object_property: u32,
            id_base: u64,
            items: *mut *mut tm_ui_menu_item_t,
            ta: *mut tm_temp_allocator_i,
        ),
    >,
    pub execute_menu_item: ::std::option::Option<
        unsafe extern "C" fn(
            tree: *mut tm_tree_view_o,
            parent: *mut tm_tree_view_parent_t,
            object: tm_tt_id_t,
            object_property: u32,
            id_base: u64,
            res: *const tm_ui_menu_result_t,
        ),
    >,
    pub set_empty_text: ::std::option::Option<
        unsafe extern "C" fn(tree: *mut tm_tree_view_o, text: *const ::std::os::raw::c_char),
    >,
    pub filter_nodes: ::std::option::Option<
        unsafe extern "C" fn(
            tree: *mut tm_tree_view_o,
            node_type: u64,
            text: *const ::std::os::raw::c_char,
            case_unsensitive: bool,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_tree_view_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_tree_view_api>(),
        152usize,
        concat!("Size of: ", stringify!(tm_tree_view_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tree_view_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tree_view_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).create_tree_view as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(create_tree_view)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).destroy_tree_view as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(destroy_tree_view)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).property_group_object as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(property_group_object)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).set_expanded as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(set_expanded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).is_expanded as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(is_expanded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).select as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(select)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).add_to_selection as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(add_to_selection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).scroll_to_object as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(scroll_to_object)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).deselect_all as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(deselect_all)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).rename as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(rename)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).get_sorted_subobjects as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(get_sorted_subobjects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).selected_objects as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(selected_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).get_root_object as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(get_root_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).set_root_object as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(set_root_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).add_default_menu_items as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(add_default_menu_items)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tree_view_api>())).execute_menu_item as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(execute_menu_item)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).set_empty_text as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(set_empty_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tree_view_api>())).filter_nodes as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tree_view_api),
            "::",
            stringify!(filter_nodes)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_popup_item_picker_t {
    pub id: u64,
    pub pos: tm_vec2_t,
    pub search_text: *mut ::std::os::raw::c_char,
    pub search_text_len: u32,
    pub _padding_21: [::std::os::raw::c_char; 4usize],
    pub strings: *const *const ::std::os::raw::c_char,
    pub num_strings: u32,
    pub _padding_26: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_popup_item_picker_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_popup_item_picker_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_popup_item_picker_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_popup_item_picker_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_popup_item_picker_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>())).pos as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>())).search_text as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(search_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>())).search_text_len as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(search_text_len)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>()))._padding_21 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(_padding_21)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>())).strings as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(strings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>())).num_strings as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(num_strings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_t>()))._padding_26 as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_t),
            "::",
            stringify!(_padding_26)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_category_popup_item_picker_t {
    pub id: u64,
    pub pos: tm_vec2_t,
    pub search_text: *mut ::std::os::raw::c_char,
    pub search_text_len: u32,
    pub _padding_36: [::std::os::raw::c_char; 4usize],
    pub strings: *const *const ::std::os::raw::c_char,
    pub categories: *const *const ::std::os::raw::c_char,
    pub num_strings: u32,
    pub _padding_42: [::std::os::raw::c_char; 4usize],
    pub expanded: *mut tm_set_t,
}
#[test]
fn bindgen_test_layout_tm_ui_category_popup_item_picker_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_category_popup_item_picker_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_ui_category_popup_item_picker_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_category_popup_item_picker_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_ui_category_popup_item_picker_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).id as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).pos as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).search_text as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(search_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).search_text_len
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(search_text_len)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>()))._padding_36 as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(_padding_36)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).strings as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(strings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).categories as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(categories)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).num_strings as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(num_strings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>()))._padding_42 as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(_padding_42)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_category_popup_item_picker_t>())).expanded as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_category_popup_item_picker_t),
            "::",
            stringify!(expanded)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_ui_popup_asset_picker_t {
    pub id: u64,
    pub pos: tm_vec2_t,
    pub search_text: *mut ::std::os::raw::c_char,
    pub search_text_len: u32,
    pub _padding_54: [::std::os::raw::c_char; 4usize],
    pub tt: *mut tm_the_truth_o,
    pub asset_root: tm_tt_id_t,
    pub type_hash: u64,
}
#[test]
fn bindgen_test_layout_tm_ui_popup_asset_picker_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_popup_asset_picker_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_ui_popup_asset_picker_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_popup_asset_picker_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_popup_asset_picker_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>())).pos as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>())).search_text as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(search_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>())).search_text_len as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(search_text_len)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>()))._padding_54 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(_padding_54)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>())).tt as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>())).asset_root as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(asset_root)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_asset_picker_t>())).type_hash as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_asset_picker_t),
            "::",
            stringify!(type_hash)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_popup_item_picker_api {
    pub pick: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle_in: *const tm_ui_style_t,
            c: *const tm_ui_popup_item_picker_t,
            picked: *mut u32,
        ) -> bool,
    >,
    pub pick_with_categories: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle_in: *const tm_ui_style_t,
            c: *const tm_ui_category_popup_item_picker_t,
            picked: *mut u32,
        ) -> bool,
    >,
    pub pick_asset: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle_in: *const tm_ui_style_t,
            c: *const tm_ui_popup_asset_picker_t,
            asset: *mut tm_tt_id_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_ui_popup_item_picker_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_popup_item_picker_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ui_popup_item_picker_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_popup_item_picker_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_popup_item_picker_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_api>())).pick as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_api),
            "::",
            stringify!(pick)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_api>())).pick_with_categories as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_api),
            "::",
            stringify!(pick_with_categories)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_popup_item_picker_api>())).pick_asset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_popup_item_picker_api),
            "::",
            stringify!(pick_asset)
        )
    );
}
pub const TM_TT_PROP__CAMERA_COMPONENT__NEAR_PLANE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CAMERA_COMPONENT__FAR_PLANE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__CAMERA_COMPONENT__VERTICAL_FOV: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__CAMERA_COMPONENT__TRANSLATION_SPEED: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__CAMERA_COMPONENT__ROTATION_SPEED: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__CAMERA_COMPONENT__TRANSLATION_DAMPING: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_112 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_camera_component_t {
    pub near_plane: f32,
    pub far_plane: f32,
    pub vertical_fov: f32,
    pub translation_speed: f32,
    pub rotation_speed: f32,
    pub translation_damping: f32,
}
#[test]
fn bindgen_test_layout_tm_camera_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_camera_component_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_camera_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_camera_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_camera_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_component_t>())).near_plane as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_component_t),
            "::",
            stringify!(near_plane)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_camera_component_t>())).far_plane as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_component_t),
            "::",
            stringify!(far_plane)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_component_t>())).vertical_fov as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_component_t),
            "::",
            stringify!(vertical_fov)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_component_t>())).translation_speed as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_component_t),
            "::",
            stringify!(translation_speed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_component_t>())).rotation_speed as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_component_t),
            "::",
            stringify!(rotation_speed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_component_t>())).translation_damping as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_component_t),
            "::",
            stringify!(translation_damping)
        )
    );
}
pub const TM_TT_PROP__ENTITY__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__ENTITY__COMPONENTS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__ENTITY__CHILDREN: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_113 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_component_mask_t {
    pub bits: [u64; 16usize],
}
#[test]
fn bindgen_test_layout_tm_component_mask_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_component_mask_t>(),
        128usize,
        concat!("Size of: ", stringify!(tm_component_mask_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_component_mask_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_component_mask_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_mask_t>())).bits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_mask_t),
            "::",
            stringify!(bits)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_array_t {
    pub entities: *mut tm_entity_t,
    pub n: u32,
    pub _padding_79: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_entity_array_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_array_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_entity_array_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_array_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_array_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_array_t>())).entities as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_array_t),
            "::",
            stringify!(entities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_array_t>())).n as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_array_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_array_t>()))._padding_79 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_array_t),
            "::",
            stringify!(_padding_79)
        )
    );
}
#[repr(C)]
#[derive(Debug)]
pub struct tm_entity_set_t {
    pub total_entities: u32,
    pub num_arrays: u32,
    pub arrays: __IncompleteArrayField<tm_entity_array_t>,
}
#[test]
fn bindgen_test_layout_tm_entity_set_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_set_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_entity_set_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_set_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_set_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_set_t>())).total_entities as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_set_t),
            "::",
            stringify!(total_entities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_set_t>())).num_arrays as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_set_t),
            "::",
            stringify!(num_arrays)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_set_t>())).arrays as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_set_t),
            "::",
            stringify!(arrays)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_component_i {
    pub name: *const ::std::os::raw::c_char,
    pub bytes: u32,
    pub _padding_103: [::std::os::raw::c_char; 4usize],
    pub default_data: *const ::std::os::raw::c_void,
    pub manager: *mut tm_component_manager_o,
    pub components_created:
        ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o)>,
    pub load_asset: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            e: tm_entity_t,
            data: *mut ::std::os::raw::c_void,
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
        ) -> bool,
    >,
    pub asset_loaded: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            e: tm_entity_t,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub asset_loaded_sort_order: f64,
    pub asset_reloaded: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            e: tm_entity_t,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub add: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            e: tm_entity_t,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub remove: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            e: tm_entity_t,
            data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o)>,
    pub debug_draw: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            e: *mut tm_entity_t,
            data: *mut *const ::std::os::raw::c_void,
            n: u32,
            pbuf: *mut tm_primitive_drawer_buffer_t,
            vbuf: *mut tm_primitive_drawer_buffer_t,
            allocator: *mut tm_allocator_i,
            camera: *const tm_camera_t,
            viewport: tm_rect_t,
        ),
    >,
    pub debug_draw_settings: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_component_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_component_i>(),
        112usize,
        concat!("Size of: ", stringify!(tm_component_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_component_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_component_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).bytes as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(bytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>()))._padding_103 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(_padding_103)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).default_data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(default_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).manager as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_i>())).components_created as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(components_created)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).load_asset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(load_asset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).asset_loaded as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(asset_loaded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_i>())).asset_loaded_sort_order as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(asset_loaded_sort_order)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).asset_reloaded as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(asset_reloaded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).add as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(add)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).remove as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(remove)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).destroy as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_component_i>())).debug_draw as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(debug_draw)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_i>())).debug_draw_settings as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_i),
            "::",
            stringify!(debug_draw_settings)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_engine_update_array_t {
    pub entities: *mut tm_entity_t,
    pub components: [*mut ::std::os::raw::c_void; 16usize],
    pub component_bytes: [u32; 16usize],
    pub n: u32,
    pub _padding_171: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_engine_update_array_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_engine_update_array_t>(),
        208usize,
        concat!("Size of: ", stringify!(tm_engine_update_array_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_engine_update_array_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_engine_update_array_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_array_t>())).entities as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_array_t),
            "::",
            stringify!(entities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_array_t>())).components as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_array_t),
            "::",
            stringify!(components)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_array_t>())).component_bytes as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_array_t),
            "::",
            stringify!(component_bytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_update_array_t>())).n as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_array_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_array_t>()))._padding_171 as *const _ as usize
        },
        204usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_array_t),
            "::",
            stringify!(_padding_171)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_entity_blackboard_value_t {
    pub id: u64,
    pub __bindgen_anon_1: tm_entity_blackboard_value_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_entity_blackboard_value_t__bindgen_ty_1 {
    pub double_value: f64,
    pub ptr_value: *mut ::std::os::raw::c_void,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tm_entity_blackboard_value_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_blackboard_value_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_entity_blackboard_value_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_blackboard_value_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_entity_blackboard_value_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_blackboard_value_t__bindgen_ty_1>())).double_value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_blackboard_value_t__bindgen_ty_1),
            "::",
            stringify!(double_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_blackboard_value_t__bindgen_ty_1>())).ptr_value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_blackboard_value_t__bindgen_ty_1),
            "::",
            stringify!(ptr_value)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_entity_blackboard_value_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_blackboard_value_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_entity_blackboard_value_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_blackboard_value_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_blackboard_value_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_blackboard_value_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_blackboard_value_t),
            "::",
            stringify!(id)
        )
    );
}
#[repr(C)]
#[derive(Debug)]
pub struct tm_engine_update_set_t {
    pub engine: *const tm_engine_i,
    pub total_entities: u32,
    pub _padding_194: [::std::os::raw::c_char; 4usize],
    pub blackboard_start: *const tm_entity_blackboard_value_t,
    pub blackboard_end: *const tm_entity_blackboard_value_t,
    pub num_arrays: u32,
    pub _padding_198: [::std::os::raw::c_char; 4usize],
    pub arrays: __IncompleteArrayField<tm_engine_update_array_t>,
}
#[test]
fn bindgen_test_layout_tm_engine_update_set_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_engine_update_set_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_engine_update_set_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_engine_update_set_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_engine_update_set_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_update_set_t>())).engine as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(engine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_set_t>())).total_entities as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(total_entities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_set_t>()))._padding_194 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(_padding_194)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_set_t>())).blackboard_start as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(blackboard_start)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_set_t>())).blackboard_end as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(blackboard_end)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_set_t>())).num_arrays as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(num_arrays)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_engine_update_set_t>()))._padding_198 as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(_padding_198)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_update_set_t>())).arrays as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_update_set_t),
            "::",
            stringify!(arrays)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_engine_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_engine_i {
    pub name: *const ::std::os::raw::c_char,
    pub disabled: bool,
    pub _padding_215: [::std::os::raw::c_char; 3usize],
    pub num_components: u32,
    pub components: [u32; 16usize],
    pub excludes: [bool; 16usize],
    pub writes: [bool; 16usize],
    pub inst: *mut tm_engine_o,
    pub update: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_engine_o, data: *mut tm_engine_update_set_t),
    >,
    pub filter: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_engine_o,
            components: *const u32,
            num_components: u32,
            mask: *const tm_component_mask_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_engine_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_engine_i>(),
        136usize,
        concat!("Size of: ", stringify!(tm_engine_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_engine_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_engine_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).disabled as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>()))._padding_215 as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(_padding_215)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).num_components as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(num_components)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).components as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(components)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).excludes as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(excludes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).writes as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(writes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).inst as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).update as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_engine_i>())).filter as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_engine_i),
            "::",
            stringify!(filter)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_system_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_system_i {
    pub name: *const ::std::os::raw::c_char,
    pub disabled: bool,
    pub _padding_285: [::std::os::raw::c_char; 7usize],
    pub inst: *mut tm_entity_system_o,
    pub update: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, inst: *mut tm_entity_system_o),
    >,
}
#[test]
fn bindgen_test_layout_tm_entity_system_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_system_i>(),
        32usize,
        concat!("Size of: ", stringify!(tm_entity_system_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_system_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_system_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_system_i>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_system_i),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_system_i>())).disabled as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_system_i),
            "::",
            stringify!(disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_system_i>()))._padding_285 as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_system_i),
            "::",
            stringify!(_padding_285)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_system_i>())).inst as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_system_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_system_i>())).update as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_system_i),
            "::",
            stringify!(update)
        )
    );
}
pub type tm_entity_simulation_i =
    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>;
pub type tm_entity_create_component_i =
    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_hot_reload_component_i {
    pub name_hash: u64,
    pub reload: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, component: *mut tm_component_i),
    >,
}
#[test]
fn bindgen_test_layout_tm_entity_hot_reload_component_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_hot_reload_component_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_entity_hot_reload_component_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_hot_reload_component_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_entity_hot_reload_component_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_hot_reload_component_i>())).name_hash as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_hot_reload_component_i),
            "::",
            stringify!(name_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_hot_reload_component_i>())).reload as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_hot_reload_component_i),
            "::",
            stringify!(reload)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_hot_reload_system_i {
    pub name_hash: u64,
    pub reload: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, system: *mut tm_entity_system_i),
    >,
}
#[test]
fn bindgen_test_layout_tm_entity_hot_reload_system_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_hot_reload_system_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_entity_hot_reload_system_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_hot_reload_system_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_hot_reload_system_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_hot_reload_system_i>())).name_hash as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_hot_reload_system_i),
            "::",
            stringify!(name_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_hot_reload_system_i>())).reload as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_hot_reload_system_i),
            "::",
            stringify!(reload)
        )
    );
}
pub const tm_entity_create_components_TM_ENTITY_CREATE_COMPONENTS_NONE:
    tm_entity_create_components = 0;
pub const tm_entity_create_components_TM_ENTITY_CREATE_COMPONENTS_ALL: tm_entity_create_components =
    1;
pub const tm_entity_create_components_TM_ENTITY_CREATE_COMPONENTS_EDITOR:
    tm_entity_create_components = 2;
pub type tm_entity_create_components = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_entity_listener_i {
    pub man: *mut tm_component_manager_o,
    pub notify_e: tm_entity_t,
    pub notify_c: u32,
    pub _padding_344: [::std::os::raw::c_char; 4usize],
    pub notify: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            man: *mut tm_component_manager_o,
            e: tm_entity_t,
            c: *mut ::std::os::raw::c_void,
            notify_e: tm_entity_t,
            notify_c: *mut ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_entity_listener_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_listener_i>(),
        32usize,
        concat!("Size of: ", stringify!(tm_entity_listener_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_listener_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_listener_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_listener_i>())).man as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_listener_i),
            "::",
            stringify!(man)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_listener_i>())).notify_e as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_listener_i),
            "::",
            stringify!(notify_e)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_listener_i>())).notify_c as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_listener_i),
            "::",
            stringify!(notify_c)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_listener_i>()))._padding_344 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_listener_i),
            "::",
            stringify!(_padding_344)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_listener_i>())).notify as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_listener_i),
            "::",
            stringify!(notify)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_event_listener_i {
    pub inst: *mut ::std::os::raw::c_void,
    pub user_data: *mut ::std::os::raw::c_void,
    pub notify: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            ctx: *mut tm_entity_context_o,
            event: u64,
            e: tm_entity_t,
            event_data: *const ::std::os::raw::c_void,
            event_data_bytes: u32,
            user_data: *mut ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_entity_event_listener_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_event_listener_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_entity_event_listener_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_event_listener_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_event_listener_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_event_listener_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_event_listener_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_event_listener_i>())).user_data as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_event_listener_i),
            "::",
            stringify!(user_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_event_listener_i>())).notify as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_event_listener_i),
            "::",
            stringify!(notify)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_entity_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub create_context: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            tt: *mut tm_the_truth_o,
            create_components: tm_entity_create_components,
        ) -> *mut tm_entity_context_o,
    >,
    pub destroy_context: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub register_component: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, com: *const tm_component_i) -> u32,
    >,
    pub num_components:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> u32>,
    pub component: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, i: u32) -> *const tm_component_i,
    >,
    pub register_engine: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, engine: *const tm_engine_i),
    >,
    pub registered_engines: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, count: *mut u32) -> *mut tm_engine_i,
    >,
    pub register_system: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, system: *const tm_entity_system_i),
    >,
    pub registered_systems: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            count: *mut u32,
        ) -> *mut tm_entity_system_i,
    >,
    pub create_child_allocator: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            name: *const ::std::os::raw::c_char,
            a: *mut tm_allocator_i,
        ),
    >,
    pub destroy_child_allocator: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, a: *mut tm_allocator_i),
    >,
    pub the_truth: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_the_truth_o,
    >,
    pub unset_asset_root:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub create_entity:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> tm_entity_t>,
    pub batch_create_entity: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, es: *mut tm_entity_t, n: u32),
    >,
    pub create_entity_from_mask: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            mask: *const tm_component_mask_t,
        ) -> tm_entity_t,
    >,
    pub batch_create_entity_from_mask: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            mask: *const tm_component_mask_t,
            es: *mut tm_entity_t,
            n: u32,
        ),
    >,
    pub create_entity_from_asset: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, asset: tm_tt_id_t) -> tm_entity_t,
    >,
    pub batch_create_entity_from_asset: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            asset: tm_tt_id_t,
            es: *mut tm_entity_t,
            n: u32,
        ),
    >,
    pub destroy_entity:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t)>,
    pub batch_destroy_entity: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, es: *const tm_entity_t, n: u32),
    >,
    pub destroy_all_entities:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub queue_destroy_entities: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, es: *const tm_entity_t, n: u32),
    >,
    pub is_alive: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t) -> bool,
    >,
    pub num_entities:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> u32>,
    pub entities_matching: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            mask: *const tm_component_mask_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_entity_set_t,
    >,
    pub flatten_set: ::std::option::Option<
        unsafe extern "C" fn(entities: *mut tm_entity_t, set: *const tm_entity_set_t),
    >,
    pub lookup_component: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, name_hash: u64) -> u32,
    >,
    pub component_manager: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            component: u32,
        ) -> *mut tm_component_manager_o,
    >,
    pub create_component_mask: ::std::option::Option<
        unsafe extern "C" fn(components: *const u32, n: u32) -> tm_component_mask_t,
    >,
    pub component_mask: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
        ) -> *const tm_component_mask_t,
    >,
    pub add_component: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            component: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub get_component: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            component: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub get_component_by_hash: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            name_hash: u64,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub remove_component: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t, component: u32),
    >,
    pub call_remove_on_all_entities:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, component: u32)>,
    pub parent: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t) -> tm_entity_t,
    >,
    pub asset: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t) -> tm_tt_id_t,
    >,
    pub find_entity_from_asset: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, asset: tm_tt_id_t) -> tm_entity_t,
    >,
    pub resolve_asset_reference: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            asset: tm_tt_id_t,
        ) -> tm_entity_t,
    >,
    pub resolve_path: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            path: *const ::std::os::raw::c_char,
        ) -> tm_entity_t,
    >,
    pub propagate_asset_changes:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub propagate_listen_to: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t, object: tm_tt_id_t),
    >,
    pub set_blackboard_double: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64, value: f64),
    >,
    pub set_blackboard_ptr: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            id: u64,
            value: *mut ::std::os::raw::c_void,
        ),
    >,
    pub has_blackboard:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64) -> bool>,
    pub get_blackboard_double: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64, def: f64) -> f64,
    >,
    pub get_blackboard_ptr: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64) -> *mut ::std::os::raw::c_void,
    >,
    pub run_engine: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, engine: *const tm_engine_i),
    >,
    pub update: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub listen: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            c: u32,
            listener: *const tm_entity_listener_i,
        ),
    >,
    pub unlisten: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            c: u32,
            listener: *const tm_entity_listener_i,
        ),
    >,
    pub notify: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            component: u32,
            entities: *const tm_entity_t,
            num_entities: u32,
        ),
    >,
    pub listen_event: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            event: u64,
            listener: *const tm_entity_event_listener_i,
        ),
    >,
    pub unlisten_event: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            event: u64,
            listener: *const tm_entity_event_listener_i,
        ),
    >,
    pub unlisten_all: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, instance: *mut ::std::os::raw::c_void),
    >,
    pub notify_event: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            event: u64,
            e: *mut tm_entity_t,
            entity_stride: u32,
            data: *mut ::std::os::raw::c_void,
            data_stride: u32,
            n: u32,
        ),
    >,
    pub hot_reload: ::std::option::Option<unsafe extern "C" fn()>,
    pub set_debug_draw: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            component: u32,
            tag: u64,
            debug_draw: bool,
        ),
    >,
    pub has_debug_draw: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, component: u32, tag: u64) -> bool,
    >,
    pub clear_debug_draw:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub debug_draw: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            pbuf: *mut tm_primitive_drawer_buffer_t,
            vbuf: *mut tm_primitive_drawer_buffer_t,
            allocator: *mut tm_allocator_i,
            camera: *const tm_camera_t,
            viewport: tm_rect_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_entity_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_entity_api>(),
        504usize,
        concat!("Size of: ", stringify!(tm_entity_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_entity_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_entity_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).create_truth_types as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).create_context as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(create_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).destroy_context as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(destroy_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).register_component as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(register_component)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).num_components as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(num_components)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).component as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(component)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).register_engine as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(register_engine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).registered_engines as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(registered_engines)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).register_system as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(register_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).registered_systems as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(registered_systems)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).create_child_allocator as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(create_child_allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).destroy_child_allocator as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(destroy_child_allocator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).the_truth as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(the_truth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).unset_asset_root as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(unset_asset_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).create_entity as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(create_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).batch_create_entity as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(batch_create_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).create_entity_from_mask as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(create_entity_from_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).batch_create_entity_from_mask as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(batch_create_entity_from_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).create_entity_from_asset as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(create_entity_from_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).batch_create_entity_from_asset as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(batch_create_entity_from_asset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).destroy_entity as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(destroy_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).batch_destroy_entity as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(batch_destroy_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).destroy_all_entities as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(destroy_all_entities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).queue_destroy_entities as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(queue_destroy_entities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).is_alive as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(is_alive)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).num_entities as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(num_entities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).entities_matching as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(entities_matching)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).flatten_set as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(flatten_set)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).lookup_component as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(lookup_component)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).component_manager as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(component_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).create_component_mask as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(create_component_mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).component_mask as *const _ as usize },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(component_mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).add_component as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(add_component)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).get_component as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(get_component)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).get_component_by_hash as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(get_component_by_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).remove_component as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(remove_component)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).call_remove_on_all_entities as *const _
                as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(call_remove_on_all_entities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).parent as *const _ as usize },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(parent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).asset as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).find_entity_from_asset as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(find_entity_from_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).resolve_asset_reference as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(resolve_asset_reference)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).resolve_path as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(resolve_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).propagate_asset_changes as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(propagate_asset_changes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).propagate_listen_to as *const _ as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(propagate_listen_to)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).set_blackboard_double as *const _ as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(set_blackboard_double)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).set_blackboard_ptr as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(set_blackboard_ptr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).has_blackboard as *const _ as usize },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(has_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).get_blackboard_double as *const _ as usize
        },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(get_blackboard_double)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_entity_api>())).get_blackboard_ptr as *const _ as usize
        },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(get_blackboard_ptr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).run_engine as *const _ as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(run_engine)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).update as *const _ as usize },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).listen as *const _ as usize },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(listen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).unlisten as *const _ as usize },
        416usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(unlisten)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).notify as *const _ as usize },
        424usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(notify)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).listen_event as *const _ as usize },
        432usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(listen_event)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).unlisten_event as *const _ as usize },
        440usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(unlisten_event)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).unlisten_all as *const _ as usize },
        448usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(unlisten_all)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).notify_event as *const _ as usize },
        456usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(notify_event)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).hot_reload as *const _ as usize },
        464usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(hot_reload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).set_debug_draw as *const _ as usize },
        472usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(set_debug_draw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).has_debug_draw as *const _ as usize },
        480usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(has_debug_draw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).clear_debug_draw as *const _ as usize },
        488usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(clear_debug_draw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_entity_api>())).debug_draw as *const _ as usize },
        496usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_entity_api),
            "::",
            stringify!(debug_draw)
        )
    );
}
pub const TM_TT_PROP__LINK_COMPONENT__LOCAL_POSITION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__LINK_COMPONENT__LOCAL_ROTATION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__LINK_COMPONENT__LOCAL_SCALE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__LINK_COMPONENT__SCENE_TREE_NODE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_114 = ::std::os::raw::c_int;
pub const TM_LINK_COMPONENT_NOT_LINKED_TO_SCENE_TREE_NODE: ::std::os::raw::c_int = -1;
pub type _bindgen_ty_115 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_link_component_t {
    pub local_transform: tm_transform_t,
    pub parent: tm_entity_t,
    pub scene_tree_node_name: u64,
    pub scene_tree_node_idx: u32,
    pub _padding_45: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_link_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_link_component_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_link_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_link_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_link_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_link_component_t>())).local_transform as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_t),
            "::",
            stringify!(local_transform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_link_component_t>())).parent as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_t),
            "::",
            stringify!(parent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_link_component_t>())).scene_tree_node_name as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_t),
            "::",
            stringify!(scene_tree_node_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_link_component_t>())).scene_tree_node_idx as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_t),
            "::",
            stringify!(scene_tree_node_idx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_link_component_t>()))._padding_45 as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_t),
            "::",
            stringify!(_padding_45)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_link_component_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_link_component_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_link_component_manager_o,
    >,
    pub compose_transform: ::std::option::Option<
        unsafe extern "C" fn(
            world: *mut tm_transform_t,
            local: *const tm_transform_t,
            parent_world: *const tm_transform_t,
        ) -> *mut tm_transform_t,
    >,
    pub compute_local_transform: ::std::option::Option<
        unsafe extern "C" fn(
            local: *mut tm_transform_t,
            world: *const tm_transform_t,
            parent_world: *const tm_transform_t,
        ) -> *mut tm_transform_t,
    >,
    pub compute_parent_transform: ::std::option::Option<
        unsafe extern "C" fn(
            parent: *mut tm_transform_t,
            world: *const tm_transform_t,
            local: *const tm_transform_t,
        ) -> *mut tm_transform_t,
    >,
    pub transform: ::std::option::Option<
        unsafe extern "C" fn(man: *mut tm_link_component_manager_o, e: tm_entity_t),
    >,
    pub link: ::std::option::Option<
        unsafe extern "C" fn(
            man: *mut tm_link_component_manager_o,
            e: tm_entity_t,
            parent: tm_entity_t,
        ),
    >,
    pub unlink: ::std::option::Option<
        unsafe extern "C" fn(man: *mut tm_link_component_manager_o, e: tm_entity_t),
    >,
}
#[test]
fn bindgen_test_layout_tm_link_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_link_component_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_link_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_link_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_link_component_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_link_component_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_link_component_api>())).compose_transform as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_api),
            "::",
            stringify!(compose_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_link_component_api>())).compute_local_transform as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_api),
            "::",
            stringify!(compute_local_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_link_component_api>())).compute_parent_transform as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_api),
            "::",
            stringify!(compute_parent_transform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_link_component_api>())).transform as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_api),
            "::",
            stringify!(transform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_link_component_api>())).link as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_api),
            "::",
            stringify!(link)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_link_component_api>())).unlink as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_link_component_api),
            "::",
            stringify!(unlink)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_owner_component_t {
    pub num_children: u32,
    pub inst: u32,
}
#[test]
fn bindgen_test_layout_tm_owner_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_owner_component_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_owner_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_owner_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_owner_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_owner_component_t>())).num_children as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_t),
            "::",
            stringify!(num_children)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_owner_component_t>())).inst as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_t),
            "::",
            stringify!(inst)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_owner_component_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_owner_component_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_owner_component_manager_o,
    >,
    pub children: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *const tm_owner_component_manager_o,
            c: *const tm_owner_component_t,
            children: *mut tm_entity_t,
        ),
    >,
    pub add_children: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_owner_component_manager_o,
            c: *mut tm_owner_component_t,
            e: *const tm_entity_t,
            n: u32,
        ),
    >,
    pub remove_children: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_owner_component_manager_o,
            c: *mut tm_owner_component_t,
            e: *const tm_entity_t,
            n: u32,
        ),
    >,
    pub remove_all_children: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_owner_component_manager_o,
            c: *mut tm_owner_component_t,
        ),
    >,
    pub descendants: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *const tm_owner_component_manager_o,
            c: *const tm_owner_component_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_entity_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_owner_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_owner_component_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_owner_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_owner_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_owner_component_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_owner_component_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_owner_component_api>())).children as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_api),
            "::",
            stringify!(children)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_owner_component_api>())).add_children as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_api),
            "::",
            stringify!(add_children)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_owner_component_api>())).remove_children as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_api),
            "::",
            stringify!(remove_children)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_owner_component_api>())).remove_all_children as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_api),
            "::",
            stringify!(remove_all_children)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_owner_component_api>())).descendants as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_owner_component_api),
            "::",
            stringify!(descendants)
        )
    );
}
pub const TM_TT_PROP__SCENE_TREE_COMPONENT__NODES: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SCENE_TREE_COMPONENT__NODE_NAMES: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_116 = ::std::os::raw::c_int;
pub const TM_SCENE_TREE_COMPONENT_ROOT_NODE_PARENT: ::std::os::raw::c_int = -1;
pub type _bindgen_ty_117 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_scene_tree_node_t {
    pub name: u64,
    pub parent_idx: u32,
    pub local_transform: tm_transform_t,
    pub _padding_41: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_scene_tree_node_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_scene_tree_node_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_scene_tree_node_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_scene_tree_node_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_scene_tree_node_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_scene_tree_node_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_scene_tree_node_t>())).parent_idx as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_t),
            "::",
            stringify!(parent_idx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_node_t>())).local_transform as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_t),
            "::",
            stringify!(local_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_node_t>()))._padding_41 as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_t),
            "::",
            stringify!(_padding_41)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_scene_tree_node_names_t {
    pub hash: u64,
    pub n: u32,
    pub _padding_59: [::std::os::raw::c_char; 4usize],
    pub node_names: *const u64,
}
#[test]
fn bindgen_test_layout_tm_scene_tree_node_names_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_scene_tree_node_names_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_scene_tree_node_names_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_scene_tree_node_names_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_scene_tree_node_names_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_scene_tree_node_names_t>())).hash as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_names_t),
            "::",
            stringify!(hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_scene_tree_node_names_t>())).n as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_names_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_node_names_t>()))._padding_59 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_names_t),
            "::",
            stringify!(_padding_59)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_node_names_t>())).node_names as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_node_names_t),
            "::",
            stringify!(node_names)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_scene_tree_component_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_scene_tree_component_api {
    pub setup_nodes: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_scene_tree_component_manager_o,
            st: *mut tm_scene_tree_component_t,
            nodes: *const tm_scene_tree_node_t,
            num_nodes: u32,
            debug_names: *const ::std::os::raw::c_char,
        ),
    >,
    pub node_names: ::std::option::Option<
        unsafe extern "C" fn(st: *const tm_scene_tree_component_t) -> tm_scene_tree_node_names_t,
    >,
    pub node_index_from_name: ::std::option::Option<
        unsafe extern "C" fn(
            component: *const tm_scene_tree_component_t,
            node_name: u64,
            not_found: u32,
        ) -> u32,
    >,
    pub world_matrices: ::std::option::Option<
        unsafe extern "C" fn(component: *const tm_scene_tree_component_t) -> *const tm_mat44_t,
    >,
    pub local_matrices: ::std::option::Option<
        unsafe extern "C" fn(component: *const tm_scene_tree_component_t) -> *const tm_mat44_t,
    >,
    pub local_transform: ::std::option::Option<
        unsafe extern "C" fn(
            component: *const tm_scene_tree_component_t,
            node_idx: u32,
        ) -> tm_transform_t,
    >,
    pub world_transform: ::std::option::Option<
        unsafe extern "C" fn(
            component: *const tm_scene_tree_component_t,
            node_idx: u32,
        ) -> tm_transform_t,
    >,
    pub set_local_transform: ::std::option::Option<
        unsafe extern "C" fn(
            component: *mut tm_scene_tree_component_t,
            node_idx: u32,
            t: *const tm_transform_t,
        ),
    >,
    pub set_local_matrix: ::std::option::Option<
        unsafe extern "C" fn(
            component: *mut tm_scene_tree_component_t,
            node_idx: u32,
            tm: *const tm_mat44_t,
        ),
    >,
    pub transform: ::std::option::Option<
        unsafe extern "C" fn(
            st: *mut tm_scene_tree_component_t,
            trans: *const tm_transform_t,
            version: u64,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_scene_tree_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_scene_tree_component_api>(),
        80usize,
        concat!("Size of: ", stringify!(tm_scene_tree_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_scene_tree_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_scene_tree_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).setup_nodes as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(setup_nodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).node_names as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(node_names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).node_index_from_name as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(node_index_from_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).world_matrices as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(world_matrices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).local_matrices as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(local_matrices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).local_transform as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(local_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).world_transform as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(world_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).set_local_transform as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(set_local_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).set_local_matrix as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(set_local_matrix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_tree_component_api>())).transform as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_tree_component_api),
            "::",
            stringify!(transform)
        )
    );
}
pub const TM_TT_PROP__TAG_COMPONENT__TAGS: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_118 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tag_component_t {
    pub first_ti: u32,
}
#[test]
fn bindgen_test_layout_tm_tag_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tag_component_t>(),
        4usize,
        concat!("Size of: ", stringify!(tm_tag_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tag_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_tag_component_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_t>())).first_ti as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_t),
            "::",
            stringify!(first_ti)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tag_component_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tag_component_api {
    pub tag_assets: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_tt_id_t,
    >,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_tag_component_manager_o,
    >,
    pub add_tag: ::std::option::Option<
        unsafe extern "C" fn(tcm: *mut tm_tag_component_manager_o, e: tm_entity_t, tag: u64),
    >,
    pub remove_tag: ::std::option::Option<
        unsafe extern "C" fn(tcm: *mut tm_tag_component_manager_o, e: tm_entity_t, tag: u64),
    >,
    pub has_tag: ::std::option::Option<
        unsafe extern "C" fn(
            tcm: *const tm_tag_component_manager_o,
            e: tm_entity_t,
            tag: u64,
        ) -> bool,
    >,
    pub find_all: ::std::option::Option<
        unsafe extern "C" fn(
            tcm: *const tm_tag_component_manager_o,
            tag: u64,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_entity_t,
    >,
    pub find_first: ::std::option::Option<
        unsafe extern "C" fn(tcm: *const tm_tag_component_manager_o, tag: u64) -> tm_entity_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_tag_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_tag_component_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_tag_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tag_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tag_component_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_api>())).tag_assets as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_api),
            "::",
            stringify!(tag_assets)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_api>())).create as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_api>())).add_tag as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_api),
            "::",
            stringify!(add_tag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_api>())).remove_tag as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_api),
            "::",
            stringify!(remove_tag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_api>())).has_tag as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_api),
            "::",
            stringify!(has_tag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_api>())).find_all as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_api),
            "::",
            stringify!(find_all)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tag_component_api>())).find_first as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tag_component_api),
            "::",
            stringify!(find_first)
        )
    );
}
pub const TM_TT_PROP__TRANSFORM_COMPONENT__POSITION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__TRANSFORM_COMPONENT__ROTATION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__TRANSFORM_COMPONENT__SCALE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_119 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_transform_component_t {
    pub tm: tm_transform_t,
    pub version: u32,
}
#[test]
fn bindgen_test_layout_tm_transform_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_transform_component_t>(),
        44usize,
        concat!("Size of: ", stringify!(tm_transform_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_transform_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_transform_component_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_transform_component_t>())).tm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_transform_component_t),
            "::",
            stringify!(tm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_transform_component_t>())).version as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_transform_component_t),
            "::",
            stringify!(version)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_transform_component_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub create: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
}
#[test]
fn bindgen_test_layout_tm_transform_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_transform_component_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_transform_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_transform_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_transform_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_transform_component_api>())).create_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_transform_component_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_transform_component_api>())).create as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_transform_component_api),
            "::",
            stringify!(create)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_window_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gameplay_context_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_scene_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gameplay_state_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_gameplay_context_t {
    pub state: *mut tm_gameplay_state_o,
    pub dt: f32,
    pub time: f32,
    pub allocator: *mut tm_allocator_i,
    pub entity_ctx: *mut tm_entity_context_o,
    pub ui: *mut tm_ui_o,
    pub uistyle: *mut tm_ui_style_t,
    pub rect: tm_rect_t,
    pub window: *mut tm_window_o,
    pub tt: *mut tm_the_truth_o,
    pub asset_root: tm_tt_id_t,
    pub physx_scene: *mut tm_physx_scene_o,
    pub octx: *mut tm_gameplay_context_o,
    pub initialized: bool,
    pub started: bool,
    pub running_in_editor: bool,
    pub _padding_75: [::std::os::raw::c_char; 5usize],
}
#[test]
fn bindgen_test_layout_tm_gameplay_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gameplay_context_t>(),
        112usize,
        concat!("Size of: ", stringify!(tm_gameplay_context_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gameplay_context_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gameplay_context_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).state as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).dt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(dt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).time as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).allocator as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_context_t>())).entity_ctx as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(entity_ctx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).ui as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).uistyle as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(uistyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).rect as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).window as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(window)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).tt as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_context_t>())).asset_root as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(asset_root)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_context_t>())).physx_scene as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(physx_scene)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).octx as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(octx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_context_t>())).initialized as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(initialized)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_t>())).started as *const _ as usize },
        105usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(started)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_context_t>())).running_in_editor as *const _ as usize
        },
        106usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(running_in_editor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_context_t>()))._padding_75 as *const _ as usize
        },
        107usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_t),
            "::",
            stringify!(_padding_75)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gameplay_context_api {
    pub init: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_gameplay_context_t,
            parent_allocator: *mut tm_allocator_i,
            entity_ctx: *mut tm_entity_context_o,
        ),
    >,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t)>,
    pub update: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t)>,
}
#[test]
fn bindgen_test_layout_tm_gameplay_context_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_gameplay_context_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_gameplay_context_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gameplay_context_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gameplay_context_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_context_api>())).shutdown as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_api),
            "::",
            stringify!(shutdown)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_context_api>())).update as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_context_api),
            "::",
            stringify!(update)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gameplay_entity_api {
    pub get_transform: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_transform_t,
    >,
    pub set_transform: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_gameplay_context_t,
            e: tm_entity_t,
            tm: *const tm_transform_t,
        ),
    >,
    pub get_position: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
    >,
    pub set_position: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, pos: tm_vec3_t),
    >,
    pub get_rotation: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec4_t,
    >,
    pub set_rotation: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, rot: tm_vec4_t),
    >,
    pub get_scale: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
    >,
    pub set_scale: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, scl: tm_vec3_t),
    >,
    pub get_local_position: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
    >,
    pub get_local_transform: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_transform_t,
    >,
    pub set_local_transform: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_gameplay_context_t,
            e: tm_entity_t,
            tm: *const tm_transform_t,
        ),
    >,
    pub set_local_position: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, pos: tm_vec3_t),
    >,
    pub get_local_rotation: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec4_t,
    >,
    pub set_local_rotation: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, rot: tm_vec4_t),
    >,
    pub get_local_scale: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
    >,
    pub set_local_scale: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, scl: tm_vec3_t),
    >,
    pub add_tag: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, tag: u64),
    >,
    pub remove_tag: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, tag: u64),
    >,
    pub has_tag: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t, tag: u64) -> bool,
    >,
    pub find_entity_with_tag: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, tag: u64) -> tm_entity_t,
    >,
    pub find_entities_with_tag: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *const tm_gameplay_context_t,
            tag: u64,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_entity_t,
    >,
    pub root_entity: ::std::option::Option<
        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_entity_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_gameplay_entity_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_gameplay_entity_api>(),
        176usize,
        concat!("Size of: ", stringify!(tm_gameplay_entity_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gameplay_entity_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gameplay_entity_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_transform as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_transform as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_position as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_position as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_rotation as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_rotation as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_scale as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_scale as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_local_position as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_local_position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_local_transform as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_local_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_local_transform as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_local_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_local_position as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_local_position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_local_rotation as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_local_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_local_rotation as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_local_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).get_local_scale as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(get_local_scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).set_local_scale as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(set_local_scale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_entity_api>())).add_tag as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(add_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).remove_tag as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(remove_tag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_entity_api>())).has_tag as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(has_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).find_entity_with_tag as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(find_entity_with_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).find_entities_with_tag as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(find_entities_with_tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_entity_api>())).root_entity as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_entity_api),
            "::",
            stringify!(root_entity)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gameplay_physics_api {
    pub get_collision_types: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_gameplay_context_t,
            name_to_collision_type: *mut tm_hash_u64_to_id_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_gameplay_physics_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_gameplay_physics_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_gameplay_physics_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gameplay_physics_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gameplay_physics_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gameplay_physics_api>())).get_collision_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_physics_api),
            "::",
            stringify!(get_collision_types)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gameplay_api {
    pub context: *mut tm_gameplay_context_api,
    pub entity: *mut tm_gameplay_entity_api,
    pub physics: *mut tm_gameplay_physics_api,
    pub get_asset: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *const tm_gameplay_context_t,
            path: *const ::std::os::raw::c_char,
        ) -> tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_gameplay_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_gameplay_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_gameplay_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gameplay_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gameplay_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_api>())).context as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_api),
            "::",
            stringify!(context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_api>())).entity as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_api),
            "::",
            stringify!(entity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_api>())).physics as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_api),
            "::",
            stringify!(physics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gameplay_api>())).get_asset as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gameplay_api),
            "::",
            stringify!(get_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gltf_uri_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gltf_uri_i {
    pub inst: *mut tm_gltf_uri_o,
    pub size: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_gltf_uri_o, uri: *const ::std::os::raw::c_char) -> u64,
    >,
    pub load: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_gltf_uri_o,
            uri: *const ::std::os::raw::c_char,
            data: *mut u8,
            offset: u64,
            size: u64,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_gltf_uri_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_gltf_uri_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_gltf_uri_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gltf_uri_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gltf_uri_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gltf_uri_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gltf_uri_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gltf_uri_i>())).size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gltf_uri_i),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gltf_uri_i>())).load as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gltf_uri_i),
            "::",
            stringify!(load)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gltf_api {
    pub import: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            gltf: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
            uri_loader: *mut tm_gltf_uri_i,
            error: *mut tm_error_i,
        ) -> tm_tt_id_t,
    >,
    pub import_into: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            obj: *mut tm_the_truth_object_o,
            gltf: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
            uri_loader: *mut tm_gltf_uri_i,
            error: *mut tm_error_i,
        ) -> bool,
    >,
    pub migrate_from_gltf_to_dcc_asset:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
}
#[test]
fn bindgen_test_layout_tm_gltf_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_gltf_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_gltf_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gltf_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gltf_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gltf_api>())).import as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gltf_api),
            "::",
            stringify!(import)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gltf_api>())).import_into as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gltf_api),
            "::",
            stringify!(import_into)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gltf_api>())).migrate_from_gltf_to_dcc_asset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gltf_api),
            "::",
            stringify!(migrate_from_gltf_to_dcc_asset)
        )
    );
}
pub const TM_TT_PROP__SUBGRAPH_NODE__SUBGRAPH: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_120 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_graph_imported_node_t {
    pub position: tm_vec2_t,
    pub type_: u32,
    pub _padding_23: [::std::os::raw::c_char; 4usize],
    pub display_name: *const ::std::os::raw::c_char,
    pub width: f32,
    pub _padding_29: [::std::os::raw::c_char; 4usize],
    pub id: tm_tt_id_t,
    pub prototype_relation: u32,
    pub is_pure: bool,
    pub _padding_39: [::std::os::raw::c_char; 3usize],
}
#[test]
fn bindgen_test_layout_tm_graph_imported_node_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_imported_node_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_graph_imported_node_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_imported_node_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_imported_node_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_node_t>())).position as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_imported_node_t>())).type_ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_node_t>()))._padding_23 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(_padding_23)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_node_t>())).display_name as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(display_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_imported_node_t>())).width as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_node_t>()))._padding_29 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(_padding_29)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_imported_node_t>())).id as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_node_t>())).prototype_relation as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(prototype_relation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_node_t>())).is_pure as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(is_pure)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_node_t>()))._padding_39 as *const _ as usize
        },
        45usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_node_t),
            "::",
            stringify!(_padding_39)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_graph_imported_connection_t {
    pub from_node: u32,
    pub to_node: u32,
    pub from_connector: u32,
    pub to_connector: u32,
    pub id: tm_tt_id_t,
    pub prototype_relation: u32,
    pub _padding_63: [::std::os::raw::c_char; 4usize],
    pub in_conflict_with: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_graph_imported_connection_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_imported_connection_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_graph_imported_connection_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_imported_connection_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_imported_connection_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>())).from_node as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(from_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>())).to_node as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(to_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>())).from_connector as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(from_connector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>())).to_connector as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(to_connector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>())).id as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>())).prototype_relation
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(prototype_relation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>()))._padding_63 as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(_padding_63)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_connection_t>())).in_conflict_with as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_connection_t),
            "::",
            stringify!(in_conflict_with)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_graph_imported_data_t {
    pub to_node: u32,
    pub to_connector: u32,
    pub id: tm_tt_id_t,
    pub data_id: tm_tt_id_t,
    pub prototype_relation: u32,
    pub _padding_90: [::std::os::raw::c_char; 4usize],
    pub in_conflict_with: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_graph_imported_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_imported_data_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_graph_imported_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_imported_data_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_imported_data_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_data_t>())).to_node as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_data_t),
            "::",
            stringify!(to_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_data_t>())).to_connector as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_data_t),
            "::",
            stringify!(to_connector)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_imported_data_t>())).id as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_data_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_data_t>())).data_id as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_data_t),
            "::",
            stringify!(data_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_data_t>())).prototype_relation as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_data_t),
            "::",
            stringify!(prototype_relation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_data_t>()))._padding_90 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_data_t),
            "::",
            stringify!(_padding_90)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_data_t>())).in_conflict_with as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_data_t),
            "::",
            stringify!(in_conflict_with)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_graph_imported_comment_t {
    pub text: *const ::std::os::raw::c_char,
    pub position: tm_vec2_t,
    pub font_scale: f32,
    pub color: tm_vec3_t,
    pub id: tm_tt_id_t,
    pub prototype_relation: u32,
    pub _padding_119: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_graph_imported_comment_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_imported_comment_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_graph_imported_comment_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_imported_comment_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_imported_comment_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_comment_t>())).text as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_comment_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_comment_t>())).position as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_comment_t),
            "::",
            stringify!(position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_comment_t>())).font_scale as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_comment_t),
            "::",
            stringify!(font_scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_comment_t>())).color as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_comment_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_imported_comment_t>())).id as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_comment_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_comment_t>())).prototype_relation as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_comment_t),
            "::",
            stringify!(prototype_relation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_imported_comment_t>()))._padding_119 as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_imported_comment_t),
            "::",
            stringify!(_padding_119)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_import_result_t {
    pub nodes: *mut tm_graph_imported_node_t,
    pub connections: *mut tm_graph_imported_connection_t,
    pub datas: *mut tm_graph_imported_data_t,
    pub comments: *mut tm_graph_imported_comment_t,
    pub node_connectors: *mut tm_graph_node_connectors_t,
    pub node_graph_ids: *mut tm_tt_id_t,
    pub num_nodes: u32,
    pub num_connections: u32,
    pub num_datas: u32,
    pub num_comments: u32,
}
#[test]
fn bindgen_test_layout_tm_graph_import_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_import_result_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_graph_import_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_import_result_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_import_result_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_import_result_t>())).nodes as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(nodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).connections as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(connections)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_import_result_t>())).datas as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(datas)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).comments as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(comments)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).node_connectors as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(node_connectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).node_graph_ids as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(node_graph_ids)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).num_nodes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(num_nodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).num_connections as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(num_connections)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).num_datas as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(num_datas)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_import_result_t>())).num_comments as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_import_result_t),
            "::",
            stringify!(num_comments)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_importer_luts_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_importer_api {
    pub create_lookup_tables: ::std::option::Option<
        unsafe extern "C" fn(
            a: *mut tm_allocator_i,
            types: *const tm_graph_node_type_i,
            num_types: u32,
        ) -> *mut tm_graph_importer_luts_o,
    >,
    pub destroy_lookup_tables:
        ::std::option::Option<unsafe extern "C" fn(luts: *mut tm_graph_importer_luts_o)>,
    pub import_shallow: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            graph_id: tm_tt_id_t,
            types: *const tm_graph_node_type_i,
            num_types: u32,
            ta: *mut tm_temp_allocator_i,
            luts: *const tm_graph_importer_luts_o,
        ) -> tm_graph_import_result_t,
    >,
    pub import_flattened: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            graph_id: tm_tt_id_t,
            types: *const tm_graph_node_type_i,
            num_types: u32,
            ta: *mut tm_temp_allocator_i,
            luts: *const tm_graph_importer_luts_o,
        ) -> tm_graph_import_result_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_graph_importer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_importer_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_graph_importer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_importer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_importer_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_importer_api>())).create_lookup_tables as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_importer_api),
            "::",
            stringify!(create_lookup_tables)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_importer_api>())).destroy_lookup_tables as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_importer_api),
            "::",
            stringify!(destroy_lookup_tables)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_importer_api>())).import_shallow as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_importer_api),
            "::",
            stringify!(import_shallow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_importer_api>())).import_flattened as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_importer_api),
            "::",
            stringify!(import_flattened)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_interpreter_o {
    _unused: [u8; 0],
}
pub const TM_TT_PROP__GRAPH_COMPONENT__GRAPH: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_121 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_component_t {
    pub gr: *mut tm_graph_interpreter_o,
}
#[test]
fn bindgen_test_layout_tm_graph_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_component_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_graph_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_component_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_component_t>())).gr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_t),
            "::",
            stringify!(gr)
        )
    );
}
pub const TM_TT_PROP__ENTITY_GRAPH__GRAPH: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_122 = ::std::os::raw::c_int;
pub type tm_graph_component_compile_data_i = ::std::option::Option<
    unsafe extern "C" fn(
        gr: *mut tm_graph_interpreter_o,
        wire: u32,
        tt: *const tm_the_truth_o,
        data_id: tm_tt_id_t,
        to_type_hash: u64,
    ) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_component_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub create: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
    pub run_event:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, event: u64)>,
    pub tick_queues: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
}
#[test]
fn bindgen_test_layout_tm_graph_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_component_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_graph_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_api>())).create_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_component_api>())).create as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_api>())).run_event as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_api),
            "::",
            stringify!(run_event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_api>())).tick_queues as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_api),
            "::",
            stringify!(tick_queues)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_graph_component_compile_context_t {
    pub tt: *const tm_the_truth_o,
    pub entity_asset_id: tm_tt_id_t,
    pub graph_id: tm_tt_id_t,
    pub settings_id: tm_tt_id_t,
    pub connectors: *mut tm_graph_node_connectors_t,
}
#[test]
fn bindgen_test_layout_tm_graph_component_compile_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_component_compile_context_t>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(tm_graph_component_compile_context_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_component_compile_context_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_graph_component_compile_context_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_compile_context_t>())).tt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_compile_context_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_compile_context_t>())).entity_asset_id
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_compile_context_t),
            "::",
            stringify!(entity_asset_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_compile_context_t>())).graph_id as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_compile_context_t),
            "::",
            stringify!(graph_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_compile_context_t>())).settings_id as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_compile_context_t),
            "::",
            stringify!(settings_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_compile_context_t>())).connectors as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_compile_context_t),
            "::",
            stringify!(connectors)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_component_node_type_i {
    pub __bindgen_padding_0: [u64; 232usize],
    pub run: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_graph_interpreter_context_t)>,
    pub compile: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_graph_interpreter_context_t,
            compile_ctx: *mut tm_graph_component_compile_context_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_graph_component_node_type_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_component_node_type_i>(),
        1872usize,
        concat!("Size of: ", stringify!(tm_graph_component_node_type_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_component_node_type_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_component_node_type_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_node_type_i>())).run as *const _ as usize
        },
        1856usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_node_type_i),
            "::",
            stringify!(run)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_component_node_type_i>())).compile as *const _ as usize
        },
        1864usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_component_node_type_i),
            "::",
            stringify!(compile)
        )
    );
}
pub const TM_GRAPH_COMPONENT__STATIC_WIRE__SINK: ::std::os::raw::c_int = 0;
pub const TM_GRAPH_COMPONENT__STATIC_WIRE__ENTITY_CONTEXT: ::std::os::raw::c_int = 1;
pub const TM_GRAPH_COMPONENT__STATIC_WIRE__ENTITY: ::std::os::raw::c_int = 2;
pub const TM_GRAPH_COMPONENT__STATIC_WIRE__EVENT_DATA: ::std::os::raw::c_int = 3;
pub const TM_GRAPH_COMPONENT__STATIC_WIRE__USER_DATA: ::std::os::raw::c_int = 4;
pub const TM_GRAPH_COMPONENT__STATIC_WIRE__COUNT: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_123 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_interpreter_wire_content_t {
    pub n: u32,
    pub size: u32,
    pub data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_graph_interpreter_wire_content_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_interpreter_wire_content_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_graph_interpreter_wire_content_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_interpreter_wire_content_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_graph_interpreter_wire_content_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_wire_content_t>())).n as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_wire_content_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_wire_content_t>())).size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_wire_content_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_wire_content_t>())).data as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_wire_content_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_interpreter_context_t {
    pub interpreter: *mut tm_graph_interpreter_o,
    pub node: u32,
    pub _padding_55: [::std::os::raw::c_char; 4usize],
    pub node_type: *const tm_graph_node_type_i,
    pub wires: *const u32,
}
#[test]
fn bindgen_test_layout_tm_graph_interpreter_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_interpreter_context_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_graph_interpreter_context_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_interpreter_context_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_interpreter_context_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_context_t>())).interpreter as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_context_t),
            "::",
            stringify!(interpreter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_context_t>())).node as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_context_t),
            "::",
            stringify!(node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_context_t>()))._padding_55 as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_context_t),
            "::",
            stringify!(_padding_55)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_context_t>())).node_type as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_context_t),
            "::",
            stringify!(node_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_context_t>())).wires as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_context_t),
            "::",
            stringify!(wires)
        )
    );
}
pub type tm_graph_interpreter_run_node_f =
    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_graph_interpreter_context_t)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_interpreter_node_t {
    pub f: tm_graph_interpreter_run_node_f,
    pub wires_index: u32,
    pub _padding_86: [::std::os::raw::c_char; 4usize],
    pub node_type: *const tm_graph_node_type_i,
    pub dependencies_index: u32,
    pub _padding_97: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_graph_interpreter_node_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_interpreter_node_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_graph_interpreter_node_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_interpreter_node_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_interpreter_node_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_graph_interpreter_node_t>())).f as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_node_t),
            "::",
            stringify!(f)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_node_t>())).wires_index as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_node_t),
            "::",
            stringify!(wires_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_node_t>()))._padding_86 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_node_t),
            "::",
            stringify!(_padding_86)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_node_t>())).node_type as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_node_t),
            "::",
            stringify!(node_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_node_t>())).dependencies_index as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_node_t),
            "::",
            stringify!(dependencies_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_node_t>()))._padding_97 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_node_t),
            "::",
            stringify!(_padding_97)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_interpreter_api {
    pub create_graph_interpreter: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_graph_interpreter_o,
    >,
    pub destroy_graph_interpreter:
        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o)>,
    pub set_graph: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            nodes: *const tm_graph_interpreter_node_t,
            num_nodes: u32,
            num_wires: u32,
            node_wires: *mut u32,
            num_node_wires: u32,
            dependencies: *mut u32,
            num_dependencies: u32,
        ),
    >,
    pub run_node_at_index:
        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, node: u32)>,
    pub add_event_node: ::std::option::Option<
        unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, e: u64, node: u32),
    >,
    pub trigger_event:
        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, e: u64)>,
    pub trigger_wire:
        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, wire: u32)>,
    pub queue_wire: ::std::option::Option<
        unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, wire: u32, delay: f32),
    >,
    pub tick_queue:
        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, dt: f32)>,
    pub get_node_run_context: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            node: u32,
        ) -> tm_graph_interpreter_context_t,
    >,
    pub read_wire: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            wire: u32,
        ) -> tm_graph_interpreter_wire_content_t,
    >,
    pub read_wires: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            content: *mut tm_graph_interpreter_wire_content_t,
            wires: *const u32,
            n: u32,
        ),
    >,
    pub read_wires_indirect: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            content: *mut *mut tm_graph_interpreter_wire_content_t,
            wires: *const u32,
            n: u32,
        ),
    >,
    pub write_wire: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            wire: u32,
            n: u32,
            size: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub read_variable: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            variable: u64,
        ) -> tm_graph_interpreter_wire_content_t,
    >,
    pub write_variable: ::std::option::Option<
        unsafe extern "C" fn(
            gr: *mut tm_graph_interpreter_o,
            variable: u64,
            n: u32,
            size: u32,
        ) -> *mut ::std::os::raw::c_void,
    >,
}
#[test]
fn bindgen_test_layout_tm_graph_interpreter_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_interpreter_api>(),
        128usize,
        concat!("Size of: ", stringify!(tm_graph_interpreter_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_interpreter_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_interpreter_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).create_graph_interpreter
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(create_graph_interpreter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).destroy_graph_interpreter
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(destroy_graph_interpreter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).set_graph as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(set_graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).run_node_at_index as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(run_node_at_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).add_event_node as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(add_event_node)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).trigger_event as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(trigger_event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).trigger_wire as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(trigger_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).queue_wire as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(queue_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).tick_queue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(tick_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).get_node_run_context as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(get_node_run_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).read_wire as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(read_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).read_wires as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(read_wires)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).read_wires_indirect as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(read_wires_indirect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).write_wire as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(write_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).read_variable as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(read_variable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_interpreter_api>())).write_variable as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_interpreter_api),
            "::",
            stringify!(write_variable)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_request_header_t {
    pub name: *const ::std::os::raw::c_char,
    pub value: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_https_request_header_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_https_request_header_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_https_request_header_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_https_request_header_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_https_request_header_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_header_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_header_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_header_t>())).value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_header_t),
            "::",
            stringify!(value)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_request_fingerprint_t {
    pub data: [::std::os::raw::c_char; 20usize],
}
#[test]
fn bindgen_test_layout_tm_https_request_fingerprint_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_https_request_fingerprint_t>(),
        20usize,
        concat!("Size of: ", stringify!(tm_https_request_fingerprint_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_https_request_fingerprint_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_https_request_fingerprint_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_request_fingerprint_t>())).data as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_fingerprint_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_request_t {
    pub method: *const ::std::os::raw::c_char,
    pub host: *const ::std::os::raw::c_char,
    pub hostaddr: u32,
    pub port: u32,
    pub path: *const ::std::os::raw::c_char,
    pub num_headers: u32,
    pub _padding_79: [::std::os::raw::c_char; 4usize],
    pub headers: *const tm_https_request_header_t,
    pub body: *const ::std::os::raw::c_char,
    pub id: u64,
    pub fingerprint: tm_https_request_fingerprint_t,
    pub num_trust_anchors: u32,
    pub trust_anchors: *const ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_https_request_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_https_request_t>(),
        96usize,
        concat!("Size of: ", stringify!(tm_https_request_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_https_request_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_https_request_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).method as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(method)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).host as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(host)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).hostaddr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(hostaddr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).port as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(port)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).path as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(path)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).num_headers as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(num_headers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>()))._padding_79 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(_padding_79)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).headers as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(headers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).body as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(body)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).id as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_request_t>())).fingerprint as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(fingerprint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_request_t>())).num_trust_anchors as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(num_trust_anchors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_request_t>())).trust_anchors as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_request_t),
            "::",
            stringify!(trust_anchors)
        )
    );
}
pub const tm_https_status_TM_HTTPS_STATUS__IN_PROGRESS: tm_https_status = 0;
pub const tm_https_status_TM_HTTPS_STATUS__ERROR: tm_https_status = 1;
pub const tm_https_status_TM_HTTPS_STATUS__SUCCESS: tm_https_status = 2;
pub const tm_https_status_TM_HTTPS_STATUS__NOT_OPEN: tm_https_status = 3;
pub const tm_https_status_TM_HTTPS_STATUS__NOT_FOUND: tm_https_status = 4;
pub type tm_https_status = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_response_header_t {
    pub name: *const ::std::os::raw::c_char,
    pub name_hash: u64,
    pub value: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_https_response_header_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_https_response_header_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_https_response_header_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_https_response_header_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_https_response_header_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_response_header_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_header_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_response_header_t>())).name_hash as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_header_t),
            "::",
            stringify!(name_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_response_header_t>())).value as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_header_t),
            "::",
            stringify!(value)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_response_t {
    pub status: tm_https_status,
    pub _padding_161: [::std::os::raw::c_char; 4usize],
    pub error: *const ::std::os::raw::c_char,
    pub raw_header: *const ::std::os::raw::c_char,
    pub http_status_code: u32,
    pub _padding_179: [::std::os::raw::c_char; 4usize],
    pub http_status: *const ::std::os::raw::c_char,
    pub headers: *mut tm_https_response_header_t,
    pub content_length: u64,
    pub content_received: u64,
    pub body: *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_https_response_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_https_response_t>(),
        72usize,
        concat!("Size of: ", stringify!(tm_https_response_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_https_response_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_https_response_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_response_t>())).status as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_response_t>()))._padding_161 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(_padding_161)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_response_t>())).error as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(error)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_response_t>())).raw_header as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(raw_header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_response_t>())).http_status_code as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(http_status_code)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_response_t>()))._padding_179 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(_padding_179)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_response_t>())).http_status as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(http_status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_response_t>())).headers as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(headers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_response_t>())).content_length as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(content_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_response_t>())).content_received as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(content_received)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_response_t>())).body as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_response_t),
            "::",
            stringify!(body)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_progress_t {
    pub content_length: u64,
    pub content_received: u64,
    pub speed: f32,
    pub cancel: bool,
    pub _padding_225: [::std::os::raw::c_char; 3usize],
}
#[test]
fn bindgen_test_layout_tm_https_progress_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_https_progress_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_https_progress_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_https_progress_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_https_progress_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_progress_t>())).content_length as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_progress_t),
            "::",
            stringify!(content_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_progress_t>())).content_received as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_progress_t),
            "::",
            stringify!(content_received)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_progress_t>())).speed as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_progress_t),
            "::",
            stringify!(speed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_progress_t>())).cancel as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_progress_t),
            "::",
            stringify!(cancel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_https_progress_t>()))._padding_225 as *const _ as usize
        },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_progress_t),
            "::",
            stringify!(_padding_225)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_https_api {
    pub get: ::std::option::Option<
        unsafe extern "C" fn(
            req: *const tm_https_request_t,
            ta: *mut tm_temp_allocator_i,
            progress: *mut tm_https_progress_t,
        ) -> tm_https_response_t,
    >,
    pub get_to_file: ::std::option::Option<
        unsafe extern "C" fn(
            req: *const tm_https_request_t,
            filename: *const ::std::os::raw::c_char,
            ta: *mut tm_temp_allocator_i,
            progress: *mut tm_https_progress_t,
        ) -> tm_https_response_t,
    >,
    pub create:
        ::std::option::Option<unsafe extern "C" fn(parent: *mut tm_allocator_i) -> *mut tm_https_o>,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(https: *mut tm_https_o)>,
    pub open: ::std::option::Option<
        unsafe extern "C" fn(https: *mut tm_https_o, req: *mut tm_https_request_t),
    >,
    pub response: ::std::option::Option<
        unsafe extern "C" fn(
            https: *mut tm_https_o,
            req: *const tm_https_request_t,
        ) -> tm_https_response_t,
    >,
    pub close: ::std::option::Option<
        unsafe extern "C" fn(https: *mut tm_https_o, req: *mut tm_https_request_t),
    >,
}
#[test]
fn bindgen_test_layout_tm_https_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_https_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_https_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_https_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_https_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_api>())).get as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_api),
            "::",
            stringify!(get)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_api>())).get_to_file as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_api),
            "::",
            stringify!(get_to_file)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_api>())).create as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_api>())).destroy as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_api>())).open as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_api),
            "::",
            stringify!(open)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_api>())).response as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_api),
            "::",
            stringify!(response)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_https_api>())).close as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_https_api),
            "::",
            stringify!(close)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_openvr_submit_data_t {
    pub right_eye_bounds: tm_rect_t,
    pub right_eye_resource: u32,
    pub right_eye_resource_state: u16,
    pub _padding_20: [::std::os::raw::c_char; 2usize],
    pub left_eye_bounds: tm_rect_t,
    pub left_eye_resource: u32,
    pub left_eye_resource_state: u16,
    pub _padding_29: [::std::os::raw::c_char; 2usize],
}
#[test]
fn bindgen_test_layout_tm_openvr_submit_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_openvr_submit_data_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_openvr_submit_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_openvr_submit_data_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_openvr_submit_data_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>())).right_eye_bounds as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(right_eye_bounds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>())).right_eye_resource as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(right_eye_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>())).right_eye_resource_state as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(right_eye_resource_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>()))._padding_20 as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(_padding_20)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>())).left_eye_bounds as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(left_eye_bounds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>())).left_eye_resource as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(left_eye_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>())).left_eye_resource_state as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(left_eye_resource_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_submit_data_t>()))._padding_29 as *const _ as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_submit_data_t),
            "::",
            stringify!(_padding_29)
        )
    );
}
pub const TM_OPENVR_INVALID_CONTEXT: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_124 = ::std::os::raw::c_int;
pub const tm_openvr_eye_TM_OPENVR_EYE_LEFT: tm_openvr_eye = 0;
pub const tm_openvr_eye_TM_OPENVR_EYE_RIGHT: tm_openvr_eye = 1;
pub type tm_openvr_eye = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_openvr_api {
    pub load: ::std::option::Option<
        unsafe extern "C" fn(dll_path: *const ::std::os::raw::c_char) -> bool,
    >,
    pub unload: ::std::option::Option<unsafe extern "C" fn()>,
    pub init_context: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub shutdown_context: ::std::option::Option<unsafe extern "C" fn(context: u32)>,
    pub update: ::std::option::Option<unsafe extern "C" fn(context: u32) -> bool>,
    pub submit_vulkan: ::std::option::Option<
        unsafe extern "C" fn(
            context: u32,
            vulkan_backend: *mut tm_vulkan_backend_i,
            device_affinity: u32,
            data: *const tm_openvr_submit_data_t,
        ) -> bool,
    >,
    pub wanted_image_size: ::std::option::Option<
        unsafe extern "C" fn(context: u32, width: *mut u32, height: *mut u32),
    >,
    pub frustum_planes: ::std::option::Option<
        unsafe extern "C" fn(
            context: u32,
            eye: tm_openvr_eye,
            left: *mut f32,
            right: *mut f32,
            top: *mut f32,
            bottom: *mut f32,
        ),
    >,
    pub head_to_eye_transform: ::std::option::Option<
        unsafe extern "C" fn(context: u32, tm: *mut tm_mat44_t, eye: tm_openvr_eye),
    >,
    pub head_transform:
        ::std::option::Option<unsafe extern "C" fn(context: u32, tm: *mut tm_mat44_t)>,
}
#[test]
fn bindgen_test_layout_tm_openvr_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_openvr_api>(),
        80usize,
        concat!("Size of: ", stringify!(tm_openvr_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_openvr_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_openvr_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).load as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).unload as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(unload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).init_context as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(init_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).shutdown_context as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(shutdown_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).update as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).submit_vulkan as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(submit_vulkan)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).wanted_image_size as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(wanted_image_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).frustum_planes as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(frustum_planes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_openvr_api>())).head_to_eye_transform as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(head_to_eye_transform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_openvr_api>())).head_transform as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_openvr_api),
            "::",
            stringify!(head_transform)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_display_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_display_api {
    pub num_displays: ::std::option::Option<unsafe extern "C" fn() -> u32>,
    pub display: ::std::option::Option<unsafe extern "C" fn(index: u32) -> *mut tm_display_o>,
    pub os_display_rect:
        ::std::option::Option<unsafe extern "C" fn(display: *const tm_display_o) -> tm_rect_t>,
    pub os_display_dpi_scale_factor:
        ::std::option::Option<unsafe extern "C" fn(display: *const tm_display_o) -> f32>,
    pub refresh_display_enumeration: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_os_display_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_display_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_os_display_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_display_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_display_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_display_api>())).num_displays as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_display_api),
            "::",
            stringify!(num_displays)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_display_api>())).display as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_display_api),
            "::",
            stringify!(display)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_display_api>())).os_display_rect as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_display_api),
            "::",
            stringify!(os_display_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_display_api>())).os_display_dpi_scale_factor as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_display_api),
            "::",
            stringify!(os_display_dpi_scale_factor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_display_api>())).refresh_display_enumeration as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_display_api),
            "::",
            stringify!(refresh_display_enumeration)
        )
    );
}
pub const tm_os_window_style_TM_OS_WINDOW_STYLE_VISIBLE: tm_os_window_style = 1;
pub const tm_os_window_style_TM_OS_WINDOW_STYLE_CENTERED: tm_os_window_style = 2;
pub const tm_os_window_style_TM_OS_WINDOW_STYLE_BORDERLESS: tm_os_window_style = 4;
pub const tm_os_window_style_TM_OS_WINDOW_STYLE_DPI_SCALING_AWARE: tm_os_window_style = 8;
pub type tm_os_window_style = ::std::os::raw::c_int;
pub const tm_os_window_state_TM_OS_WINDOW_STATE_MAXIMIZE: tm_os_window_state = 0;
pub const tm_os_window_state_TM_OS_WINDOW_STATE_MINIMIZE: tm_os_window_state = 1;
pub const tm_os_window_state_TM_OS_WINDOW_STATE_NORMAL: tm_os_window_state = 2;
pub type tm_os_window_state = ::std::os::raw::c_int;
pub const tm_os_window_cursor_mode_TM_OS_WINDOW_CURSOR_MODE_VISIBLE_AND_FREE:
    tm_os_window_cursor_mode = 0;
pub const tm_os_window_cursor_mode_TM_OS_WINDOW_CURSOR_MODE_VISIBLE_AND_CONSTRAINED:
    tm_os_window_cursor_mode = 1;
pub const tm_os_window_cursor_mode_TM_OS_WINDOW_CURSOR_MODE_HIDDEN_AND_LOCKED:
    tm_os_window_cursor_mode = 2;
pub type tm_os_window_cursor_mode = ::std::os::raw::c_int;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_DEFAULT: tm_os_window_cursor = 0;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_POINTER: tm_os_window_cursor = 1;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_TEXT: tm_os_window_cursor = 2;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_MOVE: tm_os_window_cursor = 3;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_ALL_SCROLL: tm_os_window_cursor = 4;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_COL_RESIZE: tm_os_window_cursor = 5;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_ROW_RESIZE: tm_os_window_cursor = 6;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_EW_RESIZE: tm_os_window_cursor = 7;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_NS_RESIZE: tm_os_window_cursor = 8;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_NESW_RESIZE: tm_os_window_cursor = 9;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_NWSE_RESIZE: tm_os_window_cursor = 10;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_DRAG_AND_DROP: tm_os_window_cursor = 11;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_DRAG_NO_DROP: tm_os_window_cursor = 12;
pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_HIDE: tm_os_window_cursor = 13;
pub type tm_os_window_cursor = ::std::os::raw::c_int;
pub const tm_os_window_adjust_rect_TM_OS_WINDOW_ADJUST_RECT_TO_PIXELS: tm_os_window_adjust_rect = 0;
pub const tm_os_window_adjust_rect_TM_OS_WINDOW_ADJUST_RECT_TO_VIRTUAL: tm_os_window_adjust_rect =
    1;
pub type tm_os_window_adjust_rect = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_window_platform_data_win32_o {
    pub hwnd: u64,
    pub hinstance: u64,
}
#[test]
fn bindgen_test_layout_tm_window_platform_data_win32_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_window_platform_data_win32_o>(),
        16usize,
        concat!("Size of: ", stringify!(tm_window_platform_data_win32_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_window_platform_data_win32_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_window_platform_data_win32_o))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_window_platform_data_win32_o>())).hwnd as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_platform_data_win32_o),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_window_platform_data_win32_o>())).hinstance as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_platform_data_win32_o),
            "::",
            stringify!(hinstance)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_window_platform_data_macosx_o {
    pub nswindow: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_window_platform_data_macosx_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_window_platform_data_macosx_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_window_platform_data_macosx_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_window_platform_data_macosx_o>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_window_platform_data_macosx_o)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_window_platform_data_macosx_o>())).nswindow as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_platform_data_macosx_o),
            "::",
            stringify!(nswindow)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_window_platform_data_o {
    pub __bindgen_anon_1: tm_window_platform_data_o__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_window_platform_data_o__bindgen_ty_1 {
    pub win32: tm_window_platform_data_win32_o,
    pub macosx: tm_window_platform_data_macosx_o,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_tm_window_platform_data_o__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_window_platform_data_o__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_window_platform_data_o__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_window_platform_data_o__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_window_platform_data_o__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_window_platform_data_o__bindgen_ty_1>())).win32 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_platform_data_o__bindgen_ty_1),
            "::",
            stringify!(win32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_window_platform_data_o__bindgen_ty_1>())).macosx as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_platform_data_o__bindgen_ty_1),
            "::",
            stringify!(macosx)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_window_platform_data_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_window_platform_data_o>(),
        16usize,
        concat!("Size of: ", stringify!(tm_window_platform_data_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_window_platform_data_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_window_platform_data_o))
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_window_status_t {
    pub has_focus: bool,
    pub is_under_cursor: bool,
    pub is_minimized: bool,
    pub is_maximized: bool,
    pub is_hidden: bool,
}
#[test]
fn bindgen_test_layout_tm_window_status_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_window_status_t>(),
        5usize,
        concat!("Size of: ", stringify!(tm_window_status_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_window_status_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_window_status_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_window_status_t>())).has_focus as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_status_t),
            "::",
            stringify!(has_focus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_window_status_t>())).is_under_cursor as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_status_t),
            "::",
            stringify!(is_under_cursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_window_status_t>())).is_minimized as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_status_t),
            "::",
            stringify!(is_minimized)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_window_status_t>())).is_maximized as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_status_t),
            "::",
            stringify!(is_maximized)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_window_status_t>())).is_hidden as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_status_t),
            "::",
            stringify!(is_hidden)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_window_update_result_t {
    pub focus_changed: bool,
}
#[test]
fn bindgen_test_layout_tm_window_update_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_window_update_result_t>(),
        1usize,
        concat!("Size of: ", stringify!(tm_window_update_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_window_update_result_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_window_update_result_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_window_update_result_t>())).focus_changed as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_window_update_result_t),
            "::",
            stringify!(focus_changed)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_dropped_file_t {
    pub filename: *mut ::std::os::raw::c_char,
    pub position: tm_vec2_t,
}
#[test]
fn bindgen_test_layout_tm_os_dropped_file_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_dropped_file_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_os_dropped_file_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_dropped_file_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_dropped_file_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dropped_file_t>())).filename as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dropped_file_t),
            "::",
            stringify!(filename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_dropped_file_t>())).position as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_dropped_file_t),
            "::",
            stringify!(position)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_os_window_api {
    pub create_window: ::std::option::Option<
        unsafe extern "C" fn(
            title: *const ::std::os::raw::c_char,
            rect: tm_rect_t,
            style_flags: tm_os_window_style,
            center_display: *const tm_display_o,
        ) -> *mut tm_window_o,
    >,
    pub update_window: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o) -> tm_window_update_result_t,
    >,
    pub wait: ::std::option::Option<unsafe extern "C" fn()>,
    pub destroy_window: ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o)>,
    pub set_rect:
        ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o, rect: tm_rect_t)>,
    pub rect: ::std::option::Option<unsafe extern "C" fn(window: *const tm_window_o) -> tm_rect_t>,
    pub dpi_scale_factor:
        ::std::option::Option<unsafe extern "C" fn(window: *const tm_window_o) -> f32>,
    pub adjust_rect: ::std::option::Option<
        unsafe extern "C" fn(
            rect: tm_rect_t,
            dpi_scale_factor: f32,
            arg1: tm_os_window_adjust_rect,
        ) -> tm_rect_t,
    >,
    pub set_size: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o, width: f32, height: f32),
    >,
    pub set_client_titlebar_area: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o, left_margin: f32, right_margin: f32),
    >,
    pub has_user_requested_close:
        ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o, reset: bool) -> bool>,
    pub set_cursor_mode: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o, cursor_mode: tm_os_window_cursor_mode),
    >,
    pub cursor_mode: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o) -> tm_os_window_cursor_mode,
    >,
    pub set_cursor: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o, cursor_mode: tm_os_window_cursor),
    >,
    pub cursor: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o) -> tm_os_window_cursor,
    >,
    pub dropped_files: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o) -> *const tm_os_dropped_file_t,
    >,
    pub status:
        ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o) -> tm_window_status_t>,
    pub platform_data: ::std::option::Option<
        unsafe extern "C" fn(window: *const tm_window_o) -> tm_window_platform_data_o,
    >,
    pub window_from_point:
        ::std::option::Option<unsafe extern "C" fn(pos: tm_vec2_t) -> *mut tm_window_o>,
    pub set_focus: ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o)>,
    pub set_window_state: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o, state: tm_os_window_state),
    >,
    pub set_title: ::std::option::Option<
        unsafe extern "C" fn(window: *mut tm_window_o, title: *const ::std::os::raw::c_char),
    >,
}
#[test]
fn bindgen_test_layout_tm_os_window_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_os_window_api>(),
        176usize,
        concat!("Size of: ", stringify!(tm_os_window_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_os_window_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_os_window_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).create_window as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(create_window)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).update_window as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(update_window)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).wait as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(wait)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).destroy_window as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(destroy_window)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).set_rect as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).rect as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_window_api>())).dpi_scale_factor as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(dpi_scale_factor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).adjust_rect as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(adjust_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).set_size as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_window_api>())).set_client_titlebar_area as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_client_titlebar_area)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_window_api>())).has_user_requested_close as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(has_user_requested_close)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_window_api>())).set_cursor_mode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_cursor_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).cursor_mode as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(cursor_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).set_cursor as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_cursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).cursor as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(cursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).dropped_files as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(dropped_files)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).status as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).platform_data as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(platform_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_window_api>())).window_from_point as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(window_from_point)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).set_focus as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_focus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_os_window_api>())).set_window_state as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_window_state)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_os_window_api>())).set_title as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_os_window_api),
            "::",
            stringify!(set_title)
        )
    );
}
pub const TM_TT_PROP__PHYSICS_BODY__MASS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_BODY__CENTER_OF_MASS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_BODY__INERTIA_TENSOR: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__PHYSICS_BODY__INERTIA_TENSOR_ROTATION: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__PHYSICS_BODY__KINEMATIC: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__PHYSICS_BODY__LINEAR_DAMPING: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__PHYSICS_BODY__ANGULAR_DAMPING: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__PHYSICS_BODY__DISABLE_GRAVITY: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__PHYSICS_BODY__ENABLE_CCD: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_125 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_body_component_t {
    pub mass: f32,
    pub center_of_mass: tm_vec3_t,
    pub inertia_tensor: tm_vec3_t,
    pub inertia_tensor_rotation: tm_vec4_t,
    pub kinematic: bool,
    pub disable_gravity: bool,
    pub enable_ccd: bool,
    pub _padding_32: [::std::os::raw::c_char; 1usize],
    pub linear_damping: f32,
    pub angular_damping: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_body_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_body_component_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_physics_body_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_body_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_physics_body_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).mass as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(mass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).center_of_mass as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(center_of_mass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).inertia_tensor as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(inertia_tensor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).inertia_tensor_rotation
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(inertia_tensor_rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).kinematic as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(kinematic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).disable_gravity as *const _
                as usize
        },
        45usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(disable_gravity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).enable_ccd as *const _ as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(enable_ccd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>()))._padding_32 as *const _ as usize
        },
        47usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(_padding_32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).linear_damping as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(linear_damping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_component_t>())).angular_damping as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_component_t),
            "::",
            stringify!(angular_damping)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_body_compute_inertia_tensor_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_body_compute_inertia_tensor_i {
    pub inst: *mut tm_physics_body_compute_inertia_tensor_o,
    pub compute: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_physics_body_compute_inertia_tensor_o,
            tt: *mut tm_the_truth_o,
            body: tm_tt_id_t,
            mass: f32,
        ) -> tm_physics_body_component_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_physics_body_compute_inertia_tensor_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_body_compute_inertia_tensor_i>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_physics_body_compute_inertia_tensor_i)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_body_compute_inertia_tensor_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physics_body_compute_inertia_tensor_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_compute_inertia_tensor_i>())).inst as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_compute_inertia_tensor_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_body_compute_inertia_tensor_i>())).compute as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_body_compute_inertia_tensor_i),
            "::",
            stringify!(compute)
        )
    );
}
pub const TM_TT_PROP__PHYSICS_COLLISION__COLLIDES_WITH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_COLLISION__NOTIFY_TOUCH_FOUND_WITH: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_COLLISION__NOTIFY_TOUCH_PERSISTS_WITH: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__PHYSICS_COLLISION__NOTIFY_TOUCH_LOST_WITH: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_126 = ::std::os::raw::c_int;
pub const tm_physics_joint_TM_PHYSICS_JOINT__NONE: tm_physics_joint = 0;
pub const tm_physics_joint_TM_PHYSICS_JOINT__FIXED: tm_physics_joint = 1;
pub const tm_physics_joint_TM_PHYSICS_JOINT__SPHERICAL: tm_physics_joint = 2;
pub const tm_physics_joint_TM_PHYSICS_JOINT__REVOLUTE: tm_physics_joint = 3;
pub const tm_physics_joint_TM_PHYSICS_JOINT__PRISMATIC: tm_physics_joint = 4;
pub const tm_physics_joint_TM_PHYSICS_JOINT__DISTANCE: tm_physics_joint = 5;
pub const tm_physics_joint_TM_PHYSICS_JOINT__D6: tm_physics_joint = 6;
pub type tm_physics_joint = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__JOINT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BODY_0: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BODY_1: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_ENABLED: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_BOUNCE_THRESHOLD: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_RESTITUTION: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_STIFFNESS: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_DAMPING: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BREAK_FORCE: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BREAK_TORQUE: ::std::os::raw::c_int = 9;
pub type _bindgen_ty_127 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_JOINT__SPHERICAL__Y_ANGLE_LIMIT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_JOINT__SPHERICAL__Z_ANGLE_LIMIT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_128 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_JOINT__REVOLUTE__LOWER_LIMIT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_JOINT__REVOLUTE__UPPER_LIMIT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_129 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_JOINT__PRISMATIC__LOWER_LIMIT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_JOINT__PRISMATIC__UPPER_LIMIT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_130 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_JOINT__DISTANCE__MIN: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_JOINT__DISTANCE__MAX: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_131 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_joint_spherical_limits_t {
    pub y_angle: f32,
    pub z_angle: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_joint_spherical_limits_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_joint_spherical_limits_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physics_joint_spherical_limits_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_joint_spherical_limits_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physics_joint_spherical_limits_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_spherical_limits_t>())).y_angle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_spherical_limits_t),
            "::",
            stringify!(y_angle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_spherical_limits_t>())).z_angle as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_spherical_limits_t),
            "::",
            stringify!(z_angle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_joint_revolute_limits_t {
    pub lower: f32,
    pub upper: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_joint_revolute_limits_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_joint_revolute_limits_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physics_joint_revolute_limits_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_joint_revolute_limits_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physics_joint_revolute_limits_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_revolute_limits_t>())).lower as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_revolute_limits_t),
            "::",
            stringify!(lower)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_revolute_limits_t>())).upper as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_revolute_limits_t),
            "::",
            stringify!(upper)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_joint_prismatic_limits_t {
    pub lower: f32,
    pub upper: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_joint_prismatic_limits_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_joint_prismatic_limits_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physics_joint_prismatic_limits_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_joint_prismatic_limits_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physics_joint_prismatic_limits_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_prismatic_limits_t>())).lower as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_prismatic_limits_t),
            "::",
            stringify!(lower)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_prismatic_limits_t>())).upper as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_prismatic_limits_t),
            "::",
            stringify!(upper)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_joint_distance_limits_t {
    pub min: f32,
    pub max: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_joint_distance_limits_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_joint_distance_limits_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physics_joint_distance_limits_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_joint_distance_limits_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physics_joint_distance_limits_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_distance_limits_t>())).min as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_distance_limits_t),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_distance_limits_t>())).max as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_distance_limits_t),
            "::",
            stringify!(max)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physics_joint_component_t {
    pub joint_type: u32,
    pub _padding_99: [::std::os::raw::c_char; 4usize],
    pub body_0: tm_entity_t,
    pub body_1: tm_entity_t,
    pub limit_enabled: bool,
    pub _padding_102: [::std::os::raw::c_char; 3usize],
    pub __bindgen_anon_1: tm_physics_joint_component_t__bindgen_ty_1,
    pub limit_restitution: f32,
    pub limit_bounce_threshold: f32,
    pub limit_stiffness: f32,
    pub limit_damping: f32,
    pub break_force: f32,
    pub break_torque: f32,
    pub _padding_117: [::std::os::raw::c_char; 4usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_physics_joint_component_t__bindgen_ty_1 {
    pub spherical_limits: tm_physics_joint_spherical_limits_t,
    pub revolute_limits: tm_physics_joint_revolute_limits_t,
    pub prismatic_limits: tm_physics_joint_prismatic_limits_t,
    pub distance_limits: tm_physics_joint_distance_limits_t,
    _bindgen_union_align: [u32; 2usize],
}
#[test]
fn bindgen_test_layout_tm_physics_joint_component_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_joint_component_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_physics_joint_component_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_joint_component_t__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physics_joint_component_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t__bindgen_ty_1>())).spherical_limits
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t__bindgen_ty_1),
            "::",
            stringify!(spherical_limits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t__bindgen_ty_1>())).revolute_limits
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t__bindgen_ty_1),
            "::",
            stringify!(revolute_limits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t__bindgen_ty_1>())).prismatic_limits
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t__bindgen_ty_1),
            "::",
            stringify!(prismatic_limits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t__bindgen_ty_1>())).distance_limits
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t__bindgen_ty_1),
            "::",
            stringify!(distance_limits)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_physics_joint_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_joint_component_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_physics_joint_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_joint_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physics_joint_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).joint_type as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(joint_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>()))._padding_99 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(_padding_99)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).body_0 as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(body_0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).body_1 as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(body_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).limit_enabled as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(limit_enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>()))._padding_102 as *const _
                as usize
        },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(_padding_102)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).limit_restitution as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(limit_restitution)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).limit_bounce_threshold
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(limit_bounce_threshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).limit_stiffness as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(limit_stiffness)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).limit_damping as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(limit_damping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).break_force as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(break_force)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>())).break_torque as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(break_torque)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_joint_component_t>()))._padding_117 as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_joint_component_t),
            "::",
            stringify!(_padding_117)
        )
    );
}
pub const TM_TT_PROP__PHYSICS_MATERIAL__STATIC_FRICTION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_MATERIAL__DYNAMIC_FRICTION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_MATERIAL__RESTITUTION: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_132 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_MOVER_COMPONENT__HEIGHT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_MOVER_COMPONENT__RADIUS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_MOVER_COMPONENT__COLLISION: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_133 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physics_mover_component_t {
    pub height: f32,
    pub radius: f32,
    pub collision_id: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_physics_mover_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_mover_component_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_physics_mover_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_mover_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physics_mover_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_mover_component_t>())).height as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_mover_component_t),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_mover_component_t>())).radius as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_mover_component_t),
            "::",
            stringify!(radius)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_mover_component_t>())).collision_id as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_mover_component_t),
            "::",
            stringify!(collision_id)
        )
    );
}
pub const tm_physics_shape_TM_PHYSICS_SHAPE__NONE: tm_physics_shape = 0;
pub const tm_physics_shape_TM_PHYSICS_SHAPE__SPHERE: tm_physics_shape = 1;
pub const tm_physics_shape_TM_PHYSICS_SHAPE__CAPSULE: tm_physics_shape = 2;
pub const tm_physics_shape_TM_PHYSICS_SHAPE__PLANE: tm_physics_shape = 3;
pub const tm_physics_shape_TM_PHYSICS_SHAPE__BOX: tm_physics_shape = 4;
pub const tm_physics_shape_TM_PHYSICS_SHAPE__CONVEX: tm_physics_shape = 5;
pub const tm_physics_shape_TM_PHYSICS_SHAPE__MESH: tm_physics_shape = 6;
pub type tm_physics_shape = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__TYPE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__SHAPE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__MATERIAL: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__COLLISION: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__IS_TRIGGER: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_134 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_SHAPE__SPHERE__RADIUS: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_135 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_SHAPE__CAPSULE__RADIUS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_SHAPE__CAPSULE__HALF_HEIGHT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_136 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_SHAPE__BOX__HALF_EXTENT: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_137 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_SHAPE__CONVEX__MESH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_SHAPE__CONVEX__FORMAT: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_SHAPE__CONVEX__DATA: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_138 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PHYSICS_SHAPE__MESH__MESH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PHYSICS_SHAPE__MESH__FORMAT: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PHYSICS_SHAPE__MESH__DATA: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_139 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_sphere_t {
    pub radius: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_sphere_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_sphere_t>(),
        4usize,
        concat!("Size of: ", stringify!(tm_physics_shape_sphere_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_sphere_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_sphere_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_sphere_t>())).radius as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_sphere_t),
            "::",
            stringify!(radius)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_capsule_t {
    pub radius: f32,
    pub half_height: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_capsule_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_capsule_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physics_shape_capsule_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_capsule_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_capsule_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_capsule_t>())).radius as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_capsule_t),
            "::",
            stringify!(radius)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_capsule_t>())).half_height as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_capsule_t),
            "::",
            stringify!(half_height)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_box_t {
    pub half_extent: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_box_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_box_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_physics_shape_box_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_box_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_box_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_box_t>())).half_extent as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_box_t),
            "::",
            stringify!(half_extent)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_cooked_t {
    pub format: *const ::std::os::raw::c_char,
    pub data: *const u8,
    pub size: u64,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_cooked_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_cooked_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_physics_shape_cooked_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_cooked_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_cooked_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_cooked_t>())).format as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_cooked_t),
            "::",
            stringify!(format)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physics_shape_cooked_t>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_cooked_t),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physics_shape_cooked_t>())).size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_cooked_t),
            "::",
            stringify!(size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_material_t {
    pub static_friction: f32,
    pub dynamic_friction: f32,
    pub restitution: f32,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_material_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_material_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_physics_shape_material_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_material_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_material_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_material_t>())).static_friction as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_material_t),
            "::",
            stringify!(static_friction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_material_t>())).dynamic_friction as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_material_t),
            "::",
            stringify!(dynamic_friction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_material_t>())).restitution as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_material_t),
            "::",
            stringify!(restitution)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physics_shape_component_t {
    pub shape: u32,
    pub _padding_106: [::std::os::raw::c_char; 4usize],
    pub __bindgen_anon_1: tm_physics_shape_component_t__bindgen_ty_1,
    pub material: tm_physics_shape_material_t,
    pub _padding_116: [::std::os::raw::c_char; 4usize],
    pub collision_id: tm_tt_id_t,
    pub is_trigger: bool,
    pub _padding_119: [::std::os::raw::c_char; 7usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_physics_shape_component_t__bindgen_ty_1 {
    pub sphere: tm_physics_shape_sphere_t,
    pub capsule: tm_physics_shape_capsule_t,
    pub box_: tm_physics_shape_box_t,
    pub convex: tm_physics_shape_cooked_t,
    pub mesh: tm_physics_shape_cooked_t,
    _bindgen_union_align: [u64; 3usize],
}
#[test]
fn bindgen_test_layout_tm_physics_shape_component_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_component_t__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_physics_shape_component_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_component_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physics_shape_component_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t__bindgen_ty_1>())).sphere
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t__bindgen_ty_1),
            "::",
            stringify!(sphere)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t__bindgen_ty_1>())).capsule
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t__bindgen_ty_1),
            "::",
            stringify!(capsule)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t__bindgen_ty_1>())).box_ as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t__bindgen_ty_1),
            "::",
            stringify!(box_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t__bindgen_ty_1>())).convex
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t__bindgen_ty_1),
            "::",
            stringify!(convex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t__bindgen_ty_1>())).mesh as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t__bindgen_ty_1),
            "::",
            stringify!(mesh)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_physics_shape_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_component_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_physics_shape_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t>())).shape as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t),
            "::",
            stringify!(shape)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t>()))._padding_106 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t),
            "::",
            stringify!(_padding_106)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t>())).material as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t),
            "::",
            stringify!(material)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t>()))._padding_116 as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t),
            "::",
            stringify!(_padding_116)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t>())).collision_id as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t),
            "::",
            stringify!(collision_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t>())).is_trigger as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t),
            "::",
            stringify!(is_trigger)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_component_t>()))._padding_119 as *const _
                as usize
        },
        57usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_component_t),
            "::",
            stringify!(_padding_119)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_cooking_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_cooking_i {
    pub inst: *mut tm_physics_shape_cooking_o,
    pub cook_convex: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_physics_shape_cooking_o,
            tt: *mut tm_the_truth_o,
            convex: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub cook_mesh: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_physics_shape_cooking_o,
            tt: *mut tm_the_truth_o,
            mesh: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_cooking_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_cooking_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_physics_shape_cooking_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_cooking_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_cooking_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physics_shape_cooking_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_cooking_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_cooking_i>())).cook_convex as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_cooking_i),
            "::",
            stringify!(cook_convex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_cooking_i>())).cook_mesh as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_cooking_i),
            "::",
            stringify!(cook_mesh)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_drawing_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_drawing_i {
    pub inst: *mut tm_physics_shape_drawing_o,
    pub convex_lines: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_physics_shape_drawing_o,
            convex: *const tm_physics_shape_cooked_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_vec3_t,
    >,
    pub mesh_lines: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_physics_shape_drawing_o,
            mesh: *const tm_physics_shape_cooked_t,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_vec3_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_drawing_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_drawing_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_physics_shape_drawing_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_drawing_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_drawing_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physics_shape_drawing_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_drawing_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_drawing_i>())).convex_lines as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_drawing_i),
            "::",
            stringify!(convex_lines)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_drawing_i>())).mesh_lines as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_drawing_i),
            "::",
            stringify!(mesh_lines)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physics_shape_api {
    pub load_component_from_truth: ::std::option::Option<
        unsafe extern "C" fn(
            c: *mut tm_physics_shape_component_t,
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_physics_shape_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_physics_shape_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physics_shape_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physics_shape_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physics_shape_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physics_shape_api>())).load_component_from_truth as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physics_shape_api),
            "::",
            stringify!(load_component_from_truth)
        )
    );
}
pub type tm_physics_shape_geometry = ::std::option::Option<
    unsafe extern "C" fn(
        tt: *const tm_the_truth_o,
        id: tm_tt_id_t,
        ta: *mut tm_temp_allocator_i,
    ) -> tm_dcc_asset_geometry_t,
>;
pub const TM_TT_PROP__VELOCITY_COMPONENT__VELOCITY: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__VELOCITY_COMPONENT__ANGULAR_VELOCITY: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_140 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_velocity_component_t {
    pub velocity: tm_vec3_t,
    pub angular_velocity: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_velocity_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_velocity_component_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_velocity_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_velocity_component_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_velocity_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_velocity_component_t>())).velocity as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_velocity_component_t),
            "::",
            stringify!(velocity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_velocity_component_t>())).angular_velocity as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_velocity_component_t),
            "::",
            stringify!(angular_velocity)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_actor_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_shape_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_joint_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_mover_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_rigid_static_component_t {
    pub actor: *mut tm_physx_actor_o,
}
#[test]
fn bindgen_test_layout_tm_physx_rigid_static_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_rigid_static_component_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physx_rigid_static_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_rigid_static_component_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physx_rigid_static_component_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_rigid_static_component_t>())).actor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_rigid_static_component_t),
            "::",
            stringify!(actor)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_rigid_body_component_t {
    pub actor: *mut tm_physx_actor_o,
}
#[test]
fn bindgen_test_layout_tm_physx_rigid_body_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_rigid_body_component_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physx_rigid_body_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_rigid_body_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_rigid_body_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_rigid_body_component_t>())).actor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_rigid_body_component_t),
            "::",
            stringify!(actor)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physx_rigid_body_shape_component_t {
    pub body_entity: tm_entity_t,
    pub shape: *mut tm_physx_shape_o,
}
#[test]
fn bindgen_test_layout_tm_physx_rigid_body_shape_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_rigid_body_shape_component_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_physx_rigid_body_shape_component_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_rigid_body_shape_component_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_physx_rigid_body_shape_component_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_rigid_body_shape_component_t>())).body_entity
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_rigid_body_shape_component_t),
            "::",
            stringify!(body_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_rigid_body_shape_component_t>())).shape as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_rigid_body_shape_component_t),
            "::",
            stringify!(shape)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_joint_component_t {
    pub joint: *mut tm_physx_joint_o,
}
#[test]
fn bindgen_test_layout_tm_physx_joint_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_joint_component_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physx_joint_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_joint_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_joint_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_joint_component_t>())).joint as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_joint_component_t),
            "::",
            stringify!(joint)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_mover_component_t {
    pub mover: *mut tm_physx_mover_o,
    pub collision_idx: u32,
    pub velocity: tm_vec3_t,
    pub is_standing: bool,
    pub _padding_66: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_physx_mover_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_mover_component_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_physx_mover_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_mover_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_mover_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_mover_component_t>())).mover as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_mover_component_t),
            "::",
            stringify!(mover)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_mover_component_t>())).collision_idx as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_mover_component_t),
            "::",
            stringify!(collision_idx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_mover_component_t>())).velocity as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_mover_component_t),
            "::",
            stringify!(velocity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_mover_component_t>())).is_standing as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_mover_component_t),
            "::",
            stringify!(is_standing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_mover_component_t>()))._padding_66 as *const _ as usize
        },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_mover_component_t),
            "::",
            stringify!(_padding_66)
        )
    );
}
pub const TM_PHYSX_SCENE_FLAGS__EDITOR: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_141 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_raycast_flags_t {
    pub ignore_static: bool,
    pub ignore_dynamic: bool,
}
#[test]
fn bindgen_test_layout_tm_physx_raycast_flags_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_raycast_flags_t>(),
        2usize,
        concat!("Size of: ", stringify!(tm_physx_raycast_flags_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_raycast_flags_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_physx_raycast_flags_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_raycast_flags_t>())).ignore_static as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_flags_t),
            "::",
            stringify!(ignore_static)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_raycast_flags_t>())).ignore_dynamic as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_flags_t),
            "::",
            stringify!(ignore_dynamic)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physx_raycast_hit_t {
    pub pos: tm_vec3_t,
    pub normal: tm_vec3_t,
    pub distance: f32,
    pub _padding_97: [::std::os::raw::c_char; 4usize],
    pub body: tm_entity_t,
    pub shape: tm_entity_t,
}
#[test]
fn bindgen_test_layout_tm_physx_raycast_hit_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_raycast_hit_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_physx_raycast_hit_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_raycast_hit_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_raycast_hit_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_hit_t>())).pos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_hit_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_hit_t>())).normal as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_hit_t),
            "::",
            stringify!(normal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_hit_t>())).distance as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_hit_t),
            "::",
            stringify!(distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_raycast_hit_t>()))._padding_97 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_hit_t),
            "::",
            stringify!(_padding_97)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_hit_t>())).body as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_hit_t),
            "::",
            stringify!(body)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_hit_t>())).shape as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_hit_t),
            "::",
            stringify!(shape)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physx_raycast_t {
    pub has_block: bool,
    pub _padding_111: [::std::os::raw::c_char; 7usize],
    pub block: tm_physx_raycast_hit_t,
    pub num_touches: u32,
    pub _padding_118: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_physx_raycast_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_raycast_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_physx_raycast_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_raycast_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_raycast_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_t>())).has_block as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_t),
            "::",
            stringify!(has_block)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_t>()))._padding_111 as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_t),
            "::",
            stringify!(_padding_111)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_t>())).block as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_t),
            "::",
            stringify!(block)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_t>())).num_touches as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_t),
            "::",
            stringify!(num_touches)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_raycast_t>()))._padding_118 as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_raycast_t),
            "::",
            stringify!(_padding_118)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physx_overlap_hit_t {
    pub body: tm_entity_t,
    pub shape: tm_entity_t,
}
#[test]
fn bindgen_test_layout_tm_physx_overlap_hit_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_overlap_hit_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_physx_overlap_hit_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_overlap_hit_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_overlap_hit_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_overlap_hit_t>())).body as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_overlap_hit_t),
            "::",
            stringify!(body)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_overlap_hit_t>())).shape as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_overlap_hit_t),
            "::",
            stringify!(shape)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physx_on_contact_t {
    pub actor_0: tm_entity_t,
    pub actor_1: tm_entity_t,
    pub shape_0: tm_entity_t,
    pub shape_1: tm_entity_t,
    pub pos: tm_vec3_t,
    pub normal: tm_vec3_t,
    pub first_touch: bool,
    pub lost_touch: bool,
    pub _padding_158: [::std::os::raw::c_char; 6usize],
}
#[test]
fn bindgen_test_layout_tm_physx_on_contact_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_on_contact_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_physx_on_contact_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_on_contact_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_on_contact_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_on_contact_t>())).actor_0 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(actor_0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_on_contact_t>())).actor_1 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(actor_1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_on_contact_t>())).shape_0 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(shape_0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_on_contact_t>())).shape_1 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(shape_1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_on_contact_t>())).pos as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_on_contact_t>())).normal as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(normal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_contact_t>())).first_touch as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(first_touch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_contact_t>())).lost_touch as *const _ as usize
        },
        57usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(lost_touch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_contact_t>()))._padding_158 as *const _ as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_contact_t),
            "::",
            stringify!(_padding_158)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physx_on_trigger_t {
    pub trigger_entity: tm_entity_t,
    pub trigger_shape: tm_entity_t,
    pub touched_entity: tm_entity_t,
    pub touched_shape: tm_entity_t,
    pub lost_touch: bool,
    pub _padding_178: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_physx_on_trigger_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_on_trigger_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_physx_on_trigger_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_on_trigger_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_on_trigger_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_trigger_t>())).trigger_entity as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_trigger_t),
            "::",
            stringify!(trigger_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_trigger_t>())).trigger_shape as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_trigger_t),
            "::",
            stringify!(trigger_shape)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_trigger_t>())).touched_entity as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_trigger_t),
            "::",
            stringify!(touched_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_trigger_t>())).touched_shape as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_trigger_t),
            "::",
            stringify!(touched_shape)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_trigger_t>())).lost_touch as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_trigger_t),
            "::",
            stringify!(lost_touch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_on_trigger_t>()))._padding_178 as *const _ as usize
        },
        33usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_trigger_t),
            "::",
            stringify!(_padding_178)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_physx_on_joint_break_t {
    pub joint: tm_entity_t,
}
#[test]
fn bindgen_test_layout_tm_physx_on_joint_break_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_on_joint_break_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_physx_on_joint_break_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_on_joint_break_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_on_joint_break_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_on_joint_break_t>())).joint as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_on_joint_break_t),
            "::",
            stringify!(joint)
        )
    );
}
pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__FORCE: tm_physx_force_flags = 0;
pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__IMPULSE: tm_physx_force_flags = 1;
pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__ACCELERATION: tm_physx_force_flags = 2;
pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__VELOCITY_CHANGE: tm_physx_force_flags = 3;
pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__CONTINUOUS: tm_physx_force_flags = 4;
pub type tm_physx_force_flags = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_physx_scene_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, flags: u32) -> *mut tm_physx_scene_o,
    >,
    pub update: ::std::option::Option<unsafe extern "C" fn(physx: *mut tm_physx_scene_o, dt: f32)>,
    pub visualize: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            a: *mut tm_allocator_i,
        ),
    >,
    pub raycast: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            from: tm_vec3_t,
            dir: tm_vec3_t,
            distance: f32,
            collision_id: tm_tt_id_t,
            flags: tm_physx_raycast_flags_t,
            touches: *mut tm_physx_raycast_hit_t,
            max_touches: u32,
        ) -> tm_physx_raycast_t,
    >,
    pub sweep: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            shape: *const tm_physics_shape_component_t,
            from: tm_vec3_t,
            rot: tm_vec4_t,
            dir: tm_vec3_t,
            distance: f32,
            collision_id: tm_tt_id_t,
            flags: tm_physx_raycast_flags_t,
            touches: *mut tm_physx_raycast_hit_t,
            max_touches: u32,
        ) -> tm_physx_raycast_t,
    >,
    pub overlap: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            shape: *const tm_physics_shape_component_t,
            pos: tm_vec3_t,
            rot: tm_vec4_t,
            collision_id: tm_tt_id_t,
            flags: tm_physx_raycast_flags_t,
            touches: *mut tm_physx_overlap_hit_t,
            max_touches: u32,
        ) -> u32,
    >,
    pub on_contact: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o) -> *mut tm_physx_on_contact_t,
    >,
    pub on_trigger: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o) -> *mut tm_physx_on_trigger_t,
    >,
    pub on_joint_break: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o) -> *mut tm_physx_on_joint_break_t,
    >,
    pub velocity: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> tm_vec3_t,
    >,
    pub set_velocity: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t, vel: tm_vec3_t),
    >,
    pub angular_velocity: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> tm_vec3_t,
    >,
    pub set_angular_velocity: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t, vel: tm_vec3_t),
    >,
    pub is_kinematic: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> bool,
    >,
    pub set_kinematic: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t, is_kinematic: bool),
    >,
    pub add_force: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            e: tm_entity_t,
            force: tm_vec3_t,
            flags: u32,
        ),
    >,
    pub add_torque: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            e: tm_entity_t,
            torque: tm_vec3_t,
            flags: u32,
        ),
    >,
    pub add_force_at: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            e: tm_entity_t,
            force: tm_vec3_t,
            pos: tm_vec3_t,
            flags: u32,
        ),
    >,
    pub push: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            e: tm_entity_t,
            vel: tm_vec3_t,
            mass: f32,
        ),
    >,
    pub push_at: ::std::option::Option<
        unsafe extern "C" fn(
            physx: *mut tm_physx_scene_o,
            e: tm_entity_t,
            vel: tm_vec3_t,
            mass: f32,
            pos: tm_vec3_t,
        ),
    >,
    pub break_joint:
        ::std::option::Option<unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t)>,
    pub is_joint_broken: ::std::option::Option<
        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_physx_scene_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_physx_scene_api>(),
        176usize,
        concat!("Size of: ", stringify!(tm_physx_scene_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_physx_scene_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_physx_scene_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).update as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).visualize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(visualize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).raycast as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(raycast)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).sweep as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(sweep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).overlap as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(overlap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).on_contact as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(on_contact)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).on_trigger as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(on_trigger)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_scene_api>())).on_joint_break as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(on_joint_break)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).velocity as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(velocity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).set_velocity as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(set_velocity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_scene_api>())).angular_velocity as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(angular_velocity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_scene_api>())).set_angular_velocity as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(set_angular_velocity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).is_kinematic as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(is_kinematic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_scene_api>())).set_kinematic as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(set_kinematic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).add_force as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(add_force)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).add_torque as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(add_torque)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).add_force_at as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(add_force_at)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).push as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(push)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).push_at as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(push_at)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_physx_scene_api>())).break_joint as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(break_joint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_physx_scene_api>())).is_joint_broken as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_physx_scene_api),
            "::",
            stringify!(is_joint_broken)
        )
    );
}
pub const TM_RENDERER_STATE_BLOCK_TYPE_TESSELLATION: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_STATE_BLOCK_TYPE_RASTER: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_STATE_BLOCK_TYPE_DEPTH_STENCIL: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_STATE_BLOCK_TYPE_TEXTURE_SAMPLER: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_STATE_BLOCK_TYPE_RENDER_TARGET_BLEND: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_STATE_BLOCK_TYPE_BLEND: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_STATE_BLOCK_TYPE_MULTI_SAMPLE: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_STATE_BLOCK_TYPE_MAX_STATE_BLOCK_TYPES: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_142 = ::std::os::raw::c_int;
pub const TM_RENDERER_VALUE_TYPE_BOOL: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_VALUE_TYPE_UINT32: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_VALUE_TYPE_FLOAT32: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_VALUE_TYPE_COMPARE_OP: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_VALUE_TYPE_CULL: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_VALUE_TYPE_FRONT_FACE: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_VALUE_TYPE_POLYGON_MODE: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_VALUE_TYPE_STENCIL_OP: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_VALUE_TYPE_FILTER: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_VALUE_TYPE_MIP_MODE: ::std::os::raw::c_int = 9;
pub const TM_RENDERER_VALUE_TYPE_ADDRESS_MODE: ::std::os::raw::c_int = 10;
pub const TM_RENDERER_VALUE_TYPE_BORDER_COLOR: ::std::os::raw::c_int = 11;
pub const TM_RENDERER_VALUE_TYPE_BLEND_FACTOR: ::std::os::raw::c_int = 12;
pub const TM_RENDERER_VALUE_TYPE_BLEND_OPERATION: ::std::os::raw::c_int = 13;
pub const TM_RENDERER_VALUE_TYPE_BLEND_WRITE_MASK: ::std::os::raw::c_int = 14;
pub const TM_RENDERER_VALUE_TYPE_LOGICAL_OPERATION: ::std::os::raw::c_int = 15;
pub const TM_RENDERER_VALUE_TYPE_STATE_BLOCK: ::std::os::raw::c_int = -16777216;
pub const TM_RENDERER_VALUE_TYPE_MAX_VALUE_TYPES: ::std::os::raw::c_int = -16777215;
pub type _bindgen_ty_143 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_blob_t {
    pub size: u64,
    pub data: *mut u8,
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_blob_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_blob_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_shader_blob_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_blob_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_shader_blob_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_shader_blob_t>())).size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_blob_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_shader_blob_t>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_blob_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_image_subresource_layers_t {
    pub first_layer: u16,
    pub layer_count: u16,
    pub first_mip: u16,
    pub mip_levels: u16,
}
#[test]
fn bindgen_test_layout_tm_renderer_image_subresource_layers_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_image_subresource_layers_t>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_image_subresource_layers_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_image_subresource_layers_t>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_image_subresource_layers_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_subresource_layers_t>())).first_layer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_subresource_layers_t),
            "::",
            stringify!(first_layer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_subresource_layers_t>())).layer_count
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_subresource_layers_t),
            "::",
            stringify!(layer_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_subresource_layers_t>())).first_mip as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_subresource_layers_t),
            "::",
            stringify!(first_mip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_subresource_layers_t>())).mip_levels
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_subresource_layers_t),
            "::",
            stringify!(mip_levels)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_image_offset_t {
    pub x: u16,
    pub y: u16,
    pub z: u16,
}
#[test]
fn bindgen_test_layout_tm_renderer_image_offset_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_image_offset_t>(),
        6usize,
        concat!("Size of: ", stringify!(tm_renderer_image_offset_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_image_offset_t>(),
        2usize,
        concat!("Alignment of ", stringify!(tm_renderer_image_offset_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_image_offset_t>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_offset_t),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_image_offset_t>())).y as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_offset_t),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_image_offset_t>())).z as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_offset_t),
            "::",
            stringify!(z)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_image_extent_t {
    pub width: u16,
    pub height: u16,
    pub depth: u16,
}
#[test]
fn bindgen_test_layout_tm_renderer_image_extent_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_image_extent_t>(),
        6usize,
        concat!("Size of: ", stringify!(tm_renderer_image_extent_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_image_extent_t>(),
        2usize,
        concat!("Alignment of ", stringify!(tm_renderer_image_extent_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_extent_t>())).width as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_extent_t),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_extent_t>())).height as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_extent_t),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_extent_t>())).depth as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_extent_t),
            "::",
            stringify!(depth)
        )
    );
}
pub const tm_renderer_queue_TM_RENDERER_QUEUE_GRAPHICS: tm_renderer_queue = 0;
pub const tm_renderer_queue_TM_RENDERER_QUEUE_COMPUTE: tm_renderer_queue = 1;
pub const tm_renderer_queue_TM_RENDERER_QUEUE_TRANSFER: tm_renderer_queue = 2;
pub type tm_renderer_queue = ::std::os::raw::c_int;
pub const tm_renderer_resource_load_op_TM_RENDERER_RESOURCE_LOAD_OP_LOAD:
    tm_renderer_resource_load_op = 0;
pub const tm_renderer_resource_load_op_TM_RENDERER_RESOURCE_LOAD_OP_CLEAR:
    tm_renderer_resource_load_op = 1;
pub const tm_renderer_resource_load_op_TM_RENDERER_RESOURCE_LOAD_OP_DISCARD:
    tm_renderer_resource_load_op = 2;
pub type tm_renderer_resource_load_op = ::std::os::raw::c_int;
pub const tm_renderer_resource_store_op_TM_RENDERER_RESOURCE_STORE_OP_STORE:
    tm_renderer_resource_store_op = 0;
pub const tm_renderer_resource_store_op_TM_RENDERER_RESOURCE_STORE_OP_DISCARD:
    tm_renderer_resource_store_op = 1;
pub type tm_renderer_resource_store_op = ::std::os::raw::c_int;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_VERTEX_INPUT:
    tm_renderer_resource_state = 1;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_RENDER_TARGET:
    tm_renderer_resource_state = 2;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_UAV: tm_renderer_resource_state = 4;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_RESOURCE:
    tm_renderer_resource_state = 8;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_VERTEX_SHADER:
    tm_renderer_resource_state = 16;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_HULL_SHADER:
    tm_renderer_resource_state = 32;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_DOMAIN_SHADER:
    tm_renderer_resource_state = 64;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_GEOMETRY_SHADER:
    tm_renderer_resource_state = 128;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_PIXEL_SHADER:
    tm_renderer_resource_state = 256;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_COMPUTE_SHADER:
    tm_renderer_resource_state = 512;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_COPY_SOURCE:
    tm_renderer_resource_state = 1024;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_COPY_DESTINATION:
    tm_renderer_resource_state = 2048;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_INDIRECT_ARGUMENT:
    tm_renderer_resource_state = 4096;
pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_PRESENT:
    tm_renderer_resource_state = 8192;
pub type tm_renderer_resource_state = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_command_buffer {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_render_pass_bind_render_target_t {
    pub resource: u32,
    pub aspect: u32,
    pub initial_state: u16,
    pub final_state: u16,
    pub load_op: u8,
    pub store_op: u8,
    pub stencil_load_op: u8,
    pub stencil_store_op: u8,
}
#[test]
fn bindgen_test_layout_tm_renderer_render_pass_bind_render_target_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_render_pass_bind_render_target_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_render_pass_bind_render_target_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_render_pass_bind_render_target_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>())).resource
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>())).aspect
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(aspect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>())).initial_state
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(initial_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>())).final_state
                as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(final_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>())).load_op
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(load_op)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>())).store_op
                as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(store_op)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>())).stencil_load_op
                as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(stencil_load_op)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_render_target_t>()))
                .stencil_store_op as *const _ as usize
        },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_render_target_t),
            "::",
            stringify!(stencil_store_op)
        )
    );
}
pub const TM_RENDERER_MAX_RENDER_TARGETS: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_144 = ::std::os::raw::c_int;
pub const TM_RENDERER_MAX_QUEUE_FENCES: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_145 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_scheduling_t {
    pub wait_queue_fences: [u32; 4usize],
    pub wait_device_affinity_masks: [u32; 4usize],
    pub num_wait_fences: u32,
    pub signal_queue_fence: u32,
    pub signal_device_affinity_mask: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_scheduling_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_scheduling_t>(),
        44usize,
        concat!("Size of: ", stringify!(tm_renderer_scheduling_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_scheduling_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_scheduling_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_scheduling_t>())).wait_queue_fences as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_scheduling_t),
            "::",
            stringify!(wait_queue_fences)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_scheduling_t>())).wait_device_affinity_masks
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_scheduling_t),
            "::",
            stringify!(wait_device_affinity_masks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_scheduling_t>())).num_wait_fences as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_scheduling_t),
            "::",
            stringify!(num_wait_fences)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_scheduling_t>())).signal_queue_fence as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_scheduling_t),
            "::",
            stringify!(signal_queue_fence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_scheduling_t>())).signal_device_affinity_mask
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_scheduling_t),
            "::",
            stringify!(signal_device_affinity_mask)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_render_pass_bind_t {
    pub device_affinity_mask: u32,
    pub render_targets: [tm_renderer_render_pass_bind_render_target_t; 8usize],
    pub depth_stencil_target: tm_renderer_render_pass_bind_render_target_t,
    pub scheduling: tm_renderer_scheduling_t,
}
#[test]
fn bindgen_test_layout_tm_renderer_render_pass_bind_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_render_pass_bind_t>(),
        192usize,
        concat!("Size of: ", stringify!(tm_renderer_render_pass_bind_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_render_pass_bind_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_render_pass_bind_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_t>())).device_affinity_mask
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_t>())).render_targets as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_t),
            "::",
            stringify!(render_targets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_t>())).depth_stencil_target
                as *const _ as usize
        },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_t),
            "::",
            stringify!(depth_stencil_target)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_render_pass_bind_t>())).scheduling as *const _
                as usize
        },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_render_pass_bind_t),
            "::",
            stringify!(scheduling)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_queue_bind_t {
    pub device_affinity_mask: u32,
    pub queue_family: u8,
    pub queue_index: u8,
    pub _padding_154: [::std::os::raw::c_char; 2usize],
    pub scheduling: tm_renderer_scheduling_t,
}
#[test]
fn bindgen_test_layout_tm_renderer_queue_bind_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_queue_bind_t>(),
        52usize,
        concat!("Size of: ", stringify!(tm_renderer_queue_bind_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_queue_bind_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_queue_bind_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_queue_bind_t>())).device_affinity_mask as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_queue_bind_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_queue_bind_t>())).queue_family as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_queue_bind_t),
            "::",
            stringify!(queue_family)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_queue_bind_t>())).queue_index as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_queue_bind_t),
            "::",
            stringify!(queue_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_queue_bind_t>()))._padding_154 as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_queue_bind_t),
            "::",
            stringify!(_padding_154)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_queue_bind_t>())).scheduling as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_queue_bind_t),
            "::",
            stringify!(scheduling)
        )
    );
}
pub const TM_RENDERER_MAX_VIEWPORTS_SCISSOR_RECTS: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_146 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_set_viewports_t {
    pub viewports: [tm_renderer_set_viewports_t__bindgen_ty_1; 8usize],
    pub num_viewports: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_set_viewports_t__bindgen_ty_1 {
    pub x: f32,
    pub y: f32,
    pub width: f32,
    pub height: f32,
    pub min_depth: f32,
    pub max_depth: f32,
}
#[test]
fn bindgen_test_layout_tm_renderer_set_viewports_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_set_viewports_t__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_set_viewports_t__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t__bindgen_ty_1>())).x as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t__bindgen_ty_1>())).y as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t__bindgen_ty_1>())).width as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t__bindgen_ty_1>())).height as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t__bindgen_ty_1>())).min_depth
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1),
            "::",
            stringify!(min_depth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t__bindgen_ty_1>())).max_depth
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t__bindgen_ty_1),
            "::",
            stringify!(max_depth)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_set_viewports_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_set_viewports_t>(),
        196usize,
        concat!("Size of: ", stringify!(tm_renderer_set_viewports_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_set_viewports_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_set_viewports_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t>())).viewports as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t),
            "::",
            stringify!(viewports)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_viewports_t>())).num_viewports as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_viewports_t),
            "::",
            stringify!(num_viewports)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_set_scissor_rects_t {
    pub rects: [tm_renderer_set_scissor_rects_t__bindgen_ty_1; 8usize],
    pub num_rects: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_set_scissor_rects_t__bindgen_ty_1 {
    pub x: i32,
    pub y: i32,
    pub width: u32,
    pub height: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_set_scissor_rects_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_set_scissor_rects_t__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_set_scissor_rects_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_set_scissor_rects_t__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_set_scissor_rects_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_scissor_rects_t__bindgen_ty_1>())).x as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_scissor_rects_t__bindgen_ty_1),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_scissor_rects_t__bindgen_ty_1>())).y as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_scissor_rects_t__bindgen_ty_1),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_scissor_rects_t__bindgen_ty_1>())).width
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_scissor_rects_t__bindgen_ty_1),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_scissor_rects_t__bindgen_ty_1>())).height
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_scissor_rects_t__bindgen_ty_1),
            "::",
            stringify!(height)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_set_scissor_rects_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_set_scissor_rects_t>(),
        132usize,
        concat!("Size of: ", stringify!(tm_renderer_set_scissor_rects_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_set_scissor_rects_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_set_scissor_rects_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_scissor_rects_t>())).rects as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_scissor_rects_t),
            "::",
            stringify!(rects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_scissor_rects_t>())).num_rects as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_scissor_rects_t),
            "::",
            stringify!(num_rects)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_begin_statistics_t {
    pub category: *const ::std::os::raw::c_char,
    pub name: *const ::std::os::raw::c_char,
    pub flags: u32,
    pub _padding_197: [::std::os::raw::c_char; 4usize],
    pub uid: u64,
    pub backend_data: [u32; 8usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_begin_statistics_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_begin_statistics_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_renderer_begin_statistics_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_begin_statistics_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_begin_statistics_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_begin_statistics_t>())).category as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_begin_statistics_t),
            "::",
            stringify!(category)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_begin_statistics_t>())).name as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_begin_statistics_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_begin_statistics_t>())).flags as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_begin_statistics_t),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_begin_statistics_t>()))._padding_197 as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_begin_statistics_t),
            "::",
            stringify!(_padding_197)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_begin_statistics_t>())).uid as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_begin_statistics_t),
            "::",
            stringify!(uid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_begin_statistics_t>())).backend_data as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_begin_statistics_t),
            "::",
            stringify!(backend_data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_end_statistics_t {
    pub uid: u64,
    pub backend_data: [u32; 8usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_end_statistics_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_end_statistics_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_renderer_end_statistics_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_end_statistics_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_end_statistics_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_end_statistics_t>())).uid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_end_statistics_t),
            "::",
            stringify!(uid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_end_statistics_t>())).backend_data as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_end_statistics_t),
            "::",
            stringify!(backend_data)
        )
    );
}
pub const tm_renderer_dispatch_type_TM_RENDERER_DISPATCH_TYPE_NORMAL: tm_renderer_dispatch_type = 0;
pub const tm_renderer_dispatch_type_TM_RENDERER_DISPATCH_TYPE_INDIRECT: tm_renderer_dispatch_type =
    1;
pub type tm_renderer_dispatch_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_dispatch_command_t {
    pub group_count: [u32; 3usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_dispatch_command_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_dispatch_command_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_renderer_dispatch_command_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_dispatch_command_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_dispatch_command_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_dispatch_command_t>())).group_count as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_dispatch_command_t),
            "::",
            stringify!(group_count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_dispatch_indirect_command_t {
    pub indirect_buffer: u32,
    pub _padding_226: [::std::os::raw::c_char; 4usize],
    pub offset: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_dispatch_indirect_command_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_dispatch_indirect_command_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_dispatch_indirect_command_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_dispatch_indirect_command_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_dispatch_indirect_command_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_dispatch_indirect_command_t>())).indirect_buffer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_dispatch_indirect_command_t),
            "::",
            stringify!(indirect_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_dispatch_indirect_command_t>()))._padding_226
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_dispatch_indirect_command_t),
            "::",
            stringify!(_padding_226)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_dispatch_indirect_command_t>())).offset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_dispatch_indirect_command_t),
            "::",
            stringify!(offset)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_renderer_compute_info_t {
    pub dispatch_type: u8,
    pub _padding_234: [::std::os::raw::c_char; 7usize],
    pub __bindgen_anon_1: tm_renderer_compute_info_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_renderer_compute_info_t__bindgen_ty_1 {
    pub dispatch: tm_renderer_dispatch_command_t,
    pub indirect: tm_renderer_dispatch_indirect_command_t,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_compute_info_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_compute_info_t__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_compute_info_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_compute_info_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_compute_info_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_compute_info_t__bindgen_ty_1>())).dispatch
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_compute_info_t__bindgen_ty_1),
            "::",
            stringify!(dispatch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_compute_info_t__bindgen_ty_1>())).indirect
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_compute_info_t__bindgen_ty_1),
            "::",
            stringify!(indirect)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_compute_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_compute_info_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_renderer_compute_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_compute_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_compute_info_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_compute_info_t>())).dispatch_type as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_compute_info_t),
            "::",
            stringify!(dispatch_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_compute_info_t>()))._padding_234 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_compute_info_t),
            "::",
            stringify!(_padding_234)
        )
    );
}
pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_TRIANGLE_LIST:
    tm_renderer_primitive_type = 0;
pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_LINE_LIST:
    tm_renderer_primitive_type = 1;
pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_POINT_LIST:
    tm_renderer_primitive_type = 2;
pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_MAX_TYPES:
    tm_renderer_primitive_type = 3;
pub type tm_renderer_primitive_type = ::std::os::raw::c_int;
pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_NON_INDEXED: tm_renderer_draw_type = 0;
pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_INDEXED: tm_renderer_draw_type = 1;
pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_NON_INDEXED_INDIRECT: tm_renderer_draw_type =
    2;
pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_INDEXED_INDIRECT: tm_renderer_draw_type = 3;
pub type tm_renderer_draw_type = ::std::os::raw::c_int;
pub const tm_renderer_index_type_TM_RENDERER_INDEX_TYPE_UINT16: tm_renderer_index_type = 0;
pub const tm_renderer_index_type_TM_RENDERER_INDEX_TYPE_UINT32: tm_renderer_index_type = 1;
pub type tm_renderer_index_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_draw_command_t {
    pub num_vertices: u32,
    pub num_instances: u32,
    pub first_vertex: u32,
    pub first_instance: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_draw_command_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_draw_command_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_draw_command_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_draw_command_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_draw_command_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_command_t>())).num_vertices as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_command_t),
            "::",
            stringify!(num_vertices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_command_t>())).num_instances as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_command_t),
            "::",
            stringify!(num_instances)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_command_t>())).first_vertex as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_command_t),
            "::",
            stringify!(first_vertex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_command_t>())).first_instance as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_command_t),
            "::",
            stringify!(first_instance)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_draw_indexed_command_t {
    pub num_indices: u32,
    pub num_instances: u32,
    pub first_index: u32,
    pub vertex_offset: i32,
    pub first_instance: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_draw_indexed_command_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_draw_indexed_command_t>(),
        20usize,
        concat!("Size of: ", stringify!(tm_renderer_draw_indexed_command_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_draw_indexed_command_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_draw_indexed_command_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indexed_command_t>())).num_indices as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indexed_command_t),
            "::",
            stringify!(num_indices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indexed_command_t>())).num_instances as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indexed_command_t),
            "::",
            stringify!(num_instances)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indexed_command_t>())).first_index as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indexed_command_t),
            "::",
            stringify!(first_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indexed_command_t>())).vertex_offset as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indexed_command_t),
            "::",
            stringify!(vertex_offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indexed_command_t>())).first_instance
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indexed_command_t),
            "::",
            stringify!(first_instance)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_draw_indirect_command_t {
    pub indirect_buffer: u32,
    pub _padding_306: [::std::os::raw::c_char; 4usize],
    pub offset: u64,
    pub stride: u32,
    pub num_draws: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_draw_indirect_command_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_draw_indirect_command_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_renderer_draw_indirect_command_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_draw_indirect_command_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_draw_indirect_command_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indirect_command_t>())).indirect_buffer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indirect_command_t),
            "::",
            stringify!(indirect_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indirect_command_t>()))._padding_306 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indirect_command_t),
            "::",
            stringify!(_padding_306)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indirect_command_t>())).offset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indirect_command_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indirect_command_t>())).stride as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indirect_command_t),
            "::",
            stringify!(stride)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_indirect_command_t>())).num_draws as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_indirect_command_t),
            "::",
            stringify!(num_draws)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_renderer_draw_call_info_t {
    pub __bindgen_anon_1: tm_renderer_draw_call_info_t__bindgen_ty_1,
    pub index_buffer: u32,
    pub primitive_type: u8,
    pub draw_type: u8,
    pub index_type: u8,
    pub _padding_337: [::std::os::raw::c_char; 1usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_renderer_draw_call_info_t__bindgen_ty_1 {
    pub non_indexed: tm_renderer_draw_command_t,
    pub indexed: tm_renderer_draw_indexed_command_t,
    pub indirect: tm_renderer_draw_indirect_command_t,
    _bindgen_union_align: [u64; 3usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_draw_call_info_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_draw_call_info_t__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_draw_call_info_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_draw_call_info_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_draw_call_info_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t__bindgen_ty_1>())).non_indexed
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t__bindgen_ty_1),
            "::",
            stringify!(non_indexed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t__bindgen_ty_1>())).indexed
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t__bindgen_ty_1),
            "::",
            stringify!(indexed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t__bindgen_ty_1>())).indirect
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t__bindgen_ty_1),
            "::",
            stringify!(indirect)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_draw_call_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_draw_call_info_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_renderer_draw_call_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_draw_call_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_draw_call_info_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t>())).index_buffer as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t),
            "::",
            stringify!(index_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t>())).primitive_type as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t),
            "::",
            stringify!(primitive_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t>())).draw_type as *const _ as usize
        },
        29usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t),
            "::",
            stringify!(draw_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t>())).index_type as *const _ as usize
        },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t),
            "::",
            stringify!(index_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_draw_call_info_t>()))._padding_337 as *const _
                as usize
        },
        31usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_draw_call_info_t),
            "::",
            stringify!(_padding_337)
        )
    );
}
pub const TM_RENDERER_MAX_RESOURCE_BINDERS: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_MAX_PUSH_CONSTANTS: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_MAX_SHADER_STATE_OVERRIDE_BLOCKS: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_147 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_state_override_blocks_t {
    pub num_override_blocks: u8,
    pub _padding_353: [::std::os::raw::c_char; 3usize],
    pub shader_state_override_blocks: [u32; 4usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_state_override_blocks_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_state_override_blocks_t>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_shader_state_override_blocks_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_state_override_blocks_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_shader_state_override_blocks_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_blocks_t>()))
                .num_override_blocks as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_blocks_t),
            "::",
            stringify!(num_override_blocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_blocks_t>()))._padding_353
                as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_blocks_t),
            "::",
            stringify!(_padding_353)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_blocks_t>()))
                .shader_state_override_blocks as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_blocks_t),
            "::",
            stringify!(shader_state_override_blocks)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_resource_binders_t {
    pub num_resource_binders: u8,
    pub _padding_362: [::std::os::raw::c_char; 3usize],
    pub resource_binders: [u32; 6usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_resource_binders_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_resource_binders_t>(),
        28usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_shader_resource_binders_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_resource_binders_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_shader_resource_binders_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_resource_binders_t>())).num_resource_binders
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_resource_binders_t),
            "::",
            stringify!(num_resource_binders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_resource_binders_t>()))._padding_362
                as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_resource_binders_t),
            "::",
            stringify!(_padding_362)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_resource_binders_t>())).resource_binders
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_resource_binders_t),
            "::",
            stringify!(resource_binders)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_push_constants_t {
    pub num_constants: u8,
    pub _padding_371: [::std::os::raw::c_char; 3usize],
    pub data: [u32; 8usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_push_constants_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_push_constants_t>(),
        36usize,
        concat!("Size of: ", stringify!(tm_renderer_shader_push_constants_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_push_constants_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_shader_push_constants_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_push_constants_t>())).num_constants
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_push_constants_t),
            "::",
            stringify!(num_constants)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_push_constants_t>()))._padding_371 as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_push_constants_t),
            "::",
            stringify!(_padding_371)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_push_constants_t>())).data as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_push_constants_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_info_t {
    pub shader: u32,
    pub state_override_blocks: tm_renderer_shader_state_override_blocks_t,
    pub binders: tm_renderer_shader_resource_binders_t,
    pub constants: tm_renderer_shader_push_constants_t,
    pub sort_key: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_info_t>(),
        96usize,
        concat!("Size of: ", stringify!(tm_renderer_shader_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_shader_info_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_info_t>())).shader as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_info_t),
            "::",
            stringify!(shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_info_t>())).state_override_blocks as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_info_t),
            "::",
            stringify!(state_override_blocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_info_t>())).binders as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_info_t),
            "::",
            stringify!(binders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_info_t>())).constants as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_info_t),
            "::",
            stringify!(constants)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_info_t>())).sort_key as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_info_t),
            "::",
            stringify!(sort_key)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_header_t {
    pub shader: u32,
    pub num_state_override_blocks: u16,
    pub num_resource_binders: u16,
    pub num_bytes_push_constants: u16,
    pub _padding_398: [::std::os::raw::c_char; 2usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_header_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_header_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_renderer_shader_header_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_header_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_shader_header_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_header_t>())).shader as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_header_t),
            "::",
            stringify!(shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_header_t>())).num_state_override_blocks
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_header_t),
            "::",
            stringify!(num_state_override_blocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_header_t>())).num_resource_binders as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_header_t),
            "::",
            stringify!(num_resource_binders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_header_t>())).num_bytes_push_constants
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_header_t),
            "::",
            stringify!(num_bytes_push_constants)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_header_t>()))._padding_398 as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_header_t),
            "::",
            stringify!(_padding_398)
        )
    );
}
pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_DEFAULT: tm_renderer_image_aspect = 0;
pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_SRGB: tm_renderer_image_aspect = 1;
pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_DEPTH: tm_renderer_image_aspect = 2;
pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_STENCIL: tm_renderer_image_aspect = 3;
pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_ADDITONAL_VIEW:
    tm_renderer_image_aspect = 134217728;
pub type tm_renderer_image_aspect = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_set_resource_t {
    pub bind_point: u32,
    pub resource_handle: u32,
    pub resource_aspect_flag: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_set_resource_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_set_resource_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_renderer_set_resource_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_set_resource_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_set_resource_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_resource_t>())).bind_point as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_resource_t),
            "::",
            stringify!(bind_point)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_resource_t>())).resource_handle as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_resource_t),
            "::",
            stringify!(resource_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_resource_t>())).resource_aspect_flag as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_resource_t),
            "::",
            stringify!(resource_aspect_flag)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_set_array_resources_t {
    pub bind_point: u32,
    pub first_element: u32,
    pub n_handles: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_set_array_resources_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_set_array_resources_t>(),
        12usize,
        concat!("Size of: ", stringify!(tm_renderer_set_array_resources_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_set_array_resources_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_set_array_resources_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_array_resources_t>())).bind_point as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_array_resources_t),
            "::",
            stringify!(bind_point)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_array_resources_t>())).first_element as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_array_resources_t),
            "::",
            stringify!(first_element)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_set_array_resources_t>())).n_handles as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_set_array_resources_t),
            "::",
            stringify!(n_handles)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_update_buffer_command_t {
    pub offset: u64,
    pub size: u64,
    pub device_affinity_mask: u32,
    pub _padding_452: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_update_buffer_command_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_update_buffer_command_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_renderer_update_buffer_command_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_update_buffer_command_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_update_buffer_command_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_buffer_command_t>())).offset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_buffer_command_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_buffer_command_t>())).size as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_buffer_command_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_buffer_command_t>())).device_affinity_mask
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_buffer_command_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_buffer_command_t>()))._padding_452 as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_buffer_command_t),
            "::",
            stringify!(_padding_452)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_update_image_buffer_command_t {
    pub subresource: tm_renderer_image_subresource_layers_t,
    pub offset: tm_renderer_image_offset_t,
    pub extent: tm_renderer_image_extent_t,
    pub _padding_461: [::std::os::raw::c_char; 4usize],
    pub size: u64,
    pub device_affinity_mask: u32,
    pub _padding_466: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_update_image_buffer_command_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_update_image_buffer_command_t>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_update_image_buffer_command_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_update_image_buffer_command_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_update_image_buffer_command_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_image_buffer_command_t>())).subresource
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_image_buffer_command_t),
            "::",
            stringify!(subresource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_image_buffer_command_t>())).offset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_image_buffer_command_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_image_buffer_command_t>())).extent as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_image_buffer_command_t),
            "::",
            stringify!(extent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_image_buffer_command_t>()))._padding_461
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_image_buffer_command_t),
            "::",
            stringify!(_padding_461)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_image_buffer_command_t>())).size as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_image_buffer_command_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_image_buffer_command_t>()))
                .device_affinity_mask as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_image_buffer_command_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_update_image_buffer_command_t>()))._padding_466
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_update_image_buffer_command_t),
            "::",
            stringify!(_padding_466)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_create_additional_image_views_t {
    pub device_affinity_mask: u32,
    pub num_views: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_create_additional_image_views_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_create_additional_image_views_t>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_create_additional_image_views_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_create_additional_image_views_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_create_additional_image_views_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_create_additional_image_views_t>()))
                .device_affinity_mask as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_create_additional_image_views_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_create_additional_image_views_t>())).num_views
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_create_additional_image_views_t),
            "::",
            stringify!(num_views)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_destroy_additional_image_views_t {
    pub device_affinity_mask: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_destroy_additional_image_views_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_destroy_additional_image_views_t>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_destroy_additional_image_views_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_destroy_additional_image_views_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_destroy_additional_image_views_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_destroy_additional_image_views_t>()))
                .device_affinity_mask as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_destroy_additional_image_views_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_barrier_header_t {
    pub num_barriers: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_barrier_header_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_barrier_header_t>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_resource_barrier_header_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_barrier_header_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_resource_barrier_header_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_header_t>())).num_barriers
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_header_t),
            "::",
            stringify!(num_barriers)
        )
    );
}
pub const tm_renderer_resource_barrier_flag_TM_RENDERER_RESOURCE_BARRIER_FLAG_IMAGE_ASPECT_STENCIL : tm_renderer_resource_barrier_flag = 1 ;
pub const tm_renderer_resource_barrier_flag_TM_RENDERER_RESOURCE_BARRIER_FLAG_SUBRESOURCE:
    tm_renderer_resource_barrier_flag = 2;
pub type tm_renderer_resource_barrier_flag = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_renderer_resource_barrier_t {
    pub resource_handle: u32,
    pub source_state: u16,
    pub destination_state: u16,
    pub source_queue: u16,
    pub destination_queue: u16,
    pub barrier_flags: u16,
    pub _padding_513: [::std::os::raw::c_char; 2usize],
    pub __bindgen_anon_1: tm_renderer_resource_barrier_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_renderer_resource_barrier_t__bindgen_ty_1 {
    pub subresource_image: tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1,
    pub subresource_buffer: tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1 {
    pub first_layer: u16,
    pub layer_count: u16,
    pub first_mip_level: u16,
    pub mip_count: u16,
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1>()))
                .first_layer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(first_layer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1>()))
                .layer_count as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(layer_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1>()))
                .first_mip_level as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(first_mip_level)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1>()))
                .mip_count as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(mip_count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2 {
    pub offset: u64,
    pub size: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2>()))
                .offset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2>()))
                .size as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(size)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_barrier_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_barrier_t__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_barrier_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1>()))
                .subresource_image as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1),
            "::",
            stringify!(subresource_image)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t__bindgen_ty_1>()))
                .subresource_buffer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t__bindgen_ty_1),
            "::",
            stringify!(subresource_buffer)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_barrier_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_barrier_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_renderer_resource_barrier_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_barrier_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_resource_barrier_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t>())).resource_handle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t),
            "::",
            stringify!(resource_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t>())).source_state as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t),
            "::",
            stringify!(source_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t>())).destination_state as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t),
            "::",
            stringify!(destination_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t>())).source_queue as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t),
            "::",
            stringify!(source_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t>())).destination_queue as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t),
            "::",
            stringify!(destination_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t>())).barrier_flags as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t),
            "::",
            stringify!(barrier_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_barrier_t>()))._padding_513 as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_barrier_t),
            "::",
            stringify!(_padding_513)
        )
    );
}
pub const tm_renderer_copy_image_flags_TM_RENDERER_COPY_IMAGE_FLAG_IMAGE_ASPECT_STENCIL:
    tm_renderer_copy_image_flags = 1;
pub const tm_renderer_copy_image_flags_TM_RENDERER_COPY_IMAGE_FLAG_SUBRESOURCE:
    tm_renderer_copy_image_flags = 2;
pub type tm_renderer_copy_image_flags = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_copy_image_buffer_t {
    pub source_resource: u32,
    pub destination_resource: u32,
    pub copy_flags: u16,
    pub src_subresource_layers: tm_renderer_image_subresource_layers_t,
    pub src_offset: tm_renderer_image_offset_t,
    pub dst_subresource_layers: tm_renderer_image_subresource_layers_t,
    pub dst_offset: tm_renderer_image_offset_t,
    pub extent: tm_renderer_image_extent_t,
}
#[test]
fn bindgen_test_layout_tm_renderer_copy_image_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_copy_image_buffer_t>(),
        44usize,
        concat!("Size of: ", stringify!(tm_renderer_copy_image_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_copy_image_buffer_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_copy_image_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).source_resource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(source_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).destination_resource
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(destination_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).copy_flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(copy_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).src_subresource_layers
                as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(src_subresource_layers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).src_offset as *const _
                as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(src_offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).dst_subresource_layers
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(dst_subresource_layers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).dst_offset as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(dst_offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_image_buffer_t>())).extent as *const _ as usize
        },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_image_buffer_t),
            "::",
            stringify!(extent)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_copy_buffer_t {
    pub source_resource: u32,
    pub destination_resource: u32,
    pub source_offset: u64,
    pub destination_offset: u64,
    pub size: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_copy_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_copy_buffer_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_renderer_copy_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_copy_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_copy_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_buffer_t>())).source_resource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_buffer_t),
            "::",
            stringify!(source_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_buffer_t>())).destination_resource as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_buffer_t),
            "::",
            stringify!(destination_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_buffer_t>())).source_offset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_buffer_t),
            "::",
            stringify!(source_offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_copy_buffer_t>())).destination_offset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_buffer_t),
            "::",
            stringify!(destination_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_copy_buffer_t>())).size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_copy_buffer_t),
            "::",
            stringify!(size)
        )
    );
}
pub const tm_renderer_read_image_flags_TM_RENDERER_READ_IMAGE_FLAG_IMAGE_ASPECT_STENCIL:
    tm_renderer_read_image_flags = 1;
pub const tm_renderer_read_image_flags_TM_RENDERER_READ_IMAGE_FLAG_SUBRESOURCE:
    tm_renderer_read_image_flags = 2;
pub type tm_renderer_read_image_flags = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_read_image_buffer_t {
    pub device_affinity_mask: u32,
    pub resource_handle: u32,
    pub resource_state: u16,
    pub resource_queue: u16,
    pub read_flags: u16,
    pub subresource_layers: tm_renderer_image_subresource_layers_t,
    pub offset: tm_renderer_image_offset_t,
    pub extent: tm_renderer_image_extent_t,
    pub _padding_604: [::std::os::raw::c_char; 6usize],
    pub bits: *mut ::std::os::raw::c_void,
    pub size_bits: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_read_image_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_read_image_buffer_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_renderer_read_image_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_read_image_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_read_image_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).device_affinity_mask
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).resource_handle as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(resource_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).resource_state as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(resource_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).resource_queue as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(resource_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).read_flags as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(read_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).subresource_layers
                as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(subresource_layers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).offset as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).extent as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(extent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>()))._padding_604 as *const _
                as usize
        },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(_padding_604)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).bits as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(bits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_image_buffer_t>())).size_bits as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_image_buffer_t),
            "::",
            stringify!(size_bits)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_read_buffer_t {
    pub device_affinity_mask: u32,
    pub resource_handle: u32,
    pub resource_state: u16,
    pub resource_queue: u16,
    pub _padding_622: [::std::os::raw::c_char; 4usize],
    pub offset: u64,
    pub size: u64,
    pub bits: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_renderer_read_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_read_buffer_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_renderer_read_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_read_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_read_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_buffer_t>())).device_affinity_mask as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_buffer_t>())).resource_handle as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(resource_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_buffer_t>())).resource_state as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(resource_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_buffer_t>())).resource_queue as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(resource_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_buffer_t>()))._padding_622 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(_padding_622)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_read_buffer_t>())).offset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_read_buffer_t>())).size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_read_buffer_t>())).bits as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_read_buffer_t),
            "::",
            stringify!(bits)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_device_memory_view_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_device_memory_view_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_device_memory_view_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(view: *mut tm_device_memory_view_o)>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            view: *mut tm_device_memory_view_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            content_r: tm_rect_t,
            tab_id: u64,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_device_memory_view_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_device_memory_view_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_device_memory_view_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_device_memory_view_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_device_memory_view_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_device_memory_view_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_device_memory_view_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_device_memory_view_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_device_memory_view_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_device_memory_view_api>())).ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_device_memory_view_api),
            "::",
            stringify!(ui)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_nil_renderer_backend_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_renderer_backend_i,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(backend: *mut tm_renderer_backend_i)>,
}
#[test]
fn bindgen_test_layout_tm_nil_renderer_backend_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_nil_renderer_backend_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_nil_renderer_backend_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_nil_renderer_backend_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_nil_renderer_backend_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_nil_renderer_backend_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_nil_renderer_backend_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_nil_renderer_backend_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_nil_renderer_backend_api),
            "::",
            stringify!(destroy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_api {
    pub tm_renderer_memory_block_pool_o: *mut tm_renderer_memory_block_pool_o,
    pub tm_renderer_command_buffer_pool_o: *mut tm_renderer_command_buffer_pool_o,
    pub tm_renderer_resource_command_buffer_pool_o: *mut tm_renderer_resource_command_buffer_pool_o,
    pub tm_renderer_command_buffer_pool_api: *mut tm_renderer_command_buffer_pool_api,
    pub tm_renderer_command_buffer_api: *mut tm_renderer_command_buffer_api,
    pub tm_renderer_command_buffer_sort_api: *mut tm_renderer_command_buffer_sort_api,
    pub tm_renderer_resource_command_buffer_pool_api:
        *mut tm_renderer_resource_command_buffer_pool_api,
    pub tm_renderer_resource_command_buffer_api: *mut tm_renderer_resource_command_buffer_api,
}
#[test]
fn bindgen_test_layout_tm_renderer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_renderer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_memory_block_pool_o as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_memory_block_pool_o)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_command_buffer_pool_o
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_command_buffer_pool_o)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_resource_command_buffer_pool_o
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_resource_command_buffer_pool_o)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_command_buffer_pool_api
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_command_buffer_pool_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_command_buffer_api as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_command_buffer_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_command_buffer_sort_api
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_command_buffer_sort_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_resource_command_buffer_pool_api
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_resource_command_buffer_pool_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_api>())).tm_renderer_resource_command_buffer_api
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_api),
            "::",
            stringify!(tm_renderer_resource_command_buffer_api)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_init_api {
    pub init: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            user_data_size: u64,
        ) -> *mut tm_renderer_api,
    >,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_renderer_init_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_init_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_init_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_init_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_init_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_init_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_init_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_init_api>())).shutdown as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_init_api),
            "::",
            stringify!(shutdown)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_memory_statistics_allocation_t {
    pub tag: *const ::std::os::raw::c_char,
    pub offset: u64,
    pub requested_size: u64,
    pub allocated_size: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_memory_statistics_allocation_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_memory_statistics_allocation_t>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_memory_statistics_allocation_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_memory_statistics_allocation_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_memory_statistics_allocation_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocation_t>())).tag as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocation_t),
            "::",
            stringify!(tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocation_t>())).offset
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocation_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocation_t>())).requested_size
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocation_t),
            "::",
            stringify!(requested_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocation_t>())).allocated_size
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocation_t),
            "::",
            stringify!(allocated_size)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_renderer_memory_statistics_allocator_t {
    pub name: *const ::std::os::raw::c_char,
    pub num_blocks: u32,
    pub _padding_32: [::std::os::raw::c_char; 4usize],
    pub block_size: [u64; 256usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_memory_statistics_allocator_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_memory_statistics_allocator_t>(),
        2064usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_memory_statistics_allocator_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_memory_statistics_allocator_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_memory_statistics_allocator_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocator_t>())).name as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocator_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocator_t>())).num_blocks
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocator_t),
            "::",
            stringify!(num_blocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocator_t>()))._padding_32
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocator_t),
            "::",
            stringify!(_padding_32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_memory_statistics_allocator_t>())).block_size
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_memory_statistics_allocator_t),
            "::",
            stringify!(block_size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_swap_chain_o {
    pub opaque: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_swap_chain_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_swap_chain_o>(),
        8usize,
        concat!("Size of: ", stringify!(tm_renderer_swap_chain_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_swap_chain_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_swap_chain_o))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_swap_chain_o>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_swap_chain_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_device_memory_o {
    pub opaque: [u64; 6usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_device_memory_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_device_memory_o>(),
        48usize,
        concat!("Size of: ", stringify!(tm_renderer_device_memory_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_device_memory_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_device_memory_o))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_device_memory_o>())).opaque as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_device_memory_o),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_backend_resource_allocator_i {
    pub inst: *mut ::std::os::raw::c_void,
    pub command_buffer_size_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            buffer: *const tm_renderer_buffer_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub command_buffer_size_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            image: *const tm_renderer_image_buffer_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub command_buffer_size_shader: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            shader: *const tm_renderer_shader_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub command_buffer_size_shader_state_override: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            state_override: *const tm_renderer_shader_state_override_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub command_buffer_size_sampler: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            sampler: *const tm_renderer_sampler_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub command_buffer_size_queue_fence: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, device_affinity_mask: u32) -> u32,
    >,
    pub command_buffer_size_resource_binder: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            num_bind_points: u32,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            dest: *mut ::std::os::raw::c_void,
            buffer: *const tm_renderer_buffer_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            dest: *mut ::std::os::raw::c_void,
            image: *const tm_renderer_image_buffer_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_shader: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            dest: *mut ::std::os::raw::c_void,
            shader: *const tm_renderer_shader_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_shader_state_override: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            dest: *mut ::std::os::raw::c_void,
            state_override: *const tm_renderer_shader_state_override_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_sampler: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            dest: *mut ::std::os::raw::c_void,
            sampler: *const tm_renderer_sampler_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_queue_fence: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            dest: *mut ::std::os::raw::c_void,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_resource_binder: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            dest: *mut ::std::os::raw::c_void,
            bind_points: *const tm_renderer_resource_bind_point_t,
            num_bind_points: u32,
            device_affinity_mask: u32,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_backend_resource_allocator_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_backend_resource_allocator_i>(),
        120usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_backend_resource_allocator_i)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_backend_resource_allocator_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_backend_resource_allocator_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>())).inst as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .command_buffer_size_buffer as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(command_buffer_size_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .command_buffer_size_image_buffer as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(command_buffer_size_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .command_buffer_size_shader as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(command_buffer_size_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .command_buffer_size_shader_state_override as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(command_buffer_size_shader_state_override)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .command_buffer_size_sampler as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(command_buffer_size_sampler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .command_buffer_size_queue_fence as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(command_buffer_size_queue_fence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .command_buffer_size_resource_binder as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(command_buffer_size_resource_binder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>())).create_buffer
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(create_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>())).create_image_buffer
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(create_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>())).create_shader
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(create_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .create_shader_state_override as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(create_shader_state_override)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>())).create_sampler
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(create_sampler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>())).create_queue_fence
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(create_queue_fence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_resource_allocator_i>()))
                .create_resource_binder as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_resource_allocator_i),
            "::",
            stringify!(create_resource_binder)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_device_memory_allocator_i {
    pub inst: *mut ::std::os::raw::c_void,
    pub allocate_staging_memory_command: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            cmd_type: u32,
            cmd_data: *mut ::std::os::raw::c_void,
            device_affinity_mask: u32,
            data: *mut *mut ::std::os::raw::c_void,
        ) -> tm_renderer_device_memory_o,
    >,
    pub allocate_staging_memory: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            size: u64,
            device_affinity_mask: u32,
            data: *mut *mut ::std::os::raw::c_void,
        ) -> tm_renderer_device_memory_o,
    >,
    pub allocate_resource_read_fence: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, device_affinity_mask: u32) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_device_memory_allocator_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_device_memory_allocator_i>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_device_memory_allocator_i)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_device_memory_allocator_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_device_memory_allocator_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_device_memory_allocator_i>())).inst as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_device_memory_allocator_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_device_memory_allocator_i>()))
                .allocate_staging_memory_command as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_device_memory_allocator_i),
            "::",
            stringify!(allocate_staging_memory_command)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_device_memory_allocator_i>()))
                .allocate_staging_memory as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_device_memory_allocator_i),
            "::",
            stringify!(allocate_staging_memory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_device_memory_allocator_i>()))
                .allocate_resource_read_fence as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_device_memory_allocator_i),
            "::",
            stringify!(allocate_resource_read_fence)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_backend_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_backend_i {
    pub inst: *mut tm_renderer_backend_o,
    pub create_swap_chain: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            window: *mut tm_window_o,
            device_affinity: u32,
        ) -> tm_renderer_swap_chain_o,
    >,
    pub destroy_swap_chain: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            swap_chain: tm_renderer_swap_chain_o,
        ),
    >,
    pub resize_swap_chain: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            swap_chain: tm_renderer_swap_chain_o,
            width: u32,
            height: u32,
        ),
    >,
    pub present_swap_chain: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            swap_chain: tm_renderer_swap_chain_o,
        ),
    >,
    pub swap_chain_resource: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            swap_chain: tm_renderer_swap_chain_o,
        ) -> u32,
    >,
    pub create_command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            command_buffers: *mut *mut tm_renderer_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub submit_command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            command_buffers: *mut *mut tm_renderer_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub destroy_command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            command_buffers: *mut *mut tm_renderer_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub num_command_queues: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            queue_family: u8,
            device_affinity_mask: u32,
        ) -> u8,
    >,
    pub supports_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            buffer: *const tm_renderer_buffer_t,
            device_affinity_mask: u32,
        ) -> bool,
    >,
    pub supports_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            image: *const tm_renderer_image_buffer_t,
            device_affinity_mask: u32,
        ) -> bool,
    >,
    pub create_resource_command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub submit_resource_command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub destroy_resource_command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub frame_begin: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_backend_o)>,
    pub recycle_buffers:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_backend_o)>,
    pub read_complete: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            read_fence: u32,
            device_affinity_mask: u32,
        ) -> bool,
    >,
    pub hashed_backend_name:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_backend_o) -> u64>,
    pub statistics_memory_allocators: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            device_affinity: u32,
            allocators: *mut tm_renderer_memory_statistics_allocator_t,
        ) -> u32,
    >,
    pub statistics_memory_allocations: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            device_affinity: u32,
            allocator: u32,
            block: u32,
            allocators: *mut tm_renderer_memory_statistics_allocation_t,
        ) -> u32,
    >,
    pub statistics: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_backend_o,
            device_affinity: u32,
            stats: *mut tm_renderer_statistics_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_backend_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_backend_i>(),
        176usize,
        concat!("Size of: ", stringify!(tm_renderer_backend_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_backend_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_backend_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_backend_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).create_swap_chain as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(create_swap_chain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).destroy_swap_chain as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(destroy_swap_chain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).resize_swap_chain as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(resize_swap_chain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).present_swap_chain as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(present_swap_chain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).swap_chain_resource as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(swap_chain_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).create_command_buffers as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(create_command_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).submit_command_buffers as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(submit_command_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).destroy_command_buffers as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(destroy_command_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).num_command_queues as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(num_command_queues)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).supports_buffer as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(supports_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).supports_image_buffer as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(supports_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).create_resource_command_buffers
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(create_resource_command_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).submit_resource_command_buffers
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(submit_resource_command_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).destroy_resource_command_buffers
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(destroy_resource_command_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).frame_begin as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(frame_begin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).recycle_buffers as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(recycle_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).read_complete as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(read_complete)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).hashed_backend_name as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(hashed_backend_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).statistics_memory_allocators
                as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(statistics_memory_allocators)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).statistics_memory_allocations
                as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(statistics_memory_allocations)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_backend_i>())).statistics as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_backend_i),
            "::",
            stringify!(statistics)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_command_buffer_pool_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_index_buffer_bind_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_memory_block_pool_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_command_buffer_pool_o {
    _unused: [u8; 0],
}
pub const tm_renderer_command_TM_RENDERER_COMMAND_BIND_RENDER_PASS: tm_renderer_command = 0;
pub const tm_renderer_command_TM_RENDERER_COMMAND_SET_VIEWPORTS: tm_renderer_command = 1;
pub const tm_renderer_command_TM_RENDERER_COMMAND_SET_SCISSOR_RECTS: tm_renderer_command = 2;
pub const tm_renderer_command_TM_RENDERER_COMMAND_DRAW_CALL: tm_renderer_command = 3;
pub const tm_renderer_command_TM_RENDERER_COMMAND_BEGIN_STATISTICS: tm_renderer_command = 4;
pub const tm_renderer_command_TM_RENDERER_COMMAND_END_STATISTICS: tm_renderer_command = 5;
pub const tm_renderer_command_TM_RENDERER_COMMAND_BIND_QUEUE: tm_renderer_command = 6;
pub const tm_renderer_command_TM_RENDERER_COMMAND_COMPUTE: tm_renderer_command = 7;
pub const tm_renderer_command_TM_RENDERER_COMMAND_TRANSITION_RESOURCES: tm_renderer_command = 8;
pub const tm_renderer_command_TM_RENDERER_COMMAND_COPY_IMAGE_BUFFER: tm_renderer_command = 9;
pub const tm_renderer_command_TM_RENDERER_COMMAND_COPY_BUFFER: tm_renderer_command = 10;
pub const tm_renderer_command_TM_RENDERER_COMMAND_READ_IMAGE_BUFFER: tm_renderer_command = 11;
pub const tm_renderer_command_TM_RENDERER_COMMAND_READ_BUFFER: tm_renderer_command = 12;
pub type tm_renderer_command = ::std::os::raw::c_int;
pub const tm_renderer_map_flags_TM_RENDERER_MAP_FLAGS_CPU_CACHED: tm_renderer_map_flags = 1;
pub type tm_renderer_map_flags = ::std::os::raw::c_int;
pub const tm_renderer_statistics_flags_TM_RENDERER_GPU_TIMINGS: tm_renderer_statistics_flags = 1;
pub type tm_renderer_statistics_flags = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_commands_t {
    pub sort_keys: *mut u64,
    pub types: *mut u32,
    pub data: *mut *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_renderer_commands_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_commands_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_renderer_commands_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_commands_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_commands_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_commands_t>())).sort_keys as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_commands_t),
            "::",
            stringify!(sort_keys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_commands_t>())).types as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_commands_t),
            "::",
            stringify!(types)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_commands_t>())).data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_commands_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_command_buffer_api {
    pub bind_render_pass: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            render_pass: *const tm_renderer_render_pass_bind_t,
        ),
    >,
    pub set_viewports: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            viewports: *const tm_renderer_set_viewports_t,
        ),
    >,
    pub set_scissor_rects: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            rects: *const tm_renderer_set_scissor_rects_t,
        ),
    >,
    pub draw_calls: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_keys: *const u64,
            draw_calls: *const tm_renderer_draw_call_info_t,
            shaders: *const tm_renderer_shader_info_t,
            num_draw_calls: u32,
        ),
    >,
    pub bind_queue: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            queue_bind: *const tm_renderer_queue_bind_t,
        ),
    >,
    pub begin_statistics_scope: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            category: *const ::std::os::raw::c_char,
            name: *const ::std::os::raw::c_char,
            flags: u32,
        ) -> u64,
    >,
    pub end_statistics_scope: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            statistics_scope: u64,
        ),
    >,
    pub compute_dispatches: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_keys: *const u64,
            compute_dispatches: *const tm_renderer_compute_info_t,
            shaders: *const tm_renderer_shader_info_t,
            num_compute_dispatches: u32,
        ),
    >,
    pub transition_resources: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            barriers: *const tm_renderer_resource_barrier_t,
            num_barriers: u32,
        ),
    >,
    pub copy_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            copy_image: *const tm_renderer_copy_image_buffer_t,
        ),
    >,
    pub copy_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            copy_buffer: *const tm_renderer_copy_buffer_t,
        ),
    >,
    pub read_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            read_image: *const tm_renderer_read_image_buffer_t,
        ) -> u32,
    >,
    pub read_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
            read_buffer: *const tm_renderer_read_buffer_t,
        ) -> u32,
    >,
    pub num_commands: ::std::option::Option<
        unsafe extern "C" fn(inst: *const tm_renderer_command_buffer_o) -> u32,
    >,
    pub commands: ::std::option::Option<
        unsafe extern "C" fn(inst: *const tm_renderer_command_buffer_o) -> tm_renderer_commands_t,
    >,
    pub user_data: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub set_backend_allocator: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            memory_allocator: *mut tm_renderer_device_memory_allocator_i,
        ),
    >,
    pub append_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_o,
            buffers: *mut *mut tm_renderer_command_buffer_o,
            num_buffers: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_command_buffer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_command_buffer_api>(),
        144usize,
        concat!("Size of: ", stringify!(tm_renderer_command_buffer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_command_buffer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_command_buffer_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).bind_render_pass as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(bind_render_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).set_viewports as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(set_viewports)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).set_scissor_rects as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(set_scissor_rects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).draw_calls as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(draw_calls)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).bind_queue as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(bind_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).begin_statistics_scope
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(begin_statistics_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).end_statistics_scope
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(end_statistics_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).compute_dispatches
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(compute_dispatches)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).transition_resources
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(transition_resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).copy_image_buffer as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(copy_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).copy_buffer as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(copy_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).read_image_buffer as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(read_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).read_buffer as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(read_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).num_commands as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(num_commands)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).commands as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(commands)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).user_data as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(user_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).set_backend_allocator
                as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(set_backend_allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_api>())).append_buffers as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_api),
            "::",
            stringify!(append_buffers)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_command_buffer_pool_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_pool_o,
        ) -> *mut tm_renderer_command_buffer_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_command_buffer_pool_o,
            buffer: *mut tm_renderer_command_buffer_o,
        ),
    >,
    pub user_data_size: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_renderer_command_buffer_pool_o) -> u64,
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_command_buffer_pool_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_command_buffer_pool_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_renderer_command_buffer_pool_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_command_buffer_pool_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_command_buffer_pool_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_pool_api>())).create as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_pool_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_pool_api>())).destroy as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_pool_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_pool_api>())).user_data_size
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_pool_api),
            "::",
            stringify!(user_data_size)
        )
    );
}
extern "C" {
    pub fn tm_renderer_create_command_buffer_pool(
        backing_memory_block_pool: *mut tm_renderer_memory_block_pool_o,
        user_data_size: u64,
        allocator: *mut tm_allocator_i,
        memory_tracker_scope: u32,
    ) -> *mut tm_renderer_command_buffer_pool_o;
}
extern "C" {
    pub fn tm_renderer_destroy_command_buffer_pool(
        pool: *mut tm_renderer_command_buffer_pool_o,
        allocator: *mut tm_allocator_i,
        memory_tracker_scope: u32,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_command_buffer_sort_api {
    pub sort_memory_needed: ::std::option::Option<
        unsafe extern "C" fn(
            buffers: *mut *const tm_renderer_command_buffer_o,
            num_buffers: u32,
        ) -> u64,
    >,
    pub sort_commands: ::std::option::Option<
        unsafe extern "C" fn(
            buffers: *mut *const tm_renderer_command_buffer_o,
            num_buffers: u32,
            sort_memory: *mut ::std::os::raw::c_void,
            sorted_output: *mut *mut tm_renderer_commands_t,
            num_commands: *mut u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_command_buffer_sort_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_command_buffer_sort_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_command_buffer_sort_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_command_buffer_sort_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_command_buffer_sort_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_sort_api>())).sort_memory_needed
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_sort_api),
            "::",
            stringify!(sort_memory_needed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_command_buffer_sort_api>())).sort_commands
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_command_buffer_sort_api),
            "::",
            stringify!(sort_commands)
        )
    );
}
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_BUFFER: tm_renderer_resource = 0;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_MAP_CREATE_BUFFER: tm_renderer_resource = 1;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_RESIZE_BUFFER: tm_renderer_resource = 2;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_UPDATE_BUFFER: tm_renderer_resource = 3;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_IMAGE: tm_renderer_resource = 4;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_MAP_CREATE_IMAGE: tm_renderer_resource = 5;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_UPDATE_IMAGE: tm_renderer_resource = 6;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_ADDITIONAL_IMAGE_VIEWS:
    tm_renderer_resource = 7;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_DESTROY_ADDITIONAL_IMAGE_VIEWS:
    tm_renderer_resource = 8;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_SHADER: tm_renderer_resource = 9;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_SHADER_STATE_OVERRIDE:
    tm_renderer_resource = 10;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_SAMPLER: tm_renderer_resource = 11;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_QUEUE_FENCE: tm_renderer_resource = 12;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_RESOURCE_BINDER: tm_renderer_resource =
    13;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_SET_RESOURCE: tm_renderer_resource = 14;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_SET_ARRAY_RESOURCES: tm_renderer_resource = 15;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_DESTROY: tm_renderer_resource = 16;
pub const tm_renderer_resource_TM_RENDERER_RESOURCE_NUM_COMMAND_TYPES: tm_renderer_resource = 17;
pub type tm_renderer_resource = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_commands_t {
    pub types: *mut u32,
    pub handles: *mut u32,
    pub data: *mut *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_commands_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_commands_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_renderer_resource_commands_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_commands_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_resource_commands_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_commands_t>())).types as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_commands_t),
            "::",
            stringify!(types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_commands_t>())).handles as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_commands_t),
            "::",
            stringify!(handles)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_commands_t>())).data as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_commands_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_command_buffer_api {
    pub create_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            buffer: *const tm_renderer_buffer_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub map_create_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            buffer: *const tm_renderer_buffer_t,
            device_affinity_mask: u32,
            map_flags: u32,
            data: *mut *mut ::std::os::raw::c_void,
        ) -> u32,
    >,
    pub resize_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            handle: u32,
            size: u64,
        ),
    >,
    pub update_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            handle: u32,
            offset: u64,
            size: u64,
            device_affinity_mask: u32,
            map_flags: u32,
            data: *mut *mut ::std::os::raw::c_void,
        ),
    >,
    pub create_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            image: *const tm_renderer_image_buffer_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub map_create_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            image: *const tm_renderer_image_buffer_t,
            device_affinity_mask: u32,
            map_flags: u32,
            data: *mut *mut ::std::os::raw::c_void,
        ) -> u32,
    >,
    pub update_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            handle: u32,
            format: u32,
            subresource: *const tm_renderer_image_subresource_layers_t,
            offset: *const tm_renderer_image_offset_t,
            extent: *const tm_renderer_image_extent_t,
            device_affinity_mask: u32,
            map_flags: u32,
            data: *mut *mut ::std::os::raw::c_void,
        ),
    >,
    pub create_additional_image_views: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            handle: u32,
            device_affinity_mask: u32,
            views: *const tm_renderer_additional_image_view_t,
            num_views: u32,
        ),
    >,
    pub destroy_additional_image_views: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            handle: u32,
            device_affinity_mask: u32,
        ),
    >,
    pub create_shader: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            shader: *const tm_renderer_shader_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_sampler: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            sampler: *const tm_renderer_sampler_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_shader_state_override: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            state_override: *const tm_renderer_shader_state_override_t,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_queue_fence: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub create_resource_binder: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            bind_points: *const tm_renderer_resource_bind_point_t,
            num_bind_points: u32,
            device_affinity_mask: u32,
        ) -> u32,
    >,
    pub set_resource: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            resource_binder: u32,
            bind_point: u32,
            resource_handles: u32,
            reosource_aspect_flags: u32,
        ),
    >,
    pub set_array_resources: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            resource_binder: u32,
            bind_point: u32,
            first_element: u32,
            resource_handles: *const u32,
            resource_aspect_flags: *const u32,
            n_handles: u32,
        ),
    >,
    pub destroy_resource: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_renderer_resource_command_buffer_o, handle: u32),
    >,
    pub num_commands: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            count_per_command_type: *mut u32,
        ) -> u32,
    >,
    pub commands: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
        ) -> tm_renderer_resource_commands_t,
    >,
    pub user_data: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub set_backend_allocators: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            resource_allocator: *mut tm_renderer_backend_resource_allocator_i,
            memory_allocator: *mut tm_renderer_device_memory_allocator_i,
        ),
    >,
    pub append_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_o,
            buffers: *mut *mut tm_renderer_resource_command_buffer_o,
            num_buffers: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_command_buffer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_command_buffer_api>(),
        176usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_resource_command_buffer_api)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_command_buffer_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_resource_command_buffer_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).create_buffer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).map_create_buffer
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(map_create_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).resize_buffer
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(resize_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).update_buffer
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(update_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).create_image_buffer
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>()))
                .map_create_image_buffer as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(map_create_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).update_image_buffer
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(update_image_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>()))
                .create_additional_image_views as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_additional_image_views)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>()))
                .destroy_additional_image_views as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(destroy_additional_image_views)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).create_shader
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).create_sampler
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_sampler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>()))
                .create_shader_state_override as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_shader_state_override)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).create_queue_fence
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_queue_fence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>()))
                .create_resource_binder as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(create_resource_binder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).set_resource
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(set_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).set_array_resources
                as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(set_array_resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).destroy_resource
                as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(destroy_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).num_commands
                as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(num_commands)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).commands as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(commands)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).user_data
                as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(user_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>()))
                .set_backend_allocators as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(set_backend_allocators)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_api>())).append_buffers
                as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_api),
            "::",
            stringify!(append_buffers)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_command_buffer_pool_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_pool_o,
        ) -> *mut tm_renderer_resource_command_buffer_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_resource_command_buffer_pool_o,
            buffer: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub user_data_size: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_renderer_resource_command_buffer_pool_o) -> u64,
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_command_buffer_pool_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_command_buffer_pool_api>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_resource_command_buffer_pool_api)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_command_buffer_pool_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_resource_command_buffer_pool_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_pool_api>())).create
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_pool_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_pool_api>())).destroy
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_pool_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_command_buffer_pool_api>())).user_data_size
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_command_buffer_pool_api),
            "::",
            stringify!(user_data_size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_statistics_t {
    pub non_indexed_draws: u64,
    pub indexed_draws: u64,
    pub non_indexed_indirect_draws: u64,
    pub indexed_indirect_draws: u64,
    pub compute_dispatches: u64,
    pub compute_indirect_dispatches: u64,
    pub primitive_count: u64,
    pub pipeline_binds: u64,
    pub resource_barriers: u64,
    pub render_pass_binds: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_statistics_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_statistics_t>(),
        80usize,
        concat!("Size of: ", stringify!(tm_renderer_statistics_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_statistics_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_statistics_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).non_indexed_draws as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(non_indexed_draws)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).indexed_draws as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(indexed_draws)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).non_indexed_indirect_draws
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(non_indexed_indirect_draws)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).indexed_indirect_draws as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(indexed_indirect_draws)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).compute_dispatches as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(compute_dispatches)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).compute_indirect_dispatches
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(compute_indirect_dispatches)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).primitive_count as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(primitive_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).pipeline_binds as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(pipeline_binds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).resource_barriers as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(resource_barriers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_statistics_t>())).render_pass_binds as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_statistics_t),
            "::",
            stringify!(render_pass_binds)
        )
    );
}
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_NOT_INITIALIZED:
    tm_renderer_resource_type = 0;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_BUFFER: tm_renderer_resource_type = 1;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_IMAGE_BUFFER:
    tm_renderer_resource_type = 2;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_SAMPLER: tm_renderer_resource_type =
    3;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_QUEUE_FENCE:
    tm_renderer_resource_type = 4;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_SHADER: tm_renderer_resource_type = 5;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_SHADER_STATE_OVERRIDE:
    tm_renderer_resource_type = 6;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_RESOURCE_BINDER:
    tm_renderer_resource_type = 7;
pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_BACK_BUFFER:
    tm_renderer_resource_type = 8;
pub type tm_renderer_resource_type = ::std::os::raw::c_int;
pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_UNIFORM:
    tm_renderer_buffer_usage_flags = 1;
pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_STORAGE:
    tm_renderer_buffer_usage_flags = 2;
pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_UPDATABLE:
    tm_renderer_buffer_usage_flags = 4;
pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_UAV:
    tm_renderer_buffer_usage_flags = 8;
pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_INDEX:
    tm_renderer_buffer_usage_flags = 16;
pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_VERTEX:
    tm_renderer_buffer_usage_flags = 32;
pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_INDIRECT:
    tm_renderer_buffer_usage_flags = 64;
pub type tm_renderer_buffer_usage_flags = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_buffer_t {
    pub size: u32,
    pub usage_flags: tm_renderer_buffer_usage_flags,
    pub debug_tag: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_renderer_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_buffer_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_buffer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_buffer_t>())).size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_buffer_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_buffer_t>())).usage_flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_buffer_t),
            "::",
            stringify!(usage_flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_buffer_t>())).debug_tag as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_buffer_t),
            "::",
            stringify!(debug_tag)
        )
    );
}
pub const tm_renderer_image_buffer_usage_flags_TM_RENDERER_IMAGE_BUFFER_USAGE_RENDER_TARGET:
    tm_renderer_image_buffer_usage_flags = 1;
pub const tm_renderer_image_buffer_usage_flags_TM_RENDERER_IMAGE_BUFFER_USAGE_UAV:
    tm_renderer_image_buffer_usage_flags = 2;
pub type tm_renderer_image_buffer_usage_flags = ::std::os::raw::c_int;
pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_1D: tm_renderer_image_type = 0;
pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_2D: tm_renderer_image_type = 1;
pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_3D: tm_renderer_image_type = 2;
pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_CUBE: tm_renderer_image_type = 3;
pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_MAX_VIEWS: tm_renderer_image_type = 4;
pub type tm_renderer_image_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_renderer_clear_value_t {
    pub color: tm_renderer_clear_value_t_color,
    pub depth_stencil: tm_renderer_clear_value_t_depth_stencil,
    _bindgen_union_align: [u32; 4usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_renderer_clear_value_t_color {
    pub __bindgen_anon_1: tm_renderer_clear_value_t_color__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_renderer_clear_value_t_color__bindgen_ty_1 {
    pub float32: [f32; 4usize],
    pub int32: [i32; 4usize],
    pub uint32: [u32; 4usize],
    _bindgen_union_align: [u32; 4usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_clear_value_t_color__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_clear_value_t_color__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_clear_value_t_color__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_clear_value_t_color__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_clear_value_t_color__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_clear_value_t_color__bindgen_ty_1>())).float32
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_clear_value_t_color__bindgen_ty_1),
            "::",
            stringify!(float32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_clear_value_t_color__bindgen_ty_1>())).int32
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_clear_value_t_color__bindgen_ty_1),
            "::",
            stringify!(int32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_clear_value_t_color__bindgen_ty_1>())).uint32
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_clear_value_t_color__bindgen_ty_1),
            "::",
            stringify!(uint32)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_clear_value_t_color() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_clear_value_t_color>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_clear_value_t_color))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_clear_value_t_color>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_clear_value_t_color))
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_clear_value_t_depth_stencil {
    pub depth: f32,
    pub stencil: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_clear_value_t_depth_stencil() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_clear_value_t_depth_stencil>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_clear_value_t_depth_stencil)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_clear_value_t_depth_stencil>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_clear_value_t_depth_stencil)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_clear_value_t_depth_stencil>())).depth as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_clear_value_t_depth_stencil),
            "::",
            stringify!(depth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_clear_value_t_depth_stencil>())).stencil as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_clear_value_t_depth_stencil),
            "::",
            stringify!(stencil)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_clear_value_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_clear_value_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_clear_value_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_clear_value_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_renderer_clear_value_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_clear_value_t>())).color as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_clear_value_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_clear_value_t>())).depth_stencil as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_clear_value_t),
            "::",
            stringify!(depth_stencil)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_renderer_image_buffer_t {
    pub type_: tm_renderer_image_type,
    pub usage_flags: tm_renderer_image_buffer_usage_flags,
    pub format: u32,
    pub width: u32,
    pub height: u32,
    pub depth: u32,
    pub mip_levels: u32,
    pub layer_count: u32,
    pub sample_count: u32,
    pub clear_value: tm_renderer_clear_value_t,
    pub _padding_117: [::std::os::raw::c_char; 4usize],
    pub debug_tag: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_renderer_image_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_image_buffer_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_renderer_image_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_image_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_image_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).type_ as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).usage_flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(usage_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).format as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(format)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).width as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).height as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).depth as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(depth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).mip_levels as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(mip_levels)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).layer_count as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(layer_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).sample_count as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(sample_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).clear_value as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(clear_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>()))._padding_117 as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(_padding_117)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_image_buffer_t>())).debug_tag as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_image_buffer_t),
            "::",
            stringify!(debug_tag)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_additional_image_view_t {
    pub first_layer: u16,
    pub layer_count: u16,
    pub first_mip: u8,
    pub mip_count: u8,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub _padding_152: [::std::os::raw::c_char; 1usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_additional_image_view_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_additional_image_view_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_renderer_additional_image_view_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_additional_image_view_t>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_additional_image_view_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_additional_image_view_t>())).first_layer as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_additional_image_view_t),
            "::",
            stringify!(first_layer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_additional_image_view_t>())).layer_count as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_additional_image_view_t),
            "::",
            stringify!(layer_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_additional_image_view_t>())).first_mip as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_additional_image_view_t),
            "::",
            stringify!(first_mip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_additional_image_view_t>())).mip_count as *const _
                as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_additional_image_view_t),
            "::",
            stringify!(mip_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_additional_image_view_t>()))._padding_152 as *const _
                as usize
        },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_additional_image_view_t),
            "::",
            stringify!(_padding_152)
        )
    );
}
impl tm_renderer_additional_image_view_t {
    #[inline]
    pub fn aspect(&self) -> u8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_aspect(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn padding(&self) -> u8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_padding(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(aspect: u8, padding: u8) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let aspect: u8 = unsafe { ::std::mem::transmute(aspect) };
            aspect as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let padding: u8 = unsafe { ::std::mem::transmute(padding) };
            padding as u64
        });
        __bindgen_bitfield_unit
    }
}
pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_VERTEX: tm_renderer_shader_stage = 0;
pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_HULL: tm_renderer_shader_stage = 1;
pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_DOMAIN: tm_renderer_shader_stage = 2;
pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_GEOMETRY: tm_renderer_shader_stage = 3;
pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_PIXEL: tm_renderer_shader_stage = 4;
pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_COMPUTE: tm_renderer_shader_stage = 5;
pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_MAX: tm_renderer_shader_stage = 6;
pub type tm_renderer_shader_stage = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_t {
    pub tessellation_states: tm_renderer_shader_blob_t,
    pub raster_states: tm_renderer_shader_blob_t,
    pub depth_stencil_states: tm_renderer_shader_blob_t,
    pub blend_states: tm_renderer_shader_blob_t,
    pub multi_sample_states: tm_renderer_shader_blob_t,
    pub stages: [tm_renderer_shader_blob_t; 6usize],
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_t>(),
        176usize,
        concat!("Size of: ", stringify!(tm_renderer_shader_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_shader_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_t>())).tessellation_states as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_t),
            "::",
            stringify!(tessellation_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_t>())).raster_states as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_t),
            "::",
            stringify!(raster_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_t>())).depth_stencil_states as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_t),
            "::",
            stringify!(depth_stencil_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_t>())).blend_states as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_t),
            "::",
            stringify!(blend_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_t>())).multi_sample_states as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_t),
            "::",
            stringify!(multi_sample_states)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_renderer_shader_t>())).stages as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_t),
            "::",
            stringify!(stages)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_sampler_t {
    pub sampler_states: tm_renderer_shader_blob_t,
}
#[test]
fn bindgen_test_layout_tm_renderer_sampler_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_sampler_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_sampler_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_sampler_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_sampler_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_sampler_t>())).sampler_states as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_sampler_t),
            "::",
            stringify!(sampler_states)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_state_override_t {
    pub tessellation_states: tm_renderer_shader_blob_t,
    pub raster_states: tm_renderer_shader_blob_t,
    pub depth_stencil_states: tm_renderer_shader_blob_t,
    pub blend_states: tm_renderer_shader_blob_t,
    pub multi_sample_states: tm_renderer_shader_blob_t,
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_state_override_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_state_override_t>(),
        80usize,
        concat!("Size of: ", stringify!(tm_renderer_shader_state_override_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_state_override_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_shader_state_override_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_t>())).tessellation_states
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_t),
            "::",
            stringify!(tessellation_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_t>())).raster_states
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_t),
            "::",
            stringify!(raster_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_t>())).depth_stencil_states
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_t),
            "::",
            stringify!(depth_stencil_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_t>())).blend_states as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_t),
            "::",
            stringify!(blend_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_state_override_t>())).multi_sample_states
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_state_override_t),
            "::",
            stringify!(multi_sample_states)
        )
    );
}
pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_VERTEX:
    tm_renderer_shader_stage_flag = 1;
pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_HULL:
    tm_renderer_shader_stage_flag = 2;
pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_DOMAIN:
    tm_renderer_shader_stage_flag = 4;
pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_GEOMETRY:
    tm_renderer_shader_stage_flag = 8;
pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_PIXEL:
    tm_renderer_shader_stage_flag = 16;
pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_COMPUTE:
    tm_renderer_shader_stage_flag = 32;
pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_ALL:
    tm_renderer_shader_stage_flag = 63;
pub type tm_renderer_shader_stage_flag = ::std::os::raw::c_int;
pub const tm_renderer_resource_bind_usage_flag_TM_RENDERER_RESOURCE_BIND_USAGE_FLAG_UAV:
    tm_renderer_resource_bind_usage_flag = 1;
pub type tm_renderer_resource_bind_usage_flag = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_resource_bind_point_t {
    pub bind_point: u32,
    pub stage_flags: u32,
    pub type_: u32,
    pub view: u32,
    pub usage: u32,
    pub count: u32,
}
#[test]
fn bindgen_test_layout_tm_renderer_resource_bind_point_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_resource_bind_point_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_renderer_resource_bind_point_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_resource_bind_point_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_resource_bind_point_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_bind_point_t>())).bind_point as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_bind_point_t),
            "::",
            stringify!(bind_point)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_bind_point_t>())).stage_flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_bind_point_t),
            "::",
            stringify!(stage_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_bind_point_t>())).type_ as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_bind_point_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_bind_point_t>())).view as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_bind_point_t),
            "::",
            stringify!(view)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_bind_point_t>())).usage as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_bind_point_t),
            "::",
            stringify!(usage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_resource_bind_point_t>())).count as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_resource_bind_point_t),
            "::",
            stringify!(count)
        )
    );
}
pub const TM_RENDERER_SHADER_SOURCE_LANGUAGE_HLSL: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_148 = ::std::os::raw::c_int;
pub const TM_RENDERER_SHADER_COMPILER_STAGE_VERTEX: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_SHADER_COMPILER_STAGE_HULL: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_SHADER_COMPILER_STAGE_DOMAIN: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_SHADER_COMPILER_STAGE_GEOMETRY: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_SHADER_COMPILER_STAGE_PIXEL: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_SHADER_COMPILER_STAGE_COMPUTE: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_149 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_compiler_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_renderer_state_value_pair_t {
    pub state: u32,
    pub _padding_32: [::std::os::raw::c_char; 4usize],
    pub __bindgen_anon_1: tm_renderer_state_value_pair_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_renderer_state_value_pair_t__bindgen_ty_1 {
    pub enum_value: u32,
    pub uint32_value: u32,
    pub float_value: f32,
    pub nested_states: *mut tm_renderer_state_value_pair_t,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tm_renderer_state_value_pair_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_state_value_pair_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tm_renderer_state_value_pair_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_state_value_pair_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_renderer_state_value_pair_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_state_value_pair_t__bindgen_ty_1>())).enum_value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_state_value_pair_t__bindgen_ty_1),
            "::",
            stringify!(enum_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_state_value_pair_t__bindgen_ty_1>())).uint32_value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_state_value_pair_t__bindgen_ty_1),
            "::",
            stringify!(uint32_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_state_value_pair_t__bindgen_ty_1>())).float_value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_state_value_pair_t__bindgen_ty_1),
            "::",
            stringify!(float_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_state_value_pair_t__bindgen_ty_1>())).nested_states
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_state_value_pair_t__bindgen_ty_1),
            "::",
            stringify!(nested_states)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_renderer_state_value_pair_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_state_value_pair_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_renderer_state_value_pair_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_state_value_pair_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_state_value_pair_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_state_value_pair_t>())).state as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_state_value_pair_t),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_state_value_pair_t>()))._padding_32 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_state_value_pair_t),
            "::",
            stringify!(_padding_32)
        )
    );
}
pub const TM_RENDERER_STATE_BLOCK_COMPLETE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_STATE_BLOCK_OVERRIDE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_150 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_renderer_shader_compiler_api {
    pub init: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_renderer_shader_compiler_o,
    >,
    pub shutdown:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_shader_compiler_o)>,
    pub num_state_block_types: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_renderer_shader_compiler_o) -> u32,
    >,
    pub state_block_type: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            state_block_type_idx: u32,
        ) -> u32,
    >,
    pub state_block_name: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            state_block_type: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub num_states: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            state_block_type: u32,
        ) -> u32,
    >,
    pub state_name: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            state_block_type: u32,
            state: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub value_type: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            state_block_type: u32,
            state: u32,
        ) -> u32,
    >,
    pub num_values: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_renderer_shader_compiler_o, value_type: u32) -> u32,
    >,
    pub value_name: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            value_type: u32,
            value: u32,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub enum_value: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            value_type: u32,
            value: u32,
        ) -> u32,
    >,
    pub compile_state_block: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            bind_type: u32,
            block_type: u32,
            states: *const tm_renderer_state_value_pair_t,
            num_raster_states: u32,
        ) -> tm_renderer_shader_blob_t,
    >,
    pub compile_shader: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            source: *const ::std::os::raw::c_char,
            entry_point: *const ::std::os::raw::c_char,
            source_language: u32,
            stage: u32,
        ) -> tm_renderer_shader_blob_t,
    >,
    pub release_blob: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_renderer_shader_compiler_o,
            blob: tm_renderer_shader_blob_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_renderer_shader_compiler_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_renderer_shader_compiler_api>(),
        112usize,
        concat!("Size of: ", stringify!(tm_renderer_shader_compiler_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_renderer_shader_compiler_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_renderer_shader_compiler_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).init as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).shutdown as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(shutdown)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).num_state_block_types
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(num_state_block_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).state_block_type as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(state_block_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).state_block_name as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(state_block_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).num_states as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(num_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).state_name as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(state_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).value_type as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(value_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).num_values as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(num_values)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).value_name as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(value_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).enum_value as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(enum_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).compile_state_block
                as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(compile_state_block)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).compile_shader as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(compile_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_renderer_shader_compiler_api>())).release_blob as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_renderer_shader_compiler_api),
            "::",
            stringify!(release_blob)
        )
    );
}
extern "C" {
    pub static mut tm_renderer_state_block_names: [*const ::std::os::raw::c_char; 7usize];
}
pub const TM_RENDERER_VALUE_BOOL_FALSE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_VALUE_BOOL_TRUE: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_VALUE_BOOL_MAX_VALUES: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_151 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_bool_names: [*const ::std::os::raw::c_char; 2usize];
}
pub const TM_RENDERER_COMPARE_OP_NEVER: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_COMPARE_OP_LESS: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_COMPARE_OP_EQUAL: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_COMPARE_OP_LESS_OR_EQUAL: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_COMPARE_OP_GREATER: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_COMPARE_OP_NOT_EQUAL: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_COMPARE_OP_GREATER_OR_EQUAL: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_COMPARE_OP_MAX_VALUES: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_152 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_compare_op_names: [*const ::std::os::raw::c_char; 7usize];
}
pub const TM_RENDERER_TESSELLATION_STATE_CONTROL_POINTS: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_TESSELLATION_STATE_MAX_STATES: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_153 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_tessellation_state_names: [*const ::std::os::raw::c_char; 1usize];
}
extern "C" {
    pub static mut tm_renderer_tessellation_state_value_types: [u32; 1usize];
}
pub const TM_RENDERER_RASTER_STATE_CULL_MODE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_RASTER_STATE_FRONT_FACE: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_RASTER_STATE_POLYGON_MODE: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_ENABLE: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_CONSTANT_FACTOR: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_CLAMP: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_SLOPE_FACTOR: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_RASTER_STATE_MAX_STATES: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_154 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_raster_state_names: [*const ::std::os::raw::c_char; 7usize];
}
extern "C" {
    pub static mut tm_renderer_raster_state_value_types: [u32; 7usize];
}
pub const TM_RENDERER_RASTER_VALUE_CULL_NONE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_RASTER_VALUE_CULL_FRONT: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_RASTER_VALUE_CULL_BACK: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_RASTER_VALUE_CULL_MAX_VALUES: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_155 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_raster_value_cull_names: [*const ::std::os::raw::c_char; 3usize];
}
pub const TM_RENDERER_RASTER_VALUE_FRONT_FACE_CW: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_RASTER_VALUE_FRONT_FACE_CCW: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_RASTER_VALUE_FRONT_FACE_MAX_VALUES: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_156 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_raster_value_front_face_names:
        [*const ::std::os::raw::c_char; 2usize];
}
pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_FILL: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_LINE: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_POINT: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_MAX_VALUES: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_157 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_raster_value_polygon_names: [*const ::std::os::raw::c_char; 3usize];
}
pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_TEST_ENABLE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_WRITE_ENABLE: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_COMPARE_OP: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_TEST_ENABLE: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_FAIL_OP: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_PASS_OP: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_DEPTH_FAIL_OP: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_COMPARE_OP: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_COMPARE_MASK: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_COMPARE_WRITE_MASK: ::std::os::raw::c_int =
    9;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_REFERENCE: ::std::os::raw::c_int = 10;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_FAIL_OP: ::std::os::raw::c_int = 11;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_PASS_OP: ::std::os::raw::c_int = 12;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_DEPTH_FAIL_OP: ::std::os::raw::c_int = 13;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_COMPARE_OP: ::std::os::raw::c_int = 14;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_COMPARE_MASK: ::std::os::raw::c_int = 15;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_COMPARE_WRITE_MASK: ::std::os::raw::c_int =
    16;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_REFERENCE: ::std::os::raw::c_int = 17;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_BOUND_TEST_ENABLE: ::std::os::raw::c_int = 18;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_BOUND_MIN: ::std::os::raw::c_int = 19;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_BOUND_MAX: ::std::os::raw::c_int = 20;
pub const TM_RENDERER_DEPTH_STENCIL_STATE_MAX_STATES: ::std::os::raw::c_int = 21;
pub type _bindgen_ty_158 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_depth_stencil_state_names: [*const ::std::os::raw::c_char; 21usize];
}
extern "C" {
    pub static mut tm_renderer_depth_stencil_state_value_types: [u32; 21usize];
}
pub const TM_RENDERER_STENCIL_OP_KEEP: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_STENCIL_OP_ZERO: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_STENCIL_OP_REPLACE: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_STENCIL_OP_INC_CLAMP: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_STENCIL_OP_DEC_CLAMP: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_STENCIL_OP_INVERT: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_STENCIL_OP_INC_WRAP: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_STENCIL_OP_DEC_WRAP: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_STENCIL_OP_MAX_VALUES: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_159 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_stencil_op_names: [*const ::std::os::raw::c_char; 8usize];
}
pub const TM_RENDERER_SAMPLER_STATE_MIN_FILTER: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_SAMPLER_STATE_MAG_FILTER: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_SAMPLER_STATE_MIP_MODE: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_SAMPLER_STATE_ADDRESS_U: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_SAMPLER_STATE_ADDRESS_V: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_SAMPLER_STATE_ADDRESS_W: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_SAMPLER_STATE_MIP_LOD_BIAS: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_SAMPLER_STATE_ANISOTROPY_ENABLE: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_SAMPLER_STATE_MAX_ANISOTROPY: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_SAMPLER_STATE_COMPARE_ENABLE: ::std::os::raw::c_int = 9;
pub const TM_RENDERER_SAMPLER_STATE_COMPARE_OP: ::std::os::raw::c_int = 10;
pub const TM_RENDERER_SAMPLER_STATE_MIN_LOD: ::std::os::raw::c_int = 11;
pub const TM_RENDERER_SAMPLER_STATE_MAX_LOD: ::std::os::raw::c_int = 12;
pub const TM_RENDERER_SAMPLER_STATE_BORDER_COLOR: ::std::os::raw::c_int = 13;
pub const TM_RENDERER_SAMPLER_STATE_MAX_STATES: ::std::os::raw::c_int = 14;
pub type _bindgen_ty_160 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_sampler_state_names: [*const ::std::os::raw::c_char; 14usize];
}
extern "C" {
    pub static mut tm_renderer_sampler_state_types: [u32; 14usize];
}
pub const TM_RENDERER_FILTER_POINT: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_FILTER_LINEAR: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_FILTER_MAX_VALUES: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_161 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_filter_names: [*const ::std::os::raw::c_char; 2usize];
}
pub const TM_RENDERER_MIP_MODE_POINT: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_MIP_MODE_LINEAR: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_MIP_MODE_MAX_VALUES: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_162 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_mip_mode_names: [*const ::std::os::raw::c_char; 2usize];
}
pub const TM_RENDERER_ADDRESS_MODE_WRAP: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_ADDRESS_MODE_MIRROR_WRAP: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_ADDRESS_MODE_CLAMP: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_ADDRESS_MODE_CLAMP_BORDER_COLOR: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_ADDRESS_MODE_MIRROR_CLAMP: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_ADDRESS_MODE_MAX_VALUES: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_163 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_address_mode_names: [*const ::std::os::raw::c_char; 5usize];
}
pub const TM_RENDERER_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_BORDER_COLOR_INT_TRANSPARENT_BLACK: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_BORDER_COLOR_FLOAT_OPAQUE_BLACK: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_BORDER_COLOR_INT_OPAQUE_BLACK: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_BORDER_COLOR_FLOAT_OPAQUE_WHITE: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_BORDER_COLOR_INT_OPAQUE_WHITE: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_BORDER_COLOR_MAX_VALUES: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_164 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_border_color_names: [*const ::std::os::raw::c_char; 6usize];
}
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_BLEND_ENABLE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_SOURCE_BLEND_FACTOR_COLOR: ::std::os::raw::c_int =
    1;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_DESTINATION_BLEND_FACTOR_COLOR:
    ::std::os::raw::c_int = 2;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_BLEND_OP_COLOR: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_SOURCE_BLEND_FACTOR_ALPHA: ::std::os::raw::c_int =
    4;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_DESTINATION_BLEND_FACTOR_ALPHA:
    ::std::os::raw::c_int = 5;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_BLEND_OP_ALPHA: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_WRITE_MASK: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_MAX_STATES: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_165 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_render_target_blend_state_names:
        [*const ::std::os::raw::c_char; 8usize];
}
extern "C" {
    pub static mut tm_renderer_render_target_blend_state_types: [u32; 8usize];
}
pub const TM_RENDERER_BLEND_FACTOR_ZERO: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_BLEND_FACTOR_ONE: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_BLEND_FACTOR_SOURCE_COLOR: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE_COLOR: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_BLEND_FACTOR_DESTINATION_COLOR: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_DESTINATION_COLOR: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_BLEND_FACTOR_SOURCE_ALPHA: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE_ALPHA: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_BLEND_FACTOR_DESTINATION_ALPHA: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_DESTINATION_ALPHA: ::std::os::raw::c_int = 9;
pub const TM_RENDERER_BLEND_FACTOR_CONSTANT_COLOR: ::std::os::raw::c_int = 10;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR: ::std::os::raw::c_int = 11;
pub const TM_RENDERER_BLEND_FACTOR_CONSTANT_ALPHA: ::std::os::raw::c_int = 12;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA: ::std::os::raw::c_int = 13;
pub const TM_RENDERER_BLEND_FACTOR_SOURCE_ALPHA_SATURATE: ::std::os::raw::c_int = 14;
pub const TM_RENDERER_BLEND_FACTOR_SOURCE1_COLOR: ::std::os::raw::c_int = 15;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE1_COLOR: ::std::os::raw::c_int = 16;
pub const TM_RENDERER_BLEND_FACTOR_SOURCE1_ALPHA: ::std::os::raw::c_int = 17;
pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE1_ALPHA: ::std::os::raw::c_int = 18;
pub const TM_RENDERER_BLEND_FACTOR_MAX_VALUES: ::std::os::raw::c_int = 19;
pub type _bindgen_ty_166 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_blend_factor_names: [*const ::std::os::raw::c_char; 19usize];
}
pub const TM_RENDERER_LOGICAL_OP_CLEAR: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_LOGICAL_OP_AND: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_LOGICAL_OP_AND_REVERSE: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_LOGICAL_OP_COPY: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_LOGICAL_OP_AND_INVERTED: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_LOGICAL_OP_NO_OP: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_LOGICAL_OP_XOR: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_LOGICAL_OP_OR: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_LOGICAL_OP_NOR: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_LOGICAL_OP_EQUIVALENT: ::std::os::raw::c_int = 9;
pub const TM_RENDERER_LOGICAL_OP_INVERT: ::std::os::raw::c_int = 10;
pub const TM_RENDERER_LOGICAL_OP_OR_REVERSE: ::std::os::raw::c_int = 11;
pub const TM_RENDERER_LOGICAL_OP_COPY_INVERTED: ::std::os::raw::c_int = 12;
pub const TM_RENDERER_LOGICAL_OP_OR_INVERTED: ::std::os::raw::c_int = 13;
pub const TM_RENDERER_LOGICAL_OP_NAND: ::std::os::raw::c_int = 14;
pub const TM_RENDERER_LOGICAL_OP_SET: ::std::os::raw::c_int = 15;
pub const TM_RENDERER_LOGICAL_OP_MAX_VALUES: ::std::os::raw::c_int = 16;
pub type _bindgen_ty_167 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_logical_op_names: [*const ::std::os::raw::c_char; 16usize];
}
pub const TM_RENDERER_BLEND_OP_ADD: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_BLEND_OP_SUBTRACT: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_BLEND_OP_REVERSE_SUBTRACT: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_BLEND_OP_MIN: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_BLEND_OP_MAX: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_BLEND_OP_MAX_VALUES: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_168 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_value_blend_op_names: [*const ::std::os::raw::c_char; 5usize];
}
pub const TM_RENDERER_BLEND_WRITE_MASK_DISABLED: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_BLEND_WRITE_MASK_BLUE: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_BLEND_WRITE_MASK_ALPHA: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED_BLUE: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN_BLUE: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN_BLUE: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED_ALPHA: ::std::os::raw::c_int = 9;
pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN_ALPHA: ::std::os::raw::c_int = 10;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN_ALPHA: ::std::os::raw::c_int = 9;
pub const TM_RENDERER_BLEND_WRITE_MASK_BLUE_ALPHA: ::std::os::raw::c_int = 12;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED_BLUE_ALPHA: ::std::os::raw::c_int = 13;
pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN_BLUE_ALPHA: ::std::os::raw::c_int = 14;
pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN_BLUE_ALPHA: ::std::os::raw::c_int = 15;
pub const TM_RENDERER_BLEND_WRITE_MASK_MAX_VALUES: ::std::os::raw::c_int = 16;
pub type _bindgen_ty_169 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_enum_value_write_mask: [u32; 16usize];
}
extern "C" {
    pub static mut tm_renderer_value_write_mask_names: [*const ::std::os::raw::c_char; 16usize];
}
pub const TM_RENDERER_BLEND_STATE_LOGICAL_OPERATION_ENABLE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_BLEND_STATE_LOGICAL_OPERATION: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_0: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_1: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_2: ::std::os::raw::c_int = 4;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_3: ::std::os::raw::c_int = 5;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_4: ::std::os::raw::c_int = 6;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_5: ::std::os::raw::c_int = 7;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_6: ::std::os::raw::c_int = 8;
pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_7: ::std::os::raw::c_int = 9;
pub const TM_RENDERER_BLEND_STATE_MAX_STATES: ::std::os::raw::c_int = 10;
pub type _bindgen_ty_170 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_blend_state_names: [*const ::std::os::raw::c_char; 10usize];
}
extern "C" {
    pub static mut tm_renderer_blend_state_types: [u32; 10usize];
}
pub const TM_RENDERER_MULTI_SAMPLE_SHADING_ENABLE: ::std::os::raw::c_int = 0;
pub const TM_RENDERER_MULTI_MIN_SAMPLE_SHADING: ::std::os::raw::c_int = 1;
pub const TM_RENDERER_MULTI_SAMPLE_ALPHA_TO_COVERAGE_ENABLE: ::std::os::raw::c_int = 2;
pub const TM_RENDERER_MULTI_SAMPLE_ALPHA_TO_ONE_ENABLE: ::std::os::raw::c_int = 3;
pub const TM_RENDERER_MULTI_SAMPLE_MAX_STATES: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_171 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_renderer_multi_sample_state_names: [*const ::std::os::raw::c_char; 4usize];
}
extern "C" {
    pub static mut tm_renderer_multi_sample_state_types: [u32; 4usize];
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_setup_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_execute_o {
    _unused: [u8; 0],
}
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_SUB_MODULE_BITS_START:
    tm_render_graph_sort_key = 0;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_SUB_MODULE_BITS: tm_render_graph_sort_key =
    8;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_DEPTH_BITS_START: tm_render_graph_sort_key =
    8;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_DEPTH_BITS: tm_render_graph_sort_key = 16;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_INTERNAL_PASS_BITS_START:
    tm_render_graph_sort_key = 24;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_INTERNAL_PASS_BITS:
    tm_render_graph_sort_key = 27;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_PASS_BITS_START: tm_render_graph_sort_key =
    51;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_PASS_BITS: tm_render_graph_sort_key = 11;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_GRAPH_LOOP_BITS_START:
    tm_render_graph_sort_key = 62;
pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_GRAPH_LOOP_BITS: tm_render_graph_sort_key =
    2;
pub type tm_render_graph_sort_key = ::std::os::raw::c_int;
pub const tm_render_graph_write_bind_flag_TM_RENDER_GRAPH_WRITE_BIND_FLAG_UAV:
    tm_render_graph_write_bind_flag = 1;
pub const tm_render_graph_write_bind_flag_TM_RENDER_GRAPH_WRITE_BIND_FLAG_COLOR_TARGET:
    tm_render_graph_write_bind_flag = 2;
pub const tm_render_graph_write_bind_flag_TM_RENDER_GRAPH_WRITE_BIND_FLAG_DEPTH_STENCIL_TARGET:
    tm_render_graph_write_bind_flag = 4;
pub type tm_render_graph_write_bind_flag = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_handle_t {
    pub value: u32,
}
#[test]
fn bindgen_test_layout_tm_render_graph_handle_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_handle_t>(),
        4usize,
        concat!("Size of: ", stringify!(tm_render_graph_handle_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_handle_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_render_graph_handle_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_handle_t>())).value as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_handle_t),
            "::",
            stringify!(value)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_render_graph_blackboard_value {
    pub data: *mut ::std::os::raw::c_void,
    pub float32: f32,
    pub uint64: u64,
    pub uint32: u32,
    pub int64: i64,
    pub int32: i32,
    pub boolean: bool,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tm_render_graph_blackboard_value() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_blackboard_value>(),
        8usize,
        concat!("Size of: ", stringify!(tm_render_graph_blackboard_value))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_blackboard_value>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_render_graph_blackboard_value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_blackboard_value>())).data as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_blackboard_value),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_blackboard_value>())).float32 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_blackboard_value),
            "::",
            stringify!(float32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_blackboard_value>())).uint64 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_blackboard_value),
            "::",
            stringify!(uint64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_blackboard_value>())).uint32 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_blackboard_value),
            "::",
            stringify!(uint32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_blackboard_value>())).int64 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_blackboard_value),
            "::",
            stringify!(int64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_blackboard_value>())).int32 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_blackboard_value),
            "::",
            stringify!(int32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_blackboard_value>())).boolean as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_blackboard_value),
            "::",
            stringify!(boolean)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_viewer_t {
    pub sort_key: u64,
    pub visibility_mask: u64,
    pub viewer_system: *mut tm_shader_system_o,
    pub viewer_cbuffer: *mut tm_shader_constant_buffer_instance_t,
    pub viewer_rbinder: *mut tm_shader_resource_binder_instance_t,
    pub view: tm_mat44_t,
    pub projection: tm_mat44_t,
    pub near_plane: f32,
    pub far_plane: f32,
}
#[test]
fn bindgen_test_layout_tm_render_graph_viewer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_viewer_t>(),
        176usize,
        concat!("Size of: ", stringify!(tm_render_graph_viewer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_viewer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_viewer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).sort_key as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(sort_key)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).visibility_mask as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(visibility_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).viewer_system as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(viewer_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).viewer_cbuffer as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(viewer_cbuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).viewer_rbinder as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(viewer_rbinder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).view as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(view)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).projection as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(projection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).near_plane as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(near_plane)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_viewer_t>())).far_plane as *const _ as usize
        },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_viewer_t),
            "::",
            stringify!(far_plane)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            sort_key: u64,
            allocator: *mut tm_allocator_i,
            shader_repository: *mut tm_shader_repository_o,
        ) -> *mut tm_render_graph_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_render_graph_o)>,
    pub sort_key: ::std::option::Option<
        unsafe extern "C" fn(graph: *const tm_render_graph_o, material_layer_name: u64) -> u64,
    >,
    pub register_gpu_image: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_render_graph_o,
            name: u64,
            resource: u32,
            resource_state: u32,
            image_desc: *const tm_renderer_image_buffer_t,
        ),
    >,
    pub register_gpu_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_render_graph_o,
            name: u64,
            resource: u32,
            resource_state: u32,
            buffer_desc: *const tm_renderer_buffer_t,
        ),
    >,
    pub write_blackboard: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_render_graph_o,
            key: u64,
            value: tm_render_graph_blackboard_value,
        ),
    >,
    pub read_blackboard: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *const tm_render_graph_o,
            key: u64,
            value: *mut tm_render_graph_blackboard_value,
        ) -> bool,
    >,
    pub setup_passes: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_render_graph_o,
            render_module: *mut tm_render_graph_module_o,
        ),
    >,
    pub validate_and_build: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_render_graph_o,
            backend: *mut tm_renderer_backend_i,
            device_affinity_mask: u32,
        ) -> bool,
    >,
    pub execute: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_render_graph_o,
            backend: *mut tm_renderer_backend_i,
            shader_context: *const tm_shader_system_context_o,
            device_affinity_mask: u32,
        ) -> *mut tm_atomic_counter_o,
    >,
    pub resource_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *const tm_render_graph_o,
            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
            num_resource_buffers: *mut u32,
        ),
    >,
    pub command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *const tm_render_graph_o,
            command_buffers: *mut *mut tm_renderer_command_buffer_o,
            num_command_buffers: *mut u32,
        ),
    >,
    pub viewers: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *mut tm_render_graph_o,
            viewers: *mut tm_render_graph_viewer_t,
            num_viewers: *mut u32,
        ),
    >,
    pub backend_handle: ::std::option::Option<
        unsafe extern "C" fn(
            graph: *const tm_render_graph_o,
            graph_handle: tm_render_graph_handle_t,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_render_graph_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_api>(),
        112usize,
        concat!("Size of: ", stringify!(tm_render_graph_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_api>())).sort_key as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(sort_key)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).register_gpu_image as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(register_gpu_image)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).register_gpu_buffer as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(register_gpu_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).write_blackboard as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(write_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).read_blackboard as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(read_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).setup_passes as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(setup_passes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).validate_and_build as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(validate_and_build)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_api>())).execute as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(execute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).resource_buffers as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(resource_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).command_buffers as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(command_buffers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_api>())).viewers as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(viewers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_api>())).backend_handle as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_api),
            "::",
            stringify!(backend_handle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_module_editor_submenu_i {
    pub submenu_name: *const ::std::os::raw::c_char,
    pub inst: *mut ::std::os::raw::c_void,
    pub submenu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            submenu_pos: tm_vec2_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_render_graph_module_editor_submenu_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_module_editor_submenu_i>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tm_render_graph_module_editor_submenu_i)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_module_editor_submenu_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_render_graph_module_editor_submenu_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_editor_submenu_i>())).submenu_name
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_editor_submenu_i),
            "::",
            stringify!(submenu_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_editor_submenu_i>())).inst as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_editor_submenu_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_editor_submenu_i>())).submenu as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_editor_submenu_i),
            "::",
            stringify!(submenu)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_module_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            name: *const ::std::os::raw::c_char,
        ) -> *mut tm_render_graph_module_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub add_pass: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            pass: *mut tm_render_graph_pass_i,
        ),
    >,
    pub add_extension_point: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            extension_point_name: u64,
        ),
    >,
    pub insert_extension: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            extension_point_name: u64,
            extension: *mut tm_render_graph_module_o,
            ordering_weight: f32,
        ) -> bool,
    >,
    pub add_sub_module: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            shader_layer_name: u64,
            sub_module: *mut tm_render_graph_module_o,
        ),
    >,
    pub init_passes: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub set_editor_submenu_interface: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            submenu_i: *mut tm_render_graph_module_editor_submenu_i,
        ),
    >,
    pub editor_submenu: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            submenu_pos: tm_vec2_t,
        ),
    >,
    pub create_persistent_gpu_image: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            name: u64,
            image_desc: *const tm_renderer_image_buffer_t,
            inherits: u64,
        ),
    >,
    pub create_persistent_gpu_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            render_module: *mut tm_render_graph_module_o,
            name: u64,
            buffer_desc: *const tm_renderer_buffer_t,
            inherits: u64,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_render_graph_module_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_module_api>(),
        88usize,
        concat!("Size of: ", stringify!(tm_render_graph_module_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_module_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_module_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).add_pass as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(add_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).add_extension_point as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(add_extension_point)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).insert_extension as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(insert_extension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).add_sub_module as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(add_sub_module)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).init_passes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(init_passes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).set_editor_submenu_interface
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(set_editor_submenu_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).editor_submenu as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(editor_submenu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).create_persistent_gpu_image
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(create_persistent_gpu_image)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_module_api>())).create_persistent_gpu_buffer
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_module_api),
            "::",
            stringify!(create_persistent_gpu_buffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_setup_api {
    pub external_resource: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            name: u64,
        ) -> tm_render_graph_handle_t,
    >,
    pub image_desc: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            handle: tm_render_graph_handle_t,
        ) -> *const tm_renderer_image_buffer_t,
    >,
    pub buffer_desc: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            handle: tm_render_graph_handle_t,
        ) -> *const tm_renderer_buffer_t,
    >,
    pub shader_repository: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
        ) -> *mut tm_shader_repository_o,
    >,
    pub create_gpu_images: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            image_descs: *const tm_renderer_image_buffer_t,
            num_images: u32,
            handles: *mut tm_render_graph_handle_t,
        ),
    >,
    pub create_gpu_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            buffer_descs: *const tm_renderer_buffer_t,
            num_buffers: u32,
            handles: *mut tm_render_graph_handle_t,
        ),
    >,
    pub read_gpu_resource: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            handle: tm_render_graph_handle_t,
            wanted_resource_state: u32,
        ),
    >,
    pub write_gpu_resource: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            handle: tm_render_graph_handle_t,
            write_bind_flags: u32,
            wanted_resource_state: u32,
            load_op: u32,
            bind_slot: u32,
            blackboard_key: u64,
        ),
    >,
    pub set_active: ::std::option::Option<
        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, state: bool),
    >,
    pub set_output: ::std::option::Option<
        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, state: bool),
    >,
    pub set_request_async_compute: ::std::option::Option<
        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, state: bool),
    >,
    pub set_request_multi_gpu: ::std::option::Option<
        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, device_affinity_mask: u32),
    >,
    pub expose_as_material_layer: ::std::option::Option<
        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, layer_name: u64),
    >,
    pub write_blackboard: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            key: u64,
            value: tm_render_graph_blackboard_value,
        ),
    >,
    pub read_blackboard: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            key: u64,
            value: *mut tm_render_graph_blackboard_value,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_render_graph_setup_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_setup_api>(),
        120usize,
        concat!("Size of: ", stringify!(tm_render_graph_setup_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_setup_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_setup_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).external_resource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(external_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).image_desc as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(image_desc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).buffer_desc as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(buffer_desc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).shader_repository as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(shader_repository)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).create_gpu_images as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(create_gpu_images)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).create_gpu_buffers as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(create_gpu_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).read_gpu_resource as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(read_gpu_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).write_gpu_resource as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(write_gpu_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).set_active as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(set_active)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).set_output as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(set_output)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).set_request_async_compute
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(set_request_async_compute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).set_request_multi_gpu as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(set_request_multi_gpu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).expose_as_material_layer
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(expose_as_material_layer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).write_blackboard as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(write_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_setup_api>())).read_blackboard as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_setup_api),
            "::",
            stringify!(read_blackboard)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_layer_sort_key_t {
    pub layer_name: u64,
    pub sort_key: u64,
}
#[test]
fn bindgen_test_layout_tm_render_graph_layer_sort_key_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_layer_sort_key_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_render_graph_layer_sort_key_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_layer_sort_key_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_render_graph_layer_sort_key_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_layer_sort_key_t>())).layer_name as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_layer_sort_key_t),
            "::",
            stringify!(layer_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_layer_sort_key_t>())).sort_key as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_layer_sort_key_t),
            "::",
            stringify!(sort_key)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_execute_api {
    pub default_command_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            graph_execute: *mut tm_render_graph_execute_o,
        ) -> *mut tm_renderer_command_buffer_o,
    >,
    pub default_resource_command_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            graph_execute: *mut tm_render_graph_execute_o,
        ) -> *mut tm_renderer_resource_command_buffer_o,
    >,
    pub shader_context: ::std::option::Option<
        unsafe extern "C" fn(
            graph_execute: *mut tm_render_graph_execute_o,
        ) -> *const tm_shader_system_context_o,
    >,
    pub device_affinity_mask: ::std::option::Option<
        unsafe extern "C" fn(graph_execute: *mut tm_render_graph_execute_o) -> u32,
    >,
    pub backend_handle: ::std::option::Option<
        unsafe extern "C" fn(
            graph_execute: *mut tm_render_graph_execute_o,
            graph_handle: tm_render_graph_handle_t,
        ) -> u32,
    >,
    pub run_sub_module: ::std::option::Option<
        unsafe extern "C" fn(
            graph_execute: *mut tm_render_graph_execute_o,
            sub_module_name: u64,
            sort_key: u64,
            commands: *mut tm_renderer_command_buffer_o,
        ),
    >,
    pub read_blackboard: ::std::option::Option<
        unsafe extern "C" fn(
            graph_execute: *mut tm_render_graph_execute_o,
            key: u64,
            value: *mut tm_render_graph_blackboard_value,
        ) -> bool,
    >,
    pub append_viewers: ::std::option::Option<
        unsafe extern "C" fn(
            graph_execute: *mut tm_render_graph_execute_o,
            viewers: *const tm_render_graph_viewer_t,
            num_viewers: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_render_graph_execute_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_execute_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_render_graph_execute_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_execute_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_execute_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).default_command_buffer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(default_command_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).default_resource_command_buffer
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(default_resource_command_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).shader_context as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(shader_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).device_affinity_mask as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).backend_handle as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(backend_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).run_sub_module as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(run_sub_module)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).read_blackboard as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(read_blackboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_execute_api>())).append_viewers as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_execute_api),
            "::",
            stringify!(append_viewers)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_pass_api {
    pub init_pass: ::std::option::Option<
        unsafe extern "C" fn(
            const_data: *mut ::std::os::raw::c_void,
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub shutdown_pass: ::std::option::Option<
        unsafe extern "C" fn(
            const_data: *mut ::std::os::raw::c_void,
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub setup_pass: ::std::option::Option<
        unsafe extern "C" fn(
            const_data: *const ::std::os::raw::c_void,
            runtime_data: *mut ::std::os::raw::c_void,
            graph_setup: *mut tm_render_graph_setup_o,
        ),
    >,
    pub execute_pass: ::std::option::Option<
        unsafe extern "C" fn(
            const_data: *const ::std::os::raw::c_void,
            runtime_data: *mut ::std::os::raw::c_void,
            sort_key: u64,
            graph_execute: *mut tm_render_graph_execute_o,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_render_graph_pass_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_pass_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_render_graph_pass_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_pass_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_pass_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_api>())).init_pass as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_api),
            "::",
            stringify!(init_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_api>())).shutdown_pass as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_api),
            "::",
            stringify!(shutdown_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_api>())).setup_pass as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_api),
            "::",
            stringify!(setup_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_api>())).execute_pass as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_api),
            "::",
            stringify!(execute_pass)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_pass_i {
    pub const_data: *mut ::std::os::raw::c_void,
    pub const_data_size: u64,
    pub runtime_data_size: u64,
    pub profiling_scope: *const ::std::os::raw::c_char,
    pub api: tm_render_graph_pass_api,
}
#[test]
fn bindgen_test_layout_tm_render_graph_pass_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_pass_i>(),
        64usize,
        concat!("Size of: ", stringify!(tm_render_graph_pass_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_pass_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_pass_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_i>())).const_data as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_i),
            "::",
            stringify!(const_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_i>())).const_data_size as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_i),
            "::",
            stringify!(const_data_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_i>())).runtime_data_size as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_i),
            "::",
            stringify!(runtime_data_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_pass_i>())).profiling_scope as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_i),
            "::",
            stringify!(profiling_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_graph_pass_i>())).api as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_pass_i),
            "::",
            stringify!(api)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_module_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_context_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_pipeline_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_pipeline_update_frame_parameters_t {
    pub last_time: f32,
    pub time: f32,
    pub delta_time: f32,
    pub frame_number: u32,
    pub selection_outline_color: tm_vec4_t,
}
#[test]
fn bindgen_test_layout_tm_render_pipeline_update_frame_parameters_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_pipeline_update_frame_parameters_t>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_render_pipeline_update_frame_parameters_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_pipeline_update_frame_parameters_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_render_pipeline_update_frame_parameters_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_update_frame_parameters_t>())).last_time
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_update_frame_parameters_t),
            "::",
            stringify!(last_time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_update_frame_parameters_t>())).time
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_update_frame_parameters_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_update_frame_parameters_t>())).delta_time
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_update_frame_parameters_t),
            "::",
            stringify!(delta_time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_update_frame_parameters_t>())).frame_number
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_update_frame_parameters_t),
            "::",
            stringify!(frame_number)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_update_frame_parameters_t>()))
                .selection_outline_color as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_update_frame_parameters_t),
            "::",
            stringify!(selection_outline_color)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_pipeline_shader_system_t {
    pub system: *mut tm_shader_system_o,
    pub constants: *mut tm_shader_constant_buffer_instance_t,
    pub resources: *mut tm_shader_resource_binder_instance_t,
}
#[test]
fn bindgen_test_layout_tm_render_pipeline_shader_system_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_pipeline_shader_system_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_render_pipeline_shader_system_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_pipeline_shader_system_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_render_pipeline_shader_system_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_shader_system_t>())).system as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_shader_system_t),
            "::",
            stringify!(system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_shader_system_t>())).constants as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_shader_system_t),
            "::",
            stringify!(constants)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_shader_system_t>())).resources as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_shader_system_t),
            "::",
            stringify!(resources)
        )
    );
}
pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_FRAME_PARAMETERS:
    tm_render_pipeline_global_shader_system = 0;
pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_EDITOR_SELECTION:
    tm_render_pipeline_global_shader_system = 1;
pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_DYNAMIC_OBJECT:
    tm_render_pipeline_global_shader_system = 2;
pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_LIGHTING_SYSTEM:
    tm_render_pipeline_global_shader_system = 3;
pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_SHADER_SYSTEMS_MAX:
    tm_render_pipeline_global_shader_system = 4;
pub type tm_render_pipeline_global_shader_system = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_pipeline_api {
    pub name: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ) -> *mut tm_render_pipeline_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_render_pipeline_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub main_module: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_render_pipeline_o) -> *mut tm_render_graph_module_o,
    >,
    pub begin: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_render_pipeline_o,
            graph: *mut tm_render_graph_o,
            context: *mut tm_shader_system_context_o,
        ),
    >,
    pub end: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_render_pipeline_o,
            graph: *mut tm_render_graph_o,
            context: *mut tm_shader_system_context_o,
        ),
    >,
    pub editor_submenu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_render_pipeline_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            submenu_pos: tm_vec2_t,
        ),
    >,
    pub global_shader_system: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_render_pipeline_o,
            system_id: tm_render_pipeline_global_shader_system,
            system: *mut tm_render_pipeline_shader_system_t,
        ) -> bool,
    >,
    pub update_frame_parameters: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_render_pipeline_o,
            frame_params: *const tm_render_pipeline_update_frame_parameters_t,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_render_pipeline_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_pipeline_api>(),
        72usize,
        concat!("Size of: ", stringify!(tm_render_pipeline_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_pipeline_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_pipeline_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_pipeline_api>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_pipeline_api>())).create as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_pipeline_api>())).destroy as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_api>())).main_module as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(main_module)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_pipeline_api>())).begin as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(begin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_pipeline_api>())).end as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(end)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_api>())).editor_submenu as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(editor_submenu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_api>())).global_shader_system as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(global_shader_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_pipeline_api>())).update_frame_parameters as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_api),
            "::",
            stringify!(update_frame_parameters)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_pipeline_i {
    pub inst: *mut tm_render_pipeline_o,
    pub api: *mut tm_render_pipeline_api,
}
#[test]
fn bindgen_test_layout_tm_render_pipeline_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_pipeline_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_render_pipeline_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_pipeline_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_pipeline_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_pipeline_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_pipeline_i>())).api as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_pipeline_i),
            "::",
            stringify!(api)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shadow_map_manager_o {
    _unused: [u8; 0],
}
pub const TM_SHADOW_LIGHT_TYPE_POINT: ::std::os::raw::c_int = 0;
pub const TM_SHADOW_LIGHT_TYPE_SPOT: ::std::os::raw::c_int = 1;
pub const TM_SHADOW_LIGHT_TYPE_DIRECTIONAL: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_172 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_shadow_mapping_input_t {
    pub tm: tm_mat44_t,
    pub type_: u32,
    pub __bindgen_anon_1: tm_shadow_mapping_input_t__bindgen_ty_1,
    pub depth_bias: f32,
    pub _padding_40: [::std::os::raw::c_char; 4usize],
    pub shadow_data_offset: *mut u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_shadow_mapping_input_t__bindgen_ty_1 {
    pub directional: tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1,
    pub point_spot: tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u32; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1 {
    pub num_cascades: u32,
    pub shadow_distance: f32,
    pub uniform_log_weight: f32,
}
#[test]
fn bindgen_test_layout_tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1>()))
                .num_cascades as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(num_cascades)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1>()))
                .shadow_distance as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(shadow_distance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1>()))
                .uniform_log_weight as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uniform_log_weight)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2 {
    pub near_range: f32,
    pub far_range: f32,
    pub spot_angle_outer: f32,
}
#[test]
fn bindgen_test_layout_tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2>()))
                .near_range as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(near_range)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2>()))
                .far_range as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(far_range)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2>()))
                .spot_angle_outer as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(spot_angle_outer)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_shadow_mapping_input_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_shadow_mapping_input_t__bindgen_ty_1>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shadow_mapping_input_t__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1>())).directional
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1),
            "::",
            stringify!(directional)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t__bindgen_ty_1>())).point_spot
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t__bindgen_ty_1),
            "::",
            stringify!(point_spot)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_shadow_mapping_input_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shadow_mapping_input_t>(),
        96usize,
        concat!("Size of: ", stringify!(tm_shadow_mapping_input_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shadow_mapping_input_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shadow_mapping_input_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shadow_mapping_input_t>())).tm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t),
            "::",
            stringify!(tm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shadow_mapping_input_t>())).type_ as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t>())).depth_bias as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t),
            "::",
            stringify!(depth_bias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t>()))._padding_40 as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t),
            "::",
            stringify!(_padding_40)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_input_t>())).shadow_data_offset as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_input_t),
            "::",
            stringify!(shadow_data_offset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shadow_mapping_api {
    pub create_manager: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            viewer_system: *mut tm_shader_system_o,
            visibility_mask: u64,
            shadow_atlas_width: u32,
            shadow_atlas_height: u32,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ) -> *mut tm_shadow_map_manager_o,
    >,
    pub destroy_manager: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_shadow_map_manager_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub shadow_passes: ::std::option::Option<
        unsafe extern "C" fn(
            mod_: *mut tm_render_graph_module_o,
            shadow_map_manager: *mut tm_shadow_map_manager_o,
            blackboard_lighting_system_name: u64,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_shadow_mapping_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_shadow_mapping_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_shadow_mapping_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shadow_mapping_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shadow_mapping_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_api>())).create_manager as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_api),
            "::",
            stringify!(create_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_api>())).destroy_manager as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_api),
            "::",
            stringify!(destroy_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shadow_mapping_api>())).shadow_passes as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shadow_mapping_api),
            "::",
            stringify!(shadow_passes)
        )
    );
}
pub const TM_MAX_RENDER_TARGETS: ::std::os::raw::c_int = 8;
pub const TM_MAX_UAVS: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_173 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_pass_render_target_t {
    pub name: u64,
    pub load_op: u8,
    pub store_op: u8,
    pub create: bool,
    pub _padding_30: [::std::os::raw::c_char; 5usize],
    pub inherits: u64,
    pub scale: [f32; 3usize],
    pub _padding_35: [::std::os::raw::c_char; 4usize],
    pub __bindgen_anon_1: tm_pass_render_target_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_pass_render_target_t__bindgen_ty_1 {
    pub desc: *mut tm_renderer_image_buffer_t,
    pub opaque: [u8; 64usize],
    _bindgen_union_align: [u64; 8usize],
}
#[test]
fn bindgen_test_layout_tm_pass_render_target_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_pass_render_target_t__bindgen_ty_1>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(tm_pass_render_target_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_pass_render_target_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_pass_render_target_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_render_target_t__bindgen_ty_1>())).desc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t__bindgen_ty_1),
            "::",
            stringify!(desc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_render_target_t__bindgen_ty_1>())).opaque as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t__bindgen_ty_1),
            "::",
            stringify!(opaque)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_pass_render_target_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_pass_render_target_t>(),
        104usize,
        concat!("Size of: ", stringify!(tm_pass_render_target_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_pass_render_target_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_pass_render_target_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_pass_render_target_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_pass_render_target_t>())).load_op as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(load_op)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_render_target_t>())).store_op as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(store_op)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_pass_render_target_t>())).create as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_render_target_t>()))._padding_30 as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(_padding_30)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_render_target_t>())).inherits as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(inherits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_pass_render_target_t>())).scale as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_render_target_t>()))._padding_35 as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_render_target_t),
            "::",
            stringify!(_padding_35)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_pass_buffer_write_t {
    pub name: u64,
    pub usage_flags: u8,
    pub create: bool,
    pub _padding_54: [::std::os::raw::c_char; 2usize],
    pub size: u32,
}
#[test]
fn bindgen_test_layout_tm_pass_buffer_write_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_pass_buffer_write_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_pass_buffer_write_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_pass_buffer_write_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_pass_buffer_write_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_pass_buffer_write_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_buffer_write_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_buffer_write_t>())).usage_flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_buffer_write_t),
            "::",
            stringify!(usage_flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_pass_buffer_write_t>())).create as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_buffer_write_t),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_pass_buffer_write_t>()))._padding_54 as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_buffer_write_t),
            "::",
            stringify!(_padding_54)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_pass_buffer_write_t>())).size as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_pass_buffer_write_t),
            "::",
            stringify!(size)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_material_pass_setup_t {
    pub output_pass: bool,
    pub _padding_64: [::std::os::raw::c_char; 7usize],
    pub color_targets: [tm_pass_render_target_t; 8usize],
    pub depth_stencil_target: tm_pass_render_target_t,
    pub layer_name: u64,
}
#[test]
fn bindgen_test_layout_tm_material_pass_setup_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_material_pass_setup_t>(),
        952usize,
        concat!("Size of: ", stringify!(tm_material_pass_setup_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_material_pass_setup_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_material_pass_setup_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_material_pass_setup_t>())).output_pass as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_material_pass_setup_t),
            "::",
            stringify!(output_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_material_pass_setup_t>()))._padding_64 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_material_pass_setup_t),
            "::",
            stringify!(_padding_64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_material_pass_setup_t>())).color_targets as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_material_pass_setup_t),
            "::",
            stringify!(color_targets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_material_pass_setup_t>())).depth_stencil_target as *const _
                as usize
        },
        840usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_material_pass_setup_t),
            "::",
            stringify!(depth_stencil_target)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_material_pass_setup_t>())).layer_name as *const _ as usize
        },
        944usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_material_pass_setup_t),
            "::",
            stringify!(layer_name)
        )
    );
}
pub const TM_FULLSCREEN_PASS_MAX_INPUT_RESOURCES_PER_SLOT: ::std::os::raw::c_int = 8;
pub const TM_FULLSCREEN_PASS_MAX_INPUT_SLOTS: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_174 = ::std::os::raw::c_int;
pub const tm_fullscreen_pass_type_TM_FULLSCREEN_PASS_TYPE__GRAPHICS: tm_fullscreen_pass_type = 0;
pub const tm_fullscreen_pass_type_TM_FULLSCREEN_PASS_TYPE__COMPUTE: tm_fullscreen_pass_type = 1;
pub type tm_fullscreen_pass_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_fullscreen_pass_input_resource_t {
    pub name: u64,
    pub view_aspect_flag: u32,
    pub _padding_90: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_fullscreen_pass_input_resource_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_fullscreen_pass_input_resource_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_fullscreen_pass_input_resource_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_fullscreen_pass_input_resource_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_fullscreen_pass_input_resource_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_input_resource_t>())).name as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_input_resource_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_input_resource_t>())).view_aspect_flag
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_input_resource_t),
            "::",
            stringify!(view_aspect_flag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_input_resource_t>()))._padding_90 as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_input_resource_t),
            "::",
            stringify!(_padding_90)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_fullscreen_pass_input_slot_resources_t {
    pub slot_name: u64,
    pub bind_flag_name: u64,
    pub resources: [tm_fullscreen_pass_input_resource_t; 8usize],
}
#[test]
fn bindgen_test_layout_tm_fullscreen_pass_input_slot_resources_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_fullscreen_pass_input_slot_resources_t>(),
        144usize,
        concat!(
            "Size of: ",
            stringify!(tm_fullscreen_pass_input_slot_resources_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_fullscreen_pass_input_slot_resources_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_fullscreen_pass_input_slot_resources_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_input_slot_resources_t>())).slot_name
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_input_slot_resources_t),
            "::",
            stringify!(slot_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_input_slot_resources_t>())).bind_flag_name
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_input_slot_resources_t),
            "::",
            stringify!(bind_flag_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_input_slot_resources_t>())).resources
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_input_slot_resources_t),
            "::",
            stringify!(resources)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_fullscreen_pass_setup_t {
    pub output_pass: bool,
    pub type_: u8,
    pub _padding_112: [::std::os::raw::c_char; 2usize],
    pub group_count: [u32; 3usize],
    pub input_slots: [tm_fullscreen_pass_input_slot_resources_t; 4usize],
    pub color_targets: [tm_pass_render_target_t; 8usize],
    pub depth_stencil_target: tm_pass_render_target_t,
    pub buffer_writes: [tm_pass_buffer_write_t; 8usize],
    pub shader: u64,
}
#[test]
fn bindgen_test_layout_tm_fullscreen_pass_setup_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_fullscreen_pass_setup_t>(),
        1664usize,
        concat!("Size of: ", stringify!(tm_fullscreen_pass_setup_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_fullscreen_pass_setup_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_fullscreen_pass_setup_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).output_pass as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(output_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).type_ as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>()))._padding_112 as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(_padding_112)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).group_count as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(group_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).input_slots as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(input_slots)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).color_targets as *const _
                as usize
        },
        592usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(color_targets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).depth_stencil_target as *const _
                as usize
        },
        1424usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(depth_stencil_target)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).buffer_writes as *const _
                as usize
        },
        1528usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(buffer_writes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_fullscreen_pass_setup_t>())).shader as *const _ as usize
        },
        1656usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_fullscreen_pass_setup_t),
            "::",
            stringify!(shader)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_debug_visualization_pass_setup_t {
    pub color_target: u64,
    pub shader: u64,
}
#[test]
fn bindgen_test_layout_tm_debug_visualization_pass_setup_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_debug_visualization_pass_setup_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_debug_visualization_pass_setup_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_debug_visualization_pass_setup_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_debug_visualization_pass_setup_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_pass_setup_t>())).color_target as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_pass_setup_t),
            "::",
            stringify!(color_target)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_pass_setup_t>())).shader as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_pass_setup_t),
            "::",
            stringify!(shader)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_debug_visualization_resources_t {
    pub resources: [tm_debug_visualization_resources_t__bindgen_ty_1; 16usize],
    pub num_resources: u32,
    pub _padding_156: [::std::os::raw::c_char; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_debug_visualization_resources_t__bindgen_ty_1 {
    pub name: u64,
    pub view_aspect_flag: u32,
    pub contents: tm_debug_visualization_resources_t__bindgen_ty_1__bindgen_ty_1,
}
pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_COLOR_RGB:
    ::std::os::raw::c_int = 0;
pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_COLOR_A: ::std::os::raw::c_int =
    1;
pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_NORMALS: ::std::os::raw::c_int =
    2;
pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_SHADOW_MAP:
    ::std::os::raw::c_int = 3;
pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_PIXEL_VELOCITY:
    ::std::os::raw::c_int = 4;
pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_EV100: ::std::os::raw::c_int = 5;
pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_NAN_INF: ::std::os::raw::c_int =
    6;
pub type tm_debug_visualization_resources_t__bindgen_ty_1__bindgen_ty_1 = ::std::os::raw::c_int;
#[test]
fn bindgen_test_layout_tm_debug_visualization_resources_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_debug_visualization_resources_t__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_debug_visualization_resources_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_debug_visualization_resources_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_debug_visualization_resources_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_resources_t__bindgen_ty_1>())).name
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_resources_t__bindgen_ty_1),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_resources_t__bindgen_ty_1>()))
                .view_aspect_flag as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_resources_t__bindgen_ty_1),
            "::",
            stringify!(view_aspect_flag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_resources_t__bindgen_ty_1>())).contents
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_resources_t__bindgen_ty_1),
            "::",
            stringify!(contents)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_debug_visualization_resources_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_debug_visualization_resources_t>(),
        264usize,
        concat!("Size of: ", stringify!(tm_debug_visualization_resources_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_debug_visualization_resources_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_debug_visualization_resources_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_resources_t>())).resources as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_resources_t),
            "::",
            stringify!(resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_resources_t>())).num_resources as *const _
                as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_resources_t),
            "::",
            stringify!(num_resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_debug_visualization_resources_t>()))._padding_156 as *const _
                as usize
        },
        260usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_debug_visualization_resources_t),
            "::",
            stringify!(_padding_156)
        )
    );
}
pub type tm_custom_fullscreen_setup = ::std::option::Option<
    unsafe extern "C" fn(
        const_data: *const ::std::os::raw::c_void,
        runtime_data: *mut ::std::os::raw::c_void,
        graph_setup: *mut tm_render_graph_setup_o,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_graph_toolbox_api {
    pub fullscreen_pass: ::std::option::Option<
        unsafe extern "C" fn(
            module: *mut tm_render_graph_module_o,
            setup: *mut tm_fullscreen_pass_setup_t,
            profiling_scope: *const ::std::os::raw::c_char,
        ),
    >,
    pub custom_fullscreen_pass: ::std::option::Option<
        unsafe extern "C" fn(
            module: *mut tm_render_graph_module_o,
            setup: tm_custom_fullscreen_setup,
            const_data: *const ::std::os::raw::c_void,
            const_data_size: u32,
            profiling_scope: *const ::std::os::raw::c_char,
        ),
    >,
    pub material_pass: ::std::option::Option<
        unsafe extern "C" fn(
            module: *mut tm_render_graph_module_o,
            setup: *mut tm_material_pass_setup_t,
            profiling_scope: *const ::std::os::raw::c_char,
        ),
    >,
    pub debug_visualization_pass: ::std::option::Option<
        unsafe extern "C" fn(
            module: *mut tm_render_graph_module_o,
            setup: *mut tm_debug_visualization_pass_setup_t,
            profiling_scope: *const ::std::os::raw::c_char,
        ),
    >,
    pub setup_render_target_writes: ::std::option::Option<
        unsafe extern "C" fn(
            color_targets: *const tm_pass_render_target_t,
            depth_stencil_target: *const tm_pass_render_target_t,
            buffer_writes: *const tm_pass_buffer_write_t,
            graph_setup: *mut tm_render_graph_setup_o,
        ),
    >,
    pub setup_render_target_descs: ::std::option::Option<
        unsafe extern "C" fn(
            color_targets: *mut tm_pass_render_target_t,
            depth_stencil_target: *mut tm_pass_render_target_t,
        ),
    >,
    pub setup_fullscreen_pass: ::std::option::Option<
        unsafe extern "C" fn(
            setup: *mut tm_fullscreen_pass_setup_t,
            runtime_data: *mut ::std::os::raw::c_void,
            graph_setup: *mut tm_render_graph_setup_o,
        ),
    >,
    pub image_desc: ::std::option::Option<
        unsafe extern "C" fn(
            graph_setup: *mut tm_render_graph_setup_o,
            resource_name: u64,
        ) -> *const tm_renderer_image_buffer_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_render_graph_toolbox_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_graph_toolbox_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_render_graph_toolbox_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_graph_toolbox_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_graph_toolbox_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).fullscreen_pass as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(fullscreen_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).custom_fullscreen_pass
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(custom_fullscreen_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).material_pass as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(material_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).debug_visualization_pass
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(debug_visualization_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).setup_render_target_writes
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(setup_render_target_writes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).setup_render_target_descs
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(setup_render_target_descs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).setup_fullscreen_pass
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(setup_fullscreen_pass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_graph_toolbox_api>())).image_desc as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_graph_toolbox_api),
            "::",
            stringify!(image_desc)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_component_shader_system_t {
    pub active_viewer_mask: u64,
    pub system: *mut tm_shader_system_o,
    pub constants: *mut tm_shader_constant_buffer_instance_t,
    pub resources: *mut tm_shader_resource_binder_instance_t,
}
#[test]
fn bindgen_test_layout_tm_component_shader_system_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_component_shader_system_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_component_shader_system_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_component_shader_system_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_component_shader_system_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_t>())).active_viewer_mask as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_t),
            "::",
            stringify!(active_viewer_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_t>())).system as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_t),
            "::",
            stringify!(system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_t>())).constants as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_t),
            "::",
            stringify!(constants)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_t>())).resources as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_t),
            "::",
            stringify!(resources)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_component_shader_system_i {
    pub name_hash: u64,
    pub update_system: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            entity: tm_entity_t,
            component: *mut ::std::os::raw::c_void,
            entity_transform: *const tm_mat44_t,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            device_affinity_mask: u32,
            system: *mut tm_component_shader_system_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_component_shader_system_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_component_shader_system_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_component_shader_system_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_component_shader_system_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_component_shader_system_i))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_i>())).name_hash as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_i),
            "::",
            stringify!(name_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_i>())).update_system as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_i),
            "::",
            stringify!(update_system)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_component_shader_system_api {
    pub update_systems: ::std::option::Option<
        unsafe extern "C" fn(
            system_components: *const u32,
            systems: *mut *mut tm_component_shader_system_i,
            n_systems: u32,
            ctx: *mut tm_entity_context_o,
            entity: tm_entity_t,
            entity_transform: *const tm_mat44_t,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            device_affinity_mask: u32,
            active_systems: *mut tm_component_shader_system_t,
        ) -> u32,
    >,
    pub components: ::std::option::Option<
        unsafe extern "C" fn(
            systems: *mut *mut tm_component_shader_system_i,
            n_systems: u32,
            ctx: *mut tm_entity_context_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *const u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_component_shader_system_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_component_shader_system_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_component_shader_system_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_component_shader_system_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_component_shader_system_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_api>())).update_systems as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_api),
            "::",
            stringify!(update_systems)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_component_shader_system_api>())).components as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_component_shader_system_api),
            "::",
            stringify!(components)
        )
    );
}
pub const TM_TT_PROP__CUBEMAP_CAPTURE_COMPONENT__CAPTURE_INTERFACE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CUBEMAP_CAPTURE_COMPONENT__OUTPUT_IMAGE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_175 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_cubemap_capture_component_t {
    pub image_asset: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_cubemap_capture_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_cubemap_capture_component_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_cubemap_capture_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_cubemap_capture_component_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_cubemap_capture_component_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_cubemap_capture_component_t>())).image_asset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cubemap_capture_component_t),
            "::",
            stringify!(image_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_cubemap_capture_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_cubemap_capture_api {
    pub capture: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_cubemap_capture_o,
            entity: tm_tt_id_t,
            resource: u32,
            resource_state: u16,
            output_desc: *const tm_renderer_image_buffer_t,
            device_affinity_mask: u32,
        ),
    >,
    pub interface_name: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_cubemap_capture_o) -> *const ::std::os::raw::c_char,
    >,
    pub interface_uid:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_cubemap_capture_o) -> u64>,
}
#[test]
fn bindgen_test_layout_tm_cubemap_capture_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_cubemap_capture_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_cubemap_capture_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_cubemap_capture_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_cubemap_capture_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cubemap_capture_api>())).capture as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cubemap_capture_api),
            "::",
            stringify!(capture)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_cubemap_capture_api>())).interface_name as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cubemap_capture_api),
            "::",
            stringify!(interface_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_cubemap_capture_api>())).interface_uid as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cubemap_capture_api),
            "::",
            stringify!(interface_uid)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_cubemap_capture_i {
    pub inst: *mut tm_cubemap_capture_o,
    pub api: *mut tm_cubemap_capture_api,
}
#[test]
fn bindgen_test_layout_tm_cubemap_capture_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_cubemap_capture_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_cubemap_capture_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_cubemap_capture_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_cubemap_capture_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cubemap_capture_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cubemap_capture_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_cubemap_capture_i>())).api as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_cubemap_capture_i),
            "::",
            stringify!(api)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gpu_picking_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gpu_picking_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            picking_system: *mut tm_shader_system_o,
            clear_picking_buffer_shader: *mut tm_shader_o,
        ) -> *mut tm_gpu_picking_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_gpu_picking_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub update_cpu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_gpu_picking_o,
            rb: *mut tm_renderer_backend_i,
            device_affinity_mask: u32,
            activate_system: bool,
            cursor_position: tm_vec2_t,
            opacity_threshold: f32,
            result: *mut u64,
        ) -> bool,
    >,
    pub update_gpu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_gpu_picking_o,
            context: *mut tm_shader_system_context_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
            device_affinity_mask: u32,
            resolution_scale: f32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_gpu_picking_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_gpu_picking_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_gpu_picking_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gpu_picking_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gpu_picking_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_picking_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_picking_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_picking_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_picking_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_picking_api>())).update_cpu as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_picking_api),
            "::",
            stringify!(update_cpu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gpu_picking_api>())).update_gpu as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gpu_picking_api),
            "::",
            stringify!(update_gpu)
        )
    );
}
pub const TM_TT_PROP__GRID_SETTINGS__CELL_SIZE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__GRID_SETTINGS__EXTENT: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__GRID_SETTINGS__INFINITE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__GRID_SETTINGS__THIN_LINES_COLOR: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__GRID_SETTINGS__THICK_LINES_COLOR: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_176 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_visual_grid_t {
    pub tm: tm_mat44_t,
    pub grid_extent: f32,
    pub cell_size: f32,
    pub infinite: bool,
    pub thin_lines_color: tm_color_srgb_t,
    pub thick_lines_color: tm_color_srgb_t,
    pub _padding_38: [::std::os::raw::c_char; 3usize],
}
#[test]
fn bindgen_test_layout_tm_visual_grid_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_visual_grid_t>(),
        84usize,
        concat!("Size of: ", stringify!(tm_visual_grid_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_visual_grid_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_visual_grid_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_visual_grid_t>())).tm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visual_grid_t),
            "::",
            stringify!(tm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_visual_grid_t>())).grid_extent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visual_grid_t),
            "::",
            stringify!(grid_extent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_visual_grid_t>())).cell_size as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visual_grid_t),
            "::",
            stringify!(cell_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_visual_grid_t>())).infinite as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visual_grid_t),
            "::",
            stringify!(infinite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visual_grid_t>())).thin_lines_color as *const _ as usize
        },
        73usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visual_grid_t),
            "::",
            stringify!(thin_lines_color)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_visual_grid_t>())).thick_lines_color as *const _ as usize
        },
        77usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visual_grid_t),
            "::",
            stringify!(thick_lines_color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_visual_grid_t>()))._padding_38 as *const _ as usize },
        81usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_visual_grid_t),
            "::",
            stringify!(_padding_38)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_grid_renderer_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub read_from_truth_settings: ::std::option::Option<
        unsafe extern "C" fn(
            grid: *mut tm_visual_grid_t,
            tt: *mut tm_the_truth_o,
            grid_settings: tm_tt_id_t,
        ),
    >,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            context: *const tm_shader_system_context_o,
            grid_shader: *mut tm_shader_o,
            grid: *const tm_visual_grid_t,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_grid_renderer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_grid_renderer_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_grid_renderer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_grid_renderer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_grid_renderer_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_grid_renderer_api>())).create_truth_types as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_grid_renderer_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_grid_renderer_api>())).read_from_truth_settings as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_grid_renderer_api),
            "::",
            stringify!(read_from_truth_settings)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_grid_renderer_api>())).render as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_grid_renderer_api),
            "::",
            stringify!(render)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tab_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_inspector_data_t {
    pub render_handle: u32,
    pub _padding_19: [::std::os::raw::c_char; 4usize],
    pub desc: *const tm_renderer_image_buffer_t,
    pub srgb: bool,
    pub display_channels_rgba: [bool; 4usize],
    pub _padding_30: [::std::os::raw::c_char; 3usize],
    pub checker_colors: [u32; 2usize],
    pub mip_level: u32,
    pub slice: u32,
    pub dpi_scale_factor: f32,
    pub origo: tm_vec2_t,
    pub zoom: f32,
}
#[test]
fn bindgen_test_layout_tm_image_inspector_data_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_image_inspector_data_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_image_inspector_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_image_inspector_data_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_image_inspector_data_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_inspector_data_t>())).render_handle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(render_handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_inspector_data_t>()))._padding_19 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(_padding_19)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_inspector_data_t>())).desc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(desc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_inspector_data_t>())).srgb as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(srgb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_inspector_data_t>())).display_channels_rgba as *const _
                as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(display_channels_rgba)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_inspector_data_t>()))._padding_30 as *const _ as usize
        },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(_padding_30)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_inspector_data_t>())).checker_colors as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(checker_colors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_inspector_data_t>())).mip_level as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(mip_level)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_inspector_data_t>())).slice as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(slice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_image_inspector_data_t>())).dpi_scale_factor as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(dpi_scale_factor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_inspector_data_t>())).origo as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(origo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_inspector_data_t>())).zoom as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_data_t),
            "::",
            stringify!(zoom)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_image_inspector_api {
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            shader: *mut tm_shader_o,
            data: *const tm_image_inspector_data_t,
            system_context: *const tm_shader_system_context_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
            sort_key: u64,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_image_inspector_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_image_inspector_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_image_inspector_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_image_inspector_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_image_inspector_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_image_inspector_api>())).render as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_image_inspector_api),
            "::",
            stringify!(render)
        )
    );
}
pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_LINES: tm_primitive_drawer_type = 0;
pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_SPHERE: tm_primitive_drawer_type = 1;
pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_CONE: tm_primitive_drawer_type = 2;
pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_TRIANGLES: tm_primitive_drawer_type = 3;
pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_FILLED_TRIANGLES: tm_primitive_drawer_type =
    4;
pub type tm_primitive_drawer_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_primitive_drawer_buffer_t {
    pub buffer: *mut u8,
    pub bytes: u32,
    pub bytes_allocated: u32,
}
#[test]
fn bindgen_test_layout_tm_primitive_drawer_buffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_primitive_drawer_buffer_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_primitive_drawer_buffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_primitive_drawer_buffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_primitive_drawer_buffer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_buffer_t>())).buffer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_buffer_t),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_buffer_t>())).bytes as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_buffer_t),
            "::",
            stringify!(bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_buffer_t>())).bytes_allocated as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_buffer_t),
            "::",
            stringify!(bytes_allocated)
        )
    );
}
pub const TM_PRIMITIVE_DRAWER__OK: ::std::os::raw::c_int = 0;
pub const TM_PRIMITIVE_DRAWER__PBUFFER_FULL: ::std::os::raw::c_int = 1;
pub const TM_PRIMITIVE_DRAWER__VBUFFER_FULL: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_177 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_primitive_drawer_api {
    pub stroke_lines: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            vertices: *const tm_vec3_t,
            num_lines: u32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_polyline: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            vertices: *const tm_vec3_t,
            num_vertices: u32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_triangles: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            vertices: *const tm_vec3_t,
            num_vertices: u32,
            indices: *const u32,
            num_indices: u32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_rect: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            width: f32,
            height: f32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_ellipse: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            width: f32,
            height: f32,
            divisions: u32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_cuboid: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            lower_bound: tm_vec3_t,
            upper_bound: tm_vec3_t,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_sphere: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            radius: f32,
            segments: u32,
            parts: u32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_cone: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            length: f32,
            radius: f32,
            segments: u32,
            bars: u32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub stroke_octasphere: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            r: f32,
            d: tm_vec3_t,
            n: u32,
            color: tm_color_srgb_t,
            line_width: f32,
        ) -> u32,
    >,
    pub fill_triangles: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            tm: *const tm_mat44_t,
            vertices: *const tm_vec3_t,
            num_vertices: u32,
            indices: *const u32,
            num_indices: u32,
            color: tm_color_srgb_t,
        ) -> u32,
    >,
    pub reserve: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            p_bytes: u32,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            v_bytes: u32,
            allocator: *mut tm_allocator_i,
        ),
    >,
    pub grow: ::std::option::Option<
        unsafe extern "C" fn(
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            res: u32,
            allocator: *mut tm_allocator_i,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_primitive_drawer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_primitive_drawer_api>(),
        96usize,
        concat!("Size of: ", stringify!(tm_primitive_drawer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_primitive_drawer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_primitive_drawer_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_lines as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_lines)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_polyline as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_polyline)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_triangles as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_triangles)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_rect as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_ellipse as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_ellipse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_cuboid as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_cuboid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_sphere as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_sphere)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_cone as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_cone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).stroke_octasphere as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(stroke_octasphere)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_drawer_api>())).fill_triangles as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(fill_triangles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_primitive_drawer_api>())).reserve as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(reserve)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_primitive_drawer_api>())).grow as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_drawer_api),
            "::",
            stringify!(grow)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_primitive_renderer_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_primitive_renderer_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ) -> *mut tm_primitive_renderer_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_primitive_renderer_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_primitive_renderer_o,
            pbuffer: *const tm_primitive_drawer_buffer_t,
            vbuffer: *const tm_primitive_drawer_buffer_t,
            shader: *mut tm_shader_o,
            shader_context: *const tm_shader_system_context_o,
            sort_key: u64,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_primitive_renderer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_primitive_renderer_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_primitive_renderer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_primitive_renderer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_primitive_renderer_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_renderer_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_renderer_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_renderer_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_renderer_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_primitive_renderer_api>())).render as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_primitive_renderer_api),
            "::",
            stringify!(render)
        )
    );
}
pub const TM_TT_PROP__RENDER_COMPONENT__CREATION_GRAPH: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_178 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_component_public_t {
    pub update_shader_variables: bool,
}
#[test]
fn bindgen_test_layout_tm_render_component_public_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_component_public_t>(),
        1usize,
        concat!("Size of: ", stringify!(tm_render_component_public_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_component_public_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_render_component_public_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_component_public_t>())).update_shader_variables
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_component_public_t),
            "::",
            stringify!(update_shader_variables)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_component_api {
    pub draw_call: ::std::option::Option<
        unsafe extern "C" fn(
            c: *mut tm_render_component_public_t,
            name: u64,
        ) -> *const tm_creation_graph_draw_call_data_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_render_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_component_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_render_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_component_api>())).draw_call as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_component_api),
            "::",
            stringify!(draw_call)
        )
    );
}
pub const TM_TT_PROP__SKINNING_COMPONENT__BONES: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_179 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_bone_t {
    pub name: u64,
    pub bone_idx: u32,
    pub inverse_bind: tm_transform_t,
    pub _padding_29: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_bone_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_bone_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_bone_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_bone_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_bone_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_t>())).bone_idx as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_t),
            "::",
            stringify!(bone_idx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_t>())).inverse_bind as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_t),
            "::",
            stringify!(inverse_bind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_bone_t>()))._padding_29 as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_bone_t),
            "::",
            stringify!(_padding_29)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_skinning_component_api {
    pub update_system: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            entity: tm_entity_t,
            component: *mut ::std::os::raw::c_void,
            entity_transform: *const tm_mat44_t,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            device_affinity_mask: u32,
            system: *mut tm_component_shader_system_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_skinning_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_skinning_component_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_skinning_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_skinning_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_skinning_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_skinning_component_api>())).update_system as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_skinning_component_api),
            "::",
            stringify!(update_system)
        )
    );
}
pub const TM_TT_PROP__SCULPT_COMPONENT__VISIBILITY_FLAGS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SCULPT_COMPONENT__NUM_BOXES: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_POS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_ROT: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_SIZE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_COLOR: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_PARENT: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__SCULPT_COMPONENT__SELECTION: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__SCULPT_COMPONENT__DRAW_COLOR: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_180 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__INDICES: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__POSITION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__ROTATION: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__EXTENT: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__COLOR: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_181 = ::std::os::raw::c_int;
pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__MOVE:
    tm_sculpt_component__select_sub_tool = 0;
pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__ROTATE:
    tm_sculpt_component__select_sub_tool = 1;
pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__SCALE:
    tm_sculpt_component__select_sub_tool = 2;
pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__COUNT:
    tm_sculpt_component__select_sub_tool = 3;
pub type tm_sculpt_component__select_sub_tool = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_sculpt_component__select_tool_settings_t {
    pub sub_tool: tm_sculpt_component__select_sub_tool,
    pub _padding_62: [::std::os::raw::c_char; 4usize],
    pub move_settings: *const tm_gizmo__move_settings_t,
    pub rotate_settings: *const tm_gizmo__rotate_settings_t,
    pub scale_settings: *const tm_gizmo__scale_settings_t,
}
#[test]
fn bindgen_test_layout_tm_sculpt_component__select_tool_settings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_sculpt_component__select_tool_settings_t>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(tm_sculpt_component__select_tool_settings_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_sculpt_component__select_tool_settings_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_sculpt_component__select_tool_settings_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_settings_t>())).sub_tool
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_settings_t),
            "::",
            stringify!(sub_tool)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_settings_t>()))._padding_62
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_settings_t),
            "::",
            stringify!(_padding_62)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_settings_t>())).move_settings
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_settings_t),
            "::",
            stringify!(move_settings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_settings_t>())).rotate_settings
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_settings_t),
            "::",
            stringify!(rotate_settings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_settings_t>())).scale_settings
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_settings_t),
            "::",
            stringify!(scale_settings)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_sculpt_component__select_tool_results_t {
    pub gizmo_showing: bool,
    pub _padding_77: [::std::os::raw::c_char; 3usize],
    pub gizmo_pos: tm_vec3_t,
}
#[test]
fn bindgen_test_layout_tm_sculpt_component__select_tool_results_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_sculpt_component__select_tool_results_t>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_sculpt_component__select_tool_results_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_sculpt_component__select_tool_results_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_sculpt_component__select_tool_results_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_results_t>())).gizmo_showing
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_results_t),
            "::",
            stringify!(gizmo_showing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_results_t>()))._padding_77
                as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_results_t),
            "::",
            stringify!(_padding_77)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component__select_tool_results_t>())).gizmo_pos
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component__select_tool_results_t),
            "::",
            stringify!(gizmo_pos)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_sculpt_component_api {
    pub box_place_tool: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            viewport_rect: tm_rect_t,
            viewport_id: u64,
            camera: *const tm_camera_t,
            undo_stack: *mut tm_undo_stack_i,
        ),
    >,
    pub box_drag_tool: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            viewport_rect: tm_rect_t,
            viewport_id: u64,
            camera: *const tm_camera_t,
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            move_settings: *const tm_gizmo__move_settings_t,
            undo_stack: *mut tm_undo_stack_i,
        ),
    >,
    pub box_select_tool: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
            e: tm_entity_t,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            viewport_rect: tm_rect_t,
            viewport_id: u64,
            tab_id: u64,
            camera: *const tm_camera_t,
            pbuffer: *mut tm_primitive_drawer_buffer_t,
            vbuffer: *mut tm_primitive_drawer_buffer_t,
            settings: *const tm_sculpt_component__select_tool_settings_t,
            undo_stack: *mut tm_undo_stack_i,
        ) -> tm_sculpt_component__select_tool_results_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_sculpt_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_sculpt_component_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_sculpt_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_sculpt_component_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_sculpt_component_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component_api>())).box_place_tool as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component_api),
            "::",
            stringify!(box_place_tool)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component_api>())).box_drag_tool as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component_api),
            "::",
            stringify!(box_drag_tool)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_sculpt_component_api>())).box_select_tool as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_sculpt_component_api),
            "::",
            stringify!(box_select_tool)
        )
    );
}
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_BOOL: tm_shader_constant_type = 0;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_INT: tm_shader_constant_type = 1;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_UINT: tm_shader_constant_type = 2;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_HALF: tm_shader_constant_type = 3;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_FLOAT: tm_shader_constant_type = 4;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_DOUBLE: tm_shader_constant_type = 5;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_STRUCT: tm_shader_constant_type = 6;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_DEPTH: tm_shader_constant_type = 7;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_STENCIL_REF: tm_shader_constant_type = 8;
pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_MAX_TYPES: tm_shader_constant_type = 9;
pub type tm_shader_constant_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_shader_constant_t {
    pub __bindgen_anon_1: tm_shader_constant_t__bindgen_ty_1,
    pub type_: tm_shader_constant_type,
    pub __bindgen_anon_2: tm_shader_constant_t__bindgen_ty_2,
    pub elements: u32,
    pub _padding_38: [::std::os::raw::c_char; 4usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_shader_constant_t__bindgen_ty_1 {
    pub name: *const ::std::os::raw::c_char,
    pub hashed_name: u64,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tm_shader_constant_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_constant_t__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tm_shader_constant_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_constant_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_constant_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_t__bindgen_ty_1>())).name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t__bindgen_ty_1),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_t__bindgen_ty_1>())).hashed_name as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t__bindgen_ty_1),
            "::",
            stringify!(hashed_name)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_shader_constant_t__bindgen_ty_2 {
    pub __bindgen_anon_1: tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1,
    pub struct_size: u32,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1 {
    pub rows: u8,
    pub columns: u8,
}
#[test]
fn bindgen_test_layout_tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1>())).rows
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(rows)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1>())).columns
                as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(columns)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_shader_constant_t__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_constant_t__bindgen_ty_2>(),
        4usize,
        concat!("Size of: ", stringify!(tm_shader_constant_t__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_constant_t__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_constant_t__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_t__bindgen_ty_2>())).struct_size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t__bindgen_ty_2),
            "::",
            stringify!(struct_size)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_shader_constant_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_constant_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_shader_constant_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_constant_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_constant_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_constant_t>())).type_ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_constant_t>())).elements as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t),
            "::",
            stringify!(elements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_t>()))._padding_38 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_t),
            "::",
            stringify!(_padding_38)
        )
    );
}
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_BUFFER: tm_shader_resource_type = 0;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_1D: tm_shader_resource_type = 1;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_2D: tm_shader_resource_type = 2;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_3D: tm_shader_resource_type = 3;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_CUBE: tm_shader_resource_type = 4;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_1D_ARRAY:
    tm_shader_resource_type = 5;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_2D_ARRAY:
    tm_shader_resource_type = 6;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_CUBE_ARRAY:
    tm_shader_resource_type = 7;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_SAMPLER: tm_shader_resource_type = 8;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_SAMPLER_COMPARISON:
    tm_shader_resource_type = 9;
pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_MAX_TYPES: tm_shader_resource_type = 10;
pub type tm_shader_resource_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_shader_resource_t {
    pub __bindgen_anon_1: tm_shader_resource_t__bindgen_ty_1,
    pub element_type: *const ::std::os::raw::c_char,
    pub static_resource_name: *const ::std::os::raw::c_char,
    pub static_resource: u32,
    pub elements: u32,
    pub type_: tm_shader_resource_type,
    pub requested_view_aspect: u8,
    pub uav: bool,
    pub _padding_71: [::std::os::raw::c_char; 2usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_shader_resource_t__bindgen_ty_1 {
    pub name: *const ::std::os::raw::c_char,
    pub hashed_name: u64,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tm_shader_resource_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_resource_t__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tm_shader_resource_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_resource_t__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_resource_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_t__bindgen_ty_1>())).name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t__bindgen_ty_1),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_t__bindgen_ty_1>())).hashed_name as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t__bindgen_ty_1),
            "::",
            stringify!(hashed_name)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_shader_resource_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_resource_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_shader_resource_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_resource_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_resource_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_t>())).element_type as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(element_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_t>())).static_resource_name as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(static_resource_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_t>())).static_resource as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(static_resource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_resource_t>())).elements as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(elements)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_resource_t>())).type_ as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_t>())).requested_view_aspect as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(requested_view_aspect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_resource_t>())).uav as *const _ as usize },
        37usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(uav)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_t>()))._padding_71 as *const _ as usize
        },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_t),
            "::",
            stringify!(_padding_71)
        )
    );
}
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_POSITION:
    tm_shader_system_semantic_type = 0;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_DISPATCH_THREAD_ID:
    tm_shader_system_semantic_type = 1;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_GROUP_ID:
    tm_shader_system_semantic_type = 2;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_GROUP_INDEX:
    tm_shader_system_semantic_type = 3;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_GROUP_THREAD_ID:
    tm_shader_system_semantic_type = 4;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_INSTANCE_ID:
    tm_shader_system_semantic_type = 5;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_PRIMITIVE_ID:
    tm_shader_system_semantic_type = 6;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_VERTEX_ID:
    tm_shader_system_semantic_type = 7;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_IS_FRONT_FACE_ID:
    tm_shader_system_semantic_type = 8;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_OUTPUT_CONTROL_POINT_ID:
    tm_shader_system_semantic_type = 9;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_DOMAIN_LOCATION:
    tm_shader_system_semantic_type = 10;
pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_MAX_SEMANTICS:
    tm_shader_system_semantic_type = 11;
pub type tm_shader_system_semantic_type = ::std::os::raw::c_int;
pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_LINEAR:
    tm_shader_interpolation_modifier_type = 0;
pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_CENTROID:
    tm_shader_interpolation_modifier_type = 1;
pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_NOINTERPOLATION:
    tm_shader_interpolation_modifier_type = 2;
pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_NOPERSPECTIVE:
    tm_shader_interpolation_modifier_type = 3;
pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_SAMPLE:
    tm_shader_interpolation_modifier_type = 4;
pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_MAX_MODIFIERS:
    tm_shader_interpolation_modifier_type = 5;
pub type tm_shader_interpolation_modifier_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_shader_stage_export_t {
    pub requested: bool,
    pub _padding_101: [::std::os::raw::c_char; 7usize],
    pub constant: tm_shader_constant_t,
    pub interpolation_modifier: u32,
    pub _padding_104: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_shader_stage_export_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_stage_export_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_shader_stage_export_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_stage_export_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_stage_export_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_export_t>())).requested as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_export_t),
            "::",
            stringify!(requested)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_export_t>()))._padding_101 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_export_t),
            "::",
            stringify!(_padding_101)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_export_t>())).constant as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_export_t),
            "::",
            stringify!(constant)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_export_t>())).interpolation_modifier as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_export_t),
            "::",
            stringify!(interpolation_modifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_export_t>()))._padding_104 as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_export_t),
            "::",
            stringify!(_padding_104)
        )
    );
}
pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_TRIANGLE:
    tm_shader_tess_attribute_domain = 0;
pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_QUAD:
    tm_shader_tess_attribute_domain = 1;
pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_ISOLINE:
    tm_shader_tess_attribute_domain = 2;
pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_MAX_VALUES:
    tm_shader_tess_attribute_domain = 3;
pub type tm_shader_tess_attribute_domain = ::std::os::raw::c_int;
pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_POINT:
    tm_shader_hull_attribute_output_topology = 0;
pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_LINE:
    tm_shader_hull_attribute_output_topology = 1;
pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_TRIANGLE_CW : tm_shader_hull_attribute_output_topology = 2 ;
pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_TRIANGLE_CCW : tm_shader_hull_attribute_output_topology = 3 ;
pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_MAX_VALUES : tm_shader_hull_attribute_output_topology = 4 ;
pub type tm_shader_hull_attribute_output_topology = ::std::os::raw::c_int;
pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_INTEGER : tm_shader_hull_attribute_partitioning = 0 ;
pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_FRACTIONAL_EVEN : tm_shader_hull_attribute_partitioning = 1 ;
pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_FRACTIONAL_ODD : tm_shader_hull_attribute_partitioning = 2 ;
pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_POW2:
    tm_shader_hull_attribute_partitioning = 3;
pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_MAX_VALUES : tm_shader_hull_attribute_partitioning = 4 ;
pub type tm_shader_hull_attribute_partitioning = ::std::os::raw::c_int;
pub const tm_shader_attribute_type_TM_SHADER_GEOMETRY_ATTRIBUTE_INSTANCE: tm_shader_attribute_type =
    0;
pub const tm_shader_attribute_type_TM_SHADER_TESS_ATTRIBUTE_DOMAIN: tm_shader_attribute_type = 1;
pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_MAX_TESS_FACTOR:
    tm_shader_attribute_type = 2;
pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_CONTROL_POINTS:
    tm_shader_attribute_type = 3;
pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_TOPOLOGY:
    tm_shader_attribute_type = 4;
pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING: tm_shader_attribute_type =
    5;
pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_PATCH_CONSTANT_FUNCTION:
    tm_shader_attribute_type = 6;
pub const tm_shader_attribute_type_TM_SHADER_PIXEL_ATTRIBUTE_EARLY_DEPTH_STENCIL:
    tm_shader_attribute_type = 7;
pub const tm_shader_attribute_type_TM_SHADER_COMPUTE_ATTRIBUTE_NUM_THREADS:
    tm_shader_attribute_type = 8;
pub const tm_shader_attribute_type_TM_SHADER_ATTRIBUTE_MAX_ATTRIBUTES: tm_shader_attribute_type = 9;
pub type tm_shader_attribute_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_shader_stage_attribute_t {
    pub type_: tm_shader_attribute_type,
    pub _padding_170: [::std::os::raw::c_char; 4usize],
    pub __bindgen_anon_1: tm_shader_stage_attribute_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_shader_stage_attribute_t__bindgen_ty_1 {
    pub boolean: bool,
    pub values: [u32; 4usize],
    pub value: u32,
    _bindgen_union_align: [u32; 4usize],
}
#[test]
fn bindgen_test_layout_tm_shader_stage_attribute_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_stage_attribute_t__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_shader_stage_attribute_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_stage_attribute_t__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_stage_attribute_t__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_attribute_t__bindgen_ty_1>())).boolean
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_attribute_t__bindgen_ty_1),
            "::",
            stringify!(boolean)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_attribute_t__bindgen_ty_1>())).values as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_attribute_t__bindgen_ty_1),
            "::",
            stringify!(values)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_attribute_t__bindgen_ty_1>())).value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_attribute_t__bindgen_ty_1),
            "::",
            stringify!(value)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_shader_stage_attribute_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_stage_attribute_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_shader_stage_attribute_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_stage_attribute_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_shader_stage_attribute_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_attribute_t>())).type_ as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_attribute_t),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_stage_attribute_t>()))._padding_170 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_stage_attribute_t),
            "::",
            stringify!(_padding_170)
        )
    );
}
extern "C" {
    pub static tm_shader_constant_type_to_bytes: [u32; 9usize];
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tm_shader_system_cl_type_t {
    pub uint64: u64,
    pub boolean: bool,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tm_shader_system_cl_type_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_system_cl_type_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_shader_system_cl_type_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_system_cl_type_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_system_cl_type_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_cl_type_t>())).uint64 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_cl_type_t),
            "::",
            stringify!(uint64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_cl_type_t>())).boolean as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_cl_type_t),
            "::",
            stringify!(boolean)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_system_io_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_blob_header_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_creation_graph_update_shader_constant_resource_t {
    pub draw_calls: *const tm_creation_graph_output_t,
    pub cbuffers: *const tm_shader_constant_buffer_instance_t,
    pub io_interface: tm_tt_id_t,
    pub entity_id: u64,
    pub entity_ctx: *mut tm_entity_context_o,
}
#[test]
fn bindgen_test_layout_tm_creation_graph_update_shader_constant_resource_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_creation_graph_update_shader_constant_resource_t>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(tm_creation_graph_update_shader_constant_resource_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_creation_graph_update_shader_constant_resource_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_creation_graph_update_shader_constant_resource_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_update_shader_constant_resource_t>()))
                .draw_calls as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_update_shader_constant_resource_t),
            "::",
            stringify!(draw_calls)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_update_shader_constant_resource_t>())).cbuffers
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_update_shader_constant_resource_t),
            "::",
            stringify!(cbuffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_update_shader_constant_resource_t>()))
                .io_interface as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_update_shader_constant_resource_t),
            "::",
            stringify!(io_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_update_shader_constant_resource_t>()))
                .entity_id as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_update_shader_constant_resource_t),
            "::",
            stringify!(entity_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_creation_graph_update_shader_constant_resource_t>()))
                .entity_ctx as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_creation_graph_update_shader_constant_resource_t),
            "::",
            stringify!(entity_ctx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_declaration_o {
    _unused: [u8; 0],
}
pub const TM_SHADER_STAGE_VERTEX: ::std::os::raw::c_int = 1;
pub const TM_SHADER_STAGE_HULL: ::std::os::raw::c_int = 2;
pub const TM_SHADER_STAGE_DOMAIN: ::std::os::raw::c_int = 4;
pub const TM_SHADER_STAGE_GEOMETRY: ::std::os::raw::c_int = 8;
pub const TM_SHADER_STAGE_PIXEL: ::std::os::raw::c_int = 16;
pub const TM_SHADER_STAGE_COMPUTE: ::std::os::raw::c_int = 32;
pub const TM_SHADER_STAGE_ALL: ::std::os::raw::c_int = 63;
pub const TM_SHADER_STAGE_MAX_STAGES: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_182 = ::std::os::raw::c_int;
pub const TM_SHADER_SYSTEM_MAX_PASSES: ::std::os::raw::c_int = 16;
pub type _bindgen_ty_183 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_declaration_api {
    pub clear: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_declaration_o)>,
    pub append_render_states: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            block_type: u32,
            states: *const tm_renderer_state_value_pair_t,
            num_states: u32,
        ),
    >,
    pub append_serialized_render_states: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_declaration_o, block_type: u32, data: *const u8),
    >,
    pub append_static_sampler_states: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            state_block_name_hash: u64,
            states: *const tm_renderer_state_value_pair_t,
            num_states: u32,
        ),
    >,
    pub request_channel: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            stage_flag: u32,
            channel_name: *const ::std::os::raw::c_char,
        ),
    >,
    pub set_constant: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_declaration_o, constant: tm_shader_constant_t),
    >,
    pub set_resource: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_declaration_o, resource: tm_shader_resource_t),
    >,
    pub set_stage_export: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            stage_flag: u32,
            stage_export: tm_shader_stage_export_t,
        ),
    >,
    pub set_stage_system_semantic_import: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            stage_flag: u32,
            type_: tm_shader_system_semantic_type,
        ),
    >,
    pub set_stage_system_semantic_export: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            stage_flag: u32,
            type_: tm_shader_system_semantic_type,
        ),
    >,
    pub set_stage_attribute: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            stage_flag: u32,
            attr: tm_shader_stage_attribute_t,
        ),
    >,
    pub append_patch_code: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            domain: u32,
            code: *const ::std::os::raw::c_char,
            source_file: *const ::std::os::raw::c_char,
            source_line: u32,
        ),
    >,
    pub append_code: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            stage_flag: u32,
            code: *const ::std::os::raw::c_char,
            source_file: *const ::std::os::raw::c_char,
            source_line: u32,
        ),
    >,
    pub append_common_code: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_declaration_o,
            code: *const ::std::os::raw::c_char,
            source_file: *const ::std::os::raw::c_char,
            source_line: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_shader_declaration_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_declaration_api>(),
        112usize,
        concat!("Size of: ", stringify!(tm_shader_declaration_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_declaration_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_declaration_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_declaration_api>())).clear as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(clear)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).append_render_states as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(append_render_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).append_serialized_render_states
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(append_serialized_render_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).append_static_sampler_states
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(append_static_sampler_states)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).request_channel as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(request_channel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).set_constant as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(set_constant)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).set_resource as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(set_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).set_stage_export as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(set_stage_export)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).set_stage_system_semantic_import
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(set_stage_system_semantic_import)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).set_stage_system_semantic_export
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(set_stage_system_semantic_export)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).set_stage_attribute as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(set_stage_attribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).append_patch_code as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(append_patch_code)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).append_code as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(append_code)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_declaration_api>())).append_common_code as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_declaration_api),
            "::",
            stringify!(append_common_code)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_system_api {
    pub create_context: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            render_graph: *mut tm_render_graph_o,
        ) -> *mut tm_shader_system_context_o,
    >,
    pub clone_context: ::std::option::Option<
        unsafe extern "C" fn(
            src_context: *const tm_shader_system_context_o,
            allocator: *mut tm_allocator_i,
        ) -> *mut tm_shader_system_context_o,
    >,
    pub destroy_context:
        ::std::option::Option<unsafe extern "C" fn(context: *mut tm_shader_system_context_o)>,
    pub set_render_graph: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_shader_system_context_o,
            render_graph: *mut tm_render_graph_o,
        ),
    >,
    pub activate_system: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_shader_system_context_o,
            system: *mut tm_shader_system_o,
            cbuffer_instances: *const tm_shader_constant_buffer_instance_t,
            num_cbuffer_instances: u32,
            rbinder_instances: *const tm_shader_resource_binder_instance_t,
            num_rbinder_instances: u32,
        ),
    >,
    pub deactivate_system: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_shader_system_context_o,
            system: *mut tm_shader_system_o,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_shader_system_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_system_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_shader_system_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_system_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_system_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_api>())).create_context as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_api),
            "::",
            stringify!(create_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_api>())).clone_context as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_api),
            "::",
            stringify!(clone_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_api>())).destroy_context as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_api),
            "::",
            stringify!(destroy_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_api>())).set_render_graph as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_api),
            "::",
            stringify!(set_render_graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_api>())).activate_system as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_api),
            "::",
            stringify!(activate_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_api>())).deactivate_system as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_api),
            "::",
            stringify!(deactivate_system)
        )
    );
}
pub const TM_SHADER_SYSTEM_UNINITIALIZED_INSTANCE: ::std::os::raw::c_int = -1;
pub type _bindgen_ty_184 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_constant_buffer_instance_t {
    pub instance_id: u32,
}
#[test]
fn bindgen_test_layout_tm_shader_constant_buffer_instance_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_constant_buffer_instance_t>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(tm_shader_constant_buffer_instance_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_constant_buffer_instance_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_constant_buffer_instance_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_buffer_instance_t>())).instance_id as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_buffer_instance_t),
            "::",
            stringify!(instance_id)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_resource_binder_instance_t {
    pub instance_id: u32,
}
#[test]
fn bindgen_test_layout_tm_shader_resource_binder_instance_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_resource_binder_instance_t>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(tm_shader_resource_binder_instance_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_resource_binder_instance_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_resource_binder_instance_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_binder_instance_t>())).instance_id as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_binder_instance_t),
            "::",
            stringify!(instance_id)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_constant_update_t {
    pub instance_id: u32,
    pub constant_offset: u32,
    pub first_byte: u32,
    pub num_bytes: u32,
    pub data: *const ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tm_shader_constant_update_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_constant_update_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_shader_constant_update_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_constant_update_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_constant_update_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_update_t>())).instance_id as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_update_t),
            "::",
            stringify!(instance_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_update_t>())).constant_offset as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_update_t),
            "::",
            stringify!(constant_offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_update_t>())).first_byte as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_update_t),
            "::",
            stringify!(first_byte)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_update_t>())).num_bytes as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_update_t),
            "::",
            stringify!(num_bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_constant_update_t>())).data as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_constant_update_t),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_resource_update_t {
    pub instance_id: u32,
    pub resource_slot: u32,
    pub first_resource: u32,
    pub num_resources: u32,
    pub resources: *const u32,
    pub resources_view_aspect_flags: *const u32,
}
#[test]
fn bindgen_test_layout_tm_shader_resource_update_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_resource_update_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_shader_resource_update_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_resource_update_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_resource_update_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_update_t>())).instance_id as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_update_t),
            "::",
            stringify!(instance_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_update_t>())).resource_slot as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_update_t),
            "::",
            stringify!(resource_slot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_update_t>())).first_resource as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_update_t),
            "::",
            stringify!(first_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_update_t>())).num_resources as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_update_t),
            "::",
            stringify!(num_resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_update_t>())).resources as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_update_t),
            "::",
            stringify!(resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_resource_update_t>())).resources_view_aspect_flags
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_resource_update_t),
            "::",
            stringify!(resources_view_aspect_flags)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_io_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_api {
    pub create_constant_buffer_instances: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            num_instances: u32,
            result: *mut tm_shader_constant_buffer_instance_t,
        ),
    >,
    pub create_constant_buffer_instances_from_template: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
            num_instances: u32,
            result: *mut tm_shader_constant_buffer_instance_t,
            cbuf_template: tm_shader_constant_buffer_instance_t,
        ),
    >,
    pub destroy_constant_buffer_instances: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            instances: *mut tm_shader_constant_buffer_instance_t,
            num_instances: u32,
        ),
    >,
    pub create_resource_binder_instances: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            num_instances: u32,
            result: *mut tm_shader_resource_binder_instance_t,
        ),
    >,
    pub destroy_resource_binder_instances: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            instances: *mut tm_shader_resource_binder_instance_t,
            num_instances: u32,
        ),
    >,
    pub reflect_constants: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            num_constants: *mut u32,
            constants: *mut tm_shader_constant_t,
            constant_offsets: *mut u32,
        ),
    >,
    pub lookup_constant: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            name: u64,
            constant: *mut tm_shader_constant_t,
            constant_offset: *mut u32,
        ) -> bool,
    >,
    pub update_constants: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
            constant_updates: *const tm_shader_constant_update_t,
            num_updates: u32,
        ),
    >,
    pub update_constants_raw: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
            instance_ids: *const u32,
            data: *mut *const ::std::os::raw::c_void,
            offset: u32,
            size: u32,
            num_updates: u32,
        ),
    >,
    pub update_constant_buffer_instances_from_template: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
            num_instances: u32,
            instances: *mut tm_shader_constant_buffer_instance_t,
            cbuf_template: tm_shader_constant_buffer_instance_t,
        ),
    >,
    pub reflect_resources: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            num_resources: *mut u32,
            resources: *mut tm_shader_resource_t,
            resource_slots: *mut u32,
        ),
    >,
    pub lookup_resource: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            name: u64,
            resource: *mut tm_shader_resource_t,
            resource_slot: *mut u32,
        ) -> bool,
    >,
    pub update_resources: ::std::option::Option<
        unsafe extern "C" fn(
            io: *mut tm_shader_io_o,
            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
            resource_updates: *mut tm_shader_resource_update_t,
            num_updates: u32,
        ),
    >,
    pub max_passes: ::std::option::Option<unsafe extern "C" fn(shader: *mut tm_shader_o) -> u8>,
    pub assemble_shader_infos: ::std::option::Option<
        unsafe extern "C" fn(
            shader: *mut tm_shader_o,
            state_override_blocks: *const u32,
            num_state_override_blocks: u32,
            context: *const tm_shader_system_context_o,
            visibility_context: u64,
            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
            cbuf_instances: *const tm_shader_constant_buffer_instance_t,
            rbinder_instances: *const tm_shader_resource_binder_instance_t,
            num_shaders: u32,
            results: *mut tm_renderer_shader_info_t,
        ) -> u8,
    >,
    pub shader_io: ::std::option::Option<
        unsafe extern "C" fn(shader: *mut tm_shader_o) -> *mut tm_shader_io_o,
    >,
    pub system_io: ::std::option::Option<
        unsafe extern "C" fn(system: *mut tm_shader_system_o) -> *mut tm_shader_io_o,
    >,
    pub name: ::std::option::Option<unsafe extern "C" fn(shader: *mut tm_shader_o) -> u64>,
}
#[test]
fn bindgen_test_layout_tm_shader_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_api>(),
        144usize,
        concat!("Size of: ", stringify!(tm_shader_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).create_constant_buffer_instances as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(create_constant_buffer_instances)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).create_constant_buffer_instances_from_template
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(create_constant_buffer_instances_from_template)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).destroy_constant_buffer_instances as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(destroy_constant_buffer_instances)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).create_resource_binder_instances as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(create_resource_binder_instances)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).destroy_resource_binder_instances as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(destroy_resource_binder_instances)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).reflect_constants as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(reflect_constants)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).lookup_constant as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(lookup_constant)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).update_constants as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(update_constants)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).update_constants_raw as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(update_constants_raw)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).update_constant_buffer_instances_from_template
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(update_constant_buffer_instances_from_template)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).reflect_resources as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(reflect_resources)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).lookup_resource as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(lookup_resource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).update_resources as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(update_resources)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).max_passes as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(max_passes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_api>())).assemble_shader_infos as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(assemble_shader_infos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).shader_io as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(shader_io)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).system_io as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(system_io)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_api>())).name as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_api),
            "::",
            stringify!(name)
        )
    );
}
pub const tm_shader_state_overrides_TM_SHADER_STATE_OVERRIDE_DOUBLE_SIDED:
    tm_shader_state_overrides = 0;
pub const tm_shader_state_overrides_TM_SHADER_STATE_OVERRIDE_FRONT_FACE_CW:
    tm_shader_state_overrides = 1;
pub const tm_shader_state_overrides_TM_SHADER_STATE_OVERRIDE_MAX_SHADER_STATE_OVERRIDES:
    tm_shader_state_overrides = 2;
pub type tm_shader_state_overrides = ::std::os::raw::c_int;
pub const tm_shader_system_background_status_TM_SHADER_SYSTEM_BACKGROUND_CREATE_STATUS_SUCCESS:
    tm_shader_system_background_status = 0;
pub const tm_shader_system_background_status_TM_SHADER_SYSTEM_BACKGROUND_CREATE_STATUS_CANCEL:
    tm_shader_system_background_status = 1;
pub const tm_shader_system_background_status_TM_SHADER_SYSTEM_BACKGROUND_CREATE_STATUS_ERROR:
    tm_shader_system_background_status = 2;
pub type tm_shader_system_background_status = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_system_background_create_i {
    pub user_data: *mut ::std::os::raw::c_void,
    pub done: ::std::option::Option<
        unsafe extern "C" fn(
            status: tm_shader_system_background_status,
            blob: *const tm_shader_blob_header_t,
            blob_size: u64,
            user_data: *mut ::std::os::raw::c_void,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_shader_system_background_create_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_system_background_create_i>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tm_shader_system_background_create_i)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_system_background_create_i>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_shader_system_background_create_i)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_background_create_i>())).user_data as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_background_create_i),
            "::",
            stringify!(user_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_system_background_create_i>())).done as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_system_background_create_i),
            "::",
            stringify!(done)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_repository_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            system_io: *mut tm_shader_system_io_o,
            a: *mut tm_allocator_i,
            backend: *mut tm_renderer_backend_i,
            shader_compiler_api: *mut tm_renderer_shader_compiler_api,
            tt: *mut tm_the_truth_o,
        ) -> *mut tm_shader_repository_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub set_the_truth: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, tt: *mut tm_the_truth_o),
    >,
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub import_truth_declaration_from_config: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            config: *const tm_config_i,
            pi: *const tm_json_parse_info_t,
            name: u64,
            validity_hash: u64,
            time_stamp: *const tm_file_time_o,
            filename: *const ::std::os::raw::c_char,
        ) -> tm_tt_id_t,
    >,
    pub destroy_truth_declaration:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64)>,
    pub lookup_truth_declaration: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64) -> tm_tt_id_t,
    >,
    pub lookup_declaration_validity_hash: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, id: tm_tt_id_t) -> u64,
    >,
    pub load_shader_declaration: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            declaration: *mut tm_shader_declaration_o,
            id: tm_tt_id_t,
        ),
    >,
    pub last_modified: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            id: tm_tt_id_t,
            modified: *mut tm_file_time_o,
        ),
    >,
    pub host_save_state: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            carray: *mut *mut ::std::os::raw::c_char,
            a: *mut tm_allocator_i,
        ),
    >,
    pub client_load_state: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            tt: *mut tm_the_truth_o,
            state: *mut *const ::std::os::raw::c_char,
        ),
    >,
    pub create_shader_declaration: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            a: *mut tm_allocator_i,
        ) -> *mut tm_shader_declaration_o,
    >,
    pub destroy_shader_declaration: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            declaration: *mut tm_shader_declaration_o,
        ),
    >,
    pub generate_system_includes: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            output_path: *const ::std::os::raw::c_char,
        ),
    >,
    pub update_shaders_from_directory: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            dir: *const ::std::os::raw::c_char,
            recursive: bool,
            allocator: *mut tm_allocator_i,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub allocator: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_repository_o) -> *mut tm_allocator_i,
    >,
    pub refresh_truth_shaders:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o)>,
    pub lookup_or_create_shader: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64) -> *mut tm_shader_o,
    >,
    pub lookup_or_create_system: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            name: u64,
        ) -> *mut tm_shader_system_o,
    >,
    pub create_shader_from_blob: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            shader_blob: *const tm_shader_blob_header_t,
        ) -> *mut tm_shader_o,
    >,
    pub compile_shader: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            shader: *mut tm_shader_o,
            active_shader_stages: u32,
            active_systems_bitmask: u64,
            active_system_names: *const u64,
            active_systems: *mut *const tm_shader_declaration_o,
            num_active_systems: u32,
            declarations: *mut *const tm_shader_declaration_o,
            num_declarations: u32,
            validity_hash: u64,
        ) -> bool,
    >,
    pub create_from_declaration: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            declaration: tm_tt_id_t,
            name: u64,
            generated_code: *mut tm_shader_declaration_o,
            creation_graph_data: *const tm_shader_creation_graph_data_o,
        ) -> bool,
    >,
    pub background_create_from_declaration: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            declaration: tm_tt_id_t,
            name: u64,
            generated_code: *mut tm_shader_declaration_o,
            creation_graph_data: *const tm_shader_creation_graph_data_o,
            callback: *const tm_shader_system_background_create_i,
        ),
    >,
    pub destroy_shader:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64)>,
    pub destroy_system:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64)>,
    pub lookup_shader: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64) -> *mut tm_shader_o,
    >,
    pub lookup_system: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            name: u64,
        ) -> *mut tm_shader_system_o,
    >,
    pub recycle_resources:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o)>,
    pub shader_state_override: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            state_override: tm_shader_state_overrides,
        ) -> u32,
    >,
    pub lookup_shader_blob: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_shader_repository_o,
            name: u64,
            size: *mut u64,
        ) -> *const tm_shader_blob_header_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_shader_repository_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_repository_api>(),
        248usize,
        concat!("Size of: ", stringify!(tm_shader_repository_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_repository_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_repository_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shader_repository_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).destroy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).set_the_truth as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(set_the_truth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).create_truth_types as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>()))
                .import_truth_declaration_from_config as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(import_truth_declaration_from_config)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).destroy_truth_declaration
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(destroy_truth_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).lookup_truth_declaration
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(lookup_truth_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).lookup_declaration_validity_hash
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(lookup_declaration_validity_hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).load_shader_declaration as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(load_shader_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).last_modified as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(last_modified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).host_save_state as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(host_save_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).client_load_state as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(client_load_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).create_shader_declaration
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(create_shader_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).destroy_shader_declaration
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(destroy_shader_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).generate_system_includes
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(generate_system_includes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).update_shaders_from_directory
                as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(update_shaders_from_directory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).allocator as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).refresh_truth_shaders as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(refresh_truth_shaders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).lookup_or_create_shader as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(lookup_or_create_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).lookup_or_create_system as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(lookup_or_create_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).create_shader_from_blob as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(create_shader_from_blob)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).compile_shader as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(compile_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).create_from_declaration as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(create_from_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).background_create_from_declaration
                as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(background_create_from_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).destroy_shader as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(destroy_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).destroy_system as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(destroy_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).lookup_shader as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(lookup_shader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).lookup_system as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(lookup_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).recycle_resources as *const _
                as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(recycle_resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).shader_state_override as *const _
                as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(shader_state_override)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_repository_api>())).lookup_shader_blob as *const _
                as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_repository_api),
            "::",
            stringify!(lookup_shader_blob)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_connector_type_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_creation_graph_data_o {
    pub allocator: *mut tm_allocator_i,
    pub connected_inputs: *mut bool,
    pub actions: *mut tm_tt_id_t,
    pub settings: *mut tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_shader_creation_graph_data_o() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_creation_graph_data_o>(),
        32usize,
        concat!("Size of: ", stringify!(tm_shader_creation_graph_data_o))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_creation_graph_data_o>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_creation_graph_data_o))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_data_o>())).allocator as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_data_o),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_data_o>())).connected_inputs as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_data_o),
            "::",
            stringify!(connected_inputs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_data_o>())).actions as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_data_o),
            "::",
            stringify!(actions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_data_o>())).settings as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_data_o),
            "::",
            stringify!(settings)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shader_creation_graph_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub compile_data_to_wire: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_creation_graph_instance_t,
            wire: u32,
            tt: *const tm_the_truth_o,
            data_id: tm_tt_id_t,
            to_type_hash: u64,
        ) -> bool,
    >,
    pub node_from_declaration: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            declaration: tm_tt_id_t,
            node: *mut tm_creation_graph_node_type_i,
            a: *mut tm_allocator_i,
        ),
    >,
    pub register_static_graph_nodes:
        ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>,
    pub wire_result_as_string: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            ta: *mut tm_temp_allocator_i,
            cw: *const tm_creation_graph_interpreter_wire_content_t,
            requested_type: *const tm_connector_type_t,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_tm_shader_creation_graph_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_shader_creation_graph_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_shader_creation_graph_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shader_creation_graph_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shader_creation_graph_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_api>())).create_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_api>())).compile_data_to_wire
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_api),
            "::",
            stringify!(compile_data_to_wire)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_api>())).node_from_declaration
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_api),
            "::",
            stringify!(node_from_declaration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_api>())).register_static_graph_nodes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_api),
            "::",
            stringify!(register_static_graph_nodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_shader_creation_graph_api>())).wire_result_as_string
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shader_creation_graph_api),
            "::",
            stringify!(wire_result_as_string)
        )
    );
}
pub const TM_TT_PROP__SHADER_REPOSITORY__DECLARATIONS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SHADER_REPOSITORY__MATERIALS: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_185 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SHADER_DECLARATION__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPILABLE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SHADER_DECLARATION__SYSTEM: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SHADER_DECLARATION__CREATION_GRAPH_NODE: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SHADER_DECLARATION__INCLUDES: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__SHADER_DECLARATION__VARIATIONS: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPILE_CONFIGURATIONS: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPILE_CONTEXTS: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__SHADER_DECLARATION__FILENAME: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__SHADER_DECLARATION__VALIDITY_HASH: ::std::os::raw::c_int = 9;
pub const TM_TT_PROP__SHADER_DECLARATION__LAST_MODIFIED: ::std::os::raw::c_int = 10;
pub const TM_TT_PROP__SHADER_DECLARATION__REQUESTS: ::std::os::raw::c_int = 11;
pub const TM_TT_PROP__SHADER_DECLARATION__CONSTANTS: ::std::os::raw::c_int = 12;
pub const TM_TT_PROP__SHADER_DECLARATION__RESOURCES: ::std::os::raw::c_int = 13;
pub const TM_TT_PROP__SHADER_DECLARATION__RENDER_STATE_BLOCKS: ::std::os::raw::c_int = 14;
pub const TM_TT_PROP__SHADER_DECLARATION__SAMPLER_STATE_BLOCKS: ::std::os::raw::c_int = 15;
pub const TM_TT_PROP__SHADER_DECLARATION__COMMON_CODE: ::std::os::raw::c_int = 16;
pub const TM_TT_PROP__SHADER_DECLARATION__COMMON_CODE_LINE_NUMBER: ::std::os::raw::c_int = 17;
pub const TM_TT_PROP__SHADER_DECLARATION__FUNCTION_CODE: ::std::os::raw::c_int = 18;
pub const TM_TT_PROP__SHADER_DECLARATION__FUNCTION_CODE_LINE_NUMBER: ::std::os::raw::c_int = 19;
pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_CODE: ::std::os::raw::c_int = 20;
pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_CODE_LINE_NUMBER: ::std::os::raw::c_int = 21;
pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_STAGE_EXPORTS: ::std::os::raw::c_int = 22;
pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
    23;
pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
    24;
pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 25;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_CODE: ::std::os::raw::c_int = 26;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_CODE_LINE_NUMBER: ::std::os::raw::c_int = 27;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_STAGE_EXPORTS: ::std::os::raw::c_int = 28;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int = 29;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int = 30;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 31;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_PATCH: ::std::os::raw::c_int = 32;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_PATCH_LINE_NUMBER: ::std::os::raw::c_int = 33;
pub const TM_TT_PROP__SHADER_DECLARATION__HULL_CONDITION: ::std::os::raw::c_int = 34;
pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_CODE: ::std::os::raw::c_int = 35;
pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_CODE_LINE_NUMBER: ::std::os::raw::c_int = 36;
pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_STAGE_EXPORTS: ::std::os::raw::c_int = 37;
pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
    38;
pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
    39;
pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 40;
pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_CONDITION: ::std::os::raw::c_int = 41;
pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_CODE: ::std::os::raw::c_int = 42;
pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_CODE_LINE_NUMBER: ::std::os::raw::c_int = 43;
pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_STAGE_EXPORTS: ::std::os::raw::c_int = 44;
pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
    45;
pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
    46;
pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 47;
pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_CONDITION: ::std::os::raw::c_int = 48;
pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_CODE: ::std::os::raw::c_int = 49;
pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_CODE_LINE_NUMBER: ::std::os::raw::c_int = 50;
pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_STAGE_EXPORTS: ::std::os::raw::c_int = 51;
pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
    52;
pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
    53;
pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 54;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_CODE: ::std::os::raw::c_int = 55;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_CODE_LINE_NUMBER: ::std::os::raw::c_int = 56;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_STAGE_EXPORTS: ::std::os::raw::c_int = 57;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
    58;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
    59;
pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 60;
pub type _bindgen_ty_186 = ::std::os::raw::c_int;
pub const TM_TT_PROP__RENDER_STATE_BLOCK__TYPE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__RENDER_STATE_BLOCK__STATES: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_187 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SAMPLER_STATE_BLOCK__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SAMPLER_STATE_BLOCK__STATES: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_188 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SHADER_REQUEST__TYPE_NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SHADER_REQUEST__CHANNEL_NAME: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_189 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SHADER_CONSTANT__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SHADER_CONSTANT__TYPE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SHADER_CONSTANT__ROWS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SHADER_CONSTANT__COLUMNS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SHADER_CONSTANT__STRUCT_SIZE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__SHADER_CONSTANT__ELEMENTS: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_190 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SHADER_RESOURCE__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SHADER_RESOURCE__TYPE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SHADER_RESOURCE__ELEMENT_TYPE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SHADER_RESOURCE__ELEMENTS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SHADER_RESOURCE__STATIC_RESOURCE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__SHADER_RESOURCE__UAV: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_191 = ::std::os::raw::c_int;
pub const TM_TT_PROP__STAGE_EXPORT__CONSTANT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__STAGE_EXPORT__INTERPOLATION_MODIFIER: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__STAGE_EXPORT__CHANNEL_REQUESTED: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_192 = ::std::os::raw::c_int;
pub const TM_TT_PROP__INCLUDE__NAME: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_193 = ::std::os::raw::c_int;
pub const TM_TT_PROP__VARIATION__SYSTEMS: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_194 = ::std::os::raw::c_int;
pub const TM_TT_PROP__VARIATION__SYSTEM__NAME: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_195 = ::std::os::raw::c_int;
pub const TM_TT_PROP__COMPILE_CONFIGURATION__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__COMPILE_CONFIGURATION__VARIATIONS: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_196 = ::std::os::raw::c_int;
pub const TM_TT_PROP__COMPILE_BRANCH__CONDITION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__COMPILE_BRANCH__THEN: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__COMPILE_BRANCH__ELSE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_197 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PASS_CONDITION__SYSTEMS_ACTIVE: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_198 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PASS__LAYER: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PASS__CONDITION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PASS__ENABLE_SYSTEMS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__PASS__RENDER_STATE_BLOCKS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__PASS__COMPILE_CONFIGURATION: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_199 = ::std::os::raw::c_int;
pub const TM_TT_PROP__COMPILE_CONTEXT__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__COMPILE_CONTEXT__PASSES: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_200 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SHADER_SYSTEM_COMPILED_RESULT__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SHADER_SYSTEM_COMPILED_RESULT__BUFFER: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_201 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SHADER_SYSTEM__CONSTANT_NODE__VALUE_TYPE_HASH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SHADER_SYSTEM__CONSTANT_NODE__VALUE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_202 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_RESOURCE_ASPECT__RESOURCE: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_RESOURCE_ASPECT__ASPECT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_203 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_DEFINE__NAME: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_204 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__NAME_HASH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__RESOURCE_ASPECTS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__DEFINES: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__REQUESTS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__ENABLE_SYSTEMS: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__RENDER_STATE_BLOCKS: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_205 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING_OPTION__DISPLAY_NAME:
    ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING_OPTION__DISPLAY_TOOLTIP:
    ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING_OPTION__ACTION: ::std::os::raw::c_int =
    2;
pub type _bindgen_ty_206 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__DISPLAY_NAME: ::std::os::raw::c_int =
    0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__DISPLAY_TOOLTIP:
    ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__SETTING_CONDITION:
    ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__OPTIONS: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__BOOL_ACTION: ::std::os::raw::c_int =
    4;
pub type _bindgen_ty_207 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTINGS__OBJECT_TYPE_HASH:
    ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTINGS__SETTINGS: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_208 = ::std::os::raw::c_int;
pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__VERTEX: ::std::os::raw::c_int = 0;
pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__HULL: ::std::os::raw::c_int = 1;
pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__DOMAIN: ::std::os::raw::c_int = 2;
pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__GEOMETRY: ::std::os::raw::c_int = 3;
pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__PIXEL: ::std::os::raw::c_int = 4;
pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__COMPUTE: ::std::os::raw::c_int = 5;
pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__MAX_STAGES: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_209 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_shader_system__node__connector__evaluation_stage_names:
        [*const ::std::os::raw::c_char; 6usize];
}
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__DISPLAY_NAME: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__DISPLAY_TOOLTIP: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TARGET_NAME: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TARGET_ELEMENT: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__CONNECTOR_FLAG: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__IS_OPTIONAL: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__IS_FUNCTION: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__ROWS: ::std::os::raw::c_int = 9;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__COLUMNS: ::std::os::raw::c_int = 10;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE_OF: ::std::os::raw::c_int = 11;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__EVALUATION_STAGE: ::std::os::raw::c_int = 12;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__SETTINGS: ::std::os::raw::c_int = 13;
pub type _bindgen_ty_210 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE_OF__CONNECTOR: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE_OF__REQUESTED_CHANNEL:
    ::std::os::raw::c_int = 1;
pub type _bindgen_ty_211 = ::std::os::raw::c_int;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__DECLARATION_NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__NODE_NAME: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__DISPLAY_NAME: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__CATEGORY: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__ACTIONS: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__INPUTS: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__CREATION_GRAPH_NODE__OUTPUTS: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_212 = ::std::os::raw::c_int;
pub const TM_TT_PROP__RUNNER_SETTINGS__PROJECT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__RUNNER_SETTINGS__WORLD_ENTITY: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__RUNNER_SETTINGS__SHADERS_DIR: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__RUNNER_SETTINGS__PLUGINS_DIR: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__RUNNER_SETTINGS__WINDOW_TITLE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_213 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_runner_settings_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
}
#[test]
fn bindgen_test_layout_tm_runner_settings_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_runner_settings_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_runner_settings_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_runner_settings_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_runner_settings_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_runner_settings_api>())).create_truth_types as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_runner_settings_api),
            "::",
            stringify!(create_truth_types)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_simulate_context_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_simulate_context_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            entity_ctx: *mut tm_entity_context_o,
        ) -> *mut tm_simulate_context_o,
    >,
    pub destroy:
        ::std::option::Option<unsafe extern "C" fn(simulate_ctx: *mut tm_simulate_context_o)>,
    pub camera: ::std::option::Option<
        unsafe extern "C" fn(simulate_ctx: *const tm_simulate_context_o) -> tm_entity_t,
    >,
    pub set_camera: ::std::option::Option<
        unsafe extern "C" fn(simulate_ctx: *mut tm_simulate_context_o, camera: tm_entity_t),
    >,
}
#[test]
fn bindgen_test_layout_tm_simulate_context_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_simulate_context_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_simulate_context_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_simulate_context_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_simulate_context_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_simulate_context_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_simulate_context_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_simulate_context_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_simulate_context_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_simulate_context_api>())).camera as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_simulate_context_api),
            "::",
            stringify!(camera)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_simulate_context_api>())).set_camera as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_simulate_context_api),
            "::",
            stringify!(set_camera)
        )
    );
}
pub const tm_tt_value__statistics_graph__type_TM_TT_VALUE__STATISTICS_GRAPH__NONE:
    tm_tt_value__statistics_graph__type = 0;
pub const tm_tt_value__statistics_graph__type_TM_TT_VALUE__STATISTICS_GRAPH__TABLE:
    tm_tt_value__statistics_graph__type = 1;
pub const tm_tt_value__statistics_graph__type_TM_TT_VALUE__STATISTICS_GRAPH__LINE_GRAPH:
    tm_tt_value__statistics_graph__type = 2;
pub type tm_tt_value__statistics_graph__type = ::std::os::raw::c_int;
pub const TM_TT_PROP__STATISTICS_GRAPH__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__STATISTICS_GRAPH__TYPE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__STATISTICS_GRAPH__HISTORY: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__STATISTICS_GRAPH__Y_RANGE_AUTO: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__STATISTICS_GRAPH__Y_MIN: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__STATISTICS_GRAPH__Y_MAX: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__STATISTICS_GRAPH__SOURCES: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_214 = ::std::os::raw::c_int;
pub const TM_TT_PROP__STATISTICS_GRAPH_SOURCE__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__STATISTICS_GRAPH_SOURCE__SOURCE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__STATISTICS_GRAPH_SOURCE__COLOR: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_215 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_statistics_graph_api {
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            settings: tm_tt_id_t,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            rect: tm_rect_t,
        ) -> bool,
    >,
    pub create_default_settings: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, ui: *mut tm_ui_o) -> tm_tt_id_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_statistics_graph_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_statistics_graph_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_statistics_graph_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_statistics_graph_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_statistics_graph_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_statistics_graph_api>())).ui as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_graph_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_graph_api>())).create_default_settings as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_graph_api),
            "::",
            stringify!(create_default_settings)
        )
    );
}
pub const TM_STATISTICS_SOURCE_MAX_FRAMES: ::std::os::raw::c_int = 1024;
pub type _bindgen_ty_216 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_statistics_source_t {
    pub name: *const ::std::os::raw::c_char,
    pub default_title: *const ::std::os::raw::c_char,
    pub values: *mut f64,
    pub frame_value: f64,
}
#[test]
fn bindgen_test_layout_tm_statistics_source_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_statistics_source_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_statistics_source_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_statistics_source_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_statistics_source_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_statistics_source_t>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_source_t>())).default_title as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_t),
            "::",
            stringify!(default_title)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_statistics_source_t>())).values as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_t),
            "::",
            stringify!(values)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_source_t>())).frame_value as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_t),
            "::",
            stringify!(frame_value)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_statistics_source_api {
    pub source: ::std::option::Option<
        unsafe extern "C" fn(
            name: *const ::std::os::raw::c_char,
            default_title: *const ::std::os::raw::c_char,
        ) -> *mut f64,
    >,
    pub push_frame: ::std::option::Option<unsafe extern "C" fn()>,
    pub is_paused: ::std::option::Option<unsafe extern "C" fn() -> bool>,
    pub set_paused: ::std::option::Option<unsafe extern "C" fn(paused: bool)>,
    pub read: ::std::option::Option<
        unsafe extern "C" fn(
            source: *const ::std::os::raw::c_char,
        ) -> *const tm_statistics_source_t,
    >,
    pub sources: ::std::option::Option<
        unsafe extern "C" fn(count: *mut u32) -> *const tm_statistics_source_t,
    >,
    pub num_frames: ::std::option::Option<unsafe extern "C" fn() -> u64>,
}
#[test]
fn bindgen_test_layout_tm_statistics_source_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_statistics_source_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_statistics_source_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_statistics_source_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_statistics_source_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_statistics_source_api>())).source as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_api),
            "::",
            stringify!(source)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_source_api>())).push_frame as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_api),
            "::",
            stringify!(push_frame)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_source_api>())).is_paused as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_api),
            "::",
            stringify!(is_paused)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_source_api>())).set_paused as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_api),
            "::",
            stringify!(set_paused)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_statistics_source_api>())).read as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_api),
            "::",
            stringify!(read)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_source_api>())).sources as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_api),
            "::",
            stringify!(sources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_statistics_source_api>())).num_frames as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_statistics_source_api),
            "::",
            stringify!(num_frames)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_asset_preview_api__ui_args_t {
    pub tt: *mut tm_the_truth_o,
    pub asset: tm_tt_id_t,
    pub entity_ctx: *mut tm_entity_context_o,
    pub entity: *const tm_entity_t,
    pub viewer_render_info: *mut tm_viewer_render_info_t,
    pub lighting_environment_settings: *mut tm_lighting_environment_settings_t,
    pub tab_id: u64,
    pub ui: *mut tm_ui_o,
    pub uistyle: *const tm_ui_style_t,
    pub content_r: tm_rect_t,
}
#[test]
fn bindgen_test_layout_tm_asset_preview_api__ui_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_preview_api__ui_args_t>(),
        88usize,
        concat!("Size of: ", stringify!(tm_asset_preview_api__ui_args_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_preview_api__ui_args_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_preview_api__ui_args_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).tt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).asset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).entity_ctx as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(entity_ctx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).entity as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).viewer_render_info
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(viewer_render_info)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>()))
                .lighting_environment_settings as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(lighting_environment_settings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).tab_id as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(tab_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).ui as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).uistyle as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(uistyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api__ui_args_t>())).content_r as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api__ui_args_t),
            "::",
            stringify!(content_r)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_preview_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_asset_preview_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_asset_preview_o, allocator: *mut tm_allocator_i),
    >,
    pub create_entity: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_preview_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
            entity_ctx: *mut tm_entity_context_o,
            result: *mut tm_entity_t,
        ),
    >,
    pub intercept_focus: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_preview_o,
            tt: *mut tm_the_truth_o,
            root_asset: tm_tt_id_t,
            entity_ctx: *mut tm_entity_context_o,
            entity: *const tm_entity_t,
            focus_asset: tm_tt_id_t,
        ) -> bool,
    >,
    pub reload: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_preview_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
            entity_ctx: *mut tm_entity_context_o,
            entity: *mut tm_entity_t,
        ) -> bool,
    >,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_preview_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
            args: *const tm_render_args_t,
        ),
    >,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_preview_o,
            args: *const tm_asset_preview_api__ui_args_t,
        ),
    >,
    pub toolbars: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_preview_o,
            n: *mut u32,
            args: *const tm_asset_preview_api__ui_args_t,
        ) -> *mut tm_tab_toolbar_i,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_preview_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_preview_api>(),
        64usize,
        concat!("Size of: ", stringify!(tm_asset_preview_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_preview_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_preview_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api>())).create_entity as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(create_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_preview_api>())).intercept_focus as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(intercept_focus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_api>())).reload as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(reload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_api>())).render as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(render)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_api>())).ui as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_api>())).toolbars as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_api),
            "::",
            stringify!(toolbars)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_preview_i {
    pub api: *mut tm_asset_preview_api,
    pub inst: *mut tm_asset_preview_o,
}
#[test]
fn bindgen_test_layout_tm_asset_preview_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_preview_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_asset_preview_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_preview_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_preview_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_i>())).api as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_i),
            "::",
            stringify!(api)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_preview_i>())).inst as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_preview_i),
            "::",
            stringify!(inst)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_scene_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_asset_scene_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_asset_scene_o, allocator: *mut tm_allocator_i),
    >,
    pub droppable: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_scene_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
        ) -> bool,
    >,
    pub create_entity: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_scene_o,
            tt: *mut tm_the_truth_o,
            asset: tm_tt_id_t,
            ctx: *mut tm_entity_context_o,
            parent_entity: tm_tt_id_t,
            name: *const ::std::os::raw::c_char,
            pos: tm_vec3_t,
            scl: tm_vec3_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub bound_entity_asset: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_asset_scene_o,
            tt: *const tm_the_truth_o,
            asset: tm_tt_id_t,
            bounds: *mut tm_vec3_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_scene_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_scene_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_asset_scene_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_scene_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_scene_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_scene_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_scene_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_scene_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_scene_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_scene_api>())).droppable as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_scene_api),
            "::",
            stringify!(droppable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_scene_api>())).create_entity as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_scene_api),
            "::",
            stringify!(create_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_scene_api>())).bound_entity_asset as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_scene_api),
            "::",
            stringify!(bound_entity_asset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_scene_i {
    pub api: *mut tm_asset_scene_api,
    pub inst: *mut tm_asset_scene_o,
}
#[test]
fn bindgen_test_layout_tm_asset_scene_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_scene_i>(),
        16usize,
        concat!("Size of: ", stringify!(tm_asset_scene_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_scene_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_scene_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_scene_i>())).api as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_scene_i),
            "::",
            stringify!(api)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_asset_scene_i>())).inst as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_scene_i),
            "::",
            stringify!(inst)
        )
    );
}
pub const camera_controller_mode_MODE_NONE: camera_controller_mode = 0;
pub const camera_controller_mode_MODE_FREE_FLIGHT: camera_controller_mode = 1;
pub const camera_controller_mode_MODE_MAYA_SPIN: camera_controller_mode = 2;
pub const camera_controller_mode_MODE_MAYA_ZOOM: camera_controller_mode = 3;
pub const camera_controller_mode_MODE_MAYA_PAN: camera_controller_mode = 4;
pub type camera_controller_mode = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_camera_controller_component_t {
    pub disable_input: bool,
    pub _padding_24: [::std::os::raw::c_char; 3usize],
    pub mode: camera_controller_mode,
    pub translation: tm_vec3_t,
    pub damped_translation: tm_vec3_t,
    pub rotation: tm_vec2_t,
    pub focus_point: tm_vec3_t,
    pub zoom: f32,
    pub spin: tm_vec2_t,
    pub pan: tm_vec2_t,
}
#[test]
fn bindgen_test_layout_tm_camera_controller_component_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_camera_controller_component_t>(),
        72usize,
        concat!("Size of: ", stringify!(tm_camera_controller_component_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_camera_controller_component_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_camera_controller_component_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).disable_input as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(disable_input)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>()))._padding_24 as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(_padding_24)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).mode as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(mode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).translation as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(translation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).damped_translation
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(damped_translation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).rotation as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).focus_point as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(focus_point)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).zoom as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(zoom)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).spin as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(spin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_t>())).pan as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_t),
            "::",
            stringify!(pan)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_camera_controller_component_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_camera_controller_component_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut tm_entity_context_o,
        ) -> *mut tm_camera_controller_component_manager_o,
    >,
    pub feed_ui_input: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_camera_controller_component_manager_o,
            ui: *mut tm_ui_o,
            in_area: bool,
        ),
    >,
    pub register_engines: ::std::option::Option<
        unsafe extern "C" fn(manager: *mut tm_camera_controller_component_manager_o),
    >,
}
#[test]
fn bindgen_test_layout_tm_camera_controller_component_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_camera_controller_component_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_camera_controller_component_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_camera_controller_component_api>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_camera_controller_component_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_api>())).create as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_api>())).feed_ui_input as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_api),
            "::",
            stringify!(feed_ui_input)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_camera_controller_component_api>())).register_engines
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_camera_controller_component_api),
            "::",
            stringify!(register_engines)
        )
    );
}
pub type tm_ci_editor_properties_ui_f = ::std::option::Option<
    unsafe extern "C" fn(
        args: *mut tm_properties_ui_args_t,
        item_rect: tm_rect_t,
        object: tm_tt_id_t,
        indent: u32,
    ) -> f32,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_editor_ui_icon_i {
    pub unicode: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
}
#[test]
fn bindgen_test_layout_tm_ci_editor_ui_icon_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_editor_ui_icon_i>(),
        8usize,
        concat!("Size of: ", stringify!(tm_ci_editor_ui_icon_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_editor_ui_icon_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ci_editor_ui_icon_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_editor_ui_icon_i>())).unicode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_icon_i),
            "::",
            stringify!(unicode)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_ci_viewport_interact {
    pub tt: *mut tm_the_truth_o,
    pub entity_ctx: *mut tm_entity_context_o,
    pub entity: tm_tt_id_t,
    pub component: tm_tt_id_t,
    pub ui: *mut tm_ui_o,
    pub uistyle: *const tm_ui_style_t,
    pub primitive_buffer: *mut tm_primitive_drawer_buffer_t,
    pub vertex_buffer: *mut tm_primitive_drawer_buffer_t,
    pub allocator: *mut tm_allocator_i,
    pub camera: *const tm_camera_t,
    pub viewport_r: tm_rect_t,
    pub viewport_id: u64,
    pub tab_id: u64,
    pub undo_stack: *mut tm_undo_stack_i,
    pub active_tool_id: u64,
    pub move_settings: *const tm_gizmo__move_settings_t,
    pub rotate_settings: *const tm_gizmo__rotate_settings_t,
    pub scale_settings: *const tm_gizmo__scale_settings_t,
    pub editor: *mut ::std::os::raw::c_void,
    pub set_selection: ::std::option::Option<
        unsafe extern "C" fn(editor: *mut ::std::os::raw::c_void, item_t: tm_tt_id_t),
    >,
}
#[test]
fn bindgen_test_layout_tm_ci_viewport_interact() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_viewport_interact>(),
        168usize,
        concat!("Size of: ", stringify!(tm_ci_viewport_interact))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_viewport_interact>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ci_viewport_interact))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_viewport_interact>())).tt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).entity_ctx as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(entity_ctx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_viewport_interact>())).entity as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).component as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(component)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_viewport_interact>())).ui as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_viewport_interact>())).uistyle as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(uistyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).primitive_buffer as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(primitive_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).vertex_buffer as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(vertex_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).allocator as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_viewport_interact>())).camera as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(camera)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).viewport_r as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(viewport_r)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).viewport_id as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(viewport_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_viewport_interact>())).tab_id as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(tab_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).undo_stack as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(undo_stack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).active_tool_id as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(active_tool_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).move_settings as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(move_settings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).rotate_settings as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(rotate_settings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).scale_settings as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(scale_settings)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_viewport_interact>())).editor as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(editor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact>())).set_selection as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact),
            "::",
            stringify!(set_selection)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_viewport_interact_result {
    pub hide_gizmo: bool,
}
#[test]
fn bindgen_test_layout_tm_ci_viewport_interact_result() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_viewport_interact_result>(),
        1usize,
        concat!("Size of: ", stringify!(tm_ci_viewport_interact_result))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_viewport_interact_result>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_ci_viewport_interact_result))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_viewport_interact_result>())).hide_gizmo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_viewport_interact_result),
            "::",
            stringify!(hide_gizmo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_toolbar {
    pub active_tool_id: u64,
    pub editor: *mut ::std::os::raw::c_void,
    pub set_active_tool:
        ::std::option::Option<unsafe extern "C" fn(editor: *mut ::std::os::raw::c_void, id: u64)>,
}
#[test]
fn bindgen_test_layout_tm_ci_toolbar() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_toolbar>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ci_toolbar))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_toolbar>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ci_toolbar))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_toolbar>())).active_tool_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_toolbar),
            "::",
            stringify!(active_tool_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_toolbar>())).editor as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_toolbar),
            "::",
            stringify!(editor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_toolbar>())).set_active_tool as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_toolbar),
            "::",
            stringify!(set_active_tool)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_editor_ui_i {
    pub disabled: ::std::option::Option<unsafe extern "C" fn() -> bool>,
    pub category: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
    pub icon_interface:
        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_ci_editor_ui_icon_i>,
    pub gizmo_priority: f32,
    pub _padding_90: [::std::os::raw::c_char; 4usize],
    pub gizmo_get_transform: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            ctx: *mut tm_entity_context_o,
            entity: tm_tt_id_t,
            component: tm_tt_id_t,
            object: tm_tt_id_t,
            world: *mut tm_transform_t,
            local: *mut tm_transform_t,
        ) -> bool,
    >,
    pub gizmo_set_transform: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            ctx: *mut tm_entity_context_o,
            entity: tm_tt_id_t,
            component: tm_tt_id_t,
            object: tm_tt_id_t,
            local: *const tm_transform_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
    pub gizmo_duplicate: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            ctx: *mut tm_entity_context_o,
            entity: tm_tt_id_t,
            component: tm_tt_id_t,
            object: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub override_properties: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            other_component: tm_tt_id_t,
        ) -> tm_ci_editor_properties_ui_f,
    >,
    pub viewport_interact: ::std::option::Option<
        unsafe extern "C" fn(vi: *const tm_ci_viewport_interact) -> tm_ci_viewport_interact_result,
    >,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            type_: u64,
            undo_scope: tm_tt_undo_scope_t,
        ) -> tm_tt_id_t,
    >,
    pub toolbar: ::std::option::Option<
        unsafe extern "C" fn(ci: *const tm_ci_toolbar) -> *mut tm_tab_toolbar_i,
    >,
}
#[test]
fn bindgen_test_layout_tm_ci_editor_ui_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_editor_ui_i>(),
        88usize,
        concat!("Size of: ", stringify!(tm_ci_editor_ui_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_editor_ui_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ci_editor_ui_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).disabled as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).category as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(category)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).icon_interface as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(icon_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).gizmo_priority as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(gizmo_priority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_editor_ui_i>()))._padding_90 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(_padding_90)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).gizmo_get_transform as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(gizmo_get_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).gizmo_set_transform as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(gizmo_set_transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).gizmo_duplicate as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(gizmo_duplicate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).override_properties as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(override_properties)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).viewport_interact as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(viewport_interact)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).create as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_editor_ui_i>())).toolbar as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_editor_ui_i),
            "::",
            stringify!(toolbar)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_render_viewer_t {
    pub sort_key: u64,
    pub visibility_mask: u64,
    pub visibility_context: u64,
    pub viewer_system: *mut tm_shader_system_o,
    pub viewer_cbuffer: *mut tm_shader_constant_buffer_instance_t,
    pub viewer_rbinder: *mut tm_shader_resource_binder_instance_t,
}
#[test]
fn bindgen_test_layout_tm_ci_render_viewer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_render_viewer_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ci_render_viewer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_render_viewer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ci_render_viewer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_render_viewer_t>())).sort_key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_viewer_t),
            "::",
            stringify!(sort_key)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_viewer_t>())).visibility_mask as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_viewer_t),
            "::",
            stringify!(visibility_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_viewer_t>())).visibility_context as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_viewer_t),
            "::",
            stringify!(visibility_context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_viewer_t>())).viewer_system as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_viewer_t),
            "::",
            stringify!(viewer_system)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_viewer_t>())).viewer_cbuffer as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_viewer_t),
            "::",
            stringify!(viewer_cbuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_viewer_t>())).viewer_rbinder as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_viewer_t),
            "::",
            stringify!(viewer_rbinder)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_render_i {
    pub init: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            entities: *const tm_entity_t,
            entity_indices: *const u32,
            render_component_data: *mut *mut ::std::os::raw::c_void,
            num_renderables: u32,
        ),
    >,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            args: *mut tm_render_args_t,
            viewers: *const tm_ci_render_viewer_t,
            num_viewers: u32,
            entities: *const tm_entity_t,
            entity_transforms: *const tm_transform_component_t,
            entity_selection_state: *const bool,
            entity_indices: *const u32,
            render_component_data: *mut *mut ::std::os::raw::c_void,
            num_renderables: u32,
            frustum_visibility: *const u8,
        ),
    >,
    pub bounding_volume_type:
        ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o) -> u32>,
    pub fill_bounding_volume_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            entities: *const tm_entity_t,
            entity_transforms: *const tm_transform_component_t,
            entity_indices: *const u32,
            render_component_data: *mut *mut ::std::os::raw::c_void,
            num_renderables: u32,
            bv_buffer: *mut u8,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_ci_render_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_render_i>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ci_render_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_render_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ci_render_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_render_i>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_i),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_render_i>())).render as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_i),
            "::",
            stringify!(render)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_i>())).bounding_volume_type as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_i),
            "::",
            stringify!(bounding_volume_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_i>())).fill_bounding_volume_buffer as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_i),
            "::",
            stringify!(fill_bounding_volume_buffer)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_ci_render_gather_callback_args_t {
    pub allocator: *mut tm_allocator_i,
    pub selected_entities_lookup: *const tm_set_entity_t,
    pub hidden_entities_lookup: *const tm_set_entity_t,
    pub ignored_entities_lookup: *const tm_set_entity_t,
    pub render_component_names: [u64; 64usize],
    pub render_interfaces: [*mut tm_ci_render_i; 64usize],
    pub num_render_components: u32,
    pub render_component_data_strides: [u32; 64usize],
    pub _padding_54: [::std::os::raw::c_char; 4usize],
    pub component_managers: [*mut tm_component_manager_o; 64usize],
    pub entity_selection_state: *mut bool,
    pub entity_ignore_state: *mut bool,
    pub entity_transforms: *mut tm_transform_component_t,
    pub entities: *mut tm_entity_t,
    pub component_data: [*mut *mut ::std::os::raw::c_void; 64usize],
    pub entity_indices: [*mut u32; 64usize],
    pub num_renderables_per_component: [u32; 64usize],
}
#[test]
fn bindgen_test_layout_tm_ci_render_gather_callback_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_render_gather_callback_args_t>(),
        3144usize,
        concat!("Size of: ", stringify!(tm_ci_render_gather_callback_args_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_render_gather_callback_args_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_ci_render_gather_callback_args_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).allocator as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).selected_entities_lookup
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(selected_entities_lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).hidden_entities_lookup
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(hidden_entities_lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).ignored_entities_lookup
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(ignored_entities_lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).render_component_names
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(render_component_names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).render_interfaces
                as *const _ as usize
        },
        544usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(render_interfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).num_render_components
                as *const _ as usize
        },
        1056usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(num_render_components)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>()))
                .render_component_data_strides as *const _ as usize
        },
        1060usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(render_component_data_strides)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>()))._padding_54 as *const _
                as usize
        },
        1316usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(_padding_54)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).component_managers
                as *const _ as usize
        },
        1320usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(component_managers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).entity_selection_state
                as *const _ as usize
        },
        1832usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(entity_selection_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).entity_ignore_state
                as *const _ as usize
        },
        1840usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(entity_ignore_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).entity_transforms
                as *const _ as usize
        },
        1848usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(entity_transforms)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).entities as *const _
                as usize
        },
        1856usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(entities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).component_data
                as *const _ as usize
        },
        1864usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(component_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>())).entity_indices
                as *const _ as usize
        },
        2376usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(entity_indices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_render_gather_callback_args_t>()))
                .num_renderables_per_component as *const _ as usize
        },
        2888usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_render_gather_callback_args_t),
            "::",
            stringify!(num_renderables_per_component)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_shader_i {
    pub init: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            entities: *const tm_entity_t,
            entity_indices: *const u32,
            shader_component_data: *mut *mut ::std::os::raw::c_void,
            num_shader_datas: u32,
        ),
    >,
    pub graph_module_inject: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            module: *mut tm_render_graph_module_o,
        ),
    >,
    pub bounding_volume_type:
        ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o) -> u32>,
    pub fill_bounding_volume_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            entity_transforms: *const tm_transform_t,
            entity_indices: *const u32,
            component_data: *mut *mut ::std::os::raw::c_void,
            num_components: u32,
            bv_buffer: *mut u8,
        ),
    >,
    pub update: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_component_manager_o,
            args: *mut tm_render_args_t,
            entities: *const tm_entity_t,
            entity_transforms: *const tm_transform_component_t,
            entity_indices: *const u32,
            component_data: *mut *mut ::std::os::raw::c_void,
            num_components: u32,
            frustum_visibility: *const u8,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_ci_shader_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_shader_i>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ci_shader_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_shader_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ci_shader_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_shader_i>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_i),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_i>())).graph_module_inject as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_i),
            "::",
            stringify!(graph_module_inject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_i>())).bounding_volume_type as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_i),
            "::",
            stringify!(bounding_volume_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_i>())).fill_bounding_volume_buffer as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_i),
            "::",
            stringify!(fill_bounding_volume_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ci_shader_i>())).update as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_i),
            "::",
            stringify!(update)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ci_shader_data_gather_callback_args_t {
    pub allocator: *mut tm_allocator_i,
    pub hidden_entities_lookup: *const tm_set_entity_t,
    pub shader_component_names: [u64; 15usize],
    pub shader_interfaces: [*mut tm_ci_shader_i; 15usize],
    pub num_shader_components: u32,
    pub shader_component_data_strides: [u32; 15usize],
    pub component_managers: [*mut tm_component_manager_o; 15usize],
    pub entity_transforms: *mut tm_transform_component_t,
    pub entities: *mut tm_entity_t,
    pub component_data: [*mut *mut ::std::os::raw::c_void; 15usize],
    pub entity_indices: [*mut u32; 15usize],
    pub num_shader_data_per_component: [u32; 15usize],
    pub _padding_56: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ci_shader_data_gather_callback_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ci_shader_data_gather_callback_args_t>(),
        760usize,
        concat!(
            "Size of: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ci_shader_data_gather_callback_args_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_ci_shader_data_gather_callback_args_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>())).allocator
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>()))
                .hidden_entities_lookup as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(hidden_entities_lookup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>()))
                .shader_component_names as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(shader_component_names)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>())).shader_interfaces
                as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(shader_interfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>()))
                .num_shader_components as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(num_shader_components)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>()))
                .shader_component_data_strides as *const _ as usize
        },
        260usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(shader_component_data_strides)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>())).component_managers
                as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(component_managers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>())).entity_transforms
                as *const _ as usize
        },
        440usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(entity_transforms)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>())).entities
                as *const _ as usize
        },
        448usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(entities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>())).component_data
                as *const _ as usize
        },
        456usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(component_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>())).entity_indices
                as *const _ as usize
        },
        576usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(entity_indices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>()))
                .num_shader_data_per_component as *const _ as usize
        },
        696usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(num_shader_data_per_component)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ci_shader_data_gather_callback_args_t>()))._padding_56
                as *const _ as usize
        },
        756usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ci_shader_data_gather_callback_args_t),
            "::",
            stringify!(_padding_56)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_culling_viewer_t {
    pub visibility_mask: u64,
    pub frustum_planes: [tm_vec4_t; 6usize],
}
#[test]
fn bindgen_test_layout_tm_culling_viewer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_culling_viewer_t>(),
        104usize,
        concat!("Size of: ", stringify!(tm_culling_viewer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_culling_viewer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_culling_viewer_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_culling_viewer_t>())).visibility_mask as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_culling_viewer_t),
            "::",
            stringify!(visibility_mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_culling_viewer_t>())).frustum_planes as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_culling_viewer_t),
            "::",
            stringify!(frustum_planes)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_frustum_culling_api {
    pub viewer_from_projection_mat: ::std::option::Option<
        unsafe extern "C" fn(
            view_tm: *const tm_mat44_t,
            projection_tm: *const tm_mat44_t,
            visibility_mask: u64,
        ) -> tm_culling_viewer_t,
    >,
    pub calc_size_of_objects_buffer:
        ::std::option::Option<unsafe extern "C" fn(bv_type: u32, num_objects: u32) -> u32>,
    pub calc_size_of_results_buffer:
        ::std::option::Option<unsafe extern "C" fn(num_viewers: u32, num_objects: u32) -> u32>,
    pub cull: ::std::option::Option<
        unsafe extern "C" fn(
            viewers: *const tm_culling_viewer_t,
            num_viewers: u32,
            bv_type: u32,
            objects: *const u8,
            num_objects: u32,
            results: *mut u8,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_atomic_counter_o,
    >,
}
#[test]
fn bindgen_test_layout_tm_frustum_culling_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_frustum_culling_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_frustum_culling_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_frustum_culling_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_frustum_culling_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_frustum_culling_api>())).viewer_from_projection_mat
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_frustum_culling_api),
            "::",
            stringify!(viewer_from_projection_mat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_frustum_culling_api>())).calc_size_of_objects_buffer
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_frustum_culling_api),
            "::",
            stringify!(calc_size_of_objects_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_frustum_culling_api>())).calc_size_of_results_buffer
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_frustum_culling_api),
            "::",
            stringify!(calc_size_of_results_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_frustum_culling_api>())).cull as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_frustum_culling_api),
            "::",
            stringify!(cull)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_context_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_context_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_render_context_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(context: *mut tm_render_context_o)>,
    pub append_resource_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_render_context_o,
            res_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub append_command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_render_context_o,
            cmd_buffers: *mut *mut tm_renderer_command_buffer_o,
            num_buffers: u32,
        ),
    >,
    pub resource_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_render_context_o,
            res_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
        ) -> u32,
    >,
    pub command_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            context: *mut tm_render_context_o,
            cmd_buffers: *mut *mut tm_renderer_command_buffer_o,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_render_context_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_context_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_render_context_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_context_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_context_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_context_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_context_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_context_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_context_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_context_api>())).append_resource_buffers as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_context_api),
            "::",
            stringify!(append_resource_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_context_api>())).append_command_buffers as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_context_api),
            "::",
            stringify!(append_command_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_context_api>())).resource_buffers as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_context_api),
            "::",
            stringify!(resource_buffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_context_api>())).command_buffers as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_context_api),
            "::",
            stringify!(command_buffers)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_render_args_t {
    pub camera_tm: tm_transform_t,
    pub context: *mut tm_render_context_o,
    pub render_backend: *mut tm_renderer_backend_i,
    pub shader_repository: *mut tm_shader_repository_o,
    pub device_affinity_mask: u32,
    pub _padding_61: [::std::os::raw::c_char; 4usize],
    pub default_resource_buffer: *mut tm_renderer_resource_command_buffer_o,
    pub default_command_buffer: *mut tm_renderer_command_buffer_o,
    pub render_graph: *mut tm_render_graph_o,
    pub render_pipeline: *mut tm_render_pipeline_i,
    pub shader_context: *const tm_shader_system_context_o,
}
#[test]
fn bindgen_test_layout_tm_render_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_render_args_t>(),
        112usize,
        concat!("Size of: ", stringify!(tm_render_args_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_render_args_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_render_args_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_args_t>())).camera_tm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(camera_tm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_args_t>())).context as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_args_t>())).render_backend as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(render_backend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_args_t>())).shader_repository as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(shader_repository)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_args_t>())).device_affinity_mask as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(device_affinity_mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_args_t>()))._padding_61 as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(_padding_61)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_args_t>())).default_resource_buffer as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(default_resource_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_args_t>())).default_command_buffer as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(default_command_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_args_t>())).render_graph as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(render_graph)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_render_args_t>())).render_pipeline as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(render_pipeline)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_render_args_t>())).shader_context as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_render_args_t),
            "::",
            stringify!(shader_context)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_lighting_environment_settings_t {
    pub enabled: bool,
    pub _padding_27: [::std::os::raw::c_char; 7usize],
    pub asset: tm_tt_id_t,
    pub spawned_entity: tm_entity_t,
    pub search_buf: [::std::os::raw::c_char; 1024usize],
}
#[test]
fn bindgen_test_layout_tm_lighting_environment_settings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_lighting_environment_settings_t>(),
        1048usize,
        concat!("Size of: ", stringify!(tm_lighting_environment_settings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_lighting_environment_settings_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_lighting_environment_settings_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_lighting_environment_settings_t>())).enabled as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lighting_environment_settings_t),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_lighting_environment_settings_t>()))._padding_27 as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lighting_environment_settings_t),
            "::",
            stringify!(_padding_27)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_lighting_environment_settings_t>())).asset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lighting_environment_settings_t),
            "::",
            stringify!(asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_lighting_environment_settings_t>())).spawned_entity
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lighting_environment_settings_t),
            "::",
            stringify!(spawned_entity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_lighting_environment_settings_t>())).search_buf as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_lighting_environment_settings_t),
            "::",
            stringify!(search_buf)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_scene_common_api {
    pub init_camera: ::std::option::Option<
        unsafe extern "C" fn(camera: *mut tm_transform_t, translation: tm_vec3_t),
    >,
    pub camera_frame_bounds: ::std::option::Option<
        unsafe extern "C" fn(
            camera: *mut tm_transform_t,
            camera_y_fov: f32,
            bounds: *const tm_vec3_t,
            translation_speed: *mut f32,
            focus_point: *mut tm_vec3_t,
        ),
    >,
    pub find_component_render_interfaces: ::std::option::Option<
        unsafe extern "C" fn(
            entity_ctx: *mut tm_entity_context_o,
            transform_component: u32,
            tt: *const tm_the_truth_o,
            allocator: *mut tm_allocator_i,
            selection: *const tm_tt_id_t,
            selection_n: u64,
            ignore: *const tm_entity_t,
            ignore_n: u64,
            include_entities_without_render_components: bool,
            res: *mut tm_ci_render_gather_callback_args_t,
        ),
    >,
    pub bound_assets: ::std::option::Option<
        unsafe extern "C" fn(
            entity_ctx: *mut tm_entity_context_o,
            transform_component: u32,
            tt: *const tm_the_truth_o,
            ignore: *const tm_entity_t,
            ignore_n: u64,
            bounds: *mut tm_vec3_t,
            include_origo: bool,
        ),
    >,
    pub bound_selected_assets: ::std::option::Option<
        unsafe extern "C" fn(
            entity_ctx: *mut tm_entity_context_o,
            transform_component: u32,
            tt: *const tm_the_truth_o,
            selection: *const tm_tt_id_t,
            selection_n: u64,
            ignore: *const tm_entity_t,
            ignore_n: u64,
            bounds: *mut tm_vec3_t,
            include_origo: bool,
        ),
    >,
    pub bound_entity_asset: ::std::option::Option<
        unsafe extern "C" fn(tt: *const tm_the_truth_o, entity: tm_tt_id_t, bounds: *mut tm_vec3_t),
    >,
    pub find_shader_data_engine_update: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_engine_o, data: *mut tm_engine_update_set_t),
    >,
    pub gather_shader_data_filter: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_engine_o,
            components: *const u32,
            num_components: u32,
            mask: *const tm_component_mask_t,
        ) -> bool,
    >,
    pub find_renderables_engine_update: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_engine_o, data: *mut tm_engine_update_set_t),
    >,
    pub gather_renderables_filter: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_engine_o,
            components: *const u32,
            num_components: u32,
            mask: *const tm_component_mask_t,
        ) -> bool,
    >,
    pub add_default_light_source: ::std::option::Option<
        unsafe extern "C" fn(entity_ctx: *mut tm_entity_context_o) -> tm_entity_t,
    >,
    pub has_any_light_source:
        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> bool>,
    pub viewport_visualization_toolbar: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            entity_ctx: *mut tm_entity_context_o,
            le_settings: *mut tm_lighting_environment_settings_t,
            render_pipeline: *mut tm_render_pipeline_i,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            toolbar_r: tm_rect_t,
            toolbar_direction: u32,
        ) -> tm_rect_t,
    >,
    pub place_entity: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            entity: tm_tt_id_t,
            ctx: *mut tm_entity_context_o,
            parent_entity: tm_tt_id_t,
            pos: tm_vec3_t,
            scl: tm_vec3_t,
            undo_scope: tm_tt_undo_scope_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_scene_common_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_scene_common_api>(),
        112usize,
        concat!("Size of: ", stringify!(tm_scene_common_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_scene_common_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_scene_common_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_scene_common_api>())).init_camera as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(init_camera)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).camera_frame_bounds as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(camera_frame_bounds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).find_component_render_interfaces
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(find_component_render_interfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).bound_assets as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(bound_assets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).bound_selected_assets as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(bound_selected_assets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).bound_entity_asset as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(bound_entity_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).find_shader_data_engine_update
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(find_shader_data_engine_update)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).gather_shader_data_filter as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(gather_shader_data_filter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).find_renderables_engine_update
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(find_renderables_engine_update)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).gather_renderables_filter as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(gather_renderables_filter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).add_default_light_source as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(add_default_light_source)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).has_any_light_source as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(has_any_light_source)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).viewport_visualization_toolbar
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(viewport_visualization_toolbar)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_scene_common_api>())).place_entity as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_scene_common_api),
            "::",
            stringify!(place_entity)
        )
    );
}
pub type tm_viewer_render_callback_f = ::std::option::Option<
    unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, args: *const tm_render_args_t),
>;
pub type tm_viewer_gather_shader_data_callback_f = ::std::option::Option<
    unsafe extern "C" fn(
        inst: *mut ::std::os::raw::c_void,
        args: *mut tm_ci_shader_data_gather_callback_args_t,
    ),
>;
pub type tm_viewer_gather_render_callback_f = ::std::option::Option<
    unsafe extern "C" fn(
        inst: *mut ::std::os::raw::c_void,
        args: *mut tm_ci_render_gather_callback_args_t,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_viewer_render_args_t {
    pub camera_tm: tm_transform_t,
    pub near_plane: f32,
    pub far_plane: f32,
    pub vertical_fov: f32,
    pub simulation_speed: f32,
    pub render_pipeline_api: *mut tm_render_pipeline_api,
    pub final_target_resource_state: u16,
    pub _padding_49: [::std::os::raw::c_char; 2usize],
    pub rect: tm_rect_t,
    pub dpi_scale_factor: f32,
    pub editor_visibility_flags: u64,
    pub native_resolution: bool,
    pub _padding_63: [::std::os::raw::c_char; 3usize],
    pub wanted_gpu: u32,
    pub capture_target_resource: u32,
    pub capture_target_resource_surface: u32,
    pub capture_target_resource_state: u16,
    pub _padding_78: [::std::os::raw::c_char; 6usize],
    pub render_callback: tm_viewer_render_callback_f,
    pub render_callback_inst: *mut ::std::os::raw::c_void,
    pub gather_shader_data_callback: tm_viewer_gather_shader_data_callback_f,
    pub gather_shader_data_callback_inst: *mut ::std::os::raw::c_void,
    pub gather_render_callback: tm_viewer_gather_render_callback_f,
    pub gather_render_callback_inst: *mut ::std::os::raw::c_void,
    pub gpu_picking: *mut tm_gpu_picking_o,
}
#[test]
fn bindgen_test_layout_tm_viewer_render_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_viewer_render_args_t>(),
        176usize,
        concat!("Size of: ", stringify!(tm_viewer_render_args_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_viewer_render_args_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_viewer_render_args_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).camera_tm as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(camera_tm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).near_plane as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(near_plane)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).far_plane as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(far_plane)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).vertical_fov as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(vertical_fov)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).simulation_speed as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(simulation_speed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).render_pipeline_api as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(render_pipeline_api)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).final_target_resource_state
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(final_target_resource_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>()))._padding_49 as *const _ as usize
        },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(_padding_49)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_render_args_t>())).rect as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).dpi_scale_factor as *const _
                as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(dpi_scale_factor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).editor_visibility_flags as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(editor_visibility_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).native_resolution as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(native_resolution)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>()))._padding_63 as *const _ as usize
        },
        97usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(_padding_63)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).wanted_gpu as *const _ as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(wanted_gpu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).capture_target_resource as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(capture_target_resource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).capture_target_resource_surface
                as *const _ as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(capture_target_resource_surface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).capture_target_resource_state
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(capture_target_resource_state)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>()))._padding_78 as *const _ as usize
        },
        114usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(_padding_78)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).render_callback as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(render_callback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).render_callback_inst as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(render_callback_inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).gather_shader_data_callback
                as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(gather_shader_data_callback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).gather_shader_data_callback_inst
                as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(gather_shader_data_callback_inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).gather_render_callback as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(gather_render_callback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).gather_render_callback_inst
                as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(gather_render_callback_inst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_args_t>())).gpu_picking as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_args_t),
            "::",
            stringify!(gpu_picking)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_viewer_render_info_t {
    pub target_width: u32,
    pub target_height: u32,
    pub dpi_scale_factor: f32,
    pub vr_context: u32,
    pub camera: *const tm_camera_t,
    pub render_pipeline: *mut tm_render_pipeline_i,
}
#[test]
fn bindgen_test_layout_tm_viewer_render_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_viewer_render_info_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_viewer_render_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_viewer_render_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_viewer_render_info_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_info_t>())).target_width as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_info_t),
            "::",
            stringify!(target_width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_info_t>())).target_height as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_info_t),
            "::",
            stringify!(target_height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_info_t>())).dpi_scale_factor as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_info_t),
            "::",
            stringify!(dpi_scale_factor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_info_t>())).vr_context as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_info_t),
            "::",
            stringify!(vr_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_render_info_t>())).camera as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_info_t),
            "::",
            stringify!(camera)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_render_info_t>())).render_pipeline as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_render_info_t),
            "::",
            stringify!(render_pipeline)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_viewer_api {
    pub request_render: ::std::option::Option<
        unsafe extern "C" fn(
            viewer: *mut tm_viewer_o,
            args: *const tm_viewer_render_args_t,
            info: *mut tm_viewer_render_info_t,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
        ) -> u32,
    >,
    pub pipeline: ::std::option::Option<
        unsafe extern "C" fn(viewer: *mut tm_viewer_o) -> *mut tm_render_pipeline_i,
    >,
    pub reset_render_pipeline:
        ::std::option::Option<unsafe extern "C" fn(viewer: *mut tm_viewer_o)>,
    pub set_render_pipeline_api: ::std::option::Option<
        unsafe extern "C" fn(viewer: *mut tm_viewer_o, pipeline_api: *mut tm_render_pipeline_api),
    >,
    pub screenshot: ::std::option::Option<unsafe extern "C" fn(viewer: *mut tm_viewer_o)>,
    pub init_vr:
        ::std::option::Option<unsafe extern "C" fn(viewer: *mut tm_viewer_o, activate: bool)>,
}
#[test]
fn bindgen_test_layout_tm_viewer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_viewer_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_viewer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_viewer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_viewer_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_api>())).request_render as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_api),
            "::",
            stringify!(request_render)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_api>())).pipeline as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_api),
            "::",
            stringify!(pipeline)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_api>())).reset_render_pipeline as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_api),
            "::",
            stringify!(reset_render_pipeline)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_api>())).set_render_pipeline_api as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_api),
            "::",
            stringify!(set_render_pipeline_api)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_api>())).screenshot as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_api),
            "::",
            stringify!(screenshot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_api>())).init_vr as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_api),
            "::",
            stringify!(init_vr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_viewer_manager_api {
    pub create_manager: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            render_backend: *mut tm_renderer_backend_i,
            shader_repository: *mut tm_shader_repository_o,
            main_device_affinity: u32,
            default_visibility_context: *mut tm_visibility_context_o,
            viewport_visibility_flag: u64,
        ) -> *mut tm_viewer_manager_o,
    >,
    pub destroy_manager: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_viewer_manager_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(manager: *mut tm_viewer_manager_o) -> *mut tm_viewer_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_viewer_manager_o,
            viewer: *mut tm_viewer_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub viewers: ::std::option::Option<
        unsafe extern "C" fn(manager: *mut tm_viewer_manager_o) -> *mut *mut tm_viewer_o,
    >,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            manager: *mut tm_viewer_manager_o,
            shader_context: *const tm_shader_system_context_o,
            tt: *const tm_the_truth_o,
            frame_params: *const tm_render_pipeline_update_frame_parameters_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_viewer_manager_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_viewer_manager_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_viewer_manager_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_viewer_manager_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_viewer_manager_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_manager_api>())).create_manager as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_manager_api),
            "::",
            stringify!(create_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_viewer_manager_api>())).destroy_manager as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_manager_api),
            "::",
            stringify!(destroy_manager)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_manager_api>())).create as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_manager_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_manager_api>())).destroy as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_manager_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_manager_api>())).viewers as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_manager_api),
            "::",
            stringify!(viewers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_viewer_manager_api>())).render as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_viewer_manager_api),
            "::",
            stringify!(render)
        )
    );
}
pub const TM_TT_PROP__CLIPBOARD__OBJECTS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__CLIPBOARD__IS_CUT: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_217 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_clipboard_api {
    pub setup_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub cut: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            objects: *const tm_tt_id_t,
            count: u32,
            undo_stack: *mut tm_undo_stack_i,
        ),
    >,
    pub copy: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            objects: *const tm_tt_id_t,
            count: u32,
            undo_stack: *mut tm_undo_stack_i,
        ),
    >,
    pub empty: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, undo_scope: tm_tt_undo_scope_t),
    >,
    pub cut_objects: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub copied_objects: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *const tm_the_truth_o,
            ta: *mut tm_temp_allocator_i,
        ) -> *const tm_tt_id_t,
    >,
    pub truth: ::std::option::Option<unsafe extern "C" fn() -> *const tm_the_truth_o>,
}
#[test]
fn bindgen_test_layout_tm_ui_clipboard_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_clipboard_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_ui_clipboard_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_clipboard_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_clipboard_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_clipboard_api>())).setup_the_truth as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_clipboard_api),
            "::",
            stringify!(setup_the_truth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_clipboard_api>())).cut as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_clipboard_api),
            "::",
            stringify!(cut)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_clipboard_api>())).copy as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_clipboard_api),
            "::",
            stringify!(copy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_clipboard_api>())).empty as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_clipboard_api),
            "::",
            stringify!(empty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_clipboard_api>())).cut_objects as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_clipboard_api),
            "::",
            stringify!(cut_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_clipboard_api>())).copied_objects as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_clipboard_api),
            "::",
            stringify!(copied_objects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_clipboard_api>())).truth as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_clipboard_api),
            "::",
            stringify!(truth)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_docking_tabwell_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_renderer_o {
    _unused: [u8; 0],
}
pub const tm_tab_focus_event_TM_TAB_FOCUS_EVENT__FOCUS: tm_tab_focus_event = 0;
pub const tm_tab_focus_event_TM_TAB_FOCUS_EVENT__OPEN: tm_tab_focus_event = 1;
pub type tm_tab_focus_event = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tab_vt_root_t {
    pub tt: *mut tm_the_truth_o,
    pub root: tm_tt_id_t,
    pub counter: u64,
}
#[test]
fn bindgen_test_layout_tm_tab_vt_root_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tab_vt_root_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_tab_vt_root_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tab_vt_root_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tab_vt_root_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt_root_t>())).tt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt_root_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt_root_t>())).root as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt_root_t),
            "::",
            stringify!(root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt_root_t>())).counter as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt_root_t),
            "::",
            stringify!(counter)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_docking_feed_events_args_t {
    pub window_ui: *mut tm_ui_o,
    pub window_rect: tm_rect_t,
    pub window_dpi_scale_factor: f32,
    pub window_has_focus: bool,
    pub window_under_cursor: bool,
    pub _padding_89: [::std::os::raw::c_char; 2usize],
}
#[test]
fn bindgen_test_layout_tm_docking_feed_events_args_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_docking_feed_events_args_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_docking_feed_events_args_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_docking_feed_events_args_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_docking_feed_events_args_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_feed_events_args_t>())).window_ui as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_feed_events_args_t),
            "::",
            stringify!(window_ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_feed_events_args_t>())).window_rect as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_feed_events_args_t),
            "::",
            stringify!(window_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_feed_events_args_t>())).window_dpi_scale_factor
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_feed_events_args_t),
            "::",
            stringify!(window_dpi_scale_factor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_feed_events_args_t>())).window_has_focus as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_feed_events_args_t),
            "::",
            stringify!(window_has_focus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_feed_events_args_t>())).window_under_cursor
                as *const _ as usize
        },
        29usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_feed_events_args_t),
            "::",
            stringify!(window_under_cursor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_feed_events_args_t>()))._padding_89 as *const _
                as usize
        },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_feed_events_args_t),
            "::",
            stringify!(_padding_89)
        )
    );
}
pub const TM_TT_PROP__DOCKING_SETTINGS__TOOLBARS_SETTINGS: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_218 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tab_vt {
    pub name: *const ::std::os::raw::c_char,
    pub name_hash: u64,
    pub create_menu_name:
        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
    pub create: ::std::option::Option<
        unsafe extern "C" fn(context: *mut tm_tab_create_context_t) -> *mut tm_tab_i,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o)>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tab_o,
            font: u32,
            font_info: *const tm_font_t,
            font_scale: f32,
            ui: *mut tm_ui_o,
            rect: tm_rect_t,
        ),
    >,
    pub hidden_update: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o)>,
    pub title: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tab_o,
            ui: *mut tm_ui_o,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub set_root: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_tab_o, tt: *mut tm_the_truth_o, root: tm_tt_id_t),
    >,
    pub root: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o) -> tm_tab_vt_root_t>,
    pub can_close: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o) -> bool>,
    pub focus_event: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tab_o,
            from: *mut tm_tab_i,
            event: tm_tab_focus_event,
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            selection: *const tm_tt_id_t,
            selection_n: u32,
        ),
    >,
    pub feed_events: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tab_o,
            events: *const tm_input_event_t,
            count: u32,
            args: *mut tm_docking_feed_events_args_t,
        ),
    >,
    pub process_dropped_os_files: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tab_o,
            ui: *mut tm_ui_o,
            files: *mut *mut ::std::os::raw::c_char,
            num_files: u32,
        ),
    >,
    pub toolbars: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_tab_o, n: *mut u32) -> *mut tm_tab_toolbar_i,
    >,
    pub cant_be_pinned: bool,
    pub run_as_job: bool,
    pub _padding_222: [::std::os::raw::c_char; 6usize],
}
#[test]
fn bindgen_test_layout_tm_tab_vt() {
    assert_eq!(
        ::std::mem::size_of::<tm_tab_vt>(),
        128usize,
        concat!("Size of: ", stringify!(tm_tab_vt))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tab_vt>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tab_vt))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).name_hash as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(name_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).create_menu_name as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(create_menu_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).create as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).destroy as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).ui as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).hidden_update as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(hidden_update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).title as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(title)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).set_root as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(set_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).root as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).can_close as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(can_close)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).focus_event as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(focus_event)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).feed_events as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(feed_events)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_vt>())).process_dropped_os_files as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(process_dropped_os_files)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).toolbars as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(toolbars)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).cant_be_pinned as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(cant_be_pinned)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>())).run_as_job as *const _ as usize },
        121usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(run_as_job)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_vt>()))._padding_222 as *const _ as usize },
        122usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_vt),
            "::",
            stringify!(_padding_222)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tab_i {
    pub vt: *mut tm_tab_vt,
    pub inst: *mut tm_tab_o,
    pub root_id: u64,
}
#[test]
fn bindgen_test_layout_tm_tab_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_tab_i>(),
        24usize,
        concat!("Size of: ", stringify!(tm_tab_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tab_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tab_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_i>())).vt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_i),
            "::",
            stringify!(vt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_i>())).inst as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_i>())).root_id as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_i),
            "::",
            stringify!(root_id)
        )
    );
}
pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_NONE: tm_docking_tabwell_split = 0;
pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_RIGHT: tm_docking_tabwell_split = 1;
pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_LEFT: tm_docking_tabwell_split = 2;
pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_TOP: tm_docking_tabwell_split = 3;
pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_BOTTOM: tm_docking_tabwell_split = 4;
pub type tm_docking_tabwell_split = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_docking_tab_info_t {
    pub tab: *mut tm_tab_i,
    pub ui: *mut tm_ui_o,
    pub visible: bool,
    pub _padding_260: [::std::os::raw::c_char; 7usize],
    pub last_focused: tm_clock_o,
    pub pin_type: u32,
    pub _padding_267: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_docking_tab_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_docking_tab_info_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_docking_tab_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_docking_tab_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_docking_tab_info_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tab_info_t>())).tab as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tab_info_t),
            "::",
            stringify!(tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tab_info_t>())).ui as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tab_info_t),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tab_info_t>())).visible as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tab_info_t),
            "::",
            stringify!(visible)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_tab_info_t>()))._padding_260 as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tab_info_t),
            "::",
            stringify!(_padding_260)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_tab_info_t>())).last_focused as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tab_info_t),
            "::",
            stringify!(last_focused)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tab_info_t>())).pin_type as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tab_info_t),
            "::",
            stringify!(pin_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_tab_info_t>()))._padding_267 as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tab_info_t),
            "::",
            stringify!(_padding_267)
        )
    );
}
pub const TM_DOCKING_MAX_TABS_IN_TABWELL: ::std::os::raw::c_int = 32;
pub type _bindgen_ty_219 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_docking_tabwell_info_t {
    pub left: *mut tm_docking_tabwell_o,
    pub right: *mut tm_docking_tabwell_o,
    pub top: *mut tm_docking_tabwell_o,
    pub bottom: *mut tm_docking_tabwell_o,
    pub bias: f32,
    pub num_tabs: u32,
    pub tabs: [*mut tm_tab_i; 32usize],
    pub last_rect: tm_rect_t,
}
#[test]
fn bindgen_test_layout_tm_docking_tabwell_info_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_docking_tabwell_info_t>(),
        312usize,
        concat!("Size of: ", stringify!(tm_docking_tabwell_info_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_docking_tabwell_info_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_docking_tabwell_info_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).left as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(left)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).right as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(right)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).top as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(top)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).bottom as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(bottom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).bias as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(bias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).num_tabs as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(num_tabs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).tabs as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(tabs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_tabwell_info_t>())).last_rect as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_tabwell_info_t),
            "::",
            stringify!(last_rect)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_docking_find_tab_t {
    pub tab: *mut tm_tab_i,
    pub ui: *mut tm_ui_o,
}
#[test]
fn bindgen_test_layout_tm_docking_find_tab_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_docking_find_tab_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_docking_find_tab_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_docking_find_tab_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_docking_find_tab_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_find_tab_t>())).tab as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_t),
            "::",
            stringify!(tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_find_tab_t>())).ui as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_t),
            "::",
            stringify!(ui)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_docking_find_tab_opt_t {
    pub from_tab: *mut tm_tab_i,
    pub to_tab: *mut tm_tab_i,
    pub in_ui: *mut tm_ui_o,
    pub find_asset_tt: *mut tm_the_truth_o,
    pub find_asset: tm_tt_id_t,
    pub exclude_pinned: bool,
    pub _padding_319: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_docking_find_tab_opt_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_docking_find_tab_opt_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_docking_find_tab_opt_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_docking_find_tab_opt_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_docking_find_tab_opt_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_find_tab_opt_t>())).from_tab as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_opt_t),
            "::",
            stringify!(from_tab)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_find_tab_opt_t>())).to_tab as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_opt_t),
            "::",
            stringify!(to_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_find_tab_opt_t>())).in_ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_opt_t),
            "::",
            stringify!(in_ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_find_tab_opt_t>())).find_asset_tt as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_opt_t),
            "::",
            stringify!(find_asset_tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_find_tab_opt_t>())).find_asset as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_opt_t),
            "::",
            stringify!(find_asset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_find_tab_opt_t>())).exclude_pinned as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_opt_t),
            "::",
            stringify!(exclude_pinned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_find_tab_opt_t>()))._padding_319 as *const _ as usize
        },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_find_tab_opt_t),
            "::",
            stringify!(_padding_319)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_docking_api {
    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub add_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, r: tm_rect_t)>,
    pub remove_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
    pub root:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_docking_tabwell_o>,
    pub split_tabwell: ::std::option::Option<
        unsafe extern "C" fn(
            parent: *mut tm_docking_tabwell_o,
            split: tm_docking_tabwell_split,
            bias: f32,
            sibling: *mut *mut tm_docking_tabwell_o,
        ) -> *mut tm_docking_tabwell_o,
    >,
    pub add_tab: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            tabwell: *mut tm_docking_tabwell_o,
            tab: *mut tm_tab_i,
        ),
    >,
    pub remove_tab: ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i)>,
    pub move_tab: ::std::option::Option<
        unsafe extern "C" fn(
            tab: *mut tm_tab_i,
            ui: *mut tm_ui_o,
            tabwell: *mut tm_docking_tabwell_o,
        ),
    >,
    pub clear: ::std::option::Option<unsafe extern "C" fn()>,
    pub feed_events: ::std::option::Option<
        unsafe extern "C" fn(
            events: *const tm_input_event_t,
            count: u32,
            args: *mut tm_docking_feed_events_args_t,
        ),
    >,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            ui_renderer: *mut tm_ui_renderer_o,
            rect: tm_rect_t,
            font: u32,
            font_info: *const tm_font_t,
            font_scale: f32,
            ui_has_focus: bool,
            dropped_files: *const tm_os_dropped_file_t,
            num_dropped_files: u32,
            context: *mut tm_tab_create_context_t,
            settings_tt: *mut tm_the_truth_o,
            settings_obj: tm_tt_id_t,
        ),
    >,
    pub is_dragging_tab:
        ::std::option::Option<unsafe extern "C" fn(pos: *mut tm_vec2_t) -> *mut tm_tab_i>,
    pub should_create_new_ui_for_tab: ::std::option::Option<
        unsafe extern "C" fn(
            create_context: *mut tm_tab_create_context_t,
            rect: *mut tm_rect_t,
        ) -> *mut tm_tab_i,
    >,
    pub focused_tabwell:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_docking_tabwell_o>,
    pub focused_tab: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_tab_i>,
    pub tabwell_info: ::std::option::Option<
        unsafe extern "C" fn(tw: *mut tm_docking_tabwell_o) -> tm_docking_tabwell_info_t,
    >,
    pub tab_info: ::std::option::Option<
        unsafe extern "C" fn(
            tabs: *mut tm_docking_tab_info_t,
            n: u32,
            filter_ui: *mut tm_ui_o,
            filter_visible: bool,
        ) -> u32,
    >,
    pub root_history: ::std::option::Option<
        unsafe extern "C" fn(tab: *mut tm_tab_i, n: *mut u32) -> *mut tm_tab_vt_root_t,
    >,
    pub clear_root_history_with_greater_counter:
        ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i, counter: u64)>,
    pub tab_ui: ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i) -> *mut tm_ui_o>,
    pub can_remove_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
    pub set_focus_tab:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, tab: *mut tm_tab_i)>,
    pub close_focused_tab: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
    pub close_all_tabs: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
    pub send_focus_event: ::std::option::Option<
        unsafe extern "C" fn(
            from: *mut tm_tab_i,
            event: tm_tab_focus_event,
            tt: *mut tm_the_truth_o,
            object: tm_tt_id_t,
            selection: *const tm_tt_id_t,
            selection_n: u32,
        ),
    >,
    pub destroy_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
    pub find_tab: ::std::option::Option<
        unsafe extern "C" fn(
            type_name_hash: u64,
            opt: *const tm_docking_find_tab_opt_t,
        ) -> tm_docking_find_tab_t,
    >,
    pub find_tabs: ::std::option::Option<
        unsafe extern "C" fn(
            type_name_hash: u64,
            ta: *mut tm_temp_allocator_i,
        ) -> *mut tm_docking_find_tab_t,
    >,
    pub pin_type: ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i) -> u32>,
    pub pin_object: ::std::option::Option<
        unsafe extern "C" fn(tab: *mut tm_tab_i, tt: *mut tm_the_truth_o, root: tm_tt_id_t),
    >,
    pub draw_toolbars: ::std::option::Option<
        unsafe extern "C" fn(
            tab: *mut tm_tab_i,
            ui: *mut tm_ui_o,
            tab_r: tm_rect_t,
            font: u32,
            font_info: *const tm_font_t,
            font_scale: f32,
            settings_tt: *mut tm_the_truth_o,
            settings_obj: tm_tt_id_t,
        ) -> tm_rect_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_docking_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_docking_api>(),
        248usize,
        concat!("Size of: ", stringify!(tm_docking_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_docking_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_docking_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_api>())).create_truth_types as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(create_truth_types)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).add_ui as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(add_ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).remove_ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(remove_ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).root as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).split_tabwell as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(split_tabwell)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).add_tab as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(add_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).remove_tab as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(remove_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).move_tab as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(move_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).clear as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(clear)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).feed_events as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(feed_events)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).ui as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).is_dragging_tab as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(is_dragging_tab)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_api>())).should_create_new_ui_for_tab as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(should_create_new_ui_for_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).focused_tabwell as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(focused_tabwell)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).focused_tab as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(focused_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).tabwell_info as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(tabwell_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).tab_info as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(tab_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).root_history as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(root_history)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_api>())).clear_root_history_with_greater_counter
                as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(clear_root_history_with_greater_counter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).tab_ui as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(tab_ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).can_remove_ui as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(can_remove_ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).set_focus_tab as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(set_focus_tab)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_docking_api>())).close_focused_tab as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(close_focused_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).close_all_tabs as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(close_all_tabs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).send_focus_event as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(send_focus_event)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).destroy_truth as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(destroy_truth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).find_tab as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(find_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).find_tabs as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(find_tabs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).pin_type as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(pin_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).pin_object as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(pin_object)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_docking_api>())).draw_toolbars as *const _ as usize },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_docking_api),
            "::",
            stringify!(draw_toolbars)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_drag_api {
    pub start_dragging:
        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, object: tm_tt_id_t)>,
    pub start_dragging_multiple_objects: ::std::option::Option<
        unsafe extern "C" fn(
            tt: *mut tm_the_truth_o,
            objects: *const tm_tt_id_t,
            object_count: u64,
        ),
    >,
    pub single_dragged_object:
        ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> tm_tt_id_t>,
    pub all_dragged_objects:
        ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> *mut tm_tt_id_t>,
    pub dragged_truth: ::std::option::Option<unsafe extern "C" fn() -> *const tm_the_truth_o>,
    pub stop_dragging: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_ui_drag_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_drag_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_drag_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_drag_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_drag_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_drag_api>())).start_dragging as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_drag_api),
            "::",
            stringify!(start_dragging)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_drag_api>())).start_dragging_multiple_objects as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_drag_api),
            "::",
            stringify!(start_dragging_multiple_objects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_drag_api>())).single_dragged_object as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_drag_api),
            "::",
            stringify!(single_dragged_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_drag_api>())).all_dragged_objects as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_drag_api),
            "::",
            stringify!(all_dragged_objects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_drag_api>())).dragged_truth as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_drag_api),
            "::",
            stringify!(dragged_truth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_drag_api>())).stop_dragging as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_drag_api),
            "::",
            stringify!(stop_dragging)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_font_glyph_t {
    pub texture: u32,
    pub uv: tm_rect_t,
    pub offset: tm_vec2_t,
    pub xadvance: f32,
    pub glyph_segments_offset: u32,
}
#[test]
fn bindgen_test_layout_tm_font_glyph_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_font_glyph_t>(),
        36usize,
        concat!("Size of: ", stringify!(tm_font_glyph_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_font_glyph_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_font_glyph_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_glyph_t>())).texture as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_t),
            "::",
            stringify!(texture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_glyph_t>())).uv as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_t),
            "::",
            stringify!(uv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_glyph_t>())).offset as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_glyph_t>())).xadvance as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_t),
            "::",
            stringify!(xadvance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_font_glyph_t>())).glyph_segments_offset as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_t),
            "::",
            stringify!(glyph_segments_offset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_font_glyph_line_segment_t {
    pub p0: tm_vec2_t,
    pub p1: tm_vec2_t,
}
#[test]
fn bindgen_test_layout_tm_font_glyph_line_segment_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_font_glyph_line_segment_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_font_glyph_line_segment_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_font_glyph_line_segment_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_font_glyph_line_segment_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_glyph_line_segment_t>())).p0 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_line_segment_t),
            "::",
            stringify!(p0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_glyph_line_segment_t>())).p1 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_line_segment_t),
            "::",
            stringify!(p1)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_font_glyph_bezier_segment_t {
    pub p0: tm_vec2_t,
    pub p1: tm_vec2_t,
    pub c: tm_vec2_t,
}
#[test]
fn bindgen_test_layout_tm_font_glyph_bezier_segment_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_font_glyph_bezier_segment_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_font_glyph_bezier_segment_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_font_glyph_bezier_segment_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_font_glyph_bezier_segment_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_font_glyph_bezier_segment_t>())).p0 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_bezier_segment_t),
            "::",
            stringify!(p0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_font_glyph_bezier_segment_t>())).p1 as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_bezier_segment_t),
            "::",
            stringify!(p1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_font_glyph_bezier_segment_t>())).c as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_glyph_bezier_segment_t),
            "::",
            stringify!(c)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_font_range_t {
    pub start: u32,
    pub n: u32,
}
#[test]
fn bindgen_test_layout_tm_font_range_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_font_range_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_font_range_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_font_range_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_font_range_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_range_t>())).start as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_range_t),
            "::",
            stringify!(start)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_range_t>())).n as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_range_t),
            "::",
            stringify!(n)
        )
    );
}
pub const TM_FONT_MAX_BAKED_SCALES: ::std::os::raw::c_int = 8;
pub type _bindgen_ty_220 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_font_t {
    pub num_glyphs: u32,
    pub _padding_86: [::std::os::raw::c_char; 4usize],
    pub glyphs: *mut tm_font_glyph_t,
    pub glyphs_segments_size: u32,
    pub _padding_93: [::std::os::raw::c_char; 4usize],
    pub glyphs_segments: *mut u8,
    pub num_ranges: u32,
    pub em: f32,
    pub ranges: *mut tm_font_range_t,
    pub num_font_scales: u32,
    pub font_scales: [f32; 8usize],
    pub ascent: [f32; 8usize],
    pub descent: [f32; 8usize],
    pub line_gap: [f32; 8usize],
    pub ex: [f32; 8usize],
    pub cap_height: [f32; 8usize],
    pub _padding_134: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_font_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_font_t>(),
        248usize,
        concat!("Size of: ", stringify!(tm_font_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_font_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_font_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).num_glyphs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(num_glyphs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>()))._padding_86 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(_padding_86)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).glyphs as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(glyphs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).glyphs_segments_size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(glyphs_segments_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>()))._padding_93 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(_padding_93)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).glyphs_segments as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(glyphs_segments)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).num_ranges as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(num_ranges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).em as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(em)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).ranges as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(ranges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).num_font_scales as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(num_font_scales)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).font_scales as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(font_scales)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).ascent as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(ascent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).descent as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(descent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).line_gap as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(line_gap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).ex as *const _ as usize },
        180usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(ex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>())).cap_height as *const _ as usize },
        212usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(cap_height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_t>()))._padding_134 as *const _ as usize },
        244usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_t),
            "::",
            stringify!(_padding_134)
        )
    );
}
pub const TM_DRAW2D__FEATHER__DEFAULT: ::std::os::raw::c_int = 0;
pub const TM_DRAW2D__FEATHER__NONE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_221 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_style_t {
    pub color: tm_color_srgb_t,
    pub line_width: f32,
    pub feather_width: f32,
    pub feather: u32,
    pub clip: u32,
    pub font: u32,
    pub font_info: *const tm_font_t,
    pub font_scale: f32,
    pub include_alpha: bool,
    pub _padding_175: [::std::os::raw::c_char; 3usize],
}
#[test]
fn bindgen_test_layout_tm_draw2d_style_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_style_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_draw2d_style_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_style_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_draw2d_style_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).color as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).line_width as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(line_width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).feather_width as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(feather_width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).feather as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(feather)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).clip as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(clip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).font as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(font)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).font_info as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(font_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).font_scale as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(font_scale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>())).include_alpha as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(include_alpha)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_style_t>()))._padding_175 as *const _ as usize },
        37usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_style_t),
            "::",
            stringify!(_padding_175)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_vbuffer_t {
    pub vbuffer: *mut u8,
    pub vbytes: u32,
    pub vbytes_allocated: u32,
}
#[test]
fn bindgen_test_layout_tm_draw2d_vbuffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_vbuffer_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_draw2d_vbuffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_vbuffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_draw2d_vbuffer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_vbuffer_t>())).vbuffer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_vbuffer_t),
            "::",
            stringify!(vbuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_vbuffer_t>())).vbytes as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_vbuffer_t),
            "::",
            stringify!(vbytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_vbuffer_t>())).vbytes_allocated as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_vbuffer_t),
            "::",
            stringify!(vbytes_allocated)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_ibuffer_t {
    pub ibuffer: *mut u32,
    pub in_: u32,
    pub in_allocated: u32,
}
#[test]
fn bindgen_test_layout_tm_draw2d_ibuffer_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_ibuffer_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_draw2d_ibuffer_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_ibuffer_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_draw2d_ibuffer_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_ibuffer_t>())).ibuffer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_ibuffer_t),
            "::",
            stringify!(ibuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_ibuffer_t>())).in_ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_ibuffer_t),
            "::",
            stringify!(in_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_ibuffer_t>())).in_allocated as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_ibuffer_t),
            "::",
            stringify!(in_allocated)
        )
    );
}
pub const TM_DRAW2D_AUX_DATA_TYPE_GRID: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_222 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_aux_data_grid_t {
    pub offset: tm_vec2_t,
    pub cell_size: f32,
    pub thin_lines_color: tm_color_srgb_t,
    pub thick_lines_color: tm_color_srgb_t,
}
#[test]
fn bindgen_test_layout_tm_draw2d_aux_data_grid_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_aux_data_grid_t>(),
        20usize,
        concat!("Size of: ", stringify!(tm_draw2d_aux_data_grid_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_aux_data_grid_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_draw2d_aux_data_grid_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_aux_data_grid_t>())).offset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_aux_data_grid_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_aux_data_grid_t>())).cell_size as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_aux_data_grid_t),
            "::",
            stringify!(cell_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_aux_data_grid_t>())).thin_lines_color as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_aux_data_grid_t),
            "::",
            stringify!(thin_lines_color)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_aux_data_grid_t>())).thick_lines_color as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_aux_data_grid_t),
            "::",
            stringify!(thick_lines_color)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_api {
    pub add_clip_rect: ::std::option::Option<
        unsafe extern "C" fn(vbuffer: *mut tm_draw2d_vbuffer_t, clip: tm_rect_t) -> u32,
    >,
    pub add_sub_clip_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            parent: u32,
            clip: tm_rect_t,
        ) -> u32,
    >,
    pub clip_rect: ::std::option::Option<
        unsafe extern "C" fn(vbuffer: *mut tm_draw2d_vbuffer_t, clip: u32) -> tm_rect_t,
    >,
    pub add_font: ::std::option::Option<
        unsafe extern "C" fn(vbuffer: *mut tm_draw2d_vbuffer_t, font: *const tm_font_t) -> u32,
    >,
    pub fill_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
        ),
    >,
    pub fill_rect_feathered: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
        ),
    >,
    pub stroke_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
        ),
    >,
    pub textured_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
            texture: u32,
            uv: tm_rect_t,
        ),
    >,
    pub aux_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
            aux_data_type: u32,
            aux_data: *const ::std::os::raw::c_void,
            aux_data_size: u32,
        ),
    >,
    pub gradient_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
            colors: *mut tm_color_srgb_t,
        ),
    >,
    pub fill_rounded_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
            radius: f32,
        ),
    >,
    pub stroke_rounded_rect: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            r: tm_rect_t,
            radius: f32,
        ),
    >,
    pub fill_circle: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            pos: tm_vec2_t,
            radius: f32,
        ),
    >,
    pub stroke_circle: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            pos: tm_vec2_t,
            radius: f32,
        ),
    >,
    pub fill_triangles: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            points: *const tm_vec2_t,
            num_points: u32,
            indices: *const u32,
            num_indices: u32,
        ),
    >,
    pub fill_convex_polyline: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            points: *const tm_vec2_t,
            num_points: u32,
        ),
    >,
    pub stroke_polyline: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            points: *const tm_vec2_t,
            num_points: u32,
            closed: bool,
        ),
    >,
    pub stroke_polyline_widths: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            points: *const tm_vec2_t,
            widths: *const f32,
            num_points: u32,
            closed: bool,
        ),
    >,
    pub bezier_path: ::std::option::Option<
        unsafe extern "C" fn(
            curve: *const tm_vec2_t,
            num_curve_points: u32,
            tolerance: f32,
            ta: *mut tm_temp_allocator_i,
            num_points: *mut u32,
            allocated_points: *mut u32,
        ) -> *mut tm_vec2_t,
    >,
    pub fill_convex_bezier: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            curve: *const tm_vec2_t,
            num_curve_points: u32,
            tolerance: f32,
            ta: *mut tm_temp_allocator_i,
        ),
    >,
    pub stroke_bezier: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            curve: *const tm_vec2_t,
            num_curve_points: u32,
            closed: bool,
            tolerance: f32,
            ta: *mut tm_temp_allocator_i,
        ),
    >,
    pub draw_glyphs: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            pos: tm_vec2_t,
            glyphs: *const u16,
            num_glyphs: u32,
        ) -> f32,
    >,
    pub draw_glyphs_rotated: ::std::option::Option<
        unsafe extern "C" fn(
            vbuffer: *mut tm_draw2d_vbuffer_t,
            ibuffer: *mut tm_draw2d_ibuffer_t,
            style: *const tm_draw2d_style_t,
            pos: tm_vec2_t,
            glyphs: *const u16,
            num_glyphs: u32,
            x: tm_vec2_t,
            y: tm_vec2_t,
        ) -> f32,
    >,
    pub merge_buffers: ::std::option::Option<
        unsafe extern "C" fn(
            to_vbuffer: *mut tm_draw2d_vbuffer_t,
            to_ibuffers: *mut *mut tm_draw2d_ibuffer_t,
            from_vbuffer: *const tm_draw2d_vbuffer_t,
            from_ibuffers: *const *mut tm_draw2d_ibuffer_t,
            num_ibuffers: u32,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_draw2d_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_api>(),
        192usize,
        concat!("Size of: ", stringify!(tm_draw2d_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_draw2d_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).add_clip_rect as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(add_clip_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).add_sub_clip_rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(add_sub_clip_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).clip_rect as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(clip_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).add_font as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(add_font)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).fill_rect as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(fill_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_api>())).fill_rect_feathered as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(fill_rect_feathered)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).stroke_rect as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(stroke_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).textured_rect as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(textured_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).aux_rect as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(aux_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).gradient_rect as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(gradient_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).fill_rounded_rect as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(fill_rounded_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_api>())).stroke_rounded_rect as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(stroke_rounded_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).fill_circle as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(fill_circle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).stroke_circle as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(stroke_circle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).fill_triangles as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(fill_triangles)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_api>())).fill_convex_polyline as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(fill_convex_polyline)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).stroke_polyline as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(stroke_polyline)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_api>())).stroke_polyline_widths as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(stroke_polyline_widths)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).bezier_path as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(bezier_path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_api>())).fill_convex_bezier as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(fill_convex_bezier)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).stroke_bezier as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(stroke_bezier)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).draw_glyphs as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(draw_glyphs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_api>())).draw_glyphs_rotated as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(draw_glyphs_rotated)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_api>())).merge_buffers as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_api),
            "::",
            stringify!(merge_buffers)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_font_api {
    pub glyphs: ::std::option::Option<
        unsafe extern "C" fn(
            font: *const tm_font_t,
            glyphs: *mut u16,
            codepoints: *const u32,
            size: u32,
        ),
    >,
    pub metrics: ::std::option::Option<
        unsafe extern "C" fn(
            font: *const tm_font_t,
            font_scale: f32,
            glyphs: *const u16,
            num_glyphs: u32,
        ) -> tm_rect_t,
    >,
    pub metrics_array: ::std::option::Option<
        unsafe extern "C" fn(
            font: *const tm_font_t,
            font_scale: f32,
            pos_x: *mut f32,
            rects: *mut tm_rect_t,
            glyphs: *const u16,
            num_glyphs: u32,
        ) -> tm_rect_t,
    >,
    pub line: ::std::option::Option<
        unsafe extern "C" fn(
            font: *const tm_font_t,
            font_scale: f32,
            line_width: *mut f32,
            glyphs: *const u16,
            num_glyphs: u32,
        ) -> u32,
    >,
    pub rescale_font:
        ::std::option::Option<unsafe extern "C" fn(font: *mut tm_font_t, scale_factor: f32)>,
    pub glyph_set_from_scale: ::std::option::Option<
        unsafe extern "C" fn(
            font: *const tm_font_t,
            font_scale: f32,
            new_font_scale: *mut f32,
        ) -> u32,
    >,
    pub first_glyph_of_set: ::std::option::Option<
        unsafe extern "C" fn(font: *const tm_font_t, set: u32) -> *const tm_font_glyph_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_font_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_font_api>(),
        56usize,
        concat!("Size of: ", stringify!(tm_font_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_font_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_font_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_api>())).glyphs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_api),
            "::",
            stringify!(glyphs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_api>())).metrics as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_api),
            "::",
            stringify!(metrics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_api>())).metrics_array as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_api),
            "::",
            stringify!(metrics_array)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_api>())).line as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_api),
            "::",
            stringify!(line)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_api>())).rescale_font as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_api),
            "::",
            stringify!(rescale_font)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_font_api>())).glyph_set_from_scale as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_api),
            "::",
            stringify!(glyph_set_from_scale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_font_api>())).first_glyph_of_set as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_font_api),
            "::",
            stringify!(first_glyph_of_set)
        )
    );
}
pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_TRIANGLE: tm_draw2d_primitive = 67108864;
pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_RECT: tm_draw2d_primitive = 134217728;
pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_RECT_TEXTURED: tm_draw2d_primitive = 201326592;
pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_RECT_AUX_DATA: tm_draw2d_primitive = 268435456;
pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_GLYPH: tm_draw2d_primitive = -2147483648;
pub type tm_draw2d_primitive = ::std::os::raw::c_int;
pub const tm_draw2d_corner_TM_DRAW2D_CORNER_TL: tm_draw2d_corner = 0;
pub const tm_draw2d_corner_TM_DRAW2D_CORNER_TR: tm_draw2d_corner = 16777216;
pub const tm_draw2d_corner_TM_DRAW2D_CORNER_BL: tm_draw2d_corner = 33554432;
pub const tm_draw2d_corner_TM_DRAW2D_CORNER_BR: tm_draw2d_corner = 50331648;
pub type tm_draw2d_corner = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_triangle_vertex_t {
    pub pos: tm_vec2_t,
    pub color: tm_color_srgb_t,
    pub clip: u32,
}
#[test]
fn bindgen_test_layout_tm_draw2d_triangle_vertex_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_triangle_vertex_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_draw2d_triangle_vertex_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_triangle_vertex_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_draw2d_triangle_vertex_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_triangle_vertex_t>())).pos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_triangle_vertex_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_triangle_vertex_t>())).color as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_triangle_vertex_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_triangle_vertex_t>())).clip as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_triangle_vertex_t),
            "::",
            stringify!(clip)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_rect_vertex_t {
    pub rect: tm_rect_t,
    pub color: tm_color_srgb_t,
    pub clip: u32,
}
#[test]
fn bindgen_test_layout_tm_draw2d_rect_vertex_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_rect_vertex_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_draw2d_rect_vertex_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_rect_vertex_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_draw2d_rect_vertex_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_rect_vertex_t>())).rect as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_vertex_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_rect_vertex_t>())).color as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_vertex_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_rect_vertex_t>())).clip as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_vertex_t),
            "::",
            stringify!(clip)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_rect_textured_vertex_t {
    pub rect: tm_rect_t,
    pub tint: tm_color_srgb_t,
    pub clip: u32,
    pub texture: u32,
    pub uv: tm_rect_t,
}
#[test]
fn bindgen_test_layout_tm_draw2d_rect_textured_vertex_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_rect_textured_vertex_t>(),
        44usize,
        concat!("Size of: ", stringify!(tm_draw2d_rect_textured_vertex_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_rect_textured_vertex_t>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tm_draw2d_rect_textured_vertex_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_rect_textured_vertex_t>())).rect as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_textured_vertex_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_rect_textured_vertex_t>())).tint as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_textured_vertex_t),
            "::",
            stringify!(tint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_rect_textured_vertex_t>())).clip as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_textured_vertex_t),
            "::",
            stringify!(clip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_rect_textured_vertex_t>())).texture as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_textured_vertex_t),
            "::",
            stringify!(texture)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_rect_textured_vertex_t>())).uv as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_rect_textured_vertex_t),
            "::",
            stringify!(uv)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_glyph_range_vertex_t {
    pub origin: tm_vec2_t,
    pub color: tm_color_srgb_t,
    pub scale: f32,
    pub clip: u32,
    pub font: u32,
    pub x: tm_vec2_t,
    pub y: tm_vec2_t,
}
#[test]
fn bindgen_test_layout_tm_draw2d_glyph_range_vertex_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_glyph_range_vertex_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_draw2d_glyph_range_vertex_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_glyph_range_vertex_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_draw2d_glyph_range_vertex_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_range_vertex_t>())).origin as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_range_vertex_t),
            "::",
            stringify!(origin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_range_vertex_t>())).color as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_range_vertex_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_range_vertex_t>())).scale as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_range_vertex_t),
            "::",
            stringify!(scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_range_vertex_t>())).clip as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_range_vertex_t),
            "::",
            stringify!(clip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_range_vertex_t>())).font as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_range_vertex_t),
            "::",
            stringify!(font)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_range_vertex_t>())).x as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_range_vertex_t),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_range_vertex_t>())).y as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_range_vertex_t),
            "::",
            stringify!(y)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_draw2d_glyph_vertex_t {
    pub x_offset: f32,
    pub glyph: u32,
}
#[test]
fn bindgen_test_layout_tm_draw2d_glyph_vertex_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_draw2d_glyph_vertex_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_draw2d_glyph_vertex_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_draw2d_glyph_vertex_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_draw2d_glyph_vertex_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_draw2d_glyph_vertex_t>())).x_offset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_vertex_t),
            "::",
            stringify!(x_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_draw2d_glyph_vertex_t>())).glyph as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_draw2d_glyph_vertex_t),
            "::",
            stringify!(glyph)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct font_library_t {
    _unused: [u8; 0],
}
extern "C" {
    pub fn create_font_library(allocator: *mut tm_allocator_i) -> *mut font_library_t;
}
extern "C" {
    pub fn destroy_font_library(lib: *mut font_library_t);
}
extern "C" {
    pub fn font_library_add_ttf(
        lib: *mut font_library_t,
        file: *const ::std::os::raw::c_char,
    ) -> u32;
}
extern "C" {
    pub fn font_library_lookup(
        lib: *const font_library_t,
        font: u32,
        size: u32,
        display_dpi: f32,
    ) -> *const tm_font_t;
}
extern "C" {
    pub fn font_library_generate(
        lib: *mut font_library_t,
        tm_res_buf_api: *mut tm_renderer_resource_command_buffer_api,
        font_texture_id: u32,
        texture_handle: *mut u32,
        res_buf: *mut tm_renderer_resource_command_buffer_o,
        device_affinity: u32,
        font: u32,
        size: u32,
        scales: *const f32,
        n_scales: u32,
        display_dpi: f32,
    ) -> *mut tm_font_t;
}
pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__NO_MOVE: tm_gizmo__move_result = 0;
pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__PREVIEW: tm_gizmo__move_result = 1;
pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__COMMIT: tm_gizmo__move_result = 2;
pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__DUPLICATE: tm_gizmo__move_result = 3;
pub type tm_gizmo__move_result = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gizmo__move_settings_t {
    pub use_world_axes: bool,
    pub grid_snap: bool,
    pub _padding_36: [::std::os::raw::c_char; 2usize],
    pub grid_size: f32,
}
#[test]
fn bindgen_test_layout_tm_gizmo__move_settings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gizmo__move_settings_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_gizmo__move_settings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gizmo__move_settings_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_gizmo__move_settings_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__move_settings_t>())).use_world_axes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__move_settings_t),
            "::",
            stringify!(use_world_axes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__move_settings_t>())).grid_snap as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__move_settings_t),
            "::",
            stringify!(grid_snap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__move_settings_t>()))._padding_36 as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__move_settings_t),
            "::",
            stringify!(_padding_36)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__move_settings_t>())).grid_size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__move_settings_t),
            "::",
            stringify!(grid_size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gizmo__rotate_settings_t {
    pub use_world_axes: bool,
    pub snap: bool,
    pub _padding_50: [::std::os::raw::c_char; 2usize],
    pub snap_angle: f32,
}
#[test]
fn bindgen_test_layout_tm_gizmo__rotate_settings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gizmo__rotate_settings_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_gizmo__rotate_settings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gizmo__rotate_settings_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_gizmo__rotate_settings_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__rotate_settings_t>())).use_world_axes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__rotate_settings_t),
            "::",
            stringify!(use_world_axes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__rotate_settings_t>())).snap as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__rotate_settings_t),
            "::",
            stringify!(snap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__rotate_settings_t>()))._padding_50 as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__rotate_settings_t),
            "::",
            stringify!(_padding_50)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__rotate_settings_t>())).snap_angle as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__rotate_settings_t),
            "::",
            stringify!(snap_angle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gizmo__scale_settings_t {
    pub absolute_handle: bool,
}
#[test]
fn bindgen_test_layout_tm_gizmo__scale_settings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gizmo__scale_settings_t>(),
        1usize,
        concat!("Size of: ", stringify!(tm_gizmo__scale_settings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gizmo__scale_settings_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_gizmo__scale_settings_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__scale_settings_t>())).absolute_handle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__scale_settings_t),
            "::",
            stringify!(absolute_handle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gizmo__grid_settings_t {
    pub visibile: bool,
    pub _padding_69: [::std::os::raw::c_char; 3usize],
    pub transform: tm_transform_t,
}
#[test]
fn bindgen_test_layout_tm_gizmo__grid_settings_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_gizmo__grid_settings_t>(),
        44usize,
        concat!("Size of: ", stringify!(tm_gizmo__grid_settings_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gizmo__grid_settings_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_gizmo__grid_settings_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__grid_settings_t>())).visibile as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__grid_settings_t),
            "::",
            stringify!(visibile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__grid_settings_t>()))._padding_69 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__grid_settings_t),
            "::",
            stringify!(_padding_69)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_gizmo__grid_settings_t>())).transform as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo__grid_settings_t),
            "::",
            stringify!(transform)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_gizmo_api {
    pub move_: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            pbuf: *mut tm_primitive_drawer_buffer_t,
            vbuf: *mut tm_primitive_drawer_buffer_t,
            camera: *const tm_camera_t,
            viewport: tm_rect_t,
            tm: *const tm_transform_t,
            local: *mut tm_transform_t,
            settings: *const tm_gizmo__move_settings_t,
            grid_settings: *mut tm_gizmo__grid_settings_t,
        ) -> tm_gizmo__move_result,
    >,
    pub rotate: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            pbuf: *mut tm_primitive_drawer_buffer_t,
            vbuf: *mut tm_primitive_drawer_buffer_t,
            camera: *const tm_camera_t,
            viewport: tm_rect_t,
            tm: *const tm_transform_t,
            local: *mut tm_transform_t,
            settings: *const tm_gizmo__rotate_settings_t,
        ) -> tm_gizmo__move_result,
    >,
    pub scale: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            pbuf: *mut tm_primitive_drawer_buffer_t,
            vbuf: *mut tm_primitive_drawer_buffer_t,
            camera: *const tm_camera_t,
            viewport: tm_rect_t,
            tm: *const tm_transform_t,
            local: *mut tm_transform_t,
            settings: *const tm_gizmo__scale_settings_t,
        ) -> tm_gizmo__move_result,
    >,
}
#[test]
fn bindgen_test_layout_tm_gizmo_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_gizmo_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_gizmo_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_gizmo_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_gizmo_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gizmo_api>())).move_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo_api),
            "::",
            stringify!(move_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gizmo_api>())).rotate as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo_api),
            "::",
            stringify!(rotate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_gizmo_api>())).scale as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_gizmo_api),
            "::",
            stringify!(scale)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_modal_api {
    pub message_box: ::std::option::Option<
        unsafe extern "C" fn(
            title: *const ::std::os::raw::c_char,
            text: *const ::std::os::raw::c_char,
            buttons: *mut *const ::std::os::raw::c_char,
            num_buttons: u32,
        ) -> u32,
    >,
    pub progress_box: ::std::option::Option<
        unsafe extern "C" fn(
            title: *const ::std::os::raw::c_char,
            text: *const ::std::os::raw::c_char,
            buttons: *mut *const ::std::os::raw::c_char,
            num_buttons: u32,
            callback: ::std::option::Option<
                unsafe extern "C" fn(data: *mut ::std::os::raw::c_void) -> f32,
            >,
            callback_data: *mut ::std::os::raw::c_void,
        ) -> u32,
    >,
    pub textinput_box: ::std::option::Option<
        unsafe extern "C" fn(
            title: *const ::std::os::raw::c_char,
            text: *const ::std::os::raw::c_char,
            buttons: *mut *const ::std::os::raw::c_char,
            num_buttons: u32,
            output_text: *mut ::std::os::raw::c_char,
            text_max_length: u32,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_ui_modal_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_modal_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ui_modal_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_modal_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_modal_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_modal_api>())).message_box as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_modal_api),
            "::",
            stringify!(message_box)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_modal_api>())).progress_box as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_modal_api),
            "::",
            stringify!(progress_box)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_modal_api>())).textinput_box as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_modal_api),
            "::",
            stringify!(textinput_box)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_shape3d_api {
    pub circle: ::std::option::Option<
        unsafe extern "C" fn(w: *mut tm_vec3_t, c: tm_vec3_t, n: tm_vec3_t, r: f32, num: u32),
    >,
    pub arc: ::std::option::Option<
        unsafe extern "C" fn(
            w: *mut tm_vec3_t,
            c: tm_vec3_t,
            n: tm_vec3_t,
            r: f32,
            x: tm_vec3_t,
            start_angle: f32,
            stop_angle: f32,
            num: u32,
        ),
    >,
    pub box_: ::std::option::Option<
        unsafe extern "C" fn(
            w: *mut tm_vec3_t,
            c: tm_vec3_t,
            x: tm_vec3_t,
            y: tm_vec3_t,
            z: tm_vec3_t,
        ),
    >,
    pub box_ib_n: u32,
    pub _padding_27: [::std::os::raw::c_char; 4usize],
    pub box_ib: *mut u32,
}
#[test]
fn bindgen_test_layout_tm_shape3d_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_shape3d_api>(),
        40usize,
        concat!("Size of: ", stringify!(tm_shape3d_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_shape3d_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_shape3d_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shape3d_api>())).circle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shape3d_api),
            "::",
            stringify!(circle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shape3d_api>())).arc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shape3d_api),
            "::",
            stringify!(arc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shape3d_api>())).box_ as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shape3d_api),
            "::",
            stringify!(box_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shape3d_api>())).box_ib_n as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shape3d_api),
            "::",
            stringify!(box_ib_n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shape3d_api>()))._padding_27 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shape3d_api),
            "::",
            stringify!(_padding_27)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_shape3d_api>())).box_ib as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_shape3d_api),
            "::",
            stringify!(box_ib)
        )
    );
}
pub const TM_TT_PROP__TOOLBAR_SETTINGS__ID: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__TOOLBAR_SETTINGS__CONTAINER: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__TOOLBAR_SETTINGS__ANCHOR: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__TOOLBAR_SETTINGS__ANCHOR_ORDER: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__TOOLBAR_SETTINGS__POSITION: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_223 = ::std::os::raw::c_int;
pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_TOP: tm_toolbar_container = 0;
pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_BOTTOM: tm_toolbar_container = 1;
pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_LEFT: tm_toolbar_container = 2;
pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_RIGHT: tm_toolbar_container = 3;
pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_COUNT: tm_toolbar_container = 4;
pub type tm_toolbar_container = ::std::os::raw::c_int;
pub const tm_toolbar_direction_TM_TOOLBAR_DIRECTION_HORIZONTAL: tm_toolbar_direction = 0;
pub const tm_toolbar_direction_TM_TOOLBAR_DIRECTION_VERTICAL: tm_toolbar_direction = 1;
pub type tm_toolbar_direction = ::std::os::raw::c_int;
pub const tm_toolbar_anchor_TM_TOOLBAR_ANCHOR_NONE: tm_toolbar_anchor = 0;
pub const tm_toolbar_anchor_TM_TOOLBAR_ANCHOR_END: tm_toolbar_anchor = 1;
pub const tm_toolbar_anchor_TM_TOOLBAR_ANCHOR_BEGINNING: tm_toolbar_anchor = 2;
pub type tm_toolbar_anchor = ::std::os::raw::c_int;
pub const tm_toolbar_size_mode_TM_TOOLBAR_SIZE_MODE_FIXED: tm_toolbar_size_mode = 0;
pub const tm_toolbar_size_mode_TM_TOOLBAR_SIZE_MODE_FILL: tm_toolbar_size_mode = 1;
pub type tm_toolbar_size_mode = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_tab_toolbar_i {
    pub id: u64,
    pub state: [u8; 4096usize],
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            state: *mut ::std::os::raw::c_void,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            toolbar_r: tm_rect_t,
            direction: tm_toolbar_direction,
        ) -> tm_rect_t,
    >,
    pub default_container: tm_toolbar_container,
    pub default_anchor: tm_toolbar_anchor,
    pub force_anchor: bool,
    pub _padding_69: [::std::os::raw::c_char; 3usize],
    pub num_tool_ids: u32,
    pub tool_ids: *const u64,
    pub size_mode: tm_toolbar_size_mode,
    pub fill_min_size: f32,
    pub only_horizontal: bool,
    pub _padding_86: [::std::os::raw::c_char; 7usize],
}
#[test]
fn bindgen_test_layout_tm_tab_toolbar_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_tab_toolbar_i>(),
        4152usize,
        concat!("Size of: ", stringify!(tm_tab_toolbar_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tab_toolbar_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tab_toolbar_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).state as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).ui as *const _ as usize },
        4104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(ui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_toolbar_i>())).default_container as *const _ as usize
        },
        4112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(default_container)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).default_anchor as *const _ as usize },
        4116usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(default_anchor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).force_anchor as *const _ as usize },
        4120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(force_anchor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>()))._padding_69 as *const _ as usize },
        4121usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(_padding_69)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).num_tool_ids as *const _ as usize },
        4124usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(num_tool_ids)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).tool_ids as *const _ as usize },
        4128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(tool_ids)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).size_mode as *const _ as usize },
        4136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(size_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>())).fill_min_size as *const _ as usize },
        4140usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(fill_min_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_toolbar_i>())).only_horizontal as *const _ as usize
        },
        4144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(only_horizontal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_toolbar_i>()))._padding_86 as *const _ as usize },
        4145usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_toolbar_i),
            "::",
            stringify!(_padding_86)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ttf_range_t {
    pub start: u32,
    pub n: u32,
}
#[test]
fn bindgen_test_layout_tm_ttf_range_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ttf_range_t>(),
        8usize,
        concat!("Size of: ", stringify!(tm_ttf_range_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ttf_range_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_ttf_range_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ttf_range_t>())).start as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ttf_range_t),
            "::",
            stringify!(start)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ttf_range_t>())).n as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ttf_range_t),
            "::",
            stringify!(n)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_ttf_baker_api {
    pub bake: ::std::option::Option<
        unsafe extern "C" fn(
            ttf: *mut u8,
            font_size: f32,
            font_scales: *const f32,
            num_scales: u32,
            texture_identifier: u32,
            pixels: *mut u8,
            width: u32,
            height: u32,
            ranges: *mut tm_ttf_range_t,
            num_ranges: u32,
            extract_glyph_segments: bool,
            allocator: *mut tm_allocator_i,
            font_bytes: *mut u64,
        ) -> *mut tm_font_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_ttf_baker_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ttf_baker_api>(),
        8usize,
        concat!("Size of: ", stringify!(tm_ttf_baker_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ttf_baker_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ttf_baker_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ttf_baker_api>())).bake as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ttf_baker_api),
            "::",
            stringify!(bake)
        )
    );
}
pub const tm_ui_color_TM_UI_COLOR_CHROME_BACKGROUND: tm_ui_color = 0;
pub const tm_ui_color_TM_UI_COLOR_WINDOW_BACKGROUND: tm_ui_color = 1;
pub const tm_ui_color_TM_UI_COLOR_WINDOW_TITLE: tm_ui_color = 2;
pub const tm_ui_color_TM_UI_COLOR_WINDOW_SELECTION: tm_ui_color = 3;
pub const tm_ui_color_TM_UI_COLOR_WINDOW_STATUS_BAR: tm_ui_color = 4;
pub const tm_ui_color_TM_UI_COLOR_WINDOW_STATUS_BAR_TEXT: tm_ui_color = 5;
pub const tm_ui_color_TM_UI_COLOR_SELECTION: tm_ui_color = 6;
pub const tm_ui_color_TM_UI_COLOR_SELECTION_NO_FOCUS: tm_ui_color = 7;
pub const tm_ui_color_TM_UI_COLOR_SELECTION_HOVER: tm_ui_color = 8;
pub const tm_ui_color_TM_UI_COLOR_TEXT: tm_ui_color = 9;
pub const tm_ui_color_TM_UI_COLOR_DISABLED_TEXT: tm_ui_color = 10;
pub const tm_ui_color_TM_UI_COLOR_SELECTED_TEXT: tm_ui_color = 11;
pub const tm_ui_color_TM_UI_COLOR_ERROR_TEXT: tm_ui_color = 12;
pub const tm_ui_color_TM_UI_COLOR_FILTERED_TEXT: tm_ui_color = 13;
pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_BASE: tm_ui_color = 14;
pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_ADDED: tm_ui_color = 14;
pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_ASSET: tm_ui_color = 15;
pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_INHERITED: tm_ui_color = 16;
pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_INSTANTIATED: tm_ui_color = 17;
pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_REMOVED: tm_ui_color = 18;
pub const tm_ui_color_TM_UI_COLOR_THIN_LINES: tm_ui_color = 19;
pub const tm_ui_color_TM_UI_COLOR_THIN_LINES_HOVER: tm_ui_color = 20;
pub const tm_ui_color_TM_UI_COLOR_ICONS: tm_ui_color = 21;
pub const tm_ui_color_TM_UI_COLOR_ICONS_HOVER: tm_ui_color = 22;
pub const tm_ui_color_TM_UI_COLOR_ICONS_ACTIVE: tm_ui_color = 23;
pub const tm_ui_color_TM_UI_COLOR_CONTROL_BACKGROUND: tm_ui_color = 24;
pub const tm_ui_color_TM_UI_COLOR_CONTROL_BACKGROUND_HOVER: tm_ui_color = 25;
pub const tm_ui_color_TM_UI_COLOR_CONTROL_BACKGROUND_ACTIVE: tm_ui_color = 26;
pub const tm_ui_color_TM_UI_COLOR_MENU_BACKGROUND: tm_ui_color = 27;
pub const tm_ui_color_TM_UI_COLOR_MENU_SELECTED: tm_ui_color = 28;
pub const tm_ui_color_TM_UI_COLOR_MENU_MENUBAR_HOVER: tm_ui_color = 29;
pub const tm_ui_color_TM_UI_COLOR_TOOLTIP_BACKGROUND: tm_ui_color = 30;
pub const tm_ui_color_TM_UI_COLOR_TOOLTIP_BORDER: tm_ui_color = 31;
pub const tm_ui_color_TM_UI_COLOR_TOOLTIP_TEXT: tm_ui_color = 32;
pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_BACKGROUND: tm_ui_color = 33;
pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_SELECTION: tm_ui_color = 34;
pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_GRID_THICK_LINES: tm_ui_color = 35;
pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_GRID_THIN_LINES: tm_ui_color = 36;
pub const tm_ui_color_TM_UI_COLOR_LINK: tm_ui_color = 37;
pub const tm_ui_color_TM_UI_COLOR_LINK_HOVER: tm_ui_color = 38;
pub const tm_ui_color_TM_UI_COLOR_NODE_BACKGROUND: tm_ui_color = 39;
pub const tm_ui_color_TM_UI_COLOR_NODE_GPU_BACKGROUND: tm_ui_color = 40;
pub const tm_ui_color_TM_UI_COLOR_NODE_GPU_BACKGROUND_WATERMARK_TEXT: tm_ui_color = 41;
pub const tm_ui_color_TM_UI_COLOR_GRAPH_GRID_THIN_LINES: tm_ui_color = 42;
pub const tm_ui_color_TM_UI_COLOR_GRAPH_GRID_THICK_LINES: tm_ui_color = 43;
pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR_BACKGROUND: tm_ui_color = 44;
pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR: tm_ui_color = 45;
pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR_HOVER: tm_ui_color = 46;
pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR_ACTIVE: tm_ui_color = 47;
pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_DRAG_HANDLE: tm_ui_color = 48;
pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_DROP_ZONE: tm_ui_color = 49;
pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_THIN_LINES: tm_ui_color = 50;
pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_THIN_LINES_HOVER: tm_ui_color = 51;
pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_CONTROL_BACKGROUND: tm_ui_color = 52;
pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_CONTROL_BACKGROUND_HOVER: tm_ui_color = 53;
pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_CONTROL_BACKGROUND_ACTIVE: tm_ui_color = 54;
pub const tm_ui_color_TM_UI_COLOR_COUNT: tm_ui_color = 55;
pub type tm_ui_color = ::std::os::raw::c_int;
pub const tm_ui_metric_TM_UI_METRIC_LINE_WIDTH: tm_ui_metric = 0;
pub const tm_ui_metric_TM_UI_METRIC_WINDOW_TITLE_HEIGHT: tm_ui_metric = 1;
pub const tm_ui_metric_TM_UI_METRIC_WINDOW_MIN_SIZE: tm_ui_metric = 2;
pub const tm_ui_metric_TM_UI_METRIC_MENUBAR_HEIGHT: tm_ui_metric = 3;
pub const tm_ui_metric_TM_UI_METRIC_MENU_ITEM_HEIGHT: tm_ui_metric = 4;
pub const tm_ui_metric_TM_UI_METRIC_SCROLLBAR_WIDTH: tm_ui_metric = 5;
pub const tm_ui_metric_TM_UI_METRIC_MARGIN: tm_ui_metric = 6;
pub const tm_ui_metric_TM_UI_METRIC_TEXT_MARGIN: tm_ui_metric = 7;
pub const tm_ui_metric_TM_UI_METRIC_SPLITTER_SIZE: tm_ui_metric = 8;
pub const tm_ui_metric_TM_UI_METRIC_TOOLTIP_HOVER_TIME: tm_ui_metric = 9;
pub const tm_ui_metric_TM_UI_METRIC_TOOLTIP_WIDTH: tm_ui_metric = 10;
pub const tm_ui_metric_TM_UI_METRIC_TREE_ARROW_SCALE: tm_ui_metric = 11;
pub const tm_ui_metric_TM_UI_METRIC_TREE_ICON_WIDTH: tm_ui_metric = 12;
pub const tm_ui_metric_TM_UI_METRIC_TOOLBAR_HEIGHT: tm_ui_metric = 13;
pub const tm_ui_metric_TM_UI_METRIC_TOOLBAR_OUTER_MARGIN: tm_ui_metric = 14;
pub const tm_ui_metric_TM_UI_METRIC_TOOLBAR_INNER_MARGIN: tm_ui_metric = 15;
pub const tm_ui_metric_TM_UI_METRIC_COUNT: tm_ui_metric = 16;
pub type tm_ui_metric = ::std::os::raw::c_int;
pub const TM_TT_PROP__UI_THEME__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__UI_THEME__BASED_ON: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__UI_THEME__COLORS: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_224 = ::std::os::raw::c_int;
pub const TM_TT_PROP__UI_THEME_COLOR__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__UI_THEME_COLOR__COLOR: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_225 = ::std::os::raw::c_int;
pub const tm_ui_default_theme_TM_UI__DEFAULT_THEME__DARK: tm_ui_default_theme = 0;
pub const tm_ui_default_theme_TM_UI__DEFAULT_THEME__LIGHT: tm_ui_default_theme = 1;
pub type tm_ui_default_theme = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tm_ui_theme_t {
    pub based_on: tm_ui_default_theme,
    pub _padding_241: [::std::os::raw::c_char; 4usize],
    pub tt: *mut tm_the_truth_o,
    pub id: tm_tt_id_t,
}
#[test]
fn bindgen_test_layout_tm_ui_theme_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_theme_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ui_theme_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_theme_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_theme_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_theme_t>())).based_on as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_theme_t),
            "::",
            stringify!(based_on)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_theme_t>()))._padding_241 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_theme_t),
            "::",
            stringify!(_padding_241)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_theme_t>())).tt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_theme_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_theme_t>())).id as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_theme_t),
            "::",
            stringify!(id)
        )
    );
}
pub const tm_ui_buffer_TM_UI_BUFFER_MAIN: tm_ui_buffer = 0;
pub const tm_ui_buffer_TM_UI_BUFFER_OVERLAY: tm_ui_buffer = 1;
pub type tm_ui_buffer = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_style_t {
    pub clip: u32,
    pub font: u32,
    pub font_info: *const tm_font_t,
    pub font_scale: f32,
    pub buffer: tm_ui_buffer,
    pub feather_width: f32,
    pub _padding_276: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_style_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_style_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_style_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_style_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_style_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_style_t>())).clip as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_style_t),
            "::",
            stringify!(clip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_style_t>())).font as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_style_t),
            "::",
            stringify!(font)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_style_t>())).font_info as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_style_t),
            "::",
            stringify!(font_info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_style_t>())).font_scale as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_style_t),
            "::",
            stringify!(font_scale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_style_t>())).buffer as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_style_t),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_style_t>())).feather_width as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_style_t),
            "::",
            stringify!(feather_width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_style_t>()))._padding_276 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_style_t),
            "::",
            stringify!(_padding_276)
        )
    );
}
pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_NONE: tm_ui_window_event = 0;
pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_ACTIVATE: tm_ui_window_event = 1;
pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_MOVE: tm_ui_window_event = 2;
pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_RESIZE: tm_ui_window_event = 3;
pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_CLOSE: tm_ui_window_event = 4;
pub type tm_ui_window_event = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_window_t {
    pub id: u64,
    pub title: *const ::std::os::raw::c_char,
    pub can_move: bool,
    pub can_resize: bool,
    pub can_close: bool,
    pub _padding_306: [::std::os::raw::c_char; 5usize],
}
#[test]
fn bindgen_test_layout_tm_ui_window_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_window_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ui_window_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_window_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_window_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_window_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_window_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_window_t>())).title as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_window_t),
            "::",
            stringify!(title)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_window_t>())).can_move as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_window_t),
            "::",
            stringify!(can_move)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_window_t>())).can_resize as *const _ as usize },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_window_t),
            "::",
            stringify!(can_resize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_window_t>())).can_close as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_window_t),
            "::",
            stringify!(can_close)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_window_t>()))._padding_306 as *const _ as usize },
        19usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_window_t),
            "::",
            stringify!(_padding_306)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_scrollbar_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub min: f32,
    pub max: f32,
    pub size: f32,
    pub _padding_319: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_scrollbar_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_scrollbar_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_scrollbar_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_scrollbar_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_scrollbar_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollbar_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollbar_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollbar_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollbar_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollbar_t>())).min as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollbar_t),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollbar_t>())).max as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollbar_t),
            "::",
            stringify!(max)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollbar_t>())).size as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollbar_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollbar_t>()))._padding_319 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollbar_t),
            "::",
            stringify!(_padding_319)
        )
    );
}
pub const tm_ui_scrollbar_visibility_TM_UI_SCROLLBAR_VISIBILITY_WHEN_NEEDED:
    tm_ui_scrollbar_visibility = 0;
pub const tm_ui_scrollbar_visibility_TM_UI_SCROLLBAR_VISIBILITY_NEVER: tm_ui_scrollbar_visibility =
    1;
pub const tm_ui_scrollbar_visibility_TM_UI_SCROLLBAR_VISIBILITY_ALWAYS: tm_ui_scrollbar_visibility =
    2;
pub type tm_ui_scrollbar_visibility = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_scrollview_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub canvas: tm_rect_t,
    pub visibility_x: tm_ui_scrollbar_visibility,
    pub visibility_y: tm_ui_scrollbar_visibility,
}
#[test]
fn bindgen_test_layout_tm_ui_scrollview_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_scrollview_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_scrollview_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_scrollview_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_scrollview_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollview_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollview_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollview_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollview_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollview_t>())).canvas as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollview_t),
            "::",
            stringify!(canvas)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollview_t>())).visibility_x as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollview_t),
            "::",
            stringify!(visibility_x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_scrollview_t>())).visibility_y as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_scrollview_t),
            "::",
            stringify!(visibility_y)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_label_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub text: *const ::std::os::raw::c_char,
    pub tooltip: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_label_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_label_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_label_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_label_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_label_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_label_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_label_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_label_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_label_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_label_t>())).text as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_label_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_label_t>())).tooltip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_label_t),
            "::",
            stringify!(tooltip)
        )
    );
}
pub const tm_ui_align_TM_UI_ALIGN_LEFT: tm_ui_align = 0;
pub const tm_ui_align_TM_UI_ALIGN_CENTER: tm_ui_align = 1;
pub const tm_ui_align_TM_UI_ALIGN_RIGHT: tm_ui_align = 2;
pub type tm_ui_align = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_text_t {
    pub rect: tm_rect_t,
    pub text: *const ::std::os::raw::c_char,
    pub color: *const tm_color_srgb_t,
    pub align: tm_ui_align,
    pub _padding_373: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_text_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_text_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_text_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_text_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_text_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_text_t>())).rect as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_text_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_text_t>())).text as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_text_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_text_t>())).color as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_text_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_text_t>())).align as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_text_t),
            "::",
            stringify!(align)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_text_t>()))._padding_373 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_text_t),
            "::",
            stringify!(_padding_373)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_link_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub text: *const ::std::os::raw::c_char,
    pub color: *const tm_color_srgb_t,
    pub align: tm_ui_align,
    pub _padding_385: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_link_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_link_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_link_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_link_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_link_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_link_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_link_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_link_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_link_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_link_t>())).text as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_link_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_link_t>())).color as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_link_t),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_link_t>())).align as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_link_t),
            "::",
            stringify!(align)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_link_t>()))._padding_385 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_link_t),
            "::",
            stringify!(_padding_385)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_button_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub hide_background: bool,
    pub hide_margins: bool,
    pub _padding_396: [::std::os::raw::c_char; 5usize],
    pub text: *const ::std::os::raw::c_char,
    pub text_color: *const tm_color_srgb_t,
    pub tooltip: *const ::std::os::raw::c_char,
    pub text_offset_y: f32,
    pub _padding_401: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_button_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_button_t>(),
        64usize,
        concat!("Size of: ", stringify!(tm_ui_button_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_button_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_button_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).hide_background as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(hide_background)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).hide_margins as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(hide_margins)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>()))._padding_396 as *const _ as usize },
        27usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(_padding_396)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).text as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).text_color as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(text_color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).tooltip as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>())).text_offset_y as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(text_offset_y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_button_t>()))._padding_401 as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_button_t),
            "::",
            stringify!(_padding_401)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_checkbox_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub _padding_410: [::std::os::raw::c_char; 7usize],
    pub text: *const ::std::os::raw::c_char,
    pub tooltip: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_checkbox_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_checkbox_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_checkbox_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_checkbox_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_checkbox_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_checkbox_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_checkbox_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_checkbox_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_checkbox_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_checkbox_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_checkbox_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_checkbox_t>()))._padding_410 as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_checkbox_t),
            "::",
            stringify!(_padding_410)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_checkbox_t>())).text as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_checkbox_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_checkbox_t>())).tooltip as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_checkbox_t),
            "::",
            stringify!(tooltip)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_radio_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub _padding_421: [::std::os::raw::c_char; 7usize],
    pub text: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_radio_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_radio_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_radio_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_radio_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_radio_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_radio_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_radio_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_radio_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_radio_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_radio_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_radio_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_radio_t>()))._padding_421 as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_radio_t),
            "::",
            stringify!(_padding_421)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_radio_t>())).text as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_radio_t),
            "::",
            stringify!(text)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_progress_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub text: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_progress_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_progress_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_progress_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_progress_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_progress_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_progress_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_progress_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_progress_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_progress_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_progress_t>())).text as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_progress_t),
            "::",
            stringify!(text)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_slider_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub _padding_441: [::std::os::raw::c_char; 3usize],
    pub min: f32,
    pub max: f32,
    pub step: f32,
}
#[test]
fn bindgen_test_layout_tm_ui_slider_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_slider_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_slider_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_slider_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_slider_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_slider_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_slider_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_slider_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_slider_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_slider_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_slider_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_slider_t>()))._padding_441 as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_slider_t),
            "::",
            stringify!(_padding_441)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_slider_t>())).min as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_slider_t),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_slider_t>())).max as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_slider_t),
            "::",
            stringify!(max)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_slider_t>())).step as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_slider_t),
            "::",
            stringify!(step)
        )
    );
}
pub const TM_UI_SPINNER__DECIMALS__DEFAULT: ::std::os::raw::c_int = 0;
pub const TM_UI_SPINNER__DECIMALS__0: ::std::os::raw::c_int = 1;
pub const TM_UI_SPINNER__DECIMALS__1: ::std::os::raw::c_int = 2;
pub const TM_UI_SPINNER__DECIMALS__2: ::std::os::raw::c_int = 3;
pub const TM_UI_SPINNER__DECIMALS__3: ::std::os::raw::c_int = 4;
pub const TM_UI_SPINNER__DECIMALS__4: ::std::os::raw::c_int = 5;
pub const TM_UI_SPINNER__DECIMALS__5: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_226 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_spinner_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub _padding_473: [::std::os::raw::c_char; 7usize],
    pub min: f64,
    pub max: f64,
    pub value_per_pixel: f64,
    pub decimals: u32,
    pub _padding_483: [::std::os::raw::c_char; 4usize],
    pub tooltip: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_spinner_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_spinner_t>(),
        72usize,
        concat!("Size of: ", stringify!(tm_ui_spinner_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_spinner_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_spinner_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>()))._padding_473 as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(_padding_473)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).min as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).max as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(max)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).value_per_pixel as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(value_per_pixel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).decimals as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(decimals)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>()))._padding_483 as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(_padding_483)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_spinner_t>())).tooltip as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_spinner_t),
            "::",
            stringify!(tooltip)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_dropdown_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub _padding_493: [::std::os::raw::c_char; 7usize],
    pub items: *mut *const ::std::os::raw::c_char,
    pub tooltips: *mut *const ::std::os::raw::c_char,
    pub num_items: u32,
    pub _padding_501: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_dropdown_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_dropdown_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_ui_dropdown_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_dropdown_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_dropdown_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>()))._padding_493 as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(_padding_493)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>())).items as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>())).tooltips as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(tooltips)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>())).num_items as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(num_items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_dropdown_t>()))._padding_501 as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_dropdown_t),
            "::",
            stringify!(_padding_501)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_textedit_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub is_password: bool,
    pub _padding_511: [::std::os::raw::c_char; 6usize],
    pub default_text: *const ::std::os::raw::c_char,
    pub select_all_on_mouse_activate: bool,
    pub scroll_to_end: bool,
    pub select_all_on_startup: bool,
    pub _padding_528: [::std::os::raw::c_char; 1usize],
    pub select: tm_ui_textedit_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_textedit_t__bindgen_ty_1 {
    pub all: bool,
    pub range: bool,
    pub _padding_538: [::std::os::raw::c_char; 2usize],
    pub start: u32,
    pub end: u32,
}
#[test]
fn bindgen_test_layout_tm_ui_textedit_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_textedit_t__bindgen_ty_1>(),
        12usize,
        concat!("Size of: ", stringify!(tm_ui_textedit_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_textedit_t__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_ui_textedit_t__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_textedit_t__bindgen_ty_1>())).all as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t__bindgen_ty_1),
            "::",
            stringify!(all)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_textedit_t__bindgen_ty_1>())).range as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t__bindgen_ty_1),
            "::",
            stringify!(range)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_textedit_t__bindgen_ty_1>()))._padding_538 as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t__bindgen_ty_1),
            "::",
            stringify!(_padding_538)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_textedit_t__bindgen_ty_1>())).start as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t__bindgen_ty_1),
            "::",
            stringify!(start)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_textedit_t__bindgen_ty_1>())).end as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t__bindgen_ty_1),
            "::",
            stringify!(end)
        )
    );
}
#[test]
fn bindgen_test_layout_tm_ui_textedit_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_textedit_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_ui_textedit_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_textedit_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_textedit_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>())).is_password as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(is_password)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>()))._padding_511 as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(_padding_511)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>())).default_text as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(default_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_textedit_t>())).select_all_on_mouse_activate as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(select_all_on_mouse_activate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>())).scroll_to_end as *const _ as usize },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(scroll_to_end)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_textedit_t>())).select_all_on_startup as *const _ as usize
        },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(select_all_on_startup)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>()))._padding_528 as *const _ as usize },
        43usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(_padding_528)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_textedit_t>())).select as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_textedit_t),
            "::",
            stringify!(select)
        )
    );
}
pub const TM_UI_MENU_DEFAULT_ID_BASE: ::std::os::raw::c_int = -268435456;
pub type _bindgen_ty_227 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_menu_item_t {
    pub text: *const ::std::os::raw::c_char,
    pub accelerator: *const ::std::os::raw::c_char,
    pub tooltip: *const ::std::os::raw::c_char,
    pub item_id: u64,
    pub toggle: *mut bool,
    pub is_checked: bool,
    pub has_submenu: bool,
    pub is_disabled: bool,
    pub is_hidden: bool,
    pub _padding_581: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_menu_item_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_menu_item_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_menu_item_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_menu_item_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_menu_item_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).text as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).accelerator as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(accelerator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).tooltip as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).item_id as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(item_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).toggle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(toggle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).is_checked as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(is_checked)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).has_submenu as *const _ as usize },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(has_submenu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).is_disabled as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>())).is_hidden as *const _ as usize },
        43usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(is_hidden)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_item_t>()))._padding_581 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_item_t),
            "::",
            stringify!(_padding_581)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_menubar_t {
    pub id: u64,
    pub pos: tm_vec2_t,
    pub width: f32,
    pub _padding_594: [::std::os::raw::c_char; 4usize],
    pub items: *const tm_ui_menu_item_t,
    pub num_items: u32,
    pub _padding_601: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_menubar_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_menubar_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_menubar_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_menubar_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_menubar_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menubar_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menubar_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menubar_t>())).pos as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menubar_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menubar_t>())).width as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menubar_t),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menubar_t>()))._padding_594 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menubar_t),
            "::",
            stringify!(_padding_594)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menubar_t>())).items as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menubar_t),
            "::",
            stringify!(items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menubar_t>())).num_items as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menubar_t),
            "::",
            stringify!(num_items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menubar_t>()))._padding_601 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menubar_t),
            "::",
            stringify!(_padding_601)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_menu_t {
    pub pos: tm_vec2_t,
    pub items: *const tm_ui_menu_item_t,
    pub num_items: u32,
    pub _padding_615: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_menu_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_menu_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ui_menu_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_menu_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_menu_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_t>())).pos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_t>())).items as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_t),
            "::",
            stringify!(items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_t>())).num_items as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_t),
            "::",
            stringify!(num_items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_t>()))._padding_615 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_t),
            "::",
            stringify!(_padding_615)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_menu_result_t {
    pub selected_item_id: u64,
    pub selected_text: *const ::std::os::raw::c_char,
    pub highlighted_item_id: u64,
    pub submenu_pos: tm_vec2_t,
}
#[test]
fn bindgen_test_layout_tm_ui_menu_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_menu_result_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_menu_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_menu_result_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_menu_result_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_menu_result_t>())).selected_item_id as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_result_t),
            "::",
            stringify!(selected_item_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_menu_result_t>())).selected_text as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_result_t),
            "::",
            stringify!(selected_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_menu_result_t>())).highlighted_item_id as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_result_t),
            "::",
            stringify!(highlighted_item_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_menu_result_t>())).submenu_pos as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_menu_result_t),
            "::",
            stringify!(submenu_pos)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_treeitem_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub text: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_treeitem_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_treeitem_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_treeitem_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_treeitem_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_treeitem_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_treeitem_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_treeitem_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_treeitem_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_treeitem_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_treeitem_t>())).text as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_treeitem_t),
            "::",
            stringify!(text)
        )
    );
}
pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__NONE: tm_ui_tab_pin_type = 0;
pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__OBJECT: tm_ui_tab_pin_type = 1;
pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__TABS: tm_ui_tab_pin_type = 2;
pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__WINDOWS: tm_ui_tab_pin_type = 3;
pub type tm_ui_tab_pin_type = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tabbar_item_t {
    pub text: *const ::std::os::raw::c_char,
    pub id: u64,
    pub has_close_box: bool,
    pub has_pin: bool,
    pub _padding_669: [::std::os::raw::c_char; 2usize],
    pub pin_type: tm_ui_tab_pin_type,
}
#[test]
fn bindgen_test_layout_tm_ui_tabbar_item_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tabbar_item_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ui_tabbar_item_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tabbar_item_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_tabbar_item_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_item_t>())).text as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_item_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_item_t>())).id as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_item_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tabbar_item_t>())).has_close_box as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_item_t),
            "::",
            stringify!(has_close_box)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_item_t>())).has_pin as *const _ as usize },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_item_t),
            "::",
            stringify!(has_pin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tabbar_item_t>()))._padding_669 as *const _ as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_item_t),
            "::",
            stringify!(_padding_669)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_item_t>())).pin_type as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_item_t),
            "::",
            stringify!(pin_type)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tabbar_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub items: *mut tm_ui_tabbar_item_t,
    pub num_items: u32,
    pub can_drag: bool,
    pub can_drag_off: bool,
    pub is_dragging_external_tab: bool,
    pub _padding_695: [::std::os::raw::c_char; 1usize],
    pub dragged_external_item: *mut *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_tabbar_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tabbar_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_tabbar_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tabbar_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_tabbar_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_t>())).items as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_t>())).num_items as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(num_items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_t>())).can_drag as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(can_drag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_t>())).can_drag_off as *const _ as usize },
        37usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(can_drag_off)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tabbar_t>())).is_dragging_external_tab as *const _ as usize
        },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(is_dragging_external_tab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_t>()))._padding_695 as *const _ as usize },
        39usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(_padding_695)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tabbar_t>())).dragged_external_item as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_t),
            "::",
            stringify!(dragged_external_item)
        )
    );
}
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_NONE: tm_ui_tabbar_event = 0;
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_SELECT: tm_ui_tabbar_event = 1;
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_CLOSE: tm_ui_tabbar_event = 2;
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_REORDER: tm_ui_tabbar_event = 3;
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_DRAG_OFF: tm_ui_tabbar_event = 4;
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_EXTERNAL_DROP: tm_ui_tabbar_event = 5;
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_CONTEXT_MENU: tm_ui_tabbar_event = 6;
pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_PIN: tm_ui_tabbar_event = 7;
pub type tm_ui_tabbar_event = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tabbar_result_t {
    pub event: tm_ui_tabbar_event,
    pub item: u32,
    pub new_position: u32,
    pub drag_offset: tm_vec2_t,
}
#[test]
fn bindgen_test_layout_tm_ui_tabbar_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tabbar_result_t>(),
        20usize,
        concat!("Size of: ", stringify!(tm_ui_tabbar_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tabbar_result_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_ui_tabbar_result_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_result_t>())).event as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_result_t),
            "::",
            stringify!(event)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tabbar_result_t>())).item as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_result_t),
            "::",
            stringify!(item)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tabbar_result_t>())).new_position as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_result_t),
            "::",
            stringify!(new_position)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tabbar_result_t>())).drag_offset as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tabbar_result_t),
            "::",
            stringify!(drag_offset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_draggedtab_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub text: *const ::std::os::raw::c_char,
    pub has_close_box: bool,
    pub has_pin: bool,
    pub _padding_753: [::std::os::raw::c_char; 2usize],
    pub pin_type: tm_ui_tab_pin_type,
}
#[test]
fn bindgen_test_layout_tm_ui_draggedtab_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_draggedtab_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_draggedtab_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_draggedtab_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_draggedtab_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_draggedtab_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_draggedtab_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_draggedtab_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_draggedtab_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_draggedtab_t>())).text as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_draggedtab_t),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_draggedtab_t>())).has_close_box as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_draggedtab_t),
            "::",
            stringify!(has_close_box)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_draggedtab_t>())).has_pin as *const _ as usize },
        33usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_draggedtab_t),
            "::",
            stringify!(has_pin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_draggedtab_t>()))._padding_753 as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_draggedtab_t),
            "::",
            stringify!(_padding_753)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_draggedtab_t>())).pin_type as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_draggedtab_t),
            "::",
            stringify!(pin_type)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_splitter_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub min_size: f32,
    pub _padding_764: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_splitter_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_splitter_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_splitter_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_splitter_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_splitter_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_splitter_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_splitter_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_splitter_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_splitter_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_splitter_t>())).min_size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_splitter_t),
            "::",
            stringify!(min_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_splitter_t>()))._padding_764 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_splitter_t),
            "::",
            stringify!(_padding_764)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_titlebar_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub has_focus: bool,
    pub is_maximized: bool,
    pub _padding_780: [::std::os::raw::c_char; 6usize],
    pub caption: *const ::std::os::raw::c_char,
    pub icon_texture: u32,
    pub _padding_787: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_titlebar_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_titlebar_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_titlebar_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_titlebar_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_titlebar_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>())).has_focus as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(has_focus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>())).is_maximized as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(is_maximized)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>()))._padding_780 as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(_padding_780)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>())).caption as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(caption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>())).icon_texture as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(icon_texture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_titlebar_t>()))._padding_787 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_t),
            "::",
            stringify!(_padding_787)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_titlebar_result_t {
    pub close_window: bool,
    pub restore_window: bool,
    pub maximize_window: bool,
    pub minimize_window: bool,
    pub content_r: tm_rect_t,
}
#[test]
fn bindgen_test_layout_tm_ui_titlebar_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_titlebar_result_t>(),
        20usize,
        concat!("Size of: ", stringify!(tm_ui_titlebar_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_titlebar_result_t>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_ui_titlebar_result_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_titlebar_result_t>())).close_window as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_result_t),
            "::",
            stringify!(close_window)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_titlebar_result_t>())).restore_window as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_result_t),
            "::",
            stringify!(restore_window)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_titlebar_result_t>())).maximize_window as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_result_t),
            "::",
            stringify!(maximize_window)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_titlebar_result_t>())).minimize_window as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_result_t),
            "::",
            stringify!(minimize_window)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_titlebar_result_t>())).content_r as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_titlebar_result_t),
            "::",
            stringify!(content_r)
        )
    );
}
pub const tm_ui_cursor_TM_UI_CURSOR_DEFAULT: tm_ui_cursor = 0;
pub const tm_ui_cursor_TM_UI_CURSOR_POINTER: tm_ui_cursor = 1;
pub const tm_ui_cursor_TM_UI_CURSOR_TEXT: tm_ui_cursor = 2;
pub const tm_ui_cursor_TM_UI_CURSOR_MOVE: tm_ui_cursor = 3;
pub const tm_ui_cursor_TM_UI_CURSOR_ALL_SCROLL: tm_ui_cursor = 4;
pub const tm_ui_cursor_TM_UI_CURSOR_COL_RESIZE: tm_ui_cursor = 5;
pub const tm_ui_cursor_TM_UI_CURSOR_ROW_RESIZE: tm_ui_cursor = 6;
pub const tm_ui_cursor_TM_UI_CURSOR_EW_RESIZE: tm_ui_cursor = 7;
pub const tm_ui_cursor_TM_UI_CURSOR_NS_RESIZE: tm_ui_cursor = 8;
pub const tm_ui_cursor_TM_UI_CURSOR_NESW_RESIZE: tm_ui_cursor = 9;
pub const tm_ui_cursor_TM_UI_CURSOR_NWSE_RESIZE: tm_ui_cursor = 10;
pub const tm_ui_cursor_TM_UI_CURSOR_DRAG_AND_DROP: tm_ui_cursor = 11;
pub const tm_ui_cursor_TM_UI_CURSOR_NONE: tm_ui_cursor = 12;
pub type tm_ui_cursor = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_buffers_t {
    pub vbuffer: *mut tm_draw2d_vbuffer_t,
    pub ibuffers: *mut *mut tm_draw2d_ibuffer_t,
    pub input: *mut tm_ui_input_state_t,
    pub activation: *mut tm_ui_activation_t,
    pub active_data: *mut ::std::os::raw::c_void,
    pub lost_focus_data: *mut ::std::os::raw::c_void,
    pub metrics: *mut f32,
    pub colors: *mut tm_color_srgb_t,
    pub allocator: *mut tm_allocator_i,
}
#[test]
fn bindgen_test_layout_tm_ui_buffers_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_buffers_t>(),
        72usize,
        concat!("Size of: ", stringify!(tm_ui_buffers_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_buffers_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_buffers_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).vbuffer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(vbuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).ibuffers as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(ibuffers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).input as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(input)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).activation as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(activation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).active_data as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(active_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).lost_focus_data as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(lost_focus_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).metrics as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(metrics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).colors as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(colors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_buffers_t>())).allocator as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_buffers_t),
            "::",
            stringify!(allocator)
        )
    );
}
pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_NO_CHANGE:
    tm_ui_interaction_result_t = 0;
pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_TRANSIENT_CHANGE:
    tm_ui_interaction_result_t = 1;
pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_COMMIT: tm_ui_interaction_result_t =
    2;
pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_ABORT: tm_ui_interaction_result_t = 3;
pub type tm_ui_interaction_result_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_mouse_help_texts_t {
    pub left_mouse_pressed: *const ::std::os::raw::c_char,
    pub middle_mouse_pressed: *const ::std::os::raw::c_char,
    pub right_mouse_pressed: *const ::std::os::raw::c_char,
    pub double_click: *const ::std::os::raw::c_char,
    pub triple_click: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_tm_ui_mouse_help_texts_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_mouse_help_texts_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_ui_mouse_help_texts_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_mouse_help_texts_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_mouse_help_texts_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_mouse_help_texts_t>())).left_mouse_pressed as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_mouse_help_texts_t),
            "::",
            stringify!(left_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_mouse_help_texts_t>())).middle_mouse_pressed as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_mouse_help_texts_t),
            "::",
            stringify!(middle_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_mouse_help_texts_t>())).right_mouse_pressed as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_mouse_help_texts_t),
            "::",
            stringify!(right_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_mouse_help_texts_t>())).double_click as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_mouse_help_texts_t),
            "::",
            stringify!(double_click)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_mouse_help_texts_t>())).triple_click as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_mouse_help_texts_t),
            "::",
            stringify!(triple_click)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_api {
    pub create: ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_ui_o>,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(i: *mut tm_ui_o)>,
    pub clear: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
    pub release_held_state: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
    pub set_window_status: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            rect: tm_rect_t,
            has_focus: bool,
            is_under_cursor: bool,
        ),
    >,
    pub window_rect: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_rect_t>,
    pub set_feather_width:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, feather_width: f32)>,
    pub feather_width: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> f32>,
    pub feed_events: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            events: *const tm_input_event_t,
            count: u32,
            offset: tm_vec2_t,
            scale: tm_vec2_t,
        ),
    >,
    pub feed_external_edit_key:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, key: u32)>,
    pub merge_overlay: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
    pub begin_overlay_draw_scope:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
    pub end_overlay_draw_scope:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
    pub drawing_in_overlay: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
    pub cursor: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_cursor>,
    pub window: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_window_t,
            rect: *mut tm_rect_t,
            content_rect: *mut tm_rect_t,
        ) -> tm_ui_window_event,
    >,
    pub pane: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, style: *const tm_ui_style_t, rect: tm_rect_t),
    >,
    pub scrollbar_x: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            c: *const tm_ui_scrollbar_t,
            scroll: *mut f32,
        ) -> bool,
    >,
    pub scrollbar_y: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            c: *const tm_ui_scrollbar_t,
            scroll: *mut f32,
        ) -> bool,
    >,
    pub begin_scrollview: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_scrollview_t,
            scroll_x: *mut f32,
            scroll_y: *mut f32,
            content_rect: *mut tm_rect_t,
        ) -> bool,
    >,
    pub end_scrollview: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, scroll_x: *mut f32, scroll_y: *mut f32) -> bool,
    >,
    pub label: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_label_t,
        ) -> tm_rect_t,
    >,
    pub text: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_text_t,
        ) -> tm_rect_t,
    >,
    pub text_metrics: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            text: *const ::std::os::raw::c_char,
        ) -> tm_rect_t,
    >,
    pub wrapped_text: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_text_t,
        ) -> tm_rect_t,
    >,
    pub link: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_link_t,
        ) -> bool,
    >,
    pub tooltip: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            text: *const ::std::os::raw::c_char,
        ),
    >,
    pub button: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_button_t,
        ) -> bool,
    >,
    pub pushbutton: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_button_t,
            pressed: *mut bool,
        ) -> bool,
    >,
    pub checkbox: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_checkbox_t,
            checked: *mut bool,
        ) -> bool,
    >,
    pub radio: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_radio_t,
            checked: bool,
        ) -> bool,
    >,
    pub progress: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_progress_t,
            fraction: f32,
        ),
    >,
    pub slider: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_slider_t,
            val: *mut f32,
            initial: *mut f32,
        ) -> tm_ui_interaction_result_t,
    >,
    pub spinner: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_spinner_t,
            val: *mut f64,
            initial: *mut f64,
        ) -> tm_ui_interaction_result_t,
    >,
    pub dropdown: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_dropdown_t,
            selected: *mut u32,
        ) -> bool,
    >,
    pub textedit: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_textedit_t,
            s: *mut ::std::os::raw::c_char,
            maxlen: u32,
        ) -> bool,
    >,
    pub menubar: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_menubar_t,
        ) -> tm_ui_menu_result_t,
    >,
    pub menu: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_menu_t,
        ) -> tm_ui_menu_result_t,
    >,
    pub sort_menu_items:
        ::std::option::Option<unsafe extern "C" fn(items: *mut tm_ui_menu_item_t, count: u32)>,
    pub tabbar: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_tabbar_t,
            selected: *mut u32,
        ) -> tm_ui_tabbar_result_t,
    >,
    pub draggedtab: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *const tm_ui_style_t,
            c: *const tm_ui_draggedtab_t,
        ),
    >,
    pub splitter_x: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            c: *const tm_ui_splitter_t,
            bias: *mut f32,
            content_left: *mut tm_rect_t,
            content_right: *mut tm_rect_t,
        ) -> bool,
    >,
    pub splitter_x_rects: ::std::option::Option<
        unsafe extern "C" fn(
            c: *const tm_ui_splitter_t,
            bias: f32,
            content_left: *mut tm_rect_t,
            content_right: *mut tm_rect_t,
        ),
    >,
    pub splitter_y: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            c: *const tm_ui_splitter_t,
            bias: *mut f32,
            content_top: *mut tm_rect_t,
            content_bottom: *mut tm_rect_t,
        ) -> bool,
    >,
    pub splitter_y_rects: ::std::option::Option<
        unsafe extern "C" fn(
            c: *const tm_ui_splitter_t,
            bias: f32,
            content_top: *mut tm_rect_t,
            content_bottom: *mut tm_rect_t,
        ),
    >,
    pub titlebar: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            c: *const tm_ui_titlebar_t,
        ) -> tm_ui_titlebar_result_t,
    >,
    pub grow_buffer: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, b: tm_ui_buffer, vbytes: u32, ibytes: u32),
    >,
    pub buffers: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_buffers_t>,
    pub make_id: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> u64>,
    pub last_id: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> u64>,
    pub create_fixed_id_range:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, size: u64) -> u64>,
    pub set_id: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> u64>,
    pub set_cursor:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, cursor: tm_ui_cursor)>,
    pub is_hovering: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, r: tm_rect_t, clip: u32) -> bool,
    >,
    pub set_responder_chain_root:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
    pub begin_responder_scope:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
    pub end_responder_scope: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
    pub in_responder_chain:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
    pub is_first_responder:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
    pub set_responder_chain: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
    pub responder_chain:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, count: *mut u32) -> *mut u64>,
    pub is_responder_chain_empty:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
    pub focus_on_mouse_press: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, r: tm_rect_t, id: u64) -> bool,
    >,
    pub consume_key:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, keyboard_item: u32)>,
    pub begin_tab_scope:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
    pub end_tab_scope: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
    pub focus_on_tab:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
    pub set_tab_focus_disabled:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, tab_focus_disabled: bool)>,
    pub set_active: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
    pub to_draw_style: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            style: *mut tm_draw2d_style_t,
            uistyle: *const tm_ui_style_t,
        ) -> *mut tm_draw2d_style_t,
    >,
    pub set_cache: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, key: u64, carray: *mut ::std::os::raw::c_char),
    >,
    pub lookup_cache: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, key: u64) -> *mut ::std::os::raw::c_char,
    >,
    pub left_mouse_pressed: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
    >,
    pub middle_mouse_pressed: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
    >,
    pub right_mouse_pressed: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
    >,
    pub double_click: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
    >,
    pub triple_click: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
    >,
    pub get_mouse_help_texts:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_mouse_help_texts_t>,
    pub theme: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_theme_t>,
    pub set_theme:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, theme: tm_ui_theme_t)>,
    pub create_custom_theme: ::std::option::Option<
        unsafe extern "C" fn(ui: *mut tm_ui_o, tt: *mut tm_the_truth_o) -> tm_ui_theme_t,
    >,
    pub set_parent_ui:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, parent_ui: *mut tm_ui_o)>,
    pub fork: ::std::option::Option<unsafe extern "C" fn(main: *mut tm_ui_o) -> *mut tm_ui_o>,
    pub join: ::std::option::Option<unsafe extern "C" fn(main: *mut tm_ui_o, fork: *mut tm_ui_o)>,
    pub main_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_ui_o>,
}
#[test]
fn bindgen_test_layout_tm_ui_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_api>(),
        680usize,
        concat!("Size of: ", stringify!(tm_ui_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).clear as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(clear)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).release_held_state as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(release_held_state)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_window_status as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_window_status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).window_rect as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(window_rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_feather_width as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_feather_width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).feather_width as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(feather_width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).feed_events as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(feed_events)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_api>())).feed_external_edit_key as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(feed_external_edit_key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).merge_overlay as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(merge_overlay)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_api>())).begin_overlay_draw_scope as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(begin_overlay_draw_scope)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_api>())).end_overlay_draw_scope as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(end_overlay_draw_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).drawing_in_overlay as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(drawing_in_overlay)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).cursor as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(cursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).window as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(window)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).pane as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(pane)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).scrollbar_x as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(scrollbar_x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).scrollbar_y as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(scrollbar_y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).begin_scrollview as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(begin_scrollview)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).end_scrollview as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(end_scrollview)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).label as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(label)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).text as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).text_metrics as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(text_metrics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).wrapped_text as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(wrapped_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).link as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(link)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).tooltip as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).button as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(button)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).pushbutton as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(pushbutton)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).checkbox as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(checkbox)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).radio as *const _ as usize },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(radio)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).progress as *const _ as usize },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(progress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).slider as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(slider)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).spinner as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(spinner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).dropdown as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(dropdown)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).textedit as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(textedit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).menubar as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(menubar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).menu as *const _ as usize },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(menu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).sort_menu_items as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(sort_menu_items)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).tabbar as *const _ as usize },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(tabbar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).draggedtab as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(draggedtab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).splitter_x as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(splitter_x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).splitter_x_rects as *const _ as usize },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(splitter_x_rects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).splitter_y as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(splitter_y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).splitter_y_rects as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(splitter_y_rects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).titlebar as *const _ as usize },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(titlebar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).grow_buffer as *const _ as usize },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(grow_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).buffers as *const _ as usize },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(buffers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).make_id as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(make_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).last_id as *const _ as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(last_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).create_fixed_id_range as *const _ as usize },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(create_fixed_id_range)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_id as *const _ as usize },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_cursor as *const _ as usize },
        416usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_cursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).is_hovering as *const _ as usize },
        424usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(is_hovering)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_api>())).set_responder_chain_root as *const _ as usize
        },
        432usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_responder_chain_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).begin_responder_scope as *const _ as usize },
        440usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(begin_responder_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).end_responder_scope as *const _ as usize },
        448usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(end_responder_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).in_responder_chain as *const _ as usize },
        456usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(in_responder_chain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).is_first_responder as *const _ as usize },
        464usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(is_first_responder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_responder_chain as *const _ as usize },
        472usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_responder_chain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).responder_chain as *const _ as usize },
        480usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(responder_chain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_api>())).is_responder_chain_empty as *const _ as usize
        },
        488usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(is_responder_chain_empty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).focus_on_mouse_press as *const _ as usize },
        496usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(focus_on_mouse_press)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).consume_key as *const _ as usize },
        504usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(consume_key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).begin_tab_scope as *const _ as usize },
        512usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(begin_tab_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).end_tab_scope as *const _ as usize },
        520usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(end_tab_scope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).focus_on_tab as *const _ as usize },
        528usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(focus_on_tab)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_api>())).set_tab_focus_disabled as *const _ as usize
        },
        536usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_tab_focus_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_active as *const _ as usize },
        544usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_active)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).to_draw_style as *const _ as usize },
        552usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(to_draw_style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_cache as *const _ as usize },
        560usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_cache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).lookup_cache as *const _ as usize },
        568usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(lookup_cache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).left_mouse_pressed as *const _ as usize },
        576usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(left_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).middle_mouse_pressed as *const _ as usize },
        584usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(middle_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).right_mouse_pressed as *const _ as usize },
        592usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(right_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).double_click as *const _ as usize },
        600usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(double_click)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).triple_click as *const _ as usize },
        608usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(triple_click)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).get_mouse_help_texts as *const _ as usize },
        616usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(get_mouse_help_texts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).theme as *const _ as usize },
        624usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(theme)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_theme as *const _ as usize },
        632usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_theme)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).create_custom_theme as *const _ as usize },
        640usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(create_custom_theme)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).set_parent_ui as *const _ as usize },
        648usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(set_parent_ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).fork as *const _ as usize },
        656usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(fork)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).join as *const _ as usize },
        664usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(join)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_api>())).main_ui as *const _ as usize },
        672usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_api),
            "::",
            stringify!(main_ui)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_activation_t {
    pub active: u64,
    pub lost_focus: u64,
    pub hover: u64,
    pub hover_in_overlay: bool,
    pub _padding_39: [::std::os::raw::c_char; 7usize],
    pub next_hover: u64,
    pub next_hover_in_overlay: bool,
    pub _padding_42: [::std::os::raw::c_char; 7usize],
    pub sub_hover: u64,
    pub next_sub_hover: u64,
    pub hover_time: f32,
    pub _padding_48: [::std::os::raw::c_char; 4usize],
    pub hover_at_time: f64,
    pub tooltip: u64,
    pub tooltip_position: tm_vec2_t,
    pub tooltip_time: f64,
    pub next_hover_window: u64,
    pub hover_window: u64,
    pub next_hover_scrollview: u64,
    pub hover_scrollview: u64,
    pub menu_level: u32,
    pub _padding_87: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_activation_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_activation_t>(),
        144usize,
        concat!("Size of: ", stringify!(tm_ui_activation_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_activation_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_activation_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).active as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(active)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).lost_focus as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(lost_focus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).hover as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(hover)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).hover_in_overlay as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(hover_in_overlay)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>()))._padding_39 as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(_padding_39)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).next_hover as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(next_hover)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).next_hover_in_overlay as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(next_hover_in_overlay)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>()))._padding_42 as *const _ as usize },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(_padding_42)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).sub_hover as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(sub_hover)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).next_sub_hover as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(next_sub_hover)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).hover_time as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(hover_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>()))._padding_48 as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(_padding_48)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).hover_at_time as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(hover_at_time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).tooltip as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(tooltip)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).tooltip_position as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(tooltip_position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).tooltip_time as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(tooltip_time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).next_hover_window as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(next_hover_window)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).hover_window as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(hover_window)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).next_hover_scrollview as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(next_hover_scrollview)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_activation_t>())).hover_scrollview as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(hover_scrollview)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>())).menu_level as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(menu_level)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_activation_t>()))._padding_87 as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_activation_t),
            "::",
            stringify!(_padding_87)
        )
    );
}
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_NONE: tm_ui_edit_key = 0;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_LEFT: tm_ui_edit_key = 1;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_RIGHT: tm_ui_edit_key = 2;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_UP: tm_ui_edit_key = 3;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_DOWN: tm_ui_edit_key = 4;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_TAB: tm_ui_edit_key = 5;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_ENTER: tm_ui_edit_key = 6;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_END: tm_ui_edit_key = 7;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_HOME: tm_ui_edit_key = 8;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_DELETE: tm_ui_edit_key = 9;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_BACKSPACE: tm_ui_edit_key = 10;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_ESCAPE: tm_ui_edit_key = 11;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_SELECT_ALL: tm_ui_edit_key = 12;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_CUT: tm_ui_edit_key = 13;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_COPY: tm_ui_edit_key = 14;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_PASTE: tm_ui_edit_key = 15;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_DUPLICATE: tm_ui_edit_key = 16;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_UNDO: tm_ui_edit_key = 17;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_REDO: tm_ui_edit_key = 18;
pub const tm_ui_edit_key_TM_UI_EDIT_KEY_COUNT: tm_ui_edit_key = 19;
pub type tm_ui_edit_key = ::std::os::raw::c_int;
pub const TM_UI_MAX_TEXT_INPUT: ::std::os::raw::c_int = 32;
pub type _bindgen_ty_228 = ::std::os::raw::c_int;
pub const TM_UI_MODIFIERS_NONE: ::std::os::raw::c_int = 0;
pub const TM_UI_MODIFIERS_SHIFT: ::std::os::raw::c_int = 1;
pub const TM_UI_MODIFIERS_ALT: ::std::os::raw::c_int = 2;
pub const TM_UI_MODIFIERS_SHIFT_ALT: ::std::os::raw::c_int = 3;
pub const TM_UI_MODIFIERS_CTRL: ::std::os::raw::c_int = 4;
pub const TM_UI_MODIFIERS_SHIFT_CTRL: ::std::os::raw::c_int = 5;
pub const TM_UI_MODIFIERS_ALT_CTRL: ::std::os::raw::c_int = 6;
pub const TM_UI_MODIFIERS_SHIFT_ALT_CTRL: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_229 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_input_state_t {
    pub time: f64,
    pub scale: tm_vec2_t,
    pub offset: tm_vec2_t,
    pub mouse_pos: tm_vec2_t,
    pub mouse_move: tm_vec2_t,
    pub mouse_wheel: f32,
    pub left_mouse_pressed: bool,
    pub left_mouse_released: bool,
    pub left_mouse_is_down: bool,
    pub right_mouse_pressed: bool,
    pub right_mouse_released: bool,
    pub right_mouse_is_down: bool,
    pub middle_mouse_pressed: bool,
    pub middle_mouse_released: bool,
    pub middle_mouse_is_down: bool,
    pub back_mouse_pressed: bool,
    pub back_mouse_released: bool,
    pub back_mouse_is_down: bool,
    pub left_mouse_pressed_at_time: f64,
    pub mouse_move_at_time: f64,
    pub double_click: bool,
    pub triple_click: bool,
    pub pen_pressed: bool,
    pub pen_released: bool,
    pub pen_is_down: bool,
    pub touch_pressed: bool,
    pub touch_released: bool,
    pub touch_is_down: bool,
    pub pressure: f32,
    pub pen_erase: bool,
    pub _padding_191: [::std::os::raw::c_char; 3usize],
    pub key_is_down: *mut bool,
    pub key_pressed: *mut bool,
    pub key_released: *mut bool,
    pub key_repeated: *mut bool,
    pub modifiers: u32,
    pub edit_key_pressed: [bool; 19usize],
    pub _padding_207: [::std::os::raw::c_char; 1usize],
    pub num_text_input: u32,
    pub text_input: [u32; 32usize],
    pub _padding_212: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_input_state_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_input_state_t>(),
        280usize,
        concat!("Size of: ", stringify!(tm_ui_input_state_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_input_state_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_input_state_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).time as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).scale as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(scale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).offset as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).mouse_pos as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(mouse_pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).mouse_move as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(mouse_move)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).mouse_wheel as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(mouse_wheel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).left_mouse_pressed as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(left_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).left_mouse_released as *const _ as usize
        },
        45usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(left_mouse_released)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).left_mouse_is_down as *const _ as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(left_mouse_is_down)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).right_mouse_pressed as *const _ as usize
        },
        47usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(right_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).right_mouse_released as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(right_mouse_released)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).right_mouse_is_down as *const _ as usize
        },
        49usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(right_mouse_is_down)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).middle_mouse_pressed as *const _
                as usize
        },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(middle_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).middle_mouse_released as *const _
                as usize
        },
        51usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(middle_mouse_released)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).middle_mouse_is_down as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(middle_mouse_is_down)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).back_mouse_pressed as *const _ as usize
        },
        53usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(back_mouse_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).back_mouse_released as *const _ as usize
        },
        54usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(back_mouse_released)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).back_mouse_is_down as *const _ as usize
        },
        55usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(back_mouse_is_down)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).left_mouse_pressed_at_time as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(left_mouse_pressed_at_time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).mouse_move_at_time as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(mouse_move_at_time)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).double_click as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(double_click)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).triple_click as *const _ as usize
        },
        73usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(triple_click)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).pen_pressed as *const _ as usize },
        74usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(pen_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).pen_released as *const _ as usize
        },
        75usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(pen_released)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).pen_is_down as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(pen_is_down)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).touch_pressed as *const _ as usize
        },
        77usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(touch_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).touch_released as *const _ as usize
        },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(touch_released)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).touch_is_down as *const _ as usize
        },
        79usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(touch_is_down)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).pressure as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(pressure)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).pen_erase as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(pen_erase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>()))._padding_191 as *const _ as usize
        },
        85usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(_padding_191)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).key_is_down as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(key_is_down)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).key_pressed as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(key_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).key_released as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(key_released)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).key_repeated as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(key_repeated)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).modifiers as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(modifiers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).edit_key_pressed as *const _ as usize
        },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(edit_key_pressed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>()))._padding_207 as *const _ as usize
        },
        143usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(_padding_207)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>())).num_text_input as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(num_text_input)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_input_state_t>())).text_input as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(text_input)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_input_state_t>()))._padding_212 as *const _ as usize
        },
        276usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_input_state_t),
            "::",
            stringify!(_padding_212)
        )
    );
}
pub const TM_UI_ACTIVE_DATA_BYTES: ::std::os::raw::c_int = 16384;
pub type _bindgen_ty_230 = ::std::os::raw::c_int;
pub const tm_ui_icon_TM_UI_ICON__PLAY: tm_ui_icon = 0;
pub const tm_ui_icon_TM_UI_ICON__PAUSE: tm_ui_icon = 1;
pub const tm_ui_icon_TM_UI_ICON__RESTART: tm_ui_icon = 2;
pub const tm_ui_icon_TM_UI_ICON__STOP: tm_ui_icon = 3;
pub const tm_ui_icon_TM_UI_ICON__VOLUME: tm_ui_icon = 4;
pub const tm_ui_icon_TM_UI_ICON__PITCH: tm_ui_icon = 5;
pub const tm_ui_icon_TM_UI_ICON__PAN: tm_ui_icon = 6;
pub type tm_ui_icon = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_icon_button_t {
    pub id: u64,
    pub rect: tm_rect_t,
    pub is_disabled: bool,
    pub _padding_26: [::std::os::raw::c_char; 3usize],
    pub icon: tm_ui_icon,
}
#[test]
fn bindgen_test_layout_tm_ui_icon_button_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_icon_button_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_icon_button_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_icon_button_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_icon_button_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_icon_button_t>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_icon_button_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_icon_button_t>())).rect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_icon_button_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_icon_button_t>())).is_disabled as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_icon_button_t),
            "::",
            stringify!(is_disabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_icon_button_t>()))._padding_26 as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_icon_button_t),
            "::",
            stringify!(_padding_26)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_icon_button_t>())).icon as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_icon_button_t),
            "::",
            stringify!(icon)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_icon_api {
    pub button: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            c: *const tm_ui_icon_button_t,
        ) -> bool,
    >,
    pub pushbutton: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            c: *const tm_ui_icon_button_t,
            pressed: *mut bool,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_ui_icon_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_icon_api>(),
        16usize,
        concat!("Size of: ", stringify!(tm_ui_icon_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_icon_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_icon_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_icon_api>())).button as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_icon_api),
            "::",
            stringify!(button)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_icon_api>())).pushbutton as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_icon_api),
            "::",
            stringify!(pushbutton)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_renderer_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            shader_repository: *mut tm_shader_repository_o,
            allocator: *mut tm_allocator_i,
            device_affinity: u32,
        ) -> *mut tm_ui_renderer_o,
    >,
    pub destroy: ::std::option::Option<
        unsafe extern "C" fn(
            ui_renderer: *mut tm_ui_renderer_o,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ),
    >,
    pub render: ::std::option::Option<
        unsafe extern "C" fn(
            ui_renderer: *mut tm_ui_renderer_o,
            ui: *mut tm_ui_o,
            sort_key: u64,
            render_target_resolution: *const u32,
            dpi_scale_factor: f32,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
            cmd_buf: *mut tm_renderer_command_buffer_o,
        ),
    >,
    pub font: ::std::option::Option<
        unsafe extern "C" fn(
            ui_renderer: *mut tm_ui_renderer_o,
            font_size: u32,
            window_dpi: f32,
            res_buf: *mut tm_renderer_resource_command_buffer_o,
        ) -> *const tm_font_t,
    >,
    pub allocate_image_slot:
        ::std::option::Option<unsafe extern "C" fn(ui_renderer: *mut tm_ui_renderer_o) -> u32>,
    pub set_image: ::std::option::Option<
        unsafe extern "C" fn(ui_renderer: *mut tm_ui_renderer_o, slot: u32, image_handle: u32),
    >,
}
#[test]
fn bindgen_test_layout_tm_ui_renderer_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_renderer_api>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_renderer_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_renderer_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_renderer_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_renderer_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_renderer_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_renderer_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_renderer_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_renderer_api>())).render as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_renderer_api),
            "::",
            stringify!(render)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_renderer_api>())).font as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_renderer_api),
            "::",
            stringify!(font)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_renderer_api>())).allocate_image_slot as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_renderer_api),
            "::",
            stringify!(allocate_image_slot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_renderer_api>())).set_image as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_renderer_api),
            "::",
            stringify!(set_image)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tree_t {
    pub ud: *mut ::std::os::raw::c_void,
    pub root: u64,
    pub item_height: f32,
    pub rect: tm_rect_t,
    pub _padding_26: [::std::os::raw::c_char; 4usize],
    pub node_ui: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            item_id: u64,
            rect: tm_rect_t,
            ud: *mut ::std::os::raw::c_void,
            node: u64,
            parent: u64,
            child_idx: u64,
        ),
    >,
    pub node_children: ::std::option::Option<
        unsafe extern "C" fn(
            ud: *mut ::std::os::raw::c_void,
            node: u64,
            children: *mut u64,
            n: u32,
        ) -> u32,
    >,
}
#[test]
fn bindgen_test_layout_tm_ui_tree_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tree_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_ui_tree_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tree_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_tree_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_t>())).ud as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_t),
            "::",
            stringify!(ud)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_t>())).root as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_t),
            "::",
            stringify!(root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_t>())).item_height as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_t),
            "::",
            stringify!(item_height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_t>())).rect as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_t),
            "::",
            stringify!(rect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_t>()))._padding_26 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_t),
            "::",
            stringify!(_padding_26)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_t>())).node_ui as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_t),
            "::",
            stringify!(node_ui)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_t>())).node_children as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_t),
            "::",
            stringify!(node_children)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tree_item_metrics_t {
    pub have_been_filled: bool,
    pub _padding_45: [::std::os::raw::c_char; 7usize],
    pub tooltip_hover_text: *const ::std::os::raw::c_char,
    pub toolbar_ui_elements: *mut u64,
    pub toolbar_used_rect: tm_rect_t,
    pub toolbar_element_count: u32,
    pub _padding_52: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_ui_tree_item_metrics_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tree_item_metrics_t>(),
        48usize,
        concat!("Size of: ", stringify!(tm_ui_tree_item_metrics_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tree_item_metrics_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_tree_item_metrics_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_metrics_t>())).have_been_filled as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_metrics_t),
            "::",
            stringify!(have_been_filled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_metrics_t>()))._padding_45 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_metrics_t),
            "::",
            stringify!(_padding_45)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_metrics_t>())).tooltip_hover_text as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_metrics_t),
            "::",
            stringify!(tooltip_hover_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_metrics_t>())).toolbar_ui_elements as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_metrics_t),
            "::",
            stringify!(toolbar_ui_elements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_metrics_t>())).toolbar_used_rect as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_metrics_t),
            "::",
            stringify!(toolbar_used_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_metrics_t>())).toolbar_element_count as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_metrics_t),
            "::",
            stringify!(toolbar_element_count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_metrics_t>()))._padding_52 as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_metrics_t),
            "::",
            stringify!(_padding_52)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tree_state_t {
    pub expanded: *mut tm_set_t,
    pub selected: *mut tm_set_t,
    pub total_height: f32,
    pub scroll_y: f32,
}
#[test]
fn bindgen_test_layout_tm_ui_tree_state_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tree_state_t>(),
        24usize,
        concat!("Size of: ", stringify!(tm_ui_tree_state_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tree_state_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_tree_state_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_state_t>())).expanded as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_state_t),
            "::",
            stringify!(expanded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_state_t>())).selected as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_state_t),
            "::",
            stringify!(selected)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_state_t>())).total_height as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_state_t),
            "::",
            stringify!(total_height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_state_t>())).scroll_y as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_state_t),
            "::",
            stringify!(scroll_y)
        )
    );
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tree_item_state_t {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
}
#[test]
fn bindgen_test_layout_tm_ui_tree_item_state_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tree_item_state_t>(),
        1usize,
        concat!("Size of: ", stringify!(tm_ui_tree_item_state_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tree_item_state_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_ui_tree_item_state_t))
    );
}
impl tm_ui_tree_item_state_t {
    #[inline]
    pub fn can_expand(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_can_expand(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn expanded(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_expanded(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn can_select(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_can_select(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn selected(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_selected(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn padding(&self) -> u8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_padding(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        can_expand: bool,
        expanded: bool,
        can_select: bool,
        selected: bool,
        padding: u8,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let can_expand: u8 = unsafe { ::std::mem::transmute(can_expand) };
            can_expand as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let expanded: u8 = unsafe { ::std::mem::transmute(expanded) };
            expanded as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let can_select: u8 = unsafe { ::std::mem::transmute(can_select) };
            can_select as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let selected: u8 = unsafe { ::std::mem::transmute(selected) };
            selected as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let padding: u8 = unsafe { ::std::mem::transmute(padding) };
            padding as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tree_item_res_t {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u8>,
    pub _padding_109: [::std::os::raw::c_char; 2usize],
    pub item_rect: tm_rect_t,
    pub _padding_113: [::std::os::raw::c_char; 4usize],
    pub item_id: u64,
}
#[test]
fn bindgen_test_layout_tm_ui_tree_item_res_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tree_item_res_t>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_tree_item_res_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tree_item_res_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_tree_item_res_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_res_t>()))._padding_109 as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_res_t),
            "::",
            stringify!(_padding_109)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_item_res_t>())).item_rect as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_res_t),
            "::",
            stringify!(item_rect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_item_res_t>()))._padding_113 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_res_t),
            "::",
            stringify!(_padding_113)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_item_res_t>())).item_id as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_item_res_t),
            "::",
            stringify!(item_id)
        )
    );
}
impl tm_ui_tree_item_res_t {
    #[inline]
    pub fn expanded(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_expanded(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn expanded_changed(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_expanded_changed(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn selected(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_selected(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn selected_changed(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_selected_changed(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn clicked(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_clicked(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn double_clicked(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_double_clicked(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn visible(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_visible(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn deselect_others(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_deselect_others(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(7usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn select_range(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_select_range(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn hovered(&self) -> bool {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_hovered(&mut self, val: bool) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(9usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn padding(&self) -> u8 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 6u8) as u8) }
    }
    #[inline]
    pub fn set_padding(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(10usize, 6u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        expanded: bool,
        expanded_changed: bool,
        selected: bool,
        selected_changed: bool,
        clicked: bool,
        double_clicked: bool,
        visible: bool,
        deselect_others: bool,
        select_range: bool,
        hovered: bool,
        padding: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let expanded: u8 = unsafe { ::std::mem::transmute(expanded) };
            expanded as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let expanded_changed: u8 = unsafe { ::std::mem::transmute(expanded_changed) };
            expanded_changed as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let selected: u8 = unsafe { ::std::mem::transmute(selected) };
            selected as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let selected_changed: u8 = unsafe { ::std::mem::transmute(selected_changed) };
            selected_changed as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let clicked: u8 = unsafe { ::std::mem::transmute(clicked) };
            clicked as u64
        });
        __bindgen_bitfield_unit.set(5usize, 1u8, {
            let double_clicked: u8 = unsafe { ::std::mem::transmute(double_clicked) };
            double_clicked as u64
        });
        __bindgen_bitfield_unit.set(6usize, 1u8, {
            let visible: u8 = unsafe { ::std::mem::transmute(visible) };
            visible as u64
        });
        __bindgen_bitfield_unit.set(7usize, 1u8, {
            let deselect_others: u8 = unsafe { ::std::mem::transmute(deselect_others) };
            deselect_others as u64
        });
        __bindgen_bitfield_unit.set(8usize, 1u8, {
            let select_range: u8 = unsafe { ::std::mem::transmute(select_range) };
            select_range as u64
        });
        __bindgen_bitfield_unit.set(9usize, 1u8, {
            let hovered: u8 = unsafe { ::std::mem::transmute(hovered) };
            hovered as u64
        });
        __bindgen_bitfield_unit.set(10usize, 6u8, {
            let padding: u8 = unsafe { ::std::mem::transmute(padding) };
            padding as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_ui_tree_api {
    pub tree: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            tree: *const tm_ui_tree_t,
            state: *mut tm_ui_tree_state_t,
        ),
    >,
    pub tree_item: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            rect: tm_rect_t,
            state: tm_ui_tree_item_state_t,
            tree_has_focus: bool,
            metrics: *const tm_ui_tree_item_metrics_t,
        ) -> tm_ui_tree_item_res_t,
    >,
    pub tree_item_with_sets: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            rect: tm_rect_t,
            key: u64,
            expanded_set: *mut tm_set_t,
            selected_set: *mut tm_set_t,
            tree_has_focus: bool,
        ) -> tm_ui_tree_item_res_t,
    >,
    pub tree_item_with_metrics: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            rect: tm_rect_t,
            key: u64,
            expanded_set: *mut tm_set_t,
            selected_set: *mut tm_set_t,
            tree_has_focus: bool,
            metrics: *const tm_ui_tree_item_metrics_t,
        ) -> tm_ui_tree_item_res_t,
    >,
}
#[test]
fn bindgen_test_layout_tm_ui_tree_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_ui_tree_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_ui_tree_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_ui_tree_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_ui_tree_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_api>())).tree as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_api),
            "::",
            stringify!(tree)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_ui_tree_api>())).tree_item as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_api),
            "::",
            stringify!(tree_item)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_api>())).tree_item_with_sets as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_api),
            "::",
            stringify!(tree_item_with_sets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_ui_tree_api>())).tree_item_with_metrics as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_ui_tree_api),
            "::",
            stringify!(tree_item_with_metrics)
        )
    );
}
pub const tm_upnp_state_TM_UPNP_STATE_NONE: tm_upnp_state = 0;
pub const tm_upnp_state_TM_UPNP_STATE_IN_PROGRESS: tm_upnp_state = 1;
pub const tm_upnp_state_TM_UPNP_STATE_FAILURE: tm_upnp_state = 2;
pub const tm_upnp_state_TM_UPNP_STATE_PORT_FORWARDED: tm_upnp_state = 3;
pub const tm_upnp_state_TM_UPNP_STATE_PORT_REMOVED: tm_upnp_state = 4;
pub type tm_upnp_state = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_upnp_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_upnp_result_t {
    pub forwarded_port: u32,
    pub _padding_25: [::std::os::raw::c_char; 4usize],
    pub router_wan_address: *mut tm_socket_address_t,
}
#[test]
fn bindgen_test_layout_tm_upnp_result_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_upnp_result_t>(),
        16usize,
        concat!("Size of: ", stringify!(tm_upnp_result_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_upnp_result_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_upnp_result_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_upnp_result_t>())).forwarded_port as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_upnp_result_t),
            "::",
            stringify!(forwarded_port)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_upnp_result_t>()))._padding_25 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_upnp_result_t),
            "::",
            stringify!(_padding_25)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_upnp_result_t>())).router_wan_address as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_upnp_result_t),
            "::",
            stringify!(router_wan_address)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_upnp_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            port_to_forward: u32,
        ) -> *mut tm_upnp_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_upnp_o)>,
    pub remove_forwarded_port: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_upnp_o)>,
    pub update: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut tm_upnp_o, res: *mut tm_upnp_result_t) -> tm_upnp_state,
    >,
}
#[test]
fn bindgen_test_layout_tm_upnp_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_upnp_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_upnp_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_upnp_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_upnp_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_upnp_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_upnp_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_upnp_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_upnp_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_upnp_api>())).remove_forwarded_port as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_upnp_api),
            "::",
            stringify!(remove_forwarded_port)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_upnp_api>())).update as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_upnp_api),
            "::",
            stringify!(update)
        )
    );
}
pub const tm_vulkan_init_flag_TM_VULKAN_INIT_FLAG_SWAPCHAIN: tm_vulkan_init_flag = 1;
pub const tm_vulkan_init_flag_TM_VULKAN_INIT_FLAG_VALIDATION: tm_vulkan_init_flag = 2;
pub type tm_vulkan_init_flag = ::std::os::raw::c_int;
pub const tm_vulkan_device_flag_TM_VULKAN_DEVICE_FLAG_DISCRETE: tm_vulkan_device_flag = 1;
pub const tm_vulkan_device_flag_TM_VULKAN_DEVICE_FLAG_INTEGRATED: tm_vulkan_device_flag = 2;
pub type tm_vulkan_device_flag = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vulkan_device_id {
    pub opaque: u32,
}
#[test]
fn bindgen_test_layout_tm_vulkan_device_id() {
    assert_eq!(
        ::std::mem::size_of::<tm_vulkan_device_id>(),
        4usize,
        concat!("Size of: ", stringify!(tm_vulkan_device_id))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vulkan_device_id>(),
        4usize,
        concat!("Alignment of ", stringify!(tm_vulkan_device_id))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vulkan_device_id>())).opaque as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_device_id),
            "::",
            stringify!(opaque)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vulkan_raw_device_access_t {
    pub vk_instance: *mut VkInstance_T,
    pub vk_device: *mut VkDevice_T,
    pub vk_physical_device: *mut VkPhysicalDevice_T,
    pub vk_graphics_queue: *mut VkQueue_T,
    pub vk_graphics_queue_family_index: u32,
    pub _padding_49: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout_tm_vulkan_raw_device_access_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_vulkan_raw_device_access_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_vulkan_raw_device_access_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vulkan_raw_device_access_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_vulkan_raw_device_access_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_device_access_t>())).vk_instance as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_device_access_t),
            "::",
            stringify!(vk_instance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_device_access_t>())).vk_device as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_device_access_t),
            "::",
            stringify!(vk_device)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_device_access_t>())).vk_physical_device as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_device_access_t),
            "::",
            stringify!(vk_physical_device)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_device_access_t>())).vk_graphics_queue as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_device_access_t),
            "::",
            stringify!(vk_graphics_queue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_device_access_t>())).vk_graphics_queue_family_index
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_device_access_t),
            "::",
            stringify!(vk_graphics_queue_family_index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_device_access_t>()))._padding_49 as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_device_access_t),
            "::",
            stringify!(_padding_49)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vulkan_raw_image_buffer_access_t {
    pub vk_format: u32,
    pub vk_msaa_sample_count_flag: u32,
    pub vk_image_view_type: u32,
    pub width: u32,
    pub height: u32,
    pub depth: u32,
    pub layers: u32,
    pub mip_levels: u32,
    pub vk_image: *mut VkImage_T,
}
#[test]
fn bindgen_test_layout_tm_vulkan_raw_image_buffer_access_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_vulkan_raw_image_buffer_access_t>(),
        40usize,
        concat!("Size of: ", stringify!(tm_vulkan_raw_image_buffer_access_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vulkan_raw_image_buffer_access_t>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tm_vulkan_raw_image_buffer_access_t)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).vk_format as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(vk_format)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>()))
                .vk_msaa_sample_count_flag as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(vk_msaa_sample_count_flag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).vk_image_view_type
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(vk_image_view_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).width as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).height as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).depth as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(depth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).layers as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(layers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).mip_levels as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(mip_levels)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_raw_image_buffer_access_t>())).vk_image as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_raw_image_buffer_access_t),
            "::",
            stringify!(vk_image)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vulkan_backend_i {
    pub inst: *mut ::std::os::raw::c_void,
    pub init: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            required_instance_flags: u32,
        ) -> bool,
    >,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void)>,
    pub agnostic_render_backend: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void) -> *mut tm_renderer_backend_i,
    >,
    pub num_physical_devices: ::std::option::Option<
        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, required_device_flags: u32) -> u32,
    >,
    pub physical_device_name: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            device: u32,
            required_device_flags: u32,
            vendor_id: *mut u32,
            device_id: *mut u32,
            driver_ver: *mut u32,
            swap_chain_support: *mut bool,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub physical_device_id: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            device: u32,
            required_device_flags: u32,
            result: *mut tm_vulkan_device_id,
        ) -> bool,
    >,
    pub num_device_groups:
        ::std::option::Option<unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void) -> u32>,
    pub physical_devices_in_group: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            device_group: u32,
            num_physical_devices: *mut u32,
        ) -> *const u32,
    >,
    pub device_group_id: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            device_group: u32,
        ) -> tm_vulkan_device_id,
    >,
    pub create_devices: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            devices: *const tm_vulkan_device_id,
            num_devices: u32,
            device_affinities: *mut u32,
        ) -> bool,
    >,
    pub destroy_devices: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            device_affinities: *const u32,
            num_devices: u32,
        ),
    >,
    pub retrieve_raw_device: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            device_affinity_mask: u32,
            device_access: *mut tm_vulkan_raw_device_access_t,
        ) -> bool,
    >,
    pub retrieve_raw_image_buffer: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut ::std::os::raw::c_void,
            handle: u32,
            device_affinity_mask: u32,
            image_buffer_access: *mut tm_vulkan_raw_image_buffer_access_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_vulkan_backend_i() {
    assert_eq!(
        ::std::mem::size_of::<tm_vulkan_backend_i>(),
        112usize,
        concat!("Size of: ", stringify!(tm_vulkan_backend_i))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vulkan_backend_i>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_vulkan_backend_i))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vulkan_backend_i>())).inst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(inst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vulkan_backend_i>())).init as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vulkan_backend_i>())).shutdown as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(shutdown)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).agnostic_render_backend as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(agnostic_render_backend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).num_physical_devices as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(num_physical_devices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).physical_device_name as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(physical_device_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).physical_device_id as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(physical_device_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).num_device_groups as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(num_device_groups)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).physical_devices_in_group as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(physical_devices_in_group)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).device_group_id as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(device_group_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).create_devices as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(create_devices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).destroy_devices as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(destroy_devices)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).retrieve_raw_device as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(retrieve_raw_device)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_vulkan_backend_i>())).retrieve_raw_image_buffer as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_backend_i),
            "::",
            stringify!(retrieve_raw_image_buffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_vulkan_api {
    pub create_backend: ::std::option::Option<
        unsafe extern "C" fn(
            allocator: *mut tm_allocator_i,
            error: *mut tm_error_i,
        ) -> *mut tm_vulkan_backend_i,
    >,
    pub destroy_backend:
        ::std::option::Option<unsafe extern "C" fn(backend: *mut tm_vulkan_backend_i)>,
    pub shader_compiler:
        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_renderer_shader_compiler_api>,
}
#[test]
fn bindgen_test_layout_tm_vulkan_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_vulkan_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_vulkan_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_vulkan_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_vulkan_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vulkan_api>())).create_backend as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_api),
            "::",
            stringify!(create_backend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vulkan_api>())).destroy_backend as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_api),
            "::",
            stringify!(destroy_backend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_vulkan_api>())).shader_compiler as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_vulkan_api),
            "::",
            stringify!(shader_compiler)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_tab_api {
    pub find_asset_browser:
        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_tt_id_t>,
    pub selected_object: ::std::option::Option<
        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset_browser: tm_tt_id_t) -> tm_tt_id_t,
    >,
    pub set_selection: ::std::option::Option<
        unsafe extern "C" fn(
            ui: *mut tm_ui_o,
            asset_or_dir: tm_tt_id_t,
            undo_scope: tm_tt_undo_scope_t,
        ) -> bool,
    >,
}
#[test]
fn bindgen_test_layout_tm_asset_browser_tab_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_asset_browser_tab_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_asset_browser_tab_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_asset_browser_tab_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_asset_browser_tab_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_tab_api>())).find_asset_browser as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_tab_api),
            "::",
            stringify!(find_asset_browser)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_tab_api>())).selected_object as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_tab_api),
            "::",
            stringify!(selected_object)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_asset_browser_tab_api>())).set_selection as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_asset_browser_tab_api),
            "::",
            stringify!(set_selection)
        )
    );
}
extern "C" {
    pub static mut console_logger: *mut tm_logger_i;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_update_tracker_api {
    pub init: ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
    pub should_show_update_notification:
        ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o) -> bool>,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_update_tracker_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_update_tracker_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_update_tracker_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_update_tracker_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_update_tracker_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_update_tracker_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_update_tracker_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_update_tracker_api>())).should_show_update_notification
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_update_tracker_api),
            "::",
            stringify!(should_show_update_notification)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_update_tracker_api>())).shutdown as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_update_tracker_api),
            "::",
            stringify!(shutdown)
        )
    );
}
pub const TM_TT_PROP__APPLICATION_SETTINGS__UPDATES__LATEST_VERSION: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__APPLICATION_SETTINGS__UPDATES__SKIP_THIS_VERSION: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_231 = ::std::os::raw::c_int;
pub const TM_TT_PROP__APPLICATION_SETTINGS__DOWNLOAD__URL: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__APPLICAITON_SETTINGS__DOWNLOAD__FILE: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__APPLICAITON_SETTINGS__DOWNLOAD__UNZIP_DIRECTORY: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_232 = ::std::os::raw::c_int;
extern "C" {
    pub static mut tm_update_tracker_api: *mut tm_update_tracker_api;
}
extern "C" {
    pub fn import_gltf_asset(
        gltf_file: *const ::std::os::raw::c_char,
        target_dir: tm_tt_id_t,
        a: *mut tm_allocator_i,
        tt: *mut tm_the_truth_o,
        reimport_into: tm_tt_id_t,
        ui: *mut tm_ui_o,
        undo_scope: tm_tt_undo_scope_t,
    ) -> u64;
}
extern "C" {
    pub static mut gltf_asset_io: *mut tm_asset_io_i;
}
extern "C" {
    pub fn import_tab__import_project(tab: *mut tm_tab_o, file: *const ::std::os::raw::c_char);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_integration_test_runner_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(
            app: *mut tm_application_o,
            allocator: *mut tm_allocator_i,
            context: u64,
        ) -> *mut tm_integration_test_runner_o,
    >,
    pub add_test: ::std::option::Option<
        unsafe extern "C" fn(
            runner: *mut tm_integration_test_runner_o,
            name: *const ::std::os::raw::c_char,
        ),
    >,
    pub tick:
        ::std::option::Option<unsafe extern "C" fn(runner: *mut tm_integration_test_runner_o)>,
    pub destroy:
        ::std::option::Option<unsafe extern "C" fn(runner: *mut tm_integration_test_runner_o)>,
}
#[test]
fn bindgen_test_layout_tm_integration_test_runner_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_integration_test_runner_api>(),
        32usize,
        concat!("Size of: ", stringify!(tm_integration_test_runner_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_integration_test_runner_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_integration_test_runner_api))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_api>())).create as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_api>())).add_test as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_api),
            "::",
            stringify!(add_test)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_api>())).tick as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_api),
            "::",
            stringify!(tick)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_integration_test_runner_api>())).destroy as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_integration_test_runner_api),
            "::",
            stringify!(destroy)
        )
    );
}
extern "C" {
    pub static mut tm_integration_test_runner_api: *mut tm_integration_test_runner_api;
}
pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__NONE: tm_login__tab_action = 0;
pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__SHOW: tm_login__tab_action = 1;
pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__FULLSCREEN: tm_login__tab_action = 2;
pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__HIDE: tm_login__tab_action = 3;
pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__QUIT: tm_login__tab_action = 4;
pub type tm_login__tab_action = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_login_update_t {
    pub show_login_tab: bool,
    pub force_focus_login_tab: bool,
}
#[test]
fn bindgen_test_layout_tm_login_update_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_login_update_t>(),
        2usize,
        concat!("Size of: ", stringify!(tm_login_update_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_login_update_t>(),
        1usize,
        concat!("Alignment of ", stringify!(tm_login_update_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_login_update_t>())).show_login_tab as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_login_update_t),
            "::",
            stringify!(show_login_tab)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_login_update_t>())).force_focus_login_tab as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_login_update_t),
            "::",
            stringify!(force_focus_login_tab)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_login_api {
    pub init: ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
    pub update: ::std::option::Option<unsafe extern "C" fn() -> tm_login__tab_action>,
    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
}
#[test]
fn bindgen_test_layout_tm_login_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_login_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_login_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_login_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_login_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_login_api>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_login_api),
            "::",
            stringify!(init)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_login_api>())).update as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_login_api),
            "::",
            stringify!(update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_login_api>())).shutdown as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_login_api),
            "::",
            stringify!(shutdown)
        )
    );
}
extern "C" {
    pub static mut tm_login_api: *mut tm_login_api;
}
extern "C" {
    pub fn menu__new_plugin__editor_tab();
}
extern "C" {
    pub fn menu__new_plugin__entity_component();
}
extern "C" {
    pub fn menu__new_plugin__minimal();
}
extern "C" {
    pub fn load_plugin_templates(reg: *mut tm_api_registry_api, load: bool);
}
extern "C" {
    pub fn profiler_view(tab: *mut tm_tab_o) -> *mut tm_profiler_view_o;
}
extern "C" {
    pub fn properties_tab_set_root_with_mask(
        tab: *mut tm_tab_o,
        tt: *mut tm_the_truth_o,
        root: tm_tt_id_t,
        mask: u64,
    );
}
pub const TM_TT_PROP__SCENE_TAB__ASSET: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SCENE_TAB__SELECTION: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SCENE_TAB__LAST_SELECTED: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SCENE_TAB__PICK_COUNTER: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SCENE_TAB__FRAME_OBJECT: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__SCENE_TAB__HIDDEN: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_233 = ::std::os::raw::c_int;
pub const TM_TT_PROP__SCENE_SETTINGS__ASSET_UUID_A: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__SCENE_SETTINGS__USE_WORLD_AXES: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__SCENE_SETTINGS__MULTI_SELECT_PIVOT: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__SCENE_SETTINGS__MOVE_SNAP: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__SCENE_SETTINGS__MOVE_SNAP_SIZE: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__SCENE_SETTINGS__ROT_SNAP: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__SCENE_SETTINGS__ROT_SNAP_ANGLE: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__SCENE_SETTINGS__SCALE_ABSOLUTE_HANDLE: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_234 = ::std::os::raw::c_int;
extern "C" {
    pub fn scene_tab_truth_object(tab: *mut tm_tab_o) -> tm_tt_id_t;
}
extern "C" {
    pub fn scene_tab_entity_context(tab: *mut tm_tab_o) -> *mut tm_entity_context_o;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct scene_tab_entity_data_t {
    pub entity_ctx: *mut tm_entity_context_o,
    pub camera_controller_manager: *mut tm_camera_controller_component_manager_o,
    pub camera_controller_component: u32,
    pub dcc_asset_component: u32,
    pub camera: tm_entity_t,
    pub entity: tm_entity_t,
}
#[test]
fn bindgen_test_layout_scene_tab_entity_data_t() {
    assert_eq!(
        ::std::mem::size_of::<scene_tab_entity_data_t>(),
        40usize,
        concat!("Size of: ", stringify!(scene_tab_entity_data_t))
    );
    assert_eq!(
        ::std::mem::align_of::<scene_tab_entity_data_t>(),
        8usize,
        concat!("Alignment of ", stringify!(scene_tab_entity_data_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<scene_tab_entity_data_t>())).entity_ctx as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(scene_tab_entity_data_t),
            "::",
            stringify!(entity_ctx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<scene_tab_entity_data_t>())).camera_controller_manager
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(scene_tab_entity_data_t),
            "::",
            stringify!(camera_controller_manager)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<scene_tab_entity_data_t>())).camera_controller_component
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(scene_tab_entity_data_t),
            "::",
            stringify!(camera_controller_component)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<scene_tab_entity_data_t>())).dcc_asset_component as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(scene_tab_entity_data_t),
            "::",
            stringify!(dcc_asset_component)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<scene_tab_entity_data_t>())).camera as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(scene_tab_entity_data_t),
            "::",
            stringify!(camera)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<scene_tab_entity_data_t>())).entity as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(scene_tab_entity_data_t),
            "::",
            stringify!(entity)
        )
    );
}
extern "C" {
    pub fn scene_tab_entity_data(tab: *mut tm_tab_o) -> scene_tab_entity_data_t;
}
extern "C" {
    pub fn scene_tab_viewer_render_args(tab: *mut tm_tab_o, args: *mut tm_viewer_render_args_t);
}
extern "C" {
    pub fn load_scene_tab(reg: *mut tm_api_registry_api, load: bool);
}
extern "C" {
    pub fn simulate_tab_set_show_playback_controls(tab: *mut tm_tab_o, show: bool);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_task_manager_o {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_task_manager_api {
    pub create: ::std::option::Option<
        unsafe extern "C" fn(alloc: *mut tm_allocator_i) -> *mut tm_task_manager_o,
    >,
    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_task_manager_o)>,
    pub ui: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_task_manager_o,
            ui: *mut tm_ui_o,
            id: u64,
            uistyle: *const tm_ui_style_t,
            r: tm_rect_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_task_manager_api() {
    assert_eq!(
        ::std::mem::size_of::<tm_task_manager_api>(),
        24usize,
        concat!("Size of: ", stringify!(tm_task_manager_api))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_task_manager_api>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_task_manager_api))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_manager_api>())).create as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_manager_api),
            "::",
            stringify!(create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_manager_api>())).destroy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_manager_api),
            "::",
            stringify!(destroy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_task_manager_api>())).ui as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_task_manager_api),
            "::",
            stringify!(ui)
        )
    );
}
extern "C" {
    pub static mut tm_global_api_registry: *mut tm_api_registry_api;
}
extern "C" {
    pub static mut tm_allocator_api: *mut tm_allocator_api;
}
extern "C" {
    pub static mut tm_buffer_format_api: *mut tm_buffer_format_api;
}
extern "C" {
    pub static mut tm_collaboration_api: *mut tm_collaboration_api;
}
extern "C" {
    pub static mut tm_config_api: *mut tm_config_api;
}
extern "C" {
    pub static mut tm_error_api: *mut tm_error_api;
}
extern "C" {
    pub static mut tm_image_loader_api: *mut tm_image_loader_api;
}
extern "C" {
    pub static mut tm_input_api: *mut tm_input_api;
}
extern "C" {
    pub static mut tm_json_api: *mut tm_json_api;
}
extern "C" {
    pub static mut tm_localizer_api: *mut tm_localizer_api;
}
extern "C" {
    pub static mut tm_logger_api: *mut tm_logger_api;
}
extern "C" {
    pub static mut tm_memory_tracker_api: *mut tm_memory_tracker_api;
}
extern "C" {
    pub static mut tm_os_api: *mut tm_os_api;
}
extern "C" {
    pub static mut tm_path_api: *mut tm_path_api;
}
extern "C" {
    pub static mut tm_plugins_api: *mut tm_plugins_api;
}
extern "C" {
    pub static mut tm_profiler_api: *mut tm_profiler_api;
}
extern "C" {
    pub static mut tm_task_system_api: *mut tm_task_system_api;
}
extern "C" {
    pub static mut tm_temp_allocator_api: *mut tm_temp_allocator_api;
}
extern "C" {
    pub static mut tm_the_truth_api: *mut tm_the_truth_api;
}
extern "C" {
    pub static mut tm_the_truth_assets_api: *mut tm_the_truth_assets_api;
}
extern "C" {
    pub static mut tm_the_truth_common_types_api: *mut tm_the_truth_common_types_api;
}
extern "C" {
    pub static mut tm_unicode_api: *mut tm_unicode_api;
}
extern "C" {
    pub static mut tm_feature_flags_api: *mut tm_feature_flags_api;
}
extern "C" {
    pub static mut tm_camera_api: *mut tm_camera_api;
}
extern "C" {
    pub static mut tm_progress_report_api: *mut tm_progress_report_api;
}
extern "C" {
    pub static mut tm_asset_browser_api: *mut tm_asset_browser_api;
}
extern "C" {
    pub static mut tm_asset_io_api: *mut tm_asset_io_api;
}
extern "C" {
    pub static mut tm_dcc_asset_api: *mut tm_dcc_asset_api;
}
extern "C" {
    pub static mut tm_default_render_pipe_api: *mut tm_default_render_pipe_api;
}
extern "C" {
    pub static mut tm_docking_api: *mut tm_docking_api;
}
extern "C" {
    pub static mut tm_draw2d_api: *mut tm_draw2d_api;
}
extern "C" {
    pub static mut tm_entity_api: *mut tm_entity_api;
}
extern "C" {
    pub static mut tm_font_api: *mut tm_font_api;
}
extern "C" {
    pub static mut tm_graph_api: *mut tm_graph_api;
}
extern "C" {
    pub static mut tm_grid_renderer_api: *mut tm_grid_renderer_api;
}
extern "C" {
    pub static mut tm_job_system_api: *mut tm_job_system_api;
}
extern "C" {
    pub static mut tm_link_component_api: *mut tm_link_component_api;
}
extern "C" {
    pub static mut tm_os_display_api: *mut tm_os_display_api;
}
extern "C" {
    pub static mut tm_os_window_api: *mut tm_os_window_api;
}
extern "C" {
    pub static mut tm_owner_component_api: *mut tm_owner_component_api;
}
extern "C" {
    pub static mut tm_primitive_drawer_api: *mut tm_primitive_drawer_api;
}
extern "C" {
    pub static mut tm_profiler_view_api: *mut tm_profiler_view_api;
}
extern "C" {
    pub static mut tm_properties_view_api: *mut tm_properties_view_api;
}
extern "C" {
    pub static mut tm_render_graph_api: *mut tm_render_graph_api;
}
extern "C" {
    pub static mut tm_render_graph_module_api: *mut tm_render_graph_module_api;
}
extern "C" {
    pub static mut tm_renderer_init_api: *mut tm_renderer_init_api;
}
extern "C" {
    pub static mut tm_shader_api: *mut tm_shader_api;
}
extern "C" {
    pub static mut tm_shader_declaration_api: *mut tm_shader_declaration_api;
}
extern "C" {
    pub static mut tm_shader_repository_api: *mut tm_shader_repository_api;
}
extern "C" {
    pub static mut tm_shader_system_api: *mut tm_shader_system_api;
}
extern "C" {
    pub static mut tm_shape3d_api: *mut tm_shape3d_api;
}
extern "C" {
    pub static mut tm_ui_api: *mut tm_ui_api;
}
extern "C" {
    pub static mut tm_ui_drag_api: *mut tm_ui_drag_api;
}
extern "C" {
    pub static mut tm_ui_renderer_api: *mut tm_ui_renderer_api;
}
extern "C" {
    pub static mut tm_vulkan_api: *mut tm_vulkan_api;
}
extern "C" {
    pub static mut tm_gpu_picking_api: *mut tm_gpu_picking_api;
}
extern "C" {
    pub static mut tm_visibility_flags_api: *mut tm_visibility_flags_api;
}
extern "C" {
    pub static mut tm_viewer_api: *mut tm_viewer_api;
}
extern "C" {
    pub static mut tm_viewer_manager_api: *mut tm_viewer_manager_api;
}
extern "C" {
    pub static mut tm_frustum_culling_api: *mut tm_frustum_culling_api;
}
extern "C" {
    pub static mut tm_render_context_api: *mut tm_render_context_api;
}
extern "C" {
    pub static mut tm_camera_controller_component_api: *mut tm_camera_controller_component_api;
}
extern "C" {
    pub static mut tm_scene_common_api: *mut tm_scene_common_api;
}
extern "C" {
    pub static mut tm_task_manager_api: *mut tm_task_manager_api;
}
extern "C" {
    pub static mut tm_gltf_api_opt: *mut tm_gltf_api;
}
extern "C" {
    pub static mut tm_openvr_api_opt: *mut tm_openvr_api;
}
extern "C" {
    pub static mut tm_cmd_buf_api: *mut tm_renderer_command_buffer_api;
}
extern "C" {
    pub static mut tm_res_buf_api: *mut tm_renderer_resource_command_buffer_api;
}
extern "C" {
    pub fn app_open_asset(
        app: *mut tm_application_o,
        ui: *mut tm_ui_o,
        from_tab: *mut tm_tab_i,
        asset: tm_tt_id_t,
    );
}
extern "C" {
    pub fn app_get_asset_root(app: *mut tm_application_o) -> tm_tt_id_t;
}
extern "C" {
    pub fn app_reimport_asset(
        app: *mut tm_application_o,
        ui: *mut tm_ui_o,
        tt: *mut tm_the_truth_o,
        asset: tm_tt_id_t,
    );
}
extern "C" {
    pub fn app_create_or_select_tab(
        app: *mut tm_application_o,
        ui: *mut tm_ui_o,
        vt_name: *const ::std::os::raw::c_char,
        opt: *const tm_docking_find_tab_opt_t,
    ) -> *mut tm_tab_i;
}
extern "C" {
    pub fn app_window_for_ui(app: *mut tm_application_o, ui: *const tm_ui_o) -> *mut tm_window_o;
}
extern "C" {
    pub fn app_collaboration(app: *mut tm_application_o) -> *mut tm_collaboration_o;
}
extern "C" {
    pub fn app_collaboration_p2p(app: *mut tm_application_o) -> *mut tm_collaboration_p2p_o;
}
extern "C" {
    pub fn app_collaboration_discord(app: *mut tm_application_o)
        -> *mut tm_collaboration_discord_o;
}
pub const TM_TT_PROP__APPLICATION_SETTINGS__CAMERA_SETTINGS: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__APPLICATION_SETTINGS__GRID_SETTINGS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__APPLICATION_SETTINGS__WINDOW_LAYOUTS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__APPLICATION_SETTINGS__RECENT_FILES: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__APPLICATION_SETTINGS__ANALYTICS_CLIENT_ID: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__APPLICATION_SETTINGS__INTERFACE_SETTINGS: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__APPLICATION_SETTINGS__UI_THEMES: ::std::os::raw::c_int = 6;
pub const TM_TT_PROP__APPLICATION_SETTINGS__UI_THEME: ::std::os::raw::c_int = 7;
pub const TM_TT_PROP__APPLICATION_SETTINGS__BUILTIN_UI_THEME: ::std::os::raw::c_int = 8;
pub const TM_TT_PROP__APPLICATION_SETTINGS__PROJECTS_SETTINGS: ::std::os::raw::c_int = 9;
pub const TM_TT_PROP__APPLICATION_SETTINGS__UPDATES: ::std::os::raw::c_int = 10;
pub const TM_TT_PROP__APPLICATION_SETTINGS__DOWNLOADS: ::std::os::raw::c_int = 11;
pub const TM_TT_PROP__APPLICATION_SETTINGS__LAST_OPENED_PROJECT: ::std::os::raw::c_int = 12;
pub const TM_TT_PROP__APPLICATION_SETTINGS__OPEN_EMPTY_PROJECT_ON_STARTUP: ::std::os::raw::c_int =
    13;
pub const TM_TT_PROP__APPLICATION_SETTINGS__DOCKING_SETTINGS: ::std::os::raw::c_int = 14;
pub type _bindgen_ty_235 = ::std::os::raw::c_int;
pub const TM_TT_PROP__INTERFACE_SETTINGS__RESOLUTION_SCALE: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_236 = ::std::os::raw::c_int;
pub const TM_TT_PROP__WINDOW_LAYOUTS__LAYOUTS: ::std::os::raw::c_int = 0;
pub type _bindgen_ty_237 = ::std::os::raw::c_int;
pub const TM_TT_PROP__WINDOW_LAYOUT__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__WINDOW_LAYOUT__CREATE_ON_STARTUP: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_X: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_Y: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_WIDTH: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_HEIGHT: ::std::os::raw::c_int = 5;
pub const TM_TT_PROP__WINDOW_LAYOUT__TABWELL: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_238 = ::std::os::raw::c_int;
pub const TM_TT_PROP__RECENT_FILE__PATH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__RECENT_FILE__TIME_STAMP: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_239 = ::std::os::raw::c_int;
pub const TM_TT_PROP__TABWELL__LEFT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__TABWELL__RIGHT: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__TABWELL__TOP: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__TABWELL__BOTTOM: ::std::os::raw::c_int = 3;
pub const TM_TT_PROP__TABWELL__BIAS: ::std::os::raw::c_int = 4;
pub const TM_TT_PROP__TABWELL__VIEWS: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_240 = ::std::os::raw::c_int;
pub const TM_TT_PROP__TAB_VIEW__NAME: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__TAB_VIEW__SORT_INDEX: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_241 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PUBLISH_SETTINGS__DIRECTORY_PROJECT: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PUBLISH_SETTINGS__EXECUTABLE_NAME: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PUBLISH_SETTINGS__WINDOW_TITLE: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__PUBLISH_SETTINGS__WORLD_ENTITY: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_242 = ::std::os::raw::c_int;
pub const TM_TT_PROP__PROJECT_SETTINGS__PATH: ::std::os::raw::c_int = 0;
pub const TM_TT_PROP__PROJECT_SETTINGS__GRAPHS_SETTINGS: ::std::os::raw::c_int = 1;
pub const TM_TT_PROP__PROJECT_SETTINGS__SCENES_SETTINGS: ::std::os::raw::c_int = 2;
pub const TM_TT_PROP__PROJECT_SETTINGS__PUBLISH_SETTINGS: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_243 = ::std::os::raw::c_int;
extern "C" {
    pub fn app_settings(app: *mut tm_application_o, id: *mut tm_tt_id_t) -> *mut tm_the_truth_o;
}
extern "C" {
    pub fn app_project_settings(
        app: *mut tm_application_o,
        id: *mut tm_tt_id_t,
    ) -> *mut tm_the_truth_o;
}
extern "C" {
    pub fn app_open_project(
        app: *mut tm_application_o,
        ui: *mut tm_ui_o,
        path: *const ::std::os::raw::c_char,
    ) -> bool;
}
extern "C" {
    pub fn app_open_any_project(app: *mut tm_application_o, file: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn app_save_to_asset_database(
        app: *mut tm_application_o,
        file: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn app_import_asset(app: *mut tm_application_o, file: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn app_save_all(app: *mut tm_application_o);
}
extern "C" {
    pub fn app_get_truth(app: *mut tm_application_o) -> *mut tm_the_truth_o;
}
extern "C" {
    pub fn app_new_project(app: *mut tm_application_o);
}
extern "C" {
    pub static mut tm_application_api: *mut tm_application_api;
}
extern "C" {
    pub fn create_localizer(a: *mut tm_allocator_i) -> *mut tm_localizer_o;
}
extern "C" {
    pub fn destroy_localizer(loc: *mut tm_localizer_o);
}
extern "C" {
    pub fn localizer_language(loc: *mut tm_localizer_o) -> u64;
}
extern "C" {
    pub fn localizer_set_language(loc: *mut tm_localizer_o, lang: u64);
}
extern "C" {
    pub fn localizer_interface(loc: *mut tm_localizer_o) -> *mut tm_localizer_i;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_tab_create_context_t {
    pub allocator: *mut tm_allocator_i,
    pub id: *mut u64,
    pub application: *mut tm_application_o,
    pub tt: *mut tm_the_truth_o,
    pub undo_stack: *mut tm_undo_stack_i,
    pub save_interface: *mut tm_asset_save_i,
    pub ui_renderer: *mut tm_ui_renderer_o,
}
#[test]
fn bindgen_test_layout_tm_tab_create_context_t() {
    assert_eq!(
        ::std::mem::size_of::<tm_tab_create_context_t>(),
        56usize,
        concat!("Size of: ", stringify!(tm_tab_create_context_t))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_tab_create_context_t>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_tab_create_context_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_create_context_t>())).allocator as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_create_context_t),
            "::",
            stringify!(allocator)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_create_context_t>())).id as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_create_context_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_create_context_t>())).application as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_create_context_t),
            "::",
            stringify!(application)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_tab_create_context_t>())).tt as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_create_context_t),
            "::",
            stringify!(tt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_create_context_t>())).undo_stack as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_create_context_t),
            "::",
            stringify!(undo_stack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_create_context_t>())).save_interface as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_create_context_t),
            "::",
            stringify!(save_interface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_tab_create_context_t>())).ui_renderer as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_tab_create_context_t),
            "::",
            stringify!(ui_renderer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_the_machinery_tab_vt {
    pub __bindgen_padding_0: [u64; 16usize],
    pub menu_title: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tab_o,
            ui: *mut tm_ui_o,
        ) -> *const ::std::os::raw::c_char,
    >,
    pub menu: ::std::option::Option<
        unsafe extern "C" fn(
            inst: *mut tm_tab_o,
            ui: *mut tm_ui_o,
            uistyle: *const tm_ui_style_t,
            submenu_pos: tm_vec2_t,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_the_machinery_tab_vt() {
    assert_eq!(
        ::std::mem::size_of::<tm_the_machinery_tab_vt>(),
        144usize,
        concat!("Size of: ", stringify!(tm_the_machinery_tab_vt))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_the_machinery_tab_vt>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_the_machinery_tab_vt))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_the_machinery_tab_vt>())).menu_title as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_machinery_tab_vt),
            "::",
            stringify!(menu_title)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm_the_machinery_tab_vt>())).menu as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_the_machinery_tab_vt),
            "::",
            stringify!(menu)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_preview_tab_vt {
    pub __bindgen_padding_0: [u64; 18usize],
    pub preview_entity: ::std::option::Option<
        unsafe extern "C" fn(tab: *mut tm_tab_o, e: *mut tm_entity_t) -> *mut tm_entity_context_o,
    >,
}
#[test]
fn bindgen_test_layout_tm_preview_tab_vt() {
    assert_eq!(
        ::std::mem::size_of::<tm_preview_tab_vt>(),
        152usize,
        concat!("Size of: ", stringify!(tm_preview_tab_vt))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_preview_tab_vt>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_preview_tab_vt))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_preview_tab_vt>())).preview_entity as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_preview_tab_vt),
            "::",
            stringify!(preview_entity)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_graph_tab_vt {
    pub __bindgen_padding_0: [u64; 18usize],
    pub refresh_node_types: ::std::option::Option<
        unsafe extern "C" fn(
            tab: *mut tm_tab_o,
            node_interface_name: *const ::std::os::raw::c_char,
        ),
    >,
}
#[test]
fn bindgen_test_layout_tm_graph_tab_vt() {
    assert_eq!(
        ::std::mem::size_of::<tm_graph_tab_vt>(),
        152usize,
        concat!("Size of: ", stringify!(tm_graph_tab_vt))
    );
    assert_eq!(
        ::std::mem::align_of::<tm_graph_tab_vt>(),
        8usize,
        concat!("Alignment of ", stringify!(tm_graph_tab_vt))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tm_graph_tab_vt>())).refresh_node_types as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tm_graph_tab_vt),
            "::",
            stringify!(refresh_node_types)
        )
    );
}
pub type __builtin_va_list = *mut ::std::os::raw::c_char;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_viewer_manager_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_io_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_plugin_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_string_repository_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_temp_allocator_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_hash32_t {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_animation_player_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_creation_graph_instance_data_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_create_asset_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_open_asset_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_add_asset_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_browser_select_asset_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_preview_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm_asset_scene_o {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkInstance_T {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkDevice_T {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkPhysicalDevice_T {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkQueue_T {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkImage_T {
    pub _address: u8,
}
