tm_sys/
ffi.rs

1/* automatically generated by rust-bindgen 0.56.0 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage, Align> {
6    storage: Storage,
7    align: [Align; 0],
8}
9impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
10    #[inline]
11    pub const fn new(storage: Storage) -> Self {
12        Self { storage, align: [] }
13    }
14}
15impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
16where
17    Storage: AsRef<[u8]> + AsMut<[u8]>,
18{
19    #[inline]
20    pub fn get_bit(&self, index: usize) -> bool {
21        debug_assert!(index / 8 < self.storage.as_ref().len());
22        let byte_index = index / 8;
23        let byte = self.storage.as_ref()[byte_index];
24        let bit_index = if cfg!(target_endian = "big") {
25            7 - (index % 8)
26        } else {
27            index % 8
28        };
29        let mask = 1 << bit_index;
30        byte & mask == mask
31    }
32    #[inline]
33    pub fn set_bit(&mut self, index: usize, val: bool) {
34        debug_assert!(index / 8 < self.storage.as_ref().len());
35        let byte_index = index / 8;
36        let byte = &mut self.storage.as_mut()[byte_index];
37        let bit_index = if cfg!(target_endian = "big") {
38            7 - (index % 8)
39        } else {
40            index % 8
41        };
42        let mask = 1 << bit_index;
43        if val {
44            *byte |= mask;
45        } else {
46            *byte &= !mask;
47        }
48    }
49    #[inline]
50    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
51        debug_assert!(bit_width <= 64);
52        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
53        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
54        let mut val = 0;
55        for i in 0..(bit_width as usize) {
56            if self.get_bit(i + bit_offset) {
57                let index = if cfg!(target_endian = "big") {
58                    bit_width as usize - 1 - i
59                } else {
60                    i
61                };
62                val |= 1 << index;
63            }
64        }
65        val
66    }
67    #[inline]
68    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
69        debug_assert!(bit_width <= 64);
70        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
71        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
72        for i in 0..(bit_width as usize) {
73            let mask = 1 << i;
74            let val_bit_is_set = val & mask == mask;
75            let index = if cfg!(target_endian = "big") {
76                bit_width as usize - 1 - i
77            } else {
78                i
79            };
80            self.set_bit(index + bit_offset, val_bit_is_set);
81        }
82    }
83}
84#[repr(C)]
85#[derive(Default)]
86pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
87impl<T> __IncompleteArrayField<T> {
88    #[inline]
89    pub const fn new() -> Self {
90        __IncompleteArrayField(::std::marker::PhantomData, [])
91    }
92    #[inline]
93    pub fn as_ptr(&self) -> *const T {
94        self as *const _ as *const T
95    }
96    #[inline]
97    pub fn as_mut_ptr(&mut self) -> *mut T {
98        self as *mut _ as *mut T
99    }
100    #[inline]
101    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
102        ::std::slice::from_raw_parts(self.as_ptr(), len)
103    }
104    #[inline]
105    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
106        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
107    }
108}
109impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
110    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
111        fmt.write_str("__IncompleteArrayField")
112    }
113}
114pub const __GNUC_VA_LIST: u32 = 1;
115pub const true_: u32 = 1;
116pub const false_: u32 = 0;
117pub const __bool_true_false_are_defined: u32 = 1;
118pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
119pub const _SAL_VERSION: u32 = 20;
120pub const __SAL_H_VERSION: u32 = 180000000;
121pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
122pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
123pub const _CRT_PACKING: u32 = 8;
124pub const _HAS_EXCEPTIONS: u32 = 1;
125pub const _STL_LANG: u32 = 0;
126pub const _HAS_CXX17: u32 = 0;
127pub const _HAS_CXX20: u32 = 0;
128pub const _HAS_NODISCARD: u32 = 0;
129pub const WCHAR_MIN: u32 = 0;
130pub const WCHAR_MAX: u32 = 65535;
131pub const WINT_MIN: u32 = 0;
132pub const WINT_MAX: u32 = 65535;
133pub const TM_ALLOCATOR_API_NAME: &'static [u8; 17usize] = b"tm_allocator_api\0";
134pub const TM_API_REGISTRY_API_NAME: &'static [u8; 20usize] = b"tm_api_registry_api\0";
135pub const TM_APPLICATION_API_NAME: &'static [u8; 19usize] = b"tm_application_api\0";
136pub const TM_ASSET_DATABASE_API_NAME: &'static [u8; 22usize] = b"tm_asset_database_api\0";
137pub const TM_ASSET_IO_API_NAME: &'static [u8; 16usize] = b"tm_asset_io_api\0";
138pub const TM_BASE_64_API_NAME: &'static [u8; 15usize] = b"tm_base_64_api\0";
139pub const TM_BUDDY_ALLOCATOR_RAW_API_NAME: &'static [u8; 27usize] = b"tm_buddy_allocator_raw_api\0";
140pub const TM_BUDDY_ALLOCATOR_API_NAME: &'static [u8; 23usize] = b"tm_buddy_allocator_api\0";
141pub const TM_BUFFERS_API_NAME: &'static [u8; 15usize] = b"tm_buffers_api\0";
142pub const TM_BUFFER_FORMAT_API_NAME: &'static [u8; 21usize] = b"tm_buffer_format_api\0";
143pub const TM_CAMERA_API_NAME: &'static [u8; 14usize] = b"tm_camera_api\0";
144pub const TM_COLLABORATION_API_NAME: &'static [u8; 21usize] = b"tm_collaboration_api\0";
145pub const TM_COLLABORATION_P2P_API_NAME: &'static [u8; 25usize] = b"tm_collaboration_p2p_api\0";
146pub const TM_CONFIG_API_NAME: &'static [u8; 14usize] = b"tm_config_api\0";
147pub const TM_CORE_ASSET_INTERFACE_NAME: &'static [u8; 16usize] = b"tm_core_asset_i\0";
148pub const TM_CORE_API_NAME: &'static [u8; 12usize] = b"tm_core_api\0";
149pub const TM_CORE_IMPORTER_API_NAME: &'static [u8; 21usize] = b"tm_core_importer_api\0";
150pub const TM_CRASH_RECOVERY_API_NAME: &'static [u8; 22usize] = b"tm_crash_recovery_api\0";
151pub const TM_ERROR_API_NAME: &'static [u8; 13usize] = b"tm_error_api\0";
152pub const TM_FEATURE_FLAGS_API_NAME: &'static [u8; 17usize] = b"tm_feature_flags\0";
153pub const TM_GIT_IGNORE_API_NAME: &'static [u8; 18usize] = b"tm_git_ignore_api\0";
154pub const TM_IMAGE_LOADER_API_NAME: &'static [u8; 20usize] = b"tm_image_loader_api\0";
155pub const TM_INPUT_API_NAME: &'static [u8; 13usize] = b"tm_input_api\0";
156pub const TM_INTEGRATION_TEST_INTERFACE_NAME: &'static [u8; 22usize] = b"tm_integration_test_i\0";
157pub const TM_JOB_SYSTEM_API_NAME: &'static [u8; 18usize] = b"tm_job_system_api\0";
158pub const TM_JSON_ERROR_STRING_LENGTH: u32 = 79;
159pub const TM_JSON_API_NAME: &'static [u8; 12usize] = b"tm_json_api\0";
160pub const TM_LOCALIZER_STRINGS_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_localizer_strings_i\0";
161pub const TM_LOCALIZER_API_NAME: &'static [u8; 17usize] = b"tm_localizer_api\0";
162pub const TM_LOGGER_API_NAME: &'static [u8; 14usize] = b"tm_logger_api\0";
163pub const TM_LZ4_API_NAME: &'static [u8; 11usize] = b"tm_lz4_api\0";
164pub const TM_MATH_API_NAME: &'static [u8; 12usize] = b"tm_math_api\0";
165pub const TM_MEMORY_TRACKER_SCOPE__NONE: u32 = 4294967295;
166pub const TM_MEMORY_TRACKER_API_NAME: &'static [u8; 22usize] = b"tm_memory_tracker_api\0";
167pub const TM_OS_API_NAME: &'static [u8; 10usize] = b"tm_os_api\0";
168pub const TM_DIRECTORY_SEPARATOR: u8 = 47u8;
169pub const TM_PATH_API_NAME: &'static [u8; 12usize] = b"tm_path_api\0";
170pub const TM_PLUGINS_API_NAME: &'static [u8; 15usize] = b"tm_plugins_api\0";
171pub const TM_PLUGIN_INIT_INTERFACE_NAME: &'static [u8; 17usize] = b"tm_plugin_init_i\0";
172pub const TM_PLUGIN_SHUTDOWN_INTERFACE_NAME: &'static [u8; 21usize] = b"tm_plugin_shutdown_i\0";
173pub const TM_PLUGIN_TICK_INTERFACE_NAME: &'static [u8; 17usize] = b"tm_plugin_tick_i\0";
174pub const TM_PLUGIN_SET_THE_TRUTH_INTERFACE_NAME: &'static [u8; 26usize] =
175    b"tm_plugin_set_the_truth_i\0";
176pub const TM_PROFILER_API_NAME: &'static [u8; 16usize] = b"tm_profiler_api\0";
177pub const TM_PROGRESS_REPORT_API_NAME: &'static [u8; 23usize] = b"tm_progress_report_api\0";
178pub const TM_RANDOM_API_NAME: &'static [u8; 14usize] = b"tm_random_api\0";
179pub const TM_RUNTIME_DATA_REPOSITORY_API_NAME: &'static [u8; 31usize] =
180    b"tm_runtime_data_repository_api\0";
181pub const SHA1_DIGEST_SIZE: u32 = 20;
182pub const TM_STRING_REPOSITORY_API_NAME: &'static [u8; 25usize] = b"tm_string_repository_api\0";
183pub const TM_TASK_SYSTEM_API_NAME: &'static [u8; 19usize] = b"tm_task_system_api\0";
184pub const TM_TEMP_ALLOCATOR_API_NAME: &'static [u8; 22usize] = b"tm_temp_allocator_api\0";
185pub const TM_THE_TRUTH_PROPERTY_NAME_LENGTH: u32 = 63;
186pub const TM_THE_TRUTH_CREATE_TYPES_INTERFACE_NAME: &'static [u8; 28usize] =
187    b"tm_the_truth_create_types_i\0";
188pub const TM_THE_TRUTH_API_NAME: &'static [u8; 17usize] = b"tm_the_truth_api\0";
189pub const TM_TT_TYPE__ASSET_ROOT: &'static [u8; 14usize] = b"tm_asset_root\0";
190pub const TM_TT_TYPE__ASSET: &'static [u8; 9usize] = b"tm_asset\0";
191pub const TM_TT_TYPE__ASSET_DIRECTORY: &'static [u8; 19usize] = b"tm_asset_directory\0";
192pub const TM_TT_TYPE__ASSET_TAG: &'static [u8; 13usize] = b"tm_asset_tag\0";
193pub const TM_ASSET_TAG_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_asset_tag_interface\0";
194pub const TM_THE_TRUTH_ASSETS_API_NAME: &'static [u8; 24usize] = b"tm_the_truth_assets_api\0";
195pub const TM_THE_TRUTH_MIGRATION_INTERFACE_NAME: &'static [u8; 25usize] =
196    b"tm_the_truth_migration_i\0";
197pub const TM_THE_TRUTH_MIGRATION_API_NAME: &'static [u8; 27usize] = b"tm_the_truth_migration_api\0";
198pub const TM_TT_TYPE__BOOL: &'static [u8; 8usize] = b"tm_bool\0";
199pub const TM_TT_TYPE__UINT32_T: &'static [u8; 12usize] = b"tm_uint32_t\0";
200pub const TM_TT_TYPE__UINT64_T: &'static [u8; 12usize] = b"tm_uint64_t\0";
201pub const TM_TT_TYPE__FLOAT: &'static [u8; 9usize] = b"tm_float\0";
202pub const TM_TT_TYPE__DOUBLE: &'static [u8; 10usize] = b"tm_double\0";
203pub const TM_TT_TYPE__STRING: &'static [u8; 10usize] = b"tm_string\0";
204pub const TM_TT_TYPE__VEC2: &'static [u8; 10usize] = b"tm_vec2_t\0";
205pub const TM_TT_TYPE__VEC3: &'static [u8; 10usize] = b"tm_vec3_t\0";
206pub const TM_TT_TYPE__VEC4: &'static [u8; 10usize] = b"tm_vec4_t\0";
207pub const TM_TT_TYPE__POSITION: &'static [u8; 12usize] = b"tm_position\0";
208pub const TM_TT_TYPE__ROTATION: &'static [u8; 12usize] = b"tm_rotation\0";
209pub const TM_TT_TYPE__SCALE: &'static [u8; 9usize] = b"tm_scale\0";
210pub const TM_TT_TYPE__COLOR_RGB: &'static [u8; 13usize] = b"tm_color_rgb\0";
211pub const TM_TT_TYPE__COLOR_RGBA: &'static [u8; 14usize] = b"tm_color_rgba\0";
212pub const TM_TT_TYPE__RECT: &'static [u8; 10usize] = b"tm_rect_t\0";
213pub const TM_THE_TRUTH_COMMON_TYPES_API_NAME: &'static [u8; 30usize] =
214    b"tm_the_truth_common_types_api\0";
215pub const TM_UNICODE_API_NAME: &'static [u8; 15usize] = b"tm_unicode_api\0";
216pub const tm_unicode__dotted_cross: &'static [u8; 4usize] = b"\xE2\x81\x9C\0";
217pub const tm_unicode__rightwards_arrow: &'static [u8; 4usize] = b"\xE2\x86\x92\0";
218pub const tm_unicode__empty_set: &'static [u8; 4usize] = b"\xE2\x88\x85\0";
219pub const tm_unicode__black_down_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x96\xBC\0";
220pub const tm_unicode__black_up_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x96\xB2\0";
221pub const tm_unicode__black_right_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x96\xB6\0";
222pub const tm_unicode__black_left_pointing_triangle: &'static [u8; 4usize] = b"\xE2\x97\x80\0";
223pub const tm_unicode__die_face_1: &'static [u8; 4usize] = b"\xE2\x9A\x80\0";
224pub const tm_unicode__neuter: &'static [u8; 4usize] = b"\xE2\x9A\xB2\0";
225pub const tm_unicode__check_mark: &'static [u8; 4usize] = b"\xE2\x9C\x93\0";
226pub const tm_unicode__multiplication_x: &'static [u8; 4usize] = b"\xE2\x9C\x95\0";
227pub const tm_unicode__heavy_multiplication_x: &'static [u8; 4usize] = b"\xE2\x9C\x96\0";
228pub const tm_unicode__earth: &'static [u8; 5usize] = b"\xF0\x9F\x8C\x8F\0";
229pub const tm_unicode__house: &'static [u8; 5usize] = b"\xF0\x9F\x8F\xA0\0";
230pub const tm_unicode__original_of: &'static [u8; 4usize] = b"\xE2\x8A\xB6\0";
231pub const tm_unicode__image_of: &'static [u8; 4usize] = b"\xE2\x8A\xB7\0";
232pub const tm_unicode__circle_dot_operator: &'static [u8; 4usize] = b"\xE2\x8A\x99\0";
233pub const tm_unicode__triangular_ruler: &'static [u8; 5usize] = b"\xF0\x9F\x93\x90\0";
234pub const tm_unicode__straight_ruler: &'static [u8; 5usize] = b"\xF0\x9F\x93\x8F\0";
235pub const tm_unicode__maximize: &'static [u8; 5usize] = b"\xF0\x9F\x97\x96\0";
236pub const tm_unicode__overlap: &'static [u8; 5usize] = b"\xF0\x9F\x97\x97\0";
237pub const tm_unicode__plus_minus: &'static [u8; 3usize] = b"\xC2\xB1\0";
238pub const tm_unicode__camera: &'static [u8; 5usize] = b"\xF0\x9F\x93\xB7\0";
239pub const tm_unicode__electric_light_blub: &'static [u8; 5usize] = b"\xF0\x9F\x92\xA1\0";
240pub const tm_unicode__horizontal_ellipsis: &'static [u8; 4usize] = b"\xE2\x80\xA6\0";
241pub const tm_unicode__heavy_plus_sign: &'static [u8; 4usize] = b"\xE2\x9E\x95\0";
242pub const tm_unicode__rightwards_arrow_to_bar: &'static [u8; 4usize] = b"\xE2\x87\xA5\0";
243pub const tm_unicode__right_angle_with_arc: &'static [u8; 4usize] = b"\xE2\x8A\xBE\0";
244pub const tm_unicode__refresh: &'static [u8; 5usize] = b"\xF0\x9F\x97\x98\0";
245pub const tm_unicode__wrench_hammer: &'static [u8; 5usize] = b"\xF0\x9F\x9B\xA0\0";
246pub const tm_unicode__wrench: &'static [u8; 5usize] = b"\xF0\x9F\x94\xA7\0";
247pub const tm_unicode__zzz: &'static [u8; 5usize] = b"\xF0\x9F\x92\xA4\0";
248pub const tm_unicode__magnifying_glass_left: &'static [u8; 5usize] = b"\xF0\x9F\x94\x8D\0";
249pub const tm_unicode__eye: &'static [u8; 5usize] = b"\xF0\x9F\x91\x81\0";
250pub const tm_unicode__gear: &'static [u8; 4usize] = b"\xE2\x9A\x99\0";
251pub const tm_unicode__copyright: &'static [u8; 3usize] = b"\xC2\xA9\0";
252pub const tm_unicode__leftwards_heavy_arrow: &'static [u8; 5usize] = b"\xF0\x9F\xA1\x84\0";
253pub const tm_unicode__rightwards_heavy_arrow: &'static [u8; 5usize] = b"\xF0\x9F\xA1\x86\0";
254pub const TM_UNIT_TEST_INTERFACE_NAME: &'static [u8; 15usize] = b"tm_unit_test_i\0";
255pub const TM_VISIBILITY_FLAGS_EDITOR_INTERFACE_NAME: &'static [u8; 28usize] =
256    b"tm_visibility_editor_name_i\0";
257pub const TM_VISIBILITY_FLAGS_CONTEXT_INTERFACE_NAME: &'static [u8; 24usize] =
258    b"tm_visibility_context_o\0";
259pub const TM_VISIBILITY_FLAGS_API_NAME: &'static [u8; 24usize] = b"tm_visibility_flags_api\0";
260pub const TM_TT_TYPE__VISIBILITY_FLAG: &'static [u8; 19usize] = b"tm_visibility_flag\0";
261pub const TM_WEB_SOCKET_PROTOCOL_API_NAME: &'static [u8; 27usize] = b"tm_web_socket_protocol_api\0";
262pub const TM_WEB_TALKER_API_NAME: &'static [u8; 18usize] = b"tm_web_talker_api\0";
263pub const TM_ANALYTICS_API_NAME: &'static [u8; 17usize] = b"tm_analytics_api\0";
264pub const TM_ANIMATION_BLENDER_API_NAME: &'static [u8; 25usize] = b"tm_animation_blender_api\0";
265pub const TM_TT_TYPE__ANIMATION_CLIP: &'static [u8; 18usize] = b"tm_animation_clip\0";
266pub const TM_ANIMATION_PLAYER_API_NAME: &'static [u8; 24usize] = b"tm_animation_player_api\0";
267pub const TM_TT_TYPE__ANIMATION_SIMPLE_PLAYER_COMPONENT: &'static [u8; 37usize] =
268    b"tm_animation_simple_player_component\0";
269pub const TM_ANIMATION_SIMPLE_PLAYER_COMPONENT_API_NAME: &'static [u8; 41usize] =
270    b"tm_animation_simple_player_component_api\0";
271pub const TM_TT_TYPE__ASM_REGULAR_STATE: &'static [u8; 21usize] = b"tm_asm_regular_state\0";
272pub const TM_TT_TYPE__ASM_RANDOM_STATE: &'static [u8; 20usize] = b"tm_asm_random_state\0";
273pub const TM_TT_TYPE__ASM_RANDOM_STATE_ANIMATION: &'static [u8; 30usize] =
274    b"tm_asm_random_state_animation\0";
275pub const TM_TT_TYPE__ASM_BLEND_STATE: &'static [u8; 19usize] = b"tm_asm_blend_state\0";
276pub const TM_TT_TYPE__ASM_BLEND_STATE_ANIMATION: &'static [u8; 29usize] =
277    b"tm_asm_blend_state_animation\0";
278pub const TM_TT_TYPE__ASM_EMPTY_STATE: &'static [u8; 19usize] = b"tm_asm_empty_state\0";
279pub const TM_TT_TYPE__ASM_REGULAR_TRANSITION: &'static [u8; 26usize] =
280    b"tm_asm_regular_transition\0";
281pub const TM_TT_TYPE__ASM_LAYER: &'static [u8; 14usize] = b"tm_asm_layer \0";
282pub const TM_TT_TYPE__ASM_EVENT: &'static [u8; 14usize] = b"tm_asm_event \0";
283pub const TM_TT_TYPE__ASM_VARIABLE: &'static [u8; 17usize] = b"tm_asm_variable \0";
284pub const TM_TT_TYPE__ASM_BLEND_SET_WEIGHT: &'static [u8; 24usize] = b"tm_asm_blend_set_weight\0";
285pub const TM_TT_TYPE__ASM_BLEND_SET: &'static [u8; 17usize] = b"tm_asm_blend_set\0";
286pub const TM_TT_TYPE__ASM_MOTION_MIXER: &'static [u8; 20usize] = b"tm_asm_motion_mixer\0";
287pub const TM_TT_TYPE__ASM_MOTION_MIXER_SLIDER: &'static [u8; 27usize] =
288    b"tm_asm_motion_mixer_slider\0";
289pub const TM_TT_TYPE__ASM_MOTION_MIXER_BUTTON: &'static [u8; 27usize] =
290    b"tm_asm_motion_mixer_button\0";
291pub const TM_TT_TYPE__ASM_MOTION_MIXER_VARIABLE_KEY: &'static [u8; 33usize] =
292    b"tm_asm_motion_mixer_variable_key\0";
293pub const TM_TT_TYPE__ASM_MOTION_MIXER_EVENT_KEY: &'static [u8; 30usize] =
294    b"tm_asm_motion_mixer_event_key\0";
295pub const TM_TT_TYPE__ANIMATION_STATE_MACHINE: &'static [u8; 27usize] =
296    b"tm_animation_state_machine\0";
297pub const TM_ANIMATION_STATE_MACHINE_API_NAME: &'static [u8; 31usize] =
298    b"tm_animation_state_machine_api\0";
299pub const TM_TT_TYPE__ANIMATION_STATE_MACHINE_COMPONENT: &'static [u8; 37usize] =
300    b"tm_animation_state_machine_component\0";
301pub const TM_ANIMATION_STATE_MACHINE_COMPONENT_API_NAME: &'static [u8; 41usize] =
302    b"tm_animation_state_machine_component_api\0";
303pub const TM_BONE_TRANSLATION_API_NAME: &'static [u8; 24usize] = b"tm_bone_translation_api\0";
304pub const TM_EXPRESSION_LANGUAGE_API_NAME: &'static [u8; 27usize] = b"tm_expression_language_api\0";
305pub const TM_STATE_GRAPH_API_NAME: &'static [u8; 19usize] = b"tm_state_graph_api\0";
306pub const TM_ASSIMP_API_NAME: &'static [u8; 14usize] = b"tm_assimp_api\0";
307pub const TM_MIXER_API_NAME: &'static [u8; 13usize] = b"tm_mixer_api\0";
308pub const TM_SOUND_BACKEND_API_NAME: &'static [u8; 21usize] = b"tm_sound_backend_api\0";
309pub const TM_TT_TYPE__SOUND_SOURCE_COMPONENT: &'static [u8; 26usize] =
310    b"tm_sound_source_component\0";
311pub const TM_TONE_GENERATOR_API_NAME: &'static [u8; 22usize] = b"tm_tone_generator_api\0";
312pub const TM_TT_TYPE__WAV: &'static [u8; 7usize] = b"tm_wav\0";
313pub const TM_WAV_API_NAME: &'static [u8; 11usize] = b"tm_wav_api\0";
314pub const TM_CACHE_TAG_ALL: u32 = 4294967295;
315pub const TM_CACHE_MANAGER_API_NAME: &'static [u8; 21usize] = b"tm_cache_manager_api\0";
316pub const TM_COLLABORATION_DISCORD_API_NAME: &'static [u8; 29usize] =
317    b"tm_collaboration_discord_api\0";
318pub const TM_CREATION_GRAPH_NODE_INTERFACE_NAME: &'static [u8; 33usize] =
319    b"tm_creation_graph_node_interface\0";
320pub const TM_CREATION_GRAPH_IO_TYPE_INTERFACE_NAME: &'static [u8; 36usize] =
321    b"tm_creation_graph_io_type_interface\0";
322pub const TM_CREATION_GRAPH_OUTPUT_NODE_TYPE_INTERFACE_NAME: &'static [u8; 45usize] =
323    b"tm_creation_graph_output_node_type_interface\0";
324pub const TM_CREATION_GRAPH_COMPILE_DATA_TO_WIRE_INTERFACE_NAME: &'static [u8; 49usize] =
325    b"tm_creation_graph_compile_data_to_wire_interface\0";
326pub const TM_TT_TYPE__CREATION_GRAPH: &'static [u8; 18usize] = b"tm_creation_graph\0";
327pub const TM_TT_TYPE__CREATION_GRAPH__RESOURCE_REFERENCE: &'static [u8; 37usize] =
328    b"tm_creation_graph_resource_reference\0";
329pub const TM_CREATION_GRAPH_API_NAME: &'static [u8; 22usize] = b"tm_creation_graph_api\0";
330pub const TM_CREATION_GRAPH_INTERPRETER_API_NAME: &'static [u8; 34usize] =
331    b"tm_creation_graph_interpreter_api\0";
332pub const TM_TT_TYPE__GRAPH: &'static [u8; 9usize] = b"tm_graph\0";
333pub const TM_TT_TYPE__GRAPH_NODE: &'static [u8; 14usize] = b"tm_graph_node\0";
334pub const TM_TT_TYPE__GRAPH_CONNECTION: &'static [u8; 20usize] = b"tm_graph_connection\0";
335pub const TM_TT_TYPE__GRAPH_DATA: &'static [u8; 14usize] = b"tm_graph_data\0";
336pub const TM_TT_TYPE__GRAPH_COMMENT: &'static [u8; 17usize] = b"tm_graph_comment\0";
337pub const TM_TT_TYPE__GRAPH_INTERFACE: &'static [u8; 19usize] = b"tm_graph_interface\0";
338pub const TM_TT_TYPE__GRAPH_INPUT: &'static [u8; 15usize] = b"tm_graph_input\0";
339pub const TM_TT_TYPE__GRAPH_OUTPUT: &'static [u8; 16usize] = b"tm_graph_output\0";
340pub const TM_TT_TYPE__GRAPH_CACHED_NODE_RESULT: &'static [u8; 28usize] =
341    b"tm_graph_cached_node_result\0";
342pub const TM_TT_TYPE__GRAPH_SETTINGS: &'static [u8; 18usize] = b"tm_graph_settings\0";
343pub const TM_GRAPH_DRAG_AND_DROP_INTERFACE_NAME: &'static [u8; 25usize] =
344    b"tm_graph_drag_and_drop_i\0";
345pub const TM_GRAPH_API_NAME: &'static [u8; 13usize] = b"tm_graph_api\0";
346pub const TM_TT_TYPE__IMAGE_MIPMAP_SETTINGS: &'static [u8; 19usize] = b"tm_mipmap_settings\0";
347pub const TM_TT_TYPE__IMAGE_DESCRIPTION: &'static [u8; 21usize] = b"tm_image_description\0";
348pub const TM_TT_TYPE__IMAGE_ARCHIVE: &'static [u8; 17usize] = b"tm_image_archive\0";
349pub const TM_CREATION_GRAPH__IMAGE__OUTPUT_NODE: &'static [u8; 13usize] = b"image_output\0";
350pub const TM_CREATION_GRAPH__SHADER_INSTANCE_OUTPUT: &'static [u8; 26usize] =
351    b"tm_shader_instance_output\0";
352pub const TM_CREATION_GRAPH__BOUNDING_VOLUME: &'static [u8; 16usize] = b"bounding_volume\0";
353pub const TM_CREATION_GRAPH__DRAW_CALL: &'static [u8; 9usize] = b"drawcall\0";
354pub const TM_CRUNCH_API_NAME: &'static [u8; 14usize] = b"tm_crunch_api\0";
355pub const TM_DCC_ASSET_API_NAME: &'static [u8; 17usize] = b"tm_dcc_asset_api\0";
356pub const TM_TT_TYPE__DCC_ASSET_COMPONENT: &'static [u8; 23usize] = b"tm_dcc_asset_component\0";
357pub const TM_DCC_ASSET_COMPONENT_API_NAME: &'static [u8; 27usize] = b"tm_dcc_asset_component_api\0";
358pub const TM_TT_TYPE__DCC_ASSET_MESH__NODE_SETTINGS: &'static [u8; 32usize] =
359    b"tm_dcc_asset_mesh_node_settings\0";
360pub const TM_TT_TYPE__DCC_ASSET_IMAGE__NODE_SETTINGS: &'static [u8; 33usize] =
361    b"tm_dcc_asset_image_node_settings\0";
362pub const TM_TT_TYPE__DCC_ASSET_MATERIAL__NODE_SETTINGS: &'static [u8; 36usize] =
363    b"tm_dcc_asset_material_node_settings\0";
364pub const TM_DCC_ASSET_CREATION_GRAPH_API_NAME: &'static [u8; 32usize] =
365    b"tm_dcc_asset_creation_graph_api\0";
366pub const TM_DCC_ASSET_RENDERER_API_NAME: &'static [u8; 26usize] = b"tm_dcc_asset_renderer_api\0";
367pub const TM_TT_TYPE__DCC_ASSET_POSITION: &'static [u8; 22usize] = b"tm_dcc_asset_position\0";
368pub const TM_TT_TYPE__DCC_ASSET_ROTATION: &'static [u8; 22usize] = b"tm_dcc_asset_rotation\0";
369pub const TM_TT_TYPE__DCC_ASSET_SCALE: &'static [u8; 19usize] = b"tm_dcc_asset_scale\0";
370pub const TM_TT_TYPE__DCC_ASSET_COLOR_RGB: &'static [u8; 23usize] = b"tm_dcc_asset_color_rgb\0";
371pub const TM_TT_TYPE__DCC_ASSET_COLOR_RGBA: &'static [u8; 24usize] = b"tm_dcc_asset_color_rgba\0";
372pub const TM_TT_TYPE__DCC_ASSET_BUFFER: &'static [u8; 20usize] = b"tm_dcc_asset_buffer\0";
373pub const TM_TT_TYPE__DCC_ASSET_CAMERA: &'static [u8; 20usize] = b"tm_dcc_asset_camera\0";
374pub const TM_TT_TYPE__DCC_ASSET_LIGHT: &'static [u8; 19usize] = b"tm_dcc_asset_light\0";
375pub const TM_TT_TYPE__DCC_ASSET_ACCESSOR: &'static [u8; 22usize] = b"tm_dcc_asset_accessor\0";
376pub const TM_TT_TYPE__DCC_ASSET_ATTRIBUTE: &'static [u8; 23usize] = b"tm_dcc_asset_attribute\0";
377pub const TM_TT_TYPE__DCC_ASSET_IMAGE: &'static [u8; 19usize] = b"tm_dcc_asset_image\0";
378pub const TM_TT_TYPE__DCC_ASSET_TEXTURE: &'static [u8; 21usize] = b"tm_dcc_asset_texture\0";
379pub const TM_TT_TYPE__DCC_ASSET_MATERIAL_PBR_MR: &'static [u8; 29usize] =
380    b"tm_dcc_asset_material_pbr_mr\0";
381pub const TM_TT_TYPE__DCC_ASSET_MATERIAL_PBR_SG: &'static [u8; 29usize] =
382    b"tm_dcc_asset_material_pbr_sg\0";
383pub const TM_TT_TYPE__DCC_ASSET_MATERIAL: &'static [u8; 22usize] = b"tm_dcc_asset_material\0";
384pub const TM_TT_TYPE__DCC_ASSET_BONE: &'static [u8; 18usize] = b"tm_dcc_asset_bone\0";
385pub const TM_TT_TYPE__DCC_ASSET_MESH: &'static [u8; 18usize] = b"tm_dcc_asset_mesh\0";
386pub const TM_TT_TYPE__DCC_ASSET_NODE: &'static [u8; 18usize] = b"tm_dcc_asset_node\0";
387pub const TM_TT_TYPE__DCC_ASSET_SCENE: &'static [u8; 19usize] = b"tm_dcc_asset_scene\0";
388pub const TM_TT_TYPE__DCC_ASSET_NODE_ANIMATION: &'static [u8; 28usize] =
389    b"tm_dcc_asset_node_animation\0";
390pub const TM_TT_TYPE__DCC_ASSET_ANIMATION: &'static [u8; 23usize] = b"tm_dcc_asset_animation\0";
391pub const TM_TT_TYPE__DCC_ASSET_EXTRACTED_RESOURCE: &'static [u8; 32usize] =
392    b"tm_dcc_asset_extracted_resource\0";
393pub const TM_TT_TYPE__DCC_ASSET_SETTINGS: &'static [u8; 22usize] = b"tm_dcc_asset_settings\0";
394pub const TM_TT_TYPE__DCC_ASSET: &'static [u8; 13usize] = b"tm_dcc_asset\0";
395pub const TM_TT_TYPE__ENTITY_RIGGER__COMPONENT: &'static [u8; 27usize] =
396    b"tm_entity_rigger_component\0";
397pub const TM_ENTITY_RIGGER_COMPONENT_API_NAME: &'static [u8; 25usize] =
398    b"tm_entitiy_component_api\0";
399pub const TM_TT_TYPE__DCC_IMPORT_SETTINGS: &'static [u8; 23usize] = b"tm_dcc_import_settings\0";
400pub const TM_IMPORT_SETTINGS_API_NAME: &'static [u8; 23usize] = b"tm_import_settings_api\0";
401pub const TM_DDS_IMAGE_LOADER_API_NAME: &'static [u8; 20usize] = b"tm_dds_image_loader\0";
402pub const TM_TT_TYPE__BLOOM_COMPONENT: &'static [u8; 39usize] =
403    b"tm_default_render_pipe_bloom_component\0";
404pub const TM_DEFAULT_RENDER_PIPE_API_NAME: &'static [u8; 27usize] = b"tm_default_render_pipe_api\0";
405pub const TM_DEFAULT_RENDER_PIPELINE_NAME: &'static [u8; 27usize] = b"TM Default Render Pipeline\0";
406pub const TM_TT_TYPE__EXPOSURE_COMPONENT: &'static [u8; 42usize] =
407    b"tm_default_render_pipe_exposure_component\0";
408pub const TM_TT_TYPE__LIGHT_COMPONENT: &'static [u8; 39usize] =
409    b"tm_default_render_pipe_light_component\0";
410pub const TM_VOLUME_COMPONENT_API_NAME: &'static [u8; 24usize] = b"tm_volume_component_api\0";
411pub const TM_TT_TYPE__VOLUME_COMPONENT: &'static [u8; 40usize] =
412    b"tm_default_render_pipe_volume_component\0";
413pub const TM_DXC_SHADER_COMPILER_API_NAME: &'static [u8; 27usize] = b"tm_dxc_shader_compiler_api\0";
414pub const TM_TT_TYPE__ASSET_BROWSER: &'static [u8; 17usize] = b"tm_asset_browser\0";
415pub const TM_ASSET_BROWSER_CREATE_ASSET_INTERFACE_NAME: &'static [u8; 32usize] =
416    b"tm_asset_browser_create_asset_i\0";
417pub const TM_ASSET_BROWSER_OPEN_ASSET_API_NAME: &'static [u8; 32usize] =
418    b"tm_asset_browser_open_asset_api\0";
419pub const TM_ASSET_BROWSER_ADD_ASSET_API_NAME: &'static [u8; 31usize] =
420    b"tm_asset_browser_add_asset_api\0";
421pub const TM_ASSET_BROWSER_SELECT_ASSET_API_NAME: &'static [u8; 34usize] =
422    b"tm_asset_browser_select_asset_api\0";
423pub const TM_ASSET_BROWSER_API_NAME: &'static [u8; 21usize] = b"tm_asset_browser_api\0";
424pub const TM_PROFILER_VIEW_API_NAME: &'static [u8; 21usize] = b"tm_profiler_view_api\0";
425pub const TM_PROPERTIES_VIEW_API_NAME: &'static [u8; 23usize] = b"tm_properties_view_api\0";
426pub const TM_TREE_VIEW_API_NAME: &'static [u8; 17usize] = b"tm_tree_view_api\0";
427pub const TM_UI_POPUP_ITEM_PICKER_API_NAME: &'static [u8; 28usize] =
428    b"tm_ui_popup_item_picker_api\0";
429pub const TM_TT_TYPE__CAMERA_COMPONENT: &'static [u8; 20usize] = b"tm_camera_component\0";
430pub const TM_MAX_COMPONENTS_FOR_ENGINE: u32 = 16;
431pub const TM_TT_TYPE__ENTITY: &'static [u8; 10usize] = b"tm_entity\0";
432pub const TM_MAX_COMPONENTS_IN_CONTEXT: u32 = 1024;
433pub const TM_ENTITY_SIMULATION_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_entity_simulation_i\0";
434pub const TM_ENTITY_CREATE_COMPONENT_INTERFACE_NAME: &'static [u8; 29usize] =
435    b"tm_entity_create_component_i\0";
436pub const TM_ENTITY_HOT_RELOAD_COMPONENT_INTERFACE_NAME: &'static [u8; 33usize] =
437    b"tm_entity_hot_reload_component_i\0";
438pub const TM_ENTITY_HOT_RELOAD_SYSTEM_INTERFACE_NAME: &'static [u8; 30usize] =
439    b"tm_entity_hot_reload_system_i\0";
440pub const TM_ENTITY_API_NAME: &'static [u8; 14usize] = b"tm_entity_api\0";
441pub const TM_TT_TYPE__LINK_COMPONENT: &'static [u8; 18usize] = b"tm_link_component\0";
442pub const TM_LINK_COMPONENT_API_NAME: &'static [u8; 22usize] = b"tm_link_component_api\0";
443pub const TM_TT_TYPE__OWNER_COMPONENT: &'static [u8; 19usize] = b"tm_owner_component\0";
444pub const TM_OWNER_COMPONENT_API_NAME: &'static [u8; 23usize] = b"tm_owner_component_api\0";
445pub const TM_TT_TYPE__SCENE_TREE_COMPONENT: &'static [u8; 24usize] = b"tm_scene_tree_component\0";
446pub const TM_SCENE_TREE_COMPONENT_API_NAME: &'static [u8; 28usize] =
447    b"tm_scene_tree_component_api\0";
448pub const TM_TT_TYPE__TAG_COMPONENT: &'static [u8; 17usize] = b"tm_tag_component\0";
449pub const TM_TT_TYPE__TAG: &'static [u8; 7usize] = b"tm_tag\0";
450pub const TM_TAG_COMPONENT_API_NAME: &'static [u8; 21usize] = b"tm_tag_component_api\0";
451pub const TM_TT_TYPE__TRANSFORM_COMPONENT: &'static [u8; 23usize] = b"tm_transform_component\0";
452pub const TM_TRANSFORM_COMPONENT_API_NAME: &'static [u8; 27usize] = b"tm_transform_component_api\0";
453pub const TM_GAMEPLAY_CONTEXT_API_NAME: &'static [u8; 24usize] = b"tm_gameplay_context_api\0";
454pub const TM_GAMEPLAY_ENTITY_API_NAME: &'static [u8; 23usize] = b"tm_gameplay_entity_api\0";
455pub const TM_GAMEPLAY_PHYSICS_API_NAME: &'static [u8; 24usize] = b"tm_gameplay_physics_api\0";
456pub const TM_GAMEPLAY_API_NAME: &'static [u8; 16usize] = b"tm_gameplay_api\0";
457pub const TM_GLTF_API_NAME: &'static [u8; 12usize] = b"tm_gltf_api\0";
458pub const TM_GRAPH_SUBGRAPH_NODE_TYPE: &'static [u8; 17usize] = b"tm_subgraph_node\0";
459pub const TM_GRAPH_SUBGRAPH_NODE_SETTINGS_TYPE: &'static [u8; 26usize] =
460    b"tm_subgraph_node_settings\0";
461pub const TM_GRAPH_INPUT_NODE_TYPE: &'static [u8; 14usize] = b"tm_input_node\0";
462pub const TM_GRAPH_OUTPUT_NODE_TYPE: &'static [u8; 15usize] = b"tm_output_node\0";
463pub const TM_GRAPH_ADD_INPUT_CONNECTOR: &'static [u8; 23usize] = b"tm_add_input_connector\0";
464pub const TM_GRAPH_ADD_OUTPUT_CONNECTOR: &'static [u8; 24usize] = b"tm_add_output_connector\0";
465pub const TM_GRAPH_IMPORTER_API_NAME: &'static [u8; 22usize] = b"tm_graph_importer_api\0";
466pub const TM_TT_TYPE__GRAPH_COMPONENT: &'static [u8; 19usize] = b"tm_graph_component\0";
467pub const TM_TT_TYPE__ENTITY_GRAPH: &'static [u8; 16usize] = b"tm_entity_graph\0";
468pub const TM_GRAPH_COMPONENT_COMPILE_DATA_INTERFACE_NAME: &'static [u8; 32usize] =
469    b"tm_graph_component_compile_data\0";
470pub const TM_GRAPH_COMPONENT_API_NAME: &'static [u8; 23usize] = b"tm_graph_component_api\0";
471pub const TM_GRAPH_COMPONENT_NODE_INTERFACE_NAME: &'static [u8; 34usize] =
472    b"tm_graph_component_node_interface\0";
473pub const TM_TT_TYPE__KEYBOARD_ITEM: &'static [u8; 17usize] = b"tm_keyboard_item\0";
474pub const TM_TT_TYPE__MOUSE_BUTTON: &'static [u8; 16usize] = b"tm_mouse_button\0";
475pub const TM_TT_TYPE__ENTITY_ASSET_REFERENCE: &'static [u8; 26usize] =
476    b"tm_entity_asset_reference\0";
477pub const TM_TT_TYPE__LOCAL_ENTITY_ASSET_REFERENCE: &'static [u8; 32usize] =
478    b"tm_local_entity_asset_reference\0";
479pub const TM_TT_TYPE__TAG_REFERENCE: &'static [u8; 17usize] = b"tm_tag_reference\0";
480pub const TM_GRAPH_INTERPRETER_API_NAME: &'static [u8; 25usize] = b"tm_graph_interpreter_api\0";
481pub const TM_HTTPS_API_NAME: &'static [u8; 13usize] = b"tm_https_api\0";
482pub const TM_OPENVR_API_NAME: &'static [u8; 14usize] = b"tm_openvr_api\0";
483pub const TM_OS_DISPLAY_API_NAME: &'static [u8; 18usize] = b"tm_os_display_api\0";
484pub const DEFAULT_DISPLAY_DPI: u32 = 96;
485pub const TM_OS_WINDOW_API_NAME: &'static [u8; 17usize] = b"tm_os_window_api\0";
486pub const TM_TT_TYPE__PHYSICS_BODY_COMPONENT: &'static [u8; 26usize] =
487    b"tm_physics_body_component\0";
488pub const TM_PHYSICS_BODY_COMPUTE_INERTIA_TENSOR_INTERFACE_NAME: &'static [u8; 41usize] =
489    b"tm_physics_body_compute_inertia_tensor_i\0";
490pub const TM_TT_TYPE__PHYSICS_COLLISION: &'static [u8; 21usize] = b"tm_physics_collision\0";
491pub const TM_TT_TYPE__PHYSICS_JOINT_COMPONENT: &'static [u8; 27usize] =
492    b"tm_physics_joint_component\0";
493pub const TM_TT_TYPE__PHYSICS_JOINT__FIXED: &'static [u8; 23usize] = b"tm_physics_joint_fixed\0";
494pub const TM_TT_TYPE__PHYSICS_JOINT__DISTANCE: &'static [u8; 26usize] =
495    b"tm_physics_joint_distance\0";
496pub const TM_TT_TYPE__PHYSICS_JOINT__SPHERICAL: &'static [u8; 27usize] =
497    b"tm_physics_joint_spherical\0";
498pub const TM_TT_TYPE__PHYSICS_JOINT__REVOLUTE: &'static [u8; 26usize] =
499    b"tm_physics_joint_revolute\0";
500pub const TM_TT_TYPE__PHYSICS_JOINT__PRISMATIC: &'static [u8; 27usize] =
501    b"tm_physics_joint_prismatic\0";
502pub const TM_TT_TYPE__PHYSICS_JOINT__D6: &'static [u8; 20usize] = b"tm_physics_joint_d6\0";
503pub const TM_TT_TYPE__PHYSICS_MATERIAL: &'static [u8; 20usize] = b"tm_physics_material\0";
504pub const TM_TT_TYPE__PHYSICS_MOVER_COMPONENT: &'static [u8; 27usize] =
505    b"tm_physics_mover_component\0";
506pub const TM_TT_TYPE__PHYSICS_SHAPE_COMPONENT: &'static [u8; 27usize] =
507    b"tm_physics_shape_component\0";
508pub const TM_TT_TYPE__PHYSICS_SHAPE__SPHERE: &'static [u8; 24usize] = b"tm_physics_shape_sphere\0";
509pub const TM_TT_TYPE__PHYSICS_SHAPE__CAPSULE: &'static [u8; 25usize] =
510    b"tm_physics_shape_capsule\0";
511pub const TM_TT_TYPE__PHYSICS_SHAPE__BOX: &'static [u8; 21usize] = b"tm_physics_shape_box\0";
512pub const TM_TT_TYPE__PHYSICS_SHAPE__CONVEX: &'static [u8; 24usize] = b"tm_physics_shape_convex\0";
513pub const TM_TT_TYPE__PHYSICS_SHAPE__MESH: &'static [u8; 22usize] = b"tm_physics_shape_mesh\0";
514pub const TM_PHYSICS_SHAPE_COOKING_INTERFACE_NAME: &'static [u8; 27usize] =
515    b"tm_physics_shape_cooking_i\0";
516pub const TM_PHYSICS_SHAPE_DRAWING_INTERFACE_NAME: &'static [u8; 27usize] =
517    b"tm_physics_shape_drawing_i\0";
518pub const TM_PHYSICS_SHAPE_API_NAME: &'static [u8; 21usize] = b"tm_physics_shape_api\0";
519pub const TM_TT_TYPE__VELOCITY_COMPONENT: &'static [u8; 22usize] = b"tm_velocity_component\0";
520pub const TM_TT_TYPE__PHYSX_RIGID_STATIC_COMPONENT: &'static [u8; 32usize] =
521    b"tm_physx_rigid_static_component\0";
522pub const TM_TT_TYPE__PHYSX_RIGID_BODY_COMPONENT: &'static [u8; 30usize] =
523    b"tm_physx_rigid_body_component\0";
524pub const TM_TT_TYPE__PHYSX_RIGID_BODY_SHAPE_COMPONENT: &'static [u8; 36usize] =
525    b"tm_physx_rigid_body_shape_component\0";
526pub const TM_TT_TYPE__PHYSX_JOINT_COMPONENT: &'static [u8; 25usize] = b"tm_physx_joint_component\0";
527pub const TM_TT_TYPE__PHYSX_MOVER_COMPONENT: &'static [u8; 25usize] = b"tm_physx_mover_component\0";
528pub const TM_PHYSX_SCENE_API_NAME: &'static [u8; 19usize] = b"tm_physx_scene_api\0";
529pub const TM_PHYSX_CONVEX_COOKED_DATA_FORMAT: &'static [u8; 28usize] =
530    b"tm_physx_convex_cooked_data\0";
531pub const TM_PHYSX_MESH_COOKED_DATA_FORMAT: &'static [u8; 26usize] = b"tm_physx_mesh_cooked_data\0";
532pub const TM_PHYSX_RAYCAST__COLLIDES_WITH_ALL: i32 = -1;
533pub const TM_DEVICE_MEMORY_VIEW_API_NAME: &'static [u8; 22usize] = b"tm_device_memory_view\0";
534pub const TM_NIL_RENDER_BACKEND_API_NAME: &'static [u8; 26usize] = b"tm_nil_render_backend_api\0";
535pub const TM_RENDERER_API_NAME: &'static [u8; 16usize] = b"tm_renderer_api\0";
536pub const TM_RENDERER_INIT_API_NAME: &'static [u8; 21usize] = b"tm_renderer_init_api\0";
537pub const TM_RENDERER_MEMORY_STATISTICS_MAX_ALLOCATOR_BLOCKS: u32 = 256;
538pub const TM_RENDERER_DEVICE_AFFINITY_MASK_ALL: u32 = 255;
539pub const TM_RENDER_BACKEND_INTERFACE_NAME: &'static [u8; 20usize] = b"tm_render_backend_i\0";
540pub const TM_RENDER_GRAPH_API_NAME: &'static [u8; 20usize] = b"tm_render_graph_api\0";
541pub const TM_RENDER_GRAPH_MODULE_API_NAME: &'static [u8; 27usize] = b"tm_render_graph_module_api\0";
542pub const TM_RENDER_GRAPH_SETUP_API_NAME: &'static [u8; 26usize] = b"tm_render_graph_setup_api\0";
543pub const TM_RENDER_GRAPH_EXECUTE_API_NAME: &'static [u8; 28usize] =
544    b"tm_render_graph_execute_api\0";
545pub const TM_RENDER_PIPELINE_INTERFACE_NAME: &'static [u8; 23usize] = b"tm_render_pipeline_api\0";
546pub const TM_SHADOW_MAPPING_API_NAME: &'static [u8; 22usize] = b"tm_shadow_mapping_api\0";
547pub const TM_RENDER_GRAPH_TOOLBOX_API_NAME: &'static [u8; 28usize] =
548    b"tm_render_graph_toolbox_api\0";
549pub const TM_DEBUG_VISUALIZATION_MAX_RESOURCE: u32 = 16;
550pub const TM_COMPONENT_SHADER_SYSTEM_INTERFACE_NAME: &'static [u8; 29usize] =
551    b"tm_component_shader_system_i\0";
552pub const TM_COMPONENT_SHADER_SYSTEM_API_NAME: &'static [u8; 31usize] =
553    b"tm_component_shader_system_api\0";
554pub const TM_TT_TYPE__CUBEMAP_CAPTURE_COMPONENT: &'static [u8; 29usize] =
555    b"tm_cubemap_capture_component\0";
556pub const TM_CUBEMAP_CAPTURE_INTERFACE_NAME: &'static [u8; 29usize] =
557    b"tm_cubemap_capture_interface\0";
558pub const TM_GPU_PICKING_API_NAME: &'static [u8; 19usize] = b"tm_gpu_picking_api\0";
559pub const TM_TT_TYPE__GRID_SETTINGS: &'static [u8; 17usize] = b"tm_grid_settings\0";
560pub const TM_GRID_RENDERER_API_NAME: &'static [u8; 21usize] = b"tm_grid_renderer_api\0";
561pub const TM_IMAGE_INSPECTOR_API_NAME: &'static [u8; 23usize] = b"tm_image_inspector_api\0";
562pub const TM_PRIMITIVE_DRAWER_API_NAME: &'static [u8; 24usize] = b"tm_primitive_drawer_api\0";
563pub const TM_PRIMITIVE_RENDERER_API_NAME: &'static [u8; 26usize] = b"tm_primitive_renderer_api\0";
564pub const TM_TT_TYPE__RENDER_COMPONENT: &'static [u8; 20usize] = b"tm_render_component\0";
565pub const TM_RENDER_COMPONENT_API_NAME: &'static [u8; 24usize] = b"tm_render_component_api\0";
566pub const TM_TT_TYPE__SKINNING_COMPONENT: &'static [u8; 22usize] = b"tm_skinning_component\0";
567pub const TM_SKINNING_COMPONENT_API_NAME: &'static [u8; 26usize] = b"tm_skinning_component_api\0";
568pub const TM_TT_TYPE__SCULPT_COMPONENT: &'static [u8; 20usize] = b"tm_sculpt_component\0";
569pub const TM_TT_TYPE__SCULPT_COMPONENT_SELECTION: &'static [u8; 30usize] =
570    b"tm_sculpt_component_selection\0";
571pub const TM_SCULPT_COMPONENT_API_NAME: &'static [u8; 24usize] = b"tm_sculpt_component_api\0";
572pub const TM_SHADER_DECLARATION_API_NAME: &'static [u8; 26usize] = b"tm_shader_declaration_api\0";
573pub const TM_SHADER_SYSTEM_API_NAME: &'static [u8; 21usize] = b"tm_shader_system_api\0";
574pub const TM_SHADER_API_NAME: &'static [u8; 14usize] = b"tm_shader_api\0";
575pub const TM_SHADER_REPOSITORY_INSTANCE_NAME: &'static [u8; 23usize] = b"tm_shader_repository_o\0";
576pub const TM_SHADER_REPOSITORY_API_NAME: &'static [u8; 25usize] = b"tm_shader_repository_api\0";
577pub const TM_SHADER_CREATION_GRAPH_API_NAME: &'static [u8; 29usize] =
578    b"tm_shader_creation_graph_api\0";
579pub const TM_TT_TYPE__SHADER_SYSTEM_REPOSITORY: &'static [u8; 28usize] =
580    b"tm_shader_system_repository\0";
581pub const TM_TT_TYPE__SHADER_SYSTEM_DECLARATION: &'static [u8; 29usize] =
582    b"tm_shader_system_declaration\0";
583pub const TM_TT_TYPE__SHADER_SYSTEM_RENDER_STATE_BLOCK: &'static [u8; 36usize] =
584    b"tm_shader_system_render_state_block\0";
585pub const TM_TT_TYPE__SHADER_SYSTEM_SAMPLER_STATE_BLOCK: &'static [u8; 37usize] =
586    b"tm_shader_system_sampler_state_block\0";
587pub const TM_TT_TYPE__SHADER_SYSTEM_REQUEST: &'static [u8; 25usize] = b"tm_shader_system_request\0";
588pub const TM_TT_TYPE__SHADER_SYSTEM_CONSTANT: &'static [u8; 26usize] =
589    b"tm_shader_system_constant\0";
590pub const TM_TT_TYPE__SHADER_SYSTEM_RESOURCE: &'static [u8; 26usize] =
591    b"tm_shader_system_resource\0";
592pub const TM_TT_TYPE__SHADER_SYSTEM_EXPORT: &'static [u8; 30usize] =
593    b"tm_shader_system_stage_export\0";
594pub const TM_TT_TYPE__SHADER_SYSTEM_INCLUDE: &'static [u8; 25usize] = b"tm_shader_system_include\0";
595pub const TM_TT_TYPE__SHADER_SYSTEM_VARIATION: &'static [u8; 27usize] =
596    b"tm_shader_system_variation\0";
597pub const TM_TT_TYPE__SHADER_SYSTEM_VARIATION_SYSTEM: &'static [u8; 34usize] =
598    b"tm_shader_system_variation_system\0";
599pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILE_CONFIGURATION: &'static [u8; 39usize] =
600    b"tm_shader_system_compile_configuration\0";
601pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILE_BRANCH: &'static [u8; 32usize] =
602    b"tm_shader_system_compile_branch\0";
603pub const TM_TT_TYPE__SHADER_SYSTEM_PASS_CONDITION: &'static [u8; 32usize] =
604    b"tm_shader_system_pass_condition\0";
605pub const TM_TT_TYPE__SHADER_SYSTEM_PASS: &'static [u8; 22usize] = b"tm_shader_system_pass\0";
606pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILE_CONTEXT: &'static [u8; 33usize] =
607    b"tm_shader_system_compile_context\0";
608pub const TM_TT_TYPE__SHADER_SYSTEM_COMPILED_RESULT: &'static [u8; 33usize] =
609    b"tm_shader_system_compiled_result\0";
610pub const TM_TT_TYPE__SHADER_SYSTEM__CONSTANT_NODE__SETTINGS: &'static [u8; 40usize] =
611    b"tm_shader_system_constant_node_settings\0";
612pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_RESOURCE_ASPECT: &'static [u8; 53usize] =
613    b"tm_shader_system_creation_graph_node_resource_aspect\0";
614pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_DEFINE: &'static [u8; 44usize] =
615    b"tm_shader_system_creation_graph_node_define\0";
616pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_ACTION: &'static [u8; 44usize] =
617    b"tm_shader_system_creation_graph_node_action\0";
618pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_SETTING_OPTION:
619    &'static [u8; 62usize] = b"tm_shader_system_creation_graph_node_connector_setting_option\0";
620pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_SETTING: &'static [u8; 55usize] =
621    b"tm_shader_system_creation_graph_node_connector_setting\0";
622pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_SETTINGS: &'static [u8; 56usize] =
623    b"tm_shader_system_creation_graph_node_connector_settings\0";
624pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR: &'static [u8; 47usize] =
625    b"tm_shader_system_creation_graph_node_connector\0";
626pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE_CONNECTOR_TYPE_OF: &'static [u8; 55usize] =
627    b"tm_shader_system_creation_graph_node_connector_type_of\0";
628pub const TM_TT_TYPE__SHADER_SYSTEM_CREATION_GRAPH_NODE: &'static [u8; 37usize] =
629    b"tm_shader_system_creation_graph_node\0";
630pub const TM_TT_TYPE__RUNNER_SETTINGS: &'static [u8; 19usize] = b"tm_runner_settings\0";
631pub const TM_RUNNER_SETTINGS_API_NAME: &'static [u8; 23usize] = b"tm_runner_settings_api\0";
632pub const TM_SIMULATE_CONTEXT_API_NAME: &'static [u8; 24usize] = b"tm_simulate_context_api\0";
633pub const TM_TT_TYPE__STATISTICS_GRAPH: &'static [u8; 20usize] = b"tm_statistics_graph\0";
634pub const TM_TT_TYPE__STATISTICS_GRAPH_SOURCE: &'static [u8; 27usize] =
635    b"tm_statistics_graph_source\0";
636pub const TM_STATISTICS_GRAPH_API_NAME: &'static [u8; 20usize] = b"tm_statistics_graph\0";
637pub const TM_STATISTICS_SOURCE_API_NAME: &'static [u8; 25usize] = b"tm_statistics_source_api\0";
638pub const TM_STB_IMAGE_LOADER_API_NAME: &'static [u8; 20usize] = b"tm_stb_image_loader\0";
639pub const TYPE__CAMERA_CONTROLLER_COMPONENT: &'static [u8; 42usize] =
640    b"the-machinery/camera_controller_component\0";
641pub const TM_CAMERA_CONTROLLER_COMPONENT_API_NAME: &'static [u8; 35usize] =
642    b"tm_camera_controller_component_api\0";
643pub const TM_MAX_VIEWER_SYSTEMS: u32 = 4;
644pub const TM_MAX_RENDER_COMPONENTS: u32 = 64;
645pub const TM_MAX_SHADER_DATA_COMPONENTS: u32 = 15;
646pub const TM_FRUSTUM_CULLING_API_NAME: &'static [u8; 23usize] = b"tm_frustum_culling_api\0";
647pub const TM_RENDER_CONTEXT_API_NAME: &'static [u8; 22usize] = b"tm_render_context_api\0";
648pub const TM_VIEWPORT_HUD_HEIGHT: f64 = 25.0;
649pub const TM_VIEWPORT_HUD_OUTER_MARGIN_X: f64 = 5.0;
650pub const TM_VIEWPORT_HUD_OUTER_MARGIN_Y: f64 = 5.0;
651pub const TM_VIEWPORT_HUD_INNER_MARGIN: f64 = 5.0;
652pub const TM_LIGHTING_ENVIRONEMENT_SEARCH_BUF_LEN: u32 = 1024;
653pub const TM_SCENE_COMMON_API_NAME: &'static [u8; 20usize] = b"tm_scene_common_api\0";
654pub const TM_VIEWER_API_NAME: &'static [u8; 14usize] = b"tm_viewer_api\0";
655pub const TM_VIEWER_MANAGER_API_NAME: &'static [u8; 22usize] = b"tm_viewer_manager_api\0";
656pub const TM_TT_TYPE__CLIPBOARD: &'static [u8; 13usize] = b"tm_clipboard\0";
657pub const TM_UI_CLIPBOARD_API_NAME: &'static [u8; 20usize] = b"tm_ui_clipboard_api\0";
658pub const TM_TAB_VT_INTERFACE_NAME: &'static [u8; 10usize] = b"tm_tab_vt\0";
659pub const TM_TT_TYPE__DOCKING_SETTINGS: &'static [u8; 20usize] = b"tm_docking_settings\0";
660pub const TM_DOCKING_API_NAME: &'static [u8; 15usize] = b"tm_docking_api\0";
661pub const TM_UI_DRAG_API_NAME: &'static [u8; 15usize] = b"tm_ui_drag_api\0";
662pub const TM_DRAW2D_API_NAME: &'static [u8; 14usize] = b"tm_draw2d_api\0";
663pub const TM_FONT_API_NAME: &'static [u8; 12usize] = b"tm_font_api\0";
664pub const TM_GIZMO_API_NAME: &'static [u8; 13usize] = b"tm_gizmo_api\0";
665pub const TM_MODAL_PROGRESS_DONE: u32 = 4294967295;
666pub const TM_UI_MODAL_API_NAME: &'static [u8; 16usize] = b"tm_ui_modal_api\0";
667pub const TM_SHAPE3D_API_NAME: &'static [u8; 15usize] = b"tm_shape3d_api\0";
668pub const TM_TT_TYPE__TOOLBAR_SETTINGS: &'static [u8; 20usize] = b"tm_toolbar_settings\0";
669pub const TM_TAB_TOOLBAR_STATE_SIZE: u32 = 4096;
670pub const TM_TTF_BAKER_API_NAME: &'static [u8; 17usize] = b"tm_ttf_baker_api\0";
671pub const TM_TT_TYPE__UI_THEME: &'static [u8; 12usize] = b"tm_ui_theme\0";
672pub const TM_TT_TYPE__UI_THEME_COLOR: &'static [u8; 18usize] = b"tm_ui_theme_color\0";
673pub const TM_UI_API_NAME: &'static [u8; 10usize] = b"tm_ui_api\0";
674pub const TM_UI_ICON_API_NAME: &'static [u8; 15usize] = b"tm_ui_icon_api\0";
675pub const TM_UI_RENDERER_API_NAME: &'static [u8; 15usize] = b"tm_ui_renderer\0";
676pub const TM_UI_TREE_API_NAME: &'static [u8; 15usize] = b"tm_ui_tree_api\0";
677pub const TM_UPNP_API_NAME: &'static [u8; 12usize] = b"tm_upnp_api\0";
678pub const TM_VULKAN_BACKEND_INTERFACE_NAME: &'static [u8; 20usize] = b"tm_vulkan_backend_i\0";
679pub const TM_VULKAN_BACKEND_INSTANCE_EXTENSIONS_INTERFACE_NAME: &'static [u8; 48usize] =
680    b"tm_vulkan_backend_instance_extensions_interface\0";
681pub const TM_VULKAN_BACKEND_DEVICE_EXTENSIONS_INTERFACE_NAME: &'static [u8; 46usize] =
682    b"tm_vulkan_backend_device_extensions_interface\0";
683pub const TM_VULKAN_API_NAME: &'static [u8; 14usize] = b"tm_vulkan_api\0";
684pub const TM_ASSET_BROWSER_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_asset_browser_tab\0";
685pub const TM_ASSET_BROWSER_TAB_CUSTOM_MENU_ITEMS_INTERFACE_NAME: &'static [u8; 41usize] =
686    b"tm_asset_browser_tab_custom_menu_items_i\0";
687pub const TM_ASSET_BROWSER_TAB_API_NAME: &'static [u8; 25usize] = b"tm_asset_browser_tab_api\0";
688pub const TM_CACHE_MANAGER_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_cache_manager_tab\0";
689pub const TM_CANVAS_TAB_VT_NAME: &'static [u8; 14usize] = b"tm_canvas_tab\0";
690pub const TM_COLLABORATION_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_collaboration_tab\0";
691pub const TM_CONSOLE_TAB_VT_NAME: &'static [u8; 15usize] = b"tm_console_tab\0";
692pub const TM_DELAUNAY_TAB_VT_NAME: &'static [u8; 16usize] = b"tm_delaunay_tab\0";
693pub const TM_DOWNLOAD_VT_NAME: &'static [u8; 16usize] = b"tm_download_tab\0";
694pub const TM_TT_TYPE__APPLICATION_SETTINGS__UPDATES: &'static [u8; 33usize] =
695    b"tm_application_settings__updates\0";
696pub const TM_TT_TYPE__APPLICATION_SETTINGS__DOWNLOAD: &'static [u8; 34usize] =
697    b"tm_application_settings__download\0";
698pub const TM_OLD_TREE_TAB_VT_NAME: &'static [u8; 12usize] = b"tm_tree_tab\0";
699pub const TM_ENTITY_TREE_VIEW_WIP_TAB_VT_NAME: &'static [u8; 21usize] = b"tm_tree_view_wip_tab\0";
700pub const TM_GRAPH_TAB_VT_NAME: &'static [u8; 13usize] = b"tm_graph_tab\0";
701pub const TM_IMPORT_PROJECT_TAB_VT_NAME: &'static [u8; 22usize] = b"tm_import_project_tab\0";
702pub const TM_INPUT_LOG_TAB_VT_NAME: &'static [u8; 17usize] = b"tm_input_log_tab\0";
703pub const TM_JSON_TAB_VT_NAME: &'static [u8; 12usize] = b"tm_json_tab\0";
704pub const TM_LOGIN_TAB_VT_NAME: &'static [u8; 13usize] = b"tm_login_tab\0";
705pub const TM_MODIFIED_ASSETS_TAB_VT_NAME: &'static [u8; 23usize] = b"tm_modified_assets_tab\0";
706pub const TM_PREVIEW_TAB_VT_NAME: &'static [u8; 15usize] = b"tm_preview_tab\0";
707pub const TM_PROFILER_TAB_VT_NAME: &'static [u8; 16usize] = b"tm_profiler_tab\0";
708pub const TM_PROPERTIES_TAB_VT_NAME: &'static [u8; 18usize] = b"tm_properties_tab\0";
709pub const TM_SCENE_TAB_VT_NAME: &'static [u8; 13usize] = b"tm_scene_tab\0";
710pub const TM_TT_TYPE__SCENE_TAB: &'static [u8; 13usize] = b"tm_scene_tab\0";
711pub const TM_TT_TYPE__SCENE_TAB_SETTINGS: &'static [u8; 22usize] = b"tm_scene_tab_settings\0";
712pub const TM_TT_TYPE__SCENE_SETTINGS: &'static [u8; 18usize] = b"tm_scene_settings\0";
713pub const TM_SIMULATE_TAB_VT_NAME: &'static [u8; 16usize] = b"tm_simulate_tab\0";
714pub const TM_STATE_GRAPH_TAB_VT_NAME: &'static [u8; 19usize] = b"tm_state_graph_tab\0";
715pub const TM_STATISTICS_TAB_VT_NAME: &'static [u8; 18usize] = b"tm_statistics_tab\0";
716pub const TM_TASK_MANAGER_API_NAME: &'static [u8; 20usize] = b"tm_task_manager_api\0";
717pub const TM_TASK_MANAGER_TAB_VT_NAME: &'static [u8; 20usize] = b"tm_task_manager_tab\0";
718pub const THE_MACHINERY_VERSION: &'static [u8; 8usize] = b"2020.11\0";
719pub const TM_TT_TYPE__APPLICATION_SETTINGS: &'static [u8; 24usize] = b"tm_application_settings\0";
720pub const TM_TT_TYPE__WINDOW_LAYOUTS: &'static [u8; 18usize] = b"tm_window_layouts\0";
721pub const TM_TT_TYPE__WINDOW_LAYOUT: &'static [u8; 17usize] = b"tm_window_layout\0";
722pub const TM_TT_TYPE__RECENT_FILE: &'static [u8; 15usize] = b"tm_recent_file\0";
723pub const TM_TT_TYPE__TABWELL: &'static [u8; 11usize] = b"tm_tabwell\0";
724pub const TM_TT_TYPE__TAB_VIEW: &'static [u8; 12usize] = b"tm_tab_view\0";
725pub const TM_TT_TYPE__PROJECT_SETTINGS: &'static [u8; 20usize] = b"tm_project_settings\0";
726pub const TM_TT_TYPE__INTERFACE_SETTINGS: &'static [u8; 22usize] = b"tm_interface_settings\0";
727pub const TM_TT_TYPE__PUBLISH_SETTINGS: &'static [u8; 20usize] = b"tm_publish_settings\0";
728pub const TM_TREE_VIEW_TAB_VT_NAME: &'static [u8; 17usize] = b"tm_tree_view_tab\0";
729pub const TM_UI_SAMPLE_TAB_VT_NAME: &'static [u8; 17usize] = b"tm_ui_sample_tab\0";
730pub type va_list = __builtin_va_list;
731pub type __gnuc_va_list = __builtin_va_list;
732extern "C" {
733    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
734}
735pub type size_t = ::std::os::raw::c_ulonglong;
736pub type __vcrt_bool = bool;
737pub type wchar_t = ::std::os::raw::c_ushort;
738extern "C" {
739    pub fn __security_init_cookie();
740}
741extern "C" {
742    pub fn __security_check_cookie(_StackCookie: usize);
743}
744extern "C" {
745    pub fn __report_gsfailure(_StackCookie: usize);
746}
747extern "C" {
748    pub static mut __security_cookie: usize;
749}
750pub type int_least8_t = ::std::os::raw::c_schar;
751pub type int_least16_t = ::std::os::raw::c_short;
752pub type int_least32_t = ::std::os::raw::c_int;
753pub type int_least64_t = ::std::os::raw::c_longlong;
754pub type uint_least8_t = ::std::os::raw::c_uchar;
755pub type uint_least16_t = ::std::os::raw::c_ushort;
756pub type uint_least32_t = ::std::os::raw::c_uint;
757pub type uint_least64_t = ::std::os::raw::c_ulonglong;
758pub type int_fast8_t = ::std::os::raw::c_schar;
759pub type int_fast16_t = ::std::os::raw::c_int;
760pub type int_fast32_t = ::std::os::raw::c_int;
761pub type int_fast64_t = ::std::os::raw::c_longlong;
762pub type uint_fast8_t = ::std::os::raw::c_uchar;
763pub type uint_fast16_t = ::std::os::raw::c_uint;
764pub type uint_fast32_t = ::std::os::raw::c_uint;
765pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
766pub type intmax_t = ::std::os::raw::c_longlong;
767pub type uintmax_t = ::std::os::raw::c_ulonglong;
768#[repr(C)]
769#[derive(Copy, Clone)]
770pub struct tm_vec2_t {
771    pub x: f32,
772    pub y: f32,
773}
774#[repr(C)]
775#[derive(Copy, Clone)]
776pub struct tm_vec3_t {
777    pub x: f32,
778    pub y: f32,
779    pub z: f32,
780}
781#[repr(C)]
782#[derive(Copy, Clone)]
783pub struct tm_vec4_t {
784    pub x: f32,
785    pub y: f32,
786    pub z: f32,
787    pub w: f32,
788}
789#[repr(C)]
790#[derive(Copy, Clone)]
791pub struct tm_mat44_t {
792    pub xx: f32,
793    pub xy: f32,
794    pub xz: f32,
795    pub xw: f32,
796    pub yx: f32,
797    pub yy: f32,
798    pub yz: f32,
799    pub yw: f32,
800    pub zx: f32,
801    pub zy: f32,
802    pub zz: f32,
803    pub zw: f32,
804    pub wx: f32,
805    pub wy: f32,
806    pub wz: f32,
807    pub ww: f32,
808}
809#[repr(C)]
810#[derive(Copy, Clone)]
811pub struct tm_transform_t {
812    pub pos: tm_vec3_t,
813    pub rot: tm_vec4_t,
814    pub scl: tm_vec3_t,
815}
816#[repr(C)]
817#[derive(Copy, Clone)]
818pub struct tm_rect_t {
819    pub x: f32,
820    pub y: f32,
821    pub w: f32,
822    pub h: f32,
823}
824#[repr(C)]
825#[derive(Copy, Clone)]
826pub struct tm_clock_o {
827    pub opaque: u64,
828}
829#[repr(C)]
830#[derive(Copy, Clone)]
831pub struct tm_uuid_t {
832    pub a: u64,
833    pub b: u64,
834}
835#[repr(C)]
836#[derive(Copy, Clone)]
837pub struct tm_color_srgb_t {
838    pub r: u8,
839    pub g: u8,
840    pub b: u8,
841    pub a: u8,
842}
843#[repr(C)]
844#[derive(Copy, Clone)]
845pub struct tm_tt_id_t {
846    pub __bindgen_anon_1: tm_tt_id_t__bindgen_ty_1,
847}
848#[repr(C)]
849#[derive(Copy, Clone)]
850pub union tm_tt_id_t__bindgen_ty_1 {
851    pub u64_: u64,
852    pub __bindgen_anon_1: tm_tt_id_t__bindgen_ty_1__bindgen_ty_1,
853    _bindgen_union_align: u64,
854}
855#[repr(C)]
856#[repr(align(8))]
857#[derive(Copy, Clone)]
858pub struct tm_tt_id_t__bindgen_ty_1__bindgen_ty_1 {
859    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u32>,
860}
861impl tm_tt_id_t__bindgen_ty_1__bindgen_ty_1 {
862    #[inline]
863    pub fn type_(&self) -> u64 {
864        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 10u8) as u64) }
865    }
866    #[inline]
867    pub fn set_type(&mut self, val: u64) {
868        unsafe {
869            let val: u64 = ::std::mem::transmute(val);
870            self._bitfield_1.set(0usize, 10u8, val as u64)
871        }
872    }
873    #[inline]
874    pub fn generation(&self) -> u64 {
875        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 22u8) as u64) }
876    }
877    #[inline]
878    pub fn set_generation(&mut self, val: u64) {
879        unsafe {
880            let val: u64 = ::std::mem::transmute(val);
881            self._bitfield_1.set(10usize, 22u8, val as u64)
882        }
883    }
884    #[inline]
885    pub fn index(&self) -> u64 {
886        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
887    }
888    #[inline]
889    pub fn set_index(&mut self, val: u64) {
890        unsafe {
891            let val: u64 = ::std::mem::transmute(val);
892            self._bitfield_1.set(32usize, 32u8, val as u64)
893        }
894    }
895    #[inline]
896    pub fn new_bitfield_1(
897        type_: u64,
898        generation: u64,
899        index: u64,
900    ) -> __BindgenBitfieldUnit<[u8; 8usize], u32> {
901        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u32> =
902            Default::default();
903        __bindgen_bitfield_unit.set(0usize, 10u8, {
904            let type_: u64 = unsafe { ::std::mem::transmute(type_) };
905            type_ as u64
906        });
907        __bindgen_bitfield_unit.set(10usize, 22u8, {
908            let generation: u64 = unsafe { ::std::mem::transmute(generation) };
909            generation as u64
910        });
911        __bindgen_bitfield_unit.set(32usize, 32u8, {
912            let index: u64 = unsafe { ::std::mem::transmute(index) };
913            index as u64
914        });
915        __bindgen_bitfield_unit
916    }
917}
918#[repr(C)]
919#[derive(Copy, Clone)]
920pub struct tm_tt_undo_scope_t {
921    pub u64_: u64,
922}
923#[repr(C)]
924#[derive(Copy, Clone)]
925pub struct tm_allocator_o {
926    _unused: [u8; 0],
927}
928#[repr(C)]
929#[derive(Copy, Clone)]
930pub struct tm_allocator_i {
931    pub inst: *mut tm_allocator_o,
932    pub mem_scope: u32,
933    pub _padding_15: [::std::os::raw::c_char; 4usize],
934    pub realloc: ::std::option::Option<
935        unsafe extern "C" fn(
936            a: *mut tm_allocator_i,
937            ptr: *mut ::std::os::raw::c_void,
938            old_size: u64,
939            new_size: u64,
940            file: *const ::std::os::raw::c_char,
941            line: u32,
942        ) -> *mut ::std::os::raw::c_void,
943    >,
944}
945#[repr(C)]
946#[derive(Copy, Clone)]
947pub struct tm_allocator_statistics_t {
948    pub system_allocation_count: u64,
949    pub system_allocated_bytes: u64,
950    pub vm_reserved: u64,
951    pub vm_committed: u64,
952    pub system_churn_allocation_count: u64,
953    pub system_churn_allocated_bytes: u64,
954    pub vm_churn_committed: u64,
955}
956#[repr(C)]
957#[derive(Copy, Clone)]
958pub struct tm_allocator_api {
959    pub system: *mut tm_allocator_i,
960    pub end_of_page: *mut tm_allocator_i,
961    pub vm: *mut tm_allocator_i,
962    pub statistics: *mut tm_allocator_statistics_t,
963    pub create_child: ::std::option::Option<
964        unsafe extern "C" fn(
965            parent: *const tm_allocator_i,
966            desc: *const ::std::os::raw::c_char,
967        ) -> tm_allocator_i,
968    >,
969    pub destroy_child: ::std::option::Option<unsafe extern "C" fn(child: *const tm_allocator_i)>,
970    pub destroy_child_allowing_leaks: ::std::option::Option<
971        unsafe extern "C" fn(child: *const tm_allocator_i, max_leaked_bytes: u64),
972    >,
973    pub create_leaky_root_scope: ::std::option::Option<
974        unsafe extern "C" fn(
975            parent: *const tm_allocator_i,
976            desc: *const ::std::os::raw::c_char,
977        ) -> tm_allocator_i,
978    >,
979    pub create_fixed_vm: ::std::option::Option<
980        unsafe extern "C" fn(reserve_size: u64, mem_scope: u32) -> tm_allocator_i,
981    >,
982}
983#[repr(C)]
984#[derive(Copy, Clone)]
985pub struct tm_api_registry_listener_i {
986    pub ud: *mut ::std::os::raw::c_void,
987    pub add_implementation: ::std::option::Option<
988        unsafe extern "C" fn(
989            ud: *mut ::std::os::raw::c_void,
990            name: *const ::std::os::raw::c_char,
991            implementation: *mut ::std::os::raw::c_void,
992        ),
993    >,
994}
995#[repr(C)]
996#[derive(Copy, Clone)]
997pub struct tm_api_registry_api {
998    pub set: ::std::option::Option<
999        unsafe extern "C" fn(
1000            name: *const ::std::os::raw::c_char,
1001            api: *mut ::std::os::raw::c_void,
1002            bytes: u32,
1003        ),
1004    >,
1005    pub remove: ::std::option::Option<unsafe extern "C" fn(api: *mut ::std::os::raw::c_void)>,
1006    pub get: ::std::option::Option<
1007        unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
1008    >,
1009    pub get_optional: ::std::option::Option<
1010        unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
1011    >,
1012    pub add_implementation: ::std::option::Option<
1013        unsafe extern "C" fn(
1014            name: *const ::std::os::raw::c_char,
1015            implementation: *mut ::std::os::raw::c_void,
1016        ),
1017    >,
1018    pub remove_implementation: ::std::option::Option<
1019        unsafe extern "C" fn(
1020            name: *const ::std::os::raw::c_char,
1021            implementation: *mut ::std::os::raw::c_void,
1022        ),
1023    >,
1024    pub implementations: ::std::option::Option<
1025        unsafe extern "C" fn(
1026            name: *const ::std::os::raw::c_char,
1027            count: *mut u32,
1028        ) -> *mut *mut ::std::os::raw::c_void,
1029    >,
1030    pub add_listener:
1031        ::std::option::Option<unsafe extern "C" fn(listener: *const tm_api_registry_listener_i)>,
1032    pub static_variable: ::std::option::Option<
1033        unsafe extern "C" fn(
1034            id: u64,
1035            size: u32,
1036            file: *const ::std::os::raw::c_char,
1037            line: u32,
1038        ) -> *mut ::std::os::raw::c_void,
1039    >,
1040    pub log_missing_apis: ::std::option::Option<unsafe extern "C" fn()>,
1041}
1042#[repr(C)]
1043#[derive(Copy, Clone)]
1044pub struct tm_ui_o {
1045    _unused: [u8; 0],
1046}
1047#[repr(C)]
1048#[derive(Copy, Clone)]
1049pub struct tm_viewer_o {
1050    _unused: [u8; 0],
1051}
1052#[repr(C)]
1053#[derive(Copy, Clone)]
1054pub struct tm_application_o {
1055    _unused: [u8; 0],
1056}
1057pub type tm_application_modal_f = ::std::option::Option<
1058    unsafe extern "C" fn(
1059        data: *mut ::std::os::raw::c_void,
1060        ui: *mut tm_ui_o,
1061        rect: tm_rect_t,
1062        font: u32,
1063        font_info: *const tm_font_t,
1064        font_scale: f32,
1065        ui_has_focus: bool,
1066    ) -> bool,
1067>;
1068#[repr(C)]
1069#[derive(Copy, Clone)]
1070pub struct tm_application_api {
1071    pub application: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_application_o>,
1072    pub create: ::std::option::Option<
1073        unsafe extern "C" fn(
1074            argc: ::std::os::raw::c_int,
1075            argv: *mut *mut ::std::os::raw::c_char,
1076        ) -> *mut tm_application_o,
1077    >,
1078    pub tick: ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o) -> bool>,
1079    pub destroy: ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o)>,
1080    pub set_modal: ::std::option::Option<
1081        unsafe extern "C" fn(
1082            app: *mut tm_application_o,
1083            f: tm_application_modal_f,
1084            data: *mut ::std::os::raw::c_void,
1085        ),
1086    >,
1087    pub is_modal: ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> bool>,
1088    pub asset_root:
1089        ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> tm_tt_id_t>,
1090    pub load_core:
1091        ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> bool>,
1092    pub update_core:
1093        ::std::option::Option<unsafe extern "C" fn(app: *const tm_application_o) -> bool>,
1094    pub set_cursor_hidden:
1095        ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o, hidden: bool)>,
1096    pub exit: ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o)>,
1097    pub viewer_manager: ::std::option::Option<
1098        unsafe extern "C" fn(app: *mut tm_application_o) -> *mut tm_viewer_manager_o,
1099    >,
1100    pub default_render_pipeline_api: ::std::option::Option<
1101        unsafe extern "C" fn(app: *mut tm_application_o) -> *mut tm_render_pipeline_api,
1102    >,
1103    pub ui_scale_factor: ::std::option::Option<
1104        unsafe extern "C" fn(app: *mut tm_application_o, ui: *mut tm_ui_o) -> f32,
1105    >,
1106}
1107#[repr(C)]
1108#[derive(Copy, Clone)]
1109pub struct tm_the_truth_o {
1110    _unused: [u8; 0],
1111}
1112#[repr(C)]
1113#[derive(Copy, Clone)]
1114pub struct tm_asset_database_config_t {
1115    pub allocator: *mut tm_allocator_i,
1116    pub fs: *mut tm_os_file_system_api,
1117    pub file_io: *mut tm_os_file_io_api,
1118}
1119#[repr(C)]
1120#[derive(Copy, Clone)]
1121pub struct tm_asset_dabase_saved_item_t {
1122    pub uuid: tm_uuid_t,
1123    pub is_directory: bool,
1124    pub _padding_30: [::std::os::raw::c_char; 7usize],
1125}
1126#[repr(C)]
1127#[derive(Copy, Clone)]
1128pub struct tm_asset_database_o {
1129    _unused: [u8; 0],
1130}
1131#[repr(C)]
1132#[derive(Copy, Clone)]
1133pub struct tm_asset_database_api {
1134    pub create: ::std::option::Option<
1135        unsafe extern "C" fn(
1136            file: *const ::std::os::raw::c_char,
1137            tt: *mut tm_the_truth_o,
1138            config: *const tm_asset_database_config_t,
1139        ) -> *mut tm_asset_database_o,
1140    >,
1141    pub open: ::std::option::Option<
1142        unsafe extern "C" fn(
1143            file: *const ::std::os::raw::c_char,
1144            tt: *mut tm_the_truth_o,
1145            config: *const tm_asset_database_config_t,
1146        ) -> *mut tm_asset_database_o,
1147    >,
1148    pub close: ::std::option::Option<unsafe extern "C" fn(db: *mut tm_asset_database_o)>,
1149    pub save_modified: ::std::option::Option<
1150        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset_root: tm_tt_id_t),
1151    >,
1152    pub save_modified_except: ::std::option::Option<
1153        unsafe extern "C" fn(
1154            db: *mut tm_asset_database_o,
1155            asset_root: tm_tt_id_t,
1156            ignore: *mut tm_tt_id_t,
1157            num_ignore: u32,
1158        ),
1159    >,
1160    pub save_asset: ::std::option::Option<
1161        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset: tm_tt_id_t),
1162    >,
1163    pub delete_asset: ::std::option::Option<
1164        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset: tm_tt_id_t),
1165    >,
1166    pub revert_asset: ::std::option::Option<
1167        unsafe extern "C" fn(
1168            db: *mut tm_asset_database_o,
1169            asset: tm_tt_id_t,
1170            undo_scope: tm_tt_undo_scope_t,
1171        ) -> bool,
1172    >,
1173    pub load:
1174        ::std::option::Option<unsafe extern "C" fn(db: *mut tm_asset_database_o) -> tm_tt_id_t>,
1175    pub saved_name: ::std::option::Option<
1176        unsafe extern "C" fn(
1177            db: *mut tm_asset_database_o,
1178            item: tm_uuid_t,
1179        ) -> *const ::std::os::raw::c_char,
1180    >,
1181    pub saved_directory: ::std::option::Option<
1182        unsafe extern "C" fn(db: *mut tm_asset_database_o, item: tm_uuid_t) -> tm_uuid_t,
1183    >,
1184    pub saved_version: ::std::option::Option<
1185        unsafe extern "C" fn(db: *mut tm_asset_database_o, asset: tm_uuid_t) -> u64,
1186    >,
1187    pub all_saved_items: ::std::option::Option<
1188        unsafe extern "C" fn(
1189            db: *mut tm_asset_database_o,
1190            ta: *mut tm_temp_allocator_i,
1191        ) -> *mut tm_asset_dabase_saved_item_t,
1192    >,
1193}
1194#[repr(C)]
1195#[derive(Copy, Clone)]
1196pub struct tm_asset_io_import {
1197    pub allocator: *mut tm_allocator_i,
1198    pub tt: *mut tm_the_truth_o,
1199    pub reimport_into: tm_tt_id_t,
1200    pub target_dir: tm_tt_id_t,
1201    pub asset_root: tm_tt_id_t,
1202    pub ui: *mut tm_ui_o,
1203    pub asset_browser: tm_tt_id_t,
1204    pub asset_browser_version_at_start: u64,
1205    pub undo_scope: tm_tt_undo_scope_t,
1206}
1207#[repr(C)]
1208#[derive(Copy, Clone)]
1209pub struct tm_asset_io_i {
1210    pub inst: *mut tm_asset_io_o,
1211    pub enabled: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_io_o) -> bool>,
1212    pub can_import: ::std::option::Option<
1213        unsafe extern "C" fn(
1214            inst: *mut tm_asset_io_o,
1215            extension: *const ::std::os::raw::c_char,
1216        ) -> bool,
1217    >,
1218    pub can_reimport: ::std::option::Option<
1219        unsafe extern "C" fn(
1220            inst: *mut tm_asset_io_o,
1221            tt: *mut tm_the_truth_o,
1222            asset: tm_tt_id_t,
1223        ) -> bool,
1224    >,
1225    pub importer_extensions_string: ::std::option::Option<
1226        unsafe extern "C" fn(
1227            inst: *mut tm_asset_io_o,
1228            output: *mut *mut ::std::os::raw::c_char,
1229            ta: *mut tm_temp_allocator_i,
1230            separator: *const ::std::os::raw::c_char,
1231        ),
1232    >,
1233    pub importer_description_string: ::std::option::Option<
1234        unsafe extern "C" fn(
1235            inst: *mut tm_asset_io_o,
1236            output: *mut *mut ::std::os::raw::c_char,
1237            ta: *mut tm_temp_allocator_i,
1238            separator: *const ::std::os::raw::c_char,
1239        ),
1240    >,
1241    pub import_asset: ::std::option::Option<
1242        unsafe extern "C" fn(
1243            inst: *mut tm_asset_io_o,
1244            file: *const ::std::os::raw::c_char,
1245            import: *const tm_asset_io_import,
1246        ) -> u64,
1247    >,
1248    pub can_export: ::std::option::Option<
1249        unsafe extern "C" fn(
1250            inst: *mut tm_asset_io_o,
1251            tt: *mut tm_the_truth_o,
1252            asset: tm_tt_id_t,
1253        ) -> bool,
1254    >,
1255    pub exporter_extension: ::std::option::Option<
1256        unsafe extern "C" fn(
1257            inst: *mut tm_asset_io_o,
1258            tt: *mut tm_the_truth_o,
1259            asset: tm_tt_id_t,
1260        ) -> *const ::std::os::raw::c_char,
1261    >,
1262    pub export_asset: ::std::option::Option<
1263        unsafe extern "C" fn(
1264            inst: *mut tm_asset_io_o,
1265            file: *const ::std::os::raw::c_char,
1266            tt: *mut tm_the_truth_o,
1267            asset_root: tm_tt_id_t,
1268            asset: tm_tt_id_t,
1269        ),
1270    >,
1271}
1272#[repr(C)]
1273#[derive(Copy, Clone)]
1274pub struct tm_asset_io_api {
1275    pub add_asset_io: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_asset_io_i)>,
1276    pub remove_asset_io: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_asset_io_i)>,
1277    pub importer: ::std::option::Option<
1278        unsafe extern "C" fn(extension: *const ::std::os::raw::c_char) -> *mut tm_asset_io_i,
1279    >,
1280    pub reimporter: ::std::option::Option<
1281        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset: tm_tt_id_t) -> *mut tm_asset_io_i,
1282    >,
1283    pub exporter: ::std::option::Option<
1284        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset: tm_tt_id_t) -> *mut tm_asset_io_i,
1285    >,
1286    pub io_interfaces:
1287        ::std::option::Option<unsafe extern "C" fn(interfaces: *mut *mut tm_asset_io_i) -> u32>,
1288}
1289#[repr(C)]
1290#[derive(Copy, Clone)]
1291pub struct tm_base_64_api {
1292    pub encoded_size: ::std::option::Option<unsafe extern "C" fn(raw_size: u64) -> u64>,
1293    pub encode: ::std::option::Option<
1294        unsafe extern "C" fn(
1295            encoded: *mut ::std::os::raw::c_char,
1296            raw: *const u8,
1297            raw_size: u64,
1298        ) -> u64,
1299    >,
1300    pub decoded_size: ::std::option::Option<
1301        unsafe extern "C" fn(encoded: *const ::std::os::raw::c_char, encoded_size: u64) -> u64,
1302    >,
1303    pub decode: ::std::option::Option<
1304        unsafe extern "C" fn(
1305            raw: *mut u8,
1306            encoded: *const ::std::os::raw::c_char,
1307            encoded_size: u64,
1308        ) -> u64,
1309    >,
1310}
1311pub const tm_bounding_volume_type_TM_BOUNDING_VOLUME_TYPE_SPHERE: tm_bounding_volume_type = 0;
1312pub const tm_bounding_volume_type_TM_BOUNDING_VOLUME_TYPE_BOX: tm_bounding_volume_type = 1;
1313pub type tm_bounding_volume_type = ::std::os::raw::c_int;
1314#[repr(C)]
1315#[derive(Copy, Clone)]
1316pub struct tm_bounding_volume_sphere_t {
1317    pub visibility_mask: u64,
1318    pub culling_disabled: bool,
1319    pub _padding_16: [::std::os::raw::c_char; 3usize],
1320    pub position: tm_vec3_t,
1321    pub radius: f32,
1322    pub _padding_19: [::std::os::raw::c_char; 4usize],
1323}
1324#[repr(C)]
1325#[derive(Copy, Clone)]
1326pub struct tm_bounding_volume_box_t {
1327    pub visibility_mask: u64,
1328    pub culling_disabled: bool,
1329    pub _padding_26: [::std::os::raw::c_char; 3usize],
1330    pub tm: tm_mat44_t,
1331    pub min: tm_vec3_t,
1332    pub max: tm_vec3_t,
1333    pub _padding_30: [::std::os::raw::c_char; 4usize],
1334}
1335#[repr(C)]
1336#[derive(Copy, Clone)]
1337pub struct tm_buddy_allocator_raw_api {
1338    pub init:
1339        ::std::option::Option<unsafe extern "C" fn(buffer: *mut u8, size: u32, block_size: u32)>,
1340    pub realloc: ::std::option::Option<
1341        unsafe extern "C" fn(
1342            buffer: *mut u8,
1343            ptr: *mut ::std::os::raw::c_void,
1344            old_size: u64,
1345            new_size: u64,
1346        ) -> *mut ::std::os::raw::c_void,
1347    >,
1348}
1349#[repr(C)]
1350#[derive(Copy, Clone)]
1351pub struct tm_buddy_allocator_api {
1352    pub create: ::std::option::Option<
1353        unsafe extern "C" fn(
1354            backing: *mut tm_allocator_i,
1355            initial_size: u32,
1356            block_size: u32,
1357        ) -> *mut tm_allocator_i,
1358    >,
1359    pub destroy: ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i)>,
1360}
1361#[repr(C)]
1362#[derive(Copy, Clone)]
1363pub struct tm_buffers_o {
1364    _unused: [u8; 0],
1365}
1366#[repr(C)]
1367#[derive(Copy, Clone)]
1368pub struct tm_buffers_i {
1369    pub inst: *mut tm_buffers_o,
1370    pub allocate: ::std::option::Option<
1371        unsafe extern "C" fn(
1372            inst: *mut tm_buffers_o,
1373            size: u64,
1374            initialize: *const ::std::os::raw::c_void,
1375        ) -> *mut ::std::os::raw::c_void,
1376    >,
1377    pub add: ::std::option::Option<
1378        unsafe extern "C" fn(
1379            inst: *mut tm_buffers_o,
1380            data: *const ::std::os::raw::c_void,
1381            size: u64,
1382            hash: u64,
1383        ) -> u32,
1384    >,
1385    pub retain: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o, id: u32)>,
1386    pub release: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o, id: u32)>,
1387    pub get: ::std::option::Option<
1388        unsafe extern "C" fn(
1389            inst: *const tm_buffers_o,
1390            id: u32,
1391            size: *mut u64,
1392        ) -> *const ::std::os::raw::c_void,
1393    >,
1394    pub size:
1395        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> u64>,
1396    pub hash:
1397        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> u64>,
1398    pub lookup:
1399        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, hash: u64) -> u32>,
1400    pub debug__refcount:
1401        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> u32>,
1402}
1403#[repr(C)]
1404#[derive(Copy, Clone)]
1405pub struct tm_streamable_buffers_i {
1406    pub __bindgen_padding_0: [u64; 10usize],
1407    pub map: ::std::option::Option<
1408        unsafe extern "C" fn(
1409            inst: *mut tm_buffers_o,
1410            path: *const ::std::os::raw::c_char,
1411            offset: u64,
1412            size: u64,
1413            hash: u64,
1414        ) -> u32,
1415    >,
1416    pub map_database: ::std::option::Option<
1417        unsafe extern "C" fn(
1418            inst: *mut tm_buffers_o,
1419            hash: u64,
1420            size: u64,
1421            file: *const tm_file_o,
1422            page_size: u32,
1423            page_header_size: u32,
1424            first_page: u32,
1425        ) -> u32,
1426    >,
1427    pub is_mapped:
1428        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> bool>,
1429    pub is_loaded:
1430        ::std::option::Option<unsafe extern "C" fn(inst: *const tm_buffers_o, id: u32) -> bool>,
1431    pub unload: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o, id: u32)>,
1432    pub save: ::std::option::Option<
1433        unsafe extern "C" fn(
1434            inst: *mut tm_buffers_o,
1435            id: u32,
1436            path: *const ::std::os::raw::c_char,
1437            offset: u64,
1438        ),
1439    >,
1440    pub background_load_all: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o)>,
1441    pub ensure_all_loaded: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_buffers_o)>,
1442    pub set_io: ::std::option::Option<
1443        unsafe extern "C" fn(inst: *mut tm_buffers_o, io: *mut tm_os_file_io_api),
1444    >,
1445}
1446#[repr(C)]
1447#[derive(Copy, Clone)]
1448pub struct tm_buffers_api {
1449    pub create:
1450        ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_buffers_i>,
1451    pub destroy: ::std::option::Option<unsafe extern "C" fn(i: *mut tm_buffers_i)>,
1452    pub create_streamable: ::std::option::Option<
1453        unsafe extern "C" fn(
1454            a: *mut tm_allocator_i,
1455            io: *mut tm_os_file_io_api,
1456        ) -> *mut tm_streamable_buffers_i,
1457    >,
1458    pub destroy_streamable:
1459        ::std::option::Option<unsafe extern "C" fn(i: *mut tm_streamable_buffers_i)>,
1460}
1461pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_FLOAT: tm_buffer_component_type = 0;
1462pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_NORMALIZED_INTEGER:
1463    tm_buffer_component_type = 1;
1464pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_INTEGER: tm_buffer_component_type = 2;
1465pub const tm_buffer_component_type_TM_BUFFER_COMPONENT_TYPE_DEPTH_STENCIL:
1466    tm_buffer_component_type = 3;
1467pub type tm_buffer_component_type = ::std::os::raw::c_int;
1468pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC1_RGB:
1469    tm_buffer_compression_format = 0;
1470pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC1_RGBA:
1471    tm_buffer_compression_format = 1;
1472pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC2:
1473    tm_buffer_compression_format = 2;
1474pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC3:
1475    tm_buffer_compression_format = 3;
1476pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC4:
1477    tm_buffer_compression_format = 4;
1478pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC5:
1479    tm_buffer_compression_format = 5;
1480pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC6H_U:
1481    tm_buffer_compression_format = 6;
1482pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC6H_S:
1483    tm_buffer_compression_format = 7;
1484pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_BC7:
1485    tm_buffer_compression_format = 8;
1486pub const tm_buffer_compression_format_TM_BUFFER_COMPRESSION_FORMAT_MAX_FORMATS:
1487    tm_buffer_compression_format = 9;
1488pub type tm_buffer_compression_format = ::std::os::raw::c_int;
1489#[repr(C)]
1490#[derive(Copy, Clone)]
1491pub struct tm_buffer_format_api {
1492    pub encode_uncompressed_format: ::std::option::Option<
1493        unsafe extern "C" fn(
1494            component_type: u32,
1495            sign: bool,
1496            bits_x: u8,
1497            bits_y: u8,
1498            bits_z: u8,
1499            bits_w: u8,
1500        ) -> u32,
1501    >,
1502    pub encode_compressed_format:
1503        ::std::option::Option<unsafe extern "C" fn(compression_type: u32) -> u32>,
1504    pub is_compressed: ::std::option::Option<unsafe extern "C" fn(format: u32) -> bool>,
1505    pub decode_uncompressed: ::std::option::Option<
1506        unsafe extern "C" fn(
1507            format: u32,
1508            component_type: *mut u32,
1509            sign: *mut bool,
1510            bits_x: *mut u8,
1511            bits_y: *mut u8,
1512            bits_z: *mut u8,
1513            bits_w: *mut u8,
1514        ) -> bool,
1515    >,
1516    pub decode_compression_format: ::std::option::Option<
1517        unsafe extern "C" fn(format: u32, compression_format: *mut u32) -> bool,
1518    >,
1519    pub bits_per_element: ::std::option::Option<unsafe extern "C" fn(format: u32) -> u32>,
1520    pub num_components: ::std::option::Option<unsafe extern "C" fn(format: u32) -> u32>,
1521    pub human_readable: ::std::option::Option<
1522        unsafe extern "C" fn(
1523            format: u32,
1524            ta: *mut tm_temp_allocator_i,
1525        ) -> *const ::std::os::raw::c_char,
1526    >,
1527}
1528pub const tm_camera_transform_TM_CAMERA_TRANSFORM_DEFAULT: tm_camera_transform = 0;
1529pub const tm_camera_transform_TM_CAMERA_TRANSFORM_EYE_LEFT: tm_camera_transform = 1;
1530pub const tm_camera_transform_TM_CAMERA_TRANSFORM_EYE_RIGHT: tm_camera_transform = 2;
1531pub const tm_camera_transform_TM_CAMERA_TRANSFORM_MAX_TRANSFORMS: tm_camera_transform = 3;
1532pub type tm_camera_transform = ::std::os::raw::c_int;
1533#[repr(C)]
1534#[derive(Copy, Clone)]
1535pub struct tm_camera_t {
1536    pub projection: [tm_mat44_t; 3usize],
1537    pub view: [tm_mat44_t; 3usize],
1538    pub near_plane: f32,
1539    pub far_plane: f32,
1540    pub vertical_fov: f32,
1541}
1542#[repr(C)]
1543#[derive(Copy, Clone)]
1544pub struct tm_camera_api {
1545    pub view_from_transform: ::std::option::Option<
1546        unsafe extern "C" fn(view: *mut tm_mat44_t, tm: *const tm_transform_t) -> *mut tm_mat44_t,
1547    >,
1548    pub transform_from_view: ::std::option::Option<
1549        unsafe extern "C" fn(
1550            tm: *mut tm_transform_t,
1551            view: *const tm_mat44_t,
1552        ) -> *mut tm_transform_t,
1553    >,
1554    pub projection_from_frustum: ::std::option::Option<
1555        unsafe extern "C" fn(
1556            proj: *mut tm_mat44_t,
1557            left: f32,
1558            right: f32,
1559            bottom: f32,
1560            top: f32,
1561            near: f32,
1562            far: f32,
1563        ) -> *mut tm_mat44_t,
1564    >,
1565    pub projection_from_fov: ::std::option::Option<
1566        unsafe extern "C" fn(
1567            proj: *mut tm_mat44_t,
1568            near_plane: f32,
1569            far_plane: f32,
1570            vertical_fov: f32,
1571            aspect: f32,
1572        ) -> *mut tm_mat44_t,
1573    >,
1574    pub orthographic_from_frustum: ::std::option::Option<
1575        unsafe extern "C" fn(
1576            proj: *mut tm_mat44_t,
1577            left: f32,
1578            right: f32,
1579            bottom: f32,
1580            top: f32,
1581            near: f32,
1582            far: f32,
1583        ) -> *mut tm_mat44_t,
1584    >,
1585    pub update_free_flight: ::std::option::Option<
1586        unsafe extern "C" fn(tm: *mut tm_transform_t, t: tm_vec3_t, r: tm_vec2_t),
1587    >,
1588    pub update_pan: ::std::option::Option<
1589        unsafe extern "C" fn(
1590            tm: *mut tm_transform_t,
1591            focus_position: *mut tm_vec3_t,
1592            pan: tm_vec2_t,
1593        ),
1594    >,
1595    pub update_maya: ::std::option::Option<
1596        unsafe extern "C" fn(
1597            tm: *mut tm_transform_t,
1598            focus_position: tm_vec3_t,
1599            zoom: f32,
1600            rot: tm_vec2_t,
1601        ),
1602    >,
1603    pub world_to_screen: ::std::option::Option<
1604        unsafe extern "C" fn(
1605            camera: *const tm_camera_t,
1606            transform: tm_camera_transform,
1607            viewport: tm_rect_t,
1608            world: *const tm_vec3_t,
1609            screen: *mut tm_vec3_t,
1610            n: u32,
1611        ) -> *mut tm_vec3_t,
1612    >,
1613    pub screen_to_world: ::std::option::Option<
1614        unsafe extern "C" fn(
1615            camera: *const tm_camera_t,
1616            transform: tm_camera_transform,
1617            viewport: tm_rect_t,
1618            screen: *const tm_vec3_t,
1619            world: *mut tm_vec3_t,
1620            n: u32,
1621        ) -> *mut tm_vec3_t,
1622    >,
1623    pub meters_per_pixel: ::std::option::Option<
1624        unsafe extern "C" fn(distance: f32, vertical_fov: f32, viewport_height: f32) -> f32,
1625    >,
1626}
1627pub const tm_collaboration_status_TM_COLLABORATION_STATUS_DISCONNECTED: tm_collaboration_status = 0;
1628pub const tm_collaboration_status_TM_COLLABORATION_STATUS_HOST_STARTING: tm_collaboration_status =
1629    1;
1630pub const tm_collaboration_status_TM_COLLABORATION_STATUS_HOST: tm_collaboration_status = 2;
1631pub const tm_collaboration_status_TM_COLLABORATION_STATUS_CONNECTING: tm_collaboration_status = 3;
1632pub const tm_collaboration_status_TM_COLLABORATION_STATUS_CLIENT: tm_collaboration_status = 4;
1633pub const tm_collaboration_status_TM_COLLABORATION_STATUS_ERROR: tm_collaboration_status = 5;
1634pub type tm_collaboration_status = ::std::os::raw::c_int;
1635#[repr(C)]
1636#[derive(Copy, Clone)]
1637pub struct tm_collaboration_config_t {
1638    pub tt: *mut tm_the_truth_o,
1639    pub ud: *mut ::std::os::raw::c_void,
1640    pub host_save_state: ::std::option::Option<
1641        unsafe extern "C" fn(
1642            ud: *mut ::std::os::raw::c_void,
1643            carray: *mut *mut ::std::os::raw::c_char,
1644            a: *mut tm_allocator_i,
1645        ),
1646    >,
1647    pub client_reset_truth: ::std::option::Option<
1648        unsafe extern "C" fn(ud: *mut ::std::os::raw::c_void) -> *mut tm_the_truth_o,
1649    >,
1650    pub client_decompress_state: ::std::option::Option<
1651        unsafe extern "C" fn(
1652            app_ud: *mut ::std::os::raw::c_void,
1653            state: *const ::std::os::raw::c_char,
1654            size: u64,
1655            allocator: *mut tm_allocator_i,
1656        ) -> *mut ::std::os::raw::c_char,
1657    >,
1658    pub client_buffer_hashes: ::std::option::Option<
1659        unsafe extern "C" fn(
1660            ud: *mut ::std::os::raw::c_void,
1661            state: *const ::std::os::raw::c_char,
1662            size: u64,
1663            count: *mut u64,
1664        ) -> *const u64,
1665    >,
1666    pub client_load_state: ::std::option::Option<
1667        unsafe extern "C" fn(
1668            ud: *mut ::std::os::raw::c_void,
1669            state: *const ::std::os::raw::c_char,
1670            size: u64,
1671        ) -> bool,
1672    >,
1673    pub cache_dir: *const ::std::os::raw::c_char,
1674}
1675pub const tm_collaboration_session_type_TM_COLLABORATION_SESSION_TYPE_NONE:
1676    tm_collaboration_session_type = 0;
1677pub const tm_collaboration_session_type_TM_COLLABORATION_SESSION_TYPE_HOST:
1678    tm_collaboration_session_type = 1;
1679pub const tm_collaboration_session_type_TM_COLLABORATION_SESSION_TYPE_CLIENT:
1680    tm_collaboration_session_type = 2;
1681pub type tm_collaboration_session_type = ::std::os::raw::c_int;
1682pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_DISCONNECTED:
1683    tm_collaboration_session_status = 0;
1684pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_CONNECTING:
1685    tm_collaboration_session_status = 1;
1686pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_CONNECTED:
1687    tm_collaboration_session_status = 2;
1688pub const tm_collaboration_session_status_TM_COLLABORATION_SESSION_STATUS_ERROR:
1689    tm_collaboration_session_status = 3;
1690pub type tm_collaboration_session_status = ::std::os::raw::c_int;
1691#[repr(C)]
1692#[derive(Copy, Clone)]
1693pub struct tm_collaboration_session_o {
1694    _unused: [u8; 0],
1695}
1696#[repr(C)]
1697#[derive(Copy, Clone)]
1698pub struct tm_collaboration_session_i {
1699    pub inst: *mut tm_collaboration_session_o,
1700    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o)>,
1701    pub architecture:
1702        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o) -> u64>,
1703    pub host_id:
1704        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o) -> u64>,
1705    pub get_client_request: ::std::option::Option<
1706        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: *mut u64) -> bool,
1707    >,
1708    pub accept_client: ::std::option::Option<
1709        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64),
1710    >,
1711    pub send: ::std::option::Option<
1712        unsafe extern "C" fn(
1713            inst: *mut tm_collaboration_session_o,
1714            client_id: u64,
1715            buf: *const u8,
1716            size: u64,
1717        ),
1718    >,
1719    pub flush: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o)>,
1720    pub update: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_session_o)>,
1721    pub get_package_data: ::std::option::Option<
1722        unsafe extern "C" fn(
1723            inst: *mut tm_collaboration_session_o,
1724            client_id: u64,
1725            data: *mut u8,
1726            size: *mut u64,
1727        ) -> bool,
1728    >,
1729    pub close_client: ::std::option::Option<
1730        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64),
1731    >,
1732    pub send_ping: ::std::option::Option<
1733        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64),
1734    >,
1735    pub type_: ::std::option::Option<
1736        unsafe extern "C" fn(
1737            inst: *mut tm_collaboration_session_o,
1738        ) -> tm_collaboration_session_type,
1739    >,
1740    pub status: ::std::option::Option<
1741        unsafe extern "C" fn(
1742            inst: *mut tm_collaboration_session_o,
1743        ) -> tm_collaboration_session_status,
1744    >,
1745    pub is_client_alive: ::std::option::Option<
1746        unsafe extern "C" fn(inst: *mut tm_collaboration_session_o, client_id: u64) -> bool,
1747    >,
1748    pub receive_progress: ::std::option::Option<
1749        unsafe extern "C" fn(
1750            inst: *const tm_collaboration_session_o,
1751            bytes: *mut u64,
1752            total: *mut u64,
1753        ) -> bool,
1754    >,
1755    pub status_message: ::std::option::Option<
1756        unsafe extern "C" fn(
1757            inst: *mut tm_collaboration_session_o,
1758            buf: *mut ::std::os::raw::c_char,
1759            max_size: u32,
1760        ),
1761    >,
1762}
1763#[repr(C)]
1764#[derive(Copy, Clone)]
1765pub struct tm_collaboration_o {
1766    _unused: [u8; 0],
1767}
1768#[repr(C)]
1769#[derive(Copy, Clone)]
1770pub struct tm_collaboration_api {
1771    pub create: ::std::option::Option<
1772        unsafe extern "C" fn(
1773            a: *mut tm_allocator_i,
1774            config: *const tm_collaboration_config_t,
1775        ) -> *mut tm_collaboration_o,
1776    >,
1777    pub destroy: ::std::option::Option<unsafe extern "C" fn(coll: *mut tm_collaboration_o)>,
1778    pub status: ::std::option::Option<
1779        unsafe extern "C" fn(coll: *const tm_collaboration_o) -> tm_collaboration_status,
1780    >,
1781    pub is_downloading: ::std::option::Option<
1782        unsafe extern "C" fn(
1783            coll: *const tm_collaboration_o,
1784            bytes: *mut u64,
1785            total: *mut u64,
1786        ) -> bool,
1787    >,
1788    pub set_session: ::std::option::Option<
1789        unsafe extern "C" fn(
1790            coll: *mut tm_collaboration_o,
1791            session: *const tm_collaboration_session_i,
1792        ),
1793    >,
1794    pub session: ::std::option::Option<
1795        unsafe extern "C" fn(coll: *mut tm_collaboration_o) -> *mut tm_collaboration_session_i,
1796    >,
1797    pub disconnect: ::std::option::Option<unsafe extern "C" fn(coll: *mut tm_collaboration_o)>,
1798    pub update: ::std::option::Option<unsafe extern "C" fn(coll: *mut tm_collaboration_o)>,
1799    pub handle: ::std::option::Option<
1800        unsafe extern "C" fn(coll: *const tm_collaboration_o) -> *const ::std::os::raw::c_char,
1801    >,
1802    pub set_handle: ::std::option::Option<
1803        unsafe extern "C" fn(c: *mut tm_collaboration_o, handle: *mut ::std::os::raw::c_char),
1804    >,
1805    pub host_handle: ::std::option::Option<
1806        unsafe extern "C" fn(c: *const tm_collaboration_o) -> *const ::std::os::raw::c_char,
1807    >,
1808    pub num_clients:
1809        ::std::option::Option<unsafe extern "C" fn(coll: *const tm_collaboration_o) -> u32>,
1810    pub client_handle: ::std::option::Option<
1811        unsafe extern "C" fn(
1812            coll: *const tm_collaboration_o,
1813            i: u32,
1814        ) -> *const ::std::os::raw::c_char,
1815    >,
1816    pub all_handles: ::std::option::Option<
1817        unsafe extern "C" fn(
1818            coll: *const tm_collaboration_o,
1819            ta: *mut tm_temp_allocator_i,
1820        ) -> *mut *const ::std::os::raw::c_char,
1821    >,
1822    pub send_chat: ::std::option::Option<
1823        unsafe extern "C" fn(coll: *mut tm_collaboration_o, msg: *const ::std::os::raw::c_char),
1824    >,
1825    pub num_chat_messages:
1826        ::std::option::Option<unsafe extern "C" fn(coll: *const tm_collaboration_o) -> u32>,
1827    pub chat_message: ::std::option::Option<
1828        unsafe extern "C" fn(
1829            coll: *const tm_collaboration_o,
1830            i: u32,
1831            sender: *mut *const ::std::os::raw::c_char,
1832        ) -> *const ::std::os::raw::c_char,
1833    >,
1834    pub resynchronize_state: ::std::option::Option<
1835        unsafe extern "C" fn(coll: *mut tm_collaboration_o, tt: *mut tm_the_truth_o),
1836    >,
1837    pub send_test_packages: ::std::option::Option<
1838        unsafe extern "C" fn(coll: *mut tm_collaboration_o, size: u64, num: u32),
1839    >,
1840}
1841#[repr(C)]
1842#[derive(Copy, Clone)]
1843pub struct tm_collaboration_p2p_o {
1844    _unused: [u8; 0],
1845}
1846#[repr(C)]
1847#[derive(Copy, Clone)]
1848pub struct tm_collaboration_discovered_host_t {
1849    pub address: *const tm_socket_address_t,
1850    pub name: *const ::std::os::raw::c_char,
1851}
1852#[repr(C)]
1853#[derive(Copy, Clone)]
1854pub struct tm_collaboration_p2p_api {
1855    pub create: ::std::option::Option<
1856        unsafe extern "C" fn(
1857            coll: *mut tm_collaboration_o,
1858            allocator: *mut tm_allocator_i,
1859        ) -> *mut tm_collaboration_p2p_o,
1860    >,
1861    pub destroy: ::std::option::Option<unsafe extern "C" fn(coll_p2p: *mut tm_collaboration_p2p_o)>,
1862    pub update: ::std::option::Option<unsafe extern "C" fn(coll_p2p: *mut tm_collaboration_p2p_o)>,
1863    pub host: ::std::option::Option<
1864        unsafe extern "C" fn(coll_p2p: *mut tm_collaboration_p2p_o, port: u32, use_upnp: bool),
1865    >,
1866    pub connect: ::std::option::Option<
1867        unsafe extern "C" fn(
1868            coll_p2p: *mut tm_collaboration_p2p_o,
1869            address: *const tm_socket_address_t,
1870        ),
1871    >,
1872    pub discovered_lan_hosts: ::std::option::Option<
1873        unsafe extern "C" fn(
1874            coll_p2p: *const tm_collaboration_p2p_o,
1875            hosts: *mut tm_collaboration_discovered_host_t,
1876            max_hosts: u32,
1877        ) -> u32,
1878    >,
1879}
1880pub const tm_config_type_TM_CONFIG_TYPE_NULL: tm_config_type = 0;
1881pub const tm_config_type_TM_CONFIG_TYPE_FALSE: tm_config_type = 1;
1882pub const tm_config_type_TM_CONFIG_TYPE_TRUE: tm_config_type = 2;
1883pub const tm_config_type_TM_CONFIG_TYPE_NUMBER: tm_config_type = 3;
1884pub const tm_config_type_TM_CONFIG_TYPE_STRING: tm_config_type = 4;
1885pub const tm_config_type_TM_CONFIG_TYPE_ARRAY: tm_config_type = 5;
1886pub const tm_config_type_TM_CONFIG_TYPE_OBJECT: tm_config_type = 6;
1887pub type tm_config_type = ::std::os::raw::c_int;
1888#[repr(C)]
1889#[repr(align(4))]
1890#[derive(Copy, Clone)]
1891pub struct tm_config_item_t {
1892    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
1893}
1894impl tm_config_item_t {
1895    #[inline]
1896    pub fn type_(&self) -> u32 {
1897        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
1898    }
1899    #[inline]
1900    pub fn set_type(&mut self, val: u32) {
1901        unsafe {
1902            let val: u32 = ::std::mem::transmute(val);
1903            self._bitfield_1.set(0usize, 3u8, val as u64)
1904        }
1905    }
1906    #[inline]
1907    pub fn offset(&self) -> u32 {
1908        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
1909    }
1910    #[inline]
1911    pub fn set_offset(&mut self, val: u32) {
1912        unsafe {
1913            let val: u32 = ::std::mem::transmute(val);
1914            self._bitfield_1.set(3usize, 29u8, val as u64)
1915        }
1916    }
1917    #[inline]
1918    pub fn new_bitfield_1(type_: u32, offset: u32) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
1919        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
1920            Default::default();
1921        __bindgen_bitfield_unit.set(0usize, 3u8, {
1922            let type_: u32 = unsafe { ::std::mem::transmute(type_) };
1923            type_ as u64
1924        });
1925        __bindgen_bitfield_unit.set(3usize, 29u8, {
1926            let offset: u32 = unsafe { ::std::mem::transmute(offset) };
1927            offset as u64
1928        });
1929        __bindgen_bitfield_unit
1930    }
1931}
1932#[repr(C)]
1933#[derive(Copy, Clone)]
1934pub struct tm_config_o {
1935    _unused: [u8; 0],
1936}
1937#[repr(C)]
1938#[derive(Copy, Clone)]
1939pub struct tm_config_i {
1940    pub inst: *mut tm_config_o,
1941    pub root:
1942        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_config_o) -> tm_config_item_t>,
1943    pub to_number: ::std::option::Option<
1944        unsafe extern "C" fn(inst: *mut tm_config_o, item: tm_config_item_t) -> f64,
1945    >,
1946    pub to_string: ::std::option::Option<
1947        unsafe extern "C" fn(
1948            inst: *mut tm_config_o,
1949            item: tm_config_item_t,
1950        ) -> *const ::std::os::raw::c_char,
1951    >,
1952    pub to_array: ::std::option::Option<
1953        unsafe extern "C" fn(
1954            inst: *mut tm_config_o,
1955            item: tm_config_item_t,
1956            items: *mut *mut tm_config_item_t,
1957        ) -> u32,
1958    >,
1959    pub to_object: ::std::option::Option<
1960        unsafe extern "C" fn(
1961            inst: *mut tm_config_o,
1962            item: tm_config_item_t,
1963            keys: *mut *mut tm_config_item_t,
1964            values: *mut *mut tm_config_item_t,
1965        ) -> u32,
1966    >,
1967    pub add_number: ::std::option::Option<
1968        unsafe extern "C" fn(inst: *mut tm_config_o, n: f64) -> tm_config_item_t,
1969    >,
1970    pub add_string: ::std::option::Option<
1971        unsafe extern "C" fn(
1972            inst: *mut tm_config_o,
1973            s: *const ::std::os::raw::c_char,
1974        ) -> tm_config_item_t,
1975    >,
1976    pub add_array: ::std::option::Option<
1977        unsafe extern "C" fn(
1978            inst: *mut tm_config_o,
1979            items: *const tm_config_item_t,
1980            size: u32,
1981        ) -> tm_config_item_t,
1982    >,
1983    pub add_object: ::std::option::Option<
1984        unsafe extern "C" fn(
1985            inst: *mut tm_config_o,
1986            keys: *const tm_config_item_t,
1987            values: *const tm_config_item_t,
1988            size: u32,
1989        ) -> tm_config_item_t,
1990    >,
1991    pub add_object_with_string_keys: ::std::option::Option<
1992        unsafe extern "C" fn(
1993            inst: *mut tm_config_o,
1994            keys: *mut *const ::std::os::raw::c_char,
1995            values: *const tm_config_item_t,
1996            size: u32,
1997        ) -> tm_config_item_t,
1998    >,
1999    pub array_set: ::std::option::Option<
2000        unsafe extern "C" fn(
2001            inst: *mut tm_config_o,
2002            array: tm_config_item_t,
2003            i: u32,
2004            item: tm_config_item_t,
2005        ),
2006    >,
2007    pub array_push: ::std::option::Option<
2008        unsafe extern "C" fn(
2009            inst: *mut tm_config_o,
2010            array: tm_config_item_t,
2011            item: tm_config_item_t,
2012        ),
2013    >,
2014    pub object_get: ::std::option::Option<
2015        unsafe extern "C" fn(
2016            inst: *mut tm_config_o,
2017            object: tm_config_item_t,
2018            key_hash: u64,
2019        ) -> tm_config_item_t,
2020    >,
2021    pub object_update: ::std::option::Option<
2022        unsafe extern "C" fn(
2023            inst: *mut tm_config_o,
2024            object: tm_config_item_t,
2025            key_hash: u64,
2026            value: tm_config_item_t,
2027        ),
2028    >,
2029    pub object_add: ::std::option::Option<
2030        unsafe extern "C" fn(
2031            inst: *mut tm_config_o,
2032            object: tm_config_item_t,
2033            key: *const ::std::os::raw::c_char,
2034            value: tm_config_item_t,
2035        ),
2036    >,
2037    pub set_root:
2038        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_config_o, root: tm_config_item_t)>,
2039    pub copy:
2040        ::std::option::Option<unsafe extern "C" fn(dst: *mut tm_config_o, src: *mut tm_config_o)>,
2041    pub allocator:
2042        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_config_o) -> *mut tm_allocator_i>,
2043}
2044#[repr(C)]
2045#[derive(Copy, Clone)]
2046pub struct tm_config_api {
2047    pub create:
2048        ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_config_i>,
2049    pub destroy: ::std::option::Option<unsafe extern "C" fn(cdi: *mut tm_config_i)>,
2050    pub c_null: tm_config_item_t,
2051    pub c_false: tm_config_item_t,
2052    pub c_true: tm_config_item_t,
2053    pub _padding_153: [::std::os::raw::c_char; 4usize],
2054}
2055pub const tm_core_create_policy_TM_CORE_CREATE_POLICY__CREATE: tm_core_create_policy = 0;
2056pub const tm_core_create_policy_TM_CORE_CREATE_POLICY__REMOVE: tm_core_create_policy = 1;
2057pub const tm_core_create_policy_TM_CORE_CREATE_POLICY__IGNORE: tm_core_create_policy = 2;
2058pub type tm_core_create_policy = ::std::os::raw::c_int;
2059#[repr(C)]
2060#[derive(Copy, Clone)]
2061pub struct tm_core_asset_i {
2062    pub core_id: u64,
2063    pub path: *const ::std::os::raw::c_char,
2064    pub create_policy: tm_core_create_policy,
2065    pub _padding_60: [::std::os::raw::c_char; 4usize],
2066    pub version: u64,
2067    pub user_data: *const ::std::os::raw::c_void,
2068    pub create: ::std::option::Option<
2069        unsafe extern "C" fn(
2070            tt: *mut tm_the_truth_o,
2071            user_data: *const ::std::os::raw::c_void,
2072        ) -> tm_tt_id_t,
2073    >,
2074    pub update: ::std::option::Option<
2075        unsafe extern "C" fn(
2076            tt: *mut tm_the_truth_o,
2077            data_id: tm_tt_id_t,
2078            old_version: u64,
2079            user_data: *const ::std::os::raw::c_void,
2080        ),
2081    >,
2082}
2083#[repr(C)]
2084#[derive(Copy, Clone)]
2085pub struct tm_core_update_result_t {
2086    pub created_assets: *mut tm_tt_id_t,
2087    pub removed_assets: *mut tm_tt_id_t,
2088    pub updated_assets: *mut tm_tt_id_t,
2089}
2090#[repr(C)]
2091#[derive(Copy, Clone)]
2092pub struct tm_core_api {
2093    pub create: ::std::option::Option<
2094        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset_root_id: tm_tt_id_t),
2095    >,
2096    pub update: ::std::option::Option<
2097        unsafe extern "C" fn(
2098            tt: *mut tm_the_truth_o,
2099            asset_root_id: tm_tt_id_t,
2100            ta: *mut tm_temp_allocator_i,
2101        ) -> tm_core_update_result_t,
2102    >,
2103    pub locate_asset: ::std::option::Option<
2104        unsafe extern "C" fn(
2105            tt: *mut tm_the_truth_o,
2106            asset_root_id: tm_tt_id_t,
2107            core_id: u64,
2108        ) -> tm_tt_id_t,
2109    >,
2110}
2111#[repr(C)]
2112#[derive(Copy, Clone)]
2113pub struct tm_core_importer_asset_t {
2114    pub id: u64,
2115    pub version: u64,
2116    pub path: *const ::std::os::raw::c_char,
2117    pub create_policy: u32,
2118    pub _padding_46: [::std::os::raw::c_char; 4usize],
2119}
2120#[repr(C)]
2121#[derive(Copy, Clone)]
2122pub struct tm_core_importer_state_o {
2123    _unused: [u8; 0],
2124}
2125#[repr(C)]
2126#[derive(Copy, Clone)]
2127pub struct tm_core_importer_api {
2128    pub create: ::std::option::Option<
2129        unsafe extern "C" fn(
2130            a: *mut tm_allocator_i,
2131            user_tt: *mut tm_the_truth_o,
2132            user_asset_root: tm_tt_id_t,
2133            core_project_path: *const ::std::os::raw::c_char,
2134            output_path: *const ::std::os::raw::c_char,
2135        ) -> *mut tm_core_importer_state_o,
2136    >,
2137    pub destroy: ::std::option::Option<unsafe extern "C" fn(state: *mut tm_core_importer_state_o)>,
2138    pub register_assets: ::std::option::Option<
2139        unsafe extern "C" fn(
2140            state: *mut tm_core_importer_state_o,
2141            to_register: *const tm_core_importer_asset_t,
2142            num_to_register: u32,
2143        ),
2144    >,
2145}
2146#[repr(C)]
2147#[derive(Copy, Clone)]
2148pub struct tm_crash_recovery_can_recover_result_t {
2149    pub data: *const ::std::os::raw::c_char,
2150    pub data_bytes: u32,
2151    pub _padding_24: [::std::os::raw::c_char; 4usize],
2152    pub project: *const ::std::os::raw::c_char,
2153    pub root: *const tm_uuid_t,
2154}
2155#[repr(C)]
2156#[derive(Copy, Clone)]
2157pub struct tm_crash_recovery_o {
2158    _unused: [u8; 0],
2159}
2160#[repr(C)]
2161#[derive(Copy, Clone)]
2162pub struct tm_crash_recovery_api {
2163    pub create: ::std::option::Option<
2164        unsafe extern "C" fn(
2165            a: *mut tm_allocator_i,
2166            recovery_path: *const ::std::os::raw::c_char,
2167        ) -> *mut tm_crash_recovery_o,
2168    >,
2169    pub destroy: ::std::option::Option<unsafe extern "C" fn(cr: *mut tm_crash_recovery_o)>,
2170    pub start_recording: ::std::option::Option<
2171        unsafe extern "C" fn(
2172            cr: *mut tm_crash_recovery_o,
2173            project: *const ::std::os::raw::c_char,
2174            tt: *mut tm_the_truth_o,
2175            root: tm_tt_id_t,
2176        ),
2177    >,
2178    pub stop_recording: ::std::option::Option<unsafe extern "C" fn(cr: *mut tm_crash_recovery_o)>,
2179    pub update: ::std::option::Option<unsafe extern "C" fn(cr: *mut tm_crash_recovery_o)>,
2180    pub can_recover: ::std::option::Option<
2181        unsafe extern "C" fn(
2182            cr: *mut tm_crash_recovery_o,
2183            ta: *mut tm_temp_allocator_i,
2184        ) -> tm_crash_recovery_can_recover_result_t,
2185    >,
2186    pub recover: ::std::option::Option<
2187        unsafe extern "C" fn(
2188            cr: *mut tm_crash_recovery_o,
2189            rd: tm_crash_recovery_can_recover_result_t,
2190        ),
2191    >,
2192}
2193#[repr(C)]
2194#[derive(Copy, Clone)]
2195pub struct tm_error_o {
2196    _unused: [u8; 0],
2197}
2198#[repr(C)]
2199#[derive(Copy, Clone)]
2200pub struct tm_error_i {
2201    pub inst: *mut tm_error_o,
2202    pub errorf: ::std::option::Option<
2203        unsafe extern "C" fn(
2204            inst: *mut tm_error_o,
2205            file: *const ::std::os::raw::c_char,
2206            line: u32,
2207            format: *const ::std::os::raw::c_char,
2208            ...
2209        ),
2210    >,
2211    pub fatal: ::std::option::Option<
2212        unsafe extern "C" fn(
2213            inst: *mut tm_error_o,
2214            file: *const ::std::os::raw::c_char,
2215            line: u32,
2216            format: *const ::std::os::raw::c_char,
2217            ...
2218        ),
2219    >,
2220}
2221#[repr(C)]
2222#[derive(Copy, Clone)]
2223pub struct tm_error_api {
2224    pub log: *mut tm_error_i,
2225    pub def: *mut tm_error_i,
2226}
2227#[repr(C)]
2228#[derive(Copy, Clone)]
2229pub struct tm_feature_flags_api {
2230    pub enabled: ::std::option::Option<unsafe extern "C" fn(flag: u64) -> bool>,
2231    pub set_enabled: ::std::option::Option<unsafe extern "C" fn(flag: u64, enabled: bool)>,
2232    pub all_enabled: ::std::option::Option<unsafe extern "C" fn(count: *mut u32) -> *const u64>,
2233}
2234#[repr(C)]
2235#[derive(Copy, Clone)]
2236pub struct tm_git_ignore_api {
2237    pub match_: ::std::option::Option<
2238        unsafe extern "C" fn(
2239            patterns: *const ::std::os::raw::c_char,
2240            path: *const ::std::os::raw::c_char,
2241        ) -> bool,
2242    >,
2243}
2244pub const tm_image_type_TM_IMAGE_TYPE_1D: tm_image_type = 0;
2245pub const tm_image_type_TM_IMAGE_TYPE_2D: tm_image_type = 1;
2246pub const tm_image_type_TM_IMAGE_TYPE_3D: tm_image_type = 2;
2247pub const tm_image_type_TM_IMAGE_TYPE_CUBE: tm_image_type = 3;
2248pub type tm_image_type = ::std::os::raw::c_int;
2249#[repr(C)]
2250#[derive(Copy, Clone)]
2251pub struct tm_image_t {
2252    pub type_: u32,
2253    pub pixel_format: u32,
2254    pub width: u32,
2255    pub height: u32,
2256    pub depth: u32,
2257    pub mip_levels: u32,
2258    pub layers: u32,
2259    pub size: u32,
2260}
2261#[repr(C)]
2262#[derive(Copy, Clone)]
2263pub struct tm_image_archive_o {
2264    _unused: [u8; 0],
2265}
2266#[repr(C)]
2267#[derive(Copy, Clone)]
2268pub struct tm_image_archive_i {
2269    pub inst: *mut tm_image_archive_o,
2270    pub read: ::std::option::Option<
2271        unsafe extern "C" fn(
2272            inst: *mut tm_image_archive_o,
2273            buffer: *mut ::std::os::raw::c_void,
2274            offset: u64,
2275            size: u32,
2276        ) -> u32,
2277    >,
2278    pub size: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_image_archive_o) -> u64>,
2279}
2280#[repr(C)]
2281#[derive(Copy, Clone)]
2282pub struct tm_image_loader_o {
2283    _unused: [u8; 0],
2284}
2285#[repr(C)]
2286#[derive(Copy, Clone)]
2287pub struct tm_image_loader_i {
2288    pub inst: *mut tm_image_loader_o,
2289    pub extensions_string: ::std::option::Option<
2290        unsafe extern "C" fn(
2291            inst: *mut tm_image_loader_o,
2292            output: *mut *mut ::std::os::raw::c_char,
2293            ta: *mut tm_temp_allocator_i,
2294            separator: *const ::std::os::raw::c_char,
2295        ),
2296    >,
2297    pub description_string: ::std::option::Option<
2298        unsafe extern "C" fn(
2299            inst: *mut tm_image_loader_o,
2300            output: *mut *mut ::std::os::raw::c_char,
2301            ta: *mut tm_temp_allocator_i,
2302            separator: *const ::std::os::raw::c_char,
2303        ),
2304    >,
2305    pub support_from_archive: ::std::option::Option<
2306        unsafe extern "C" fn(
2307            inst: *mut tm_image_loader_o,
2308            image_archive: *mut tm_image_archive_i,
2309        ) -> bool,
2310    >,
2311    pub support_from_extension: ::std::option::Option<
2312        unsafe extern "C" fn(
2313            inst: *mut tm_image_loader_o,
2314            extension: *const ::std::os::raw::c_char,
2315        ) -> bool,
2316    >,
2317    pub load_image: ::std::option::Option<
2318        unsafe extern "C" fn(
2319            inst: *mut tm_image_loader_o,
2320            image_archive: *mut tm_image_archive_i,
2321            image: *mut tm_image_t,
2322            bits: *mut u8,
2323        ) -> bool,
2324    >,
2325}
2326#[repr(C)]
2327#[derive(Copy, Clone)]
2328pub struct tm_image_loader_api {
2329    pub add_loader: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_image_loader_i)>,
2330    pub remove_loader: ::std::option::Option<unsafe extern "C" fn(loader: *mut tm_image_loader_i)>,
2331    pub loader_from_archive: ::std::option::Option<
2332        unsafe extern "C" fn(image_archive: *mut tm_image_archive_i) -> *mut tm_image_loader_i,
2333    >,
2334    pub loader_from_extension: ::std::option::Option<
2335        unsafe extern "C" fn(extension: *const ::std::os::raw::c_char) -> *mut tm_image_loader_i,
2336    >,
2337    pub loaders:
2338        ::std::option::Option<unsafe extern "C" fn(loaders: *mut *mut tm_image_loader_i) -> u32>,
2339}
2340pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_NONE: tm_input_controller_type = 0;
2341pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_KEYBOARD: tm_input_controller_type = 1;
2342pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_MOUSE: tm_input_controller_type = 2;
2343pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_GAMEPAD: tm_input_controller_type = 3;
2344pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_TOUCH: tm_input_controller_type = 4;
2345pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_PEN: tm_input_controller_type = 5;
2346pub const tm_input_controller_type_TM_INPUT_CONTROLLER_TYPE_OTHER: tm_input_controller_type = -1;
2347pub type tm_input_controller_type = ::std::os::raw::c_int;
2348pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_NONE: tm_input_mouse_item = 0;
2349pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_LEFT: tm_input_mouse_item = 1;
2350pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_RIGHT: tm_input_mouse_item = 2;
2351pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_MIDDLE: tm_input_mouse_item = 3;
2352pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_4: tm_input_mouse_item = 4;
2353pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_BUTTON_5: tm_input_mouse_item = 5;
2354pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_WHEEL: tm_input_mouse_item = 6;
2355pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_MOVE: tm_input_mouse_item = 7;
2356pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_POSITION: tm_input_mouse_item = 8;
2357pub const tm_input_mouse_item_TM_INPUT_MOUSE_ITEM_COUNT: tm_input_mouse_item = 9;
2358pub type tm_input_mouse_item = ::std::os::raw::c_int;
2359pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_NONE: tm_input_pen_item = 0;
2360pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_1: tm_input_pen_item = 1;
2361pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_2: tm_input_pen_item = 2;
2362pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_3: tm_input_pen_item = 3;
2363pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_4: tm_input_pen_item = 4;
2364pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_BUTTON_5: tm_input_pen_item = 5;
2365pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_WHEEL: tm_input_pen_item = 6;
2366pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_POSITION: tm_input_pen_item = 7;
2367pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_PRESSURE: tm_input_pen_item = 8;
2368pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_ROTATION: tm_input_pen_item = 9;
2369pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_TILT: tm_input_pen_item = 10;
2370pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_INVERTED: tm_input_pen_item = 11;
2371pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_ERASER: tm_input_pen_item = 12;
2372pub const tm_input_pen_item_TM_INPUT_PEN_ITEM_COUNT: tm_input_pen_item = 13;
2373pub type tm_input_pen_item = ::std::os::raw::c_int;
2374pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_NONE: tm_input_touch_item = 0;
2375pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_TOUCH: tm_input_touch_item = 1;
2376pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_POSITION: tm_input_touch_item = 2;
2377pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_PRESSURE: tm_input_touch_item = 3;
2378pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_ORIENTATION: tm_input_touch_item = 4;
2379pub const tm_input_touch_item_TM_INPUT_TOUCH_ITEM_COUNT: tm_input_touch_item = 5;
2380pub type tm_input_touch_item = ::std::os::raw::c_int;
2381pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NONE: tm_input_keyboard_item = 0;
2382pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LBUTTON: tm_input_keyboard_item = 1;
2383pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RBUTTON: tm_input_keyboard_item = 2;
2384pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CANCEL: tm_input_keyboard_item = 3;
2385pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MBUTTON: tm_input_keyboard_item = 4;
2386pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_XBUTTON1: tm_input_keyboard_item = 5;
2387pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_XBUTTON2: tm_input_keyboard_item = 6;
2388pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BACKSPACE: tm_input_keyboard_item = 8;
2389pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_TAB: tm_input_keyboard_item = 9;
2390pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CLEAR: tm_input_keyboard_item = 12;
2391pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ENTER: tm_input_keyboard_item = 13;
2392pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SHIFT: tm_input_keyboard_item = 16;
2393pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CONTROL: tm_input_keyboard_item = 17;
2394pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MENU: tm_input_keyboard_item = 18;
2395pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PAUSE: tm_input_keyboard_item = 19;
2396pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CAPSLOCK: tm_input_keyboard_item = 20;
2397pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KANA: tm_input_keyboard_item = 21;
2398pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_JUNJA: tm_input_keyboard_item = 23;
2399pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_FINAL: tm_input_keyboard_item = 24;
2400pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HANJA: tm_input_keyboard_item = 25;
2401pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KANJI: tm_input_keyboard_item = 25;
2402pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ESCAPE: tm_input_keyboard_item = 27;
2403pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CONVERT: tm_input_keyboard_item = 28;
2404pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NONCONVERT: tm_input_keyboard_item = 29;
2405pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ACCEPT: tm_input_keyboard_item = 30;
2406pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MODECHANGE: tm_input_keyboard_item = 31;
2407pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SPACE: tm_input_keyboard_item = 32;
2408pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PAGEUP: tm_input_keyboard_item = 33;
2409pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PAGEDOWN: tm_input_keyboard_item = 34;
2410pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_END: tm_input_keyboard_item = 35;
2411pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HOME: tm_input_keyboard_item = 36;
2412pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFT: tm_input_keyboard_item = 37;
2413pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_UP: tm_input_keyboard_item = 38;
2414pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHT: tm_input_keyboard_item = 39;
2415pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_DOWN: tm_input_keyboard_item = 40;
2416pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SELECT: tm_input_keyboard_item = 41;
2417pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PRINT: tm_input_keyboard_item = 42;
2418pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EXECUTE: tm_input_keyboard_item = 43;
2419pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PRINTSCREEN: tm_input_keyboard_item = 44;
2420pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INSERT: tm_input_keyboard_item = 45;
2421pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_DELETE: tm_input_keyboard_item = 46;
2422pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HELP: tm_input_keyboard_item = 47;
2423pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_0: tm_input_keyboard_item = 48;
2424pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_1: tm_input_keyboard_item = 49;
2425pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_2: tm_input_keyboard_item = 50;
2426pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_3: tm_input_keyboard_item = 51;
2427pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_4: tm_input_keyboard_item = 52;
2428pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_5: tm_input_keyboard_item = 53;
2429pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_6: tm_input_keyboard_item = 54;
2430pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_7: tm_input_keyboard_item = 55;
2431pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_8: tm_input_keyboard_item = 56;
2432pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_9: tm_input_keyboard_item = 57;
2433pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_A: tm_input_keyboard_item = 65;
2434pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_B: tm_input_keyboard_item = 66;
2435pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_C: tm_input_keyboard_item = 67;
2436pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_D: tm_input_keyboard_item = 68;
2437pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_E: tm_input_keyboard_item = 69;
2438pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F: tm_input_keyboard_item = 70;
2439pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_G: tm_input_keyboard_item = 71;
2440pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_H: tm_input_keyboard_item = 72;
2441pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_I: tm_input_keyboard_item = 73;
2442pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_J: tm_input_keyboard_item = 74;
2443pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_K: tm_input_keyboard_item = 75;
2444pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_L: tm_input_keyboard_item = 76;
2445pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_M: tm_input_keyboard_item = 77;
2446pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_N: tm_input_keyboard_item = 78;
2447pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_O: tm_input_keyboard_item = 79;
2448pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_P: tm_input_keyboard_item = 80;
2449pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_Q: tm_input_keyboard_item = 81;
2450pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_R: tm_input_keyboard_item = 82;
2451pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_S: tm_input_keyboard_item = 83;
2452pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_T: tm_input_keyboard_item = 84;
2453pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_U: tm_input_keyboard_item = 85;
2454pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_V: tm_input_keyboard_item = 86;
2455pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_W: tm_input_keyboard_item = 87;
2456pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_X: tm_input_keyboard_item = 88;
2457pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_Y: tm_input_keyboard_item = 89;
2458pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_Z: tm_input_keyboard_item = 90;
2459pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LWIN: tm_input_keyboard_item = 91;
2460pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RWIN: tm_input_keyboard_item = 92;
2461pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_APPS: tm_input_keyboard_item = 93;
2462pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SLEEP: tm_input_keyboard_item = 95;
2463pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD0: tm_input_keyboard_item = 96;
2464pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD1: tm_input_keyboard_item = 97;
2465pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD2: tm_input_keyboard_item = 98;
2466pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD3: tm_input_keyboard_item = 99;
2467pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD4: tm_input_keyboard_item = 100;
2468pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD5: tm_input_keyboard_item = 101;
2469pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD6: tm_input_keyboard_item = 102;
2470pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD7: tm_input_keyboard_item = 103;
2471pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD8: tm_input_keyboard_item = 104;
2472pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPAD9: tm_input_keyboard_item = 105;
2473pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADASTERISK: tm_input_keyboard_item =
2474    106;
2475pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADPLUS: tm_input_keyboard_item = 107;
2476pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADENTER: tm_input_keyboard_item = 108;
2477pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADMINUS: tm_input_keyboard_item = 109;
2478pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADDOT: tm_input_keyboard_item = 110;
2479pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADSLASH: tm_input_keyboard_item = 111;
2480pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F1: tm_input_keyboard_item = 112;
2481pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F2: tm_input_keyboard_item = 113;
2482pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F3: tm_input_keyboard_item = 114;
2483pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F4: tm_input_keyboard_item = 115;
2484pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F5: tm_input_keyboard_item = 116;
2485pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F6: tm_input_keyboard_item = 117;
2486pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F7: tm_input_keyboard_item = 118;
2487pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F8: tm_input_keyboard_item = 119;
2488pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F9: tm_input_keyboard_item = 120;
2489pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F10: tm_input_keyboard_item = 121;
2490pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F11: tm_input_keyboard_item = 122;
2491pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F12: tm_input_keyboard_item = 123;
2492pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F13: tm_input_keyboard_item = 124;
2493pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F14: tm_input_keyboard_item = 125;
2494pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F15: tm_input_keyboard_item = 126;
2495pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F16: tm_input_keyboard_item = 127;
2496pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F17: tm_input_keyboard_item = 128;
2497pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F18: tm_input_keyboard_item = 129;
2498pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F19: tm_input_keyboard_item = 130;
2499pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F20: tm_input_keyboard_item = 131;
2500pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F21: tm_input_keyboard_item = 132;
2501pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F22: tm_input_keyboard_item = 133;
2502pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F23: tm_input_keyboard_item = 134;
2503pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_F24: tm_input_keyboard_item = 135;
2504pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_VIEW: tm_input_keyboard_item =
2505    136;
2506pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_MENU: tm_input_keyboard_item =
2507    137;
2508pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_UP: tm_input_keyboard_item = 138;
2509pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_DOWN: tm_input_keyboard_item =
2510    139;
2511pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_LEFT: tm_input_keyboard_item =
2512    140;
2513pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_RIGHT: tm_input_keyboard_item =
2514    141;
2515pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_ACCEPT: tm_input_keyboard_item =
2516    142;
2517pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NAVIGATION_CANCEL: tm_input_keyboard_item =
2518    143;
2519pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMLOCK: tm_input_keyboard_item = 144;
2520pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SCROLLLOCK: tm_input_keyboard_item = 145;
2521pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADEQUAL: tm_input_keyboard_item = 146;
2522pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_JISHO: tm_input_keyboard_item = 146;
2523pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_MASSHOU: tm_input_keyboard_item =
2524    147;
2525pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_TOUROKU: tm_input_keyboard_item =
2526    148;
2527pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_LOYA: tm_input_keyboard_item = 149;
2528pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FJ_ROYA: tm_input_keyboard_item = 150;
2529pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTSHIFT: tm_input_keyboard_item = 160;
2530pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTSHIFT: tm_input_keyboard_item = 161;
2531pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTCONTROL: tm_input_keyboard_item = 162;
2532pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTCONTROL: tm_input_keyboard_item = 163;
2533pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTALT: tm_input_keyboard_item = 164;
2534pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTALT: tm_input_keyboard_item = 165;
2535pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_BACK: tm_input_keyboard_item = 166;
2536pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_FORWARD: tm_input_keyboard_item =
2537    167;
2538pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_REFRESH: tm_input_keyboard_item =
2539    168;
2540pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_STOP: tm_input_keyboard_item = 169;
2541pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SEARCH: tm_input_keyboard_item =
2542    170;
2543pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_FAVORITES: tm_input_keyboard_item =
2544    171;
2545pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_HOME: tm_input_keyboard_item = 172;
2546pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_VOLUME_MUTE: tm_input_keyboard_item = 173;
2547pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_VOLUME_DOWN: tm_input_keyboard_item = 174;
2548pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_VOLUME_UP: tm_input_keyboard_item = 175;
2549pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_NEXT_TRACK: tm_input_keyboard_item =
2550    176;
2551pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_PREV_TRACK: tm_input_keyboard_item =
2552    177;
2553pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_STOP: tm_input_keyboard_item = 178;
2554pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_PLAY_PAUSE: tm_input_keyboard_item =
2555    179;
2556pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_MAIL: tm_input_keyboard_item = 180;
2557pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_MEDIA_SELECT:
2558    tm_input_keyboard_item = 181;
2559pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_APP1: tm_input_keyboard_item = 182;
2560pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LAUNCH_APP2: tm_input_keyboard_item = 183;
2561pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SEMICOLON: tm_input_keyboard_item = 186;
2562pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EQUAL: tm_input_keyboard_item = 187;
2563pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COMMA: tm_input_keyboard_item = 188;
2564pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MINUS: tm_input_keyboard_item = 189;
2565pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_DOT: tm_input_keyboard_item = 190;
2566pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_SLASH: tm_input_keyboard_item = 191;
2567pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GRAVE: tm_input_keyboard_item = 192;
2568pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_A: tm_input_keyboard_item = 195;
2569pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_B: tm_input_keyboard_item = 196;
2570pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_X: tm_input_keyboard_item = 197;
2571pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_Y: tm_input_keyboard_item = 198;
2572pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_SHOULDER:
2573    tm_input_keyboard_item = 199;
2574pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_SHOULDER:
2575    tm_input_keyboard_item = 200;
2576pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_TRIGGER:
2577    tm_input_keyboard_item = 201;
2578pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_TRIGGER:
2579    tm_input_keyboard_item = 202;
2580pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_UP: tm_input_keyboard_item =
2581    203;
2582pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_DOWN: tm_input_keyboard_item =
2583    204;
2584pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_LEFT: tm_input_keyboard_item =
2585    205;
2586pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_DPAD_RIGHT: tm_input_keyboard_item =
2587    206;
2588pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_MENU: tm_input_keyboard_item = 207;
2589pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_VIEW: tm_input_keyboard_item = 208;
2590pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_BUTTON:
2591    tm_input_keyboard_item = 209;
2592pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_BUTTON:
2593    tm_input_keyboard_item = 210;
2594pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_UP:
2595    tm_input_keyboard_item = 211;
2596pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_DOWN:
2597    tm_input_keyboard_item = 212;
2598pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_RIGHT:
2599    tm_input_keyboard_item = 213;
2600pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_LEFT_THUMBSTICK_LEFT:
2601    tm_input_keyboard_item = 214;
2602pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_UP:
2603    tm_input_keyboard_item = 215;
2604pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_DOWN:
2605    tm_input_keyboard_item = 216;
2606pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_RIGHT:
2607    tm_input_keyboard_item = 217;
2608pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_GAMEPAD_RIGHT_THUMBSTICK_LEFT:
2609    tm_input_keyboard_item = 218;
2610pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTBRACE: tm_input_keyboard_item = 219;
2611pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BACKSLASH: tm_input_keyboard_item = 220;
2612pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTBRACE: tm_input_keyboard_item = 221;
2613pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_APOSTROPHE: tm_input_keyboard_item = 222;
2614pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_8: tm_input_keyboard_item = 223;
2615pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_AX: tm_input_keyboard_item = 225;
2616pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_102: tm_input_keyboard_item = 226;
2617pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ICO_HELP: tm_input_keyboard_item = 227;
2618pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ICO_00: tm_input_keyboard_item = 228;
2619pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PROCESSKEY: tm_input_keyboard_item = 229;
2620pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ICO_CLEAR: tm_input_keyboard_item = 230;
2621pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PACKET: tm_input_keyboard_item = 231;
2622pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_RESET: tm_input_keyboard_item = 233;
2623pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_JUMP: tm_input_keyboard_item = 234;
2624pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_PA1: tm_input_keyboard_item = 235;
2625pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_PA2: tm_input_keyboard_item = 236;
2626pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_PA3: tm_input_keyboard_item = 237;
2627pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_WSCTRL: tm_input_keyboard_item = 238;
2628pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_CUSEL: tm_input_keyboard_item = 239;
2629pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_ATTN: tm_input_keyboard_item = 240;
2630pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_FINISH: tm_input_keyboard_item = 241;
2631pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COPY: tm_input_keyboard_item = 242;
2632pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_AUTO: tm_input_keyboard_item = 243;
2633pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_ENLW: tm_input_keyboard_item = 244;
2634pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_BACKTAB: tm_input_keyboard_item = 245;
2635pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ATTN: tm_input_keyboard_item = 246;
2636pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CRSEL: tm_input_keyboard_item = 247;
2637pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EXSEL: tm_input_keyboard_item = 248;
2638pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_EREOF: tm_input_keyboard_item = 249;
2639pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PLAY: tm_input_keyboard_item = 250;
2640pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ZOOM: tm_input_keyboard_item = 251;
2641pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NONAME: tm_input_keyboard_item = 252;
2642pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PA1: tm_input_keyboard_item = 253;
2643pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OEM_CLEAR: tm_input_keyboard_item = 254;
2644pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HASHTILDE: tm_input_keyboard_item = 255;
2645pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_102ND: tm_input_keyboard_item = 256;
2646pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COMPOSE: tm_input_keyboard_item = 257;
2647pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_POWER: tm_input_keyboard_item = 258;
2648pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_OPEN: tm_input_keyboard_item = 259;
2649pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PROPS: tm_input_keyboard_item = 260;
2650pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_FRONT: tm_input_keyboard_item = 261;
2651pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_STOP: tm_input_keyboard_item = 262;
2652pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_AGAIN: tm_input_keyboard_item = 263;
2653pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_UNDO: tm_input_keyboard_item = 264;
2654pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_CUT: tm_input_keyboard_item = 265;
2655pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_PASTE: tm_input_keyboard_item = 266;
2656pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_FIND: tm_input_keyboard_item = 267;
2657pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADCOMMA: tm_input_keyboard_item = 268;
2658pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RO: tm_input_keyboard_item = 269;
2659pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KATAKANAHIRAGANA: tm_input_keyboard_item =
2660    270;
2661pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_YEN: tm_input_keyboard_item = 271;
2662pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HENKAN: tm_input_keyboard_item = 272;
2663pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MUHENKAN: tm_input_keyboard_item = 273;
2664pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADJPCOMMA: tm_input_keyboard_item = 274;
2665pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INTERNATIONAL_7: tm_input_keyboard_item =
2666    275;
2667pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INTERNATIONAL_8: tm_input_keyboard_item =
2668    276;
2669pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_INTERNATIONAL_9: tm_input_keyboard_item =
2670    277;
2671pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HANGEUL: tm_input_keyboard_item = 278;
2672pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_KATAKANA: tm_input_keyboard_item = 279;
2673pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_HIRAGANA: tm_input_keyboard_item = 280;
2674pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_ZENKAKUHANKAKU: tm_input_keyboard_item =
2675    281;
2676pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_6: tm_input_keyboard_item = 282;
2677pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_7: tm_input_keyboard_item = 283;
2678pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_8: tm_input_keyboard_item = 284;
2679pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LANG_9: tm_input_keyboard_item = 285;
2680pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADLEFTPAREN: tm_input_keyboard_item =
2681    286;
2682pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_NUMPADRIGHTPAREN: tm_input_keyboard_item =
2683    287;
2684pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_LEFTMETA: tm_input_keyboard_item = 288;
2685pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_RIGHTMETA: tm_input_keyboard_item = 289;
2686pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_EJECT: tm_input_keyboard_item = 290;
2687pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_VOLUME_UP: tm_input_keyboard_item =
2688    291;
2689pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_VOLUME_DOWN: tm_input_keyboard_item =
2690    292;
2691pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_MEDIA_MUTE: tm_input_keyboard_item = 293;
2692pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_WWW: tm_input_keyboard_item = 294;
2693pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SCROLLUP: tm_input_keyboard_item =
2694    295;
2695pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SCROLLDOWN: tm_input_keyboard_item =
2696    296;
2697pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_EDIT: tm_input_keyboard_item = 297;
2698pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_SLEEP: tm_input_keyboard_item = 298;
2699pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_COFFEE: tm_input_keyboard_item =
2700    299;
2701pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_BROWSER_CALC: tm_input_keyboard_item = 300;
2702pub const tm_input_keyboard_item_TM_INPUT_KEYBOARD_ITEM_COUNT: tm_input_keyboard_item = 301;
2703pub type tm_input_keyboard_item = ::std::os::raw::c_int;
2704pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_NONE: tm_input_gamepad_item = 0;
2705pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_A: tm_input_gamepad_item = 1;
2706pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_B: tm_input_gamepad_item = 2;
2707pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_X: tm_input_gamepad_item = 3;
2708pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_Y: tm_input_gamepad_item = 4;
2709pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_LEFT_SHOULDER: tm_input_gamepad_item =
2710    5;
2711pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_RIGHT_SHOULDER: tm_input_gamepad_item =
2712    6;
2713pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_BACK: tm_input_gamepad_item = 7;
2714pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_START: tm_input_gamepad_item = 8;
2715pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_LEFT: tm_input_gamepad_item = 9;
2716pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_RIGHT: tm_input_gamepad_item = 10;
2717pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_UP: tm_input_gamepad_item = 11;
2718pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_DPAD_DOWN: tm_input_gamepad_item = 12;
2719pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_BUTTON_LEFT_THUMB: tm_input_gamepad_item = 13;
2720pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_BUTTON_RIGHT_THUMB: tm_input_gamepad_item = 14;
2721pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_LEFT_TRIGGER: tm_input_gamepad_item =
2722    15;
2723pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_BUTTON_RIGHT_TRIGGER: tm_input_gamepad_item =
2724    16;
2725pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_LEFT_STICK: tm_input_gamepad_item = 17;
2726pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_RIGHT_STICK: tm_input_gamepad_item = 18;
2727pub const tm_input_gamepad_item_TM_INPUT_GAMEPAD_ITEM_COUNT: tm_input_gamepad_item = 19;
2728pub type tm_input_gamepad_item = ::std::os::raw::c_int;
2729pub const tm_input_event_type_TM_INPUT_EVENT_TYPE_NONE: tm_input_event_type = 0;
2730pub const tm_input_event_type_TM_INPUT_EVENT_TYPE_DATA_CHANGE: tm_input_event_type = 1;
2731pub const tm_input_event_type_TM_INPUT_EVENT_TYPE_TEXT: tm_input_event_type = 2;
2732pub type tm_input_event_type = ::std::os::raw::c_int;
2733#[repr(C)]
2734#[derive(Copy, Clone)]
2735pub struct tm_input_item_t {
2736    pub id: u64,
2737    pub name: *const ::std::os::raw::c_char,
2738    pub components: u32,
2739    pub _padding_412: [::std::os::raw::c_char; 4usize],
2740}
2741#[repr(C)]
2742#[derive(Copy, Clone)]
2743pub struct tm_input_data_t {
2744    pub __bindgen_anon_1: tm_input_data_t__bindgen_ty_1,
2745}
2746#[repr(C)]
2747#[derive(Copy, Clone)]
2748pub union tm_input_data_t__bindgen_ty_1 {
2749    pub f: tm_vec4_t,
2750    pub codepoint: u32,
2751    _bindgen_union_align: [u32; 4usize],
2752}
2753#[repr(C)]
2754#[derive(Copy, Clone)]
2755pub struct tm_input_event_t {
2756    pub time: u64,
2757    pub source: *mut tm_input_source_i,
2758    pub controller_id: u64,
2759    pub item_id: u64,
2760    pub type_: u64,
2761    pub data: tm_input_data_t,
2762    pub extra: *mut ::std::os::raw::c_void,
2763}
2764#[repr(C)]
2765#[derive(Copy, Clone)]
2766pub struct tm_input_source_i {
2767    pub controller_name: *const ::std::os::raw::c_char,
2768    pub controller_type: u32,
2769    pub _padding_464: [::std::os::raw::c_char; 4usize],
2770    pub controllers: ::std::option::Option<unsafe extern "C" fn(ids: *mut *mut u64) -> u32>,
2771    pub items: ::std::option::Option<unsafe extern "C" fn(items: *mut *mut tm_input_item_t) -> u32>,
2772    pub events: ::std::option::Option<
2773        unsafe extern "C" fn(start: u64, events: *mut tm_input_event_t, buffer_size: u64) -> u64,
2774    >,
2775    pub state:
2776        ::std::option::Option<unsafe extern "C" fn(controller: u64, item: u64) -> tm_input_data_t>,
2777}
2778#[repr(C)]
2779#[derive(Copy, Clone)]
2780pub struct tm_input_api {
2781    pub add_source: ::std::option::Option<unsafe extern "C" fn(source: *mut tm_input_source_i)>,
2782    pub remove_source: ::std::option::Option<unsafe extern "C" fn(source: *mut tm_input_source_i)>,
2783    pub sources: ::std::option::Option<
2784        unsafe extern "C" fn(sources: *mut *mut *mut tm_input_source_i) -> u32,
2785    >,
2786    pub events: ::std::option::Option<
2787        unsafe extern "C" fn(start: u64, events: *mut tm_input_event_t, buffer_size: u64) -> u64,
2788    >,
2789    pub keyboard_item_names:
2790        ::std::option::Option<unsafe extern "C" fn() -> *mut *const ::std::os::raw::c_char>,
2791}
2792#[repr(C)]
2793#[derive(Copy, Clone)]
2794pub struct tm_integration_test_runner_o {
2795    _unused: [u8; 0],
2796}
2797#[repr(C)]
2798#[derive(Copy, Clone)]
2799pub struct tm_integration_test_runner_i {
2800    pub inst: *mut tm_integration_test_runner_o,
2801    pub context: u64,
2802    pub app: *mut tm_application_o,
2803    pub wait: ::std::option::Option<
2804        unsafe extern "C" fn(inst: *mut tm_integration_test_runner_o, sec: f32, id: u64) -> bool,
2805    >,
2806}
2807#[repr(C)]
2808#[derive(Copy, Clone)]
2809pub struct tm_integration_test_i {
2810    pub name: *const ::std::os::raw::c_char,
2811    pub context: u64,
2812    pub tick: ::std::option::Option<unsafe extern "C" fn(arg1: *mut tm_integration_test_runner_i)>,
2813}
2814#[repr(C)]
2815#[derive(Copy, Clone)]
2816pub struct tm_atomic_counter_o {
2817    _unused: [u8; 0],
2818}
2819#[repr(C)]
2820#[derive(Copy, Clone)]
2821pub struct tm_jobdecl_t {
2822    pub task: ::std::option::Option<unsafe extern "C" fn(data: *mut ::std::os::raw::c_void)>,
2823    pub data: *mut ::std::os::raw::c_void,
2824    pub pin_thread_handle: u32,
2825    pub _padding_20: [::std::os::raw::c_char; 4usize],
2826}
2827#[repr(C)]
2828#[derive(Copy, Clone)]
2829pub struct tm_job_system_api {
2830    pub run_jobs: ::std::option::Option<
2831        unsafe extern "C" fn(jobs: *mut tm_jobdecl_t, num_jobs: u32) -> *mut tm_atomic_counter_o,
2832    >,
2833    pub run_jobs_and_auto_free_counter:
2834        ::std::option::Option<unsafe extern "C" fn(jobs: *mut tm_jobdecl_t, num_jobs: u32)>,
2835    pub wait_for_counter:
2836        ::std::option::Option<unsafe extern "C" fn(counter: *mut tm_atomic_counter_o, value: u32)>,
2837    pub wait_for_counter_and_free:
2838        ::std::option::Option<unsafe extern "C" fn(counter: *mut tm_atomic_counter_o)>,
2839    pub wait_for_counter_and_free_no_fiber:
2840        ::std::option::Option<unsafe extern "C" fn(counter: *mut tm_atomic_counter_o)>,
2841    pub pin_thread_handle:
2842        ::std::option::Option<unsafe extern "C" fn(worker_thread_idx: u32) -> u32>,
2843    pub num_worker_threads: ::std::option::Option<unsafe extern "C" fn() -> u32>,
2844}
2845pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_ALLOW_UNQUOTED_KEYS: tm_json_parse_ext = 1;
2846pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_ALLOW_COMMENTS: tm_json_parse_ext = 2;
2847pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_IMPLICIT_ROOT_OBJECT: tm_json_parse_ext = 4;
2848pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_OPTIONAL_COMMAS: tm_json_parse_ext = 8;
2849pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_EQUALS_FOR_COLON: tm_json_parse_ext = 16;
2850pub const tm_json_parse_ext_TM_JSON_PARSE_EXT_LUA_QUOTING: tm_json_parse_ext = 32;
2851pub type tm_json_parse_ext = ::std::os::raw::c_int;
2852pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_PREFER_UNQUOTED_KEYS: tm_json_generate_ext = 1;
2853pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_IMPLICIT_ROOT_OBJECT: tm_json_generate_ext = 4;
2854pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_NO_COMMAS: tm_json_generate_ext = 8;
2855pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_USE_EQUALS_INSTEAD_OF_COLON:
2856    tm_json_generate_ext = 16;
2857pub const tm_json_generate_ext_TM_JSON_GENERATE_EXT_USE_LUA_QUOTING: tm_json_generate_ext = 32;
2858pub const tm_json_generate_ext_TM_JSON_GENERATE_INLINE_SMALL_ARRAYS: tm_json_generate_ext = 64;
2859pub const tm_json_generate_ext_TM_JSON_GENERATE_INLINE_SMALL_OBJECTS: tm_json_generate_ext = 128;
2860pub const tm_json_generate_ext_TM_JSON_GENERATE_INDENT_WITH_TABS: tm_json_generate_ext = 256;
2861pub type tm_json_generate_ext = ::std::os::raw::c_int;
2862#[repr(C)]
2863#[derive(Copy, Clone)]
2864pub struct tm_json_line_info_t {
2865    pub config_item: u32,
2866    pub line_number: u32,
2867}
2868#[repr(C)]
2869#[derive(Copy, Clone)]
2870pub struct tm_json_parse_info_t {
2871    pub success: bool,
2872    pub error: [::std::os::raw::c_char; 80usize],
2873    pub _padding_97: [::std::os::raw::c_char; 3usize],
2874    pub num_line_info: u32,
2875    pub allocated_line_info: u32,
2876    pub line_info: [tm_json_line_info_t; 1usize],
2877}
2878#[repr(C)]
2879#[derive(Copy, Clone)]
2880pub struct tm_json_generate_t {
2881    pub s: *mut ::std::os::raw::c_char,
2882    pub len: u32,
2883    pub allocated: u32,
2884}
2885#[repr(C)]
2886#[derive(Copy, Clone)]
2887pub struct tm_json_api {
2888    pub parse: ::std::option::Option<
2889        unsafe extern "C" fn(
2890            s: *const ::std::os::raw::c_char,
2891            config: *mut tm_config_i,
2892            extensions: tm_json_parse_ext,
2893            error: *mut ::std::os::raw::c_char,
2894        ) -> bool,
2895    >,
2896    pub parse_with_line_info: ::std::option::Option<
2897        unsafe extern "C" fn(
2898            s: *const ::std::os::raw::c_char,
2899            config: *mut tm_config_i,
2900            extensions: tm_json_parse_ext,
2901            ta: *mut tm_temp_allocator_i,
2902        ) -> *mut tm_json_parse_info_t,
2903    >,
2904    pub line_number: ::std::option::Option<
2905        unsafe extern "C" fn(pi: *const tm_json_parse_info_t, item: *const tm_config_item_t) -> u32,
2906    >,
2907    pub generate: ::std::option::Option<
2908        unsafe extern "C" fn(
2909            config: *mut tm_config_i,
2910            flags: tm_json_generate_ext,
2911            ta: *mut tm_temp_allocator_i,
2912        ) -> tm_json_generate_t,
2913    >,
2914}
2915#[repr(C)]
2916#[derive(Copy, Clone)]
2917pub struct tm_localizer_strings_t {
2918    pub num_strings: u32,
2919    pub stride_bytes: u32,
2920    pub strings: *const *const ::std::os::raw::c_char,
2921}
2922pub type tm_localizer_strings_i =
2923    ::std::option::Option<unsafe extern "C" fn(language: u64) -> tm_localizer_strings_t>;
2924#[repr(C)]
2925#[derive(Copy, Clone)]
2926pub struct tm_localizer_o {
2927    _unused: [u8; 0],
2928}
2929#[repr(C)]
2930#[derive(Copy, Clone)]
2931pub struct tm_localizer_i {
2932    pub inst: *mut tm_localizer_o,
2933    pub localize: ::std::option::Option<
2934        unsafe extern "C" fn(
2935            inst: *mut tm_localizer_o,
2936            s: *const ::std::os::raw::c_char,
2937            context: *const ::std::os::raw::c_char,
2938        ) -> *const ::std::os::raw::c_char,
2939    >,
2940}
2941#[repr(C)]
2942#[derive(Copy, Clone)]
2943pub struct tm_localizer_api {
2944    pub def: *mut *mut tm_localizer_i,
2945    pub passthrough: *mut tm_localizer_i,
2946}
2947pub const tm_log_type_TM_LOG_TYPE_INFO: tm_log_type = 0;
2948pub const tm_log_type_TM_LOG_TYPE_DEBUG: tm_log_type = 1;
2949pub const tm_log_type_TM_LOG_TYPE_ERROR: tm_log_type = 2;
2950pub type tm_log_type = ::std::os::raw::c_int;
2951#[repr(C)]
2952#[derive(Copy, Clone)]
2953pub struct tm_logger_o {
2954    _unused: [u8; 0],
2955}
2956#[repr(C)]
2957#[derive(Copy, Clone)]
2958pub struct tm_logger_i {
2959    pub inst: *mut tm_logger_o,
2960    pub log: ::std::option::Option<
2961        unsafe extern "C" fn(
2962            inst: *mut tm_logger_o,
2963            log_type: tm_log_type,
2964            msg: *const ::std::os::raw::c_char,
2965        ),
2966    >,
2967}
2968#[repr(C)]
2969#[derive(Copy, Clone)]
2970pub struct tm_logger_api {
2971    pub add_logger: ::std::option::Option<unsafe extern "C" fn(logger: *const tm_logger_i)>,
2972    pub remove_logger: ::std::option::Option<unsafe extern "C" fn(logger: *const tm_logger_i)>,
2973    pub print: ::std::option::Option<
2974        unsafe extern "C" fn(log_type: tm_log_type, msg: *const ::std::os::raw::c_char),
2975    >,
2976    pub printf: ::std::option::Option<
2977        unsafe extern "C" fn(
2978            log_type: tm_log_type,
2979            format: *const ::std::os::raw::c_char,
2980            ...
2981        ) -> ::std::os::raw::c_int,
2982    >,
2983    pub default_logger: *mut tm_logger_i,
2984}
2985#[repr(C)]
2986#[derive(Copy, Clone)]
2987pub struct tm_lz4_api {
2988    pub compress: ::std::option::Option<
2989        unsafe extern "C" fn(
2990            src: *const ::std::os::raw::c_char,
2991            src_size: u32,
2992            dst: *mut ::std::os::raw::c_char,
2993            dst_capacity: u32,
2994        ) -> u32,
2995    >,
2996    pub decompress: ::std::option::Option<
2997        unsafe extern "C" fn(
2998            src: *const ::std::os::raw::c_char,
2999            src_size: u32,
3000            dst: *mut ::std::os::raw::c_char,
3001            dst_capacity: u32,
3002        ) -> u32,
3003    >,
3004    pub compress_bound: ::std::option::Option<unsafe extern "C" fn(src_size: u32) -> u32>,
3005}
3006#[repr(C)]
3007#[derive(Copy, Clone)]
3008pub struct tm_math_api {
3009    pub mat44_multiply: ::std::option::Option<
3010        unsafe extern "C" fn(res: *mut tm_mat44_t, lhs: *const tm_mat44_t, rhs: *const tm_mat44_t),
3011    >,
3012    pub mat44_inverse:
3013        ::std::option::Option<unsafe extern "C" fn(res: *mut tm_mat44_t, m: *const tm_mat44_t)>,
3014    pub mat44_determinant: ::std::option::Option<unsafe extern "C" fn(m: *const tm_mat44_t) -> f32>,
3015    pub mat44_determinant33:
3016        ::std::option::Option<unsafe extern "C" fn(m: *const tm_mat44_t) -> f32>,
3017    pub mat44_to_quaternion:
3018        ::std::option::Option<unsafe extern "C" fn(m: *const tm_mat44_t) -> tm_vec4_t>,
3019    pub mat44_to_translation_quaternion_scale: ::std::option::Option<
3020        unsafe extern "C" fn(
3021            t: *mut tm_vec3_t,
3022            r: *mut tm_vec4_t,
3023            s: *mut tm_vec3_t,
3024            m: *const tm_mat44_t,
3025        ),
3026    >,
3027}
3028#[repr(C)]
3029#[derive(Copy, Clone)]
3030pub struct tm_memory_tracker_scope_data_t {
3031    pub desc: *const ::std::os::raw::c_char,
3032    pub allocated_bytes: u64,
3033    pub allocation_count: u64,
3034    pub parent: u32,
3035    pub num_children: u32,
3036    pub tracing_enabled: bool,
3037    pub _padding_42: [::std::os::raw::c_char; 3usize],
3038    pub trace_count: u32,
3039}
3040#[repr(C)]
3041#[derive(Copy, Clone)]
3042pub struct tm_memory_tracker_trace_data_t {
3043    pub file: *const ::std::os::raw::c_char,
3044    pub line: u32,
3045    pub scope: u32,
3046    pub allocated_bytes: u64,
3047    pub allocation_count: u64,
3048}
3049#[repr(C)]
3050#[derive(Copy, Clone)]
3051pub struct tm_memory_tracker_api {
3052    pub check_for_leaked_scopes: ::std::option::Option<unsafe extern "C" fn()>,
3053    pub create_scope: ::std::option::Option<
3054        unsafe extern "C" fn(desc: *const ::std::os::raw::c_char, parent_scope: u32) -> u32,
3055    >,
3056    pub destroy_scope: ::std::option::Option<unsafe extern "C" fn(s: u32)>,
3057    pub destroy_scope_allowing_leaks:
3058        ::std::option::Option<unsafe extern "C" fn(scope: u32, max_leaked_bytes: u64)>,
3059    pub record_realloc: ::std::option::Option<
3060        unsafe extern "C" fn(
3061            old_ptr: *mut ::std::os::raw::c_void,
3062            old_size: u64,
3063            new_ptr: *mut ::std::os::raw::c_void,
3064            new_size: u64,
3065            file: *const ::std::os::raw::c_char,
3066            line: u32,
3067            scope: u32,
3068        ),
3069    >,
3070    pub allocated_bytes: ::std::option::Option<unsafe extern "C" fn(scope: u32) -> u64>,
3071    pub allocation_count: ::std::option::Option<unsafe extern "C" fn(scope: u32) -> u64>,
3072    pub set_scope_tracing: ::std::option::Option<unsafe extern "C" fn(scope: u32, enabled: bool)>,
3073    pub scope_data_snapshot: ::std::option::Option<
3074        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *mut tm_memory_tracker_scope_data_t,
3075    >,
3076    pub trace_data_snapshot: ::std::option::Option<
3077        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *mut tm_memory_tracker_trace_data_t,
3078    >,
3079}
3080#[repr(C)]
3081#[derive(Copy, Clone)]
3082pub struct tm_file_o {
3083    pub opaque: u64,
3084}
3085#[repr(C)]
3086#[derive(Copy, Clone)]
3087pub struct tm_file_system_watcher_o {
3088    pub opaque: u64,
3089}
3090#[repr(C)]
3091#[derive(Copy, Clone)]
3092pub struct tm_dll_o {
3093    pub opaque: u64,
3094}
3095#[repr(C)]
3096#[derive(Copy, Clone)]
3097pub struct tm_socket_o {
3098    pub opaque: u64,
3099}
3100#[repr(C)]
3101#[derive(Copy, Clone)]
3102pub struct tm_file_time_o {
3103    pub opaque: u64,
3104}
3105#[repr(C)]
3106#[derive(Copy, Clone)]
3107pub struct tm_critical_section_o {
3108    pub opaque: [u8; 64usize],
3109}
3110#[repr(C)]
3111#[derive(Copy, Clone)]
3112pub struct tm_semaphore_o {
3113    pub opaque: u64,
3114}
3115#[repr(C)]
3116#[derive(Copy, Clone)]
3117pub struct tm_thread_o {
3118    pub opaque: [u64; 2usize],
3119}
3120#[repr(C)]
3121#[derive(Copy, Clone)]
3122pub struct tm_fiber_o {
3123    pub opaque: u64,
3124}
3125#[repr(C)]
3126#[derive(Copy, Clone)]
3127pub struct tm_socket_address_t {
3128    pub __bindgen_anon_1: tm_socket_address_t__bindgen_ty_1,
3129    pub port: u32,
3130}
3131#[repr(C)]
3132#[derive(Copy, Clone)]
3133pub union tm_socket_address_t__bindgen_ty_1 {
3134    pub ip: u32,
3135    pub ip_byte: [u8; 4usize],
3136    _bindgen_union_align: u32,
3137}
3138#[repr(C)]
3139#[derive(Copy, Clone)]
3140pub struct tm_file_stat_t {
3141    pub exists: bool,
3142    pub is_directory: bool,
3143    pub _padding_106: [::std::os::raw::c_char; 6usize],
3144    pub last_modified_time: tm_file_time_o,
3145    pub size: u64,
3146}
3147#[repr(C)]
3148#[derive(Copy, Clone)]
3149pub struct tm_strings_t {
3150    pub count: u32,
3151    pub bytes: u32,
3152}
3153pub type tm_thread_entry_f =
3154    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
3155pub type tm_fiber_entry_f =
3156    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
3157#[repr(C)]
3158#[derive(Copy, Clone)]
3159pub struct tm_os_virtual_memory_api {
3160    pub map: ::std::option::Option<unsafe extern "C" fn(size: u64) -> *mut ::std::os::raw::c_void>,
3161    pub unmap:
3162        ::std::option::Option<unsafe extern "C" fn(p: *mut ::std::os::raw::c_void, size: u64)>,
3163    pub reserve:
3164        ::std::option::Option<unsafe extern "C" fn(size: u64) -> *mut ::std::os::raw::c_void>,
3165    pub commit:
3166        ::std::option::Option<unsafe extern "C" fn(p: *mut ::std::os::raw::c_void, size: u64)>,
3167}
3168#[repr(C)]
3169#[derive(Copy, Clone)]
3170pub struct tm_os_file_io_api {
3171    pub open_input: ::std::option::Option<
3172        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> tm_file_o,
3173    >,
3174    pub open_output: ::std::option::Option<
3175        unsafe extern "C" fn(path: *const ::std::os::raw::c_char, append: bool) -> tm_file_o,
3176    >,
3177    pub set_position: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o, pos: u64)>,
3178    pub size: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o) -> u64>,
3179    pub read: ::std::option::Option<
3180        unsafe extern "C" fn(
3181            file: tm_file_o,
3182            buffer: *mut ::std::os::raw::c_void,
3183            size: u64,
3184        ) -> i64,
3185    >,
3186    pub write: ::std::option::Option<
3187        unsafe extern "C" fn(
3188            file: tm_file_o,
3189            buffer: *const ::std::os::raw::c_void,
3190            size: u64,
3191        ) -> bool,
3192    >,
3193    pub read_at: ::std::option::Option<
3194        unsafe extern "C" fn(
3195            file: tm_file_o,
3196            offset: u64,
3197            buffer: *mut ::std::os::raw::c_void,
3198            size: u64,
3199        ) -> i64,
3200    >,
3201    pub write_at: ::std::option::Option<
3202        unsafe extern "C" fn(
3203            file: tm_file_o,
3204            offset: u64,
3205            buffer: *const ::std::os::raw::c_void,
3206            size: u64,
3207        ) -> bool,
3208    >,
3209    pub close: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o)>,
3210    pub is_valid: ::std::option::Option<unsafe extern "C" fn(file: tm_file_o) -> bool>,
3211    pub invalid_file: tm_file_o,
3212}
3213#[repr(C)]
3214#[derive(Copy, Clone)]
3215pub struct tm_os_file_system_api {
3216    pub stat: ::std::option::Option<
3217        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> tm_file_stat_t,
3218    >,
3219    pub directory_entries: ::std::option::Option<
3220        unsafe extern "C" fn(
3221            path: *const ::std::os::raw::c_char,
3222            ta: *mut tm_temp_allocator_i,
3223        ) -> *mut tm_strings_t,
3224    >,
3225    pub make_directory:
3226        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
3227    pub remove_file:
3228        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
3229    pub remove_directory:
3230        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
3231    pub rename: ::std::option::Option<
3232        unsafe extern "C" fn(
3233            old_name: *const ::std::os::raw::c_char,
3234            new_name: *const ::std::os::raw::c_char,
3235        ) -> bool,
3236    >,
3237    pub copy_file: ::std::option::Option<
3238        unsafe extern "C" fn(
3239            from: *const ::std::os::raw::c_char,
3240            to: *const ::std::os::raw::c_char,
3241        ) -> bool,
3242    >,
3243    pub getcwd: ::std::option::Option<
3244        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *const ::std::os::raw::c_char,
3245    >,
3246    pub chdir:
3247        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
3248    pub is_absolute:
3249        ::std::option::Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
3250    pub absolute: ::std::option::Option<
3251        unsafe extern "C" fn(
3252            path: *const ::std::os::raw::c_char,
3253            ta: *mut tm_temp_allocator_i,
3254        ) -> *const ::std::os::raw::c_char,
3255    >,
3256    pub temp_directory: ::std::option::Option<
3257        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *const ::std::os::raw::c_char,
3258    >,
3259    pub create_watcher: ::std::option::Option<
3260        unsafe extern "C" fn(dir_path: *const ::std::os::raw::c_char) -> tm_file_system_watcher_o,
3261    >,
3262    pub any_changes:
3263        ::std::option::Option<unsafe extern "C" fn(watcher: tm_file_system_watcher_o) -> bool>,
3264    pub destroy_watcher:
3265        ::std::option::Option<unsafe extern "C" fn(watcher: tm_file_system_watcher_o)>,
3266    pub app_folder: ::std::option::Option<
3267        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *const ::std::os::raw::c_char,
3268    >,
3269}
3270#[repr(C)]
3271#[derive(Copy, Clone)]
3272pub struct tm_os_dll_api {
3273    pub open: ::std::option::Option<
3274        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> tm_dll_o,
3275    >,
3276    pub is_valid: ::std::option::Option<unsafe extern "C" fn(handle: tm_dll_o) -> bool>,
3277    pub sym: ::std::option::Option<
3278        unsafe extern "C" fn(
3279            handle: tm_dll_o,
3280            name: *const ::std::os::raw::c_char,
3281        ) -> *mut ::std::os::raw::c_void,
3282    >,
3283    pub close: ::std::option::Option<unsafe extern "C" fn(handle: tm_dll_o)>,
3284}
3285pub const tm_os_socket_type_TM_OS_SOCKET_TYPE_TCP: tm_os_socket_type = 1;
3286pub const tm_os_socket_type_TM_OS_SOCKET_TYPE_UDP: tm_os_socket_type = 2;
3287pub const tm_os_socket_type_TM_OS_SOCKET_TYPE_INVALID: tm_os_socket_type = 3;
3288pub type tm_os_socket_type = ::std::os::raw::c_int;
3289pub const tm_os_socket_error_TM_OS_SOCKET_ERROR_WOULD_BLOCK: tm_os_socket_error = -1000;
3290pub const tm_os_socket_error_TM_OS_SOCKET_ERROR_CLOSED: tm_os_socket_error = -1001;
3291pub const tm_os_socket_error_TM_OS_SOCKET_ERROR_OTHER: tm_os_socket_error = -1;
3292pub type tm_os_socket_error = ::std::os::raw::c_int;
3293pub const tm_os_socket_connect_TM_OS_SOCKET_CONNECT_PENDING: tm_os_socket_connect = 0;
3294pub const tm_os_socket_connect_TM_OS_SOCKET_CONNECT_ESTABLISHED: tm_os_socket_connect = 1;
3295pub const tm_os_socket_connect_TM_OS_SOCKET_CONNECT_FAILED: tm_os_socket_connect = 2;
3296pub type tm_os_socket_connect = ::std::os::raw::c_int;
3297pub const tm_os_socket_getaddrinfo_TM_OS_SOCKET_GETADDRINFO_IN_PROGRESS: tm_os_socket_getaddrinfo =
3298    0;
3299pub const tm_os_socket_getaddrinfo_TM_OS_SOCKET_GETADDRINFO_SUCCESS: tm_os_socket_getaddrinfo = 1;
3300pub const tm_os_socket_getaddrinfo_TM_OS_SOCKET_GETADDRINFO_ERROR: tm_os_socket_getaddrinfo = 2;
3301pub type tm_os_socket_getaddrinfo = ::std::os::raw::c_int;
3302pub const tm_os_socket_option_TM_SOCKET_OPTION__NODELAY: tm_os_socket_option = 0;
3303pub const tm_os_socket_option_TM_SOCKET_OPTION__NONBLOCK: tm_os_socket_option = 1;
3304pub type tm_os_socket_option = ::std::os::raw::c_int;
3305#[repr(C)]
3306#[derive(Copy, Clone)]
3307pub struct tm_os_socket_api {
3308    pub init: ::std::option::Option<unsafe extern "C" fn()>,
3309    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
3310    pub socket:
3311        ::std::option::Option<unsafe extern "C" fn(type_: tm_os_socket_type) -> tm_socket_o>,
3312    pub set_option: ::std::option::Option<
3313        unsafe extern "C" fn(socket: tm_socket_o, option: tm_os_socket_option, enabled: bool),
3314    >,
3315    pub is_valid: ::std::option::Option<unsafe extern "C" fn(socket: tm_socket_o) -> bool>,
3316    pub bind: ::std::option::Option<
3317        unsafe extern "C" fn(socket: tm_socket_o, address: tm_socket_address_t) -> bool,
3318    >,
3319    pub getsockname: ::std::option::Option<
3320        unsafe extern "C" fn(socket: tm_socket_o, address: *mut tm_socket_address_t) -> bool,
3321    >,
3322    pub listen:
3323        ::std::option::Option<unsafe extern "C" fn(socket: tm_socket_o, queue_size: u32) -> bool>,
3324    pub accept: ::std::option::Option<
3325        unsafe extern "C" fn(socket: tm_socket_o, address: *mut tm_socket_address_t) -> tm_socket_o,
3326    >,
3327    pub connect: ::std::option::Option<
3328        unsafe extern "C" fn(
3329            socket: tm_socket_o,
3330            target: tm_socket_address_t,
3331        ) -> tm_os_socket_connect,
3332    >,
3333    pub send: ::std::option::Option<
3334        unsafe extern "C" fn(
3335            socket: tm_socket_o,
3336            buffer: *const ::std::os::raw::c_void,
3337            size: u32,
3338        ) -> i32,
3339    >,
3340    pub recv: ::std::option::Option<
3341        unsafe extern "C" fn(
3342            socket: tm_socket_o,
3343            buffer: *mut ::std::os::raw::c_void,
3344            size: u32,
3345        ) -> i32,
3346    >,
3347    pub sendto: ::std::option::Option<
3348        unsafe extern "C" fn(
3349            socket: tm_socket_o,
3350            buffer: *const ::std::os::raw::c_void,
3351            size: u32,
3352            target: tm_socket_address_t,
3353        ) -> i32,
3354    >,
3355    pub recvfrom: ::std::option::Option<
3356        unsafe extern "C" fn(
3357            socket: tm_socket_o,
3358            buffer: *mut ::std::os::raw::c_void,
3359            size: u32,
3360            source: *mut tm_socket_address_t,
3361        ) -> i32,
3362    >,
3363    pub close: ::std::option::Option<unsafe extern "C" fn(socket: tm_socket_o) -> bool>,
3364    pub getaddrinfo: ::std::option::Option<
3365        unsafe extern "C" fn(
3366            name: *const ::std::os::raw::c_char,
3367            service: *const ::std::os::raw::c_char,
3368            addresses: *mut tm_socket_address_t,
3369            size: u32,
3370        ) -> u32,
3371    >,
3372    pub getaddrinfo_async: ::std::option::Option<
3373        unsafe extern "C" fn(
3374            name: *const ::std::os::raw::c_char,
3375            service: *const ::std::os::raw::c_char,
3376        ) -> *mut ::std::os::raw::c_void,
3377    >,
3378    pub getaddrinfo_result: ::std::option::Option<
3379        unsafe extern "C" fn(
3380            query: *mut ::std::os::raw::c_void,
3381            addresses: *mut tm_socket_address_t,
3382            count: *mut u32,
3383        ) -> tm_os_socket_getaddrinfo,
3384    >,
3385}
3386pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__LOWEST: tm_os_thread__priority = 0;
3387pub const tm_os_thread__priority_TM_OS_THREAD__PRIOIRTY__LOW: tm_os_thread__priority = 1;
3388pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__NORMAL: tm_os_thread__priority = 2;
3389pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__HIGH: tm_os_thread__priority = 3;
3390pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__HIGHEST: tm_os_thread__priority = 4;
3391pub const tm_os_thread__priority_TM_OS_THREAD__PRIORITY__TIME_CRITICAL: tm_os_thread__priority = 5;
3392pub type tm_os_thread__priority = ::std::os::raw::c_int;
3393#[repr(C)]
3394#[derive(Copy, Clone)]
3395pub struct tm_os_thread_api {
3396    pub create_critical_section:
3397        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
3398    pub enter_critical_section:
3399        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
3400    pub leave_critical_section:
3401        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
3402    pub destroy_critical_section:
3403        ::std::option::Option<unsafe extern "C" fn(cs: *mut tm_critical_section_o)>,
3404    pub create_semaphore:
3405        ::std::option::Option<unsafe extern "C" fn(initial_count: u32) -> tm_semaphore_o>,
3406    pub semaphore_add: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o, count: u32)>,
3407    pub semaphore_wait: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o)>,
3408    pub semaphore_poll: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o) -> bool>,
3409    pub destroy_semaphore: ::std::option::Option<unsafe extern "C" fn(sem: tm_semaphore_o)>,
3410    pub thread_id: ::std::option::Option<unsafe extern "C" fn() -> u32>,
3411    pub processor_id: ::std::option::Option<unsafe extern "C" fn() -> u32>,
3412    pub create_thread: ::std::option::Option<
3413        unsafe extern "C" fn(
3414            entry: tm_thread_entry_f,
3415            user_data: *mut ::std::os::raw::c_void,
3416            stack_size: u32,
3417            debug_name: *const ::std::os::raw::c_char,
3418        ) -> tm_thread_o,
3419    >,
3420    pub set_thread_priority: ::std::option::Option<
3421        unsafe extern "C" fn(thread: tm_thread_o, priority: tm_os_thread__priority),
3422    >,
3423    pub wait_for_thread: ::std::option::Option<unsafe extern "C" fn(thread: tm_thread_o)>,
3424    pub thread_id_from_tm_thread:
3425        ::std::option::Option<unsafe extern "C" fn(thread: tm_thread_o) -> u32>,
3426    pub convert_thread_to_fiber: ::std::option::Option<
3427        unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void) -> tm_fiber_o,
3428    >,
3429    pub convert_fiber_to_thread: ::std::option::Option<unsafe extern "C" fn()>,
3430    pub create_fiber: ::std::option::Option<
3431        unsafe extern "C" fn(
3432            entry: tm_fiber_entry_f,
3433            user_data: *mut ::std::os::raw::c_void,
3434            stack_size: u32,
3435        ) -> tm_fiber_o,
3436    >,
3437    pub destroy_fiber: ::std::option::Option<unsafe extern "C" fn(fiber: tm_fiber_o)>,
3438    pub switch_to_fiber: ::std::option::Option<unsafe extern "C" fn(fiber: tm_fiber_o)>,
3439    pub fiber_user_data:
3440        ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>,
3441    pub yield_processor: ::std::option::Option<unsafe extern "C" fn()>,
3442    pub sleep: ::std::option::Option<unsafe extern "C" fn(seconds: f64)>,
3443}
3444#[repr(C)]
3445#[derive(Copy, Clone)]
3446pub struct tm_os_time_api {
3447    pub now: ::std::option::Option<unsafe extern "C" fn() -> tm_clock_o>,
3448    pub delta: ::std::option::Option<unsafe extern "C" fn(to: tm_clock_o, from: tm_clock_o) -> f64>,
3449    pub add:
3450        ::std::option::Option<unsafe extern "C" fn(from: tm_clock_o, delta: f64) -> tm_clock_o>,
3451    pub file_time_now: ::std::option::Option<unsafe extern "C" fn() -> tm_file_time_o>,
3452    pub file_time_delta: ::std::option::Option<
3453        unsafe extern "C" fn(to: tm_file_time_o, from: tm_file_time_o) -> f64,
3454    >,
3455}
3456#[repr(C)]
3457#[derive(Copy, Clone)]
3458pub struct tm_os_dialogs_open_t {
3459    pub extensions: *const ::std::os::raw::c_char,
3460    pub description: *const ::std::os::raw::c_char,
3461    pub allow_multi_select: bool,
3462    pub _padding_571: [::std::os::raw::c_char; 7usize],
3463}
3464#[repr(C)]
3465#[derive(Copy, Clone)]
3466pub struct tm_os_dialogs_open_res_t {
3467    pub num_files: u32,
3468    pub _padding_579: [::std::os::raw::c_char; 4usize],
3469    pub files: *mut *mut ::std::os::raw::c_char,
3470}
3471#[repr(C)]
3472#[derive(Copy, Clone)]
3473pub struct tm_os_dialogs_save_t {
3474    pub default_name: *const ::std::os::raw::c_char,
3475}
3476#[repr(C)]
3477#[derive(Copy, Clone)]
3478pub struct tm_os_dialogs_api {
3479    pub open: ::std::option::Option<
3480        unsafe extern "C" fn(
3481            s: *const tm_os_dialogs_open_t,
3482            ta: *mut tm_temp_allocator_i,
3483        ) -> tm_os_dialogs_open_res_t,
3484    >,
3485    pub open_folder: ::std::option::Option<
3486        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> *mut ::std::os::raw::c_char,
3487    >,
3488    pub save: ::std::option::Option<
3489        unsafe extern "C" fn(
3490            s: *const tm_os_dialogs_save_t,
3491            ta: *mut tm_temp_allocator_i,
3492        ) -> *mut ::std::os::raw::c_char,
3493    >,
3494    pub message_box: ::std::option::Option<
3495        unsafe extern "C" fn(
3496            title: *const ::std::os::raw::c_char,
3497            text: *const ::std::os::raw::c_char,
3498        ),
3499    >,
3500    pub show_count: ::std::option::Option<unsafe extern "C" fn() -> u64>,
3501}
3502#[repr(C)]
3503#[derive(Copy, Clone)]
3504pub struct tm_os_info_api {
3505    pub num_logical_processors: ::std::option::Option<unsafe extern "C" fn() -> u32>,
3506    pub avx_support: ::std::option::Option<unsafe extern "C" fn() -> bool>,
3507}
3508#[repr(C)]
3509#[derive(Copy, Clone)]
3510pub struct tm_os_clipboard_item_t {
3511    pub format: *const ::std::os::raw::c_char,
3512    pub data: *const ::std::os::raw::c_char,
3513    pub size: u32,
3514    pub _padding_639: [::std::os::raw::c_char; 4usize],
3515}
3516#[repr(C)]
3517#[derive(Copy, Clone)]
3518pub struct tm_os_clipboard_api {
3519    pub get: ::std::option::Option<
3520        unsafe extern "C" fn(
3521            format: *const ::std::os::raw::c_char,
3522            ta: *mut tm_temp_allocator_i,
3523        ) -> tm_os_clipboard_item_t,
3524    >,
3525    pub set:
3526        ::std::option::Option<unsafe extern "C" fn(items: *mut tm_os_clipboard_item_t, n: u32)>,
3527}
3528#[repr(C)]
3529#[derive(Copy, Clone)]
3530pub struct tm_os_debugger_api {
3531    pub is_debugger_present: ::std::option::Option<unsafe extern "C" fn() -> bool>,
3532    pub debug_break: ::std::option::Option<unsafe extern "C" fn()>,
3533}
3534#[repr(C)]
3535#[derive(Copy, Clone)]
3536pub struct tm_os_system_api {
3537    pub open_url: ::std::option::Option<unsafe extern "C" fn(url: *const ::std::os::raw::c_char)>,
3538    pub open_file:
3539        ::std::option::Option<unsafe extern "C" fn(file: *const ::std::os::raw::c_char) -> bool>,
3540    pub exe_path: ::std::option::Option<
3541        unsafe extern "C" fn(
3542            argv_0: *const ::std::os::raw::c_char,
3543        ) -> *const ::std::os::raw::c_char,
3544    >,
3545    pub execute: ::std::option::Option<
3546        unsafe extern "C" fn(command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
3547    >,
3548}
3549#[repr(C)]
3550#[derive(Copy, Clone)]
3551pub struct tm_os_api {
3552    pub virtual_memory: *mut tm_os_virtual_memory_api,
3553    pub file_io: *mut tm_os_file_io_api,
3554    pub file_system: *mut tm_os_file_system_api,
3555    pub dll: *mut tm_os_dll_api,
3556    pub socket: *mut tm_os_socket_api,
3557    pub thread: *mut tm_os_thread_api,
3558    pub time: *mut tm_os_time_api,
3559    pub dialogs: *mut tm_os_dialogs_api,
3560    pub info: *mut tm_os_info_api,
3561    pub clipboard: *mut tm_os_clipboard_api,
3562    pub debugger: *mut tm_os_debugger_api,
3563    pub system: *mut tm_os_system_api,
3564}
3565#[repr(C)]
3566#[derive(Copy, Clone)]
3567pub struct tm_path_api {
3568    pub split: ::std::option::Option<
3569        unsafe extern "C" fn(
3570            path: *const ::std::os::raw::c_char,
3571            ext: *mut *const ::std::os::raw::c_char,
3572        ) -> *const ::std::os::raw::c_char,
3573    >,
3574    pub split_dir: ::std::option::Option<
3575        unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char,
3576    >,
3577}
3578pub type tm_plugin_load_f =
3579    ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>;
3580#[repr(C)]
3581#[derive(Copy, Clone)]
3582pub struct tm_plugins_api {
3583    pub load: ::std::option::Option<
3584        unsafe extern "C" fn(path: *const ::std::os::raw::c_char, hot_reload: bool) -> u64,
3585    >,
3586    pub unload: ::std::option::Option<unsafe extern "C" fn(plugin: u64)>,
3587    pub reload: ::std::option::Option<unsafe extern "C" fn(plugin: u64)>,
3588    pub check_hot_reload: ::std::option::Option<unsafe extern "C" fn() -> bool>,
3589    pub reload_count: ::std::option::Option<unsafe extern "C" fn() -> u64>,
3590    pub enumerate: ::std::option::Option<
3591        unsafe extern "C" fn(
3592            dir: *const ::std::os::raw::c_char,
3593            ta: *mut tm_temp_allocator_i,
3594        ) -> *mut *const ::std::os::raw::c_char,
3595    >,
3596    pub load_plugin_context:
3597        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
3598    pub plugin_dllpath: ::std::option::Option<
3599        unsafe extern "C" fn(
3600            ta: *mut tm_temp_allocator_i,
3601            exe: *const ::std::os::raw::c_char,
3602            name: *const ::std::os::raw::c_char,
3603        ) -> *const ::std::os::raw::c_char,
3604    >,
3605    pub app_dllpath: ::std::option::Option<
3606        unsafe extern "C" fn(
3607            ta: *mut tm_temp_allocator_i,
3608            exe: *const ::std::os::raw::c_char,
3609            name: *const ::std::os::raw::c_char,
3610        ) -> *const ::std::os::raw::c_char,
3611    >,
3612}
3613#[repr(C)]
3614#[derive(Copy, Clone)]
3615pub struct tm_plugin_init_i {
3616    pub inst: *mut tm_plugin_o,
3617    pub init: ::std::option::Option<
3618        unsafe extern "C" fn(inst: *mut tm_plugin_o, allocator: *mut tm_allocator_i),
3619    >,
3620}
3621#[repr(C)]
3622#[derive(Copy, Clone)]
3623pub struct tm_plugin_shutdown_i {
3624    pub inst: *mut tm_plugin_o,
3625    pub shutdown: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_plugin_o)>,
3626}
3627#[repr(C)]
3628#[derive(Copy, Clone)]
3629pub struct tm_plugin_tick_i {
3630    pub inst: *mut tm_plugin_o,
3631    pub tick: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_plugin_o, dt: f32)>,
3632}
3633#[repr(C)]
3634#[derive(Copy, Clone)]
3635pub struct tm_plugin_set_the_truth_i {
3636    pub inst: *mut tm_plugin_o,
3637    pub set_the_truth: ::std::option::Option<
3638        unsafe extern "C" fn(inst: *mut tm_plugin_o, tt: *mut tm_the_truth_o),
3639    >,
3640}
3641pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_BEGIN: tm_profiler_event_type = 0;
3642pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_END: tm_profiler_event_type = 1;
3643pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_INSTANT: tm_profiler_event_type = 2;
3644pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_START: tm_profiler_event_type = 3;
3645pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_FINISH: tm_profiler_event_type = 4;
3646pub const tm_profiler_event_type_TM_PROFILER_EVENT_TYPE_FIBER_SWITCH: tm_profiler_event_type = 5;
3647pub type tm_profiler_event_type = ::std::os::raw::c_int;
3648#[repr(C)]
3649#[derive(Copy, Clone)]
3650pub struct tm_profiler_event_t {
3651    pub type_: u32,
3652    pub thread_id: u32,
3653    pub time_stamp: u64,
3654    pub __bindgen_anon_1: tm_profiler_event_t__bindgen_ty_1,
3655}
3656#[repr(C)]
3657#[derive(Copy, Clone)]
3658pub union tm_profiler_event_t__bindgen_ty_1 {
3659    pub __bindgen_anon_1: tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1,
3660    pub __bindgen_anon_2: tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2,
3661    _bindgen_union_align: [u64; 4usize],
3662}
3663#[repr(C)]
3664#[derive(Copy, Clone)]
3665pub struct tm_profiler_event_t__bindgen_ty_1__bindgen_ty_1 {
3666    pub id: u32,
3667    pub _padding_51: [::std::os::raw::c_char; 4usize],
3668    pub category: *const ::std::os::raw::c_char,
3669    pub name: *const ::std::os::raw::c_char,
3670    pub object: *const ::std::os::raw::c_char,
3671}
3672#[repr(C)]
3673#[derive(Copy, Clone)]
3674pub struct tm_profiler_event_t__bindgen_ty_1__bindgen_ty_2 {
3675    pub from_fiber: u32,
3676    pub to_fiber: u32,
3677}
3678#[repr(C)]
3679#[derive(Copy, Clone)]
3680pub struct tm_profiler_buffer_t {
3681    pub total_recorded: u64,
3682    pub start: [u64; 2usize],
3683    pub events: [*const tm_profiler_event_t; 2usize],
3684    pub count: [u32; 2usize],
3685}
3686pub const TM_PROFILER_THREAD_BUFFER_SIZE: ::std::os::raw::c_int = 256;
3687pub type _bindgen_ty_1 = ::std::os::raw::c_int;
3688#[repr(C)]
3689#[derive(Copy, Clone)]
3690pub struct tm_profiler_api {
3691    pub init: ::std::option::Option<
3692        unsafe extern "C" fn(allocator: *mut tm_allocator_i, event_buffer_size: u32),
3693    >,
3694    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
3695    pub enabled: *mut bool,
3696    pub begin: ::std::option::Option<
3697        unsafe extern "C" fn(
3698            name: *const ::std::os::raw::c_char,
3699            category: *const ::std::os::raw::c_char,
3700            object: *const ::std::os::raw::c_char,
3701        ) -> u64,
3702    >,
3703    pub end: ::std::option::Option<unsafe extern "C" fn(begin_id: u64)>,
3704    pub instant: ::std::option::Option<
3705        unsafe extern "C" fn(
3706            name: *const ::std::os::raw::c_char,
3707            category: *const ::std::os::raw::c_char,
3708            object: *const ::std::os::raw::c_char,
3709        ),
3710    >,
3711    pub start: ::std::option::Option<
3712        unsafe extern "C" fn(
3713            name: *const ::std::os::raw::c_char,
3714            category: *const ::std::os::raw::c_char,
3715            object: *const ::std::os::raw::c_char,
3716        ) -> u64,
3717    >,
3718    pub finish: ::std::option::Option<unsafe extern "C" fn(start_id: u64)>,
3719    pub intern: ::std::option::Option<
3720        unsafe extern "C" fn(s: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char,
3721    >,
3722    pub fiber_switch: ::std::option::Option<unsafe extern "C" fn(from_fiber: u32, to_fiber: u32)>,
3723    pub submit:
3724        ::std::option::Option<unsafe extern "C" fn(events: *mut tm_profiler_event_t, count: u32)>,
3725    pub copy: ::std::option::Option<
3726        unsafe extern "C" fn(
3727            dest: *mut tm_profiler_event_t,
3728            start: u64,
3729            count: u32,
3730            actual_start: *mut u64,
3731            actual_count: *mut u32,
3732        ),
3733    >,
3734    pub buffer: ::std::option::Option<unsafe extern "C" fn() -> tm_profiler_buffer_t>,
3735}
3736#[repr(C)]
3737#[derive(Copy, Clone)]
3738pub struct tm_task_progress_t {
3739    pub num_tasks: u32,
3740    pub task_index: u32,
3741    pub text: *const ::std::os::raw::c_char,
3742    pub fraction: f32,
3743    pub _padding_21: [::std::os::raw::c_char; 4usize],
3744}
3745#[repr(C)]
3746#[derive(Copy, Clone)]
3747pub struct tm_task_status_t {
3748    pub task_id: *mut u64,
3749    pub text: *mut *const ::std::os::raw::c_char,
3750    pub fraction: *mut f32,
3751    pub num_tasks: u32,
3752    pub _padding_30: [::std::os::raw::c_char; 4usize],
3753}
3754#[repr(C)]
3755#[derive(Copy, Clone)]
3756pub struct tm_progress_report_api {
3757    pub create:
3758        ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i, task_display_time: f32)>,
3759    pub destroy: ::std::option::Option<unsafe extern "C" fn()>,
3760    pub update: ::std::option::Option<
3761        unsafe extern "C" fn(dt: f64, ta: *mut tm_temp_allocator_i) -> tm_task_progress_t,
3762    >,
3763    pub status: ::std::option::Option<
3764        unsafe extern "C" fn(ta: *mut tm_temp_allocator_i) -> tm_task_status_t,
3765    >,
3766    pub idle: ::std::option::Option<unsafe extern "C" fn() -> bool>,
3767    pub set_task_progress: ::std::option::Option<
3768        unsafe extern "C" fn(task: u64, text: *const ::std::os::raw::c_char, fraction: f32),
3769    >,
3770}
3771#[repr(C)]
3772#[derive(Copy, Clone)]
3773pub struct tm_random_api {
3774    pub next: ::std::option::Option<unsafe extern "C" fn() -> u64>,
3775    pub next_n: ::std::option::Option<unsafe extern "C" fn(res: *mut u64, n: u32)>,
3776    pub seed_new_state: ::std::option::Option<unsafe extern "C" fn(s: *mut u64)>,
3777}
3778#[repr(C)]
3779#[derive(Copy, Clone)]
3780pub struct tm_runtime_data_repository_o {
3781    _unused: [u8; 0],
3782}
3783#[repr(C)]
3784#[derive(Copy, Clone)]
3785pub struct tm_runtime_data_t {
3786    pub version: u64,
3787    pub data: *mut ::std::os::raw::c_void,
3788}
3789#[repr(C)]
3790#[derive(Copy, Clone)]
3791pub struct tm_runtime_data_io_i {
3792    pub load: ::std::option::Option<
3793        unsafe extern "C" fn(
3794            io_context: *mut ::std::os::raw::c_void,
3795            tt: *mut tm_the_truth_o,
3796            asset_id: tm_tt_id_t,
3797            result_runtime_data: *mut ::std::os::raw::c_void,
3798        ) -> bool,
3799    >,
3800    pub unload: ::std::option::Option<
3801        unsafe extern "C" fn(
3802            io_context: *mut ::std::os::raw::c_void,
3803            runtime_data: *mut ::std::os::raw::c_void,
3804        ),
3805    >,
3806}
3807#[repr(C)]
3808#[derive(Copy, Clone)]
3809pub struct tm_runtime_data_repository_api {
3810    pub create: ::std::option::Option<
3811        unsafe extern "C" fn(
3812            allocator: *mut tm_allocator_i,
3813            tt: *mut tm_the_truth_o,
3814            type_: u64,
3815            runtime_data_size: u32,
3816            io_interface: *mut tm_runtime_data_io_i,
3817        ) -> *mut tm_runtime_data_repository_o,
3818    >,
3819    pub destroy: ::std::option::Option<
3820        unsafe extern "C" fn(
3821            inst: *mut tm_runtime_data_repository_o,
3822            io_context: *mut ::std::os::raw::c_void,
3823        ),
3824    >,
3825    pub lookup: ::std::option::Option<
3826        unsafe extern "C" fn(
3827            inst: *mut tm_runtime_data_repository_o,
3828            asset_id: tm_tt_id_t,
3829            wanted_version: u64,
3830            io_context: *mut ::std::os::raw::c_void,
3831        ) -> tm_runtime_data_t,
3832    >,
3833    pub garbage_collect: ::std::option::Option<
3834        unsafe extern "C" fn(
3835            inst: *mut tm_runtime_data_repository_o,
3836            io_context: *mut ::std::os::raw::c_void,
3837        ),
3838    >,
3839}
3840#[repr(C)]
3841#[derive(Copy, Clone)]
3842pub struct SHA1_CTX {
3843    pub state: [u32; 5usize],
3844    pub count: [u32; 2usize],
3845    pub buffer: [u8; 64usize],
3846}
3847#[repr(C)]
3848#[derive(Copy, Clone)]
3849pub struct tm_string_repository_i {
3850    pub inst: *mut tm_string_repository_o,
3851    pub add: ::std::option::Option<
3852        unsafe extern "C" fn(
3853            inst: *mut tm_string_repository_o,
3854            s: *const ::std::os::raw::c_char,
3855        ) -> u64,
3856    >,
3857    pub retain:
3858        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_string_repository_o, hash: u64)>,
3859    pub remove:
3860        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_string_repository_o, hash: u64)>,
3861    pub lookup: ::std::option::Option<
3862        unsafe extern "C" fn(
3863            inst: *mut tm_string_repository_o,
3864            hash: u64,
3865        ) -> *const ::std::os::raw::c_char,
3866    >,
3867    pub intern: ::std::option::Option<
3868        unsafe extern "C" fn(
3869            inst: *mut tm_string_repository_o,
3870            s: *const ::std::os::raw::c_char,
3871        ) -> *const ::std::os::raw::c_char,
3872    >,
3873}
3874#[repr(C)]
3875#[derive(Copy, Clone)]
3876pub struct tm_string_repository_api {
3877    pub create: ::std::option::Option<
3878        unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_string_repository_i,
3879    >,
3880    pub destroy: ::std::option::Option<unsafe extern "C" fn(i: *mut tm_string_repository_i)>,
3881}
3882#[repr(C)]
3883#[derive(Copy, Clone)]
3884pub struct tm_task_system_api {
3885    pub run_task: ::std::option::Option<
3886        unsafe extern "C" fn(
3887            f: ::std::option::Option<
3888                unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, id: u64),
3889            >,
3890            data: *mut ::std::os::raw::c_void,
3891            debug_name: *const ::std::os::raw::c_char,
3892        ) -> u64,
3893    >,
3894    pub is_task_done: ::std::option::Option<unsafe extern "C" fn(id: u64) -> bool>,
3895    pub is_task_done_else_assist: ::std::option::Option<unsafe extern "C" fn(id: u64) -> bool>,
3896    pub cancel_task: ::std::option::Option<unsafe extern "C" fn(id: u64)>,
3897    pub is_task_canceled: ::std::option::Option<unsafe extern "C" fn(id: u64) -> bool>,
3898}
3899#[repr(C)]
3900#[derive(Copy, Clone)]
3901pub struct tm_temp_allocator_i {
3902    pub inst: *mut tm_temp_allocator_o,
3903    pub realloc: ::std::option::Option<
3904        unsafe extern "C" fn(
3905            inst: *mut tm_temp_allocator_o,
3906            ptr: *mut ::std::os::raw::c_void,
3907            old_size: u64,
3908            new_size: u64,
3909        ) -> *mut ::std::os::raw::c_void,
3910    >,
3911}
3912#[repr(C)]
3913#[derive(Copy, Clone)]
3914pub struct tm_temp_allocator_1024_o {
3915    pub ta: tm_temp_allocator_i,
3916    pub buffer: [::std::os::raw::c_char; 1024usize],
3917    pub backing: *mut tm_allocator_i,
3918    pub first_block: *mut ::std::os::raw::c_void,
3919}
3920#[repr(C)]
3921#[derive(Copy, Clone)]
3922pub struct tm_temp_allocator_statistics_t {
3923    pub temp_allocation_blocks: u64,
3924    pub temp_allocation_bytes: u64,
3925    pub frame_allocation_blocks: u64,
3926    pub frame_allocation_bytes: u64,
3927}
3928#[repr(C)]
3929#[derive(Copy, Clone)]
3930pub struct tm_temp_allocator_api {
3931    pub init_1024: ::std::option::Option<
3932        unsafe extern "C" fn(ta: *mut tm_temp_allocator_1024_o, backing: *mut tm_allocator_i),
3933    >,
3934    pub shutdown_1024:
3935        ::std::option::Option<unsafe extern "C" fn(ta: *mut tm_temp_allocator_1024_o)>,
3936    pub create: ::std::option::Option<
3937        unsafe extern "C" fn(backing: *mut tm_allocator_i) -> *mut tm_temp_allocator_i,
3938    >,
3939    pub destroy: ::std::option::Option<unsafe extern "C" fn(ta: *mut tm_temp_allocator_i)>,
3940    pub allocator: ::std::option::Option<
3941        unsafe extern "C" fn(a: *mut tm_allocator_i, ta: *mut tm_temp_allocator_i),
3942    >,
3943    pub frame_alloc:
3944        ::std::option::Option<unsafe extern "C" fn(size: u64) -> *mut ::std::os::raw::c_void>,
3945    pub frame_allocator: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_allocator_i>,
3946    pub tick_frame: ::std::option::Option<unsafe extern "C" fn()>,
3947    pub vprintf: ::std::option::Option<
3948        unsafe extern "C" fn(
3949            ta: *mut tm_temp_allocator_i,
3950            format: *const ::std::os::raw::c_char,
3951            args: va_list,
3952        ) -> *mut ::std::os::raw::c_char,
3953    >,
3954    pub printf: ::std::option::Option<
3955        unsafe extern "C" fn(
3956            ta: *mut tm_temp_allocator_i,
3957            format: *const ::std::os::raw::c_char,
3958            ...
3959        ) -> *mut ::std::os::raw::c_char,
3960    >,
3961    pub frame_vprintf: ::std::option::Option<
3962        unsafe extern "C" fn(
3963            format: *const ::std::os::raw::c_char,
3964            args: va_list,
3965        ) -> *mut ::std::os::raw::c_char,
3966    >,
3967    pub frame_printf: ::std::option::Option<
3968        unsafe extern "C" fn(
3969            format: *const ::std::os::raw::c_char,
3970            ...
3971        ) -> *mut ::std::os::raw::c_char,
3972    >,
3973    pub statistics: *mut tm_temp_allocator_statistics_t,
3974}
3975#[repr(C)]
3976#[derive(Copy, Clone)]
3977pub struct tm_hash_id_to_id_t {
3978    _unused: [u8; 0],
3979}
3980#[repr(C)]
3981#[derive(Copy, Clone)]
3982pub struct tm_set_t {
3983    _unused: [u8; 0],
3984}
3985pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_NONE: tm_the_truth_property_type =
3986    0;
3987pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_BOOL: tm_the_truth_property_type =
3988    1;
3989pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_UINT32_T:
3990    tm_the_truth_property_type = 2;
3991pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_UINT64_T:
3992    tm_the_truth_property_type = 3;
3993pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_FLOAT: tm_the_truth_property_type =
3994    4;
3995pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_DOUBLE: tm_the_truth_property_type =
3996    5;
3997pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_STRING: tm_the_truth_property_type =
3998    6;
3999pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_BUFFER: tm_the_truth_property_type =
4000    7;
4001pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_REFERENCE:
4002    tm_the_truth_property_type = 8;
4003pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_SUBOBJECT:
4004    tm_the_truth_property_type = 9;
4005pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_REFERENCE_SET:
4006    tm_the_truth_property_type = 10;
4007pub const tm_the_truth_property_type_TM_THE_TRUTH_PROPERTY_TYPE_SUBOBJECT_SET:
4008    tm_the_truth_property_type = 11;
4009pub const tm_the_truth_property_type_TM_THE_TRUTH_NUM_PROPERTY_TYPES: tm_the_truth_property_type =
4010    12;
4011pub type tm_the_truth_property_type = ::std::os::raw::c_int;
4012pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__DEFAULT: tm_the_truth_editor = 0;
4013pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__HIDDEN: tm_the_truth_editor = 1;
4014pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__UINT32_T__ENUM: tm_the_truth_editor = 2;
4015pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__STRING__OPEN_PATH: tm_the_truth_editor = 3;
4016pub const tm_the_truth_editor_TM_THE_TRUTH__EDITOR__STRING__SAVE_PATH: tm_the_truth_editor = 4;
4017pub type tm_the_truth_editor = ::std::os::raw::c_int;
4018#[repr(C)]
4019#[derive(Copy, Clone)]
4020pub struct tm_the_truth_editor_enum_t {
4021    pub count: u32,
4022    pub _padding_363: [::std::os::raw::c_char; 4usize],
4023    pub names: *const *const ::std::os::raw::c_char,
4024    pub tooltips: *const *const ::std::os::raw::c_char,
4025}
4026#[repr(C)]
4027#[derive(Copy, Clone)]
4028pub struct tm_the_truth_editor_string_open_path_t {
4029    pub extensions: *const ::std::os::raw::c_char,
4030    pub description: *const ::std::os::raw::c_char,
4031}
4032#[repr(C)]
4033#[derive(Copy, Clone)]
4034pub struct tm_the_truth_editor_string_save_path_t {
4035    pub default_file_name: *const ::std::os::raw::c_char,
4036}
4037#[repr(C)]
4038#[derive(Copy, Clone)]
4039pub struct tm_the_truth_object_o {
4040    _unused: [u8; 0],
4041}
4042#[repr(C)]
4043#[derive(Copy, Clone)]
4044pub struct tm_the_truth_property_definition_t {
4045    pub name: *const ::std::os::raw::c_char,
4046    pub type_: u32,
4047    pub editor: u32,
4048    pub __bindgen_anon_1: tm_the_truth_property_definition_t__bindgen_ty_1,
4049    pub type_hash: u64,
4050    pub buffer_extension: *const ::std::os::raw::c_char,
4051    pub buffer_extension_f: ::std::option::Option<
4052        unsafe extern "C" fn(
4053            tt: *const tm_the_truth_o,
4054            object: tm_tt_id_t,
4055            property: u32,
4056        ) -> *const ::std::os::raw::c_char,
4057    >,
4058    pub tooltip: *const ::std::os::raw::c_char,
4059    pub not_serialized: bool,
4060    pub _padding_454: [::std::os::raw::c_char; 7usize],
4061    pub ui_name: *const ::std::os::raw::c_char,
4062}
4063#[repr(C)]
4064#[derive(Copy, Clone)]
4065pub union tm_the_truth_property_definition_t__bindgen_ty_1 {
4066    pub enum_editor: tm_the_truth_editor_enum_t,
4067    pub string_open_path_editor: tm_the_truth_editor_string_open_path_t,
4068    pub string_save_path_editor: tm_the_truth_editor_string_save_path_t,
4069    _bindgen_union_align: [u64; 3usize],
4070}
4071pub type tm_the_truth_create_types_i =
4072    ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>;
4073pub const tm_the_truth_create_types_TM_THE_TRUTH_CREATE_TYPES_NONE: tm_the_truth_create_types = 0;
4074pub const tm_the_truth_create_types_TM_THE_TRUTH_CREATE_TYPES_ALL: tm_the_truth_create_types = 1;
4075pub type tm_the_truth_create_types = ::std::os::raw::c_int;
4076#[repr(C)]
4077#[derive(Copy, Clone)]
4078pub struct tm_the_truth_get_types_with_aspect_t {
4079    pub type_: u64,
4080    pub data: *mut ::std::os::raw::c_void,
4081}
4082#[repr(C)]
4083#[derive(Copy, Clone)]
4084pub struct tm_the_truth_get_aspects_t {
4085    pub id: u64,
4086    pub data: *mut ::std::os::raw::c_void,
4087}
4088#[repr(C)]
4089#[derive(Copy, Clone)]
4090pub struct tm_the_truth_local_set_t {
4091    pub num_added: u32,
4092    pub _padding_501: [::std::os::raw::c_char; 4usize],
4093    pub added: *const tm_tt_id_t,
4094    pub num_removed: u32,
4095    pub _padding_506: [::std::os::raw::c_char; 4usize],
4096    pub removed: *const tm_tt_id_t,
4097    pub num_instantiated: u32,
4098    pub _padding_511: [::std::os::raw::c_char; 4usize],
4099    pub instantiated: *const tm_tt_id_t,
4100}
4101#[repr(C)]
4102#[derive(Copy, Clone)]
4103pub struct tm_the_truth_set_local_subobject_set_t {
4104    pub num_added: u32,
4105    pub _padding_520: [::std::os::raw::c_char; 4usize],
4106    pub added: *mut *mut tm_the_truth_object_o,
4107    pub num_removed: u32,
4108    pub _padding_525: [::std::os::raw::c_char; 4usize],
4109    pub removed: *const tm_tt_id_t,
4110    pub num_instantiated: u32,
4111    pub _padding_530: [::std::os::raw::c_char; 4usize],
4112    pub instantiated: *mut *mut tm_the_truth_object_o,
4113}
4114#[repr(C)]
4115#[derive(Copy, Clone)]
4116pub struct tm_the_truth_changed_objects_t {
4117    pub overflow: bool,
4118    pub _padding_540: [::std::os::raw::c_char; 3usize],
4119    pub num_objects: u32,
4120    pub objects: *mut tm_tt_id_t,
4121    pub version: u64,
4122}
4123#[repr(C)]
4124#[derive(Copy, Clone)]
4125pub struct tm_hash_u64_to_id_t {
4126    _unused: [u8; 0],
4127}
4128#[repr(C)]
4129#[derive(Copy, Clone)]
4130pub struct tm_the_truth_interop_context_t {
4131    pub to_tt: *mut tm_the_truth_o,
4132    pub from_tt: *mut tm_the_truth_o,
4133    pub type_lookup: *mut tm_hash32_t,
4134    pub property_lookup: *mut tm_hash32_t,
4135    pub buffer_lookup: *mut tm_hash32_t,
4136    pub object_lookup: *mut tm_hash_u64_to_id_t,
4137}
4138pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_ADDED:
4139    tm_the_truth_prototype_relation = 0;
4140pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_ASSET:
4141    tm_the_truth_prototype_relation = 1;
4142pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_INHERITED:
4143    tm_the_truth_prototype_relation = 2;
4144pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_INSTANTIATED:
4145    tm_the_truth_prototype_relation = 3;
4146pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_REMOVED:
4147    tm_the_truth_prototype_relation = 4;
4148pub const tm_the_truth_prototype_relation_TM_TT_PROTOTYPE_RELATION_NONE:
4149    tm_the_truth_prototype_relation = 5;
4150pub type tm_the_truth_prototype_relation = ::std::os::raw::c_int;
4151#[repr(C)]
4152#[derive(Copy, Clone)]
4153pub struct tm_tt_buffer_t {
4154    pub id: u32,
4155    pub _padding_604: [::std::os::raw::c_char; 4usize],
4156    pub size: u64,
4157    pub data: *const ::std::os::raw::c_void,
4158    pub hash: u64,
4159}
4160#[repr(C)]
4161#[derive(Copy, Clone)]
4162pub struct tm_tt_prop_value_t {
4163    pub type_: tm_the_truth_property_type,
4164    pub _padding_620: [::std::os::raw::c_char; 4usize],
4165    pub __bindgen_anon_1: tm_tt_prop_value_t__bindgen_ty_1,
4166}
4167#[repr(C)]
4168#[derive(Copy, Clone)]
4169pub union tm_tt_prop_value_t__bindgen_ty_1 {
4170    pub b: bool,
4171    pub u32_: u32,
4172    pub u64_: u64,
4173    pub f32_: f32,
4174    pub f64_: f64,
4175    pub string: *const ::std::os::raw::c_char,
4176    pub buffer: tm_tt_buffer_t,
4177    pub object: tm_tt_id_t,
4178    pub set: *const tm_tt_id_t,
4179    _bindgen_union_align: [u64; 4usize],
4180}
4181#[repr(C)]
4182#[derive(Copy, Clone)]
4183pub struct tm_tt_undo_action_t {
4184    pub before: *const tm_the_truth_object_o,
4185    pub after: *const tm_the_truth_object_o,
4186}
4187#[repr(C)]
4188#[derive(Copy, Clone)]
4189pub struct tm_tt_serialize_options_t {
4190    pub serialize_buffers_as_hashes: bool,
4191    pub skip_type_index: bool,
4192    pub _padding_661: [::std::os::raw::c_char; 6usize],
4193    pub types: *mut tm_set_t,
4194}
4195pub const TM_THE_TRUTH_MAX_PROPERTIES: ::std::os::raw::c_int = 64;
4196pub type _bindgen_ty_2 = ::std::os::raw::c_int;
4197#[repr(C)]
4198#[derive(Copy, Clone)]
4199pub struct tm_the_truth_serialized_type_info_t {
4200    pub runtime_type: u64,
4201    pub properties_differ: bool,
4202    pub _padding_681: [::std::os::raw::c_char; 3usize],
4203    pub num_properties: u32,
4204    pub serialized_property_to_runtime_property: [u32; 64usize],
4205    pub serialized_property_type: [u32; 64usize],
4206}
4207#[repr(C)]
4208#[derive(Copy, Clone)]
4209pub struct tm_tt_deserialize_options_t {
4210    pub buffers_preloaded: bool,
4211    pub skip_type_index: bool,
4212    pub _padding_704: [::std::os::raw::c_char; 6usize],
4213    pub type_infos: *const tm_the_truth_serialized_type_info_t,
4214}
4215#[repr(C)]
4216#[derive(Copy, Clone)]
4217pub struct tm_tt_serialize_changes_options_t {
4218    pub no_header: bool,
4219}
4220#[repr(C)]
4221#[derive(Copy, Clone)]
4222pub struct tm_tt_deserialize_changes_options_t {
4223    pub header: *const ::std::os::raw::c_char,
4224}
4225#[repr(C)]
4226#[derive(Copy, Clone)]
4227pub struct tm_tt_memory_use_t {
4228    pub resident: u64,
4229    pub unloaded: u64,
4230}
4231#[repr(C)]
4232#[derive(Copy, Clone)]
4233pub struct tm_the_truth_api {
4234    pub allocator:
4235        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_allocator_i>,
4236    pub buffers:
4237        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_buffers_i>,
4238    pub streamable_buffers: ::std::option::Option<
4239        unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_streamable_buffers_i,
4240    >,
4241    pub create_object_type: ::std::option::Option<
4242        unsafe extern "C" fn(
4243            tt: *mut tm_the_truth_o,
4244            name: *const ::std::os::raw::c_char,
4245            properties: *const tm_the_truth_property_definition_t,
4246            num_properties: u32,
4247        ) -> u64,
4248    >,
4249    pub set_default_object: ::std::option::Option<
4250        unsafe extern "C" fn(tt: *mut tm_the_truth_o, object_type: u64, object: tm_tt_id_t),
4251    >,
4252    pub set_default_object_to_create_subobjects:
4253        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, object_type: u64)>,
4254    pub default_object: ::std::option::Option<
4255        unsafe extern "C" fn(tt: *const tm_the_truth_o, object_type: u64) -> tm_tt_id_t,
4256    >,
4257    pub is_default: ::std::option::Option<
4258        unsafe extern "C" fn(
4259            tt: *const tm_the_truth_o,
4260            obj: *const tm_the_truth_object_o,
4261            property: u32,
4262        ) -> bool,
4263    >,
4264    pub set_aspect: ::std::option::Option<
4265        unsafe extern "C" fn(
4266            tt: *mut tm_the_truth_o,
4267            object_type: u64,
4268            aspect: u64,
4269            data: *mut ::std::os::raw::c_void,
4270        ),
4271    >,
4272    pub set_default_aspect: ::std::option::Option<
4273        unsafe extern "C" fn(
4274            tt: *mut tm_the_truth_o,
4275            aspect: u64,
4276            data: *mut ::std::os::raw::c_void,
4277        ),
4278    >,
4279    pub set_property_aspect: ::std::option::Option<
4280        unsafe extern "C" fn(
4281            tt: *mut tm_the_truth_o,
4282            object_type: u64,
4283            property: u32,
4284            aspect: u64,
4285            data: *mut ::std::os::raw::c_void,
4286        ),
4287    >,
4288    pub reload_aspects: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
4289    pub set_dont_propagate_version_tick: ::std::option::Option<
4290        unsafe extern "C" fn(tt: *mut tm_the_truth_o, object_type: u64, state: bool),
4291    >,
4292    pub object_type_from_name_hash: ::std::option::Option<
4293        unsafe extern "C" fn(tt: *const tm_the_truth_o, name_hash: u64) -> u64,
4294    >,
4295    pub optional_object_type_from_name_hash: ::std::option::Option<
4296        unsafe extern "C" fn(tt: *const tm_the_truth_o, name_hash: u64) -> u64,
4297    >,
4298    pub num_types: ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> u32>,
4299    pub type_name: ::std::option::Option<
4300        unsafe extern "C" fn(
4301            tt: *const tm_the_truth_o,
4302            object_type: u64,
4303        ) -> *const ::std::os::raw::c_char,
4304    >,
4305    pub type_name_hash: ::std::option::Option<
4306        unsafe extern "C" fn(tt: *const tm_the_truth_o, object_type: u64) -> u64,
4307    >,
4308    pub num_properties: ::std::option::Option<
4309        unsafe extern "C" fn(tt: *const tm_the_truth_o, object_type: u64) -> u32,
4310    >,
4311    pub properties: ::std::option::Option<
4312        unsafe extern "C" fn(
4313            tt: *const tm_the_truth_o,
4314            object_type: u64,
4315        ) -> *const tm_the_truth_property_definition_t,
4316    >,
4317    pub find_property: ::std::option::Option<
4318        unsafe extern "C" fn(
4319            tt: *const tm_the_truth_o,
4320            object_type: u64,
4321            name_hash: u64,
4322            type_: u32,
4323            res: *mut u32,
4324        ) -> bool,
4325    >,
4326    pub property_index: ::std::option::Option<
4327        unsafe extern "C" fn(tt: *const tm_the_truth_o, type_: u64, name_hash: u64) -> u32,
4328    >,
4329    pub has_property: ::std::option::Option<
4330        unsafe extern "C" fn(tt: *const tm_the_truth_o, type_: u64, name_hash: u64) -> u32,
4331    >,
4332    pub get_aspect: ::std::option::Option<
4333        unsafe extern "C" fn(
4334            tt: *const tm_the_truth_o,
4335            object_type: u64,
4336            aspect: u64,
4337        ) -> *mut ::std::os::raw::c_void,
4338    >,
4339    pub get_types_with_aspect: ::std::option::Option<
4340        unsafe extern "C" fn(
4341            tt: *const tm_the_truth_o,
4342            aspect: u64,
4343            ta: *mut tm_temp_allocator_i,
4344        ) -> *mut tm_the_truth_get_types_with_aspect_t,
4345    >,
4346    pub get_aspects: ::std::option::Option<
4347        unsafe extern "C" fn(
4348            tt: *const tm_the_truth_o,
4349            object_type: u64,
4350        ) -> *const tm_the_truth_get_aspects_t,
4351    >,
4352    pub get_property_aspect: ::std::option::Option<
4353        unsafe extern "C" fn(
4354            tt: *const tm_the_truth_o,
4355            object_type: u64,
4356            property: u32,
4357            aspect: u64,
4358        ) -> *mut ::std::os::raw::c_void,
4359    >,
4360    pub all_objects_of_type: ::std::option::Option<
4361        unsafe extern "C" fn(
4362            tt: *const tm_the_truth_o,
4363            object_type: u64,
4364            ta: *mut tm_temp_allocator_i,
4365        ) -> *mut tm_tt_id_t,
4366    >,
4367    pub create_undo_scope: ::std::option::Option<
4368        unsafe extern "C" fn(
4369            tt: *mut tm_the_truth_o,
4370            name: *const ::std::os::raw::c_char,
4371        ) -> tm_tt_undo_scope_t,
4372    >,
4373    pub create_thread_safe_undo_scope: ::std::option::Option<
4374        unsafe extern "C" fn(
4375            tt: *mut tm_the_truth_o,
4376            name: *const ::std::os::raw::c_char,
4377        ) -> tm_tt_undo_scope_t,
4378    >,
4379    pub clear_undo_scopes: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
4380    pub undo_scope_name: ::std::option::Option<
4381        unsafe extern "C" fn(
4382            tt: *mut tm_the_truth_o,
4383            scope: tm_tt_undo_scope_t,
4384        ) -> *const ::std::os::raw::c_char,
4385    >,
4386    pub undo_scope_objects: ::std::option::Option<
4387        unsafe extern "C" fn(
4388            tt: *mut tm_the_truth_o,
4389            scope: tm_tt_undo_scope_t,
4390            ta: *mut tm_temp_allocator_i,
4391        ) -> *mut tm_tt_id_t,
4392    >,
4393    pub undo_scope_actions: ::std::option::Option<
4394        unsafe extern "C" fn(
4395            tt: *mut tm_the_truth_o,
4396            scope: tm_tt_undo_scope_t,
4397            ta: *mut tm_temp_allocator_i,
4398        ) -> *mut tm_tt_undo_action_t,
4399    >,
4400    pub undo: ::std::option::Option<
4401        unsafe extern "C" fn(tt: *mut tm_the_truth_o, scope: tm_tt_undo_scope_t),
4402    >,
4403    pub redo: ::std::option::Option<
4404        unsafe extern "C" fn(tt: *mut tm_the_truth_o, scope: tm_tt_undo_scope_t),
4405    >,
4406    pub create_object_of_type: ::std::option::Option<
4407        unsafe extern "C" fn(
4408            tt: *mut tm_the_truth_o,
4409            type_: u64,
4410            undo_scope: tm_tt_undo_scope_t,
4411        ) -> tm_tt_id_t,
4412    >,
4413    pub create_object_from_prototype: ::std::option::Option<
4414        unsafe extern "C" fn(
4415            tt: *mut tm_the_truth_o,
4416            prototype: tm_tt_id_t,
4417            undo_scope: tm_tt_undo_scope_t,
4418        ) -> tm_tt_id_t,
4419    >,
4420    pub clone_object: ::std::option::Option<
4421        unsafe extern "C" fn(
4422            tt: *mut tm_the_truth_o,
4423            object: tm_tt_id_t,
4424            undo_scope: tm_tt_undo_scope_t,
4425        ) -> tm_tt_id_t,
4426    >,
4427    pub instantiate_subobject: ::std::option::Option<
4428        unsafe extern "C" fn(
4429            tt: *mut tm_the_truth_o,
4430            obj: *mut tm_the_truth_object_o,
4431            property: u32,
4432            undo_scope: tm_tt_undo_scope_t,
4433        ) -> tm_tt_id_t,
4434    >,
4435    pub remove_instantiated_subobject: ::std::option::Option<
4436        unsafe extern "C" fn(
4437            tt: *mut tm_the_truth_o,
4438            obj: *mut tm_the_truth_object_o,
4439            property: u32,
4440            undo_scope: tm_tt_undo_scope_t,
4441        ),
4442    >,
4443    pub instantiate_subobject_from_set: ::std::option::Option<
4444        unsafe extern "C" fn(
4445            tt: *mut tm_the_truth_o,
4446            obj: *mut tm_the_truth_object_o,
4447            property: u32,
4448            subobject: tm_tt_id_t,
4449            undo_scope: tm_tt_undo_scope_t,
4450        ) -> tm_tt_id_t,
4451    >,
4452    pub remove_instantiated_subobject_from_set: ::std::option::Option<
4453        unsafe extern "C" fn(
4454            tt: *mut tm_the_truth_o,
4455            obj: *mut tm_the_truth_object_o,
4456            property: u32,
4457            subobject: tm_tt_id_t,
4458            undo_scope: tm_tt_undo_scope_t,
4459        ),
4460    >,
4461    pub add_instantiated_subobject_back_to_set: ::std::option::Option<
4462        unsafe extern "C" fn(
4463            tt: *mut tm_the_truth_o,
4464            obj: *mut tm_the_truth_object_o,
4465            property: u32,
4466            subobject: tm_tt_id_t,
4467        ),
4468    >,
4469    pub id: ::std::option::Option<
4470        unsafe extern "C" fn(obj: *const tm_the_truth_object_o) -> tm_tt_id_t,
4471    >,
4472    pub destroy_object: ::std::option::Option<
4473        unsafe extern "C" fn(
4474            tt: *mut tm_the_truth_o,
4475            object: tm_tt_id_t,
4476            undo_scope: tm_tt_undo_scope_t,
4477        ),
4478    >,
4479    pub destroy_objects: ::std::option::Option<
4480        unsafe extern "C" fn(
4481            tt: *mut tm_the_truth_o,
4482            object: *const tm_tt_id_t,
4483            n: u32,
4484            undo_scope: tm_tt_undo_scope_t,
4485        ),
4486    >,
4487    pub garbage_collect: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
4488    pub is_alive: ::std::option::Option<
4489        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> bool,
4490    >,
4491    pub interop_ensure_compatibility:
4492        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_the_truth_interop_context_t)>,
4493    pub interop_clone_object: ::std::option::Option<
4494        unsafe extern "C" fn(
4495            ctx: *mut tm_the_truth_interop_context_t,
4496            object: tm_tt_id_t,
4497        ) -> tm_tt_id_t,
4498    >,
4499    pub deep_clone_assets: ::std::option::Option<
4500        unsafe extern "C" fn(
4501            to_tt: *mut tm_the_truth_o,
4502            from_tt: *const tm_the_truth_o,
4503            assets: *const tm_tt_id_t,
4504            n: u32,
4505            undo_scope: tm_tt_undo_scope_t,
4506            ta: *mut tm_temp_allocator_i,
4507        ) -> *mut tm_tt_id_t,
4508    >,
4509    pub uuid: ::std::option::Option<
4510        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> tm_uuid_t,
4511    >,
4512    pub read: ::std::option::Option<
4513        unsafe extern "C" fn(
4514            tt: *const tm_the_truth_o,
4515            object: tm_tt_id_t,
4516        ) -> *const tm_the_truth_object_o,
4517    >,
4518    pub get_bool: ::std::option::Option<
4519        unsafe extern "C" fn(
4520            tt: *const tm_the_truth_o,
4521            obj: *const tm_the_truth_object_o,
4522            property: u32,
4523        ) -> bool,
4524    >,
4525    pub get_uint32_t: ::std::option::Option<
4526        unsafe extern "C" fn(
4527            tt: *const tm_the_truth_o,
4528            obj: *const tm_the_truth_object_o,
4529            property: u32,
4530        ) -> u32,
4531    >,
4532    pub get_uint64_t: ::std::option::Option<
4533        unsafe extern "C" fn(
4534            tt: *const tm_the_truth_o,
4535            obj: *const tm_the_truth_object_o,
4536            property: u32,
4537        ) -> u64,
4538    >,
4539    pub get_float: ::std::option::Option<
4540        unsafe extern "C" fn(
4541            tt: *const tm_the_truth_o,
4542            obj: *const tm_the_truth_object_o,
4543            property: u32,
4544        ) -> f32,
4545    >,
4546    pub get_double: ::std::option::Option<
4547        unsafe extern "C" fn(
4548            tt: *const tm_the_truth_o,
4549            obj: *const tm_the_truth_object_o,
4550            property: u32,
4551        ) -> f64,
4552    >,
4553    pub get_string: ::std::option::Option<
4554        unsafe extern "C" fn(
4555            tt: *const tm_the_truth_o,
4556            obj: *const tm_the_truth_object_o,
4557            property: u32,
4558        ) -> *const ::std::os::raw::c_char,
4559    >,
4560    pub get_string_hash: ::std::option::Option<
4561        unsafe extern "C" fn(
4562            tt: *const tm_the_truth_o,
4563            obj: *const tm_the_truth_object_o,
4564            property: u32,
4565        ) -> u64,
4566    >,
4567    pub get_buffer: ::std::option::Option<
4568        unsafe extern "C" fn(
4569            tt: *const tm_the_truth_o,
4570            obj: *const tm_the_truth_object_o,
4571            property: u32,
4572        ) -> tm_tt_buffer_t,
4573    >,
4574    pub get_reference: ::std::option::Option<
4575        unsafe extern "C" fn(
4576            tt: *const tm_the_truth_o,
4577            obj: *const tm_the_truth_object_o,
4578            property: u32,
4579        ) -> tm_tt_id_t,
4580    >,
4581    pub get_subobject: ::std::option::Option<
4582        unsafe extern "C" fn(
4583            tt: *const tm_the_truth_o,
4584            obj: *const tm_the_truth_object_o,
4585            property: u32,
4586        ) -> tm_tt_id_t,
4587    >,
4588    pub get_property_value: ::std::option::Option<
4589        unsafe extern "C" fn(
4590            tt: *const tm_the_truth_o,
4591            obj: *const tm_the_truth_object_o,
4592            property: u32,
4593            ta: *mut tm_temp_allocator_i,
4594        ) -> tm_tt_prop_value_t,
4595    >,
4596    pub property_value_equal: ::std::option::Option<
4597        unsafe extern "C" fn(a: tm_tt_prop_value_t, b: tm_tt_prop_value_t) -> bool,
4598    >,
4599    pub get_reference_set: ::std::option::Option<
4600        unsafe extern "C" fn(
4601            tt: *const tm_the_truth_o,
4602            obj: *const tm_the_truth_object_o,
4603            property: u32,
4604            ta: *mut tm_temp_allocator_i,
4605        ) -> *const tm_tt_id_t,
4606    >,
4607    pub get_subobject_set: ::std::option::Option<
4608        unsafe extern "C" fn(
4609            tt: *const tm_the_truth_o,
4610            obj: *const tm_the_truth_object_o,
4611            property: u32,
4612            ta: *mut tm_temp_allocator_i,
4613        ) -> *const tm_tt_id_t,
4614    >,
4615    pub get_reference_set_size: ::std::option::Option<
4616        unsafe extern "C" fn(
4617            tt: *const tm_the_truth_o,
4618            obj: *const tm_the_truth_object_o,
4619            property: u32,
4620        ) -> u64,
4621    >,
4622    pub get_subobject_set_size: ::std::option::Option<
4623        unsafe extern "C" fn(
4624            tt: *const tm_the_truth_o,
4625            obj: *const tm_the_truth_object_o,
4626            property: u32,
4627        ) -> u64,
4628    >,
4629    pub get_subobject_set_locally_removed: ::std::option::Option<
4630        unsafe extern "C" fn(
4631            tt: *const tm_the_truth_o,
4632            obj: *const tm_the_truth_object_o,
4633            property: u32,
4634            ta: *mut tm_temp_allocator_i,
4635        ) -> *const tm_tt_id_t,
4636    >,
4637    pub find_subobject_of_type: ::std::option::Option<
4638        unsafe extern "C" fn(
4639            tt: *const tm_the_truth_o,
4640            obj: *const tm_the_truth_object_o,
4641            property: u32,
4642            type_: u64,
4643        ) -> tm_tt_id_t,
4644    >,
4645    pub is_subobject_of: ::std::option::Option<
4646        unsafe extern "C" fn(
4647            tt: *const tm_the_truth_o,
4648            obj: *const tm_the_truth_object_o,
4649            property: u32,
4650            subobject: tm_tt_id_t,
4651        ) -> bool,
4652    >,
4653    pub property_index_of_subobject: ::std::option::Option<
4654        unsafe extern "C" fn(
4655            tt: *const tm_the_truth_o,
4656            object: tm_tt_id_t,
4657            subobject: tm_tt_id_t,
4658        ) -> u32,
4659    >,
4660    pub write: ::std::option::Option<
4661        unsafe extern "C" fn(
4662            tt: *mut tm_the_truth_o,
4663            object: tm_tt_id_t,
4664        ) -> *mut tm_the_truth_object_o,
4665    >,
4666    pub commit: ::std::option::Option<
4667        unsafe extern "C" fn(
4668            tt: *mut tm_the_truth_o,
4669            obj: *mut tm_the_truth_object_o,
4670            undo_scope: tm_tt_undo_scope_t,
4671        ),
4672    >,
4673    pub commit_range: ::std::option::Option<
4674        unsafe extern "C" fn(
4675            tt: *mut tm_the_truth_o,
4676            obj: *mut *mut tm_the_truth_object_o,
4677            n: u32,
4678            undo_scope: tm_tt_undo_scope_t,
4679        ),
4680    >,
4681    pub retarget_write: ::std::option::Option<
4682        unsafe extern "C" fn(
4683            tt: *mut tm_the_truth_o,
4684            obj: *mut tm_the_truth_object_o,
4685            object: tm_tt_id_t,
4686        ),
4687    >,
4688    pub try_write: ::std::option::Option<
4689        unsafe extern "C" fn(
4690            tt: *mut tm_the_truth_o,
4691            object: tm_tt_id_t,
4692            original: *mut *const tm_the_truth_object_o,
4693        ) -> *mut tm_the_truth_object_o,
4694    >,
4695    pub try_commit: ::std::option::Option<
4696        unsafe extern "C" fn(
4697            tt: *mut tm_the_truth_o,
4698            obj: *mut tm_the_truth_object_o,
4699            original: *const tm_the_truth_object_o,
4700            undo_scope: tm_tt_undo_scope_t,
4701        ) -> bool,
4702    >,
4703    pub set_bool: ::std::option::Option<
4704        unsafe extern "C" fn(
4705            tt: *mut tm_the_truth_o,
4706            obj: *mut tm_the_truth_object_o,
4707            property: u32,
4708            value: bool,
4709        ),
4710    >,
4711    pub set_uint32_t: ::std::option::Option<
4712        unsafe extern "C" fn(
4713            tt: *mut tm_the_truth_o,
4714            obj: *mut tm_the_truth_object_o,
4715            property: u32,
4716            value: u32,
4717        ),
4718    >,
4719    pub set_uint64_t: ::std::option::Option<
4720        unsafe extern "C" fn(
4721            tt: *mut tm_the_truth_o,
4722            obj: *mut tm_the_truth_object_o,
4723            property: u32,
4724            value: u64,
4725        ),
4726    >,
4727    pub set_float: ::std::option::Option<
4728        unsafe extern "C" fn(
4729            tt: *mut tm_the_truth_o,
4730            obj: *mut tm_the_truth_object_o,
4731            property: u32,
4732            value: f32,
4733        ),
4734    >,
4735    pub set_double: ::std::option::Option<
4736        unsafe extern "C" fn(
4737            tt: *mut tm_the_truth_o,
4738            obj: *mut tm_the_truth_object_o,
4739            property: u32,
4740            value: f64,
4741        ),
4742    >,
4743    pub set_string: ::std::option::Option<
4744        unsafe extern "C" fn(
4745            tt: *mut tm_the_truth_o,
4746            obj: *mut tm_the_truth_object_o,
4747            property: u32,
4748            value: *const ::std::os::raw::c_char,
4749        ),
4750    >,
4751    pub set_buffer: ::std::option::Option<
4752        unsafe extern "C" fn(
4753            tt: *mut tm_the_truth_o,
4754            obj: *mut tm_the_truth_object_o,
4755            property: u32,
4756            value: u32,
4757        ),
4758    >,
4759    pub set_reference: ::std::option::Option<
4760        unsafe extern "C" fn(
4761            tt: *mut tm_the_truth_o,
4762            obj: *mut tm_the_truth_object_o,
4763            property: u32,
4764            value: tm_tt_id_t,
4765        ),
4766    >,
4767    pub set_subobject: ::std::option::Option<
4768        unsafe extern "C" fn(
4769            tt: *mut tm_the_truth_o,
4770            obj: *mut tm_the_truth_object_o,
4771            property: u32,
4772            value: *mut tm_the_truth_object_o,
4773        ),
4774    >,
4775    pub set_subobject_id: ::std::option::Option<
4776        unsafe extern "C" fn(
4777            tt: *mut tm_the_truth_o,
4778            obj: *mut tm_the_truth_object_o,
4779            property: u32,
4780            value: tm_tt_id_t,
4781            undo_scope: tm_tt_undo_scope_t,
4782        ),
4783    >,
4784    pub set_property_value: ::std::option::Option<
4785        unsafe extern "C" fn(
4786            tt: *mut tm_the_truth_o,
4787            obj: *mut tm_the_truth_object_o,
4788            property: u32,
4789            value: tm_tt_prop_value_t,
4790            undo_scope: tm_tt_undo_scope_t,
4791        ),
4792    >,
4793    pub clear: ::std::option::Option<
4794        unsafe extern "C" fn(
4795            tt: *mut tm_the_truth_o,
4796            obj: *mut tm_the_truth_object_o,
4797            property: u32,
4798        ),
4799    >,
4800    pub clear_object: ::std::option::Option<
4801        unsafe extern "C" fn(tt: *mut tm_the_truth_o, obj: *mut tm_the_truth_object_o),
4802    >,
4803    pub propagate_property: ::std::option::Option<
4804        unsafe extern "C" fn(
4805            tt: *mut tm_the_truth_o,
4806            object: tm_tt_id_t,
4807            property: u32,
4808            undo_scope: tm_tt_undo_scope_t,
4809        ),
4810    >,
4811    pub propagate_object: ::std::option::Option<
4812        unsafe extern "C" fn(
4813            tt: *mut tm_the_truth_o,
4814            object: tm_tt_id_t,
4815            undo_scope: tm_tt_undo_scope_t,
4816        ),
4817    >,
4818    pub propagate_object_except: ::std::option::Option<
4819        unsafe extern "C" fn(
4820            tt: *mut tm_the_truth_o,
4821            object: tm_tt_id_t,
4822            skip: *const tm_tt_id_t,
4823            num_skip: u32,
4824            undo_scope: tm_tt_undo_scope_t,
4825        ),
4826    >,
4827    pub add_to_reference_set: ::std::option::Option<
4828        unsafe extern "C" fn(
4829            tt: *mut tm_the_truth_o,
4830            obj: *mut tm_the_truth_object_o,
4831            property: u32,
4832            items: *const tm_tt_id_t,
4833            count: u32,
4834        ),
4835    >,
4836    pub remove_from_reference_set: ::std::option::Option<
4837        unsafe extern "C" fn(
4838            tt: *mut tm_the_truth_o,
4839            obj: *mut tm_the_truth_object_o,
4840            property: u32,
4841            items: *const tm_tt_id_t,
4842            count: u32,
4843        ),
4844    >,
4845    pub clear_reference_set: ::std::option::Option<
4846        unsafe extern "C" fn(
4847            tt: *mut tm_the_truth_o,
4848            obj: *mut tm_the_truth_object_o,
4849            property: u32,
4850        ),
4851    >,
4852    pub remove_from_prototype_reference_set: ::std::option::Option<
4853        unsafe extern "C" fn(
4854            tt: *mut tm_the_truth_o,
4855            obj: *mut tm_the_truth_object_o,
4856            property: u32,
4857            items: *const tm_tt_id_t,
4858            count: u32,
4859        ),
4860    >,
4861    pub cancel_remove_from_prototype_reference_set: ::std::option::Option<
4862        unsafe extern "C" fn(
4863            tt: *mut tm_the_truth_o,
4864            obj: *mut tm_the_truth_object_o,
4865            property: u32,
4866            items: *const tm_tt_id_t,
4867            count: u32,
4868        ),
4869    >,
4870    pub add_to_subobject_set: ::std::option::Option<
4871        unsafe extern "C" fn(
4872            tt: *mut tm_the_truth_o,
4873            obj: *mut tm_the_truth_object_o,
4874            property: u32,
4875            items: *mut *mut tm_the_truth_object_o,
4876            count: u32,
4877        ),
4878    >,
4879    pub remove_from_subobject_set: ::std::option::Option<
4880        unsafe extern "C" fn(
4881            tt: *mut tm_the_truth_o,
4882            obj: *mut tm_the_truth_object_o,
4883            property: u32,
4884            items: *const tm_tt_id_t,
4885            count: u32,
4886        ),
4887    >,
4888    pub clear_subobject_set: ::std::option::Option<
4889        unsafe extern "C" fn(
4890            tt: *mut tm_the_truth_o,
4891            obj: *mut tm_the_truth_object_o,
4892            property: u32,
4893        ),
4894    >,
4895    pub remove_from_prototype_subobject_set: ::std::option::Option<
4896        unsafe extern "C" fn(
4897            tt: *mut tm_the_truth_o,
4898            obj: *mut tm_the_truth_object_o,
4899            property: u32,
4900            items: *const tm_tt_id_t,
4901            count: u32,
4902        ),
4903    >,
4904    pub cancel_remove_from_prototype_subobject_set: ::std::option::Option<
4905        unsafe extern "C" fn(
4906            tt: *mut tm_the_truth_o,
4907            obj: *mut tm_the_truth_object_o,
4908            property: u32,
4909            items: *const tm_tt_id_t,
4910            count: u32,
4911        ),
4912    >,
4913    pub prototype: ::std::option::Option<
4914        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> tm_tt_id_t,
4915    >,
4916    pub owner: ::std::option::Option<
4917        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> tm_tt_id_t,
4918    >,
4919    pub is_currently_owner_of: ::std::option::Option<
4920        unsafe extern "C" fn(
4921            tt: *const tm_the_truth_o,
4922            object: tm_tt_id_t,
4923            subobject: tm_tt_id_t,
4924        ) -> bool,
4925    >,
4926    pub is_overridden: ::std::option::Option<
4927        unsafe extern "C" fn(
4928            tt: *const tm_the_truth_o,
4929            obj: *const tm_the_truth_object_o,
4930            property: u32,
4931        ) -> bool,
4932    >,
4933    pub has_data: ::std::option::Option<
4934        unsafe extern "C" fn(
4935            tt: *const tm_the_truth_o,
4936            obj: *const tm_the_truth_object_o,
4937            property: u32,
4938        ) -> bool,
4939    >,
4940    pub prototype_relation: ::std::option::Option<
4941        unsafe extern "C" fn(
4942            tt: *const tm_the_truth_o,
4943            parent: tm_tt_id_t,
4944            property: u32,
4945            object: tm_tt_id_t,
4946        ) -> tm_the_truth_prototype_relation,
4947    >,
4948    pub version: ::std::option::Option<
4949        unsafe extern "C" fn(tt: *const tm_the_truth_o, object: tm_tt_id_t) -> u32,
4950    >,
4951    pub changed_objects: ::std::option::Option<
4952        unsafe extern "C" fn(
4953            tt: *const tm_the_truth_o,
4954            type_: u64,
4955            since_version: u64,
4956            ta: *mut tm_temp_allocator_i,
4957        ) -> tm_the_truth_changed_objects_t,
4958    >,
4959    pub request_changelog:
4960        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> u64>,
4961    pub relinquish_changelog:
4962        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, h: u64)>,
4963    pub disable_changelog_start_scope:
4964        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
4965    pub disable_changelog_end_scope:
4966        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
4967    pub changelog_size: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> u64>,
4968    pub serialize: ::std::option::Option<
4969        unsafe extern "C" fn(
4970            tt: *mut tm_the_truth_o,
4971            o: tm_tt_id_t,
4972            carray: *mut *mut ::std::os::raw::c_char,
4973            a: *mut tm_allocator_i,
4974            opt: *const tm_tt_serialize_options_t,
4975        ),
4976    >,
4977    pub deserialize: ::std::option::Option<
4978        unsafe extern "C" fn(
4979            tt: *mut tm_the_truth_o,
4980            buffer: *mut *const ::std::os::raw::c_char,
4981            opt: *const tm_tt_deserialize_options_t,
4982        ) -> tm_tt_id_t,
4983    >,
4984    pub buffer_hashes: ::std::option::Option<
4985        unsafe extern "C" fn(
4986            buffer: *mut *const ::std::os::raw::c_char,
4987            count: *mut u64,
4988        ) -> *const u64,
4989    >,
4990    pub deserialize_from_file: ::std::option::Option<
4991        unsafe extern "C" fn(
4992            tt: *mut tm_the_truth_o,
4993            file: *const ::std::os::raw::c_char,
4994        ) -> tm_tt_id_t,
4995    >,
4996    pub migration_ids: ::std::option::Option<
4997        unsafe extern "C" fn(tt: *const tm_the_truth_o, n: *mut u32) -> *mut u64,
4998    >,
4999    pub serialize_changes_header: ::std::option::Option<
5000        unsafe extern "C" fn(
5001            tt: *mut tm_the_truth_o,
5002            carray: *mut *mut ::std::os::raw::c_char,
5003            a: *mut tm_allocator_i,
5004        ),
5005    >,
5006    pub serialize_changes: ::std::option::Option<
5007        unsafe extern "C" fn(
5008            tt: *mut tm_the_truth_o,
5009            begin: u64,
5010            end: u64,
5011            carray: *mut *mut ::std::os::raw::c_char,
5012            a: *mut tm_allocator_i,
5013            opt: *const tm_tt_serialize_changes_options_t,
5014        ),
5015    >,
5016    pub deserialize_changes: ::std::option::Option<
5017        unsafe extern "C" fn(
5018            tt: *mut tm_the_truth_o,
5019            buffer: *mut *const ::std::os::raw::c_char,
5020            opt: *const tm_tt_deserialize_changes_options_t,
5021        ),
5022    >,
5023    pub serialize_patch: ::std::option::Option<
5024        unsafe extern "C" fn(
5025            from_tt: *mut tm_the_truth_o,
5026            from_o: tm_tt_id_t,
5027            to_tt: *mut tm_the_truth_o,
5028            to_o: tm_tt_id_t,
5029            carray: *mut *mut ::std::os::raw::c_char,
5030            a: *mut tm_allocator_i,
5031        ),
5032    >,
5033    pub deserialize_patch: ::std::option::Option<
5034        unsafe extern "C" fn(tt: *mut tm_the_truth_o, buffer: *mut *const ::std::os::raw::c_char),
5035    >,
5036    pub deserialize_patch_from_file: ::std::option::Option<
5037        unsafe extern "C" fn(tt: *mut tm_the_truth_o, file: *const ::std::os::raw::c_char),
5038    >,
5039    pub serialize_type: ::std::option::Option<
5040        unsafe extern "C" fn(
5041            tt: *mut tm_the_truth_o,
5042            type_: u32,
5043            ta: *mut tm_temp_allocator_i,
5044        ) -> *mut ::std::os::raw::c_char,
5045    >,
5046    pub deserialize_type: ::std::option::Option<
5047        unsafe extern "C" fn(
5048            tt: *mut tm_the_truth_o,
5049            buf: *mut *const ::std::os::raw::c_char,
5050            type_info: *mut tm_the_truth_serialized_type_info_t,
5051        ),
5052    >,
5053    pub memory_use: ::std::option::Option<
5054        unsafe extern "C" fn(
5055            tt: *mut tm_the_truth_o,
5056            id: tm_tt_id_t,
5057            buffers: *mut tm_set_t,
5058        ) -> tm_tt_memory_use_t,
5059    >,
5060    pub add_properties: ::std::option::Option<
5061        unsafe extern "C" fn(
5062            tt: *mut tm_the_truth_o,
5063            type_: u64,
5064            properties: *const tm_the_truth_property_definition_t,
5065            num_properties: u32,
5066        ),
5067    >,
5068    pub resolve_or_create_placeholder: ::std::option::Option<
5069        unsafe extern "C" fn(
5070            tt: *mut tm_the_truth_o,
5071            uuid: tm_uuid_t,
5072            type_: u64,
5073            default_initialize: bool,
5074        ) -> tm_tt_id_t,
5075    >,
5076    pub resolve_or_fail: ::std::option::Option<
5077        unsafe extern "C" fn(tt: *mut tm_the_truth_o, uuid: tm_uuid_t, type_: u64) -> tm_tt_id_t,
5078    >,
5079    pub set_uuid: ::std::option::Option<
5080        unsafe extern "C" fn(tt: *mut tm_the_truth_o, id: tm_tt_id_t, uuid: tm_uuid_t),
5081    >,
5082    pub set_prototype: ::std::option::Option<
5083        unsafe extern "C" fn(
5084            tt: *mut tm_the_truth_o,
5085            obj: *mut tm_the_truth_object_o,
5086            id: tm_tt_id_t,
5087        ),
5088    >,
5089    pub detach_from_prototype: ::std::option::Option<
5090        unsafe extern "C" fn(
5091            tt: *mut tm_the_truth_o,
5092            id: tm_tt_id_t,
5093            lookup: *mut tm_hash_id_to_id_t,
5094            undo_scope: tm_tt_undo_scope_t,
5095        ),
5096    >,
5097    pub detach_all_instances: ::std::option::Option<
5098        unsafe extern "C" fn(
5099            tt: *mut tm_the_truth_o,
5100            id: tm_tt_id_t,
5101            undo_scope: tm_tt_undo_scope_t,
5102        ),
5103    >,
5104    pub get_local_reference_set: ::std::option::Option<
5105        unsafe extern "C" fn(
5106            tt: *const tm_the_truth_o,
5107            obj: *const tm_the_truth_object_o,
5108            property: u32,
5109        ) -> tm_the_truth_local_set_t,
5110    >,
5111    pub get_local_subobject_set: ::std::option::Option<
5112        unsafe extern "C" fn(
5113            tt: *const tm_the_truth_o,
5114            obj: *const tm_the_truth_object_o,
5115            property: u32,
5116        ) -> tm_the_truth_local_set_t,
5117    >,
5118    pub set_local_reference_set: ::std::option::Option<
5119        unsafe extern "C" fn(
5120            tt: *mut tm_the_truth_o,
5121            obj: *mut tm_the_truth_object_o,
5122            property: u32,
5123            set: tm_the_truth_local_set_t,
5124        ),
5125    >,
5126    pub set_local_subobject_set: ::std::option::Option<
5127        unsafe extern "C" fn(
5128            tt: *mut tm_the_truth_o,
5129            obj: *mut tm_the_truth_object_o,
5130            property: u32,
5131            set: tm_the_truth_set_local_subobject_set_t,
5132        ),
5133    >,
5134    pub string_repository: ::std::option::Option<
5135        unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> *mut tm_string_repository_i,
5136    >,
5137    pub set_migration_ids:
5138        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, ids: *mut u64, n: u32)>,
5139    pub set_properties_to_default: ::std::option::Option<
5140        unsafe extern "C" fn(tt: *mut tm_the_truth_o, obj: *mut tm_the_truth_object_o, mask: u64),
5141    >,
5142    pub instantiate_subobjects_recursively: ::std::option::Option<
5143        unsafe extern "C" fn(
5144            tt: *mut tm_the_truth_o,
5145            object: tm_tt_id_t,
5146            undo_scope: tm_tt_undo_scope_t,
5147        ),
5148    >,
5149    pub quick_set_properties: ::std::option::Option<
5150        unsafe extern "C" fn(
5151            tt: *mut tm_the_truth_o,
5152            undo_scope: tm_tt_undo_scope_t,
5153            id: tm_tt_id_t,
5154            ...
5155        ),
5156    >,
5157    pub quick_create_object: ::std::option::Option<
5158        unsafe extern "C" fn(
5159            tt: *mut tm_the_truth_o,
5160            undo_scope: tm_tt_undo_scope_t,
5161            type_hash: u64,
5162            ...
5163        ) -> tm_tt_id_t,
5164    >,
5165    pub quick_get_property: ::std::option::Option<
5166        unsafe extern "C" fn(
5167            tt: *const tm_the_truth_o,
5168            id: tm_tt_id_t,
5169            prop_1: u32,
5170            ...
5171        ) -> tm_tt_prop_value_t,
5172    >,
5173    pub internal__set_owner: ::std::option::Option<
5174        unsafe extern "C" fn(
5175            tt: *mut tm_the_truth_o,
5176            obj: *mut tm_the_truth_object_o,
5177            object: tm_tt_id_t,
5178        ),
5179    >,
5180    pub debug_inspect: ::std::option::Option<
5181        unsafe extern "C" fn(
5182            tt: *const tm_the_truth_o,
5183            object: tm_tt_id_t,
5184        ) -> *const ::std::os::raw::c_char,
5185    >,
5186    pub internal__detect_overlapping_writes:
5187        ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> bool>,
5188    pub create: ::std::option::Option<
5189        unsafe extern "C" fn(
5190            a: *mut tm_allocator_i,
5191            types: tm_the_truth_create_types,
5192        ) -> *mut tm_the_truth_o,
5193    >,
5194    pub destroy: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
5195}
5196pub const TM_TT_PROP__ASSET_ROOT__ASSETS: ::std::os::raw::c_int = 0;
5197pub const TM_TT_PROP__ASSET_ROOT__DIRECTORIES: ::std::os::raw::c_int = 1;
5198pub type _bindgen_ty_3 = ::std::os::raw::c_int;
5199pub const TM_TT_PROP__ASSET__NAME: ::std::os::raw::c_int = 0;
5200pub const TM_TT_PROP__ASSET__DIRECTORY: ::std::os::raw::c_int = 1;
5201pub const TM_TT_PROP__ASSET__UUID_TAGS: ::std::os::raw::c_int = 2;
5202pub const TM_TT_PROP__ASSET__OBJECT: ::std::os::raw::c_int = 3;
5203pub type _bindgen_ty_4 = ::std::os::raw::c_int;
5204pub const TM_TT_PROP__ASSET_DIRECTORY__NAME: ::std::os::raw::c_int = 0;
5205pub const TM_TT_PROP__ASSET_DIRECTORY__PARENT: ::std::os::raw::c_int = 1;
5206pub type _bindgen_ty_5 = ::std::os::raw::c_int;
5207pub const TM_TT_PROP__ASSET_TAG__UUID: ::std::os::raw::c_int = 0;
5208pub const TM_TT_PROP__ASSET_TAG__NAME: ::std::os::raw::c_int = 0;
5209pub type _bindgen_ty_6 = ::std::os::raw::c_int;
5210#[repr(C)]
5211#[derive(Copy, Clone)]
5212pub struct tm_asset_tag_t {
5213    pub uuid: u64,
5214    pub name: *const ::std::os::raw::c_char,
5215}
5216pub type tm_tt_assets_file_extension_aspect_i = ::std::os::raw::c_char;
5217#[repr(C)]
5218#[derive(Copy, Clone)]
5219pub struct tm_tt_assets_buffer_write_t {
5220    pub id: u32,
5221    pub _padding_74: [::std::os::raw::c_char; 4usize],
5222    pub hash: u64,
5223    pub ext: *const ::std::os::raw::c_char,
5224}
5225#[repr(C)]
5226#[derive(Copy, Clone)]
5227pub struct tm_tt_assets_buffer_t {
5228    pub object_id: tm_tt_id_t,
5229    pub property_index: u32,
5230    pub _padding_91: [::std::os::raw::c_char; 4usize],
5231    pub hash: u64,
5232}
5233#[repr(C)]
5234#[derive(Copy, Clone)]
5235pub struct tm_saved_truth_data_o {
5236    _unused: [u8; 0],
5237}
5238#[repr(C)]
5239#[derive(Copy, Clone)]
5240pub struct tm_the_truth_assets_api {
5241    pub create_asset_truth_types:
5242        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
5243    pub get_asset_path: ::std::option::Option<
5244        unsafe extern "C" fn(
5245            tt: *const tm_the_truth_o,
5246            asset: tm_tt_id_t,
5247            path: *mut ::std::os::raw::c_char,
5248            n: u32,
5249        ) -> u32,
5250    >,
5251    pub get_directory_path: ::std::option::Option<
5252        unsafe extern "C" fn(
5253            tt: *const tm_the_truth_o,
5254            directory: tm_tt_id_t,
5255            path: *mut ::std::os::raw::c_char,
5256            n: u32,
5257        ) -> u32,
5258    >,
5259    pub get_asset_path_with_extension: ::std::option::Option<
5260        unsafe extern "C" fn(
5261            tt: *const tm_the_truth_o,
5262            asset: tm_tt_id_t,
5263            path: *mut ::std::os::raw::c_char,
5264            n: u32,
5265        ) -> u32,
5266    >,
5267    pub asset_from_path: ::std::option::Option<
5268        unsafe extern "C" fn(
5269            tt: *const tm_the_truth_o,
5270            root: tm_tt_id_t,
5271            path: *const ::std::os::raw::c_char,
5272        ) -> tm_tt_id_t,
5273    >,
5274    pub asset_from_path_with_type: ::std::option::Option<
5275        unsafe extern "C" fn(
5276            tt: *const tm_the_truth_o,
5277            root: tm_tt_id_t,
5278            path: *const ::std::os::raw::c_char,
5279            type_: u64,
5280        ) -> tm_tt_id_t,
5281    >,
5282    pub directory_from_path: ::std::option::Option<
5283        unsafe extern "C" fn(
5284            tt: *const tm_the_truth_o,
5285            root: tm_tt_id_t,
5286            path: *const ::std::os::raw::c_char,
5287        ) -> tm_tt_id_t,
5288    >,
5289    pub find_subdirectory_by_name: ::std::option::Option<
5290        unsafe extern "C" fn(
5291            tt: *const tm_the_truth_o,
5292            root: tm_tt_id_t,
5293            parent_dir: tm_tt_id_t,
5294            subdir_name: *const ::std::os::raw::c_char,
5295        ) -> tm_tt_id_t,
5296    >,
5297    pub unique_asset_name: ::std::option::Option<
5298        unsafe extern "C" fn(
5299            tt: *mut tm_the_truth_o,
5300            root: tm_tt_id_t,
5301            asset_r: *const tm_the_truth_object_o,
5302            desired_name: *const ::std::os::raw::c_char,
5303        ) -> *const ::std::os::raw::c_char,
5304    >,
5305    pub unique_directory_name: ::std::option::Option<
5306        unsafe extern "C" fn(
5307            tt: *mut tm_the_truth_o,
5308            root: tm_tt_id_t,
5309            directory_r: *const tm_the_truth_object_o,
5310            desired_name: *const ::std::os::raw::c_char,
5311        ) -> *const ::std::os::raw::c_char,
5312    >,
5313    pub object_asset_name: ::std::option::Option<
5314        unsafe extern "C" fn(
5315            tt: *mut tm_the_truth_o,
5316            object: tm_tt_id_t,
5317        ) -> *const ::std::os::raw::c_char,
5318    >,
5319    pub object_to_config: ::std::option::Option<
5320        unsafe extern "C" fn(
5321            tt: *const tm_the_truth_o,
5322            object: tm_tt_id_t,
5323            config: *mut tm_config_i,
5324            buffers: *mut *mut tm_tt_assets_buffer_write_t,
5325            buffers_ta: *mut tm_temp_allocator_i,
5326            save_uuid: bool,
5327        ),
5328    >,
5329    pub create_object_from_config: ::std::option::Option<
5330        unsafe extern "C" fn(
5331            tt: *mut tm_the_truth_o,
5332            config: *mut tm_config_i,
5333            buffers: *mut *mut tm_tt_assets_buffer_t,
5334            buffers_ta: *mut tm_temp_allocator_i,
5335        ) -> tm_tt_id_t,
5336    >,
5337    pub read_object_from_config: ::std::option::Option<
5338        unsafe extern "C" fn(
5339            tt: *mut tm_the_truth_o,
5340            config: *mut tm_config_i,
5341            buffers: *mut *mut tm_tt_assets_buffer_t,
5342            buffers_ta: *mut tm_temp_allocator_i,
5343            id: tm_tt_id_t,
5344        ),
5345    >,
5346    pub save_to_directory: ::std::option::Option<
5347        unsafe extern "C" fn(
5348            tt: *mut tm_the_truth_o,
5349            asset_root: tm_tt_id_t,
5350            dir: *const ::std::os::raw::c_char,
5351            ignore: *mut tm_tt_id_t,
5352            num_ignore: u32,
5353            old_std: *mut tm_saved_truth_data_o,
5354            allocator: *mut tm_allocator_i,
5355        ) -> *mut tm_saved_truth_data_o,
5356    >,
5357    pub load_from_directory: ::std::option::Option<
5358        unsafe extern "C" fn(
5359            tt: *mut tm_the_truth_o,
5360            dir: *const ::std::os::raw::c_char,
5361            allocator: *mut tm_allocator_i,
5362            asset_root: *mut tm_tt_id_t,
5363        ) -> *mut tm_saved_truth_data_o,
5364    >,
5365    pub current_truth_data: ::std::option::Option<
5366        unsafe extern "C" fn(
5367            tt: *mut tm_the_truth_o,
5368            asset_root: tm_tt_id_t,
5369            allocator: *mut tm_allocator_i,
5370        ) -> *mut tm_saved_truth_data_o,
5371    >,
5372    pub revert_asset: ::std::option::Option<
5373        unsafe extern "C" fn(
5374            sd: *mut tm_saved_truth_data_o,
5375            asset: tm_tt_id_t,
5376            undo_scope: tm_tt_undo_scope_t,
5377        ) -> bool,
5378    >,
5379    pub save_asset: ::std::option::Option<
5380        unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o, asset: tm_tt_id_t) -> bool,
5381    >,
5382    pub saved_name: ::std::option::Option<
5383        unsafe extern "C" fn(
5384            sd: *mut tm_saved_truth_data_o,
5385            item: tm_tt_id_t,
5386        ) -> *const ::std::os::raw::c_char,
5387    >,
5388    pub saved_directory: ::std::option::Option<
5389        unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o, item: tm_tt_id_t) -> tm_tt_id_t,
5390    >,
5391    pub saved_version: ::std::option::Option<
5392        unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o, item: tm_tt_id_t) -> u64,
5393    >,
5394    pub all_saved_items: ::std::option::Option<
5395        unsafe extern "C" fn(
5396            sd: *mut tm_saved_truth_data_o,
5397            ta: *mut tm_temp_allocator_i,
5398        ) -> *mut tm_tt_id_t,
5399    >,
5400    pub free_saved_data:
5401        ::std::option::Option<unsafe extern "C" fn(sd: *mut tm_saved_truth_data_o)>,
5402    pub set_mock_file_system: ::std::option::Option<
5403        unsafe extern "C" fn(fs: *mut tm_os_file_system_api, file_io: *mut tm_os_file_io_api),
5404    >,
5405}
5406#[repr(C)]
5407#[derive(Copy, Clone)]
5408pub struct tm_the_truth_migration_o {
5409    _unused: [u8; 0],
5410}
5411#[repr(C)]
5412#[derive(Copy, Clone)]
5413pub struct tm_the_truth_migration_i {
5414    pub inst: *mut tm_the_truth_migration_o,
5415    pub id: u64,
5416    pub num_prerequisites: u32,
5417    pub _padding_81: [::std::os::raw::c_char; 4usize],
5418    pub prerequisites: *mut u64,
5419    pub migrate: ::std::option::Option<
5420        unsafe extern "C" fn(inst: *mut tm_the_truth_migration_o, tt: *mut tm_the_truth_o) -> bool,
5421    >,
5422}
5423#[repr(C)]
5424#[derive(Copy, Clone)]
5425pub struct tm_the_truth_migration_api {
5426    pub migrate: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
5427}
5428pub const TM_TT_PROP__VEC2__X: ::std::os::raw::c_int = 0;
5429pub const TM_TT_PROP__VEC2__Y: ::std::os::raw::c_int = 1;
5430pub type _bindgen_ty_7 = ::std::os::raw::c_int;
5431pub const TM_TT_PROP__VEC3__X: ::std::os::raw::c_int = 0;
5432pub const TM_TT_PROP__VEC3__Y: ::std::os::raw::c_int = 1;
5433pub const TM_TT_PROP__VEC3__Z: ::std::os::raw::c_int = 2;
5434pub type _bindgen_ty_8 = ::std::os::raw::c_int;
5435pub const TM_TT_PROP__VEC4__X: ::std::os::raw::c_int = 0;
5436pub const TM_TT_PROP__VEC4__Y: ::std::os::raw::c_int = 1;
5437pub const TM_TT_PROP__VEC4__Z: ::std::os::raw::c_int = 2;
5438pub const TM_TT_PROP__VEC4__W: ::std::os::raw::c_int = 3;
5439pub type _bindgen_ty_9 = ::std::os::raw::c_int;
5440pub const TM_TT_PROP__POSITION__X: ::std::os::raw::c_int = 0;
5441pub const TM_TT_PROP__POSITION__Y: ::std::os::raw::c_int = 1;
5442pub const TM_TT_PROP__POSITION__Z: ::std::os::raw::c_int = 2;
5443pub type _bindgen_ty_10 = ::std::os::raw::c_int;
5444pub const TM_TT_PROP__ROTATION__X: ::std::os::raw::c_int = 0;
5445pub const TM_TT_PROP__ROTATION__Y: ::std::os::raw::c_int = 1;
5446pub const TM_TT_PROP__ROTATION__Z: ::std::os::raw::c_int = 2;
5447pub const TM_TT_PROP__ROTATION__W: ::std::os::raw::c_int = 3;
5448pub type _bindgen_ty_11 = ::std::os::raw::c_int;
5449pub const TM_TT_PROP__SCALE__X: ::std::os::raw::c_int = 0;
5450pub const TM_TT_PROP__SCALE__Y: ::std::os::raw::c_int = 1;
5451pub const TM_TT_PROP__SCALE__Z: ::std::os::raw::c_int = 2;
5452pub type _bindgen_ty_12 = ::std::os::raw::c_int;
5453pub const TM_TT_PROP__COLOR_RGB__R: ::std::os::raw::c_int = 0;
5454pub const TM_TT_PROP__COLOR_RGB__G: ::std::os::raw::c_int = 1;
5455pub const TM_TT_PROP__COLOR_RGB__B: ::std::os::raw::c_int = 2;
5456pub type _bindgen_ty_13 = ::std::os::raw::c_int;
5457pub const TM_TT_PROP__COLOR_RGBA__R: ::std::os::raw::c_int = 0;
5458pub const TM_TT_PROP__COLOR_RGBA__G: ::std::os::raw::c_int = 1;
5459pub const TM_TT_PROP__COLOR_RGBA__B: ::std::os::raw::c_int = 2;
5460pub const TM_TT_PROP__COLOR_RGBA__A: ::std::os::raw::c_int = 3;
5461pub type _bindgen_ty_14 = ::std::os::raw::c_int;
5462pub const TM_TT_PROP__RECT__X: ::std::os::raw::c_int = 0;
5463pub const TM_TT_PROP__RECT__Y: ::std::os::raw::c_int = 1;
5464pub const TM_TT_PROP__RECT__W: ::std::os::raw::c_int = 2;
5465pub const TM_TT_PROP__RECT__H: ::std::os::raw::c_int = 3;
5466pub type _bindgen_ty_15 = ::std::os::raw::c_int;
5467#[repr(C)]
5468#[derive(Copy, Clone)]
5469pub struct tm_the_truth_common_types_api {
5470    pub create_common_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
5471    pub read_floats: ::std::option::Option<
5472        unsafe extern "C" fn(
5473            tt: *const tm_the_truth_o,
5474            obj: *const tm_the_truth_object_o,
5475            res: *mut f32,
5476            n: u32,
5477        ) -> *mut f32,
5478    >,
5479    pub write_floats: ::std::option::Option<
5480        unsafe extern "C" fn(
5481            tt: *mut tm_the_truth_o,
5482            obj: *mut tm_the_truth_object_o,
5483            values: *const f32,
5484            n: u32,
5485        ),
5486    >,
5487    pub get_vec2: ::std::option::Option<
5488        unsafe extern "C" fn(
5489            tt: *const tm_the_truth_o,
5490            parent_r: *const tm_the_truth_object_o,
5491            property: u32,
5492        ) -> tm_vec2_t,
5493    >,
5494    pub get_vec3: ::std::option::Option<
5495        unsafe extern "C" fn(
5496            tt: *const tm_the_truth_o,
5497            parent_r: *const tm_the_truth_object_o,
5498            property: u32,
5499        ) -> tm_vec3_t,
5500    >,
5501    pub get_vec4: ::std::option::Option<
5502        unsafe extern "C" fn(
5503            tt: *const tm_the_truth_o,
5504            parent_r: *const tm_the_truth_object_o,
5505            property: u32,
5506        ) -> tm_vec4_t,
5507    >,
5508    pub get_rect: ::std::option::Option<
5509        unsafe extern "C" fn(
5510            tt: *const tm_the_truth_o,
5511            parent_r: *const tm_the_truth_object_o,
5512            property: u32,
5513        ) -> tm_rect_t,
5514    >,
5515    pub get_position: ::std::option::Option<
5516        unsafe extern "C" fn(
5517            tt: *const tm_the_truth_o,
5518            parent_r: *const tm_the_truth_object_o,
5519            property: u32,
5520        ) -> tm_vec3_t,
5521    >,
5522    pub get_rotation: ::std::option::Option<
5523        unsafe extern "C" fn(
5524            tt: *const tm_the_truth_o,
5525            parent_r: *const tm_the_truth_object_o,
5526            property: u32,
5527        ) -> tm_vec4_t,
5528    >,
5529    pub get_scale: ::std::option::Option<
5530        unsafe extern "C" fn(
5531            tt: *const tm_the_truth_o,
5532            parent_r: *const tm_the_truth_object_o,
5533            property: u32,
5534        ) -> tm_vec3_t,
5535    >,
5536    pub get_color_rgb: ::std::option::Option<
5537        unsafe extern "C" fn(
5538            tt: *const tm_the_truth_o,
5539            parent_r: *const tm_the_truth_object_o,
5540            property: u32,
5541        ) -> tm_vec3_t,
5542    >,
5543    pub get_color_rgba: ::std::option::Option<
5544        unsafe extern "C" fn(
5545            tt: *const tm_the_truth_o,
5546            parent_r: *const tm_the_truth_object_o,
5547            property: u32,
5548        ) -> tm_vec4_t,
5549    >,
5550    pub get_color_srgb: ::std::option::Option<
5551        unsafe extern "C" fn(
5552            tt: *const tm_the_truth_o,
5553            parent_r: *const tm_the_truth_object_o,
5554            property: u32,
5555        ) -> tm_color_srgb_t,
5556    >,
5557    pub get_color_srgba: ::std::option::Option<
5558        unsafe extern "C" fn(
5559            tt: *const tm_the_truth_o,
5560            parent_r: *const tm_the_truth_object_o,
5561            property: u32,
5562        ) -> tm_color_srgb_t,
5563    >,
5564    pub set_vec2: ::std::option::Option<
5565        unsafe extern "C" fn(
5566            tt: *mut tm_the_truth_o,
5567            parent_w: *mut tm_the_truth_object_o,
5568            property: u32,
5569            vec2: tm_vec2_t,
5570            undo_scope: tm_tt_undo_scope_t,
5571        ),
5572    >,
5573    pub set_vec3: ::std::option::Option<
5574        unsafe extern "C" fn(
5575            tt: *mut tm_the_truth_o,
5576            parent_w: *mut tm_the_truth_object_o,
5577            property: u32,
5578            vec3: tm_vec3_t,
5579            undo_scope: tm_tt_undo_scope_t,
5580        ),
5581    >,
5582    pub set_vec4: ::std::option::Option<
5583        unsafe extern "C" fn(
5584            tt: *mut tm_the_truth_o,
5585            parent_w: *mut tm_the_truth_object_o,
5586            property: u32,
5587            vec4: tm_vec4_t,
5588            undo_scope: tm_tt_undo_scope_t,
5589        ),
5590    >,
5591    pub set_rect: ::std::option::Option<
5592        unsafe extern "C" fn(
5593            tt: *mut tm_the_truth_o,
5594            parent_w: *mut tm_the_truth_object_o,
5595            property: u32,
5596            rect: tm_rect_t,
5597            undo_scope: tm_tt_undo_scope_t,
5598        ),
5599    >,
5600    pub set_position: ::std::option::Option<
5601        unsafe extern "C" fn(
5602            tt: *mut tm_the_truth_o,
5603            parent_w: *mut tm_the_truth_object_o,
5604            property: u32,
5605            vec3: tm_vec3_t,
5606            undo_scope: tm_tt_undo_scope_t,
5607        ),
5608    >,
5609    pub set_rotation: ::std::option::Option<
5610        unsafe extern "C" fn(
5611            tt: *mut tm_the_truth_o,
5612            parent_w: *mut tm_the_truth_object_o,
5613            property: u32,
5614            vec4: tm_vec4_t,
5615            undo_scope: tm_tt_undo_scope_t,
5616        ),
5617    >,
5618    pub set_scale: ::std::option::Option<
5619        unsafe extern "C" fn(
5620            tt: *mut tm_the_truth_o,
5621            parent_w: *mut tm_the_truth_object_o,
5622            property: u32,
5623            vec3: tm_vec3_t,
5624            undo_scope: tm_tt_undo_scope_t,
5625        ),
5626    >,
5627    pub set_color_rgb: ::std::option::Option<
5628        unsafe extern "C" fn(
5629            tt: *mut tm_the_truth_o,
5630            parent_w: *mut tm_the_truth_object_o,
5631            property: u32,
5632            vec3: tm_vec3_t,
5633            undo_scope: tm_tt_undo_scope_t,
5634        ),
5635    >,
5636    pub set_color_rgba: ::std::option::Option<
5637        unsafe extern "C" fn(
5638            tt: *mut tm_the_truth_o,
5639            parent_w: *mut tm_the_truth_object_o,
5640            property: u32,
5641            vec4: tm_vec4_t,
5642            undo_scope: tm_tt_undo_scope_t,
5643        ),
5644    >,
5645    pub set_color_srgb: ::std::option::Option<
5646        unsafe extern "C" fn(
5647            tt: *mut tm_the_truth_o,
5648            parent_w: *mut tm_the_truth_object_o,
5649            property: u32,
5650            col: tm_color_srgb_t,
5651            undo_scope: tm_tt_undo_scope_t,
5652        ),
5653    >,
5654    pub set_color_srgba: ::std::option::Option<
5655        unsafe extern "C" fn(
5656            tt: *mut tm_the_truth_o,
5657            parent_w: *mut tm_the_truth_object_o,
5658            property: u32,
5659            col: tm_color_srgb_t,
5660            undo_scope: tm_tt_undo_scope_t,
5661        ),
5662    >,
5663}
5664#[repr(C)]
5665#[derive(Copy, Clone)]
5666pub struct tm_undo_stack_o {
5667    _unused: [u8; 0],
5668}
5669#[repr(C)]
5670#[derive(Copy, Clone)]
5671pub struct tm_undo_stack_i {
5672    pub inst: *mut tm_undo_stack_o,
5673    pub add: ::std::option::Option<
5674        unsafe extern "C" fn(
5675            inst: *mut tm_undo_stack_o,
5676            tt: *mut tm_the_truth_o,
5677            scope: tm_tt_undo_scope_t,
5678        ),
5679    >,
5680    pub add_to_document: ::std::option::Option<
5681        unsafe extern "C" fn(
5682            inst: *mut tm_undo_stack_o,
5683            tt: *mut tm_the_truth_o,
5684            scope: tm_tt_undo_scope_t,
5685            document_object: tm_tt_id_t,
5686        ),
5687    >,
5688}
5689#[repr(C)]
5690#[derive(Copy, Clone)]
5691pub struct tm_unicode_api {
5692    pub utf8_encode:
5693        ::std::option::Option<unsafe extern "C" fn(utf8: *mut u8, codepoint: u32) -> *mut u8>,
5694    pub utf8_decode: ::std::option::Option<unsafe extern "C" fn(utf8: *mut *const u8) -> u32>,
5695    pub utf8_num_codepoints: ::std::option::Option<unsafe extern "C" fn(utf8: *const u8) -> u32>,
5696    pub utf8_decode_n: ::std::option::Option<
5697        unsafe extern "C" fn(codepoints: *mut u32, n: u32, utf8: *mut *const u8) -> u32,
5698    >,
5699    pub utf8_to_utf32: ::std::option::Option<
5700        unsafe extern "C" fn(utf8: *const u8, ta: *mut tm_temp_allocator_i) -> *mut u32,
5701    >,
5702    pub utf8_to_utf32_n: ::std::option::Option<
5703        unsafe extern "C" fn(utf8: *const u8, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u32,
5704    >,
5705    pub utf32_to_utf8: ::std::option::Option<
5706        unsafe extern "C" fn(utf32: *const u32, ta: *mut tm_temp_allocator_i) -> *mut u8,
5707    >,
5708    pub utf32_to_utf8_n: ::std::option::Option<
5709        unsafe extern "C" fn(utf32: *const u32, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u8,
5710    >,
5711    pub utf16_encode:
5712        ::std::option::Option<unsafe extern "C" fn(utf16: *mut u16, codepoint: u32) -> *mut u16>,
5713    pub utf16_decode: ::std::option::Option<unsafe extern "C" fn(utf16: *mut *const u16) -> u32>,
5714    pub utf8_to_utf16: ::std::option::Option<
5715        unsafe extern "C" fn(utf8: *const u8, ta: *mut tm_temp_allocator_i) -> *mut u16,
5716    >,
5717    pub utf8_to_utf16_n: ::std::option::Option<
5718        unsafe extern "C" fn(utf8: *const u8, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u16,
5719    >,
5720    pub utf16_to_utf8: ::std::option::Option<
5721        unsafe extern "C" fn(utf16: *const u16, ta: *mut tm_temp_allocator_i) -> *mut u8,
5722    >,
5723    pub utf16_to_utf8_n: ::std::option::Option<
5724        unsafe extern "C" fn(utf16: *const u16, n: u32, ta: *mut tm_temp_allocator_i) -> *mut u8,
5725    >,
5726}
5727pub const TM_UNICODE__DOTTED_CROSS: ::std::os::raw::c_int = 8284;
5728pub const TM_UNICODE__RIGHTWARDS_ARROW: ::std::os::raw::c_int = 8594;
5729pub const TM_UNICODE__EMPTY_SET: ::std::os::raw::c_int = 8709;
5730pub const TM_UNICODE__BLACK_DOWN_POINTING_TRIANGLE: ::std::os::raw::c_int = 9660;
5731pub const TM_UNICODE__BLACK_UP_POINTING_TRIANGLE: ::std::os::raw::c_int = 9650;
5732pub const TM_UNICODE__BLACK_RIGHT_POINTING_TRIANGLE: ::std::os::raw::c_int = 9654;
5733pub const TM_UNICODE__BLACK_LEFT_POINTING_TRIANGLE: ::std::os::raw::c_int = 9664;
5734pub const TM_UNICODE__DIE_FACE_1: ::std::os::raw::c_int = 9856;
5735pub const TM_UNICODE__NEUTER: ::std::os::raw::c_int = 9906;
5736pub const TM_UNICODE__CHECK_MARK: ::std::os::raw::c_int = 10003;
5737pub const TM_UNICODE__MULTIPLICATION_X: ::std::os::raw::c_int = 10005;
5738pub const TM_UNICODE__HEAVY_MULTIPLICATION_X: ::std::os::raw::c_int = 10006;
5739pub const TM_UNICODE__EARTH: ::std::os::raw::c_int = 127759;
5740pub const TM_UNICODE__HOUSE: ::std::os::raw::c_int = 127968;
5741pub const TM_UNICODE__ORIGINAL_OF: ::std::os::raw::c_int = 8886;
5742pub const TM_UNICODE__IMAGE_OF: ::std::os::raw::c_int = 8887;
5743pub const TM_UNICODE__CIRCLE_DOT_OPERATOR: ::std::os::raw::c_int = 8857;
5744pub const TM_UNICODE__MAXIMIZE: ::std::os::raw::c_int = 128470;
5745pub const TM_UNICODE__OVERLAP: ::std::os::raw::c_int = 128471;
5746pub const TM_UNICODE__PLUS_MINUS: ::std::os::raw::c_int = 49841;
5747pub const TM_UNICODE__CAMERA: ::std::os::raw::c_int = 128247;
5748pub const TM_UNICODE__ELECTRIC_LIGHT_BLUB: ::std::os::raw::c_int = 128161;
5749pub const TM_UNICODE__HORIZONTAL_ELLIPSIS: ::std::os::raw::c_int = 8230;
5750pub const TM_UNICODE__HEAVY_PLUS_SIGN: ::std::os::raw::c_int = 10133;
5751pub const TM_UNICODE__RIGHTWARDS_ARROW_TO_BAR: ::std::os::raw::c_int = 8677;
5752pub const TM_UNICODE__RIGHT_ANGLE_WITH_ARC: ::std::os::raw::c_int = 8894;
5753pub const TM_UNICODE__REFRESH: ::std::os::raw::c_int = 128472;
5754pub const TM_UNICODE__WRENCH_HAMMER: ::std::os::raw::c_int = 128736;
5755pub const TM_UNICODE__WRENCH: ::std::os::raw::c_int = 128295;
5756pub const TM_UNICODE__ZZZ: ::std::os::raw::c_int = 128164;
5757pub const TM_UNICODE__MAGNIFYING_GLASS_LEFT: ::std::os::raw::c_int = 128269;
5758pub const TM_UNICODE__EYE: ::std::os::raw::c_int = 128065;
5759pub const TM_UNICODE__GEAR: ::std::os::raw::c_int = 9881;
5760pub const TM_UNICODE__COPYRIGHT: ::std::os::raw::c_int = 169;
5761pub const TM_UNICODE__LEFTWARDS_HEAVY_ARROW: ::std::os::raw::c_int = 129092;
5762pub const TM_UNICODE__RIGHTWARDS_HEAVY_ARROW: ::std::os::raw::c_int = 129094;
5763pub type _bindgen_ty_16 = ::std::os::raw::c_int;
5764#[repr(C)]
5765#[derive(Copy, Clone)]
5766pub struct tm_unit_test_runner_o {
5767    _unused: [u8; 0],
5768}
5769#[repr(C)]
5770#[derive(Copy, Clone)]
5771pub struct tm_unit_test_runner_i {
5772    pub inst: *mut tm_unit_test_runner_o,
5773    pub test_file: ::std::option::Option<
5774        unsafe extern "C" fn(
5775            inst: *mut tm_unit_test_runner_o,
5776            name: *const ::std::os::raw::c_char,
5777        ) -> bool,
5778    >,
5779    pub test_custom: ::std::option::Option<
5780        unsafe extern "C" fn(
5781            inst: *mut tm_unit_test_runner_o,
5782            name: *const ::std::os::raw::c_char,
5783        ) -> bool,
5784    >,
5785    pub test_disk:
5786        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_unit_test_runner_o) -> bool>,
5787    pub test_network:
5788        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_unit_test_runner_o) -> bool>,
5789    pub test_slow_paths:
5790        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_unit_test_runner_o) -> bool>,
5791    pub record: ::std::option::Option<
5792        unsafe extern "C" fn(
5793            inst: *mut tm_unit_test_runner_o,
5794            pass: bool,
5795            test_str: *const ::std::os::raw::c_char,
5796            file: *const ::std::os::raw::c_char,
5797            line: u32,
5798        ) -> bool,
5799    >,
5800    pub expect_error: ::std::option::Option<
5801        unsafe extern "C" fn(
5802            inst: *mut tm_unit_test_runner_o,
5803            err: *const ::std::os::raw::c_char,
5804            file: *const ::std::os::raw::c_char,
5805            line: u32,
5806        ),
5807    >,
5808}
5809#[repr(C)]
5810#[derive(Copy, Clone)]
5811pub struct tm_unit_test_i {
5812    pub name: *const ::std::os::raw::c_char,
5813    pub test: ::std::option::Option<
5814        unsafe extern "C" fn(tr: *mut tm_unit_test_runner_i, a: *mut tm_allocator_i),
5815    >,
5816}
5817pub const tm_visibility_flag_behaviour_TM_VISIBILITY_FLAG_OPT_IN: tm_visibility_flag_behaviour = 0;
5818pub const tm_visibility_flag_behaviour_TM_VISIBILITY_FLAG_OPT_OUT: tm_visibility_flag_behaviour = 1;
5819pub type tm_visibility_flag_behaviour = ::std::os::raw::c_int;
5820#[repr(C)]
5821#[derive(Copy, Clone)]
5822pub struct tm_visibility_flag_desc_t {
5823    pub name: u64,
5824    pub description: *const ::std::os::raw::c_char,
5825    pub tooltip: *const ::std::os::raw::c_char,
5826    pub uuid: u32,
5827    pub behaviour: tm_visibility_flag_behaviour,
5828}
5829#[repr(C)]
5830#[derive(Copy, Clone)]
5831pub struct tm_visibility_context_o {
5832    _unused: [u8; 0],
5833}
5834#[repr(C)]
5835#[derive(Copy, Clone)]
5836pub struct tm_visibility_flags_api {
5837    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
5838    pub create_context: ::std::option::Option<
5839        unsafe extern "C" fn(
5840            allocator: *mut tm_allocator_i,
5841            name: u64,
5842        ) -> *mut tm_visibility_context_o,
5843    >,
5844    pub context_name:
5845        ::std::option::Option<unsafe extern "C" fn(context: *mut tm_visibility_context_o) -> u64>,
5846    pub destroy_context:
5847        ::std::option::Option<unsafe extern "C" fn(context: *mut tm_visibility_context_o)>,
5848    pub register_visibility_flag: ::std::option::Option<
5849        unsafe extern "C" fn(
5850            context: *mut tm_visibility_context_o,
5851            desc: *const tm_visibility_flag_desc_t,
5852        ) -> u64,
5853    >,
5854    pub name_from_visibility_flag: ::std::option::Option<
5855        unsafe extern "C" fn(context: *mut tm_visibility_context_o, visibility_flag: u64) -> u64,
5856    >,
5857    pub visibility_flag_from_name: ::std::option::Option<
5858        unsafe extern "C" fn(context: *mut tm_visibility_context_o, name: u64) -> u64,
5859    >,
5860    pub unregister_visibility_flag: ::std::option::Option<
5861        unsafe extern "C" fn(context: *mut tm_visibility_context_o, uuid: u32),
5862    >,
5863    pub enumerate_flags: ::std::option::Option<
5864        unsafe extern "C" fn(
5865            context: *mut tm_visibility_context_o,
5866            flags: *mut tm_visibility_flag_desc_t,
5867            num_flags: *mut u32,
5868        ),
5869    >,
5870    pub build_visibility_mask: ::std::option::Option<
5871        unsafe extern "C" fn(
5872            context: *mut tm_visibility_context_o,
5873            uuids: *const u32,
5874            num_uuids: u32,
5875        ) -> u64,
5876    >,
5877}
5878pub const TM_TT_PROP__VISIBILITY_FLAG__UUID: ::std::os::raw::c_int = 0;
5879pub type _bindgen_ty_17 = ::std::os::raw::c_int;
5880pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_CONTINUATION: tm_web_socket_opcode = 0;
5881pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_TEXT: tm_web_socket_opcode = 1;
5882pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_BINARY: tm_web_socket_opcode = 2;
5883pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_CLOSE: tm_web_socket_opcode = 8;
5884pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_PING: tm_web_socket_opcode = 9;
5885pub const tm_web_socket_opcode_TM_WEB_SOCKET_OPCODE_PONG: tm_web_socket_opcode = 10;
5886pub type tm_web_socket_opcode = ::std::os::raw::c_int;
5887#[repr(C)]
5888#[derive(Copy, Clone)]
5889pub struct tm_web_socket_protocol_api {
5890    pub make_client_handshake: ::std::option::Option<
5891        unsafe extern "C" fn(
5892            buffer: *mut ::std::os::raw::c_char,
5893            size: u32,
5894            host: *const ::std::os::raw::c_char,
5895            port: u32,
5896            request: *const ::std::os::raw::c_char,
5897            key: *const ::std::os::raw::c_char,
5898        ),
5899    >,
5900    pub make_server_handshake: ::std::option::Option<
5901        unsafe extern "C" fn(
5902            buffer: *mut ::std::os::raw::c_char,
5903            size: u32,
5904            key: *const ::std::os::raw::c_char,
5905            key_size: u32,
5906        ),
5907    >,
5908    pub make_frame_header: ::std::option::Option<
5909        unsafe extern "C" fn(buffer: *mut u8, fin: bool, opcode: u8, size: u64, mask: u32) -> u32,
5910    >,
5911    pub parse_frame_header: ::std::option::Option<
5912        unsafe extern "C" fn(
5913            buffer: *mut u8,
5914            buf_size: u64,
5915            fin: *mut bool,
5916            opcode: *mut u8,
5917            size: *mut u64,
5918            mask: *mut u32,
5919        ) -> u32,
5920    >,
5921    pub mask_data: ::std::option::Option<
5922        unsafe extern "C" fn(data: *mut u8, size: u64, offset: u64, mask: u32),
5923    >,
5924    pub mask_segmented_buffer: ::std::option::Option<
5925        unsafe extern "C" fn(seg: *mut tm_segmented_buffer_t, size: u64, mask: u32),
5926    >,
5927}
5928pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_IN_PROGRESS: tm_http_request_status = 0;
5929pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_SUCCESS: tm_http_request_status = 1;
5930pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_ERROR: tm_http_request_status = 2;
5931pub const tm_http_request_status_TM_HTTP_REQUEST_STATUS_CLOSED: tm_http_request_status = 3;
5932pub type tm_http_request_status = ::std::os::raw::c_int;
5933#[repr(C)]
5934#[derive(Copy, Clone)]
5935pub struct tm_http_request_t {
5936    pub id: u64,
5937    pub request_target: *const ::std::os::raw::c_char,
5938}
5939#[repr(C)]
5940#[derive(Copy, Clone)]
5941pub struct tm_segmented_buffer_t {
5942    pub data: *mut ::std::os::raw::c_void,
5943    pub size: u64,
5944    pub next: *mut tm_segmented_buffer_t,
5945}
5946pub const tm_web_socket_pseudo_opcode_TM_WEB_SOCKET_PSEUDO_OPCODE_OPEN:
5947    tm_web_socket_pseudo_opcode = 16;
5948pub const tm_web_socket_pseudo_opcode_TM_WEB_SOCKET_PSEUDO_OPCODE_ERROR:
5949    tm_web_socket_pseudo_opcode = 17;
5950pub type tm_web_socket_pseudo_opcode = ::std::os::raw::c_int;
5951pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_CONNECTING: tm_web_socket_status = 0;
5952pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_OPEN: tm_web_socket_status = 1;
5953pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_CLOSING: tm_web_socket_status = 2;
5954pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_CLOSED: tm_web_socket_status = 3;
5955pub const tm_web_socket_status_TM_WEB_SOCKET_STATUS_ERROR: tm_web_socket_status = 4;
5956pub type tm_web_socket_status = ::std::os::raw::c_int;
5957#[repr(C)]
5958#[derive(Copy, Clone)]
5959pub struct tm_web_socket_request_t {
5960    pub id: u64,
5961    pub request_target: *const ::std::os::raw::c_char,
5962}
5963#[repr(C)]
5964#[derive(Copy, Clone)]
5965pub struct tm_web_socket_event_t {
5966    pub opcode: u32,
5967    pub _padding_103: [::std::os::raw::c_char; 4usize],
5968    pub payload_size: u64,
5969    pub payload: tm_segmented_buffer_t,
5970    pub payload_reference: *mut ::std::os::raw::c_void,
5971}
5972#[repr(C)]
5973#[derive(Copy, Clone)]
5974pub struct tm_web_talker_o {
5975    _unused: [u8; 0],
5976}
5977#[repr(C)]
5978#[derive(Copy, Clone)]
5979pub struct tm_web_talker_api {
5980    pub listening_address: ::std::option::Option<
5981        unsafe extern "C" fn(inst: *mut tm_web_talker_o, address: *mut tm_socket_address_t) -> bool,
5982    >,
5983    pub receive: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o)>,
5984    pub send: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o)>,
5985    pub http_get_requests: ::std::option::Option<
5986        unsafe extern "C" fn(
5987            inst: *mut tm_web_talker_o,
5988            buffer: *mut tm_http_request_t,
5989            capacity: u32,
5990        ) -> u32,
5991    >,
5992    pub http_respond_raw: ::std::option::Option<
5993        unsafe extern "C" fn(
5994            inst: *mut tm_web_talker_o,
5995            id: u64,
5996            response: *const ::std::os::raw::c_char,
5997        ),
5998    >,
5999    pub http_respond_html: ::std::option::Option<
6000        unsafe extern "C" fn(
6001            inst: *mut tm_web_talker_o,
6002            id: u64,
6003            html: *const ::std::os::raw::c_char,
6004        ),
6005    >,
6006    pub http_request: ::std::option::Option<
6007        unsafe extern "C" fn(
6008            inst: *mut tm_web_talker_o,
6009            address: tm_socket_address_t,
6010            headers: *const ::std::os::raw::c_char,
6011        ) -> u64,
6012    >,
6013    pub http_request_status: ::std::option::Option<
6014        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64) -> tm_http_request_status,
6015    >,
6016    pub http_response: ::std::option::Option<
6017        unsafe extern "C" fn(
6018            inst: *mut tm_web_talker_o,
6019            id: u64,
6020            size: *mut u64,
6021        ) -> tm_segmented_buffer_t,
6022    >,
6023    pub http_close:
6024        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64)>,
6025    pub ws_get_requests: ::std::option::Option<
6026        unsafe extern "C" fn(
6027            inst: *mut tm_web_talker_o,
6028            buffer: *mut tm_web_socket_request_t,
6029            capacity: u32,
6030        ) -> u32,
6031    >,
6032    pub ws_connect: ::std::option::Option<
6033        unsafe extern "C" fn(
6034            inst: *mut tm_web_talker_o,
6035            address: tm_socket_address_t,
6036            host: *const ::std::os::raw::c_char,
6037            request: *const ::std::os::raw::c_char,
6038        ) -> u64,
6039    >,
6040    pub ws_status: ::std::option::Option<
6041        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64) -> tm_web_socket_status,
6042    >,
6043    pub ws_recv_progress: ::std::option::Option<
6044        unsafe extern "C" fn(
6045            inst: *mut tm_web_talker_o,
6046            id: u64,
6047            bytes: *mut u64,
6048            total: *mut u64,
6049        ) -> bool,
6050    >,
6051    pub ws_get_events: ::std::option::Option<
6052        unsafe extern "C" fn(
6053            inst: *mut tm_web_talker_o,
6054            id: u64,
6055            buffer: *mut tm_web_socket_event_t,
6056            capacity: u32,
6057        ) -> u32,
6058    >,
6059    pub ws_send_text_frame: ::std::option::Option<
6060        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64, s: *const ::std::os::raw::c_char),
6061    >,
6062    pub ws_send_binary_frame: ::std::option::Option<
6063        unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64, data: *const u8, size: u64),
6064    >,
6065    pub ws_send_segmented_binary_frame: ::std::option::Option<
6066        unsafe extern "C" fn(
6067            inst: *mut tm_web_talker_o,
6068            id: u64,
6069            buf: *const tm_segmented_buffer_t,
6070            size: u64,
6071        ),
6072    >,
6073    pub ws_send_ping:
6074        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64)>,
6075    pub ws_close: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_web_talker_o, id: u64)>,
6076    pub copy_segmented_buffer: ::std::option::Option<
6077        unsafe extern "C" fn(
6078            buffer: *mut ::std::os::raw::c_void,
6079            segments: *const tm_segmented_buffer_t,
6080            size: u64,
6081        ),
6082    >,
6083    pub create: ::std::option::Option<
6084        unsafe extern "C" fn(
6085            a: *mut tm_allocator_i,
6086            socket: *mut tm_os_socket_api,
6087            port: u32,
6088        ) -> *mut tm_web_talker_o,
6089    >,
6090    pub create_no_server: ::std::option::Option<
6091        unsafe extern "C" fn(
6092            a: *mut tm_allocator_i,
6093            socket: *mut tm_os_socket_api,
6094        ) -> *mut tm_web_talker_o,
6095    >,
6096    pub destroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut tm_web_talker_o)>,
6097}
6098#[repr(C)]
6099#[derive(Copy, Clone)]
6100pub struct tm_analytics_o {
6101    _unused: [u8; 0],
6102}
6103#[repr(C)]
6104#[derive(Copy, Clone)]
6105pub struct tm_analytics_api {
6106    pub create: ::std::option::Option<
6107        unsafe extern "C" fn(
6108            parent: *mut tm_allocator_i,
6109            property_id: *const ::std::os::raw::c_char,
6110            client_id: *const ::std::os::raw::c_char,
6111        ) -> *mut tm_analytics_o,
6112    >,
6113    pub destroy: ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o)>,
6114    pub update: ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o)>,
6115    pub pageview: ::std::option::Option<
6116        unsafe extern "C" fn(
6117            ana: *mut tm_analytics_o,
6118            hostname: *const ::std::os::raw::c_char,
6119            page: *const ::std::os::raw::c_char,
6120            title: *const ::std::os::raw::c_char,
6121        ),
6122    >,
6123    pub event: ::std::option::Option<
6124        unsafe extern "C" fn(
6125            ana: *mut tm_analytics_o,
6126            category: *const ::std::os::raw::c_char,
6127            action: *const ::std::os::raw::c_char,
6128            label: *const ::std::os::raw::c_char,
6129            value: f64,
6130        ),
6131    >,
6132    pub exception: ::std::option::Option<
6133        unsafe extern "C" fn(
6134            ana: *mut tm_analytics_o,
6135            description: *const ::std::os::raw::c_char,
6136            fatal: bool,
6137        ),
6138    >,
6139    pub timing: ::std::option::Option<
6140        unsafe extern "C" fn(
6141            ana: *mut tm_analytics_o,
6142            category: *const ::std::os::raw::c_char,
6143            variable: *const ::std::os::raw::c_char,
6144            time: f64,
6145            label: *mut ::std::os::raw::c_char,
6146        ),
6147    >,
6148    pub screenview: ::std::option::Option<
6149        unsafe extern "C" fn(
6150            ana: *mut tm_analytics_o,
6151            application_name: *const ::std::os::raw::c_char,
6152            application_version: *const ::std::os::raw::c_char,
6153            application_id: *const ::std::os::raw::c_char,
6154            screen_name: *const ::std::os::raw::c_char,
6155        ),
6156    >,
6157    pub vcustom:
6158        ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o, args: va_list)>,
6159    pub custom: ::std::option::Option<unsafe extern "C" fn(ana: *mut tm_analytics_o, ...)>,
6160    pub to_s: ::std::option::Option<
6161        unsafe extern "C" fn(
6162            value: f64,
6163            buffer: *mut ::std::os::raw::c_char,
6164        ) -> *const ::std::os::raw::c_char,
6165    >,
6166}
6167#[repr(C)]
6168#[derive(Copy, Clone)]
6169pub struct tm_animation_blender_o {
6170    _unused: [u8; 0],
6171}
6172#[repr(C)]
6173#[derive(Copy, Clone)]
6174pub struct tm_animation_blend_o {
6175    _unused: [u8; 0],
6176}
6177#[repr(C)]
6178#[derive(Copy, Clone)]
6179pub struct tm_animation_blend_playing_o {
6180    _unused: [u8; 0],
6181}
6182#[repr(C)]
6183#[derive(Copy, Clone)]
6184pub struct tm_animation_blender_playing_o {
6185    _unused: [u8; 0],
6186}
6187pub const TM_ANIMATION_BLENDER_MAX_LAYERS: ::std::os::raw::c_int = 16;
6188pub type _bindgen_ty_18 = ::std::os::raw::c_int;
6189pub const TM_ANIMATION_BLENDER_MAX_MIX: ::std::os::raw::c_int = 32;
6190pub type _bindgen_ty_19 = ::std::os::raw::c_int;
6191#[repr(C)]
6192#[derive(Copy, Clone)]
6193pub struct tm_animation_pose_t {
6194    pub hash: u64,
6195    pub n: u32,
6196    pub _padding_30: [::std::os::raw::c_char; 4usize],
6197    pub bone_names: *mut u64,
6198    pub pos: *mut tm_vec3_t,
6199    pub rot: *mut tm_vec4_t,
6200    pub scl: *mut tm_vec3_t,
6201}
6202#[repr(C)]
6203#[derive(Copy, Clone)]
6204pub struct tm_bone_weights_t {
6205    pub default_weight: f32,
6206    pub _padding_52: [::std::os::raw::c_char; 4usize],
6207    pub hash: u64,
6208    pub n: u32,
6209    pub _padding_60: [::std::os::raw::c_char; 4usize],
6210    pub bone_names: *mut u64,
6211    pub weights: *mut f32,
6212}
6213#[repr(C)]
6214#[derive(Copy, Clone)]
6215pub struct tm_animation_blender_api {
6216    pub blend: ::std::option::Option<
6217        unsafe extern "C" fn(
6218            p1: *mut tm_animation_pose_t,
6219            p1_weight: f32,
6220            p2: *const tm_animation_pose_t,
6221            p2_weight: f32,
6222        ),
6223    >,
6224    pub offset_blend: ::std::option::Option<
6225        unsafe extern "C" fn(
6226            p1: *mut tm_animation_pose_t,
6227            p2: *const tm_animation_pose_t,
6228            p2_weight: f32,
6229            bone_weights: *const tm_bone_weights_t,
6230        ),
6231    >,
6232    pub mix: ::std::option::Option<
6233        unsafe extern "C" fn(
6234            p: *mut tm_animation_pose_t,
6235            poses: *mut *const tm_animation_pose_t,
6236            weights: *const f32,
6237            n: u32,
6238        ),
6239    >,
6240    pub create_blender: ::std::option::Option<
6241        unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_animation_blender_o,
6242    >,
6243    pub destroy_blender:
6244        ::std::option::Option<unsafe extern "C" fn(blender: *mut tm_animation_blender_o)>,
6245    pub create_blend: ::std::option::Option<
6246        unsafe extern "C" fn(
6247            blender: *mut tm_animation_blender_o,
6248            num_layers: u32,
6249        ) -> *mut tm_animation_blend_o,
6250    >,
6251    pub destroy_blend:
6252        ::std::option::Option<unsafe extern "C" fn(blend: *mut tm_animation_blend_o)>,
6253    pub tick: ::std::option::Option<
6254        unsafe extern "C" fn(
6255            blender: *mut tm_animation_blender_o,
6256            dt: f32,
6257        ) -> *mut tm_atomic_counter_o,
6258    >,
6259    pub play_animation: ::std::option::Option<
6260        unsafe extern "C" fn(
6261            blend: *mut tm_animation_blend_o,
6262            layer: u32,
6263            animation: *mut tm_animation_player_playing_o,
6264            crossfade_time: f32,
6265        ) -> *mut tm_animation_blender_playing_o,
6266    >,
6267    pub play_empty: ::std::option::Option<
6268        unsafe extern "C" fn(blend: *mut tm_animation_blend_o, layer: u32, crossfade_time: f32),
6269    >,
6270    pub play_pose: ::std::option::Option<
6271        unsafe extern "C" fn(
6272            blend: *mut tm_animation_blend_o,
6273            layer: u32,
6274            pose: *const tm_animation_pose_t,
6275            crossfade_time: f32,
6276        ) -> *mut tm_animation_blender_playing_o,
6277    >,
6278    pub update_pose: ::std::option::Option<
6279        unsafe extern "C" fn(
6280            playing: *mut tm_animation_blender_playing_o,
6281            pose: *const tm_animation_pose_t,
6282        ),
6283    >,
6284    pub play_mix: ::std::option::Option<
6285        unsafe extern "C" fn(
6286            blend: *mut tm_animation_blend_o,
6287            layer: u32,
6288            animations: *mut *mut tm_animation_player_playing_o,
6289            weights: *const f32,
6290            n: u32,
6291            crossfade_time: f32,
6292        ) -> *mut tm_animation_blender_playing_o,
6293    >,
6294    pub update_mix_weights: ::std::option::Option<
6295        unsafe extern "C" fn(playing: *mut tm_animation_blender_playing_o, weights: *const f32),
6296    >,
6297    pub set_bone_weights: ::std::option::Option<
6298        unsafe extern "C" fn(
6299            playing: *mut tm_animation_blender_playing_o,
6300            bone_weights: *const tm_bone_weights_t,
6301        ),
6302    >,
6303    pub blend_step:
6304        ::std::option::Option<unsafe extern "C" fn(blend: *mut tm_animation_blend_o, dt: f32)>,
6305    pub blend_compute_pose: ::std::option::Option<
6306        unsafe extern "C" fn(b: *mut tm_animation_blend_o) -> *mut tm_animation_pose_t,
6307    >,
6308    pub blend_pose: ::std::option::Option<
6309        unsafe extern "C" fn(b: *mut tm_animation_blend_o) -> *mut tm_animation_pose_t,
6310    >,
6311    pub locomotion_delta:
6312        ::std::option::Option<unsafe extern "C" fn(b: *mut tm_animation_blend_o) -> tm_transform_t>,
6313}
6314pub const tm_tt_value__animation_clip__locomotion_TM_TT_VALUE__ANIMATION_CLIP__LOCOMOTION__TRANSLATION_XZ : tm_tt_value__animation_clip__locomotion = 0 ;
6315pub const tm_tt_value__animation_clip__locomotion_TM_TT_VALUE__ANIMATION_CLIP__LOCOMOTION__TRANSLATION_XYZ : tm_tt_value__animation_clip__locomotion = 1 ;
6316pub const tm_tt_value__animation_clip__locomotion_TM_TT_VALUE__ANIMATION_CLIP__LOCOMOTION__FULL_TRANSFORM : tm_tt_value__animation_clip__locomotion = 2 ;
6317pub type tm_tt_value__animation_clip__locomotion = ::std::os::raw::c_int;
6318pub const TM_TT_PROP__ANIMATION_CLIP__NAME: ::std::os::raw::c_int = 0;
6319pub const TM_TT_PROP__ANIMATION_CLIP__ANIMATION: ::std::os::raw::c_int = 1;
6320pub const TM_TT_PROP__ANIMATION_CLIP__LOOP: ::std::os::raw::c_int = 2;
6321pub const TM_TT_PROP__ANIMATION_CLIP__SPEED: ::std::os::raw::c_int = 3;
6322pub const TM_TT_PROP__ANIMATION_CLIP__CUSTOM_RANGE: ::std::os::raw::c_int = 4;
6323pub const TM_TT_PROP__ANIMATION_CLIP__BEGIN: ::std::os::raw::c_int = 5;
6324pub const TM_TT_PROP__ANIMATION_CLIP__END: ::std::os::raw::c_int = 6;
6325pub const TM_TT_PROP__ANIMATION_CLIP__LOCOMOTION_NODE: ::std::os::raw::c_int = 7;
6326pub const TM_TT_PROP__ANIMATION_CLIP__LOCOMOTION: ::std::os::raw::c_int = 8;
6327pub type _bindgen_ty_20 = ::std::os::raw::c_int;
6328#[repr(C)]
6329#[derive(Copy, Clone)]
6330pub struct tm_animation_float_key_t {
6331    pub time: f32,
6332    pub v: f32,
6333}
6334#[repr(C)]
6335#[derive(Copy, Clone)]
6336pub struct tm_animation_vec3_key_t {
6337    pub time: f32,
6338    pub v: tm_vec3_t,
6339}
6340#[repr(C)]
6341#[derive(Copy, Clone)]
6342pub struct tm_animation_quat_key_t {
6343    pub time: f32,
6344    pub q: tm_vec4_t,
6345}
6346pub const tm_animation_extrapolation_TM_ANIMATION_EXTRAPOLATION__CONSTANT:
6347    tm_animation_extrapolation = 0;
6348pub const tm_animation_extrapolation_TM_ANIMATION_EXTRAPOLATION__LINEAR:
6349    tm_animation_extrapolation = 1;
6350pub const tm_animation_extrapolation_TM_ANIMATION_EXTRAPOLATION__REPEAT:
6351    tm_animation_extrapolation = 2;
6352pub type tm_animation_extrapolation = ::std::os::raw::c_int;
6353#[repr(C)]
6354#[derive(Copy, Clone)]
6355pub struct tm_animation_raw_t {
6356    pub buffers: *const tm_buffers_i,
6357    pub buffer: u32,
6358    pub _padding_60: [::std::os::raw::c_char; 4usize],
6359    pub ticks_per_second: f64,
6360    pub duration: f64,
6361    pub num_bones: u32,
6362    pub _padding_70: [::std::os::raw::c_char; 4usize],
6363    pub bone_names: *mut u64,
6364    pub num_pos_keys: *mut u32,
6365    pub pos_keys: *mut *const tm_animation_vec3_key_t,
6366    pub num_rot_keys: *mut u32,
6367    pub rot_keys: *mut *const tm_animation_quat_key_t,
6368    pub num_scl_keys: *mut u32,
6369    pub scl_keys: *mut *const tm_animation_vec3_key_t,
6370    pub bone_pre_extrapolation: *mut u16,
6371    pub bone_post_extrapolation: *mut u16,
6372    pub num_curves: u32,
6373    pub _padding_91: [::std::os::raw::c_char; 4usize],
6374    pub curve_names: *mut u64,
6375    pub num_curve_keys: *mut u32,
6376    pub curve_keys: *mut *mut tm_animation_float_key_t,
6377    pub curve_pre_extrapolation: *mut u16,
6378    pub curve_post_extrapolation: *mut u16,
6379}
6380pub const tm_animation_player_loop_TM_ANIMATION_PLAYER_LOOP__NONE: tm_animation_player_loop = 0;
6381pub const tm_animation_player_loop_TM_ANIMATION_PLAYER_LOOP__LOOP: tm_animation_player_loop = 1;
6382pub const tm_animation_player_loop_TM_ANIMATION_PLAYER_LOOP__PING_PONG: tm_animation_player_loop =
6383    2;
6384pub type tm_animation_player_loop = ::std::os::raw::c_int;
6385pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__NONE:
6386    tm_animation_player_locomotion = 0;
6387pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__TRANSLATION_XZ:
6388    tm_animation_player_locomotion = 1;
6389pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__TRANSLATION_XYZ:
6390    tm_animation_player_locomotion = 2;
6391pub const tm_animation_player_locomotion_TM_ANIMATION_PLAYER_LOCOMOTION__FULL_TRANSFORM:
6392    tm_animation_player_locomotion = 3;
6393pub type tm_animation_player_locomotion = ::std::os::raw::c_int;
6394#[repr(C)]
6395#[derive(Copy, Clone)]
6396pub struct tm_animation_player_playing_o {
6397    pub animation_player: *mut tm_animation_player_o,
6398    pub generation: u64,
6399    pub time: f64,
6400    pub eval_time: f64,
6401    pub length: f64,
6402    pub ticks_per_second: f32,
6403    pub speed: f32,
6404    pub base_speed: f32,
6405    pub loop_: tm_animation_player_loop,
6406    pub loop_range_begin: f64,
6407    pub loop_range_end: f64,
6408    pub loop_count: i32,
6409    pub num_bones: u32,
6410    pub bone_names: *mut u64,
6411    pub bone_pos: *mut tm_vec3_t,
6412    pub bone_rot: *mut tm_vec4_t,
6413    pub bone_scl: *mut tm_vec3_t,
6414    pub bone_hash: u64,
6415    pub num_curves: u32,
6416    pub _padding_179: [::std::os::raw::c_char; 4usize],
6417    pub curve_names: *mut u64,
6418    pub curve_values: *mut f32,
6419    pub curve_hash: u64,
6420    pub locomotion: u32,
6421    pub locomotion_bone: u32,
6422    pub locomotion_delta: tm_transform_t,
6423}
6424#[repr(C)]
6425#[derive(Copy, Clone)]
6426pub struct tm_animation_player_api {
6427    pub create: ::std::option::Option<
6428        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_animation_player_o,
6429    >,
6430    pub destroy: ::std::option::Option<unsafe extern "C" fn(player: *mut tm_animation_player_o)>,
6431    pub parse_raw: ::std::option::Option<
6432        unsafe extern "C" fn(
6433            ap: *mut tm_animation_player_o,
6434            tt: *const tm_the_truth_o,
6435            animation: tm_tt_id_t,
6436            ta: *mut tm_temp_allocator_i,
6437        ) -> *mut tm_animation_raw_t,
6438    >,
6439    pub play_raw: ::std::option::Option<
6440        unsafe extern "C" fn(
6441            ap: *mut tm_animation_player_o,
6442            raw: *const tm_animation_raw_t,
6443        ) -> *mut tm_animation_player_playing_o,
6444    >,
6445    pub play: ::std::option::Option<
6446        unsafe extern "C" fn(
6447            ap: *mut tm_animation_player_o,
6448            tt: *const tm_the_truth_o,
6449            animation: tm_tt_id_t,
6450        ) -> *mut tm_animation_player_playing_o,
6451    >,
6452    pub stop:
6453        ::std::option::Option<unsafe extern "C" fn(playing: *mut tm_animation_player_playing_o)>,
6454    pub set_time: ::std::option::Option<
6455        unsafe extern "C" fn(playing: *mut tm_animation_player_playing_o, t: f64),
6456    >,
6457    pub tick: ::std::option::Option<
6458        unsafe extern "C" fn(ap: *mut tm_animation_player_o, dt: f32) -> *mut tm_atomic_counter_o,
6459    >,
6460}
6461#[repr(C)]
6462#[derive(Copy, Clone)]
6463pub struct tm_scene_tree_component_t {
6464    _unused: [u8; 0],
6465}
6466pub const TM_TT_PROP__ANIMATION_SIMPLE_PLAYER__ANIMATION: ::std::os::raw::c_int = 0;
6467pub type _bindgen_ty_21 = ::std::os::raw::c_int;
6468pub const tm_animation_simple_player__locomotion_TM_ANIMATION_SIMPLE_PLAYER__LOCOMOTION__DRIVE:
6469    tm_animation_simple_player__locomotion = 0;
6470pub const tm_animation_simple_player__locomotion_TM_ANIMATION_SIMPLE_PLAYER__LOCOMOTION__EXTERNAL : tm_animation_simple_player__locomotion = 1 ;
6471pub type tm_animation_simple_player__locomotion = ::std::os::raw::c_int;
6472#[repr(C)]
6473#[derive(Copy, Clone)]
6474pub struct tm_animation_simple_player_component_t {
6475    pub animation: tm_tt_id_t,
6476    pub playing: *mut tm_animation_player_playing_o,
6477    pub locomotion: u32,
6478    pub locomotion_delta: tm_transform_t,
6479    pub _padding_44: [::std::os::raw::c_char; 4usize],
6480}
6481#[repr(C)]
6482#[derive(Copy, Clone)]
6483pub struct tm_animation_simple_player_component_manager_o {
6484    _unused: [u8; 0],
6485}
6486#[repr(C)]
6487#[derive(Copy, Clone)]
6488pub struct tm_animation_simple_player_component_api {
6489    pub update: ::std::option::Option<
6490        unsafe extern "C" fn(man: *mut tm_animation_simple_player_component_manager_o, dt: f32),
6491    >,
6492    pub play: ::std::option::Option<
6493        unsafe extern "C" fn(
6494            man: *mut tm_animation_simple_player_component_manager_o,
6495            c: *mut tm_animation_simple_player_component_t,
6496            animation: tm_tt_id_t,
6497            st: *mut tm_scene_tree_component_t,
6498        ),
6499    >,
6500}
6501pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__NAME:
6502    tm_asm_state_interface_properties = 0;
6503pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__SORT_ORDER:
6504    tm_asm_state_interface_properties = 1;
6505pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__POSITION_X:
6506    tm_asm_state_interface_properties = 2;
6507pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__POSITION_Y:
6508    tm_asm_state_interface_properties = 3;
6509pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__BLEND_SET:
6510    tm_asm_state_interface_properties = 4;
6511pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__SPEED:
6512    tm_asm_state_interface_properties = 5;
6513pub const tm_asm_state_interface_properties_TM_TT_PROP__ASM_STATE__FIRST_CUSTOM:
6514    tm_asm_state_interface_properties = 6;
6515pub type tm_asm_state_interface_properties = ::std::os::raw::c_int;
6516pub const TM_TT_PROP__ASM_REGULAR_STATE__ANIMATION: ::std::os::raw::c_int = 6;
6517pub type _bindgen_ty_22 = ::std::os::raw::c_int;
6518pub const TM_TT_VALUE__ASM_RANDOM_STATE__STRATEGY__DONT_REPEAT: ::std::os::raw::c_int = 0;
6519pub const TM_TT_VALUE__ASM_RANDOM_STATE__STRATEGY__INDEPENDENT_PICK: ::std::os::raw::c_int = 1;
6520pub const TM_TT_VALUE__ASM_RANDOM_STATE__STRATEGY__SHUFFLE: ::std::os::raw::c_int = 2;
6521pub type _bindgen_ty_23 = ::std::os::raw::c_int;
6522pub const TM_TT_PROP__ASM_RANDOM_STATE__STRATEGY: ::std::os::raw::c_int = 6;
6523pub const TM_TT_PROP__ASM_RANDOM_STATE__LOOP_CROSSFADE_TIME: ::std::os::raw::c_int = 7;
6524pub const TM_TT_PROP__ASM_RANDOM_STATE__ANIMATIONS: ::std::os::raw::c_int = 8;
6525pub type _bindgen_ty_24 = ::std::os::raw::c_int;
6526pub const TM_TT_PROP__ASM_RANDOM_STATE_ANIMATION__ANIMATION: ::std::os::raw::c_int = 0;
6527pub const TM_TT_PROP__ASM_RANDOM_STATE_ANIMATION__WEIGHT: ::std::os::raw::c_int = 1;
6528pub type _bindgen_ty_25 = ::std::os::raw::c_int;
6529pub const tm_tt_value__asm_blend_state__dimensions_TM_TT_VALUE__ASM_BLEND_STATE__DIMENSIONS__1D:
6530    tm_tt_value__asm_blend_state__dimensions = 0;
6531pub const tm_tt_value__asm_blend_state__dimensions_TM_TT_VALUE__ASM_BLEND_STATE__DIMENSIONS__2D:
6532    tm_tt_value__asm_blend_state__dimensions = 1;
6533pub type tm_tt_value__asm_blend_state__dimensions = ::std::os::raw::c_int;
6534pub const TM_TT_PROP__ASM_BLEND_STATE__DIMENSIONS: ::std::os::raw::c_int = 6;
6535pub const TM_TT_PROP__ASM_BLEND_STATE__VARIABLE_X: ::std::os::raw::c_int = 7;
6536pub const TM_TT_PROP__ASM_BLEND_STATE__VARIABLE_Y: ::std::os::raw::c_int = 8;
6537pub const TM_TT_PROP__ASM_BLEND_STATE__ANIMATIONS: ::std::os::raw::c_int = 9;
6538pub type _bindgen_ty_26 = ::std::os::raw::c_int;
6539pub const TM_TT_PROP__ASM_BLEND_STATE_ANIMATION__ANIMATION: ::std::os::raw::c_int = 0;
6540pub const TM_TT_PROP__ASM_BLEND_STATE_ANIMATION__X: ::std::os::raw::c_int = 1;
6541pub const TM_TT_PROP__ASM_BLEND_STATE_ANIMATION__Y: ::std::os::raw::c_int = 2;
6542pub type _bindgen_ty_27 = ::std::os::raw::c_int;
6543pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__NAME:
6544    tm_asm_transition_interface_properties = 0;
6545pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__SORT_ORDER:
6546    tm_asm_transition_interface_properties = 1;
6547pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__FROM_STATE:
6548    tm_asm_transition_interface_properties = 2;
6549pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__TO_STATE:
6550    tm_asm_transition_interface_properties = 3;
6551pub const tm_asm_transition_interface_properties_TM_TT_PROP__ASM_TRANSITION__FIRST_CUSTOM:
6552    tm_asm_transition_interface_properties = 4;
6553pub type tm_asm_transition_interface_properties = ::std::os::raw::c_int;
6554pub const tm_tt_value__asm_regular_transition__on_TM_TT_VALUE__ASM_REGULAR_TRANSITION__ON__EVENT:
6555    tm_tt_value__asm_regular_transition__on = 0;
6556pub 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 ;
6557pub const tm_tt_value__asm_regular_transition__on_TM_TT_VALUE__ASM_REGULAR_TRANSITION__ON__CONDITION : tm_tt_value__asm_regular_transition__on = 2 ;
6558pub type tm_tt_value__asm_regular_transition__on = ::std::os::raw::c_int;
6559pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__ON: ::std::os::raw::c_int = 4;
6560pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__EVENT: ::std::os::raw::c_int = 5;
6561pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__CONDITION: ::std::os::raw::c_int = 6;
6562pub const TM_TT_PROP__ASM_REGULAR_TRANSITION__CROSSFADE_TIME: ::std::os::raw::c_int = 7;
6563pub type _bindgen_ty_28 = ::std::os::raw::c_int;
6564pub const TM_TT_PROP__ASM_LAYER__NAME: ::std::os::raw::c_int = 0;
6565pub const TM_TT_PROP__ASM_LAYER__SORT_ORDER: ::std::os::raw::c_int = 1;
6566pub const TM_TT_PROP__ASM_LAYER__DEFAULT_STATE: ::std::os::raw::c_int = 2;
6567pub const TM_TT_PROP__ASM_LAYER__STATES: ::std::os::raw::c_int = 3;
6568pub const TM_TT_PROP__ASM_LAYER__TRANSITIONS: ::std::os::raw::c_int = 4;
6569pub type _bindgen_ty_29 = ::std::os::raw::c_int;
6570pub const TM_TT_PROP__ASM_EVENT__NAME: ::std::os::raw::c_int = 0;
6571pub const TM_TT_PROP__ASM_EVENT__SORT_ORDER: ::std::os::raw::c_int = 1;
6572pub type _bindgen_ty_30 = ::std::os::raw::c_int;
6573pub const TM_TT_PROP__ASM_VARIABLE__NAME: ::std::os::raw::c_int = 0;
6574pub const TM_TT_PROP__ASM_VARIABLE__SORT_ORDER: ::std::os::raw::c_int = 1;
6575pub const TM_TT_PROP__ASM_VARIABLE__DEFAULT: ::std::os::raw::c_int = 2;
6576pub const TM_TT_PROP__ASM_VARIABLE__MIN: ::std::os::raw::c_int = 3;
6577pub const TM_TT_PROP__ASM_VARIABLE__MAX: ::std::os::raw::c_int = 4;
6578pub const TM_TT_PROP__ASM_VARAIBLE__COMPUTED: ::std::os::raw::c_int = 5;
6579pub const TM_TT_PROP__ASM_VARIABLE__EXPRESSION: ::std::os::raw::c_int = 6;
6580pub type _bindgen_ty_31 = ::std::os::raw::c_int;
6581pub const TM_TT_PROP__ASM_BLEND_SET_WEIGHT__NAME: ::std::os::raw::c_int = 0;
6582pub const TM_TT_PROP__ASM_BLEND_SET_WEIGHT__WEIGHT: ::std::os::raw::c_int = 1;
6583pub type _bindgen_ty_32 = ::std::os::raw::c_int;
6584pub const TM_TT_PROP__ASM_BLEND_SET__NAME: ::std::os::raw::c_int = 0;
6585pub const TM_TT_PROP__ASM_BLEND_SET__SORT_ORDER: ::std::os::raw::c_int = 1;
6586pub const TM_TT_PROP__ASM_BLEND_SET__DEFAULT_WEIGHT: ::std::os::raw::c_int = 2;
6587pub const TM_TT_PROP__ASM_BLEND_SET__WEIGHTS: ::std::os::raw::c_int = 3;
6588pub type _bindgen_ty_33 = ::std::os::raw::c_int;
6589pub const TM_TT_PROP__ASM_MOTION_MIXER__SLIDERS: ::std::os::raw::c_int = 0;
6590pub const TM_TT_PROP__ASM_MOTION_MIXER__BUTTONS: ::std::os::raw::c_int = 1;
6591pub const TM_TT_PROP__ASM_MOTION_MIXER__VARIABLE_KEYS: ::std::os::raw::c_int = 2;
6592pub const TM_TT_PROP__ASM_MOTION_MIXER__EVENT_KEYS: ::std::os::raw::c_int = 3;
6593pub type _bindgen_ty_34 = ::std::os::raw::c_int;
6594pub const TM_TT_PROP__ASM_MOTION_MIXER_SLIDER__VARIABLE: ::std::os::raw::c_int = 0;
6595pub const TM_TT_PROP__ASM_MOTION_MIXER_SLIDER__SORT_ORDER: ::std::os::raw::c_int = 1;
6596pub type _bindgen_ty_35 = ::std::os::raw::c_int;
6597pub const TM_TT_PROP__ASM_MOTION_MIXER_BUTTON__EVENT: ::std::os::raw::c_int = 0;
6598pub const TM_TT_PROP__ASM_MOTION_MIXER_BUTTON__SORT_ORDER: ::std::os::raw::c_int = 1;
6599pub type _bindgen_ty_36 = ::std::os::raw::c_int;
6600pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__SORT_ORDER: ::std::os::raw::c_int = 0;
6601pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__KEY: ::std::os::raw::c_int = 1;
6602pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__VARIABLE: ::std::os::raw::c_int = 2;
6603pub const TM_TT_PROP__ASM_MOTION_MIXER_VARIABLE_KEY__LERP_TIME: ::std::os::raw::c_int = 3;
6604pub type _bindgen_ty_37 = ::std::os::raw::c_int;
6605pub const TM_TT_PROP__ASM_MOTION_MIXER_EVENT_KEY__SORT_ORDER: ::std::os::raw::c_int = 0;
6606pub const TM_TT_PROP__ASM_MOTION_MIXER_EVENT_KEY__KEY: ::std::os::raw::c_int = 1;
6607pub const TM_TT_PROP__ASM_MOTION_MIXER_EVENT_KEY__EVENT: ::std::os::raw::c_int = 2;
6608pub type _bindgen_ty_38 = ::std::os::raw::c_int;
6609pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__NAME: ::std::os::raw::c_int = 0;
6610pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__PREVIEW_ENTITY: ::std::os::raw::c_int = 1;
6611pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__LAYERS: ::std::os::raw::c_int = 2;
6612pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__EVENTS: ::std::os::raw::c_int = 3;
6613pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__VARIABLES: ::std::os::raw::c_int = 4;
6614pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__BLEND_SETS: ::std::os::raw::c_int = 5;
6615pub const TM_TT_PROP__ANIMATION_STATE_MACHINE__MOTION_MIXER: ::std::os::raw::c_int = 6;
6616pub type _bindgen_ty_39 = ::std::os::raw::c_int;
6617#[repr(C)]
6618#[derive(Copy, Clone)]
6619pub struct tm_animation_state_machine_manager_o {
6620    _unused: [u8; 0],
6621}
6622#[repr(C)]
6623#[derive(Copy, Clone)]
6624pub struct tm_animation_state_machine_o {
6625    _unused: [u8; 0],
6626}
6627pub const TM_STATE_MACHINE__MAX_LAYERS: ::std::os::raw::c_int = 16;
6628pub type _bindgen_ty_40 = ::std::os::raw::c_int;
6629pub const TM_STATE_MACHINE__MAX_VARIABLES: ::std::os::raw::c_int = 64;
6630pub type _bindgen_ty_41 = ::std::os::raw::c_int;
6631#[repr(C)]
6632#[derive(Copy, Clone)]
6633pub struct tm_animation_state_machine_state_t {
6634    pub num_layers: u32,
6635    pub _padding_239: [::std::os::raw::c_char; 4usize],
6636    pub layer_uuid: [tm_uuid_t; 16usize],
6637    pub state_uuid: [tm_uuid_t; 16usize],
6638    pub state_type_hash: [u64; 16usize],
6639    pub state_name_hash: [u64; 16usize],
6640    pub state_animation_time: [f64; 16usize],
6641    pub num_variables: u32,
6642    pub _padding_247: [::std::os::raw::c_char; 4usize],
6643    pub variable_names: [u64; 64usize],
6644    pub variable_values: [f32; 64usize],
6645}
6646#[repr(C)]
6647#[derive(Copy, Clone)]
6648pub struct tm_animation_state_machine_api {
6649    pub compile: ::std::option::Option<
6650        unsafe extern "C" fn(
6651            tt: *const tm_the_truth_o,
6652            sm_id: tm_tt_id_t,
6653            vm: *mut ::std::os::raw::c_char,
6654            allocator: *mut tm_allocator_i,
6655        ),
6656    >,
6657    pub create_manager: ::std::option::Option<
6658        unsafe extern "C" fn(
6659            allocator: *mut tm_allocator_i,
6660        ) -> *mut tm_animation_state_machine_manager_o,
6661    >,
6662    pub destroy_manager: ::std::option::Option<
6663        unsafe extern "C" fn(manager: *mut tm_animation_state_machine_manager_o),
6664    >,
6665    pub create_state_machine: ::std::option::Option<
6666        unsafe extern "C" fn(
6667            manager: *mut tm_animation_state_machine_manager_o,
6668            tt: *mut tm_the_truth_o,
6669            data: *mut ::std::os::raw::c_void,
6670        ) -> *mut tm_animation_state_machine_o,
6671    >,
6672    pub destroy_state_machine:
6673        ::std::option::Option<unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o)>,
6674    pub state: ::std::option::Option<
6675        unsafe extern "C" fn(
6676            sm: *const tm_animation_state_machine_o,
6677        ) -> tm_animation_state_machine_state_t,
6678    >,
6679    pub set_state: ::std::option::Option<
6680        unsafe extern "C" fn(
6681            sm: *mut tm_animation_state_machine_o,
6682            state: *const tm_animation_state_machine_state_t,
6683        ),
6684    >,
6685    pub event: ::std::option::Option<
6686        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o, name_hash: u64),
6687    >,
6688    pub tick_state_machine:
6689        ::std::option::Option<unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o, dt: f32)>,
6690    pub tick: ::std::option::Option<
6691        unsafe extern "C" fn(manager: *mut tm_animation_state_machine_manager_o, dt: f32),
6692    >,
6693    pub pose: ::std::option::Option<
6694        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o) -> *mut tm_animation_pose_t,
6695    >,
6696    pub locomotion_delta: ::std::option::Option<
6697        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o) -> tm_transform_t,
6698    >,
6699    pub get_variable: ::std::option::Option<
6700        unsafe extern "C" fn(sm: *const tm_animation_state_machine_o, name: u64) -> f32,
6701    >,
6702    pub set_variable: ::std::option::Option<
6703        unsafe extern "C" fn(sm: *mut tm_animation_state_machine_o, name: u64, value: f32),
6704    >,
6705    pub is_state_playing: ::std::option::Option<
6706        unsafe extern "C" fn(sm: *const tm_animation_state_machine_o, name_hash: u64) -> bool,
6707    >,
6708}
6709#[repr(C)]
6710#[derive(Copy, Clone)]
6711pub union tm_entity_t {
6712    pub __bindgen_anon_1: tm_entity_t__bindgen_ty_1,
6713    pub u64_: u64,
6714    _bindgen_union_align: u64,
6715}
6716#[repr(C)]
6717#[derive(Copy, Clone)]
6718pub struct tm_entity_t__bindgen_ty_1 {
6719    pub index: u32,
6720    pub generation: u32,
6721}
6722#[repr(C)]
6723#[derive(Copy, Clone)]
6724pub struct tm_set_entity_t {
6725    _unused: [u8; 0],
6726}
6727#[repr(C)]
6728#[derive(Copy, Clone)]
6729pub struct tm_component_manager_o {
6730    _unused: [u8; 0],
6731}
6732pub const TM_TT_PROP__ANIMATION_STATE_MACHINE_COMPONENT__STATE_MACHINE: ::std::os::raw::c_int = 0;
6733pub type _bindgen_ty_42 = ::std::os::raw::c_int;
6734pub const tm_animation_state_machine__locomotion_TM_ANIMATION_STATE_MACHINE__LOCOMOTION__DRIVE:
6735    tm_animation_state_machine__locomotion = 0;
6736pub const tm_animation_state_machine__locomotion_TM_ANIMATION_STATE_MACHINE__LOCOMOTION__EXTERNAL : tm_animation_state_machine__locomotion = 1 ;
6737pub type tm_animation_state_machine__locomotion = ::std::os::raw::c_int;
6738#[repr(C)]
6739#[derive(Copy, Clone)]
6740pub struct tm_animation_state_machine_component_t {
6741    pub state_machine_id: tm_tt_id_t,
6742    pub state_machine: *mut tm_animation_state_machine_o,
6743    pub state_machine_data: *mut ::std::os::raw::c_char,
6744    pub locomotion: u32,
6745    pub locomotion_delta: tm_transform_t,
6746    pub _padding_36: [::std::os::raw::c_char; 4usize],
6747}
6748#[repr(C)]
6749#[derive(Copy, Clone)]
6750pub struct tm_animation_state_machine_component_api {
6751    pub update:
6752        ::std::option::Option<unsafe extern "C" fn(man: *mut tm_component_manager_o, dt: f32)>,
6753    pub reload: ::std::option::Option<
6754        unsafe extern "C" fn(
6755            man: *mut tm_component_manager_o,
6756            e: tm_entity_t,
6757            c: *mut tm_animation_state_machine_component_t,
6758        ),
6759    >,
6760}
6761#[repr(C)]
6762#[derive(Copy, Clone)]
6763pub struct tm_bone_translation_api {
6764    pub get_bone_translation_table: ::std::option::Option<
6765        unsafe extern "C" fn(
6766            hash_1: u64,
6767            bone_names_1: *const u64,
6768            n_1: u16,
6769            hash_2: u64,
6770            bone_names_2: *const u64,
6771            n_2: u16,
6772        ) -> *mut u16,
6773    >,
6774}
6775#[repr(C)]
6776#[derive(Copy, Clone)]
6777pub struct tm_expression_language_api {
6778    pub compile: ::std::option::Option<
6779        unsafe extern "C" fn(
6780            source: *const ::std::os::raw::c_char,
6781            variables: *const u64,
6782            num_variables: u16,
6783            ta: *mut tm_temp_allocator_i,
6784        ) -> *mut ::std::os::raw::c_char,
6785    >,
6786    pub is_error: ::std::option::Option<
6787        unsafe extern "C" fn(
6788            byte_code: *const ::std::os::raw::c_char,
6789        ) -> *const ::std::os::raw::c_char,
6790    >,
6791    pub is_constant: ::std::option::Option<
6792        unsafe extern "C" fn(byte_code: *const ::std::os::raw::c_char, value: *mut f32) -> bool,
6793    >,
6794    pub used_variables: ::std::option::Option<
6795        unsafe extern "C" fn(
6796            byte_code: *const ::std::os::raw::c_char,
6797            ta: *mut tm_temp_allocator_i,
6798        ) -> *mut u16,
6799    >,
6800    pub size: ::std::option::Option<
6801        unsafe extern "C" fn(byte_code: *const ::std::os::raw::c_char) -> u32,
6802    >,
6803    pub run: ::std::option::Option<
6804        unsafe extern "C" fn(
6805            byte_code: *const ::std::os::raw::c_char,
6806            variables: *const f32,
6807        ) -> f32,
6808    >,
6809}
6810#[repr(C)]
6811#[derive(Copy, Clone)]
6812pub struct tm_state_graph_aspect_i {
6813    pub prop_graph__nodes: u32,
6814    pub prop_graph__transitions: u32,
6815    pub prop_node__pos_x: u32,
6816    pub prop_node__pos_y: u32,
6817    pub prop_transition__from_node: u32,
6818    pub prop_transition__to_node: u32,
6819    pub node_aspect: u64,
6820    pub transition_aspect: u64,
6821}
6822#[repr(C)]
6823#[derive(Copy, Clone)]
6824pub struct tm_state_graph_setup_t {
6825    pub tt: *mut tm_the_truth_o,
6826    pub undo_stack: *mut tm_undo_stack_i,
6827    pub root_object: tm_tt_id_t,
6828    pub aspect: *const tm_state_graph_aspect_i,
6829}
6830#[repr(C)]
6831#[derive(Copy, Clone)]
6832pub struct tm_state_graph_node_aspect_i {
6833    pub graph_title: ::std::option::Option<
6834        unsafe extern "C" fn(
6835            tt: *const tm_the_truth_o,
6836            id: tm_tt_id_t,
6837            buffer: *mut ::std::os::raw::c_char,
6838            size: u32,
6839        ) -> *const ::std::os::raw::c_char,
6840    >,
6841    pub spawn_title: ::std::option::Option<
6842        unsafe extern "C" fn(
6843            tt: *const tm_the_truth_o,
6844            type_: u64,
6845            buffer: *mut ::std::os::raw::c_char,
6846            size: u32,
6847        ) -> *const ::std::os::raw::c_char,
6848    >,
6849    pub spawn_category: ::std::option::Option<
6850        unsafe extern "C" fn(
6851            tt: *const tm_the_truth_o,
6852            type_: u64,
6853            buffer: *mut ::std::os::raw::c_char,
6854            size: u32,
6855        ) -> *const ::std::os::raw::c_char,
6856    >,
6857    pub draw: ::std::option::Option<
6858        unsafe extern "C" fn(
6859            tt: *const tm_the_truth_o,
6860            id: tm_tt_id_t,
6861            ui: *mut tm_ui_o,
6862            uistyle: *const tm_ui_style_t,
6863            rect: tm_rect_t,
6864        ),
6865    >,
6866}
6867#[repr(C)]
6868#[derive(Copy, Clone)]
6869pub struct tm_state_graph_transition_aspect_i {
6870    pub graph_title: ::std::option::Option<
6871        unsafe extern "C" fn(
6872            tt: *const tm_the_truth_o,
6873            id: tm_tt_id_t,
6874            buffer: *mut ::std::os::raw::c_char,
6875            size: u32,
6876        ) -> *const ::std::os::raw::c_char,
6877    >,
6878}
6879#[repr(C)]
6880#[derive(Copy, Clone)]
6881pub struct tm_state_graph_o {
6882    _unused: [u8; 0],
6883}
6884#[repr(C)]
6885#[derive(Copy, Clone)]
6886pub struct tm_state_graph_ui_res_t {
6887    pub focus_changed: bool,
6888    pub _padding_98: [::std::os::raw::c_char; 7usize],
6889    pub focus: tm_tt_id_t,
6890    pub selection_changed: bool,
6891    pub _padding_105: [::std::os::raw::c_char; 7usize],
6892}
6893#[repr(C)]
6894#[derive(Copy, Clone)]
6895pub struct tm_state_graph_api {
6896    pub create_graph: ::std::option::Option<
6897        unsafe extern "C" fn(
6898            parent_allocator: *mut tm_allocator_i,
6899            setup: *const tm_state_graph_setup_t,
6900        ) -> *mut tm_state_graph_o,
6901    >,
6902    pub destroy_graph: ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_state_graph_o)>,
6903    pub ui: ::std::option::Option<
6904        unsafe extern "C" fn(
6905            inst: *mut tm_state_graph_o,
6906            ui: *mut tm_ui_o,
6907            style: *const tm_ui_style_t,
6908            rect: tm_rect_t,
6909            tab_id: u64,
6910        ) -> tm_state_graph_ui_res_t,
6911    >,
6912    pub selected_objects: ::std::option::Option<
6913        unsafe extern "C" fn(
6914            inst: *mut tm_state_graph_o,
6915            ta: *mut tm_temp_allocator_i,
6916        ) -> *const tm_tt_id_t,
6917    >,
6918}
6919#[repr(C)]
6920#[derive(Copy, Clone)]
6921pub struct tm_assimp_api {
6922    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(truth: *mut tm_the_truth_o)>,
6923    pub import: ::std::option::Option<
6924        unsafe extern "C" fn(
6925            file: *const ::std::os::raw::c_char,
6926            import: *const tm_asset_io_import,
6927        ),
6928    >,
6929    pub io_interface: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_asset_io_i>,
6930    pub migrate_from_assimp_to_dcc_asset:
6931        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
6932}
6933#[repr(C)]
6934#[derive(Copy, Clone)]
6935pub struct tm_mixer_o {
6936    _unused: [u8; 0],
6937}
6938#[repr(C)]
6939#[derive(Copy, Clone)]
6940pub struct tm_mixer_item_o {
6941    _unused: [u8; 0],
6942}
6943pub const tm_mixer_positioning_enum_TM_MIXER_POSITIONING__2D: tm_mixer_positioning_enum = 0;
6944pub const tm_mixer_positioning_enum_TM_MIXER_POSITIONING__3D: tm_mixer_positioning_enum = 1;
6945pub const tm_mixer_positioning_enum_TM_MIXER_POSITIONING__MATRIX: tm_mixer_positioning_enum = 2;
6946pub type tm_mixer_positioning_enum = ::std::os::raw::c_int;
6947#[repr(C)]
6948#[derive(Copy, Clone)]
6949pub struct tm_mixer_positioning_2d_t {
6950    pub pan: f32,
6951    pub channel_mask: u32,
6952}
6953#[repr(C)]
6954#[derive(Copy, Clone)]
6955pub struct tm_mixer_positioning_3d_t {
6956    pub pos: tm_vec3_t,
6957    pub min_distance: f32,
6958    pub max_distance: f32,
6959    pub spread: f32,
6960}
6961#[repr(C)]
6962#[derive(Copy, Clone)]
6963pub struct tm_mixer_positioning_matrix_t {
6964    pub matrix: *const f32,
6965}
6966#[repr(C)]
6967#[derive(Copy, Clone)]
6968pub struct tm_mixer_positioning_t {
6969    pub type_: tm_mixer_positioning_enum,
6970    pub _padding_142: [::std::os::raw::c_char; 4usize],
6971    pub __bindgen_anon_1: tm_mixer_positioning_t__bindgen_ty_1,
6972}
6973#[repr(C)]
6974#[derive(Copy, Clone)]
6975pub union tm_mixer_positioning_t__bindgen_ty_1 {
6976    pub pos_2d: tm_mixer_positioning_2d_t,
6977    pub pos_3d: tm_mixer_positioning_3d_t,
6978    pub pos_matrix: tm_mixer_positioning_matrix_t,
6979    _bindgen_union_align: [u64; 3usize],
6980}
6981#[repr(C)]
6982#[derive(Copy, Clone)]
6983pub struct tm_mixer_settings_t {
6984    pub world: *mut ::std::os::raw::c_void,
6985    pub volume: f32,
6986    pub pitch: f32,
6987    pub pos: tm_mixer_positioning_t,
6988}
6989pub const TM_MIXER_MAX_CHANNELS: ::std::os::raw::c_int = 8;
6990pub type _bindgen_ty_43 = ::std::os::raw::c_int;
6991#[repr(C)]
6992#[derive(Copy, Clone)]
6993pub struct tm_mixer_render_t {
6994    pub channels: [*const f32; 8usize],
6995}
6996pub const TM_MIXER_MAX_SAMPLER_USER_DATA_BYTES: ::std::os::raw::c_int = 256;
6997pub type _bindgen_ty_44 = ::std::os::raw::c_int;
6998pub type tm_mixer_sampler_f = ::std::option::Option<
6999    unsafe extern "C" fn(
7000        ud: *const ::std::os::raw::c_void,
7001        offset: f64,
7002        buffer: *mut f32,
7003        num_samples: u32,
7004        sample_frequency: f32,
7005    ) -> u32,
7006>;
7007#[repr(C)]
7008#[derive(Copy, Clone)]
7009pub struct tm_mixer_api {
7010    pub create: ::std::option::Option<
7011        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_mixer_o,
7012    >,
7013    pub destroy: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
7014    pub default_mixer: ::std::option::Option<unsafe extern "C" fn() -> *mut tm_mixer_o>,
7015    pub set_default_mixer: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
7016    pub play: ::std::option::Option<
7017        unsafe extern "C" fn(
7018            mixer: *mut tm_mixer_o,
7019            sampler: tm_mixer_sampler_f,
7020            ud: *const ::std::os::raw::c_void,
7021            ud_bytes: u32,
7022            settings: *const tm_mixer_settings_t,
7023            channel_mask: u32,
7024        ) -> *mut tm_mixer_item_o,
7025    >,
7026    pub play_sine_wave: ::std::option::Option<
7027        unsafe extern "C" fn(
7028            mixer: *mut tm_mixer_o,
7029            tone: *const tm_tone_t,
7030            settings: *const tm_mixer_settings_t,
7031        ) -> *mut tm_mixer_item_o,
7032    >,
7033    pub play_wav: ::std::option::Option<
7034        unsafe extern "C" fn(
7035            mixer: *mut tm_mixer_o,
7036            tt: *mut tm_the_truth_o,
7037            id: tm_tt_id_t,
7038            loop_: bool,
7039            settings: *const tm_mixer_settings_t,
7040        ) -> *mut tm_mixer_item_o,
7041    >,
7042    pub volume: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> f32>,
7043    pub set_volume:
7044        ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o, volume: f32)>,
7045    pub pitch: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> f32>,
7046    pub set_pitch:
7047        ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o, pitch: f32)>,
7048    pub offset: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> f64>,
7049    pub set_offset:
7050        ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o, offset: f64)>,
7051    pub positioning: ::std::option::Option<
7052        unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> *const tm_mixer_positioning_t,
7053    >,
7054    pub set_positioning: ::std::option::Option<
7055        unsafe extern "C" fn(mi: *mut tm_mixer_item_o, pos: *const tm_mixer_positioning_t),
7056    >,
7057    pub listener:
7058        ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o) -> tm_transform_t>,
7059    pub set_listener:
7060        ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o, tm: tm_transform_t)>,
7061    pub generation: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> u64>,
7062    pub is_alive: ::std::option::Option<
7063        unsafe extern "C" fn(mi: *mut tm_mixer_item_o, generation: u64) -> bool,
7064    >,
7065    pub pause: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o)>,
7066    pub unpause: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o)>,
7067    pub is_paused: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o) -> bool>,
7068    pub stop: ::std::option::Option<unsafe extern "C" fn(mi: *mut tm_mixer_item_o)>,
7069    pub stop_world: ::std::option::Option<
7070        unsafe extern "C" fn(mixer: *mut tm_mixer_o, world: *mut ::std::os::raw::c_void),
7071    >,
7072    pub pause_world: ::std::option::Option<
7073        unsafe extern "C" fn(mixer: *mut tm_mixer_o, world: *mut ::std::os::raw::c_void),
7074    >,
7075    pub unpause_world: ::std::option::Option<
7076        unsafe extern "C" fn(mixer: *mut tm_mixer_o, world: *mut ::std::os::raw::c_void),
7077    >,
7078    pub stop_all_sound: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
7079    pub commit: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
7080    pub render: ::std::option::Option<
7081        unsafe extern "C" fn(
7082            mixer: *mut tm_mixer_o,
7083            num_samples: u32,
7084            channel_mask: u32,
7085        ) -> tm_mixer_render_t,
7086    >,
7087    pub start_render_thread: ::std::option::Option<unsafe extern "C" fn(mixer: *mut tm_mixer_o)>,
7088}
7089pub const TM_SOUND_BACKEND_MAX_CHANNELS: ::std::os::raw::c_int = 8;
7090pub type _bindgen_ty_45 = ::std::os::raw::c_int;
7091#[repr(C)]
7092#[derive(Copy, Clone)]
7093pub struct tm_sound_backend_api {
7094    pub num_speakers: ::std::option::Option<unsafe extern "C" fn() -> u32>,
7095    pub channel_mask: ::std::option::Option<unsafe extern "C" fn() -> u32>,
7096    pub remaining_samples: ::std::option::Option<unsafe extern "C" fn() -> u32>,
7097    pub feed: ::std::option::Option<unsafe extern "C" fn(samples: *mut f32, num_samples: u32)>,
7098    pub wait: ::std::option::Option<unsafe extern "C" fn(seconds: f32)>,
7099    pub signal: ::std::option::Option<unsafe extern "C" fn()>,
7100}
7101pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__SOUND: ::std::os::raw::c_int = 0;
7102pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__VOLUME: ::std::os::raw::c_int = 1;
7103pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__PITCH: ::std::os::raw::c_int = 2;
7104pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__MIN_DISTANCE: ::std::os::raw::c_int = 3;
7105pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__MAX_DISTANCE: ::std::os::raw::c_int = 4;
7106pub const TM_TT_PROP__SOUND_SOURCE_COMPONENT__SPREAD: ::std::os::raw::c_int = 5;
7107pub type _bindgen_ty_46 = ::std::os::raw::c_int;
7108#[repr(C)]
7109#[derive(Copy, Clone)]
7110pub struct tm_sound_source_component_t {
7111    pub sound_id: tm_tt_id_t,
7112    pub volume_db: f32,
7113    pub pitch_octaves: f32,
7114    pub min_distance: f32,
7115    pub max_distance: f32,
7116    pub spread: f32,
7117    pub _padding_42: [::std::os::raw::c_char; 4usize],
7118    pub mixer_item: *mut tm_mixer_item_o,
7119}
7120pub const tm_speaker_TM_SPEAKER__FRONT_LEFT: tm_speaker = 1;
7121pub const tm_speaker_TM_SPEAKER__FRONT_RIGHT: tm_speaker = 2;
7122pub const tm_speaker_TM_SPEAKER__FRONT_CENTER: tm_speaker = 4;
7123pub const tm_speaker_TM_SPEAKER__LOW_FREQUENCY: tm_speaker = 8;
7124pub const tm_speaker_TM_SPEAKER__BACK_LEFT: tm_speaker = 16;
7125pub const tm_speaker_TM_SPEAKER__BACK_RIGHT: tm_speaker = 32;
7126pub const tm_speaker_TM_SPEAKER__FRONT_LEFT_OF_CENTER: tm_speaker = 64;
7127pub const tm_speaker_TM_SPEAKER__FRONT_RIGHT_OF_CENTER: tm_speaker = 128;
7128pub const tm_speaker_TM_SPEAKER__BACK_CENTER: tm_speaker = 256;
7129pub const tm_speaker_TM_SPEAKER__SIDE_LEFT: tm_speaker = 512;
7130pub const tm_speaker_TM_SPEAKER__SIDE_RIGHT: tm_speaker = 1024;
7131pub const tm_speaker_TM_SPEAKER__TOP_CENTER: tm_speaker = 2048;
7132pub const tm_speaker_TM_SPEAKER__TOP_FRONT_LEFT: tm_speaker = 4096;
7133pub const tm_speaker_TM_SPEAKER__TOP_FRONT_CENTER: tm_speaker = 8192;
7134pub const tm_speaker_TM_SPEAKER__TOP_FRONT_RIGHT: tm_speaker = 16384;
7135pub const tm_speaker_TM_SPEAKER__TOP_BACK_LEFT: tm_speaker = 32768;
7136pub const tm_speaker_TM_SPEAKER__TOP_BACK_CENTER: tm_speaker = 65536;
7137pub const tm_speaker_TM_SPEAKER__TOP_BACK_RIGHT: tm_speaker = 131072;
7138pub const tm_speaker_TM_SPEAKER__END: tm_speaker = 262144;
7139pub type tm_speaker = ::std::os::raw::c_int;
7140pub const tm_speakers_TM_SPEAKERS__MONO: tm_speakers = 4;
7141pub const tm_speakers_TM_SPEAKERS__1POINT1: tm_speakers = 12;
7142pub const tm_speakers_TM_SPEAKERS__STEREO: tm_speakers = 3;
7143pub const tm_speakers_TM_SPEAKERS__2POINT1: tm_speakers = 11;
7144pub const tm_speakers_TM_SPEAKERS__3POINT0: tm_speakers = 7;
7145pub const tm_speakers_TM_SPEAKERS__3POINT1: tm_speakers = 15;
7146pub const tm_speakers_TM_SPEAKERS__QUAD: tm_speakers = 51;
7147pub const tm_speakers_TM_SPEAKERS__SURROUND: tm_speakers = 263;
7148pub const tm_speakers_TM_SPEAKERS__5POINT0: tm_speakers = 1543;
7149pub const tm_speakers_TM_SPEAKERS__5POINT1: tm_speakers = 63;
7150pub const tm_speakers_TM_SPEAKERS__7POINT0: tm_speakers = 1591;
7151pub const tm_speakers_TM_SPEAKERS__6POINT1: tm_speakers = 319;
7152pub const tm_speakers_TM_SPEAKERS__7POINT1: tm_speakers = 255;
7153pub type tm_speakers = ::std::os::raw::c_int;
7154extern "C" {
7155    pub static tm_speakers_default_channel_mask: [u32; 9usize];
7156}
7157pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_LEFT: tm_speaker_log = 0;
7158pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_RIGHT: tm_speaker_log = 1;
7159pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_CENTER: tm_speaker_log = 2;
7160pub const tm_speaker_log_TM_SPEAKER_LOG__LOW_FREQUENCY: tm_speaker_log = 3;
7161pub const tm_speaker_log_TM_SPEAKER_LOG__BACK_LEFT: tm_speaker_log = 4;
7162pub const tm_speaker_log_TM_SPEAKER_LOG__BACK_RIGHT: tm_speaker_log = 5;
7163pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_LEFT_OF_CENTER: tm_speaker_log = 6;
7164pub const tm_speaker_log_TM_SPEAKER_LOG__FRONT_RIGHT_OF_CENTER: tm_speaker_log = 7;
7165pub const tm_speaker_log_TM_SPEAKER_LOG__BACK_CENTER: tm_speaker_log = 8;
7166pub const tm_speaker_log_TM_SPEAKER_LOG__SIDE_LEFT: tm_speaker_log = 9;
7167pub const tm_speaker_log_TM_SPEAKER_LOG__SIDE_RIGHT: tm_speaker_log = 10;
7168pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_CENTER: tm_speaker_log = 11;
7169pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_FRONT_LEFT: tm_speaker_log = 12;
7170pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_FRONT_CENTER: tm_speaker_log = 13;
7171pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_FRONT_RIGHT: tm_speaker_log = 14;
7172pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_BACK_LEFT: tm_speaker_log = 15;
7173pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_BACK_CENTER: tm_speaker_log = 16;
7174pub const tm_speaker_log_TM_SPEAKER_LOG__TOP_BACK_RIGHT: tm_speaker_log = 17;
7175pub const tm_speaker_log_TM_SPEAKER_LOG__END: tm_speaker_log = 18;
7176pub type tm_speaker_log = ::std::os::raw::c_int;
7177#[repr(C)]
7178#[derive(Copy, Clone)]
7179pub struct tm_tone_t {
7180    pub frequency: f32,
7181    pub attack_time: f32,
7182    pub decay_time: f32,
7183    pub sustain_time: f32,
7184    pub release_time: f32,
7185    pub sustain_level: f32,
7186}
7187#[repr(C)]
7188#[derive(Copy, Clone)]
7189pub struct tm_tone_generator_api {
7190    pub sample_sine_wave: ::std::option::Option<
7191        unsafe extern "C" fn(
7192            tone: *const tm_tone_t,
7193            offset: f64,
7194            buffer: *mut f32,
7195            num_samples: u32,
7196            buffer_frequency: f32,
7197        ) -> u32,
7198    >,
7199}
7200pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__NONE: tm_tt_value__wav__format = 0;
7201pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__UNSIGNED_8BIT_PCM:
7202    tm_tt_value__wav__format = 1;
7203pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__SIGNED_16BIT_PCM:
7204    tm_tt_value__wav__format = 2;
7205pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__SIGNED_24BIT_PCM:
7206    tm_tt_value__wav__format = 3;
7207pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__32BIT_FLOAT_PCM:
7208    tm_tt_value__wav__format = 4;
7209pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__SIGNED_32BIT_PCM:
7210    tm_tt_value__wav__format = 5;
7211pub const tm_tt_value__wav__format_TM_TT_VALUE__WAV__FORMAT__16BIT_FLOAT_PCM:
7212    tm_tt_value__wav__format = 6;
7213pub type tm_tt_value__wav__format = ::std::os::raw::c_int;
7214pub const TM_TT_PROP__WAV__FREQUENCY: ::std::os::raw::c_int = 0;
7215pub const TM_TT_PROP__WAV__NUM_CHANNELS: ::std::os::raw::c_int = 1;
7216pub const TM_TT_PROP__WAV__FORMAT: ::std::os::raw::c_int = 2;
7217pub const TM_TT_PROP__WAV__CHANNEL_MASK: ::std::os::raw::c_int = 3;
7218pub const TM_TT_PROP__WAV__DATA: ::std::os::raw::c_int = 4;
7219pub type _bindgen_ty_47 = ::std::os::raw::c_int;
7220#[repr(C)]
7221#[derive(Copy, Clone)]
7222pub struct tm_wav_t {
7223    pub frequency: u32,
7224    pub num_channels: u32,
7225    pub format: tm_tt_value__wav__format,
7226    pub channel_mask: u32,
7227    pub data: *const ::std::os::raw::c_void,
7228    pub data_bytes: u64,
7229    pub num_samples: u64,
7230    pub loop_: bool,
7231    pub _padding_41: [::std::os::raw::c_char; 7usize],
7232}
7233#[repr(C)]
7234#[derive(Copy, Clone)]
7235pub struct tm_wav_api {
7236    pub read: ::std::option::Option<
7237        unsafe extern "C" fn(tt: *mut tm_the_truth_o, id: tm_tt_id_t) -> tm_wav_t,
7238    >,
7239    pub sample: ::std::option::Option<
7240        unsafe extern "C" fn(
7241            wav: *const tm_wav_t,
7242            offset: f64,
7243            buffer: *mut f32,
7244            num_samples: u32,
7245            sample_frequency: f32,
7246        ) -> u32,
7247    >,
7248    pub read_samples: ::std::option::Option<
7249        unsafe extern "C" fn(wav: *const tm_wav_t, offset: u64, buffer: *mut f32, num_samples: u32),
7250    >,
7251}
7252#[repr(C)]
7253#[derive(Copy, Clone)]
7254pub struct tm_cache_manager_o {
7255    _unused: [u8; 0],
7256}
7257pub const tm_cache_invalidation_type_TM_CACHE_INVALIDATION_TYPE_UPDATE: tm_cache_invalidation_type =
7258    0;
7259pub const tm_cache_invalidation_type_TM_CACHE_INVALIDATION_TYPE_REBUILD:
7260    tm_cache_invalidation_type = 1;
7261pub type tm_cache_invalidation_type = ::std::os::raw::c_int;
7262pub type tm_cache_invalidation_callback = ::std::option::Option<
7263    unsafe extern "C" fn(
7264        tt: *mut tm_the_truth_o,
7265        type_: tm_cache_invalidation_type,
7266        user_data: *mut ::std::os::raw::c_void,
7267        tag: u64,
7268    ),
7269>;
7270#[repr(C)]
7271#[derive(Copy, Clone)]
7272pub struct tm_cache_manager_api {
7273    pub init: ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i)>,
7274    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
7275    pub register_tag: ::std::option::Option<
7276        unsafe extern "C" fn(
7277            tag: u64,
7278            display_name: *const ::std::os::raw::c_char,
7279            callback: tm_cache_invalidation_callback,
7280        ),
7281    >,
7282    pub unregister_tag: ::std::option::Option<unsafe extern "C" fn(tag: u64)>,
7283    pub update_tag: ::std::option::Option<
7284        unsafe extern "C" fn(
7285            tag: u64,
7286            tt: *mut tm_the_truth_o,
7287            user_data: *mut ::std::os::raw::c_void,
7288        ),
7289    >,
7290    pub rebuild_tag: ::std::option::Option<
7291        unsafe extern "C" fn(
7292            tag: u64,
7293            tt: *mut tm_the_truth_o,
7294            user_data: *mut ::std::os::raw::c_void,
7295        ),
7296    >,
7297    pub ui: ::std::option::Option<
7298        unsafe extern "C" fn(
7299            tt: *mut tm_the_truth_o,
7300            ui: *mut tm_ui_o,
7301            style: *const tm_ui_style_t,
7302            rect: tm_rect_t,
7303        ),
7304    >,
7305}
7306#[repr(C)]
7307#[derive(Copy, Clone)]
7308pub struct tm_collaboration_discord_o {
7309    _unused: [u8; 0],
7310}
7311#[repr(C)]
7312#[derive(Copy, Clone)]
7313pub struct tm_discord_friend_t {
7314    pub user_id: u64,
7315    pub username: *const ::std::os::raw::c_char,
7316}
7317#[repr(C)]
7318#[derive(Copy, Clone)]
7319pub struct tm_collaboration_discord_api {
7320    pub create: ::std::option::Option<
7321        unsafe extern "C" fn(
7322            coll: *mut tm_collaboration_o,
7323            a: *mut tm_allocator_i,
7324        ) -> *mut tm_collaboration_discord_o,
7325    >,
7326    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o)>,
7327    pub check_available:
7328        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o) -> bool>,
7329    pub update: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o)>,
7330    pub host: ::std::option::Option<
7331        unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o, use_p2p_upnp: bool),
7332    >,
7333    pub invite: ::std::option::Option<
7334        unsafe extern "C" fn(inst: *mut tm_collaboration_discord_o, user_id: u64),
7335    >,
7336    pub username: ::std::option::Option<
7337        unsafe extern "C" fn(
7338            inst: *mut tm_collaboration_discord_o,
7339        ) -> *const ::std::os::raw::c_char,
7340    >,
7341    pub get_friends_with_the_machinery_running: ::std::option::Option<
7342        unsafe extern "C" fn(
7343            inst: *mut tm_collaboration_discord_o,
7344            ta: *mut tm_temp_allocator_i,
7345            num: *mut u32,
7346        ) -> *mut tm_discord_friend_t,
7347    >,
7348}
7349#[repr(C)]
7350#[derive(Copy, Clone)]
7351pub struct tm_creation_graph_output_node_type_t {
7352    pub node_name_hash: u64,
7353    pub display_name: *const ::std::os::raw::c_char,
7354    pub asset_tag: *const tm_asset_tag_t,
7355    pub size: u64,
7356    pub write_wire: ::std::option::Option<
7357        unsafe extern "C" fn(
7358            ctx: *mut tm_creation_graph_interpreter_context_t,
7359            wire: u32,
7360            data: *const ::std::os::raw::c_void,
7361        ),
7362    >,
7363}
7364#[repr(C)]
7365#[derive(Copy, Clone)]
7366pub struct tm_creation_graph_instance_t {
7367    pub graph: tm_tt_id_t,
7368    pub version: u64,
7369    pub interpreter: *mut tm_creation_graph_interpreter_o,
7370    pub data: *mut tm_creation_graph_instance_data_o,
7371    pub output: *mut tm_creation_graph_output_data_t,
7372}
7373#[repr(C)]
7374#[derive(Copy, Clone)]
7375pub struct tm_creation_graph_output_data_t {
7376    pub allocator: *mut tm_allocator_i,
7377    pub output_node_types: *mut tm_creation_graph_output_node_type_t,
7378    pub output_data: *mut *mut u8,
7379    pub consumer: tm_creation_graph_instance_t,
7380    pub dirty: bool,
7381    pub _padding_48: [::std::os::raw::c_char; 7usize],
7382}
7383#[repr(C)]
7384#[derive(Copy, Clone)]
7385pub struct tm_creation_graph_node_cache_t {
7386    _unused: [u8; 0],
7387}
7388#[repr(C)]
7389#[derive(Copy, Clone)]
7390pub struct tm_creation_graph_draw_call_data_t {
7391    _unused: [u8; 0],
7392}
7393#[repr(C)]
7394#[derive(Copy, Clone)]
7395pub struct tm_creation_graph_bounding_volume_data_t {
7396    _unused: [u8; 0],
7397}
7398#[repr(C)]
7399#[derive(Copy, Clone)]
7400pub struct tm_creation_graph_image_data_t {
7401    _unused: [u8; 0],
7402}
7403#[repr(C)]
7404#[derive(Copy, Clone)]
7405pub struct tm_renderer_resource_command_buffer_o {
7406    _unused: [u8; 0],
7407}
7408#[repr(C)]
7409#[derive(Copy, Clone)]
7410pub struct tm_creation_graph_interpreter_o {
7411    _unused: [u8; 0],
7412}
7413#[repr(C)]
7414#[derive(Copy, Clone)]
7415pub struct tm_shader_system_context_o {
7416    _unused: [u8; 0],
7417}
7418pub type tm_compile_data_to_wire_f = ::std::option::Option<
7419    unsafe extern "C" fn(
7420        rc: *mut tm_creation_graph_instance_t,
7421        wire: u32,
7422        tt: *const tm_the_truth_o,
7423        data_id: tm_tt_id_t,
7424        to_type_hash: u64,
7425    ) -> bool,
7426>;
7427pub const TM_TT_PROP__CREATION_GRAPH__GRAPH: ::std::os::raw::c_int = 0;
7428pub type _bindgen_ty_48 = ::std::os::raw::c_int;
7429pub const TM_TT_PROP__CREATION_GRAPH__RESOURCE_REFERENCE__CREATION_GRAPH: ::std::os::raw::c_int = 0;
7430pub const TM_TT_PROP__CREATION_GRAPH__RESOURCE_REFERENCE__OUTPUT_NODE_TYPE_HASH:
7431    ::std::os::raw::c_int = 1;
7432pub const TM_TT_PROP__CREATION_GRAPH__RESOURCE_REFERENCE__OUTPUT_NODE_NAME: ::std::os::raw::c_int =
7433    2;
7434pub type _bindgen_ty_49 = ::std::os::raw::c_int;
7435#[repr(C)]
7436#[derive(Copy, Clone)]
7437pub struct tm_creation_graph_destroy_instance_context_t {
7438    pub manager_shutdown: bool,
7439}
7440#[repr(C)]
7441#[derive(Copy, Clone)]
7442pub struct tm_creation_graph_tick_context_t {
7443    pub dt: f32,
7444    pub _padding_85: [::std::os::raw::c_char; 4usize],
7445    pub shader_context: *mut tm_shader_system_context_o,
7446}
7447#[repr(C)]
7448#[derive(Copy, Clone)]
7449pub struct tm_creation_graph_viewport_interact_context_t {
7450    pub viewport: tm_rect_t,
7451    pub transform: *const tm_transform_t,
7452    pub input: *const tm_ui_input_state_t,
7453    pub camera: *const tm_camera_t,
7454    pub render_graph: *const tm_render_graph_o,
7455    pub shader_context: *const tm_shader_system_context_o,
7456    pub undo_stack: *mut tm_undo_stack_i,
7457}
7458#[repr(C)]
7459#[derive(Copy, Clone)]
7460pub struct tm_creation_graph_output_t {
7461    pub version: u64,
7462    pub num_output_objects: u32,
7463    pub _padding_122: [::std::os::raw::c_char; 4usize],
7464    pub output: *const ::std::os::raw::c_void,
7465}
7466pub const TM_CREATION_GRAPH_MAX_OUTPUT_NODE_TYPES: ::std::os::raw::c_int = 32;
7467pub type _bindgen_ty_50 = ::std::os::raw::c_int;
7468#[repr(C)]
7469#[derive(Copy, Clone)]
7470pub struct tm_creation_graph_all_outputs_t {
7471    pub version: u64,
7472    pub num_output_node_types: u32,
7473    pub _padding_136: [::std::os::raw::c_char; 4usize],
7474    pub output_node_type_hashes: [u64; 32usize],
7475    pub output_node_type_display_names: [*const ::std::os::raw::c_char; 32usize],
7476}
7477#[repr(C)]
7478#[derive(Copy, Clone)]
7479pub struct tm_creation_graph_blackboard_value_t {
7480    _unused: [u8; 0],
7481}
7482pub const TM_CREATION_GRAPH_PRE_CMD: ::std::os::raw::c_int = 0;
7483pub const TM_CREATION_GRAPH_POST_CMD: ::std::os::raw::c_int = 1;
7484pub const TM_CREATION_GRAPH_MAX_RESOURCE_BUFFERS: ::std::os::raw::c_int = 2;
7485pub type _bindgen_ty_51 = ::std::os::raw::c_int;
7486#[repr(C)]
7487#[derive(Copy, Clone)]
7488pub struct tm_creation_graph_task_t {
7489    pub f: ::std::option::Option<unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, id: u64)>,
7490    pub data: *mut ::std::os::raw::c_void,
7491    pub debug_name: *const ::std::os::raw::c_char,
7492}
7493#[repr(C)]
7494#[derive(Copy, Clone)]
7495pub struct tm_creation_graph_context_t {
7496    pub rb: *mut tm_renderer_backend_i,
7497    pub device_affinity_mask: u32,
7498    pub _padding_167: [::std::os::raw::c_char; 4usize],
7499    pub ta: *mut tm_temp_allocator_i,
7500    pub requested_tasks: *mut *mut tm_creation_graph_task_t,
7501    pub res_buf: [*mut tm_renderer_resource_command_buffer_o; 2usize],
7502    pub cmd_buf: *mut tm_renderer_command_buffer_o,
7503    pub event_context: *mut ::std::os::raw::c_void,
7504    pub entity_id: u64,
7505    pub entity_ctx: *mut tm_entity_context_o,
7506    pub invalidate_node: tm_tt_id_t,
7507    pub invalidate_cache_tag: u64,
7508    pub shader_repository: *mut tm_shader_repository_o,
7509    pub event_id: u64,
7510    pub tt: *mut tm_the_truth_o,
7511    pub shader_context: *mut tm_shader_system_context_o,
7512}
7513#[repr(C)]
7514#[derive(Copy, Clone)]
7515pub struct tm_creation_graph_o {
7516    _unused: [u8; 0],
7517}
7518#[repr(C)]
7519#[derive(Copy, Clone)]
7520pub struct tm_cached_node_result_t {
7521    pub object: tm_tt_id_t,
7522    pub validity_hash: u64,
7523}
7524#[repr(C)]
7525#[derive(Copy, Clone)]
7526pub struct tm_creation_graph_api {
7527    pub create_manager: ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
7528    pub update_manager: ::std::option::Option<unsafe extern "C" fn()>,
7529    pub destroy_manager: ::std::option::Option<unsafe extern "C" fn()>,
7530    pub set_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
7531    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
7532    pub register_graph_nodes:
7533        ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>,
7534    pub asset_browser_create_interface:
7535        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_asset_browser_create_asset_i>,
7536    pub create_instance: ::std::option::Option<
7537        unsafe extern "C" fn(
7538            asset: tm_tt_id_t,
7539            context: *mut tm_creation_graph_context_t,
7540        ) -> tm_creation_graph_instance_t,
7541    >,
7542    pub destroy_instance: ::std::option::Option<
7543        unsafe extern "C" fn(
7544            instance: *mut tm_creation_graph_instance_t,
7545            context: *mut tm_creation_graph_context_t,
7546        ),
7547    >,
7548    pub invalidate: ::std::option::Option<unsafe extern "C" fn(asset: tm_tt_id_t)>,
7549    pub write_blackboard: ::std::option::Option<
7550        unsafe extern "C" fn(
7551            asset: tm_tt_id_t,
7552            key_name: u64,
7553            value: *const tm_creation_graph_blackboard_value_t,
7554        ),
7555    >,
7556    pub read_blackboard: ::std::option::Option<
7557        unsafe extern "C" fn(
7558            asset: tm_tt_id_t,
7559            key_name: u64,
7560            value: *mut tm_creation_graph_blackboard_value_t,
7561        ) -> bool,
7562    >,
7563    pub remove_blackboard:
7564        ::std::option::Option<unsafe extern "C" fn(asset: tm_tt_id_t, key_name: u64)>,
7565    pub lock_resource_cache: ::std::option::Option<
7566        unsafe extern "C" fn(
7567            graph_id: tm_tt_id_t,
7568            node_id: tm_tt_id_t,
7569        ) -> *mut tm_creation_graph_node_cache_t,
7570    >,
7571    pub unlock_resource_cache:
7572        ::std::option::Option<unsafe extern "C" fn(cache: *mut tm_creation_graph_node_cache_t)>,
7573    pub add_listener:
7574        ::std::option::Option<unsafe extern "C" fn(asset: tm_tt_id_t, object: tm_tt_id_t)>,
7575    pub tick_queue: ::std::option::Option<
7576        unsafe extern "C" fn(
7577            instance: *mut tm_creation_graph_instance_t,
7578            dt: f32,
7579            context: *mut tm_creation_graph_context_t,
7580        ),
7581    >,
7582    pub has_event: ::std::option::Option<
7583        unsafe extern "C" fn(instance: *mut tm_creation_graph_instance_t, event_id: u64) -> bool,
7584    >,
7585    pub trigger_event: ::std::option::Option<
7586        unsafe extern "C" fn(
7587            instance: *mut tm_creation_graph_instance_t,
7588            event_id: u64,
7589            context: *mut tm_creation_graph_context_t,
7590        ),
7591    >,
7592    pub update_interface: ::std::option::Option<
7593        unsafe extern "C" fn(
7594            instance: *mut tm_creation_graph_instance_t,
7595            event_id: u64,
7596            context: *mut tm_creation_graph_context_t,
7597        ),
7598    >,
7599    pub lookup_cached_node_result: ::std::option::Option<
7600        unsafe extern "C" fn(graph_id: tm_tt_id_t, node_id: tm_tt_id_t) -> tm_cached_node_result_t,
7601    >,
7602    pub set_cached_node_result: ::std::option::Option<
7603        unsafe extern "C" fn(
7604            graph_id: tm_tt_id_t,
7605            node_id: tm_tt_id_t,
7606            validity_hash: u64,
7607            object: tm_tt_id_t,
7608        ),
7609    >,
7610    pub output: ::std::option::Option<
7611        unsafe extern "C" fn(
7612            instance: *mut tm_creation_graph_instance_t,
7613            node_name_hash: u64,
7614            context: *mut tm_creation_graph_context_t,
7615            output_node_type: *mut *const tm_creation_graph_output_node_type_t,
7616        ) -> tm_creation_graph_output_t,
7617    >,
7618    pub all_outputs: ::std::option::Option<
7619        unsafe extern "C" fn(
7620            instance: *mut tm_creation_graph_instance_t,
7621            context: *mut tm_creation_graph_context_t,
7622        ) -> tm_creation_graph_all_outputs_t,
7623    >,
7624}
7625#[repr(C)]
7626#[derive(Copy, Clone)]
7627pub struct tm_creation_graph_interpreter_wire_content_t {
7628    pub type_info: u64,
7629    pub n: u32,
7630    pub size: u32,
7631    pub data: *mut ::std::os::raw::c_void,
7632}
7633#[repr(C)]
7634#[derive(Copy, Clone)]
7635pub struct tm_creation_graph_interpreter_context_t {
7636    pub instance: *mut tm_creation_graph_instance_t,
7637    pub node: u32,
7638    pub _padding_54: [::std::os::raw::c_char; 4usize],
7639    pub graph_id: tm_tt_id_t,
7640    pub node_id: tm_tt_id_t,
7641    pub node_type: *const tm_graph_node_type_i,
7642    pub wires: *const u32,
7643}
7644pub type tm_creation_graph_interpreter_run_node_f =
7645    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_creation_graph_interpreter_context_t)>;
7646#[repr(C)]
7647#[derive(Copy, Clone)]
7648pub struct tm_creation_graph_interpreter_node_t {
7649    pub f: tm_creation_graph_interpreter_run_node_f,
7650    pub wires_index: u32,
7651    pub _padding_91: [::std::os::raw::c_char; 4usize],
7652    pub node_type: *const tm_graph_node_type_i,
7653    pub graph_id: tm_tt_id_t,
7654    pub node_id: tm_tt_id_t,
7655    pub dependencies_index: u32,
7656    pub _padding_108: [::std::os::raw::c_char; 4usize],
7657}
7658#[repr(C)]
7659#[derive(Copy, Clone)]
7660pub struct tm_creation_graph_interpreter_api {
7661    pub create_graph_interpreter: ::std::option::Option<
7662        unsafe extern "C" fn(
7663            allocator: *mut tm_allocator_i,
7664        ) -> *mut tm_creation_graph_interpreter_o,
7665    >,
7666    pub destroy_graph_interpreter:
7667        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_creation_graph_interpreter_o)>,
7668    pub set_graph: ::std::option::Option<
7669        unsafe extern "C" fn(
7670            gr: *mut tm_creation_graph_interpreter_o,
7671            nodes: *const tm_creation_graph_interpreter_node_t,
7672            num_nodes: u32,
7673            num_wires: u32,
7674            node_wires: *mut u32,
7675            num_node_wires: u32,
7676            dependencies: *mut u32,
7677            num_dependencies: u32,
7678        ),
7679    >,
7680    pub default_instance: ::std::option::Option<
7681        unsafe extern "C" fn(
7682            gr: *mut tm_creation_graph_interpreter_o,
7683        ) -> tm_creation_graph_instance_t,
7684    >,
7685    pub active_instances: ::std::option::Option<
7686        unsafe extern "C" fn(
7687            gr: *mut tm_creation_graph_interpreter_o,
7688            count: *mut u32,
7689        ) -> *mut *mut tm_creation_graph_instance_data_o,
7690    >,
7691    pub create_instance: ::std::option::Option<
7692        unsafe extern "C" fn(
7693            gr: *mut tm_creation_graph_interpreter_o,
7694        ) -> tm_creation_graph_instance_t,
7695    >,
7696    pub destroy_instance:
7697        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t)>,
7698    pub run_node_at_index: ::std::option::Option<
7699        unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, node: u32),
7700    >,
7701    pub add_event_node: ::std::option::Option<
7702        unsafe extern "C" fn(gr: *mut tm_creation_graph_interpreter_o, e: u64, node: u32),
7703    >,
7704    pub has_event: ::std::option::Option<
7705        unsafe extern "C" fn(gr: *mut tm_creation_graph_interpreter_o, e: u64) -> bool,
7706    >,
7707    pub trigger_event:
7708        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, e: u64)>,
7709    pub trigger_wire: ::std::option::Option<
7710        unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, wire: u32),
7711    >,
7712    pub queue_wire: ::std::option::Option<
7713        unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, wire: u32, delay: f32),
7714    >,
7715    pub tick_queue:
7716        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t, dt: f32)>,
7717    pub get_node_run_context: ::std::option::Option<
7718        unsafe extern "C" fn(
7719            inst: *mut tm_creation_graph_instance_t,
7720            node: u32,
7721        ) -> tm_creation_graph_interpreter_context_t,
7722    >,
7723    pub read_wire: ::std::option::Option<
7724        unsafe extern "C" fn(
7725            inst: *mut tm_creation_graph_instance_t,
7726            wire: u32,
7727        ) -> tm_creation_graph_interpreter_wire_content_t,
7728    >,
7729    pub read_wires: ::std::option::Option<
7730        unsafe extern "C" fn(
7731            inst: *mut tm_creation_graph_instance_t,
7732            content: *mut tm_creation_graph_interpreter_wire_content_t,
7733            wires: *const u32,
7734            n: u32,
7735        ),
7736    >,
7737    pub read_wires_indirect: ::std::option::Option<
7738        unsafe extern "C" fn(
7739            inst: *mut tm_creation_graph_instance_t,
7740            content: *mut *mut tm_creation_graph_interpreter_wire_content_t,
7741            wires: *const u32,
7742            n: u32,
7743        ),
7744    >,
7745    pub write_wire: ::std::option::Option<
7746        unsafe extern "C" fn(
7747            inst: *mut tm_creation_graph_instance_t,
7748            wire: u32,
7749            type_info: u64,
7750            n: u32,
7751            size: u32,
7752        ) -> *mut ::std::os::raw::c_void,
7753    >,
7754    pub read_variable: ::std::option::Option<
7755        unsafe extern "C" fn(
7756            inst: *mut tm_creation_graph_instance_t,
7757            variable: u64,
7758        ) -> tm_creation_graph_interpreter_wire_content_t,
7759    >,
7760    pub write_variable: ::std::option::Option<
7761        unsafe extern "C" fn(
7762            inst: *mut tm_creation_graph_instance_t,
7763            variable: u64,
7764            n: u32,
7765            size: u32,
7766        ) -> *mut ::std::os::raw::c_void,
7767    >,
7768    pub random_float:
7769        ::std::option::Option<unsafe extern "C" fn(rc: *mut tm_creation_graph_instance_t) -> f32>,
7770}
7771#[repr(C)]
7772#[derive(Copy, Clone)]
7773pub struct tm_shader_repository_o {
7774    _unused: [u8; 0],
7775}
7776#[repr(C)]
7777#[derive(Copy, Clone)]
7778pub struct tm_creation_graph_runtime_data_t {
7779    _unused: [u8; 0],
7780}
7781#[repr(C)]
7782#[derive(Copy, Clone)]
7783pub struct tm_graph_aspect_i {
7784    pub node_interface_name: *const ::std::os::raw::c_char,
7785    pub io_type_interface_name: *const ::std::os::raw::c_char,
7786    pub graph_object: ::std::option::Option<
7787        unsafe extern "C" fn(tt: *const tm_the_truth_o, root_object: tm_tt_id_t) -> tm_tt_id_t,
7788    >,
7789    pub subgraph_type_hash: u64,
7790}
7791#[repr(C)]
7792#[derive(Copy, Clone)]
7793pub struct tm_graph_io_type_t {
7794    pub type_hash: u64,
7795    pub display_name: *const ::std::os::raw::c_char,
7796}
7797pub const TM_TT_PROP__GRAPH__NODES: ::std::os::raw::c_int = 0;
7798pub const TM_TT_PROP__GRAPH__CONNECTIONS: ::std::os::raw::c_int = 1;
7799pub const TM_TT_PROP__GRAPH__DATA: ::std::os::raw::c_int = 2;
7800pub const TM_TT_PROP__GRAPH__COMMENTS: ::std::os::raw::c_int = 3;
7801pub const TM_TT_PROP__GRAPH__INTERFACE: ::std::os::raw::c_int = 4;
7802pub type _bindgen_ty_52 = ::std::os::raw::c_int;
7803pub const TM_TT_PROP__GRAPH_NODE__TYPE: ::std::os::raw::c_int = 0;
7804pub const TM_TT_PROP__GRAPH_NODE__LABEL: ::std::os::raw::c_int = 1;
7805pub const TM_TT_PROP__GRAPH_NODE__POSITION_X: ::std::os::raw::c_int = 2;
7806pub const TM_TT_PROP__GRAPH_NODE__POSITION_Y: ::std::os::raw::c_int = 3;
7807pub const TM_TT_PROP__GRAPH_NODE__WIDTH: ::std::os::raw::c_int = 4;
7808pub const TM_TT_PROP__GRAPH_NODE__SETTINGS: ::std::os::raw::c_int = 5;
7809pub type _bindgen_ty_53 = ::std::os::raw::c_int;
7810pub const TM_TT_PROP__GRAPH_CONNECTION__FROM_NODE: ::std::os::raw::c_int = 0;
7811pub const TM_TT_PROP__GRAPH_CONNECTION__TO_NODE: ::std::os::raw::c_int = 1;
7812pub const TM_TT_PROP__GRAPH_CONNECTION__FROM_CONNECTOR_HASH: ::std::os::raw::c_int = 2;
7813pub const TM_TT_PROP__GRAPH_CONNECTION__TO_CONNECTOR_HASH: ::std::os::raw::c_int = 3;
7814pub type _bindgen_ty_54 = ::std::os::raw::c_int;
7815pub const TM_TT_PROP__GRAPH_DATA__TO_NODE: ::std::os::raw::c_int = 0;
7816pub const TM_TT_PROP__GRAPH_DATA__TO_CONNECTOR_HASH: ::std::os::raw::c_int = 1;
7817pub const TM_TT_PROP__GRAPH_DATA__DATA: ::std::os::raw::c_int = 2;
7818pub type _bindgen_ty_55 = ::std::os::raw::c_int;
7819pub const TM_TT_PROP__GRAPH_COMMENT__TEXT: ::std::os::raw::c_int = 0;
7820pub const TM_TT_PROP__GRAPH_COMMENT__POSITION_X: ::std::os::raw::c_int = 1;
7821pub const TM_TT_PROP__GRAPH_COMMENT__POSITION_Y: ::std::os::raw::c_int = 2;
7822pub const TM_TT_PROP__GRAPH_COMMENT__FONT_SCALE: ::std::os::raw::c_int = 3;
7823pub const TM_TT_PROP__GRAPH_COMMENT__COLOR: ::std::os::raw::c_int = 4;
7824pub type _bindgen_ty_56 = ::std::os::raw::c_int;
7825pub const TM_TT_PROP__GRAPH_INTERFACE__INPUTS: ::std::os::raw::c_int = 0;
7826pub const TM_TT_PROP__GRAPH_INTERFACE__OUTPUTS: ::std::os::raw::c_int = 1;
7827pub const TM_TT_PROP__GRAPH_INTERFACE__LAST_ID: ::std::os::raw::c_int = 2;
7828pub const TM_TT_PROP__GRAPH_INTERFACE__CACHED_NODE_RESULT: ::std::os::raw::c_int = 3;
7829pub type _bindgen_ty_57 = ::std::os::raw::c_int;
7830pub const TM_TT_PROP__GRAPH_INPUT__DISPLAY_NAME: ::std::os::raw::c_int = 0;
7831pub const TM_TT_PROP__GRAPH_INPUT__ID: ::std::os::raw::c_int = 1;
7832pub const TM_TT_PROP__GRAPH_INPUT__TYPE_HASH: ::std::os::raw::c_int = 2;
7833pub const TM_TT_PROP__GRAPH_INPUT__VALUE_SET_BY_USER: ::std::os::raw::c_int = 3;
7834pub const TM_TT_PROP__GRAPH_INPUT__VALUE: ::std::os::raw::c_int = 4;
7835pub const TM_TT_PROP__GRAPH_INPUT__TOOLTIP: ::std::os::raw::c_int = 5;
7836pub const TM_TT_PROP__GRAPH_INPUT__PUBLIC: ::std::os::raw::c_int = 6;
7837pub type _bindgen_ty_58 = ::std::os::raw::c_int;
7838pub const TM_TT_PROP__GRAPH_OUTPUT__DISPLAY_NAME: ::std::os::raw::c_int = 0;
7839pub const TM_TT_PROP__GRAPH_OUTPUT__ID: ::std::os::raw::c_int = 1;
7840pub const TM_TT_PROP__GRAPH_OUTPUT__TYPE_HASH: ::std::os::raw::c_int = 2;
7841pub type _bindgen_ty_59 = ::std::os::raw::c_int;
7842pub const TM_TT_PROP__GRAPH_CACHED_NODE_RESULT__NODE: ::std::os::raw::c_int = 0;
7843pub const TM_TT_PROP__GRAPH_CACHED_NODE_RESULT__VALIDITY_HASH: ::std::os::raw::c_int = 1;
7844pub const TM_TT_PROP__GRAPH_CACHED_NODE_RESULT__OBJECT: ::std::os::raw::c_int = 2;
7845pub type _bindgen_ty_60 = ::std::os::raw::c_int;
7846pub const TM_TT_PROP__GRAPH_SETTINGS__GRAPH_UUID_A: ::std::os::raw::c_int = 0;
7847pub const TM_TT_PROP__GRAPH_SETTINGS__VIEW_POSITION: ::std::os::raw::c_int = 1;
7848pub const TM_TT_PROP__GRAPH_SETTINGS__VIEW_SCALE: ::std::os::raw::c_int = 2;
7849pub const TM_TT_PROP__GRAPH_SETTINGS__GRID_SNAPPING: ::std::os::raw::c_int = 3;
7850pub const TM_TT_PROP__GRAPH_SETTINGS__GRID_SIZE: ::std::os::raw::c_int = 4;
7851pub type _bindgen_ty_61 = ::std::os::raw::c_int;
7852pub const TM_GRAPH_MAX_CONNECTORS: ::std::os::raw::c_int = 16;
7853pub type _bindgen_ty_62 = ::std::os::raw::c_int;
7854#[repr(C)]
7855#[derive(Copy, Clone)]
7856pub struct tm_graph_connector_t {
7857    pub name: *const ::std::os::raw::c_char,
7858    pub type_hash: u64,
7859    pub edit_type_hash: u64,
7860    pub display_name: *const ::std::os::raw::c_char,
7861    pub optional: bool,
7862    pub _padding_227: [::std::os::raw::c_char; 7usize],
7863    pub tooltip: *mut ::std::os::raw::c_char,
7864    pub hidden: bool,
7865    pub _padding_236: [::std::os::raw::c_char; 7usize],
7866}
7867#[repr(C)]
7868#[derive(Copy, Clone)]
7869pub struct tm_graph_node_connectors_t {
7870    pub in_: [tm_graph_connector_t; 16usize],
7871    pub out: [tm_graph_connector_t; 16usize],
7872    pub num_in: u32,
7873    pub num_out: u32,
7874}
7875#[repr(C)]
7876#[derive(Copy, Clone)]
7877pub struct tm_graph_node_type_i {
7878    pub name: *const ::std::os::raw::c_char,
7879    pub display_name: *const ::std::os::raw::c_char,
7880    pub category: *const ::std::os::raw::c_char,
7881    pub static_connectors: tm_graph_node_connectors_t,
7882    pub settings_type_hash: u64,
7883    pub cache_tag: u64,
7884    pub dynamic_connectors: ::std::option::Option<
7885        unsafe extern "C" fn(
7886            tt: *const tm_the_truth_o,
7887            graph_id: tm_tt_id_t,
7888            node_data: *const tm_tt_id_t,
7889            node_settings: tm_tt_id_t,
7890            connectors: *mut tm_graph_node_connectors_t,
7891        ),
7892    >,
7893    pub render_background_callback: ::std::option::Option<
7894        unsafe extern "C" fn(
7895            nt: *const tm_graph_node_type_i,
7896            bg_rect: tm_rect_t,
7897            title_rect: tm_rect_t,
7898            title_bg_color: tm_color_srgb_t,
7899            ui: *mut tm_ui_o,
7900            uistyle: *const tm_ui_style_t,
7901            graph_scale: f32,
7902            vbuffer: *mut tm_draw2d_vbuffer_t,
7903            ibuffer: *mut tm_draw2d_ibuffer_t,
7904        ),
7905    >,
7906}
7907#[repr(C)]
7908#[derive(Copy, Clone)]
7909pub struct tm_graph_node_cache_invalidation_context_t {
7910    pub graph_id: tm_tt_id_t,
7911    pub node_id: tm_tt_id_t,
7912}
7913#[repr(C)]
7914#[derive(Copy, Clone)]
7915pub struct tm_graph_drag_and_drop_i {
7916    pub type_name: *const ::std::os::raw::c_char,
7917    pub can_create_from: ::std::option::Option<
7918        unsafe extern "C" fn(
7919            tt: *mut tm_the_truth_o,
7920            graph_id: tm_tt_id_t,
7921            dragged_object: tm_tt_id_t,
7922        ) -> bool,
7923    >,
7924    pub setup_graph_node_from_dragged_object: ::std::option::Option<
7925        unsafe extern "C" fn(
7926            tt: *mut tm_the_truth_o,
7927            graph_id: tm_tt_id_t,
7928            node_id: tm_tt_id_t,
7929            dragged_object: tm_tt_id_t,
7930            undo_scope: tm_tt_undo_scope_t,
7931        ),
7932    >,
7933}
7934#[repr(C)]
7935#[derive(Copy, Clone)]
7936pub struct tm_graph_ui_res_t {
7937    pub focus_changed: bool,
7938    pub selection_changed: bool,
7939    pub _padding_338: [::std::os::raw::c_char; 6usize],
7940    pub focus: tm_tt_id_t,
7941}
7942#[repr(C)]
7943#[derive(Copy, Clone)]
7944pub struct tm_graph_o {
7945    _unused: [u8; 0],
7946}
7947#[repr(C)]
7948#[derive(Copy, Clone)]
7949pub struct tm_graph_api {
7950    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
7951    pub create_graph: ::std::option::Option<
7952        unsafe extern "C" fn(
7953            allocator: *mut tm_allocator_i,
7954            tt: *mut tm_the_truth_o,
7955            graph_id: tm_tt_id_t,
7956            node_interface_name: *const ::std::os::raw::c_char,
7957            undo_stack: *mut tm_undo_stack_i,
7958            asset_root: tm_tt_id_t,
7959            settings_tt: *mut tm_the_truth_o,
7960            settings_object: tm_tt_id_t,
7961        ) -> *mut tm_graph_o,
7962    >,
7963    pub destroy_graph:
7964        ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_graph_o, truth_destroyed: bool)>,
7965    pub set_settings_object: ::std::option::Option<
7966        unsafe extern "C" fn(
7967            graph: *mut tm_graph_o,
7968            settings_tt: *mut tm_the_truth_o,
7969            settings_object: tm_tt_id_t,
7970        ),
7971    >,
7972    pub id: ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_graph_o) -> tm_tt_id_t>,
7973    pub ui: ::std::option::Option<
7974        unsafe extern "C" fn(
7975            inst: *mut tm_graph_o,
7976            ui: *mut tm_ui_o,
7977            style: *const tm_ui_style_t,
7978            rect: tm_rect_t,
7979            tab: *mut tm_tab_i,
7980        ) -> tm_graph_ui_res_t,
7981    >,
7982    pub menu: ::std::option::Option<
7983        unsafe extern "C" fn(
7984            inst: *mut tm_graph_o,
7985            ui: *mut tm_ui_o,
7986            style: *const tm_ui_style_t,
7987            pos: tm_vec2_t,
7988        ),
7989    >,
7990    pub selected_objects: ::std::option::Option<
7991        unsafe extern "C" fn(
7992            inst: *mut tm_graph_o,
7993            ta: *mut tm_temp_allocator_i,
7994        ) -> *const tm_tt_id_t,
7995    >,
7996    pub migrate_to_connector_hash: ::std::option::Option<
7997        unsafe extern "C" fn(
7998            tt: *mut tm_the_truth_o,
7999            graphs: *mut tm_tt_id_t,
8000            num_graphs: u32,
8001            node_types: *const *const tm_graph_node_type_i,
8002            num_node_types: u32,
8003        ) -> bool,
8004    >,
8005    pub needs_migrate_to_connector_hash:
8006        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
8007    pub migrate_to_instantiated_connections: ::std::option::Option<
8008        unsafe extern "C" fn(
8009            tt: *mut tm_the_truth_o,
8010            graphs: *mut tm_tt_id_t,
8011            num_graphs: u32,
8012        ) -> bool,
8013    >,
8014    pub refresh_node_types: ::std::option::Option<
8015        unsafe extern "C" fn(
8016            inst: *mut tm_graph_o,
8017            node_interface_name: *const ::std::os::raw::c_char,
8018        ),
8019    >,
8020}
8021pub const TM_CREATION_GRAPH__STATIC_WIRE__SINK: ::std::os::raw::c_int = 0;
8022pub const TM_CREATION_GRAPH__STATIC_WIRE__CONTEXT: ::std::os::raw::c_int = 1;
8023pub const TM_CREATION_GRAPH__STATIC_WIRE__COUNT: ::std::os::raw::c_int = 2;
8024pub type _bindgen_ty_63 = ::std::os::raw::c_int;
8025#[repr(C)]
8026#[derive(Copy, Clone)]
8027pub struct tm_creation_graph_compile_context_t {
8028    pub tt: *mut tm_the_truth_o,
8029    pub graph_id: tm_tt_id_t,
8030    pub settings_id: tm_tt_id_t,
8031    pub instanced_settings_id: tm_tt_id_t,
8032    pub asset_tag_uuid: u64,
8033}
8034#[repr(C)]
8035#[derive(Copy, Clone)]
8036pub struct tm_creation_graph_node_type_i {
8037    pub __bindgen_padding_0: [u64; 232usize],
8038    pub user_data: *mut ::std::os::raw::c_void,
8039    pub run: ::std::option::Option<
8040        unsafe extern "C" fn(ctx: *mut tm_creation_graph_interpreter_context_t),
8041    >,
8042    pub compile: ::std::option::Option<
8043        unsafe extern "C" fn(
8044            ctx: *mut tm_creation_graph_interpreter_context_t,
8045            compile_ctx: *mut tm_creation_graph_compile_context_t,
8046        ),
8047    >,
8048}
8049#[repr(C)]
8050#[derive(Copy, Clone)]
8051pub struct tm_gpu_vertex_channel_t {
8052    pub offset: u32,
8053    pub stride: u16,
8054    pub _padding_13: [::std::os::raw::c_char; 2usize],
8055    pub format: u32,
8056    pub buffer_handle: u32,
8057}
8058pub const TM_VERTEX_BUFFER_CHANNEL_POSITION: ::std::os::raw::c_int = 0;
8059pub const TM_VERTEX_BUFFER_CHANNEL_NORMAL0: ::std::os::raw::c_int = 1;
8060pub const TM_VERTEX_BUFFER_CHANNEL_NORMAL1: ::std::os::raw::c_int = 2;
8061pub const TM_VERTEX_BUFFER_CHANNEL_TANGENT0: ::std::os::raw::c_int = 3;
8062pub const TM_VERTEX_BUFFER_CHANNEL_TANGENT1: ::std::os::raw::c_int = 4;
8063pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_INDICES0: ::std::os::raw::c_int = 5;
8064pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_INDICES1: ::std::os::raw::c_int = 6;
8065pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_BONES0: ::std::os::raw::c_int = 7;
8066pub const TM_VERTEX_BUFFER_CHANNEL_SKIN_BONES1: ::std::os::raw::c_int = 8;
8067pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD0: ::std::os::raw::c_int = 9;
8068pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD1: ::std::os::raw::c_int = 10;
8069pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD2: ::std::os::raw::c_int = 11;
8070pub const TM_VERTEX_BUFFER_CHANNEL_TEXCOORD3: ::std::os::raw::c_int = 12;
8071pub const TM_VERTEX_BUFFER_CHANNEL_COLOR0: ::std::os::raw::c_int = 13;
8072pub const TM_VERTEX_BUFFER_CHANNEL_COLOR1: ::std::os::raw::c_int = 14;
8073pub const TM_VERTEX_BUFFER_CHANNEL_MAX_CHANNELS: ::std::os::raw::c_int = 16;
8074pub type _bindgen_ty_64 = ::std::os::raw::c_int;
8075#[repr(C)]
8076#[derive(Copy, Clone)]
8077pub struct tm_gpu_vertex_buffer_t {
8078    pub active_channels_flag: u32,
8079    pub num_vertices: u32,
8080    pub num_vertex_sets: u32,
8081    pub channels: [tm_gpu_vertex_channel_t; 16usize],
8082}
8083#[repr(C)]
8084#[derive(Copy, Clone)]
8085pub struct tm_gpu_geometry_t {
8086    pub vfetch_system: *mut tm_shader_system_o,
8087    pub vfetch_system_cbuffer: u32,
8088    pub vfetch_system_rbinder: u32,
8089}
8090pub const TM_TT_PROP__IMAGE_FILTER_SETTINGS__COLOR_SPACE: ::std::os::raw::c_int = 0;
8091pub const TM_TT_PROP__IMAGE_FILTER_SETTINGS__FILTER: ::std::os::raw::c_int = 1;
8092pub const TM_TT_PROP__IMAGE_FILTER_SETTINGS__OVERRIDE_EXISTING_MIPS: ::std::os::raw::c_int = 2;
8093pub type _bindgen_ty_65 = ::std::os::raw::c_int;
8094pub const TM_TT_PROP__IMAGE_DESCRIPTION__TYPE: ::std::os::raw::c_int = 0;
8095pub const TM_TT_PROP__IMAGE_DESCRIPTION__PIXEL_FORMAT: ::std::os::raw::c_int = 1;
8096pub const TM_TT_PROP__IMAGE_DESCRIPTION__WIDTH: ::std::os::raw::c_int = 2;
8097pub const TM_TT_PROP__IMAGE_DESCRIPTION__HEIGHT: ::std::os::raw::c_int = 3;
8098pub const TM_TT_PROP__IMAGE_DESCRIPTION__DEPTH: ::std::os::raw::c_int = 4;
8099pub const TM_TT_PROP__IMAGE_DESCRIPTION__MIP_LEVELS: ::std::os::raw::c_int = 5;
8100pub const TM_TT_PROP__IMAGE_DESCRIPTION__LAYER_COUNT: ::std::os::raw::c_int = 6;
8101pub const TM_TT_PROP__IMAGE_DESCRIPTION__SAMPLE_COUNT: ::std::os::raw::c_int = 7;
8102pub type _bindgen_ty_66 = ::std::os::raw::c_int;
8103pub const TM_TT_PROP__IMAGE_ACRCHIVE__FILENAME: ::std::os::raw::c_int = 0;
8104pub const TM_TT_PROP__IMAGE_ACRCHIVE__VALIDITY_HASH: ::std::os::raw::c_int = 1;
8105pub const TM_TT_PROP__IMAGE_ACRCHIVE__DESCRIPTION: ::std::os::raw::c_int = 2;
8106pub const TM_TT_PROP__IMAGE_ACRCHIVE__BUFFER: ::std::os::raw::c_int = 3;
8107pub type _bindgen_ty_67 = ::std::os::raw::c_int;
8108#[repr(C)]
8109#[derive(Copy, Clone)]
8110pub struct tm_gpu_buffer_t {
8111    pub validity_hash: u64,
8112    pub size: u32,
8113    pub usage_flags: u32,
8114    pub handle: u32,
8115    pub resource_state: u16,
8116    pub _padding_14: [::std::os::raw::c_char; 2usize],
8117}
8118#[repr(C)]
8119#[derive(Copy, Clone)]
8120pub struct tm_shader_o {
8121    _unused: [u8; 0],
8122}
8123#[repr(C)]
8124#[derive(Copy, Clone)]
8125pub struct tm_creation_graph_shader_instance_t {
8126    pub shader: *mut tm_shader_o,
8127    pub cbuf: u32,
8128    pub rbinder: u32,
8129}
8130#[repr(C)]
8131#[derive(Copy, Clone)]
8132pub struct tm_renderer_command_buffer_o {
8133    _unused: [u8; 0],
8134}
8135#[repr(C)]
8136#[derive(Copy, Clone)]
8137pub struct tm_crunch_result_t {
8138    pub data: *mut ::std::os::raw::c_void,
8139    pub data_size: u32,
8140    pub _padding_18: [::std::os::raw::c_char; 4usize],
8141}
8142pub type tm_crunch_progress = ::std::option::Option<
8143    unsafe extern "C" fn(
8144        phase_index: u32,
8145        total_phases: u32,
8146        subphase_index: u32,
8147        total_subphases: u32,
8148        user_data: *mut ::std::os::raw::c_void,
8149    ) -> bool,
8150>;
8151#[repr(C)]
8152#[derive(Copy, Clone)]
8153pub struct tm_crunch_api {
8154    pub compress: ::std::option::Option<
8155        unsafe extern "C" fn(
8156            data: *mut ::std::os::raw::c_void,
8157            width: u32,
8158            height: u32,
8159            srgb: bool,
8160            format: u32,
8161            ta: *mut tm_temp_allocator_i,
8162            progress_func: tm_crunch_progress,
8163            progress_func_data: *mut ::std::os::raw::c_void,
8164        ) -> tm_crunch_result_t,
8165    >,
8166}
8167#[repr(C)]
8168#[derive(Copy, Clone)]
8169pub struct tm_dcc_asset_geometry_t {
8170    pub vertices: *mut tm_vec3_t,
8171    pub indices: *mut u32,
8172}
8173#[repr(C)]
8174#[derive(Copy, Clone)]
8175pub struct tm_dcc_asset_api {
8176    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
8177    pub truth_type_info:
8178        ::std::option::Option<unsafe extern "C" fn() -> *const dcc_asset_type_info_t>,
8179    pub bounds: ::std::option::Option<
8180        unsafe extern "C" fn(
8181            tt: *const tm_the_truth_o,
8182            asset: tm_tt_id_t,
8183            bounds: *mut tm_vec3_t,
8184            include_node_positions: bool,
8185        ),
8186    >,
8187    pub geometry: ::std::option::Option<
8188        unsafe extern "C" fn(
8189            tt: *const tm_the_truth_o,
8190            asset: tm_tt_id_t,
8191            ta: *mut tm_temp_allocator_i,
8192        ) -> tm_dcc_asset_geometry_t,
8193    >,
8194}
8195#[repr(C)]
8196#[derive(Copy, Clone)]
8197pub struct tm_entity_context_o {
8198    _unused: [u8; 0],
8199}
8200pub const TM_TT_PROP__DCC_ASSET_COMPONENT__DCC_ASSET: ::std::os::raw::c_int = 0;
8201pub const TM_TT_PROP__DCC_ASSET_COMPONENT__VISIBILITY_FLAGS: ::std::os::raw::c_int = 1;
8202pub type _bindgen_ty_68 = ::std::os::raw::c_int;
8203#[repr(C)]
8204#[derive(Copy, Clone)]
8205pub struct tm_dcc_asset_component_api {
8206    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
8207    pub create: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
8208    pub set_component_dcc_asset: ::std::option::Option<
8209        unsafe extern "C" fn(component_data: *mut ::std::os::raw::c_void, dcc_asset: tm_tt_id_t),
8210    >,
8211    pub create_dcc_asset_scene_manager:
8212        ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
8213    pub update_dcc_asset_scene_manager: ::std::option::Option<unsafe extern "C" fn()>,
8214    pub destroy_dcc_asset_scene_manager: ::std::option::Option<unsafe extern "C" fn()>,
8215    pub set_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
8216    pub animation_scrubber_ui: ::std::option::Option<
8217        unsafe extern "C" fn(
8218            tt: *mut tm_the_truth_o,
8219            asset: tm_tt_id_t,
8220            entity_ctx: *mut tm_entity_context_o,
8221            e: *const tm_entity_t,
8222            p: *mut tm_animation_player_playing_o,
8223            tab_id: u64,
8224            ui: *mut tm_ui_o,
8225            uistyle: *const tm_ui_style_t,
8226            content_r: tm_rect_t,
8227            toolbar_direction: u32,
8228        ),
8229    >,
8230}
8231#[repr(C)]
8232#[derive(Copy, Clone)]
8233pub struct tm_dcc_asset_gpu_resource_cache_o {
8234    _unused: [u8; 0],
8235}
8236pub const TM_TT_PROP__DCC_ASSET_MESH__DCC_ASSET: ::std::os::raw::c_int = 0;
8237pub const TM_TT_PROP__DCC_ASSET_MESH__MESH: ::std::os::raw::c_int = 1;
8238pub type _bindgen_ty_69 = ::std::os::raw::c_int;
8239pub const TM_TT_PROP__DCC_ASSET_IMAGE__DCC_ASSET: ::std::os::raw::c_int = 0;
8240pub const TM_TT_PROP__DCC_ASSET_IMAGE__IMAGE: ::std::os::raw::c_int = 1;
8241pub type _bindgen_ty_70 = ::std::os::raw::c_int;
8242pub const TM_TT_PROP__DCC_ASSET_MATERIAL__DCC_ASSET: ::std::os::raw::c_int = 0;
8243pub const TM_TT_PROP__DCC_ASSET_MATERIAL__MATERIAL: ::std::os::raw::c_int = 1;
8244pub type _bindgen_ty_71 = ::std::os::raw::c_int;
8245#[repr(C)]
8246#[derive(Copy, Clone)]
8247pub struct tm_dcc_asset_creation_graph_api {
8248    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
8249    pub compile_data_to_wire: ::std::option::Option<
8250        unsafe extern "C" fn(
8251            inst: *mut tm_creation_graph_instance_t,
8252            wire: u32,
8253            tt: *const tm_the_truth_o,
8254            data_id: tm_tt_id_t,
8255            to_type_hash: u64,
8256        ) -> bool,
8257    >,
8258    pub register_graph_nodes:
8259        ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>,
8260    pub create_resource_manager:
8261        ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
8262    pub update_resource_manager: ::std::option::Option<unsafe extern "C" fn()>,
8263    pub destroy_resource_manager: ::std::option::Option<unsafe extern "C" fn()>,
8264    pub set_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
8265    pub resource_cache: ::std::option::Option<
8266        unsafe extern "C" fn(
8267            tt: *const tm_the_truth_o,
8268            asset: tm_tt_id_t,
8269            wanted_version: u64,
8270        ) -> *mut tm_dcc_asset_gpu_resource_cache_o,
8271    >,
8272    pub buffer_handle: ::std::option::Option<
8273        unsafe extern "C" fn(
8274            resource_cache: *mut tm_dcc_asset_gpu_resource_cache_o,
8275            tt: *const tm_the_truth_o,
8276            object: tm_tt_id_t,
8277            additional_usage_flags: u32,
8278            backend: *mut tm_renderer_backend_i,
8279            device_affinity_mask: u32,
8280            res_buf: *mut tm_renderer_resource_command_buffer_o,
8281            validity_hash: *mut u64,
8282        ) -> u32,
8283    >,
8284    pub image_handle: ::std::option::Option<
8285        unsafe extern "C" fn(
8286            resource_cache: *mut tm_dcc_asset_gpu_resource_cache_o,
8287            tt: *const tm_the_truth_o,
8288            object: tm_tt_id_t,
8289            additional_usage_flags: u32,
8290            backend: *mut tm_renderer_backend_i,
8291            device_affinity_mask: u32,
8292            res_buf: *mut tm_renderer_resource_command_buffer_o,
8293            image_desc: *mut tm_renderer_image_buffer_t,
8294            validity_hash: *mut u64,
8295            context: *mut tm_creation_graph_context_t,
8296            instance: *mut tm_creation_graph_instance_t,
8297        ) -> u32,
8298    >,
8299}
8300#[repr(C)]
8301#[derive(Copy, Clone)]
8302pub struct tm_dcc_asset_scene_o {
8303    _unused: [u8; 0],
8304}
8305#[repr(C)]
8306#[derive(Copy, Clone)]
8307pub struct tm_dcc_asset_scene_instance_o {
8308    pub instance_idx: u32,
8309    pub _padding_24: [::std::os::raw::c_char; 4usize],
8310    pub entity_id: u64,
8311    pub transform_version: u32,
8312    pub scene_to_world: tm_mat44_t,
8313    pub front_face_cw: bool,
8314    pub _padding_30: [::std::os::raw::c_char; 3usize],
8315    pub last_transform_version: u32,
8316    pub _padding_32: [::std::os::raw::c_char; 4usize],
8317    pub shader: *mut tm_shader_o,
8318    pub cbufs: *mut tm_shader_constant_buffer_instance_t,
8319}
8320#[repr(C)]
8321#[derive(Copy, Clone)]
8322pub struct tm_dcc_asset_renderer_shader_system_t {
8323    pub systems: [*mut tm_shader_system_o; 2usize],
8324}
8325pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_OPAQUE: ::std::os::raw::c_int = 0;
8326pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_MASKED: ::std::os::raw::c_int = 1;
8327pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_TRANSPARENCY: ::std::os::raw::c_int = 2;
8328pub const TM_DCC_ASSET_RENDERER_SHADER_SYSTEM_MAX_SYSTEMS: ::std::os::raw::c_int = 3;
8329pub type _bindgen_ty_72 = ::std::os::raw::c_int;
8330#[repr(C)]
8331#[derive(Copy, Clone)]
8332pub struct tm_dcc_asset_renderer_frame_memory_thread_context_t {
8333    pub p: *mut u8,
8334    pub used: u64,
8335    pub block_size: u64,
8336}
8337#[repr(C)]
8338#[derive(Copy, Clone)]
8339pub struct tm_dcc_asset_renderer_api {
8340    pub create: ::std::option::Option<
8341        unsafe extern "C" fn(
8342            rb: *mut tm_renderer_backend_i,
8343            allocator: *mut tm_allocator_i,
8344            shader_repository: *mut tm_shader_repository_o,
8345            tt: *mut tm_the_truth_o,
8346            asset: tm_tt_id_t,
8347        ) -> *mut tm_dcc_asset_scene_o,
8348    >,
8349    pub destroy: ::std::option::Option<
8350        unsafe extern "C" fn(
8351            scene: *mut tm_dcc_asset_scene_o,
8352            res_buf: *mut tm_renderer_resource_command_buffer_o,
8353        ),
8354    >,
8355    pub refresh_instance: ::std::option::Option<
8356        unsafe extern "C" fn(
8357            scene: *mut tm_dcc_asset_scene_o,
8358            instance: *mut tm_dcc_asset_scene_instance_o,
8359            tt: *const tm_the_truth_o,
8360            res_buf: *mut tm_renderer_resource_command_buffer_o,
8361            allocator: *mut tm_allocator_i,
8362        ),
8363    >,
8364    pub update_instance_parameters: ::std::option::Option<
8365        unsafe extern "C" fn(
8366            scene: *mut tm_dcc_asset_scene_o,
8367            instance: *mut tm_dcc_asset_scene_instance_o,
8368            mem_context: *mut tm_dcc_asset_renderer_frame_memory_thread_context_t,
8369            res_buf: *mut tm_renderer_resource_command_buffer_o,
8370            entity_id: u64,
8371            scene_to_world: *const tm_mat44_t,
8372            last_scene_to_world: *const tm_mat44_t,
8373        ),
8374    >,
8375    pub render: ::std::option::Option<
8376        unsafe extern "C" fn(
8377            scene: *mut tm_dcc_asset_scene_o,
8378            instance: *mut tm_dcc_asset_scene_instance_o,
8379            tt: *const tm_the_truth_o,
8380            context: *mut tm_shader_system_context_o,
8381            res_buf: *mut tm_renderer_resource_command_buffer_o,
8382            cmd_buf: *mut tm_renderer_command_buffer_o,
8383            viewer: *const tm_ci_render_viewer_t,
8384            systems: *const tm_dcc_asset_renderer_shader_system_t,
8385        ),
8386    >,
8387}
8388pub const TM_TT_PROP__DCC_ASSET_POSITION__X: ::std::os::raw::c_int = 0;
8389pub const TM_TT_PROP__DCC_ASSET_POSITION__Y: ::std::os::raw::c_int = 1;
8390pub const TM_TT_PROP__DCC_ASSET_POSITION__Z: ::std::os::raw::c_int = 2;
8391pub type _bindgen_ty_73 = ::std::os::raw::c_int;
8392pub const TM_TT_PROP__DCC_ASSET_ROTATION__X: ::std::os::raw::c_int = 0;
8393pub const TM_TT_PROP__DCC_ASSET_ROTATION__Y: ::std::os::raw::c_int = 1;
8394pub const TM_TT_PROP__DCC_ASSET_ROTATION__Z: ::std::os::raw::c_int = 2;
8395pub const TM_TT_PROP__DCC_ASSET_ROTATION__W: ::std::os::raw::c_int = 3;
8396pub type _bindgen_ty_74 = ::std::os::raw::c_int;
8397pub const TM_TT_PROP__DCC_ASSET_SCALE__X: ::std::os::raw::c_int = 0;
8398pub const TM_TT_PROP__DCC_ASSET_SCALE__Y: ::std::os::raw::c_int = 1;
8399pub const TM_TT_PROP__DCC_ASSET_SCALE__Z: ::std::os::raw::c_int = 2;
8400pub type _bindgen_ty_75 = ::std::os::raw::c_int;
8401pub const TM_TT_PROP__DCC_ASSET_COLOR__R: ::std::os::raw::c_int = 0;
8402pub const TM_TT_PROP__DCC_ASSET_COLOR__G: ::std::os::raw::c_int = 1;
8403pub const TM_TT_PROP__DCC_ASSET_COLOR__B: ::std::os::raw::c_int = 2;
8404pub const TM_TT_PROP__DCC_ASSET_COLOR__A: ::std::os::raw::c_int = 3;
8405pub type _bindgen_ty_76 = ::std::os::raw::c_int;
8406pub const TM_TT_PROP__DCC_ASSET_BUFFER__NAME: ::std::os::raw::c_int = 0;
8407pub const TM_TT_PROP__DCC_ASSET_BUFFER__DATA: ::std::os::raw::c_int = 1;
8408pub const TM_TT_PROP__DCC_ASSET_BUFFER__STRIDE: ::std::os::raw::c_int = 2;
8409pub type _bindgen_ty_77 = ::std::os::raw::c_int;
8410pub const TM_TT_VALUE__DCC_ASSET_CAMERA__TYPE__NONE: ::std::os::raw::c_int = 0;
8411pub const TM_TT_VALUE__DCC_ASSET_CAMERA__TYPE__PERSPECTIVE: ::std::os::raw::c_int = 1;
8412pub const TM_TT_VALUE__DCC_ASSET_CAMERA__TYPE__ORTHOGRAPHIC: ::std::os::raw::c_int = 2;
8413pub type _bindgen_ty_78 = ::std::os::raw::c_int;
8414pub const TM_TT_PROP__DCC_ASSET_CAMERA__NAME: ::std::os::raw::c_int = 0;
8415pub const TM_TT_PROP__DCC_ASSET_CAMERA__TYPE: ::std::os::raw::c_int = 1;
8416pub const TM_TT_PROP__DCC_ASSET_CAMERA__ASPECT_RATIO: ::std::os::raw::c_int = 2;
8417pub const TM_TT_PROP__DCC_ASSET_CAMERA__YFOV: ::std::os::raw::c_int = 3;
8418pub const TM_TT_PROP__DCC_ASSET_CAMERA__ZNEAR: ::std::os::raw::c_int = 4;
8419pub const TM_TT_PROP__DCC_ASSET_CAMERA__ZFAR: ::std::os::raw::c_int = 5;
8420pub type _bindgen_ty_79 = ::std::os::raw::c_int;
8421pub const TM_TT_PROP__DCC_ASSET_LIGHT__NAME: ::std::os::raw::c_int = 0;
8422pub type _bindgen_ty_80 = ::std::os::raw::c_int;
8423pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__BUFFER: ::std::os::raw::c_int = 0;
8424pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__OFFSET: ::std::os::raw::c_int = 1;
8425pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__COUNT: ::std::os::raw::c_int = 2;
8426pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__IS_FLOAT: ::std::os::raw::c_int = 3;
8427pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__IS_SIGNED: ::std::os::raw::c_int = 4;
8428pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__IS_NORMALIZED: ::std::os::raw::c_int = 5;
8429pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__BITS: ::std::os::raw::c_int = 6;
8430pub const TM_TT_PROP__DCC_ASSET_ACCESSOR__COMPONENT_COUNT: ::std::os::raw::c_int = 7;
8431pub type _bindgen_ty_81 = ::std::os::raw::c_int;
8432pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__NONE: ::std::os::raw::c_int = 0;
8433pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__POSITION: ::std::os::raw::c_int = 1;
8434pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__NORMAL: ::std::os::raw::c_int = 2;
8435pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__TANGENT: ::std::os::raw::c_int = 3;
8436pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__BINORMAL: ::std::os::raw::c_int = 4;
8437pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__TEXCOORD: ::std::os::raw::c_int = 5;
8438pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__COLOR: ::std::os::raw::c_int = 6;
8439pub const TM_TT_VALUE__DCC_ASSET_VERTEX__SEMANTIC__SKIN_DATA: ::std::os::raw::c_int = 7;
8440pub type _bindgen_ty_82 = ::std::os::raw::c_int;
8441pub const TM_TT_PROP__DCC_ASSET_ATTRIBUTE__SEMANTIC: ::std::os::raw::c_int = 0;
8442pub const TM_TT_PROP__DCC_ASSET_ATTRIBUTE__SET: ::std::os::raw::c_int = 1;
8443pub const TM_TT_PROP__DCC_ASSET_ATTRIBUTE__ACCESSOR: ::std::os::raw::c_int = 2;
8444pub type _bindgen_ty_83 = ::std::os::raw::c_int;
8445#[repr(C)]
8446#[derive(Copy, Clone)]
8447pub struct tm_dcc_asset_raw_image_header_t {
8448    pub format: u32,
8449    pub width: u32,
8450    pub height: u32,
8451}
8452pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__NONE: ::std::os::raw::c_int = 0;
8453pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__JPEG: ::std::os::raw::c_int = 1;
8454pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__TIFF: ::std::os::raw::c_int = 2;
8455pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__PNG: ::std::os::raw::c_int = 3;
8456pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__DDS: ::std::os::raw::c_int = 4;
8457pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__EXR: ::std::os::raw::c_int = 5;
8458pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__DCC_ASSET_RAW: ::std::os::raw::c_int = 6;
8459pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__TGA: ::std::os::raw::c_int = 7;
8460pub const TM_TT_VALUE__DCC_ASSET_IMAGE__TYPE__UNKNOWN: ::std::os::raw::c_int = 8;
8461pub type _bindgen_ty_84 = ::std::os::raw::c_int;
8462pub const TM_TT_PROP__DCC_ASSET_IMAGE__NAME: ::std::os::raw::c_int = 0;
8463pub const TM_TT_PROP__DCC_ASSET_IMAGE__BUFFER: ::std::os::raw::c_int = 1;
8464pub const TM_TT_PROP__DCC_ASSET_IMAGE__TYPE: ::std::os::raw::c_int = 2;
8465pub type _bindgen_ty_85 = ::std::os::raw::c_int;
8466pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__UV: ::std::os::raw::c_int = 0;
8467pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__SPHERE: ::std::os::raw::c_int = 1;
8468pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__CYLINDER: ::std::os::raw::c_int = 2;
8469pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__BOX: ::std::os::raw::c_int = 3;
8470pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__PLANE: ::std::os::raw::c_int = 4;
8471pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__MAPPING__OTHER: ::std::os::raw::c_int = 5;
8472pub type _bindgen_ty_86 = ::std::os::raw::c_int;
8473pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__WRAP: ::std::os::raw::c_int = 0;
8474pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__CLAMP: ::std::os::raw::c_int = 1;
8475pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__DECAL: ::std::os::raw::c_int = 2;
8476pub const TM_TT_VALUE__DCC_ASSET_TEXTURE__ADDRESS_MODE__MIRROR: ::std::os::raw::c_int = 3;
8477pub type _bindgen_ty_87 = ::std::os::raw::c_int;
8478pub const TM_TT_PROP__DCC_ASSET_TEXTURE__IMAGE: ::std::os::raw::c_int = 0;
8479pub const TM_TT_PROP__DCC_ASSET_TEXTURE__MAPPING: ::std::os::raw::c_int = 1;
8480pub const TM_TT_PROP__DCC_ASSET_TEXTURE__UV_SET: ::std::os::raw::c_int = 2;
8481pub const TM_TT_PROP__DCC_ASSET_TEXTURE__ADDRESS_MODE: ::std::os::raw::c_int = 3;
8482pub type _bindgen_ty_88 = ::std::os::raw::c_int;
8483pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_MR__METALLIC_FACTOR: ::std::os::raw::c_int = 0;
8484pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_MR__ROUGHNESS_FACTOR: ::std::os::raw::c_int = 1;
8485pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_MR__METALLIC_ROUGHNESS_TEXTURE: ::std::os::raw::c_int =
8486    2;
8487pub type _bindgen_ty_89 = ::std::os::raw::c_int;
8488pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_SG__GLOSSINESS_FACTOR: ::std::os::raw::c_int = 0;
8489pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_SG__SPECULAR_FACTOR: ::std::os::raw::c_int = 1;
8490pub const TM_TT_PROP__DCC_ASSET_MATERIAL_PBR_SG__SPECULAR_GLOSSINESS_TEXTURE:
8491    ::std::os::raw::c_int = 2;
8492pub type _bindgen_ty_90 = ::std::os::raw::c_int;
8493pub const TM_TT_VALUE__DCC_ASSET_MATERIAL__ALPHA_MODE__OPAQUE: ::std::os::raw::c_int = 0;
8494pub const TM_TT_VALUE__DCC_ASSET_MATERIAL__ALPHA_MODE__MASK: ::std::os::raw::c_int = 1;
8495pub const TM_TT_VALUE__DCC_ASSET_MATERIAL__ALPHA_MODE__BLEND: ::std::os::raw::c_int = 2;
8496pub type _bindgen_ty_91 = ::std::os::raw::c_int;
8497pub const TM_TT_PROP__DCC_ASSET_MATERIAL__NAME: ::std::os::raw::c_int = 0;
8498pub const TM_TT_PROP__DCC_ASSET_MATERIAL__BASE_COLOR_FACTOR: ::std::os::raw::c_int = 1;
8499pub const TM_TT_PROP__DCC_ASSET_MATERIAL__BASE_COLOR_TEXTURE: ::std::os::raw::c_int = 2;
8500pub const TM_TT_PROP__DCC_ASSET_MATERIAL__NORMAL_TEXTURE: ::std::os::raw::c_int = 3;
8501pub const TM_TT_PROP__DCC_ASSET_MATERIAL__OCCLUSION_TEXTURE: ::std::os::raw::c_int = 4;
8502pub const TM_TT_PROP__DCC_ASSET_MATERIAL__EMISSIVE_FACTOR: ::std::os::raw::c_int = 5;
8503pub const TM_TT_PROP__DCC_ASSET_MATERIAL__EMISSIVE_TEXTURE: ::std::os::raw::c_int = 6;
8504pub const TM_TT_PROP__DCC_ASSET_MATERIAL__PBR_METALLIC_ROUGHNESS: ::std::os::raw::c_int = 7;
8505pub const TM_TT_PROP__DCC_ASSET_MATERIAL__PBR_SPECULAR_GLOSSINESS: ::std::os::raw::c_int = 8;
8506pub const TM_TT_PROP__DCC_ASSET_MATERIAL__ALPHA_MODE: ::std::os::raw::c_int = 9;
8507pub const TM_TT_PROP__DCC_ASSET_MATERIAL__ALPHA_CUTOFF: ::std::os::raw::c_int = 10;
8508pub const TM_TT_PROP__DCC_ASSET_MATERIAL__DOUBLE_SIDED: ::std::os::raw::c_int = 11;
8509pub type _bindgen_ty_92 = ::std::os::raw::c_int;
8510pub const TM_TT_PROP__DCC_ASSET_BONE__INDEX: ::std::os::raw::c_int = 0;
8511pub const TM_TT_PROP__DCC_ASSET_BONE__NODE_NAME: ::std::os::raw::c_int = 1;
8512pub const TM_TT_PROP__DCC_ASSET_BONE__INVERSE_BIND_POSITION: ::std::os::raw::c_int = 2;
8513pub const TM_TT_PROP__DCC_ASSET_BONE__INVERSE_BIND_ROTATION: ::std::os::raw::c_int = 3;
8514pub const TM_TT_PROP__DCC_ASSET_BONE__INVERSE_BIND_SCALE: ::std::os::raw::c_int = 4;
8515pub type _bindgen_ty_93 = ::std::os::raw::c_int;
8516pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__POINTS: ::std::os::raw::c_int = 0;
8517pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__LINES: ::std::os::raw::c_int = 1;
8518pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__TRIANGLES: ::std::os::raw::c_int = 2;
8519pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__POLYGON: ::std::os::raw::c_int = 3;
8520pub const TM_TT_VALUE__DCC_ASSET_MESH__PRIMITIVE_TYPE__MIXED_OR_UNKNOWN: ::std::os::raw::c_int =
8521    255;
8522pub type _bindgen_ty_94 = ::std::os::raw::c_int;
8523pub const TM_TT_PROP__DCC_ASSET_MESH__NAME: ::std::os::raw::c_int = 0;
8524pub const TM_TT_PROP__DCC_ASSET_MESH__PRIMITIVE_TYPE: ::std::os::raw::c_int = 1;
8525pub const TM_TT_PROP__DCC_ASSET_MESH__MATERIAL: ::std::os::raw::c_int = 2;
8526pub const TM_TT_PROP__DCC_ASSET_MESH__ATTRIBUTES: ::std::os::raw::c_int = 3;
8527pub const TM_TT_PROP__DCC_ASSET_MESH__INDICES: ::std::os::raw::c_int = 4;
8528pub const TM_TT_PROP__DCC_ASSET_MESH__BOUNDS_MIN: ::std::os::raw::c_int = 5;
8529pub const TM_TT_PROP__DCC_ASSET_MESH__BOUNDS_MAX: ::std::os::raw::c_int = 6;
8530pub const TM_TT_PROP__DCC_ASSET_MESH__BONES: ::std::os::raw::c_int = 7;
8531pub type _bindgen_ty_95 = ::std::os::raw::c_int;
8532pub const TM_TT_PROP__DCC_ASSET_NODE__NAME: ::std::os::raw::c_int = 0;
8533pub const TM_TT_PROP__DCC_ASSET_NODE__POSITION: ::std::os::raw::c_int = 1;
8534pub const TM_TT_PROP__DCC_ASSET_NODE__ROTATION: ::std::os::raw::c_int = 2;
8535pub const TM_TT_PROP__DCC_ASSET_NODE__SCALE: ::std::os::raw::c_int = 3;
8536pub const TM_TT_PROP__DCC_ASSET_NODE__CHILDREN: ::std::os::raw::c_int = 4;
8537pub const TM_TT_PROP__DCC_ASSET_NODE__MESHES: ::std::os::raw::c_int = 5;
8538pub const TM_TT_PROP__DCC_ASSET_NODE__CAMERAS: ::std::os::raw::c_int = 6;
8539pub const TM_TT_PROP__DCC_ASSET_NODE__LIGHTS: ::std::os::raw::c_int = 7;
8540pub type _bindgen_ty_96 = ::std::os::raw::c_int;
8541pub const TM_TT_PROP__DCC_ASSET_SCENE__NAME: ::std::os::raw::c_int = 0;
8542pub const TM_TT_PROP__DCC_ASSET_SCENE__ROOT_NODES: ::std::os::raw::c_int = 1;
8543pub type _bindgen_ty_97 = ::std::os::raw::c_int;
8544#[repr(C)]
8545#[derive(Copy, Clone)]
8546pub struct tm_tt_prop__dcc_asset_node_animation__float_key_t {
8547    pub time: f32,
8548    pub v: f32,
8549}
8550#[repr(C)]
8551#[derive(Copy, Clone)]
8552pub struct tm_tt_prop__dcc_asset_node_animation__vec3_key_t {
8553    pub time: f32,
8554    pub v: tm_vec3_t,
8555}
8556#[repr(C)]
8557#[derive(Copy, Clone)]
8558pub struct tm_tt_prop__dcc_asset_node_animation__quat_key_t {
8559    pub time: f32,
8560    pub q: tm_vec4_t,
8561}
8562pub 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 ;
8563pub 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 ;
8564pub 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 ;
8565pub 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 ;
8566pub type tm_tt_value__dcc_asset_node_animation__pre_post_state = ::std::os::raw::c_int;
8567pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__NAME: ::std::os::raw::c_int = 0;
8568pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__NODE: ::std::os::raw::c_int = 1;
8569pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__POSITION_KEYS: ::std::os::raw::c_int = 2;
8570pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__ROTATION_KEYS: ::std::os::raw::c_int = 3;
8571pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__SCALING_KEYS: ::std::os::raw::c_int = 4;
8572pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__PRE_STATE: ::std::os::raw::c_int = 5;
8573pub const TM_TT_PROP__DCC_ASSET_NODE_ANIMATION__POST_STATE: ::std::os::raw::c_int = 6;
8574pub type _bindgen_ty_98 = ::std::os::raw::c_int;
8575pub const TM_TT_PROP__DCC_ASSET_ANIMATION__NAME: ::std::os::raw::c_int = 0;
8576pub const TM_TT_PROP__DCC_ASSET_ANIMATION__DURATION: ::std::os::raw::c_int = 1;
8577pub const TM_TT_PROP__DCC_ASSET_ANIMATION__TICKS_PER_SECOND: ::std::os::raw::c_int = 2;
8578pub const TM_TT_PROP__DCC_ASSET_ANIMATION__NODE_ANIMATIONS: ::std::os::raw::c_int = 3;
8579pub type _bindgen_ty_99 = ::std::os::raw::c_int;
8580pub const TM_TT_PROP__DCC_ASSET_EXTRACTED_RESOURCE__OBJECT: ::std::os::raw::c_int = 0;
8581pub const TM_TT_PROP__DCC_ASSET_EXTRACTED_RESOURCE__RESOURCE: ::std::os::raw::c_int = 1;
8582pub type _bindgen_ty_100 = ::std::os::raw::c_int;
8583pub const TM_TT_PROP__DCC_ASSET_SETTINGS__IMPORT_SETTINGS: ::std::os::raw::c_int = 0;
8584pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACT_IMAGES: ::std::os::raw::c_int = 1;
8585pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACTED_IMAGES: ::std::os::raw::c_int = 2;
8586pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACT_MATERIALS: ::std::os::raw::c_int = 3;
8587pub const TM_TT_PROP__DCC_ASSET_SETTINGS__EXTRACTED_MATERIALS: ::std::os::raw::c_int = 4;
8588pub const TM_TT_PROP__DCC_ASSET_SETTINGS__RIG_ENTITY: ::std::os::raw::c_int = 5;
8589pub const TM_TT_PROP__DCC_ASSET_SETTINGS__ENTITY: ::std::os::raw::c_int = 6;
8590pub type _bindgen_ty_101 = ::std::os::raw::c_int;
8591pub const TM_TT_PROP__DCC_ASSET__SCENE: ::std::os::raw::c_int = 0;
8592pub const TM_TT_PROP__DCC_ASSET__ACCESSORS: ::std::os::raw::c_int = 1;
8593pub const TM_TT_PROP__DCC_ASSET__BUFFERS: ::std::os::raw::c_int = 2;
8594pub const TM_TT_PROP__DCC_ASSET__CAMERAS: ::std::os::raw::c_int = 3;
8595pub const TM_TT_PROP__DCC_ASSET__LIGHTS: ::std::os::raw::c_int = 4;
8596pub const TM_TT_PROP__DCC_ASSET__IMAGES: ::std::os::raw::c_int = 5;
8597pub const TM_TT_PROP__DCC_ASSET__MATERIALS: ::std::os::raw::c_int = 6;
8598pub const TM_TT_PROP__DCC_ASSET__MESHES: ::std::os::raw::c_int = 7;
8599pub const TM_TT_PROP__DCC_ASSET__NODES: ::std::os::raw::c_int = 8;
8600pub const TM_TT_PROP__DCC_ASSET__SCENES: ::std::os::raw::c_int = 9;
8601pub const TM_TT_PROP__DCC_ASSET__ANIMATIONS: ::std::os::raw::c_int = 10;
8602pub const TM_TT_PROP__DCC_ASSET__SETTINGS: ::std::os::raw::c_int = 11;
8603pub type _bindgen_ty_102 = ::std::os::raw::c_int;
8604#[repr(C)]
8605#[derive(Copy, Clone)]
8606pub struct dcc_asset_type_info_t {
8607    pub position_type: u64,
8608    pub rotation_type: u64,
8609    pub scale_type: u64,
8610    pub color_rgba_type: u64,
8611    pub color_rgb_type: u64,
8612    pub attribute_type: u64,
8613    pub accessor_type: u64,
8614    pub buffer_type: u64,
8615    pub camera_type: u64,
8616    pub light_type: u64,
8617    pub bone_type: u64,
8618    pub mesh_type: u64,
8619    pub image_type: u64,
8620    pub texture_type: u64,
8621    pub pbr_mr_type: u64,
8622    pub pbr_sg_type: u64,
8623    pub material_type: u64,
8624    pub node_type: u64,
8625    pub scene_type: u64,
8626    pub node_animation_type: u64,
8627    pub animation_type: u64,
8628    pub asset_type: u64,
8629    pub extracted_resource_type: u64,
8630    pub settings_type: u64,
8631}
8632pub const TM_TT_PROP__ENTITY_RIGGER_COMPONENT__DCC_ASSET: ::std::os::raw::c_int = 0;
8633pub const TM_TT_PROP__ENTITY_RIGGER_COMPONENT__MESH_CREATION_GRAPH: ::std::os::raw::c_int = 1;
8634pub type _bindgen_ty_103 = ::std::os::raw::c_int;
8635#[repr(C)]
8636#[derive(Copy, Clone)]
8637pub struct tm_entity_rigger_component_t {
8638    pub dcc_asset: tm_tt_id_t,
8639}
8640#[repr(C)]
8641#[derive(Copy, Clone)]
8642pub struct tm_entity_rigger_component_api {
8643    pub parse_scene_tree: ::std::option::Option<
8644        unsafe extern "C" fn(
8645            tt: *mut tm_the_truth_o,
8646            dcc_asset: tm_tt_id_t,
8647            ta: *mut tm_temp_allocator_i,
8648        ) -> *mut tm_scene_tree_node_t,
8649    >,
8650    pub rig_from_dcc_asset: ::std::option::Option<
8651        unsafe extern "C" fn(
8652            tt: *mut tm_the_truth_o,
8653            parent_entity: tm_tt_id_t,
8654            dcc_asset: tm_tt_id_t,
8655            mesh_cg: tm_tt_id_t,
8656            task_id: u64,
8657            undo_scope: tm_tt_undo_scope_t,
8658        ) -> bool,
8659    >,
8660}
8661pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__IMAGE_CG: ::std::os::raw::c_int = 0;
8662pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__MATERIAL_CG: ::std::os::raw::c_int = 1;
8663pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__MESH_CG: ::std::os::raw::c_int = 2;
8664pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__IMAGE_DIRECTORY: ::std::os::raw::c_int = 3;
8665pub const TM_TT_PROP__IMPORT_SETTINGS__DCC_ASSET__MATERIAL_DIRECTORY: ::std::os::raw::c_int = 4;
8666pub const TM_TT_PROP__IMPORT_SETTINGS__IMPORT__IMAGE_CG: ::std::os::raw::c_int = 5;
8667pub const TM_TT_PROP__IMPORT_SETTINGS__DROP__IMAGE_CG: ::std::os::raw::c_int = 6;
8668pub type _bindgen_ty_104 = ::std::os::raw::c_int;
8669#[repr(C)]
8670#[derive(Copy, Clone)]
8671pub struct tm_import_settings_api {
8672    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
8673    pub asset_browser_create_interface:
8674        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_asset_browser_create_asset_i>,
8675    pub find_import_settings_for_asset: ::std::option::Option<
8676        unsafe extern "C" fn(
8677            tt: *mut tm_the_truth_o,
8678            asset_root: tm_tt_id_t,
8679            asset: tm_tt_id_t,
8680        ) -> tm_tt_id_t,
8681    >,
8682    pub find_import_settings_for_dir: ::std::option::Option<
8683        unsafe extern "C" fn(
8684            tt: *mut tm_the_truth_o,
8685            asset_root: tm_tt_id_t,
8686            dir: tm_tt_id_t,
8687        ) -> tm_tt_id_t,
8688    >,
8689}
8690pub const TM_TT_PROP__BLOOM_COMPONENT__ENABLED: ::std::os::raw::c_int = 0;
8691pub const TM_TT_PROP__BLOOM_COMPONENT__THRESHOLD: ::std::os::raw::c_int = 1;
8692pub const TM_TT_PROP__BLOOM_COMPONENT__FALLOFF: ::std::os::raw::c_int = 2;
8693pub const TM_TT_PROP__BLOOM_COMPONENT__TINT: ::std::os::raw::c_int = 3;
8694pub type _bindgen_ty_105 = ::std::os::raw::c_int;
8695#[repr(C)]
8696#[derive(Copy, Clone)]
8697pub struct tm_bloom_component_t {
8698    pub enabled: bool,
8699    pub _padding_19: [::std::os::raw::c_char; 3usize],
8700    pub threshold: f32,
8701    pub falloff: f32,
8702    pub tint: tm_vec3_t,
8703}
8704#[repr(C)]
8705#[derive(Copy, Clone)]
8706pub struct tm_shader_system_o {
8707    _unused: [u8; 0],
8708}
8709pub const tm_default_render_pipe_module_TM_DEFAULT_RENDER_PIPE_MODULE_DEBUG:
8710    tm_default_render_pipe_module = 0;
8711pub type tm_default_render_pipe_module = ::std::os::raw::c_int;
8712pub const tm_default_render_pipe_image_filter_content_TM_DEFAULT_RENDER_PIPE_FILTER_CONTENT_LINEAR : tm_default_render_pipe_image_filter_content = 0 ;
8713pub const tm_default_render_pipe_image_filter_content_TM_DEFAULT_RENDER_PIPE_FILTER_CONTENT_SRGB:
8714    tm_default_render_pipe_image_filter_content = 1;
8715pub const tm_default_render_pipe_image_filter_content_TM_DEFAULT_RENDER_PIPE_FILTER_CONTENT_NORMAL_MAP : tm_default_render_pipe_image_filter_content = 2 ;
8716pub type tm_default_render_pipe_image_filter_content = ::std::os::raw::c_int;
8717pub const tm_default_render_pipe_image_filter_TM_DEFAULT_RENDER_PIPE_GENERATE_IMAGE_FILTER_MIPMAP_BOX : tm_default_render_pipe_image_filter = 0 ;
8718pub const tm_default_render_pipe_image_filter_TM_DEFAULT_RENDER_PIPE_GENERATE_IMAGE_FILTER_SPECULAR_IBL : tm_default_render_pipe_image_filter = 1 ;
8719pub const tm_default_render_pipe_image_filter_TM_DEFAULT_RENDER_PIPE_GENERATE_IMAGE_FILTER_DIFFUSE_IBL : tm_default_render_pipe_image_filter = 2 ;
8720pub type tm_default_render_pipe_image_filter = ::std::os::raw::c_int;
8721pub const TM_FILTER_IMAGE_PRE_CMD: ::std::os::raw::c_int = 0;
8722pub const TM_FILTER_IMAGE_POST_CMD: ::std::os::raw::c_int = 1;
8723pub const TM_FILTER_IMAGE_MAX_RESOURCE_BUFFERS: ::std::os::raw::c_int = 2;
8724pub type _bindgen_ty_106 = ::std::os::raw::c_int;
8725#[repr(C)]
8726#[derive(Copy, Clone)]
8727pub struct tm_default_render_pipe_api {
8728    pub create_module: ::std::option::Option<
8729        unsafe extern "C" fn(
8730            pipe_module: tm_default_render_pipe_module,
8731            allocator: *mut tm_allocator_i,
8732            res_buf: *mut tm_renderer_resource_command_buffer_o,
8733        ) -> *mut tm_render_graph_module_o,
8734    >,
8735    pub destroy_module: ::std::option::Option<
8736        unsafe extern "C" fn(
8737            mod_: *mut tm_render_graph_module_o,
8738            allocator: *mut tm_allocator_i,
8739            res_buf: *mut tm_renderer_resource_command_buffer_o,
8740        ),
8741    >,
8742    pub filter_image: ::std::option::Option<
8743        unsafe extern "C" fn(
8744            backend: *mut tm_renderer_backend_i,
8745            device_affinity_mask: u32,
8746            res_buf: *mut *mut tm_renderer_resource_command_buffer_o,
8747            cmd_buf: *mut tm_renderer_command_buffer_o,
8748            shader_repository: *mut tm_shader_repository_o,
8749            allocator: *mut tm_allocator_i,
8750            input_image_description: *const tm_renderer_image_buffer_t,
8751            input_resource: u32,
8752            input_resource_state: u16,
8753            output_resource: *mut u32,
8754            output_image_description: *mut tm_renderer_image_buffer_t,
8755            filter: tm_default_render_pipe_image_filter,
8756            content: tm_default_render_pipe_image_filter_content,
8757            release_input: bool,
8758        ),
8759    >,
8760}
8761pub const TM_TT_PROP__EXPOSURE_COMPONENT__ENABLED: ::std::os::raw::c_int = 0;
8762pub const TM_TT_PROP__EXPOSURE_COMPONENT__METERING: ::std::os::raw::c_int = 1;
8763pub const TM_TT_PROP__EXPOSURE_COMPONENT__EXPOSURE_COMPENSATION: ::std::os::raw::c_int = 2;
8764pub const TM_TT_PROP__EXPOSURE_COMPONENT__MASK: ::std::os::raw::c_int = 3;
8765pub const TM_TT_PROP__EXPOSURE_COMPONENT__MIN_EV100: ::std::os::raw::c_int = 4;
8766pub const TM_TT_PROP__EXPOSURE_COMPONENT__MAX_EV100: ::std::os::raw::c_int = 5;
8767pub const TM_TT_PROP__EXPOSURE_COMPONENT__SPEED_UP: ::std::os::raw::c_int = 6;
8768pub const TM_TT_PROP__EXPOSURE_COMPONENT__SPEED_DOWN: ::std::os::raw::c_int = 7;
8769pub type _bindgen_ty_107 = ::std::os::raw::c_int;
8770pub const tm_exposure_metering_mode_TM_EXPOSURE_METERING_MODE_MANUAL: tm_exposure_metering_mode = 0;
8771pub const tm_exposure_metering_mode_TM_EXPOSURE_METERING_MODE_AUTOMATIC: tm_exposure_metering_mode =
8772    1;
8773pub type tm_exposure_metering_mode = ::std::os::raw::c_int;
8774pub const tm_exposure_mask_mode_TM_EXPOSURE_MASK_CONSTANT: tm_exposure_mask_mode = 0;
8775pub const tm_exposure_mask_mode_TM_EXPOSURE_MASK_FAVOUR_CENTER: tm_exposure_mask_mode = 1;
8776pub type tm_exposure_mask_mode = ::std::os::raw::c_int;
8777#[repr(C)]
8778#[derive(Copy, Clone)]
8779pub struct tm_exposure_component_t {
8780    pub enabled: bool,
8781    pub _padding_33: [::std::os::raw::c_char; 3usize],
8782    pub metering_mode: tm_exposure_metering_mode,
8783    pub exposure_compensation: f32,
8784    pub mask_mode: tm_exposure_mask_mode,
8785    pub min_ev100: f32,
8786    pub max_ev100: f32,
8787    pub speed_up: f32,
8788    pub speed_down: f32,
8789}
8790#[repr(C)]
8791#[derive(Copy, Clone)]
8792pub struct tm_image_handle_t {
8793    _unused: [u8; 0],
8794}
8795pub const TM_TT_PROP__LIGHT_COMPONENT__TYPE: ::std::os::raw::c_int = 0;
8796pub const TM_TT_PROP__LIGHT_COMPONENT__COLOR: ::std::os::raw::c_int = 1;
8797pub const TM_TT_PROP__LIGHT_COMPONENT__INTENSITY: ::std::os::raw::c_int = 2;
8798pub const TM_TT_PROP__LIGHT_COMPONENT__SPOT_ANGLE_INNER: ::std::os::raw::c_int = 3;
8799pub const TM_TT_PROP__LIGHT_COMPONENT__SPOT_ANGLE_OUTER: ::std::os::raw::c_int = 4;
8800pub const TM_TT_PROP__LIGHT_COMPONENT__CAST_SHADOWS: ::std::os::raw::c_int = 5;
8801pub const TM_TT_PROP__LIGHT_COMPONENT__SHADOW_DEPTH_BIAS: ::std::os::raw::c_int = 6;
8802pub const TM_TT_PROP__LIGHT_COMPONENT__NUM_CASCADES: ::std::os::raw::c_int = 7;
8803pub const TM_TT_PROP__LIGHT_COMPONENT__SHADOW_DISTANCE: ::std::os::raw::c_int = 8;
8804pub const TM_TT_PROP__LIGHT_COMPONENT__UNIFORM_LOG_WEIGHT: ::std::os::raw::c_int = 9;
8805pub const TM_TT_PROP__LIGHT_COMPONENT__IBL_DIFFUSE: ::std::os::raw::c_int = 10;
8806pub const TM_TT_PROP__LIGHT_COMPONENT__IBL_SPECULAR: ::std::os::raw::c_int = 11;
8807pub const TM_TT_PROP__LIGHT_COMPONENT__AREA_EXTENT: ::std::os::raw::c_int = 12;
8808pub const TM_TT_PROP__LIGHT_COMPONENT__AREA_RADIUS: ::std::os::raw::c_int = 13;
8809pub type _bindgen_ty_108 = ::std::os::raw::c_int;
8810pub const TM_LIGHT_TYPE_POINT: ::std::os::raw::c_int = 0;
8811pub const TM_LIGHT_TYPE_SPOT: ::std::os::raw::c_int = 1;
8812pub const TM_LIGHT_TYPE_DIRECTIONAL: ::std::os::raw::c_int = 2;
8813pub const TM_LIGHT_TYPE_IBL: ::std::os::raw::c_int = 3;
8814pub const TM_LIGHT_TYPE_AREA_SPHERE: ::std::os::raw::c_int = 4;
8815pub const TM_LIGHT_TYPE_AREA_RECT: ::std::os::raw::c_int = 5;
8816pub const TM_LIGHT_TYPE_AREA_DISK: ::std::os::raw::c_int = 6;
8817pub type _bindgen_ty_109 = ::std::os::raw::c_int;
8818#[repr(C)]
8819#[derive(Copy, Clone)]
8820pub struct tm_light_component_t {
8821    pub type_: u32,
8822    pub color_rgb: tm_vec3_t,
8823    pub intensity: f32,
8824    pub spot_angle_inner: f32,
8825    pub spot_angle_outer: f32,
8826    pub extent: tm_vec2_t,
8827    pub radius: f32,
8828    pub cast_shadows: bool,
8829    pub _padding_55: [::std::os::raw::c_char; 7usize],
8830    pub shadow_depth_bias: f32,
8831    pub shadow_distance: f32,
8832    pub uniform_log_weight: f32,
8833    pub num_cascades: u8,
8834    pub _padding_60: [::std::os::raw::c_char; 3usize],
8835    pub ibl_diffuse: tm_light_component_t__bindgen_ty_1,
8836    pub ibl_specular: tm_light_component_t__bindgen_ty_2,
8837}
8838#[repr(C)]
8839#[derive(Copy, Clone)]
8840pub struct tm_light_component_t__bindgen_ty_1 {
8841    pub asset: tm_tt_id_t,
8842    pub version: u64,
8843}
8844#[repr(C)]
8845#[derive(Copy, Clone)]
8846pub struct tm_light_component_t__bindgen_ty_2 {
8847    pub asset: tm_tt_id_t,
8848    pub version: u64,
8849}
8850pub const TM_TT_PROP__VOLUME_COMPONENT__TYPE: ::std::os::raw::c_int = 0;
8851pub const TM_TT_PROP__VOLUME_COMPONENT__BLEND_DISTANCE: ::std::os::raw::c_int = 1;
8852pub const TM_TT_PROP__VOLUME_COMPONENT__SPHERE_RADIUS: ::std::os::raw::c_int = 2;
8853pub const TM_TT_PROP__VOLUME_COMPONENT__BOX_LOWERBOUND: ::std::os::raw::c_int = 3;
8854pub const TM_TT_PROP__VOLUME_COMPONENT__BOX_UPPERBOUND: ::std::os::raw::c_int = 4;
8855pub type _bindgen_ty_110 = ::std::os::raw::c_int;
8856pub const tm_tt_volume_type_TM_TT_VOLUME_TYPE_SPHERE: tm_tt_volume_type = 0;
8857pub const tm_tt_volume_type_TM_TT_VOLUME_TYPE_BOX: tm_tt_volume_type = 1;
8858pub const tm_tt_volume_type_TM_TT_VOLUME_TYPE_BOX_EXTENT: tm_tt_volume_type = 2;
8859pub type tm_tt_volume_type = ::std::os::raw::c_int;
8860pub const tm_volume_type_TM_VOLUME_TYPE_SPHERE: tm_volume_type = 0;
8861pub const tm_volume_type_TM_VOLUME_TYPE_BOX: tm_volume_type = 1;
8862pub type tm_volume_type = ::std::os::raw::c_int;
8863#[repr(C)]
8864#[derive(Copy, Clone)]
8865pub struct tm_volume_component_t {
8866    pub type_: tm_volume_type,
8867    pub blend_distance: f32,
8868    pub sphere_radius: f32,
8869    pub box_lower_bound: tm_vec3_t,
8870    pub box_upper_bound: tm_vec3_t,
8871}
8872#[repr(C)]
8873#[derive(Copy, Clone)]
8874pub struct tm_volume_component_api {
8875    pub contains: ::std::option::Option<
8876        unsafe extern "C" fn(
8877            inst: *const tm_volume_component_t,
8878            transform: *const tm_transform_t,
8879            points: *const tm_vec3_t,
8880            result: *mut bool,
8881            count: u32,
8882        ),
8883    >,
8884    pub contains_with_blend: ::std::option::Option<
8885        unsafe extern "C" fn(
8886            inst: *const tm_volume_component_t,
8887            transform: *const tm_transform_t,
8888            points: *const tm_vec3_t,
8889            result: *mut f32,
8890            count: u32,
8891        ),
8892    >,
8893    pub distance: ::std::option::Option<
8894        unsafe extern "C" fn(
8895            inst: *const tm_volume_component_t,
8896            transform: *const tm_transform_t,
8897            points: *const tm_vec3_t,
8898            result: *mut f32,
8899            count: u32,
8900        ),
8901    >,
8902    pub get_volume: ::std::option::Option<
8903        unsafe extern "C" fn(
8904            inst: *const tm_volume_component_t,
8905            transform: *const tm_transform_t,
8906        ) -> f32,
8907    >,
8908    pub sort_volumes_from_point: ::std::option::Option<
8909        unsafe extern "C" fn(
8910            ctx: *mut tm_entity_context_o,
8911            entities: *const tm_entity_t,
8912            entity_transforms: *const tm_transform_component_t,
8913            entity_indices: *const u32,
8914            num_objects: u32,
8915            point: tm_vec3_t,
8916            volume_result: *mut *mut u32,
8917            volume_weights: *mut *mut f32,
8918            global_result: *mut *mut u32,
8919            allocator: *mut tm_allocator_i,
8920        ),
8921    >,
8922}
8923pub const tm_dxc_output_format_TM_DXC_OUTPUT_FORMAT_DXIL: tm_dxc_output_format = 0;
8924pub const tm_dxc_output_format_TM_DXC_OUTPUT_FORMAT_SPIRV: tm_dxc_output_format = 1;
8925pub type tm_dxc_output_format = ::std::os::raw::c_int;
8926#[repr(C)]
8927#[derive(Copy, Clone)]
8928pub struct tm_dxc_shader_compiler_api {
8929    pub load: ::std::option::Option<
8930        unsafe extern "C" fn(dll_path: *const ::std::os::raw::c_char) -> bool,
8931    >,
8932    pub unload: ::std::option::Option<unsafe extern "C" fn()>,
8933    pub compile: ::std::option::Option<
8934        unsafe extern "C" fn(
8935            source: *const ::std::os::raw::c_char,
8936            entry_point: *const ::std::os::raw::c_char,
8937            stage: u32,
8938            output_format: tm_dxc_output_format,
8939            result: *mut tm_renderer_shader_blob_t,
8940            allocator: *mut tm_allocator_i,
8941        ) -> bool,
8942    >,
8943    pub preprocess: ::std::option::Option<
8944        unsafe extern "C" fn(
8945            source: *const ::std::os::raw::c_char,
8946            preprocessed_source_blob: *mut tm_renderer_shader_blob_t,
8947            allocator: *mut tm_allocator_i,
8948        ) -> bool,
8949    >,
8950}
8951pub const TM_TT_PROP__ASSET_BROWSER__SELECTION: ::std::os::raw::c_int = 0;
8952pub const TM_TT_PROP__ASSET_BROWSER__CURRENT_DIRECTORY: ::std::os::raw::c_int = 1;
8953pub const TM_TT_PROP__ASSET_BROWSER__FOCUS: ::std::os::raw::c_int = 2;
8954pub type _bindgen_ty_111 = ::std::os::raw::c_int;
8955pub const tm_asset_save_status_TM_ASSET_SAVE_STATUS__SAVED: tm_asset_save_status = 0;
8956pub const tm_asset_save_status_TM_ASSET_SAVE_STATUS__MODIFIED: tm_asset_save_status = 1;
8957pub const tm_asset_save_status_TM_ASSET_SAVE_STATUS__CREATED: tm_asset_save_status = 2;
8958pub type tm_asset_save_status = ::std::os::raw::c_int;
8959pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__CREATED : tm_asset_save_file_tree_modification_type = 0 ;
8960pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__DELETED : tm_asset_save_file_tree_modification_type = 1 ;
8961pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__MOVED : tm_asset_save_file_tree_modification_type = 2 ;
8962pub const tm_asset_save_file_tree_modification_type_TM_ASSET_SAVE_FILE_TREE_MODIFICATION_TYPE__RENAMED : tm_asset_save_file_tree_modification_type = 3 ;
8963pub type tm_asset_save_file_tree_modification_type = ::std::os::raw::c_int;
8964#[repr(C)]
8965#[derive(Copy, Clone)]
8966pub struct tm_asset_save_file_tree_modification_t {
8967    pub item: tm_tt_id_t,
8968    pub type_: tm_asset_save_file_tree_modification_type,
8969    pub _padding_54: [::std::os::raw::c_char; 4usize],
8970    pub original_name: *const ::std::os::raw::c_char,
8971    pub original_directory: tm_tt_id_t,
8972}
8973#[repr(C)]
8974#[derive(Copy, Clone)]
8975pub struct tm_asset_save_o {
8976    _unused: [u8; 0],
8977}
8978#[repr(C)]
8979#[derive(Copy, Clone)]
8980pub struct tm_asset_save_i {
8981    pub inst: *mut tm_asset_save_o,
8982    pub can_save_individual_assets:
8983        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_save_o) -> bool>,
8984    pub file_tree_modifications: ::std::option::Option<
8985        unsafe extern "C" fn(
8986            inst: *mut tm_asset_save_o,
8987            ta: *mut tm_temp_allocator_i,
8988            n: *mut u32,
8989        ) -> *mut tm_asset_save_file_tree_modification_t,
8990    >,
8991    pub status: ::std::option::Option<
8992        unsafe extern "C" fn(inst: *mut tm_asset_save_o, asset: tm_tt_id_t) -> tm_asset_save_status,
8993    >,
8994    pub save_asset:
8995        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_save_o, asset: tm_tt_id_t)>,
8996    pub revert_asset: ::std::option::Option<
8997        unsafe extern "C" fn(
8998            inst: *mut tm_asset_save_o,
8999            asset: tm_tt_id_t,
9000            undo_scope: tm_tt_undo_scope_t,
9001        ),
9002    >,
9003    pub save_all: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_save_o)>,
9004    pub save_all_except: ::std::option::Option<
9005        unsafe extern "C" fn(inst: *mut tm_asset_save_o, ignore: *mut tm_tt_id_t, num_ignore: u32),
9006    >,
9007    pub asset_root_path: ::std::option::Option<
9008        unsafe extern "C" fn(inst: *const tm_asset_save_o) -> *const ::std::os::raw::c_char,
9009    >,
9010}
9011#[repr(C)]
9012#[derive(Copy, Clone)]
9013pub struct tm_asset_browser_o {
9014    _unused: [u8; 0],
9015}
9016#[repr(C)]
9017#[derive(Copy, Clone)]
9018pub struct tm_asset_browser_create_asset_i {
9019    pub inst: *mut tm_asset_browser_create_asset_o,
9020    pub menu_name: *const ::std::os::raw::c_char,
9021    pub asset_name: *const ::std::os::raw::c_char,
9022    pub create: ::std::option::Option<
9023        unsafe extern "C" fn(
9024            inst: *mut tm_asset_browser_create_asset_o,
9025            tt: *mut tm_the_truth_o,
9026            undo_scope: tm_tt_undo_scope_t,
9027        ) -> tm_tt_id_t,
9028    >,
9029}
9030#[repr(C)]
9031#[derive(Copy, Clone)]
9032pub struct tm_asset_browser_open_asset_api {
9033    pub inst: *mut tm_asset_browser_open_asset_o,
9034    pub open: ::std::option::Option<
9035        unsafe extern "C" fn(
9036            inst: *mut tm_asset_browser_open_asset_o,
9037            ui: *mut tm_ui_o,
9038            tab: *mut tm_tab_i,
9039            object: tm_tt_id_t,
9040        ),
9041    >,
9042    pub can_open: ::std::option::Option<
9043        unsafe extern "C" fn(
9044            inst: *mut tm_asset_browser_open_asset_o,
9045            ui: *mut tm_ui_o,
9046            object: tm_tt_id_t,
9047        ) -> bool,
9048    >,
9049}
9050#[repr(C)]
9051#[derive(Copy, Clone)]
9052pub struct tm_asset_browser_add_asset_api {
9053    pub inst: *mut tm_asset_browser_add_asset_o,
9054    pub current_directory: ::std::option::Option<
9055        unsafe extern "C" fn(
9056            inst: *mut tm_asset_browser_add_asset_o,
9057            ui: *mut tm_ui_o,
9058        ) -> tm_tt_id_t,
9059    >,
9060    pub exists: ::std::option::Option<
9061        unsafe extern "C" fn(
9062            inst: *mut tm_asset_browser_add_asset_o,
9063            directory: tm_tt_id_t,
9064            name: *const ::std::os::raw::c_char,
9065        ) -> tm_tt_id_t,
9066    >,
9067    pub add: ::std::option::Option<
9068        unsafe extern "C" fn(
9069            inst: *mut tm_asset_browser_add_asset_o,
9070            directory: tm_tt_id_t,
9071            object: tm_tt_id_t,
9072            name: *const ::std::os::raw::c_char,
9073            undo_scope: tm_tt_undo_scope_t,
9074            select: bool,
9075            ui: *mut tm_ui_o,
9076        ),
9077    >,
9078    pub add_directory: ::std::option::Option<
9079        unsafe extern "C" fn(
9080            inst: *mut tm_asset_browser_add_asset_o,
9081            parent_directory: tm_tt_id_t,
9082            name: *const ::std::os::raw::c_char,
9083            undo_scope: tm_tt_undo_scope_t,
9084            select: bool,
9085            ui: *mut tm_ui_o,
9086        ) -> tm_tt_id_t,
9087    >,
9088}
9089#[repr(C)]
9090#[derive(Copy, Clone)]
9091pub struct tm_asset_browser_select_asset_api {
9092    pub inst: *mut tm_asset_browser_select_asset_o,
9093    pub select_asset: ::std::option::Option<
9094        unsafe extern "C" fn(
9095            inst: *mut tm_asset_browser_select_asset_o,
9096            tab: *mut tm_tab_i,
9097            ui: *mut tm_ui_o,
9098            asset: tm_tt_id_t,
9099        ),
9100    >,
9101    pub find_asset: ::std::option::Option<
9102        unsafe extern "C" fn(
9103            inst: *mut tm_asset_browser_select_asset_o,
9104            ui: *mut tm_ui_o,
9105            asset: tm_tt_id_t,
9106        ),
9107    >,
9108}
9109#[repr(C)]
9110#[derive(Copy, Clone)]
9111pub struct tm_asset_browser_custom_menu_item_t {
9112    pub ud: *mut ::std::os::raw::c_void,
9113    pub menu_item: ::std::option::Option<
9114        unsafe extern "C" fn(
9115            item: *mut tm_ui_menu_item_t,
9116            ud: *mut ::std::os::raw::c_void,
9117            ab: *mut tm_asset_browser_o,
9118            tt: *mut tm_the_truth_o,
9119            asset_browser_object: tm_tt_id_t,
9120        ),
9121    >,
9122    pub menu_select: ::std::option::Option<
9123        unsafe extern "C" fn(
9124            ud: *mut ::std::os::raw::c_void,
9125            ab: *mut tm_asset_browser_o,
9126            ui: *mut tm_ui_o,
9127            tt: *mut tm_the_truth_o,
9128            asset_browser_object: tm_tt_id_t,
9129            undo_stack: *mut tm_undo_stack_i,
9130        ),
9131    >,
9132}
9133#[repr(C)]
9134#[derive(Copy, Clone)]
9135pub struct tm_asset_browser_config_t {
9136    pub tt: *mut tm_the_truth_o,
9137    pub asset_browser: tm_tt_id_t,
9138    pub undo_stack: *mut tm_undo_stack_i,
9139    pub tab: *mut tm_tab_i,
9140    pub open_ud: *mut ::std::os::raw::c_void,
9141    pub open: ::std::option::Option<
9142        unsafe extern "C" fn(
9143            open_ud: *mut ::std::os::raw::c_void,
9144            ui: *mut tm_ui_o,
9145            tab: *mut tm_tab_i,
9146            asset: tm_tt_id_t,
9147        ),
9148    >,
9149    pub num_custom_menu_items: u32,
9150    pub _padding_227: [::std::os::raw::c_char; 4usize],
9151    pub custom_menu_items: *const tm_asset_browser_custom_menu_item_t,
9152    pub save_interface: *mut tm_asset_save_i,
9153}
9154#[repr(C)]
9155#[derive(Copy, Clone)]
9156pub struct tm_asset_browser_ui_res_t {
9157    pub focus_changed: bool,
9158}
9159#[repr(C)]
9160#[derive(Copy, Clone)]
9161pub struct tm_asset_browser_api {
9162    pub create_asset_browser: ::std::option::Option<
9163        unsafe extern "C" fn(
9164            allocator: *mut tm_allocator_i,
9165            config: *const tm_asset_browser_config_t,
9166        ) -> *mut tm_asset_browser_o,
9167    >,
9168    pub destroy_asset_browser:
9169        ::std::option::Option<unsafe extern "C" fn(asset_browser: *mut tm_asset_browser_o)>,
9170    pub ui: ::std::option::Option<
9171        unsafe extern "C" fn(
9172            inst: *mut tm_asset_browser_o,
9173            asset_root: tm_tt_id_t,
9174            ui: *mut tm_ui_o,
9175            style: *const tm_ui_style_t,
9176            rect: tm_rect_t,
9177            tab_id: u64,
9178        ) -> tm_asset_browser_ui_res_t,
9179    >,
9180    pub set_new_truth: ::std::option::Option<
9181        unsafe extern "C" fn(
9182            inst: *mut tm_asset_browser_o,
9183            tt: *mut tm_the_truth_o,
9184            asset_browser: tm_tt_id_t,
9185        ),
9186    >,
9187    pub menu: ::std::option::Option<
9188        unsafe extern "C" fn(
9189            inst: *mut tm_asset_browser_o,
9190            asset_root: tm_tt_id_t,
9191            ui: *mut tm_ui_o,
9192            style: *const tm_ui_style_t,
9193            pos: tm_vec2_t,
9194        ),
9195    >,
9196    pub process_dropped_os_files: ::std::option::Option<
9197        unsafe extern "C" fn(
9198            inst: *mut tm_asset_browser_o,
9199            ui: *mut tm_ui_o,
9200            asset_root: tm_tt_id_t,
9201            files: *mut *mut ::std::os::raw::c_char,
9202            num_files: u32,
9203        ),
9204    >,
9205    pub focused_object:
9206        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_asset_browser_o) -> tm_tt_id_t>,
9207    pub selected_objects: ::std::option::Option<
9208        unsafe extern "C" fn(
9209            inst: *mut tm_asset_browser_o,
9210            ta: *mut tm_temp_allocator_i,
9211        ) -> *const tm_tt_id_t,
9212    >,
9213}
9214#[repr(C)]
9215#[derive(Copy, Clone)]
9216pub struct tm_profiler_view_o {
9217    _unused: [u8; 0],
9218}
9219#[repr(C)]
9220#[derive(Copy, Clone)]
9221pub struct tm_profiler_view_api {
9222    pub create_profiler_view: ::std::option::Option<
9223        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_profiler_view_o,
9224    >,
9225    pub destroy_profiler_view:
9226        ::std::option::Option<unsafe extern "C" fn(profiler_view: *mut tm_profiler_view_o)>,
9227    pub ui: ::std::option::Option<
9228        unsafe extern "C" fn(
9229            inst: *mut tm_profiler_view_o,
9230            ui: *mut tm_ui_o,
9231            style: *const tm_ui_style_t,
9232            rect: tm_rect_t,
9233            tab_id: u64,
9234        ),
9235    >,
9236    pub start_recording: ::std::option::Option<
9237        unsafe extern "C" fn(inst: *mut tm_profiler_view_o, with_history: bool),
9238    >,
9239    pub stop_recording: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_profiler_view_o)>,
9240    pub is_recording:
9241        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_profiler_view_o) -> bool>,
9242    pub menu: ::std::option::Option<
9243        unsafe extern "C" fn(
9244            inst: *mut tm_profiler_view_o,
9245            ui: *mut tm_ui_o,
9246            style: *const tm_ui_style_t,
9247            pos: tm_vec2_t,
9248        ),
9249    >,
9250}
9251#[repr(C)]
9252#[derive(Copy, Clone)]
9253pub struct tm_properties_view_o {
9254    _unused: [u8; 0],
9255}
9256#[repr(C)]
9257#[derive(Copy, Clone)]
9258pub struct tm_properties_ui_info_t {
9259    pub last_hovered_focusable_control: u64,
9260    pub last_hovered_context_menu_rect: tm_rect_t,
9261}
9262pub const tm_properties_metric_TM_PROPERTIES_METRIC_LABEL_WIDTH: tm_properties_metric = 0;
9263pub const tm_properties_metric_TM_PROPERTIES_METRIC_MARGIN: tm_properties_metric = 1;
9264pub const tm_properties_metric_TM_PROPERTIES_METRIC_ITEM_HEIGHT: tm_properties_metric = 2;
9265pub const tm_properties_metric_TM_PROPERTIES_METRIC_INDENT: tm_properties_metric = 3;
9266pub const tm_properties_metric_TM_PROPERTIES_METRIC_EDIT_WIDTH: tm_properties_metric = 4;
9267pub const tm_properties_metric_TM_PROPERTIES_METRIC_SUBOBJECT_LABEL_MARGIN: tm_properties_metric =
9268    5;
9269pub const tm_properties_metric_TM_PROPERTIES_METRIC_CHECKBOX_CONTROL_WIDTH: tm_properties_metric =
9270    6;
9271pub const tm_properties_metric_TM_PROPERTIES_METRIC_GROUP_RECT_PADDING: tm_properties_metric = 7;
9272pub const tm_properties_metric_TM_PROPERTIES_METRIC_GROUP_LABEL_LEFT_MARGIN: tm_properties_metric =
9273    8;
9274pub const tm_properties_metric_TM_PROPERTIES_METRIC_MENU_WIDTH: tm_properties_metric = 9;
9275pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_RGB_LABEL_SIZE:
9276    tm_properties_metric = 10;
9277pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_INPUT_SIZE: tm_properties_metric =
9278    11;
9279pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_HSV_LABEL_SIZE:
9280    tm_properties_metric = 12;
9281pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_SLIDER_MARGIN:
9282    tm_properties_metric = 13;
9283pub const tm_properties_metric_TM_PROPERTIES_METRIC_COLOR_PICKER_SLIDER_KNOB_SIZE:
9284    tm_properties_metric = 14;
9285pub const tm_properties_metric_TM_PROPERTIES_METRIC_NUM: tm_properties_metric = 15;
9286pub type tm_properties_metric = ::std::os::raw::c_int;
9287#[repr(C)]
9288#[derive(Copy, Clone)]
9289pub struct tm_properties_ui_args_t {
9290    pub pv: *mut tm_properties_view_o,
9291    pub ui: *mut tm_ui_o,
9292    pub uistyle: *mut tm_ui_style_t,
9293    pub tab: *mut tm_tab_i,
9294    pub tt: *mut tm_the_truth_o,
9295    pub asset_root: tm_tt_id_t,
9296    pub undo_stack: *mut tm_undo_stack_i,
9297    pub metrics: *mut f32,
9298    pub last_undo_scope: tm_tt_undo_scope_t,
9299}
9300#[repr(C)]
9301#[derive(Copy, Clone)]
9302pub struct tm_properties_float_display_converter_i {
9303    pub inst: *mut ::std::os::raw::c_void,
9304    pub model_to_display: ::std::option::Option<
9305        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: f32) -> f32,
9306    >,
9307    pub display_to_model: ::std::option::Option<
9308        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: f32) -> f32,
9309    >,
9310    pub get_spinner_settings: ::std::option::Option<
9311        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, spinner: *mut tm_ui_spinner_t),
9312    >,
9313}
9314#[repr(C)]
9315#[derive(Copy, Clone)]
9316pub struct tm_properties_uint32_display_converter_i {
9317    pub inst: *mut ::std::os::raw::c_void,
9318    pub model_to_display: ::std::option::Option<
9319        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: u32) -> u32,
9320    >,
9321    pub display_to_model: ::std::option::Option<
9322        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, v: u32) -> u32,
9323    >,
9324}
9325#[repr(C)]
9326#[derive(Copy, Clone)]
9327pub struct tm_propeties_reference_picker_args_t {
9328    pub tags: *const u64,
9329    pub excludes: *const tm_tt_id_t,
9330    pub num_tags: u32,
9331    pub num_excludes: u32,
9332}
9333#[repr(C)]
9334#[derive(Copy, Clone)]
9335pub struct tm_properties_aspect_i {
9336    pub custom_ui: ::std::option::Option<
9337        unsafe extern "C" fn(
9338            args: *mut tm_properties_ui_args_t,
9339            item_rect: tm_rect_t,
9340            object: tm_tt_id_t,
9341            indent: u32,
9342        ) -> f32,
9343    >,
9344    pub prototype_asset_picker_type_name:
9345        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, o: tm_tt_id_t) -> u64>,
9346    pub custom_subobject_ui: ::std::option::Option<
9347        unsafe extern "C" fn(
9348            args: *mut tm_properties_ui_args_t,
9349            item_rect: tm_rect_t,
9350            name: *const ::std::os::raw::c_char,
9351            tooltip: *const ::std::os::raw::c_char,
9352            subobject: tm_tt_id_t,
9353            indent: u32,
9354        ) -> f32,
9355    >,
9356    pub custom_child_ui: ::std::option::Option<
9357        unsafe extern "C" fn(
9358            args: *mut tm_properties_ui_args_t,
9359            item_rect: tm_rect_t,
9360            parent: tm_tt_id_t,
9361            child: tm_tt_id_t,
9362            indent: u32,
9363        ) -> f32,
9364    >,
9365    pub get_type_display_name:
9366        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
9367    pub get_display_name: ::std::option::Option<
9368        unsafe extern "C" fn(
9369            tt: *const tm_the_truth_o,
9370            object: tm_tt_id_t,
9371            buffer: *mut ::std::os::raw::c_char,
9372            size: u32,
9373        ),
9374    >,
9375}
9376pub type tm_tt_prop_aspect__properties__asset_picker = *mut ::std::os::raw::c_char;
9377pub type tm_tt_prop_aspect__properties__custom_ui = ::std::option::Option<
9378    unsafe extern "C" fn(
9379        args: *mut tm_properties_ui_args_t,
9380        item_rect: tm_rect_t,
9381        name: *const ::std::os::raw::c_char,
9382        tooltip: *const ::std::os::raw::c_char,
9383        object: tm_tt_id_t,
9384        indent: u32,
9385        property: u32,
9386    ) -> f32,
9387>;
9388pub type tm_validate_aspect_i = ::std::option::Option<
9389    unsafe extern "C" fn(
9390        tt: *mut tm_the_truth_o,
9391        o: tm_tt_id_t,
9392        property: u32,
9393        value: *const ::std::os::raw::c_void,
9394    ) -> bool,
9395>;
9396#[repr(C)]
9397#[derive(Copy, Clone)]
9398pub struct tm_properties_view_config_t {
9399    pub tt: *mut tm_the_truth_o,
9400    pub undo_stack: *mut tm_undo_stack_i,
9401}
9402#[repr(C)]
9403#[derive(Copy, Clone)]
9404pub struct tm_properties_float_slider_t {
9405    pub min: f32,
9406    pub max: f32,
9407    pub step: f32,
9408    pub show_edit_box: bool,
9409    pub _padding_310: [::std::os::raw::c_char; 3usize],
9410    pub edit_min: f32,
9411    pub edit_max: f32,
9412    pub converter: *mut tm_properties_float_display_converter_i,
9413}
9414#[repr(C)]
9415#[derive(Copy, Clone)]
9416pub struct tm_properties_view_api {
9417    pub create_properties_view: ::std::option::Option<
9418        unsafe extern "C" fn(
9419            allocator: *mut tm_allocator_i,
9420            config: *const tm_properties_view_config_t,
9421        ) -> *mut tm_properties_view_o,
9422    >,
9423    pub destroy_properties_view:
9424        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_properties_view_o)>,
9425    pub set_object: ::std::option::Option<
9426        unsafe extern "C" fn(inst: *mut tm_properties_view_o, object: tm_tt_id_t) -> bool,
9427    >,
9428    pub set_object_with_mask: ::std::option::Option<
9429        unsafe extern "C" fn(
9430            inst: *mut tm_properties_view_o,
9431            object: tm_tt_id_t,
9432            property_mask: u64,
9433        ) -> bool,
9434    >,
9435    pub set_objects: ::std::option::Option<
9436        unsafe extern "C" fn(
9437            inst: *mut tm_properties_view_o,
9438            objects: *const tm_tt_id_t,
9439            n: u32,
9440        ) -> bool,
9441    >,
9442    pub objects: ::std::option::Option<
9443        unsafe extern "C" fn(inst: *mut tm_properties_view_o) -> *const tm_tt_id_t,
9444    >,
9445    pub ui: ::std::option::Option<
9446        unsafe extern "C" fn(
9447            inst: *mut tm_properties_view_o,
9448            asset_root: tm_tt_id_t,
9449            ui: *mut tm_ui_o,
9450            style: *const tm_ui_style_t,
9451            rect: tm_rect_t,
9452            tab: *mut tm_tab_i,
9453        ),
9454    >,
9455    pub ui_info: ::std::option::Option<
9456        unsafe extern "C" fn(inst: *mut tm_properties_view_o) -> *mut tm_properties_ui_info_t,
9457    >,
9458    pub metrics:
9459        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_properties_view_o) -> *mut f32>,
9460    pub get_type_display_name: ::std::option::Option<
9461        unsafe extern "C" fn(
9462            tt: *const tm_the_truth_o,
9463            object_type: u64,
9464            buffer: *mut ::std::os::raw::c_char,
9465            size: u32,
9466        ),
9467    >,
9468    pub get_display_name: ::std::option::Option<
9469        unsafe extern "C" fn(
9470            tt: *const tm_the_truth_o,
9471            object: tm_tt_id_t,
9472            buffer: *mut ::std::os::raw::c_char,
9473            size: u32,
9474        ),
9475    >,
9476    pub ui_object: ::std::option::Option<
9477        unsafe extern "C" fn(
9478            args: *mut tm_properties_ui_args_t,
9479            item_rect: tm_rect_t,
9480            object: tm_tt_id_t,
9481            indent: u32,
9482        ) -> f32,
9483    >,
9484    pub ui_object_default: ::std::option::Option<
9485        unsafe extern "C" fn(
9486            args: *mut tm_properties_ui_args_t,
9487            item_rect: tm_rect_t,
9488            object: tm_tt_id_t,
9489            indent: u32,
9490        ) -> f32,
9491    >,
9492    pub ui_property: ::std::option::Option<
9493        unsafe extern "C" fn(
9494            args: *mut tm_properties_ui_args_t,
9495            item_rect: tm_rect_t,
9496            object: tm_tt_id_t,
9497            indent: u32,
9498            property: u32,
9499        ) -> f32,
9500    >,
9501    pub ui_property_with_name: ::std::option::Option<
9502        unsafe extern "C" fn(
9503            args: *mut tm_properties_ui_args_t,
9504            item_rect: tm_rect_t,
9505            name: *const ::std::os::raw::c_char,
9506            tooltip: *const ::std::os::raw::c_char,
9507            object: tm_tt_id_t,
9508            indent: u32,
9509            property: u32,
9510        ) -> f32,
9511    >,
9512    pub ui_property_default: ::std::option::Option<
9513        unsafe extern "C" fn(
9514            args: *mut tm_properties_ui_args_t,
9515            item_rect: tm_rect_t,
9516            object: tm_tt_id_t,
9517            indent: u32,
9518            property: u32,
9519        ) -> f32,
9520    >,
9521    pub ui_property_default_with_name: ::std::option::Option<
9522        unsafe extern "C" fn(
9523            args: *mut tm_properties_ui_args_t,
9524            item_rect: tm_rect_t,
9525            name: *const ::std::os::raw::c_char,
9526            tooltip: *const ::std::os::raw::c_char,
9527            object: tm_tt_id_t,
9528            indent: u32,
9529            property: u32,
9530        ) -> f32,
9531    >,
9532    pub ui_tree_item: ::std::option::Option<
9533        unsafe extern "C" fn(
9534            args: *mut tm_properties_ui_args_t,
9535            key: u64,
9536            rect: tm_rect_t,
9537            indent: u32,
9538            expanded_default: bool,
9539            tooltip: *const ::std::os::raw::c_char,
9540        ) -> bool,
9541    >,
9542    pub ui_group: ::std::option::Option<
9543        unsafe extern "C" fn(
9544            args: *mut tm_properties_ui_args_t,
9545            item_rect: tm_rect_t,
9546            name: *const ::std::os::raw::c_char,
9547            tooltip: *const ::std::os::raw::c_char,
9548            object: tm_tt_id_t,
9549            indent: u32,
9550            expanded_default: bool,
9551            is_expanded: *mut bool,
9552        ) -> f32,
9553    >,
9554    pub show_subobject_menu: ::std::option::Option<
9555        unsafe extern "C" fn(
9556            tt: *mut tm_the_truth_o,
9557            undo_stack: *mut tm_undo_stack_i,
9558            ui: *mut tm_ui_o,
9559            uistyle: *mut tm_ui_style_t,
9560            object: tm_tt_id_t,
9561            property: u32,
9562            sub: tm_tt_id_t,
9563            pos: tm_vec2_t,
9564        ) -> tm_tt_undo_scope_t,
9565    >,
9566    pub begin_context_menu_scope:
9567        ::std::option::Option<unsafe extern "C" fn(pv: *mut tm_properties_view_o, rect: tm_rect_t)>,
9568    pub end_context_menu_scope: ::std::option::Option<
9569        unsafe extern "C" fn(
9570            pv: *mut tm_properties_view_o,
9571            out_id: *mut u64,
9572            out_text: *mut *mut ::std::os::raw::c_char,
9573        ),
9574    >,
9575    pub selected_context_menu_item: ::std::option::Option<
9576        unsafe extern "C" fn(
9577            pv: *mut tm_properties_view_o,
9578            out_id: *mut u64,
9579            out_text: *mut *mut ::std::os::raw::c_char,
9580        ),
9581    >,
9582    pub add_context_menu_items: ::std::option::Option<
9583        unsafe extern "C" fn(
9584            pv: *mut tm_properties_view_o,
9585            items: *const tm_ui_menu_item_t,
9586            num_items: u32,
9587        ),
9588    >,
9589    pub context_menu:
9590        ::std::option::Option<unsafe extern "C" fn(args: *mut tm_properties_ui_args_t)>,
9591    pub ui_bool: ::std::option::Option<
9592        unsafe extern "C" fn(
9593            args: *mut tm_properties_ui_args_t,
9594            item_rect: tm_rect_t,
9595            name: *const ::std::os::raw::c_char,
9596            tooltip: *const ::std::os::raw::c_char,
9597            object: tm_tt_id_t,
9598            property: u32,
9599        ) -> f32,
9600    >,
9601    pub ui_uint32: ::std::option::Option<
9602        unsafe extern "C" fn(
9603            args: *mut tm_properties_ui_args_t,
9604            item_rect: tm_rect_t,
9605            name: *const ::std::os::raw::c_char,
9606            tooltip: *const ::std::os::raw::c_char,
9607            object: tm_tt_id_t,
9608            property: u32,
9609            converter: *mut tm_properties_uint32_display_converter_i,
9610        ) -> f32,
9611    >,
9612    pub ui_uint64: ::std::option::Option<
9613        unsafe extern "C" fn(
9614            args: *mut tm_properties_ui_args_t,
9615            item_rect: tm_rect_t,
9616            name: *const ::std::os::raw::c_char,
9617            tooltip: *const ::std::os::raw::c_char,
9618            object: tm_tt_id_t,
9619            property: u32,
9620        ) -> f32,
9621    >,
9622    pub ui_float: ::std::option::Option<
9623        unsafe extern "C" fn(
9624            args: *mut tm_properties_ui_args_t,
9625            item_rect: tm_rect_t,
9626            name: *const ::std::os::raw::c_char,
9627            tooltip: *const ::std::os::raw::c_char,
9628            object: tm_tt_id_t,
9629            property: u32,
9630            converter: *const tm_properties_float_display_converter_i,
9631        ) -> f32,
9632    >,
9633    pub ui_double: ::std::option::Option<
9634        unsafe extern "C" fn(
9635            args: *mut tm_properties_ui_args_t,
9636            item_rect: tm_rect_t,
9637            name: *const ::std::os::raw::c_char,
9638            tooltip: *const ::std::os::raw::c_char,
9639            object: tm_tt_id_t,
9640            property: u32,
9641        ) -> f32,
9642    >,
9643    pub ui_string: ::std::option::Option<
9644        unsafe extern "C" fn(
9645            args: *mut tm_properties_ui_args_t,
9646            item_rect: tm_rect_t,
9647            name: *const ::std::os::raw::c_char,
9648            tooltip: *const ::std::os::raw::c_char,
9649            object: tm_tt_id_t,
9650            property: u32,
9651        ) -> f32,
9652    >,
9653    pub ui_reference: ::std::option::Option<
9654        unsafe extern "C" fn(
9655            args: *mut tm_properties_ui_args_t,
9656            item_rect: tm_rect_t,
9657            name: *const ::std::os::raw::c_char,
9658            tooltip: *const ::std::os::raw::c_char,
9659            object: tm_tt_id_t,
9660            property: u32,
9661        ) -> f32,
9662    >,
9663    pub ui_reference_args: ::std::option::Option<
9664        unsafe extern "C" fn(
9665            args: *mut tm_properties_ui_args_t,
9666            item_rect: tm_rect_t,
9667            name: *const ::std::os::raw::c_char,
9668            tooltip: *const ::std::os::raw::c_char,
9669            object: tm_tt_id_t,
9670            property: u32,
9671            picker_args: *const tm_propeties_reference_picker_args_t,
9672        ) -> f32,
9673    >,
9674    pub ui_subobject: ::std::option::Option<
9675        unsafe extern "C" fn(
9676            args: *mut tm_properties_ui_args_t,
9677            item_rect: tm_rect_t,
9678            name: *const ::std::os::raw::c_char,
9679            tooltip: *const ::std::os::raw::c_char,
9680            object: tm_tt_id_t,
9681            property: u32,
9682            indent: u32,
9683            expanded_by_default: bool,
9684        ) -> f32,
9685    >,
9686    pub ui_reference_set: ::std::option::Option<
9687        unsafe extern "C" fn(
9688            args: *mut tm_properties_ui_args_t,
9689            item_rect: tm_rect_t,
9690            name: *const ::std::os::raw::c_char,
9691            tooltip: *const ::std::os::raw::c_char,
9692            object: tm_tt_id_t,
9693            property: u32,
9694            indent: u32,
9695        ) -> f32,
9696    >,
9697    pub ui_subobject_set: ::std::option::Option<
9698        unsafe extern "C" fn(
9699            args: *mut tm_properties_ui_args_t,
9700            item_rect: tm_rect_t,
9701            name: *const ::std::os::raw::c_char,
9702            tooltip: *const ::std::os::raw::c_char,
9703            object: tm_tt_id_t,
9704            property: u32,
9705            indent: u32,
9706        ) -> f32,
9707    >,
9708    pub ui_subobject_set_item_header: ::std::option::Option<
9709        unsafe extern "C" fn(
9710            args: *mut tm_properties_ui_args_t,
9711            item_rect: tm_rect_t,
9712            object: tm_tt_id_t,
9713            property: u32,
9714            sub: tm_tt_id_t,
9715            indent: u32,
9716            expanded_by_default: bool,
9717        ) -> bool,
9718    >,
9719    pub ui_subobject_set_item: ::std::option::Option<
9720        unsafe extern "C" fn(
9721            args: *mut tm_properties_ui_args_t,
9722            item_rect: tm_rect_t,
9723            object: tm_tt_id_t,
9724            property: u32,
9725            sub: tm_tt_id_t,
9726            indent: u32,
9727            expanded_by_default: bool,
9728        ) -> f32,
9729    >,
9730    pub ui_subobject_direct: ::std::option::Option<
9731        unsafe extern "C" fn(
9732            args: *mut tm_properties_ui_args_t,
9733            item_rect: tm_rect_t,
9734            name: *const ::std::os::raw::c_char,
9735            tooltip: *const ::std::os::raw::c_char,
9736            parent: tm_tt_id_t,
9737            subobject: tm_tt_id_t,
9738            indent: u32,
9739            expanded_by_default: bool,
9740        ) -> f32,
9741    >,
9742    pub ui_uint32_popup_picker: ::std::option::Option<
9743        unsafe extern "C" fn(
9744            args: *mut tm_properties_ui_args_t,
9745            item_rect: tm_rect_t,
9746            name: *const ::std::os::raw::c_char,
9747            tooltip: *const ::std::os::raw::c_char,
9748            object: tm_tt_id_t,
9749            property: u32,
9750            items: *mut *const ::std::os::raw::c_char,
9751            num_items: u32,
9752        ) -> f32,
9753    >,
9754    pub ui_uint64_popup_picker: ::std::option::Option<
9755        unsafe extern "C" fn(
9756            args: *mut tm_properties_ui_args_t,
9757            item_rect: tm_rect_t,
9758            name: *const ::std::os::raw::c_char,
9759            tooltip: *const ::std::os::raw::c_char,
9760            object: tm_tt_id_t,
9761            property: u32,
9762            items: *mut *const ::std::os::raw::c_char,
9763            items_values: *const u64,
9764            num_items: u32,
9765        ) -> f32,
9766    >,
9767    pub ui_reference_popup_picker: ::std::option::Option<
9768        unsafe extern "C" fn(
9769            args: *mut tm_properties_ui_args_t,
9770            item_rect: tm_rect_t,
9771            name: *const ::std::os::raw::c_char,
9772            tooltip: *const ::std::os::raw::c_char,
9773            object: tm_tt_id_t,
9774            property: u32,
9775            items: *mut *const ::std::os::raw::c_char,
9776            items_references: *const tm_tt_id_t,
9777            num_items: u32,
9778        ) -> f32,
9779    >,
9780    pub ui_string_popup_picker: ::std::option::Option<
9781        unsafe extern "C" fn(
9782            args: *mut tm_properties_ui_args_t,
9783            item_rect: tm_rect_t,
9784            name: *const ::std::os::raw::c_char,
9785            tooltip: *const ::std::os::raw::c_char,
9786            object: tm_tt_id_t,
9787            property: u32,
9788            items: *mut *const ::std::os::raw::c_char,
9789            num_items: u32,
9790        ) -> f32,
9791    >,
9792    pub ui_uint32_dropdown: ::std::option::Option<
9793        unsafe extern "C" fn(
9794            args: *mut tm_properties_ui_args_t,
9795            item_rect: tm_rect_t,
9796            name: *const ::std::os::raw::c_char,
9797            tooltip: *const ::std::os::raw::c_char,
9798            object: tm_tt_id_t,
9799            property: u32,
9800            items: *mut *const ::std::os::raw::c_char,
9801            item_tooltips: *mut *const ::std::os::raw::c_char,
9802            items_uint32: *const u32,
9803            num_items: u32,
9804        ) -> f32,
9805    >,
9806    pub ui_uint64_dropdown: ::std::option::Option<
9807        unsafe extern "C" fn(
9808            args: *mut tm_properties_ui_args_t,
9809            item_rect: tm_rect_t,
9810            name: *const ::std::os::raw::c_char,
9811            tooltip: *const ::std::os::raw::c_char,
9812            object: tm_tt_id_t,
9813            property: u32,
9814            items: *mut *const ::std::os::raw::c_char,
9815            item_tooltips: *mut *const ::std::os::raw::c_char,
9816            items_uint64: *const u64,
9817            num_items: u32,
9818        ) -> f32,
9819    >,
9820    pub ui_float_slider: ::std::option::Option<
9821        unsafe extern "C" fn(
9822            args: *mut tm_properties_ui_args_t,
9823            item_rect: tm_rect_t,
9824            name: *const ::std::os::raw::c_char,
9825            tooltip: *const ::std::os::raw::c_char,
9826            object: tm_tt_id_t,
9827            property: u32,
9828            slider: *const tm_properties_float_slider_t,
9829        ) -> f32,
9830    >,
9831    pub ui_vec2: ::std::option::Option<
9832        unsafe extern "C" fn(
9833            args: *mut tm_properties_ui_args_t,
9834            item_rect: tm_rect_t,
9835            name: *const ::std::os::raw::c_char,
9836            tooltip: *const ::std::os::raw::c_char,
9837            position: tm_tt_id_t,
9838        ) -> f32,
9839    >,
9840    pub ui_vec3: ::std::option::Option<
9841        unsafe extern "C" fn(
9842            args: *mut tm_properties_ui_args_t,
9843            item_rect: tm_rect_t,
9844            name: *const ::std::os::raw::c_char,
9845            tooltip: *const ::std::os::raw::c_char,
9846            position: tm_tt_id_t,
9847        ) -> f32,
9848    >,
9849    pub ui_vec4: ::std::option::Option<
9850        unsafe extern "C" fn(
9851            args: *mut tm_properties_ui_args_t,
9852            item_rect: tm_rect_t,
9853            name: *const ::std::os::raw::c_char,
9854            tooltip: *const ::std::os::raw::c_char,
9855            position: tm_tt_id_t,
9856        ) -> f32,
9857    >,
9858    pub ui_color_picker: ::std::option::Option<
9859        unsafe extern "C" fn(
9860            args: *mut tm_properties_ui_args_t,
9861            item_rect: tm_rect_t,
9862            name: *const ::std::os::raw::c_char,
9863            tooltip: *const ::std::os::raw::c_char,
9864            color: tm_tt_id_t,
9865        ) -> f32,
9866    >,
9867    pub ui_rotation: ::std::option::Option<
9868        unsafe extern "C" fn(
9869            args: *mut tm_properties_ui_args_t,
9870            item_rect: tm_rect_t,
9871            name: *const ::std::os::raw::c_char,
9872            tooltip: *const ::std::os::raw::c_char,
9873            rotation: tm_tt_id_t,
9874        ) -> f32,
9875    >,
9876    pub ui_visibility_flags: ::std::option::Option<
9877        unsafe extern "C" fn(
9878            args: *mut tm_properties_ui_args_t,
9879            item_rect: tm_rect_t,
9880            name: *const ::std::os::raw::c_char,
9881            tooltip: *const ::std::os::raw::c_char,
9882            object: tm_tt_id_t,
9883            property: u32,
9884            indent: u32,
9885        ) -> f32,
9886    >,
9887    pub ui_label: ::std::option::Option<
9888        unsafe extern "C" fn(
9889            args: *mut tm_properties_ui_args_t,
9890            item_rect: tm_rect_t,
9891            name: *const ::std::os::raw::c_char,
9892            tooltip: *const ::std::os::raw::c_char,
9893        ) -> f32,
9894    >,
9895    pub ui_horizontal_line: ::std::option::Option<
9896        unsafe extern "C" fn(args: *mut tm_properties_ui_args_t, item_rect: tm_rect_t) -> f32,
9897    >,
9898    pub ui_static_text: ::std::option::Option<
9899        unsafe extern "C" fn(
9900            args: *mut tm_properties_ui_args_t,
9901            item_rect: tm_rect_t,
9902            name: *const ::std::os::raw::c_char,
9903            tooltip: *const ::std::os::raw::c_char,
9904            text: *const ::std::os::raw::c_char,
9905        ) -> f32,
9906    >,
9907    pub ui_prototype: ::std::option::Option<
9908        unsafe extern "C" fn(
9909            args: *mut tm_properties_ui_args_t,
9910            item_rect: tm_rect_t,
9911            name: *const ::std::os::raw::c_char,
9912            tooltip: *const ::std::os::raw::c_char,
9913            parent: tm_tt_id_t,
9914            property: u32,
9915            subobject: tm_tt_id_t,
9916            pick_type_hash: u64,
9917        ) -> f32,
9918    >,
9919    pub ui_open_path: ::std::option::Option<
9920        unsafe extern "C" fn(
9921            args: *mut tm_properties_ui_args_t,
9922            item_rect: tm_rect_t,
9923            name: *const ::std::os::raw::c_char,
9924            tooltip: *const ::std::os::raw::c_char,
9925            object: tm_tt_id_t,
9926            property: u32,
9927            extensions: *const ::std::os::raw::c_char,
9928            description: *const ::std::os::raw::c_char,
9929        ) -> f32,
9930    >,
9931    pub ui_save_path: ::std::option::Option<
9932        unsafe extern "C" fn(
9933            args: *mut tm_properties_ui_args_t,
9934            item_rect: tm_rect_t,
9935            name: *const ::std::os::raw::c_char,
9936            tooltip: *const ::std::os::raw::c_char,
9937            object: tm_tt_id_t,
9938            property: u32,
9939            extensions: *const ::std::os::raw::c_char,
9940            description: *const ::std::os::raw::c_char,
9941        ) -> f32,
9942    >,
9943    pub ui_color_button: ::std::option::Option<
9944        unsafe extern "C" fn(
9945            args: *mut tm_properties_ui_args_t,
9946            color_button: *const tm_ui_button_t,
9947            color: tm_tt_id_t,
9948        ) -> bool,
9949    >,
9950    pub ui_expanded_color_picker: ::std::option::Option<
9951        unsafe extern "C" fn(
9952            args: *mut tm_properties_ui_args_t,
9953            item_rect: tm_rect_t,
9954            color: tm_tt_id_t,
9955        ) -> f32,
9956    >,
9957    pub internal__copy_expanded_state: ::std::option::Option<
9958        unsafe extern "C" fn(
9959            pv: *mut tm_properties_view_o,
9960            from_key: tm_tt_id_t,
9961            to_key: tm_tt_id_t,
9962        ),
9963    >,
9964    pub ui_multi_object: ::std::option::Option<
9965        unsafe extern "C" fn(
9966            args: *mut tm_properties_ui_args_t,
9967            item_rect: tm_rect_t,
9968            parent_proxy: tm_tt_id_t,
9969            property: u32,
9970            objects: *const tm_tt_id_t,
9971            n: u32,
9972            indent: u32,
9973        ) -> f32,
9974    >,
9975    pub proxy_to_objects: ::std::option::Option<
9976        unsafe extern "C" fn(pv: *mut tm_properties_view_o, proxy: tm_tt_id_t) -> *const tm_tt_id_t,
9977    >,
9978    pub multi_proxy: ::std::option::Option<
9979        unsafe extern "C" fn(
9980            pv: *mut tm_properties_view_o,
9981            parent_proxy: tm_tt_id_t,
9982            property: u32,
9983            objects: *const tm_tt_id_t,
9984            n: u32,
9985        ) -> tm_tt_id_t,
9986    >,
9987    pub get_property_value: ::std::option::Option<
9988        unsafe extern "C" fn(
9989            pv: *mut tm_properties_view_o,
9990            object: tm_tt_id_t,
9991            property: u32,
9992            ta: *mut tm_temp_allocator_i,
9993        ) -> *const tm_tt_prop_value_t,
9994    >,
9995    pub was_changed: ::std::option::Option<
9996        unsafe extern "C" fn(
9997            args: *mut tm_properties_ui_args_t,
9998            object: tm_tt_id_t,
9999            property: u32,
10000        ) -> bool,
10001    >,
10002    pub popup_pick_with_categories: ::std::option::Option<
10003        unsafe extern "C" fn(
10004            args: *mut tm_properties_ui_args_t,
10005            ui_id: u64,
10006            pos: tm_vec2_t,
10007            strings: *const *const ::std::os::raw::c_char,
10008            categories: *const *const ::std::os::raw::c_char,
10009            num_strings: u32,
10010            pick_index: *mut u32,
10011        ) -> bool,
10012    >,
10013}
10014#[repr(C)]
10015#[derive(Copy, Clone)]
10016pub struct tm_tree_view_o {
10017    _unused: [u8; 0],
10018}
10019#[repr(C)]
10020#[derive(Copy, Clone)]
10021pub struct tm_tree_view_children_t {
10022    pub children: *const tm_tt_id_t,
10023    pub child_count: u32,
10024    pub property: u32,
10025    pub aspect_reference_type: u32,
10026    pub _padding_29: [::std::os::raw::c_char; 4usize],
10027}
10028#[repr(C)]
10029#[derive(Copy, Clone)]
10030pub struct tm_tree_view_aspect_i {
10031    pub setup: ::std::option::Option<
10032        unsafe extern "C" fn(
10033            state: *mut ::std::os::raw::c_void,
10034            tree: *mut tm_tree_view_o,
10035            tt: *const tm_the_truth_o,
10036            root: tm_tt_id_t,
10037        ),
10038    >,
10039    pub context_menu: ::std::option::Option<
10040        unsafe extern "C" fn(
10041            state: *mut ::std::os::raw::c_void,
10042            tree: *mut tm_tree_view_o,
10043            tt: *mut tm_the_truth_o,
10044            undo_stack: *mut tm_undo_stack_i,
10045            ui: *mut tm_ui_o,
10046            uistyle: *const tm_ui_style_t,
10047            pos: tm_vec2_t,
10048            parent: *mut tm_tree_view_parent_t,
10049            object: tm_tt_id_t,
10050            object_property: u32,
10051        ),
10052    >,
10053    pub compute_node_properties: ::std::option::Option<
10054        unsafe extern "C" fn(
10055            state: *mut ::std::os::raw::c_void,
10056            tree: *mut tm_tree_view_o,
10057            tt: *mut tm_the_truth_o,
10058            parent: *const tm_tree_view_parent_t,
10059            object: tm_tt_id_t,
10060            can_expand: *mut bool,
10061            can_select: *mut bool,
10062            can_drop: *mut bool,
10063            can_drag: *mut bool,
10064            expanded_key: *mut u64,
10065            ta: *mut tm_temp_allocator_i,
10066        ),
10067    >,
10068    pub ui: ::std::option::Option<
10069        unsafe extern "C" fn(
10070            state: *mut ::std::os::raw::c_void,
10071            tree: *mut tm_tree_view_o,
10072            tt: *mut tm_the_truth_o,
10073            ui: *mut tm_ui_o,
10074            uistyle: *mut tm_ui_style_t,
10075            object: tm_tt_id_t,
10076            tree_has_focus: bool,
10077            res: *mut tm_ui_tree_item_res_t,
10078            can_drop: bool,
10079        ),
10080    >,
10081    pub icon: ::std::option::Option<
10082        unsafe extern "C" fn(
10083            state: *mut ::std::os::raw::c_void,
10084            tree: *mut tm_tree_view_o,
10085            tt: *mut tm_the_truth_o,
10086            ui: *mut tm_ui_o,
10087            uistyle: *const tm_ui_style_t,
10088            object: tm_tt_id_t,
10089            rect: tm_rect_t,
10090            res: *mut tm_ui_tree_item_res_t,
10091        ) -> tm_rect_t,
10092    >,
10093    pub additional_elements: ::std::option::Option<
10094        unsafe extern "C" fn(
10095            state: *mut ::std::os::raw::c_void,
10096            tree: *mut tm_tree_view_o,
10097            tt: *mut tm_the_truth_o,
10098            ui: *mut tm_ui_o,
10099            uistyle: *const tm_ui_style_t,
10100            object: tm_tt_id_t,
10101            parent: *mut tm_tree_view_parent_t,
10102            rect: tm_rect_t,
10103            res: *mut tm_ui_tree_item_res_t,
10104            metrics: *mut tm_ui_tree_item_metrics_t,
10105        ),
10106    >,
10107    pub display_name: ::std::option::Option<
10108        unsafe extern "C" fn(
10109            state: *mut ::std::os::raw::c_void,
10110            tree: *mut tm_tree_view_o,
10111            tt: *mut tm_the_truth_o,
10112            object: tm_tt_id_t,
10113            buffer: *mut ::std::os::raw::c_char,
10114            buffer_size: u32,
10115        ),
10116    >,
10117    pub tooltip: ::std::option::Option<
10118        unsafe extern "C" fn(
10119            state: *mut ::std::os::raw::c_void,
10120            tree: *mut tm_tree_view_o,
10121            tt: *mut tm_the_truth_o,
10122            ui: *mut tm_ui_o,
10123            uistyle: *const tm_ui_style_t,
10124            object: tm_tt_id_t,
10125        ),
10126    >,
10127    pub get_node_children: ::std::option::Option<
10128        unsafe extern "C" fn(
10129            state: *mut ::std::os::raw::c_void,
10130            tree: *mut tm_tree_view_o,
10131            tt: *mut tm_the_truth_o,
10132            parent: *mut tm_tree_view_parent_t,
10133            object: tm_tt_id_t,
10134            ta: *mut tm_temp_allocator_i,
10135        ) -> *mut tm_tree_view_children_t,
10136    >,
10137}
10138#[repr(C)]
10139#[derive(Copy, Clone)]
10140pub struct tm_tree_view_setup_t {
10141    pub allocator: *mut tm_allocator_i,
10142    pub undo_stack: *mut tm_undo_stack_i,
10143    pub tt: *mut tm_the_truth_o,
10144    pub keyboard_interaction: ::std::option::Option<
10145        unsafe extern "C" fn(
10146            state: *mut ::std::os::raw::c_void,
10147            tree: *mut tm_tree_view_o,
10148            ui: *mut tm_ui_o,
10149            is_first_responder: bool,
10150        ),
10151    >,
10152    pub toolbar: ::std::option::Option<
10153        unsafe extern "C" fn(
10154            state: *mut ::std::os::raw::c_void,
10155            tree: *mut tm_tree_view_o,
10156            tt: *mut tm_the_truth_o,
10157            ui: *mut tm_ui_o,
10158            uistyle: *const tm_ui_style_t,
10159            rect: tm_rect_t,
10160            is_first_responder: bool,
10161        ) -> tm_rect_t,
10162    >,
10163    pub root: tm_tt_id_t,
10164    pub cache_tree_heights: bool,
10165    pub _padding_103: [::std::os::raw::c_char; 7usize],
10166    pub state: *mut ::std::os::raw::c_void,
10167}
10168#[repr(C)]
10169#[derive(Copy, Clone)]
10170pub struct tm_tree_view_ui_res_t {
10171    pub focus_changed: bool,
10172    pub _padding_114: [::std::os::raw::c_char; 7usize],
10173    pub focus: tm_tt_id_t,
10174    pub selection_changed: bool,
10175    pub focus_on_tree_background: bool,
10176    pub _padding_124: [::std::os::raw::c_char; 6usize],
10177}
10178#[repr(C)]
10179#[derive(Copy, Clone)]
10180pub struct tm_tree_view_parent_t {
10181    pub id: tm_tt_id_t,
10182    pub property: u32,
10183    pub aspect_reference_type: u32,
10184    pub parent: *mut tm_tree_view_parent_t,
10185    pub pr: u32,
10186    pub _padding_148: [::std::os::raw::c_char; 4usize],
10187    pub expanded_key: u64,
10188}
10189#[repr(C)]
10190#[derive(Copy, Clone)]
10191pub struct tm_tree_view_api {
10192    pub create_tree_view: ::std::option::Option<
10193        unsafe extern "C" fn(setup: *const tm_tree_view_setup_t) -> *mut tm_tree_view_o,
10194    >,
10195    pub destroy_tree_view: ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o)>,
10196    pub ui: ::std::option::Option<
10197        unsafe extern "C" fn(
10198            tree: *mut tm_tree_view_o,
10199            ui: *mut tm_ui_o,
10200            style: *const tm_ui_style_t,
10201            rect: tm_rect_t,
10202        ) -> tm_tree_view_ui_res_t,
10203    >,
10204    pub property_group_object: ::std::option::Option<
10205        unsafe extern "C" fn(object: tm_tt_id_t, property: u32) -> tm_tt_id_t,
10206    >,
10207    pub set_expanded: ::std::option::Option<
10208        unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t, expanded: bool),
10209    >,
10210    pub is_expanded: ::std::option::Option<
10211        unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t) -> bool,
10212    >,
10213    pub select:
10214        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
10215    pub add_to_selection:
10216        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
10217    pub scroll_to_object:
10218        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
10219    pub deselect_all: ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o)>,
10220    pub rename:
10221        ::std::option::Option<unsafe extern "C" fn(tree: *mut tm_tree_view_o, object: tm_tt_id_t)>,
10222    pub get_sorted_subobjects: ::std::option::Option<
10223        unsafe extern "C" fn(
10224            tree: *const tm_tree_view_o,
10225            object: tm_tt_id_t,
10226            property: u32,
10227            ta: *mut tm_temp_allocator_i,
10228        ) -> *const tm_tt_id_t,
10229    >,
10230    pub selected_objects: ::std::option::Option<
10231        unsafe extern "C" fn(
10232            inst: *mut tm_tree_view_o,
10233            ta: *mut tm_temp_allocator_i,
10234        ) -> *const tm_tt_id_t,
10235    >,
10236    pub get_root_object:
10237        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tree_view_o) -> tm_tt_id_t>,
10238    pub set_root_object:
10239        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tree_view_o, object: tm_tt_id_t)>,
10240    pub add_default_menu_items: ::std::option::Option<
10241        unsafe extern "C" fn(
10242            tree: *mut tm_tree_view_o,
10243            parent: *mut tm_tree_view_parent_t,
10244            object: tm_tt_id_t,
10245            object_property: u32,
10246            id_base: u64,
10247            items: *mut *mut tm_ui_menu_item_t,
10248            ta: *mut tm_temp_allocator_i,
10249        ),
10250    >,
10251    pub execute_menu_item: ::std::option::Option<
10252        unsafe extern "C" fn(
10253            tree: *mut tm_tree_view_o,
10254            parent: *mut tm_tree_view_parent_t,
10255            object: tm_tt_id_t,
10256            object_property: u32,
10257            id_base: u64,
10258            res: *const tm_ui_menu_result_t,
10259        ),
10260    >,
10261    pub set_empty_text: ::std::option::Option<
10262        unsafe extern "C" fn(tree: *mut tm_tree_view_o, text: *const ::std::os::raw::c_char),
10263    >,
10264    pub filter_nodes: ::std::option::Option<
10265        unsafe extern "C" fn(
10266            tree: *mut tm_tree_view_o,
10267            node_type: u64,
10268            text: *const ::std::os::raw::c_char,
10269            case_unsensitive: bool,
10270        ),
10271    >,
10272}
10273#[repr(C)]
10274#[derive(Copy, Clone)]
10275pub struct tm_ui_popup_item_picker_t {
10276    pub id: u64,
10277    pub pos: tm_vec2_t,
10278    pub search_text: *mut ::std::os::raw::c_char,
10279    pub search_text_len: u32,
10280    pub _padding_21: [::std::os::raw::c_char; 4usize],
10281    pub strings: *const *const ::std::os::raw::c_char,
10282    pub num_strings: u32,
10283    pub _padding_26: [::std::os::raw::c_char; 4usize],
10284}
10285#[repr(C)]
10286#[derive(Copy, Clone)]
10287pub struct tm_ui_category_popup_item_picker_t {
10288    pub id: u64,
10289    pub pos: tm_vec2_t,
10290    pub search_text: *mut ::std::os::raw::c_char,
10291    pub search_text_len: u32,
10292    pub _padding_36: [::std::os::raw::c_char; 4usize],
10293    pub strings: *const *const ::std::os::raw::c_char,
10294    pub categories: *const *const ::std::os::raw::c_char,
10295    pub num_strings: u32,
10296    pub _padding_42: [::std::os::raw::c_char; 4usize],
10297    pub expanded: *mut tm_set_t,
10298}
10299#[repr(C)]
10300#[derive(Copy, Clone)]
10301pub struct tm_ui_popup_asset_picker_t {
10302    pub id: u64,
10303    pub pos: tm_vec2_t,
10304    pub search_text: *mut ::std::os::raw::c_char,
10305    pub search_text_len: u32,
10306    pub _padding_54: [::std::os::raw::c_char; 4usize],
10307    pub tt: *mut tm_the_truth_o,
10308    pub asset_root: tm_tt_id_t,
10309    pub type_hash: u64,
10310}
10311#[repr(C)]
10312#[derive(Copy, Clone)]
10313pub struct tm_ui_popup_item_picker_api {
10314    pub pick: ::std::option::Option<
10315        unsafe extern "C" fn(
10316            ui: *mut tm_ui_o,
10317            uistyle_in: *const tm_ui_style_t,
10318            c: *const tm_ui_popup_item_picker_t,
10319            picked: *mut u32,
10320        ) -> bool,
10321    >,
10322    pub pick_with_categories: ::std::option::Option<
10323        unsafe extern "C" fn(
10324            ui: *mut tm_ui_o,
10325            uistyle_in: *const tm_ui_style_t,
10326            c: *const tm_ui_category_popup_item_picker_t,
10327            picked: *mut u32,
10328        ) -> bool,
10329    >,
10330    pub pick_asset: ::std::option::Option<
10331        unsafe extern "C" fn(
10332            ui: *mut tm_ui_o,
10333            uistyle_in: *const tm_ui_style_t,
10334            c: *const tm_ui_popup_asset_picker_t,
10335            asset: *mut tm_tt_id_t,
10336        ) -> bool,
10337    >,
10338}
10339pub const TM_TT_PROP__CAMERA_COMPONENT__NEAR_PLANE: ::std::os::raw::c_int = 0;
10340pub const TM_TT_PROP__CAMERA_COMPONENT__FAR_PLANE: ::std::os::raw::c_int = 1;
10341pub const TM_TT_PROP__CAMERA_COMPONENT__VERTICAL_FOV: ::std::os::raw::c_int = 2;
10342pub const TM_TT_PROP__CAMERA_COMPONENT__TRANSLATION_SPEED: ::std::os::raw::c_int = 3;
10343pub const TM_TT_PROP__CAMERA_COMPONENT__ROTATION_SPEED: ::std::os::raw::c_int = 4;
10344pub const TM_TT_PROP__CAMERA_COMPONENT__TRANSLATION_DAMPING: ::std::os::raw::c_int = 5;
10345pub type _bindgen_ty_112 = ::std::os::raw::c_int;
10346#[repr(C)]
10347#[derive(Copy, Clone)]
10348pub struct tm_camera_component_t {
10349    pub near_plane: f32,
10350    pub far_plane: f32,
10351    pub vertical_fov: f32,
10352    pub translation_speed: f32,
10353    pub rotation_speed: f32,
10354    pub translation_damping: f32,
10355}
10356pub const TM_TT_PROP__ENTITY__NAME: ::std::os::raw::c_int = 0;
10357pub const TM_TT_PROP__ENTITY__COMPONENTS: ::std::os::raw::c_int = 1;
10358pub const TM_TT_PROP__ENTITY__CHILDREN: ::std::os::raw::c_int = 2;
10359pub type _bindgen_ty_113 = ::std::os::raw::c_int;
10360#[repr(C)]
10361#[derive(Copy, Clone)]
10362pub struct tm_component_mask_t {
10363    pub bits: [u64; 16usize],
10364}
10365#[repr(C)]
10366#[derive(Copy, Clone)]
10367pub struct tm_entity_array_t {
10368    pub entities: *mut tm_entity_t,
10369    pub n: u32,
10370    pub _padding_79: [::std::os::raw::c_char; 4usize],
10371}
10372#[repr(C)]
10373pub struct tm_entity_set_t {
10374    pub total_entities: u32,
10375    pub num_arrays: u32,
10376    pub arrays: __IncompleteArrayField<tm_entity_array_t>,
10377}
10378#[repr(C)]
10379#[derive(Copy, Clone)]
10380pub struct tm_component_i {
10381    pub name: *const ::std::os::raw::c_char,
10382    pub bytes: u32,
10383    pub _padding_103: [::std::os::raw::c_char; 4usize],
10384    pub default_data: *const ::std::os::raw::c_void,
10385    pub manager: *mut tm_component_manager_o,
10386    pub components_created:
10387        ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o)>,
10388    pub load_asset: ::std::option::Option<
10389        unsafe extern "C" fn(
10390            manager: *mut tm_component_manager_o,
10391            e: tm_entity_t,
10392            data: *mut ::std::os::raw::c_void,
10393            tt: *const tm_the_truth_o,
10394            asset: tm_tt_id_t,
10395        ) -> bool,
10396    >,
10397    pub asset_loaded: ::std::option::Option<
10398        unsafe extern "C" fn(
10399            manager: *mut tm_component_manager_o,
10400            e: tm_entity_t,
10401            data: *mut ::std::os::raw::c_void,
10402        ),
10403    >,
10404    pub asset_loaded_sort_order: f64,
10405    pub asset_reloaded: ::std::option::Option<
10406        unsafe extern "C" fn(
10407            manager: *mut tm_component_manager_o,
10408            e: tm_entity_t,
10409            data: *mut ::std::os::raw::c_void,
10410        ),
10411    >,
10412    pub add: ::std::option::Option<
10413        unsafe extern "C" fn(
10414            manager: *mut tm_component_manager_o,
10415            e: tm_entity_t,
10416            data: *mut ::std::os::raw::c_void,
10417        ),
10418    >,
10419    pub remove: ::std::option::Option<
10420        unsafe extern "C" fn(
10421            manager: *mut tm_component_manager_o,
10422            e: tm_entity_t,
10423            data: *mut ::std::os::raw::c_void,
10424        ),
10425    >,
10426    pub destroy: ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o)>,
10427    pub debug_draw: ::std::option::Option<
10428        unsafe extern "C" fn(
10429            manager: *mut tm_component_manager_o,
10430            e: *mut tm_entity_t,
10431            data: *mut *const ::std::os::raw::c_void,
10432            n: u32,
10433            pbuf: *mut tm_primitive_drawer_buffer_t,
10434            vbuf: *mut tm_primitive_drawer_buffer_t,
10435            allocator: *mut tm_allocator_i,
10436            camera: *const tm_camera_t,
10437            viewport: tm_rect_t,
10438        ),
10439    >,
10440    pub debug_draw_settings: tm_tt_id_t,
10441}
10442#[repr(C)]
10443#[derive(Copy, Clone)]
10444pub struct tm_engine_update_array_t {
10445    pub entities: *mut tm_entity_t,
10446    pub components: [*mut ::std::os::raw::c_void; 16usize],
10447    pub component_bytes: [u32; 16usize],
10448    pub n: u32,
10449    pub _padding_171: [::std::os::raw::c_char; 4usize],
10450}
10451#[repr(C)]
10452#[derive(Copy, Clone)]
10453pub struct tm_entity_blackboard_value_t {
10454    pub id: u64,
10455    pub __bindgen_anon_1: tm_entity_blackboard_value_t__bindgen_ty_1,
10456}
10457#[repr(C)]
10458#[derive(Copy, Clone)]
10459pub union tm_entity_blackboard_value_t__bindgen_ty_1 {
10460    pub double_value: f64,
10461    pub ptr_value: *mut ::std::os::raw::c_void,
10462    _bindgen_union_align: u64,
10463}
10464#[repr(C)]
10465pub struct tm_engine_update_set_t {
10466    pub engine: *const tm_engine_i,
10467    pub total_entities: u32,
10468    pub _padding_194: [::std::os::raw::c_char; 4usize],
10469    pub blackboard_start: *const tm_entity_blackboard_value_t,
10470    pub blackboard_end: *const tm_entity_blackboard_value_t,
10471    pub num_arrays: u32,
10472    pub _padding_198: [::std::os::raw::c_char; 4usize],
10473    pub arrays: __IncompleteArrayField<tm_engine_update_array_t>,
10474}
10475#[repr(C)]
10476#[derive(Copy, Clone)]
10477pub struct tm_engine_o {
10478    _unused: [u8; 0],
10479}
10480#[repr(C)]
10481#[derive(Copy, Clone)]
10482pub struct tm_engine_i {
10483    pub name: *const ::std::os::raw::c_char,
10484    pub disabled: bool,
10485    pub _padding_215: [::std::os::raw::c_char; 3usize],
10486    pub num_components: u32,
10487    pub components: [u32; 16usize],
10488    pub excludes: [bool; 16usize],
10489    pub writes: [bool; 16usize],
10490    pub inst: *mut tm_engine_o,
10491    pub update: ::std::option::Option<
10492        unsafe extern "C" fn(inst: *mut tm_engine_o, data: *mut tm_engine_update_set_t),
10493    >,
10494    pub filter: ::std::option::Option<
10495        unsafe extern "C" fn(
10496            inst: *mut tm_engine_o,
10497            components: *const u32,
10498            num_components: u32,
10499            mask: *const tm_component_mask_t,
10500        ) -> bool,
10501    >,
10502}
10503#[repr(C)]
10504#[derive(Copy, Clone)]
10505pub struct tm_entity_system_o {
10506    _unused: [u8; 0],
10507}
10508#[repr(C)]
10509#[derive(Copy, Clone)]
10510pub struct tm_entity_system_i {
10511    pub name: *const ::std::os::raw::c_char,
10512    pub disabled: bool,
10513    pub _padding_285: [::std::os::raw::c_char; 7usize],
10514    pub inst: *mut tm_entity_system_o,
10515    pub update: ::std::option::Option<
10516        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, inst: *mut tm_entity_system_o),
10517    >,
10518}
10519pub type tm_entity_simulation_i =
10520    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>;
10521pub type tm_entity_create_component_i =
10522    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>;
10523#[repr(C)]
10524#[derive(Copy, Clone)]
10525pub struct tm_entity_hot_reload_component_i {
10526    pub name_hash: u64,
10527    pub reload: ::std::option::Option<
10528        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, component: *mut tm_component_i),
10529    >,
10530}
10531#[repr(C)]
10532#[derive(Copy, Clone)]
10533pub struct tm_entity_hot_reload_system_i {
10534    pub name_hash: u64,
10535    pub reload: ::std::option::Option<
10536        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, system: *mut tm_entity_system_i),
10537    >,
10538}
10539pub const tm_entity_create_components_TM_ENTITY_CREATE_COMPONENTS_NONE:
10540    tm_entity_create_components = 0;
10541pub const tm_entity_create_components_TM_ENTITY_CREATE_COMPONENTS_ALL: tm_entity_create_components =
10542    1;
10543pub const tm_entity_create_components_TM_ENTITY_CREATE_COMPONENTS_EDITOR:
10544    tm_entity_create_components = 2;
10545pub type tm_entity_create_components = ::std::os::raw::c_int;
10546#[repr(C)]
10547#[derive(Copy, Clone)]
10548pub struct tm_entity_listener_i {
10549    pub man: *mut tm_component_manager_o,
10550    pub notify_e: tm_entity_t,
10551    pub notify_c: u32,
10552    pub _padding_344: [::std::os::raw::c_char; 4usize],
10553    pub notify: ::std::option::Option<
10554        unsafe extern "C" fn(
10555            ctx: *mut tm_entity_context_o,
10556            man: *mut tm_component_manager_o,
10557            e: tm_entity_t,
10558            c: *mut ::std::os::raw::c_void,
10559            notify_e: tm_entity_t,
10560            notify_c: *mut ::std::os::raw::c_void,
10561        ),
10562    >,
10563}
10564#[repr(C)]
10565#[derive(Copy, Clone)]
10566pub struct tm_entity_event_listener_i {
10567    pub inst: *mut ::std::os::raw::c_void,
10568    pub user_data: *mut ::std::os::raw::c_void,
10569    pub notify: ::std::option::Option<
10570        unsafe extern "C" fn(
10571            inst: *mut ::std::os::raw::c_void,
10572            ctx: *mut tm_entity_context_o,
10573            event: u64,
10574            e: tm_entity_t,
10575            event_data: *const ::std::os::raw::c_void,
10576            event_data_bytes: u32,
10577            user_data: *mut ::std::os::raw::c_void,
10578        ),
10579    >,
10580}
10581#[repr(C)]
10582#[derive(Copy, Clone)]
10583pub struct tm_entity_api {
10584    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
10585    pub create_context: ::std::option::Option<
10586        unsafe extern "C" fn(
10587            a: *mut tm_allocator_i,
10588            tt: *mut tm_the_truth_o,
10589            create_components: tm_entity_create_components,
10590        ) -> *mut tm_entity_context_o,
10591    >,
10592    pub destroy_context: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
10593    pub register_component: ::std::option::Option<
10594        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, com: *const tm_component_i) -> u32,
10595    >,
10596    pub num_components:
10597        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> u32>,
10598    pub component: ::std::option::Option<
10599        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, i: u32) -> *const tm_component_i,
10600    >,
10601    pub register_engine: ::std::option::Option<
10602        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, engine: *const tm_engine_i),
10603    >,
10604    pub registered_engines: ::std::option::Option<
10605        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, count: *mut u32) -> *mut tm_engine_i,
10606    >,
10607    pub register_system: ::std::option::Option<
10608        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, system: *const tm_entity_system_i),
10609    >,
10610    pub registered_systems: ::std::option::Option<
10611        unsafe extern "C" fn(
10612            ctx: *mut tm_entity_context_o,
10613            count: *mut u32,
10614        ) -> *mut tm_entity_system_i,
10615    >,
10616    pub create_child_allocator: ::std::option::Option<
10617        unsafe extern "C" fn(
10618            ctx: *mut tm_entity_context_o,
10619            name: *const ::std::os::raw::c_char,
10620            a: *mut tm_allocator_i,
10621        ),
10622    >,
10623    pub destroy_child_allocator: ::std::option::Option<
10624        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, a: *mut tm_allocator_i),
10625    >,
10626    pub the_truth: ::std::option::Option<
10627        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_the_truth_o,
10628    >,
10629    pub unset_asset_root:
10630        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
10631    pub create_entity:
10632        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> tm_entity_t>,
10633    pub batch_create_entity: ::std::option::Option<
10634        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, es: *mut tm_entity_t, n: u32),
10635    >,
10636    pub create_entity_from_mask: ::std::option::Option<
10637        unsafe extern "C" fn(
10638            ctx: *mut tm_entity_context_o,
10639            mask: *const tm_component_mask_t,
10640        ) -> tm_entity_t,
10641    >,
10642    pub batch_create_entity_from_mask: ::std::option::Option<
10643        unsafe extern "C" fn(
10644            ctx: *mut tm_entity_context_o,
10645            mask: *const tm_component_mask_t,
10646            es: *mut tm_entity_t,
10647            n: u32,
10648        ),
10649    >,
10650    pub create_entity_from_asset: ::std::option::Option<
10651        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, asset: tm_tt_id_t) -> tm_entity_t,
10652    >,
10653    pub batch_create_entity_from_asset: ::std::option::Option<
10654        unsafe extern "C" fn(
10655            ctx: *mut tm_entity_context_o,
10656            asset: tm_tt_id_t,
10657            es: *mut tm_entity_t,
10658            n: u32,
10659        ),
10660    >,
10661    pub destroy_entity:
10662        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t)>,
10663    pub batch_destroy_entity: ::std::option::Option<
10664        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, es: *const tm_entity_t, n: u32),
10665    >,
10666    pub destroy_all_entities:
10667        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
10668    pub queue_destroy_entities: ::std::option::Option<
10669        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, es: *const tm_entity_t, n: u32),
10670    >,
10671    pub is_alive: ::std::option::Option<
10672        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t) -> bool,
10673    >,
10674    pub num_entities:
10675        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> u32>,
10676    pub entities_matching: ::std::option::Option<
10677        unsafe extern "C" fn(
10678            ctx: *mut tm_entity_context_o,
10679            mask: *const tm_component_mask_t,
10680            ta: *mut tm_temp_allocator_i,
10681        ) -> *mut tm_entity_set_t,
10682    >,
10683    pub flatten_set: ::std::option::Option<
10684        unsafe extern "C" fn(entities: *mut tm_entity_t, set: *const tm_entity_set_t),
10685    >,
10686    pub lookup_component: ::std::option::Option<
10687        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, name_hash: u64) -> u32,
10688    >,
10689    pub component_manager: ::std::option::Option<
10690        unsafe extern "C" fn(
10691            ctx: *mut tm_entity_context_o,
10692            component: u32,
10693        ) -> *mut tm_component_manager_o,
10694    >,
10695    pub create_component_mask: ::std::option::Option<
10696        unsafe extern "C" fn(components: *const u32, n: u32) -> tm_component_mask_t,
10697    >,
10698    pub component_mask: ::std::option::Option<
10699        unsafe extern "C" fn(
10700            ctx: *mut tm_entity_context_o,
10701            e: tm_entity_t,
10702        ) -> *const tm_component_mask_t,
10703    >,
10704    pub add_component: ::std::option::Option<
10705        unsafe extern "C" fn(
10706            ctx: *mut tm_entity_context_o,
10707            e: tm_entity_t,
10708            component: u32,
10709        ) -> *mut ::std::os::raw::c_void,
10710    >,
10711    pub get_component: ::std::option::Option<
10712        unsafe extern "C" fn(
10713            ctx: *mut tm_entity_context_o,
10714            e: tm_entity_t,
10715            component: u32,
10716        ) -> *mut ::std::os::raw::c_void,
10717    >,
10718    pub get_component_by_hash: ::std::option::Option<
10719        unsafe extern "C" fn(
10720            ctx: *mut tm_entity_context_o,
10721            e: tm_entity_t,
10722            name_hash: u64,
10723        ) -> *mut ::std::os::raw::c_void,
10724    >,
10725    pub remove_component: ::std::option::Option<
10726        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t, component: u32),
10727    >,
10728    pub call_remove_on_all_entities:
10729        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, component: u32)>,
10730    pub parent: ::std::option::Option<
10731        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t) -> tm_entity_t,
10732    >,
10733    pub asset: ::std::option::Option<
10734        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t) -> tm_tt_id_t,
10735    >,
10736    pub find_entity_from_asset: ::std::option::Option<
10737        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, asset: tm_tt_id_t) -> tm_entity_t,
10738    >,
10739    pub resolve_asset_reference: ::std::option::Option<
10740        unsafe extern "C" fn(
10741            ctx: *mut tm_entity_context_o,
10742            e: tm_entity_t,
10743            asset: tm_tt_id_t,
10744        ) -> tm_entity_t,
10745    >,
10746    pub resolve_path: ::std::option::Option<
10747        unsafe extern "C" fn(
10748            ctx: *mut tm_entity_context_o,
10749            e: tm_entity_t,
10750            path: *const ::std::os::raw::c_char,
10751        ) -> tm_entity_t,
10752    >,
10753    pub propagate_asset_changes:
10754        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
10755    pub propagate_listen_to: ::std::option::Option<
10756        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, e: tm_entity_t, object: tm_tt_id_t),
10757    >,
10758    pub set_blackboard_double: ::std::option::Option<
10759        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64, value: f64),
10760    >,
10761    pub set_blackboard_ptr: ::std::option::Option<
10762        unsafe extern "C" fn(
10763            ctx: *mut tm_entity_context_o,
10764            id: u64,
10765            value: *mut ::std::os::raw::c_void,
10766        ),
10767    >,
10768    pub has_blackboard:
10769        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64) -> bool>,
10770    pub get_blackboard_double: ::std::option::Option<
10771        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64, def: f64) -> f64,
10772    >,
10773    pub get_blackboard_ptr: ::std::option::Option<
10774        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, id: u64) -> *mut ::std::os::raw::c_void,
10775    >,
10776    pub run_engine: ::std::option::Option<
10777        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, engine: *const tm_engine_i),
10778    >,
10779    pub update: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
10780    pub listen: ::std::option::Option<
10781        unsafe extern "C" fn(
10782            ctx: *mut tm_entity_context_o,
10783            e: tm_entity_t,
10784            c: u32,
10785            listener: *const tm_entity_listener_i,
10786        ),
10787    >,
10788    pub unlisten: ::std::option::Option<
10789        unsafe extern "C" fn(
10790            ctx: *mut tm_entity_context_o,
10791            e: tm_entity_t,
10792            c: u32,
10793            listener: *const tm_entity_listener_i,
10794        ),
10795    >,
10796    pub notify: ::std::option::Option<
10797        unsafe extern "C" fn(
10798            ctx: *mut tm_entity_context_o,
10799            component: u32,
10800            entities: *const tm_entity_t,
10801            num_entities: u32,
10802        ),
10803    >,
10804    pub listen_event: ::std::option::Option<
10805        unsafe extern "C" fn(
10806            ctx: *mut tm_entity_context_o,
10807            e: tm_entity_t,
10808            event: u64,
10809            listener: *const tm_entity_event_listener_i,
10810        ),
10811    >,
10812    pub unlisten_event: ::std::option::Option<
10813        unsafe extern "C" fn(
10814            ctx: *mut tm_entity_context_o,
10815            e: tm_entity_t,
10816            event: u64,
10817            listener: *const tm_entity_event_listener_i,
10818        ),
10819    >,
10820    pub unlisten_all: ::std::option::Option<
10821        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, instance: *mut ::std::os::raw::c_void),
10822    >,
10823    pub notify_event: ::std::option::Option<
10824        unsafe extern "C" fn(
10825            ctx: *mut tm_entity_context_o,
10826            event: u64,
10827            e: *mut tm_entity_t,
10828            entity_stride: u32,
10829            data: *mut ::std::os::raw::c_void,
10830            data_stride: u32,
10831            n: u32,
10832        ),
10833    >,
10834    pub hot_reload: ::std::option::Option<unsafe extern "C" fn()>,
10835    pub set_debug_draw: ::std::option::Option<
10836        unsafe extern "C" fn(
10837            ctx: *mut tm_entity_context_o,
10838            component: u32,
10839            tag: u64,
10840            debug_draw: bool,
10841        ),
10842    >,
10843    pub has_debug_draw: ::std::option::Option<
10844        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, component: u32, tag: u64) -> bool,
10845    >,
10846    pub clear_debug_draw:
10847        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
10848    pub debug_draw: ::std::option::Option<
10849        unsafe extern "C" fn(
10850            ctx: *mut tm_entity_context_o,
10851            pbuf: *mut tm_primitive_drawer_buffer_t,
10852            vbuf: *mut tm_primitive_drawer_buffer_t,
10853            allocator: *mut tm_allocator_i,
10854            camera: *const tm_camera_t,
10855            viewport: tm_rect_t,
10856        ),
10857    >,
10858}
10859pub const TM_TT_PROP__LINK_COMPONENT__LOCAL_POSITION: ::std::os::raw::c_int = 0;
10860pub const TM_TT_PROP__LINK_COMPONENT__LOCAL_ROTATION: ::std::os::raw::c_int = 1;
10861pub const TM_TT_PROP__LINK_COMPONENT__LOCAL_SCALE: ::std::os::raw::c_int = 2;
10862pub const TM_TT_PROP__LINK_COMPONENT__SCENE_TREE_NODE: ::std::os::raw::c_int = 3;
10863pub type _bindgen_ty_114 = ::std::os::raw::c_int;
10864pub const TM_LINK_COMPONENT_NOT_LINKED_TO_SCENE_TREE_NODE: ::std::os::raw::c_int = -1;
10865pub type _bindgen_ty_115 = ::std::os::raw::c_int;
10866#[repr(C)]
10867#[derive(Copy, Clone)]
10868pub struct tm_link_component_t {
10869    pub local_transform: tm_transform_t,
10870    pub parent: tm_entity_t,
10871    pub scene_tree_node_name: u64,
10872    pub scene_tree_node_idx: u32,
10873    pub _padding_45: [::std::os::raw::c_char; 4usize],
10874}
10875#[repr(C)]
10876#[derive(Copy, Clone)]
10877pub struct tm_link_component_manager_o {
10878    _unused: [u8; 0],
10879}
10880#[repr(C)]
10881#[derive(Copy, Clone)]
10882pub struct tm_link_component_api {
10883    pub create: ::std::option::Option<
10884        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_link_component_manager_o,
10885    >,
10886    pub compose_transform: ::std::option::Option<
10887        unsafe extern "C" fn(
10888            world: *mut tm_transform_t,
10889            local: *const tm_transform_t,
10890            parent_world: *const tm_transform_t,
10891        ) -> *mut tm_transform_t,
10892    >,
10893    pub compute_local_transform: ::std::option::Option<
10894        unsafe extern "C" fn(
10895            local: *mut tm_transform_t,
10896            world: *const tm_transform_t,
10897            parent_world: *const tm_transform_t,
10898        ) -> *mut tm_transform_t,
10899    >,
10900    pub compute_parent_transform: ::std::option::Option<
10901        unsafe extern "C" fn(
10902            parent: *mut tm_transform_t,
10903            world: *const tm_transform_t,
10904            local: *const tm_transform_t,
10905        ) -> *mut tm_transform_t,
10906    >,
10907    pub transform: ::std::option::Option<
10908        unsafe extern "C" fn(man: *mut tm_link_component_manager_o, e: tm_entity_t),
10909    >,
10910    pub link: ::std::option::Option<
10911        unsafe extern "C" fn(
10912            man: *mut tm_link_component_manager_o,
10913            e: tm_entity_t,
10914            parent: tm_entity_t,
10915        ),
10916    >,
10917    pub unlink: ::std::option::Option<
10918        unsafe extern "C" fn(man: *mut tm_link_component_manager_o, e: tm_entity_t),
10919    >,
10920}
10921#[repr(C)]
10922#[derive(Copy, Clone)]
10923pub struct tm_owner_component_t {
10924    pub num_children: u32,
10925    pub inst: u32,
10926}
10927#[repr(C)]
10928#[derive(Copy, Clone)]
10929pub struct tm_owner_component_manager_o {
10930    _unused: [u8; 0],
10931}
10932#[repr(C)]
10933#[derive(Copy, Clone)]
10934pub struct tm_owner_component_api {
10935    pub create: ::std::option::Option<
10936        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_owner_component_manager_o,
10937    >,
10938    pub children: ::std::option::Option<
10939        unsafe extern "C" fn(
10940            manager: *const tm_owner_component_manager_o,
10941            c: *const tm_owner_component_t,
10942            children: *mut tm_entity_t,
10943        ),
10944    >,
10945    pub add_children: ::std::option::Option<
10946        unsafe extern "C" fn(
10947            manager: *mut tm_owner_component_manager_o,
10948            c: *mut tm_owner_component_t,
10949            e: *const tm_entity_t,
10950            n: u32,
10951        ),
10952    >,
10953    pub remove_children: ::std::option::Option<
10954        unsafe extern "C" fn(
10955            manager: *mut tm_owner_component_manager_o,
10956            c: *mut tm_owner_component_t,
10957            e: *const tm_entity_t,
10958            n: u32,
10959        ),
10960    >,
10961    pub remove_all_children: ::std::option::Option<
10962        unsafe extern "C" fn(
10963            manager: *mut tm_owner_component_manager_o,
10964            c: *mut tm_owner_component_t,
10965        ),
10966    >,
10967    pub descendants: ::std::option::Option<
10968        unsafe extern "C" fn(
10969            manager: *const tm_owner_component_manager_o,
10970            c: *const tm_owner_component_t,
10971            ta: *mut tm_temp_allocator_i,
10972        ) -> *mut tm_entity_t,
10973    >,
10974}
10975pub const TM_TT_PROP__SCENE_TREE_COMPONENT__NODES: ::std::os::raw::c_int = 0;
10976pub const TM_TT_PROP__SCENE_TREE_COMPONENT__NODE_NAMES: ::std::os::raw::c_int = 1;
10977pub type _bindgen_ty_116 = ::std::os::raw::c_int;
10978pub const TM_SCENE_TREE_COMPONENT_ROOT_NODE_PARENT: ::std::os::raw::c_int = -1;
10979pub type _bindgen_ty_117 = ::std::os::raw::c_int;
10980#[repr(C)]
10981#[derive(Copy, Clone)]
10982pub struct tm_scene_tree_node_t {
10983    pub name: u64,
10984    pub parent_idx: u32,
10985    pub local_transform: tm_transform_t,
10986    pub _padding_41: [::std::os::raw::c_char; 4usize],
10987}
10988#[repr(C)]
10989#[derive(Copy, Clone)]
10990pub struct tm_scene_tree_node_names_t {
10991    pub hash: u64,
10992    pub n: u32,
10993    pub _padding_59: [::std::os::raw::c_char; 4usize],
10994    pub node_names: *const u64,
10995}
10996#[repr(C)]
10997#[derive(Copy, Clone)]
10998pub struct tm_scene_tree_component_manager_o {
10999    _unused: [u8; 0],
11000}
11001#[repr(C)]
11002#[derive(Copy, Clone)]
11003pub struct tm_scene_tree_component_api {
11004    pub setup_nodes: ::std::option::Option<
11005        unsafe extern "C" fn(
11006            manager: *mut tm_scene_tree_component_manager_o,
11007            st: *mut tm_scene_tree_component_t,
11008            nodes: *const tm_scene_tree_node_t,
11009            num_nodes: u32,
11010            debug_names: *const ::std::os::raw::c_char,
11011        ),
11012    >,
11013    pub node_names: ::std::option::Option<
11014        unsafe extern "C" fn(st: *const tm_scene_tree_component_t) -> tm_scene_tree_node_names_t,
11015    >,
11016    pub node_index_from_name: ::std::option::Option<
11017        unsafe extern "C" fn(
11018            component: *const tm_scene_tree_component_t,
11019            node_name: u64,
11020            not_found: u32,
11021        ) -> u32,
11022    >,
11023    pub world_matrices: ::std::option::Option<
11024        unsafe extern "C" fn(component: *const tm_scene_tree_component_t) -> *const tm_mat44_t,
11025    >,
11026    pub local_matrices: ::std::option::Option<
11027        unsafe extern "C" fn(component: *const tm_scene_tree_component_t) -> *const tm_mat44_t,
11028    >,
11029    pub local_transform: ::std::option::Option<
11030        unsafe extern "C" fn(
11031            component: *const tm_scene_tree_component_t,
11032            node_idx: u32,
11033        ) -> tm_transform_t,
11034    >,
11035    pub world_transform: ::std::option::Option<
11036        unsafe extern "C" fn(
11037            component: *const tm_scene_tree_component_t,
11038            node_idx: u32,
11039        ) -> tm_transform_t,
11040    >,
11041    pub set_local_transform: ::std::option::Option<
11042        unsafe extern "C" fn(
11043            component: *mut tm_scene_tree_component_t,
11044            node_idx: u32,
11045            t: *const tm_transform_t,
11046        ),
11047    >,
11048    pub set_local_matrix: ::std::option::Option<
11049        unsafe extern "C" fn(
11050            component: *mut tm_scene_tree_component_t,
11051            node_idx: u32,
11052            tm: *const tm_mat44_t,
11053        ),
11054    >,
11055    pub transform: ::std::option::Option<
11056        unsafe extern "C" fn(
11057            st: *mut tm_scene_tree_component_t,
11058            trans: *const tm_transform_t,
11059            version: u64,
11060        ),
11061    >,
11062}
11063pub const TM_TT_PROP__TAG_COMPONENT__TAGS: ::std::os::raw::c_int = 0;
11064pub type _bindgen_ty_118 = ::std::os::raw::c_int;
11065#[repr(C)]
11066#[derive(Copy, Clone)]
11067pub struct tm_tag_component_t {
11068    pub first_ti: u32,
11069}
11070#[repr(C)]
11071#[derive(Copy, Clone)]
11072pub struct tm_tag_component_manager_o {
11073    _unused: [u8; 0],
11074}
11075#[repr(C)]
11076#[derive(Copy, Clone)]
11077pub struct tm_tag_component_api {
11078    pub tag_assets: ::std::option::Option<
11079        unsafe extern "C" fn(
11080            tt: *mut tm_the_truth_o,
11081            ta: *mut tm_temp_allocator_i,
11082        ) -> *mut tm_tt_id_t,
11083    >,
11084    pub create: ::std::option::Option<
11085        unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> *mut tm_tag_component_manager_o,
11086    >,
11087    pub add_tag: ::std::option::Option<
11088        unsafe extern "C" fn(tcm: *mut tm_tag_component_manager_o, e: tm_entity_t, tag: u64),
11089    >,
11090    pub remove_tag: ::std::option::Option<
11091        unsafe extern "C" fn(tcm: *mut tm_tag_component_manager_o, e: tm_entity_t, tag: u64),
11092    >,
11093    pub has_tag: ::std::option::Option<
11094        unsafe extern "C" fn(
11095            tcm: *const tm_tag_component_manager_o,
11096            e: tm_entity_t,
11097            tag: u64,
11098        ) -> bool,
11099    >,
11100    pub find_all: ::std::option::Option<
11101        unsafe extern "C" fn(
11102            tcm: *const tm_tag_component_manager_o,
11103            tag: u64,
11104            ta: *mut tm_temp_allocator_i,
11105        ) -> *mut tm_entity_t,
11106    >,
11107    pub find_first: ::std::option::Option<
11108        unsafe extern "C" fn(tcm: *const tm_tag_component_manager_o, tag: u64) -> tm_entity_t,
11109    >,
11110}
11111pub const TM_TT_PROP__TRANSFORM_COMPONENT__POSITION: ::std::os::raw::c_int = 0;
11112pub const TM_TT_PROP__TRANSFORM_COMPONENT__ROTATION: ::std::os::raw::c_int = 1;
11113pub const TM_TT_PROP__TRANSFORM_COMPONENT__SCALE: ::std::os::raw::c_int = 2;
11114pub type _bindgen_ty_119 = ::std::os::raw::c_int;
11115#[repr(C)]
11116#[derive(Copy, Clone)]
11117pub struct tm_transform_component_t {
11118    pub tm: tm_transform_t,
11119    pub version: u32,
11120}
11121#[repr(C)]
11122#[derive(Copy, Clone)]
11123pub struct tm_transform_component_api {
11124    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
11125    pub create: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
11126}
11127#[repr(C)]
11128#[derive(Copy, Clone)]
11129pub struct tm_window_o {
11130    _unused: [u8; 0],
11131}
11132#[repr(C)]
11133#[derive(Copy, Clone)]
11134pub struct tm_gameplay_context_o {
11135    _unused: [u8; 0],
11136}
11137#[repr(C)]
11138#[derive(Copy, Clone)]
11139pub struct tm_physx_scene_o {
11140    _unused: [u8; 0],
11141}
11142#[repr(C)]
11143#[derive(Copy, Clone)]
11144pub struct tm_gameplay_state_o {
11145    _unused: [u8; 0],
11146}
11147#[repr(C)]
11148#[derive(Copy, Clone)]
11149pub struct tm_gameplay_context_t {
11150    pub state: *mut tm_gameplay_state_o,
11151    pub dt: f32,
11152    pub time: f32,
11153    pub allocator: *mut tm_allocator_i,
11154    pub entity_ctx: *mut tm_entity_context_o,
11155    pub ui: *mut tm_ui_o,
11156    pub uistyle: *mut tm_ui_style_t,
11157    pub rect: tm_rect_t,
11158    pub window: *mut tm_window_o,
11159    pub tt: *mut tm_the_truth_o,
11160    pub asset_root: tm_tt_id_t,
11161    pub physx_scene: *mut tm_physx_scene_o,
11162    pub octx: *mut tm_gameplay_context_o,
11163    pub initialized: bool,
11164    pub started: bool,
11165    pub running_in_editor: bool,
11166    pub _padding_75: [::std::os::raw::c_char; 5usize],
11167}
11168#[repr(C)]
11169#[derive(Copy, Clone)]
11170pub struct tm_gameplay_context_api {
11171    pub init: ::std::option::Option<
11172        unsafe extern "C" fn(
11173            ctx: *mut tm_gameplay_context_t,
11174            parent_allocator: *mut tm_allocator_i,
11175            entity_ctx: *mut tm_entity_context_o,
11176        ),
11177    >,
11178    pub shutdown: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t)>,
11179    pub update: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t)>,
11180}
11181#[repr(C)]
11182#[derive(Copy, Clone)]
11183pub struct tm_gameplay_entity_api {
11184    pub get_transform: ::std::option::Option<
11185        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_transform_t,
11186    >,
11187    pub set_transform: ::std::option::Option<
11188        unsafe extern "C" fn(
11189            ctx: *mut tm_gameplay_context_t,
11190            e: tm_entity_t,
11191            tm: *const tm_transform_t,
11192        ),
11193    >,
11194    pub get_position: ::std::option::Option<
11195        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
11196    >,
11197    pub set_position: ::std::option::Option<
11198        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, pos: tm_vec3_t),
11199    >,
11200    pub get_rotation: ::std::option::Option<
11201        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec4_t,
11202    >,
11203    pub set_rotation: ::std::option::Option<
11204        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, rot: tm_vec4_t),
11205    >,
11206    pub get_scale: ::std::option::Option<
11207        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
11208    >,
11209    pub set_scale: ::std::option::Option<
11210        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, scl: tm_vec3_t),
11211    >,
11212    pub get_local_position: ::std::option::Option<
11213        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
11214    >,
11215    pub get_local_transform: ::std::option::Option<
11216        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_transform_t,
11217    >,
11218    pub set_local_transform: ::std::option::Option<
11219        unsafe extern "C" fn(
11220            ctx: *mut tm_gameplay_context_t,
11221            e: tm_entity_t,
11222            tm: *const tm_transform_t,
11223        ),
11224    >,
11225    pub set_local_position: ::std::option::Option<
11226        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, pos: tm_vec3_t),
11227    >,
11228    pub get_local_rotation: ::std::option::Option<
11229        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec4_t,
11230    >,
11231    pub set_local_rotation: ::std::option::Option<
11232        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, rot: tm_vec4_t),
11233    >,
11234    pub get_local_scale: ::std::option::Option<
11235        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_vec3_t,
11236    >,
11237    pub set_local_scale: ::std::option::Option<
11238        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, scl: tm_vec3_t),
11239    >,
11240    pub add_tag: ::std::option::Option<
11241        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, tag: u64),
11242    >,
11243    pub remove_tag: ::std::option::Option<
11244        unsafe extern "C" fn(ctx: *mut tm_gameplay_context_t, e: tm_entity_t, tag: u64),
11245    >,
11246    pub has_tag: ::std::option::Option<
11247        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t, tag: u64) -> bool,
11248    >,
11249    pub find_entity_with_tag: ::std::option::Option<
11250        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, tag: u64) -> tm_entity_t,
11251    >,
11252    pub find_entities_with_tag: ::std::option::Option<
11253        unsafe extern "C" fn(
11254            ctx: *const tm_gameplay_context_t,
11255            tag: u64,
11256            ta: *mut tm_temp_allocator_i,
11257        ) -> *mut tm_entity_t,
11258    >,
11259    pub root_entity: ::std::option::Option<
11260        unsafe extern "C" fn(ctx: *const tm_gameplay_context_t, e: tm_entity_t) -> tm_entity_t,
11261    >,
11262}
11263#[repr(C)]
11264#[derive(Copy, Clone)]
11265pub struct tm_gameplay_physics_api {
11266    pub get_collision_types: ::std::option::Option<
11267        unsafe extern "C" fn(
11268            ctx: *mut tm_gameplay_context_t,
11269            name_to_collision_type: *mut tm_hash_u64_to_id_t,
11270        ),
11271    >,
11272}
11273#[repr(C)]
11274#[derive(Copy, Clone)]
11275pub struct tm_gameplay_api {
11276    pub context: *mut tm_gameplay_context_api,
11277    pub entity: *mut tm_gameplay_entity_api,
11278    pub physics: *mut tm_gameplay_physics_api,
11279    pub get_asset: ::std::option::Option<
11280        unsafe extern "C" fn(
11281            ctx: *const tm_gameplay_context_t,
11282            path: *const ::std::os::raw::c_char,
11283        ) -> tm_tt_id_t,
11284    >,
11285}
11286#[repr(C)]
11287#[derive(Copy, Clone)]
11288pub struct tm_gltf_uri_o {
11289    _unused: [u8; 0],
11290}
11291#[repr(C)]
11292#[derive(Copy, Clone)]
11293pub struct tm_gltf_uri_i {
11294    pub inst: *mut tm_gltf_uri_o,
11295    pub size: ::std::option::Option<
11296        unsafe extern "C" fn(inst: *mut tm_gltf_uri_o, uri: *const ::std::os::raw::c_char) -> u64,
11297    >,
11298    pub load: ::std::option::Option<
11299        unsafe extern "C" fn(
11300            inst: *mut tm_gltf_uri_o,
11301            uri: *const ::std::os::raw::c_char,
11302            data: *mut u8,
11303            offset: u64,
11304            size: u64,
11305        ) -> bool,
11306    >,
11307}
11308#[repr(C)]
11309#[derive(Copy, Clone)]
11310pub struct tm_gltf_api {
11311    pub import: ::std::option::Option<
11312        unsafe extern "C" fn(
11313            tt: *mut tm_the_truth_o,
11314            gltf: *const ::std::os::raw::c_char,
11315            ta: *mut tm_temp_allocator_i,
11316            uri_loader: *mut tm_gltf_uri_i,
11317            error: *mut tm_error_i,
11318        ) -> tm_tt_id_t,
11319    >,
11320    pub import_into: ::std::option::Option<
11321        unsafe extern "C" fn(
11322            tt: *mut tm_the_truth_o,
11323            obj: *mut tm_the_truth_object_o,
11324            gltf: *const ::std::os::raw::c_char,
11325            ta: *mut tm_temp_allocator_i,
11326            uri_loader: *mut tm_gltf_uri_i,
11327            error: *mut tm_error_i,
11328        ) -> bool,
11329    >,
11330    pub migrate_from_gltf_to_dcc_asset:
11331        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o) -> bool>,
11332}
11333pub const TM_TT_PROP__SUBGRAPH_NODE__SUBGRAPH: ::std::os::raw::c_int = 0;
11334pub type _bindgen_ty_120 = ::std::os::raw::c_int;
11335#[repr(C)]
11336#[derive(Copy, Clone)]
11337pub struct tm_graph_imported_node_t {
11338    pub position: tm_vec2_t,
11339    pub type_: u32,
11340    pub _padding_23: [::std::os::raw::c_char; 4usize],
11341    pub display_name: *const ::std::os::raw::c_char,
11342    pub width: f32,
11343    pub _padding_29: [::std::os::raw::c_char; 4usize],
11344    pub id: tm_tt_id_t,
11345    pub prototype_relation: u32,
11346    pub is_pure: bool,
11347    pub _padding_39: [::std::os::raw::c_char; 3usize],
11348}
11349#[repr(C)]
11350#[derive(Copy, Clone)]
11351pub struct tm_graph_imported_connection_t {
11352    pub from_node: u32,
11353    pub to_node: u32,
11354    pub from_connector: u32,
11355    pub to_connector: u32,
11356    pub id: tm_tt_id_t,
11357    pub prototype_relation: u32,
11358    pub _padding_63: [::std::os::raw::c_char; 4usize],
11359    pub in_conflict_with: tm_tt_id_t,
11360}
11361#[repr(C)]
11362#[derive(Copy, Clone)]
11363pub struct tm_graph_imported_data_t {
11364    pub to_node: u32,
11365    pub to_connector: u32,
11366    pub id: tm_tt_id_t,
11367    pub data_id: tm_tt_id_t,
11368    pub prototype_relation: u32,
11369    pub _padding_90: [::std::os::raw::c_char; 4usize],
11370    pub in_conflict_with: tm_tt_id_t,
11371}
11372#[repr(C)]
11373#[derive(Copy, Clone)]
11374pub struct tm_graph_imported_comment_t {
11375    pub text: *const ::std::os::raw::c_char,
11376    pub position: tm_vec2_t,
11377    pub font_scale: f32,
11378    pub color: tm_vec3_t,
11379    pub id: tm_tt_id_t,
11380    pub prototype_relation: u32,
11381    pub _padding_119: [::std::os::raw::c_char; 4usize],
11382}
11383#[repr(C)]
11384#[derive(Copy, Clone)]
11385pub struct tm_graph_import_result_t {
11386    pub nodes: *mut tm_graph_imported_node_t,
11387    pub connections: *mut tm_graph_imported_connection_t,
11388    pub datas: *mut tm_graph_imported_data_t,
11389    pub comments: *mut tm_graph_imported_comment_t,
11390    pub node_connectors: *mut tm_graph_node_connectors_t,
11391    pub node_graph_ids: *mut tm_tt_id_t,
11392    pub num_nodes: u32,
11393    pub num_connections: u32,
11394    pub num_datas: u32,
11395    pub num_comments: u32,
11396}
11397#[repr(C)]
11398#[derive(Copy, Clone)]
11399pub struct tm_graph_importer_luts_o {
11400    _unused: [u8; 0],
11401}
11402#[repr(C)]
11403#[derive(Copy, Clone)]
11404pub struct tm_graph_importer_api {
11405    pub create_lookup_tables: ::std::option::Option<
11406        unsafe extern "C" fn(
11407            a: *mut tm_allocator_i,
11408            types: *const tm_graph_node_type_i,
11409            num_types: u32,
11410        ) -> *mut tm_graph_importer_luts_o,
11411    >,
11412    pub destroy_lookup_tables:
11413        ::std::option::Option<unsafe extern "C" fn(luts: *mut tm_graph_importer_luts_o)>,
11414    pub import_shallow: ::std::option::Option<
11415        unsafe extern "C" fn(
11416            tt: *const tm_the_truth_o,
11417            graph_id: tm_tt_id_t,
11418            types: *const tm_graph_node_type_i,
11419            num_types: u32,
11420            ta: *mut tm_temp_allocator_i,
11421            luts: *const tm_graph_importer_luts_o,
11422        ) -> tm_graph_import_result_t,
11423    >,
11424    pub import_flattened: ::std::option::Option<
11425        unsafe extern "C" fn(
11426            tt: *const tm_the_truth_o,
11427            graph_id: tm_tt_id_t,
11428            types: *const tm_graph_node_type_i,
11429            num_types: u32,
11430            ta: *mut tm_temp_allocator_i,
11431            luts: *const tm_graph_importer_luts_o,
11432        ) -> tm_graph_import_result_t,
11433    >,
11434}
11435#[repr(C)]
11436#[derive(Copy, Clone)]
11437pub struct tm_graph_interpreter_o {
11438    _unused: [u8; 0],
11439}
11440pub const TM_TT_PROP__GRAPH_COMPONENT__GRAPH: ::std::os::raw::c_int = 0;
11441pub type _bindgen_ty_121 = ::std::os::raw::c_int;
11442#[repr(C)]
11443#[derive(Copy, Clone)]
11444pub struct tm_graph_component_t {
11445    pub gr: *mut tm_graph_interpreter_o,
11446}
11447pub const TM_TT_PROP__ENTITY_GRAPH__GRAPH: ::std::os::raw::c_int = 0;
11448pub type _bindgen_ty_122 = ::std::os::raw::c_int;
11449pub type tm_graph_component_compile_data_i = ::std::option::Option<
11450    unsafe extern "C" fn(
11451        gr: *mut tm_graph_interpreter_o,
11452        wire: u32,
11453        tt: *const tm_the_truth_o,
11454        data_id: tm_tt_id_t,
11455        to_type_hash: u64,
11456    ) -> bool,
11457>;
11458#[repr(C)]
11459#[derive(Copy, Clone)]
11460pub struct tm_graph_component_api {
11461    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
11462    pub create: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
11463    pub run_event:
11464        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o, event: u64)>,
11465    pub tick_queues: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o)>,
11466}
11467#[repr(C)]
11468#[derive(Copy, Clone)]
11469pub struct tm_graph_component_compile_context_t {
11470    pub tt: *const tm_the_truth_o,
11471    pub entity_asset_id: tm_tt_id_t,
11472    pub graph_id: tm_tt_id_t,
11473    pub settings_id: tm_tt_id_t,
11474    pub connectors: *mut tm_graph_node_connectors_t,
11475}
11476#[repr(C)]
11477#[derive(Copy, Clone)]
11478pub struct tm_graph_component_node_type_i {
11479    pub __bindgen_padding_0: [u64; 232usize],
11480    pub run: ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_graph_interpreter_context_t)>,
11481    pub compile: ::std::option::Option<
11482        unsafe extern "C" fn(
11483            ctx: *mut tm_graph_interpreter_context_t,
11484            compile_ctx: *mut tm_graph_component_compile_context_t,
11485        ),
11486    >,
11487}
11488pub const TM_GRAPH_COMPONENT__STATIC_WIRE__SINK: ::std::os::raw::c_int = 0;
11489pub const TM_GRAPH_COMPONENT__STATIC_WIRE__ENTITY_CONTEXT: ::std::os::raw::c_int = 1;
11490pub const TM_GRAPH_COMPONENT__STATIC_WIRE__ENTITY: ::std::os::raw::c_int = 2;
11491pub const TM_GRAPH_COMPONENT__STATIC_WIRE__EVENT_DATA: ::std::os::raw::c_int = 3;
11492pub const TM_GRAPH_COMPONENT__STATIC_WIRE__USER_DATA: ::std::os::raw::c_int = 4;
11493pub const TM_GRAPH_COMPONENT__STATIC_WIRE__COUNT: ::std::os::raw::c_int = 5;
11494pub type _bindgen_ty_123 = ::std::os::raw::c_int;
11495#[repr(C)]
11496#[derive(Copy, Clone)]
11497pub struct tm_graph_interpreter_wire_content_t {
11498    pub n: u32,
11499    pub size: u32,
11500    pub data: *mut ::std::os::raw::c_void,
11501}
11502#[repr(C)]
11503#[derive(Copy, Clone)]
11504pub struct tm_graph_interpreter_context_t {
11505    pub interpreter: *mut tm_graph_interpreter_o,
11506    pub node: u32,
11507    pub _padding_55: [::std::os::raw::c_char; 4usize],
11508    pub node_type: *const tm_graph_node_type_i,
11509    pub wires: *const u32,
11510}
11511pub type tm_graph_interpreter_run_node_f =
11512    ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_graph_interpreter_context_t)>;
11513#[repr(C)]
11514#[derive(Copy, Clone)]
11515pub struct tm_graph_interpreter_node_t {
11516    pub f: tm_graph_interpreter_run_node_f,
11517    pub wires_index: u32,
11518    pub _padding_86: [::std::os::raw::c_char; 4usize],
11519    pub node_type: *const tm_graph_node_type_i,
11520    pub dependencies_index: u32,
11521    pub _padding_97: [::std::os::raw::c_char; 4usize],
11522}
11523#[repr(C)]
11524#[derive(Copy, Clone)]
11525pub struct tm_graph_interpreter_api {
11526    pub create_graph_interpreter: ::std::option::Option<
11527        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_graph_interpreter_o,
11528    >,
11529    pub destroy_graph_interpreter:
11530        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o)>,
11531    pub set_graph: ::std::option::Option<
11532        unsafe extern "C" fn(
11533            gr: *mut tm_graph_interpreter_o,
11534            nodes: *const tm_graph_interpreter_node_t,
11535            num_nodes: u32,
11536            num_wires: u32,
11537            node_wires: *mut u32,
11538            num_node_wires: u32,
11539            dependencies: *mut u32,
11540            num_dependencies: u32,
11541        ),
11542    >,
11543    pub run_node_at_index:
11544        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, node: u32)>,
11545    pub add_event_node: ::std::option::Option<
11546        unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, e: u64, node: u32),
11547    >,
11548    pub trigger_event:
11549        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, e: u64)>,
11550    pub trigger_wire:
11551        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, wire: u32)>,
11552    pub queue_wire: ::std::option::Option<
11553        unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, wire: u32, delay: f32),
11554    >,
11555    pub tick_queue:
11556        ::std::option::Option<unsafe extern "C" fn(gr: *mut tm_graph_interpreter_o, dt: f32)>,
11557    pub get_node_run_context: ::std::option::Option<
11558        unsafe extern "C" fn(
11559            gr: *mut tm_graph_interpreter_o,
11560            node: u32,
11561        ) -> tm_graph_interpreter_context_t,
11562    >,
11563    pub read_wire: ::std::option::Option<
11564        unsafe extern "C" fn(
11565            gr: *mut tm_graph_interpreter_o,
11566            wire: u32,
11567        ) -> tm_graph_interpreter_wire_content_t,
11568    >,
11569    pub read_wires: ::std::option::Option<
11570        unsafe extern "C" fn(
11571            gr: *mut tm_graph_interpreter_o,
11572            content: *mut tm_graph_interpreter_wire_content_t,
11573            wires: *const u32,
11574            n: u32,
11575        ),
11576    >,
11577    pub read_wires_indirect: ::std::option::Option<
11578        unsafe extern "C" fn(
11579            gr: *mut tm_graph_interpreter_o,
11580            content: *mut *mut tm_graph_interpreter_wire_content_t,
11581            wires: *const u32,
11582            n: u32,
11583        ),
11584    >,
11585    pub write_wire: ::std::option::Option<
11586        unsafe extern "C" fn(
11587            gr: *mut tm_graph_interpreter_o,
11588            wire: u32,
11589            n: u32,
11590            size: u32,
11591        ) -> *mut ::std::os::raw::c_void,
11592    >,
11593    pub read_variable: ::std::option::Option<
11594        unsafe extern "C" fn(
11595            gr: *mut tm_graph_interpreter_o,
11596            variable: u64,
11597        ) -> tm_graph_interpreter_wire_content_t,
11598    >,
11599    pub write_variable: ::std::option::Option<
11600        unsafe extern "C" fn(
11601            gr: *mut tm_graph_interpreter_o,
11602            variable: u64,
11603            n: u32,
11604            size: u32,
11605        ) -> *mut ::std::os::raw::c_void,
11606    >,
11607}
11608#[repr(C)]
11609#[derive(Copy, Clone)]
11610pub struct tm_https_request_header_t {
11611    pub name: *const ::std::os::raw::c_char,
11612    pub value: *const ::std::os::raw::c_char,
11613}
11614#[repr(C)]
11615#[derive(Copy, Clone)]
11616pub struct tm_https_request_fingerprint_t {
11617    pub data: [::std::os::raw::c_char; 20usize],
11618}
11619#[repr(C)]
11620#[derive(Copy, Clone)]
11621pub struct tm_https_request_t {
11622    pub method: *const ::std::os::raw::c_char,
11623    pub host: *const ::std::os::raw::c_char,
11624    pub hostaddr: u32,
11625    pub port: u32,
11626    pub path: *const ::std::os::raw::c_char,
11627    pub num_headers: u32,
11628    pub _padding_79: [::std::os::raw::c_char; 4usize],
11629    pub headers: *const tm_https_request_header_t,
11630    pub body: *const ::std::os::raw::c_char,
11631    pub id: u64,
11632    pub fingerprint: tm_https_request_fingerprint_t,
11633    pub num_trust_anchors: u32,
11634    pub trust_anchors: *const ::std::os::raw::c_void,
11635}
11636pub const tm_https_status_TM_HTTPS_STATUS__IN_PROGRESS: tm_https_status = 0;
11637pub const tm_https_status_TM_HTTPS_STATUS__ERROR: tm_https_status = 1;
11638pub const tm_https_status_TM_HTTPS_STATUS__SUCCESS: tm_https_status = 2;
11639pub const tm_https_status_TM_HTTPS_STATUS__NOT_OPEN: tm_https_status = 3;
11640pub const tm_https_status_TM_HTTPS_STATUS__NOT_FOUND: tm_https_status = 4;
11641pub type tm_https_status = ::std::os::raw::c_int;
11642#[repr(C)]
11643#[derive(Copy, Clone)]
11644pub struct tm_https_response_header_t {
11645    pub name: *const ::std::os::raw::c_char,
11646    pub name_hash: u64,
11647    pub value: *const ::std::os::raw::c_char,
11648}
11649#[repr(C)]
11650#[derive(Copy, Clone)]
11651pub struct tm_https_response_t {
11652    pub status: tm_https_status,
11653    pub _padding_161: [::std::os::raw::c_char; 4usize],
11654    pub error: *const ::std::os::raw::c_char,
11655    pub raw_header: *const ::std::os::raw::c_char,
11656    pub http_status_code: u32,
11657    pub _padding_179: [::std::os::raw::c_char; 4usize],
11658    pub http_status: *const ::std::os::raw::c_char,
11659    pub headers: *mut tm_https_response_header_t,
11660    pub content_length: u64,
11661    pub content_received: u64,
11662    pub body: *mut ::std::os::raw::c_char,
11663}
11664#[repr(C)]
11665#[derive(Copy, Clone)]
11666pub struct tm_https_progress_t {
11667    pub content_length: u64,
11668    pub content_received: u64,
11669    pub speed: f32,
11670    pub cancel: bool,
11671    pub _padding_225: [::std::os::raw::c_char; 3usize],
11672}
11673#[repr(C)]
11674#[derive(Copy, Clone)]
11675pub struct tm_https_o {
11676    _unused: [u8; 0],
11677}
11678#[repr(C)]
11679#[derive(Copy, Clone)]
11680pub struct tm_https_api {
11681    pub get: ::std::option::Option<
11682        unsafe extern "C" fn(
11683            req: *const tm_https_request_t,
11684            ta: *mut tm_temp_allocator_i,
11685            progress: *mut tm_https_progress_t,
11686        ) -> tm_https_response_t,
11687    >,
11688    pub get_to_file: ::std::option::Option<
11689        unsafe extern "C" fn(
11690            req: *const tm_https_request_t,
11691            filename: *const ::std::os::raw::c_char,
11692            ta: *mut tm_temp_allocator_i,
11693            progress: *mut tm_https_progress_t,
11694        ) -> tm_https_response_t,
11695    >,
11696    pub create:
11697        ::std::option::Option<unsafe extern "C" fn(parent: *mut tm_allocator_i) -> *mut tm_https_o>,
11698    pub destroy: ::std::option::Option<unsafe extern "C" fn(https: *mut tm_https_o)>,
11699    pub open: ::std::option::Option<
11700        unsafe extern "C" fn(https: *mut tm_https_o, req: *mut tm_https_request_t),
11701    >,
11702    pub response: ::std::option::Option<
11703        unsafe extern "C" fn(
11704            https: *mut tm_https_o,
11705            req: *const tm_https_request_t,
11706        ) -> tm_https_response_t,
11707    >,
11708    pub close: ::std::option::Option<
11709        unsafe extern "C" fn(https: *mut tm_https_o, req: *mut tm_https_request_t),
11710    >,
11711}
11712#[repr(C)]
11713#[derive(Copy, Clone)]
11714pub struct tm_openvr_submit_data_t {
11715    pub right_eye_bounds: tm_rect_t,
11716    pub right_eye_resource: u32,
11717    pub right_eye_resource_state: u16,
11718    pub _padding_20: [::std::os::raw::c_char; 2usize],
11719    pub left_eye_bounds: tm_rect_t,
11720    pub left_eye_resource: u32,
11721    pub left_eye_resource_state: u16,
11722    pub _padding_29: [::std::os::raw::c_char; 2usize],
11723}
11724pub const TM_OPENVR_INVALID_CONTEXT: ::std::os::raw::c_int = 0;
11725pub type _bindgen_ty_124 = ::std::os::raw::c_int;
11726pub const tm_openvr_eye_TM_OPENVR_EYE_LEFT: tm_openvr_eye = 0;
11727pub const tm_openvr_eye_TM_OPENVR_EYE_RIGHT: tm_openvr_eye = 1;
11728pub type tm_openvr_eye = ::std::os::raw::c_int;
11729#[repr(C)]
11730#[derive(Copy, Clone)]
11731pub struct tm_openvr_api {
11732    pub load: ::std::option::Option<
11733        unsafe extern "C" fn(dll_path: *const ::std::os::raw::c_char) -> bool,
11734    >,
11735    pub unload: ::std::option::Option<unsafe extern "C" fn()>,
11736    pub init_context: ::std::option::Option<unsafe extern "C" fn() -> u32>,
11737    pub shutdown_context: ::std::option::Option<unsafe extern "C" fn(context: u32)>,
11738    pub update: ::std::option::Option<unsafe extern "C" fn(context: u32) -> bool>,
11739    pub submit_vulkan: ::std::option::Option<
11740        unsafe extern "C" fn(
11741            context: u32,
11742            vulkan_backend: *mut tm_vulkan_backend_i,
11743            device_affinity: u32,
11744            data: *const tm_openvr_submit_data_t,
11745        ) -> bool,
11746    >,
11747    pub wanted_image_size: ::std::option::Option<
11748        unsafe extern "C" fn(context: u32, width: *mut u32, height: *mut u32),
11749    >,
11750    pub frustum_planes: ::std::option::Option<
11751        unsafe extern "C" fn(
11752            context: u32,
11753            eye: tm_openvr_eye,
11754            left: *mut f32,
11755            right: *mut f32,
11756            top: *mut f32,
11757            bottom: *mut f32,
11758        ),
11759    >,
11760    pub head_to_eye_transform: ::std::option::Option<
11761        unsafe extern "C" fn(context: u32, tm: *mut tm_mat44_t, eye: tm_openvr_eye),
11762    >,
11763    pub head_transform:
11764        ::std::option::Option<unsafe extern "C" fn(context: u32, tm: *mut tm_mat44_t)>,
11765}
11766#[repr(C)]
11767#[derive(Copy, Clone)]
11768pub struct tm_display_o {
11769    _unused: [u8; 0],
11770}
11771#[repr(C)]
11772#[derive(Copy, Clone)]
11773pub struct tm_os_display_api {
11774    pub num_displays: ::std::option::Option<unsafe extern "C" fn() -> u32>,
11775    pub display: ::std::option::Option<unsafe extern "C" fn(index: u32) -> *mut tm_display_o>,
11776    pub os_display_rect:
11777        ::std::option::Option<unsafe extern "C" fn(display: *const tm_display_o) -> tm_rect_t>,
11778    pub os_display_dpi_scale_factor:
11779        ::std::option::Option<unsafe extern "C" fn(display: *const tm_display_o) -> f32>,
11780    pub refresh_display_enumeration: ::std::option::Option<unsafe extern "C" fn()>,
11781}
11782pub const tm_os_window_style_TM_OS_WINDOW_STYLE_VISIBLE: tm_os_window_style = 1;
11783pub const tm_os_window_style_TM_OS_WINDOW_STYLE_CENTERED: tm_os_window_style = 2;
11784pub const tm_os_window_style_TM_OS_WINDOW_STYLE_BORDERLESS: tm_os_window_style = 4;
11785pub const tm_os_window_style_TM_OS_WINDOW_STYLE_DPI_SCALING_AWARE: tm_os_window_style = 8;
11786pub type tm_os_window_style = ::std::os::raw::c_int;
11787pub const tm_os_window_state_TM_OS_WINDOW_STATE_MAXIMIZE: tm_os_window_state = 0;
11788pub const tm_os_window_state_TM_OS_WINDOW_STATE_MINIMIZE: tm_os_window_state = 1;
11789pub const tm_os_window_state_TM_OS_WINDOW_STATE_NORMAL: tm_os_window_state = 2;
11790pub type tm_os_window_state = ::std::os::raw::c_int;
11791pub const tm_os_window_cursor_mode_TM_OS_WINDOW_CURSOR_MODE_VISIBLE_AND_FREE:
11792    tm_os_window_cursor_mode = 0;
11793pub const tm_os_window_cursor_mode_TM_OS_WINDOW_CURSOR_MODE_VISIBLE_AND_CONSTRAINED:
11794    tm_os_window_cursor_mode = 1;
11795pub const tm_os_window_cursor_mode_TM_OS_WINDOW_CURSOR_MODE_HIDDEN_AND_LOCKED:
11796    tm_os_window_cursor_mode = 2;
11797pub type tm_os_window_cursor_mode = ::std::os::raw::c_int;
11798pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_DEFAULT: tm_os_window_cursor = 0;
11799pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_POINTER: tm_os_window_cursor = 1;
11800pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_TEXT: tm_os_window_cursor = 2;
11801pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_MOVE: tm_os_window_cursor = 3;
11802pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_ALL_SCROLL: tm_os_window_cursor = 4;
11803pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_COL_RESIZE: tm_os_window_cursor = 5;
11804pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_ROW_RESIZE: tm_os_window_cursor = 6;
11805pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_EW_RESIZE: tm_os_window_cursor = 7;
11806pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_NS_RESIZE: tm_os_window_cursor = 8;
11807pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_NESW_RESIZE: tm_os_window_cursor = 9;
11808pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_NWSE_RESIZE: tm_os_window_cursor = 10;
11809pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_DRAG_AND_DROP: tm_os_window_cursor = 11;
11810pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_DRAG_NO_DROP: tm_os_window_cursor = 12;
11811pub const tm_os_window_cursor_TM_OS_WINDOW_CURSOR_HIDE: tm_os_window_cursor = 13;
11812pub type tm_os_window_cursor = ::std::os::raw::c_int;
11813pub const tm_os_window_adjust_rect_TM_OS_WINDOW_ADJUST_RECT_TO_PIXELS: tm_os_window_adjust_rect = 0;
11814pub const tm_os_window_adjust_rect_TM_OS_WINDOW_ADJUST_RECT_TO_VIRTUAL: tm_os_window_adjust_rect =
11815    1;
11816pub type tm_os_window_adjust_rect = ::std::os::raw::c_int;
11817#[repr(C)]
11818#[derive(Copy, Clone)]
11819pub struct tm_window_platform_data_win32_o {
11820    pub hwnd: u64,
11821    pub hinstance: u64,
11822}
11823#[repr(C)]
11824#[derive(Copy, Clone)]
11825pub struct tm_window_platform_data_macosx_o {
11826    pub nswindow: *mut ::std::os::raw::c_void,
11827}
11828#[repr(C)]
11829#[derive(Copy, Clone)]
11830pub struct tm_window_platform_data_o {
11831    pub __bindgen_anon_1: tm_window_platform_data_o__bindgen_ty_1,
11832}
11833#[repr(C)]
11834#[derive(Copy, Clone)]
11835pub union tm_window_platform_data_o__bindgen_ty_1 {
11836    pub win32: tm_window_platform_data_win32_o,
11837    pub macosx: tm_window_platform_data_macosx_o,
11838    _bindgen_union_align: [u64; 2usize],
11839}
11840#[repr(C)]
11841#[derive(Copy, Clone)]
11842pub struct tm_window_status_t {
11843    pub has_focus: bool,
11844    pub is_under_cursor: bool,
11845    pub is_minimized: bool,
11846    pub is_maximized: bool,
11847    pub is_hidden: bool,
11848}
11849#[repr(C)]
11850#[derive(Copy, Clone)]
11851pub struct tm_window_update_result_t {
11852    pub focus_changed: bool,
11853}
11854#[repr(C)]
11855#[derive(Copy, Clone)]
11856pub struct tm_os_dropped_file_t {
11857    pub filename: *mut ::std::os::raw::c_char,
11858    pub position: tm_vec2_t,
11859}
11860#[repr(C)]
11861#[derive(Copy, Clone)]
11862pub struct tm_os_window_api {
11863    pub create_window: ::std::option::Option<
11864        unsafe extern "C" fn(
11865            title: *const ::std::os::raw::c_char,
11866            rect: tm_rect_t,
11867            style_flags: tm_os_window_style,
11868            center_display: *const tm_display_o,
11869        ) -> *mut tm_window_o,
11870    >,
11871    pub update_window: ::std::option::Option<
11872        unsafe extern "C" fn(window: *mut tm_window_o) -> tm_window_update_result_t,
11873    >,
11874    pub wait: ::std::option::Option<unsafe extern "C" fn()>,
11875    pub destroy_window: ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o)>,
11876    pub set_rect:
11877        ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o, rect: tm_rect_t)>,
11878    pub rect: ::std::option::Option<unsafe extern "C" fn(window: *const tm_window_o) -> tm_rect_t>,
11879    pub dpi_scale_factor:
11880        ::std::option::Option<unsafe extern "C" fn(window: *const tm_window_o) -> f32>,
11881    pub adjust_rect: ::std::option::Option<
11882        unsafe extern "C" fn(
11883            rect: tm_rect_t,
11884            dpi_scale_factor: f32,
11885            arg1: tm_os_window_adjust_rect,
11886        ) -> tm_rect_t,
11887    >,
11888    pub set_size: ::std::option::Option<
11889        unsafe extern "C" fn(window: *mut tm_window_o, width: f32, height: f32),
11890    >,
11891    pub set_client_titlebar_area: ::std::option::Option<
11892        unsafe extern "C" fn(window: *mut tm_window_o, left_margin: f32, right_margin: f32),
11893    >,
11894    pub has_user_requested_close:
11895        ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o, reset: bool) -> bool>,
11896    pub set_cursor_mode: ::std::option::Option<
11897        unsafe extern "C" fn(window: *mut tm_window_o, cursor_mode: tm_os_window_cursor_mode),
11898    >,
11899    pub cursor_mode: ::std::option::Option<
11900        unsafe extern "C" fn(window: *mut tm_window_o) -> tm_os_window_cursor_mode,
11901    >,
11902    pub set_cursor: ::std::option::Option<
11903        unsafe extern "C" fn(window: *mut tm_window_o, cursor_mode: tm_os_window_cursor),
11904    >,
11905    pub cursor: ::std::option::Option<
11906        unsafe extern "C" fn(window: *mut tm_window_o) -> tm_os_window_cursor,
11907    >,
11908    pub dropped_files: ::std::option::Option<
11909        unsafe extern "C" fn(window: *mut tm_window_o) -> *const tm_os_dropped_file_t,
11910    >,
11911    pub status:
11912        ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o) -> tm_window_status_t>,
11913    pub platform_data: ::std::option::Option<
11914        unsafe extern "C" fn(window: *const tm_window_o) -> tm_window_platform_data_o,
11915    >,
11916    pub window_from_point:
11917        ::std::option::Option<unsafe extern "C" fn(pos: tm_vec2_t) -> *mut tm_window_o>,
11918    pub set_focus: ::std::option::Option<unsafe extern "C" fn(window: *mut tm_window_o)>,
11919    pub set_window_state: ::std::option::Option<
11920        unsafe extern "C" fn(window: *mut tm_window_o, state: tm_os_window_state),
11921    >,
11922    pub set_title: ::std::option::Option<
11923        unsafe extern "C" fn(window: *mut tm_window_o, title: *const ::std::os::raw::c_char),
11924    >,
11925}
11926pub const TM_TT_PROP__PHYSICS_BODY__MASS: ::std::os::raw::c_int = 0;
11927pub const TM_TT_PROP__PHYSICS_BODY__CENTER_OF_MASS: ::std::os::raw::c_int = 1;
11928pub const TM_TT_PROP__PHYSICS_BODY__INERTIA_TENSOR: ::std::os::raw::c_int = 2;
11929pub const TM_TT_PROP__PHYSICS_BODY__INERTIA_TENSOR_ROTATION: ::std::os::raw::c_int = 3;
11930pub const TM_TT_PROP__PHYSICS_BODY__KINEMATIC: ::std::os::raw::c_int = 4;
11931pub const TM_TT_PROP__PHYSICS_BODY__LINEAR_DAMPING: ::std::os::raw::c_int = 5;
11932pub const TM_TT_PROP__PHYSICS_BODY__ANGULAR_DAMPING: ::std::os::raw::c_int = 6;
11933pub const TM_TT_PROP__PHYSICS_BODY__DISABLE_GRAVITY: ::std::os::raw::c_int = 7;
11934pub const TM_TT_PROP__PHYSICS_BODY__ENABLE_CCD: ::std::os::raw::c_int = 8;
11935pub type _bindgen_ty_125 = ::std::os::raw::c_int;
11936#[repr(C)]
11937#[derive(Copy, Clone)]
11938pub struct tm_physics_body_component_t {
11939    pub mass: f32,
11940    pub center_of_mass: tm_vec3_t,
11941    pub inertia_tensor: tm_vec3_t,
11942    pub inertia_tensor_rotation: tm_vec4_t,
11943    pub kinematic: bool,
11944    pub disable_gravity: bool,
11945    pub enable_ccd: bool,
11946    pub _padding_32: [::std::os::raw::c_char; 1usize],
11947    pub linear_damping: f32,
11948    pub angular_damping: f32,
11949}
11950#[repr(C)]
11951#[derive(Copy, Clone)]
11952pub struct tm_physics_body_compute_inertia_tensor_o {
11953    _unused: [u8; 0],
11954}
11955#[repr(C)]
11956#[derive(Copy, Clone)]
11957pub struct tm_physics_body_compute_inertia_tensor_i {
11958    pub inst: *mut tm_physics_body_compute_inertia_tensor_o,
11959    pub compute: ::std::option::Option<
11960        unsafe extern "C" fn(
11961            inst: *mut tm_physics_body_compute_inertia_tensor_o,
11962            tt: *mut tm_the_truth_o,
11963            body: tm_tt_id_t,
11964            mass: f32,
11965        ) -> tm_physics_body_component_t,
11966    >,
11967}
11968pub const TM_TT_PROP__PHYSICS_COLLISION__COLLIDES_WITH: ::std::os::raw::c_int = 0;
11969pub const TM_TT_PROP__PHYSICS_COLLISION__NOTIFY_TOUCH_FOUND_WITH: ::std::os::raw::c_int = 1;
11970pub const TM_TT_PROP__PHYSICS_COLLISION__NOTIFY_TOUCH_PERSISTS_WITH: ::std::os::raw::c_int = 2;
11971pub const TM_TT_PROP__PHYSICS_COLLISION__NOTIFY_TOUCH_LOST_WITH: ::std::os::raw::c_int = 3;
11972pub type _bindgen_ty_126 = ::std::os::raw::c_int;
11973pub const tm_physics_joint_TM_PHYSICS_JOINT__NONE: tm_physics_joint = 0;
11974pub const tm_physics_joint_TM_PHYSICS_JOINT__FIXED: tm_physics_joint = 1;
11975pub const tm_physics_joint_TM_PHYSICS_JOINT__SPHERICAL: tm_physics_joint = 2;
11976pub const tm_physics_joint_TM_PHYSICS_JOINT__REVOLUTE: tm_physics_joint = 3;
11977pub const tm_physics_joint_TM_PHYSICS_JOINT__PRISMATIC: tm_physics_joint = 4;
11978pub const tm_physics_joint_TM_PHYSICS_JOINT__DISTANCE: tm_physics_joint = 5;
11979pub const tm_physics_joint_TM_PHYSICS_JOINT__D6: tm_physics_joint = 6;
11980pub type tm_physics_joint = ::std::os::raw::c_int;
11981pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__JOINT: ::std::os::raw::c_int = 0;
11982pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BODY_0: ::std::os::raw::c_int = 1;
11983pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BODY_1: ::std::os::raw::c_int = 2;
11984pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_ENABLED: ::std::os::raw::c_int = 3;
11985pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_BOUNCE_THRESHOLD: ::std::os::raw::c_int = 4;
11986pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_RESTITUTION: ::std::os::raw::c_int = 5;
11987pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_STIFFNESS: ::std::os::raw::c_int = 6;
11988pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__LIMIT_DAMPING: ::std::os::raw::c_int = 7;
11989pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BREAK_FORCE: ::std::os::raw::c_int = 8;
11990pub const TM_TT_PROP__PHYSICS_JOINT_COMPONENT__BREAK_TORQUE: ::std::os::raw::c_int = 9;
11991pub type _bindgen_ty_127 = ::std::os::raw::c_int;
11992pub const TM_TT_PROP__PHYSICS_JOINT__SPHERICAL__Y_ANGLE_LIMIT: ::std::os::raw::c_int = 0;
11993pub const TM_TT_PROP__PHYSICS_JOINT__SPHERICAL__Z_ANGLE_LIMIT: ::std::os::raw::c_int = 1;
11994pub type _bindgen_ty_128 = ::std::os::raw::c_int;
11995pub const TM_TT_PROP__PHYSICS_JOINT__REVOLUTE__LOWER_LIMIT: ::std::os::raw::c_int = 0;
11996pub const TM_TT_PROP__PHYSICS_JOINT__REVOLUTE__UPPER_LIMIT: ::std::os::raw::c_int = 1;
11997pub type _bindgen_ty_129 = ::std::os::raw::c_int;
11998pub const TM_TT_PROP__PHYSICS_JOINT__PRISMATIC__LOWER_LIMIT: ::std::os::raw::c_int = 0;
11999pub const TM_TT_PROP__PHYSICS_JOINT__PRISMATIC__UPPER_LIMIT: ::std::os::raw::c_int = 1;
12000pub type _bindgen_ty_130 = ::std::os::raw::c_int;
12001pub const TM_TT_PROP__PHYSICS_JOINT__DISTANCE__MIN: ::std::os::raw::c_int = 0;
12002pub const TM_TT_PROP__PHYSICS_JOINT__DISTANCE__MAX: ::std::os::raw::c_int = 1;
12003pub type _bindgen_ty_131 = ::std::os::raw::c_int;
12004#[repr(C)]
12005#[derive(Copy, Clone)]
12006pub struct tm_physics_joint_spherical_limits_t {
12007    pub y_angle: f32,
12008    pub z_angle: f32,
12009}
12010#[repr(C)]
12011#[derive(Copy, Clone)]
12012pub struct tm_physics_joint_revolute_limits_t {
12013    pub lower: f32,
12014    pub upper: f32,
12015}
12016#[repr(C)]
12017#[derive(Copy, Clone)]
12018pub struct tm_physics_joint_prismatic_limits_t {
12019    pub lower: f32,
12020    pub upper: f32,
12021}
12022#[repr(C)]
12023#[derive(Copy, Clone)]
12024pub struct tm_physics_joint_distance_limits_t {
12025    pub min: f32,
12026    pub max: f32,
12027}
12028#[repr(C)]
12029#[derive(Copy, Clone)]
12030pub struct tm_physics_joint_component_t {
12031    pub joint_type: u32,
12032    pub _padding_99: [::std::os::raw::c_char; 4usize],
12033    pub body_0: tm_entity_t,
12034    pub body_1: tm_entity_t,
12035    pub limit_enabled: bool,
12036    pub _padding_102: [::std::os::raw::c_char; 3usize],
12037    pub __bindgen_anon_1: tm_physics_joint_component_t__bindgen_ty_1,
12038    pub limit_restitution: f32,
12039    pub limit_bounce_threshold: f32,
12040    pub limit_stiffness: f32,
12041    pub limit_damping: f32,
12042    pub break_force: f32,
12043    pub break_torque: f32,
12044    pub _padding_117: [::std::os::raw::c_char; 4usize],
12045}
12046#[repr(C)]
12047#[derive(Copy, Clone)]
12048pub union tm_physics_joint_component_t__bindgen_ty_1 {
12049    pub spherical_limits: tm_physics_joint_spherical_limits_t,
12050    pub revolute_limits: tm_physics_joint_revolute_limits_t,
12051    pub prismatic_limits: tm_physics_joint_prismatic_limits_t,
12052    pub distance_limits: tm_physics_joint_distance_limits_t,
12053    _bindgen_union_align: [u32; 2usize],
12054}
12055pub const TM_TT_PROP__PHYSICS_MATERIAL__STATIC_FRICTION: ::std::os::raw::c_int = 0;
12056pub const TM_TT_PROP__PHYSICS_MATERIAL__DYNAMIC_FRICTION: ::std::os::raw::c_int = 1;
12057pub const TM_TT_PROP__PHYSICS_MATERIAL__RESTITUTION: ::std::os::raw::c_int = 2;
12058pub type _bindgen_ty_132 = ::std::os::raw::c_int;
12059pub const TM_TT_PROP__PHYSICS_MOVER_COMPONENT__HEIGHT: ::std::os::raw::c_int = 0;
12060pub const TM_TT_PROP__PHYSICS_MOVER_COMPONENT__RADIUS: ::std::os::raw::c_int = 1;
12061pub const TM_TT_PROP__PHYSICS_MOVER_COMPONENT__COLLISION: ::std::os::raw::c_int = 2;
12062pub type _bindgen_ty_133 = ::std::os::raw::c_int;
12063#[repr(C)]
12064#[derive(Copy, Clone)]
12065pub struct tm_physics_mover_component_t {
12066    pub height: f32,
12067    pub radius: f32,
12068    pub collision_id: tm_tt_id_t,
12069}
12070pub const tm_physics_shape_TM_PHYSICS_SHAPE__NONE: tm_physics_shape = 0;
12071pub const tm_physics_shape_TM_PHYSICS_SHAPE__SPHERE: tm_physics_shape = 1;
12072pub const tm_physics_shape_TM_PHYSICS_SHAPE__CAPSULE: tm_physics_shape = 2;
12073pub const tm_physics_shape_TM_PHYSICS_SHAPE__PLANE: tm_physics_shape = 3;
12074pub const tm_physics_shape_TM_PHYSICS_SHAPE__BOX: tm_physics_shape = 4;
12075pub const tm_physics_shape_TM_PHYSICS_SHAPE__CONVEX: tm_physics_shape = 5;
12076pub const tm_physics_shape_TM_PHYSICS_SHAPE__MESH: tm_physics_shape = 6;
12077pub type tm_physics_shape = ::std::os::raw::c_int;
12078pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__TYPE: ::std::os::raw::c_int = 0;
12079pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__SHAPE: ::std::os::raw::c_int = 1;
12080pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__MATERIAL: ::std::os::raw::c_int = 2;
12081pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__COLLISION: ::std::os::raw::c_int = 3;
12082pub const TM_TT_PROP__PHYSICS_SHAPE_COMPONENT__IS_TRIGGER: ::std::os::raw::c_int = 4;
12083pub type _bindgen_ty_134 = ::std::os::raw::c_int;
12084pub const TM_TT_PROP__PHYSICS_SHAPE__SPHERE__RADIUS: ::std::os::raw::c_int = 0;
12085pub type _bindgen_ty_135 = ::std::os::raw::c_int;
12086pub const TM_TT_PROP__PHYSICS_SHAPE__CAPSULE__RADIUS: ::std::os::raw::c_int = 0;
12087pub const TM_TT_PROP__PHYSICS_SHAPE__CAPSULE__HALF_HEIGHT: ::std::os::raw::c_int = 1;
12088pub type _bindgen_ty_136 = ::std::os::raw::c_int;
12089pub const TM_TT_PROP__PHYSICS_SHAPE__BOX__HALF_EXTENT: ::std::os::raw::c_int = 0;
12090pub type _bindgen_ty_137 = ::std::os::raw::c_int;
12091pub const TM_TT_PROP__PHYSICS_SHAPE__CONVEX__MESH: ::std::os::raw::c_int = 0;
12092pub const TM_TT_PROP__PHYSICS_SHAPE__CONVEX__FORMAT: ::std::os::raw::c_int = 1;
12093pub const TM_TT_PROP__PHYSICS_SHAPE__CONVEX__DATA: ::std::os::raw::c_int = 2;
12094pub type _bindgen_ty_138 = ::std::os::raw::c_int;
12095pub const TM_TT_PROP__PHYSICS_SHAPE__MESH__MESH: ::std::os::raw::c_int = 0;
12096pub const TM_TT_PROP__PHYSICS_SHAPE__MESH__FORMAT: ::std::os::raw::c_int = 1;
12097pub const TM_TT_PROP__PHYSICS_SHAPE__MESH__DATA: ::std::os::raw::c_int = 2;
12098pub type _bindgen_ty_139 = ::std::os::raw::c_int;
12099#[repr(C)]
12100#[derive(Copy, Clone)]
12101pub struct tm_physics_shape_sphere_t {
12102    pub radius: f32,
12103}
12104#[repr(C)]
12105#[derive(Copy, Clone)]
12106pub struct tm_physics_shape_capsule_t {
12107    pub radius: f32,
12108    pub half_height: f32,
12109}
12110#[repr(C)]
12111#[derive(Copy, Clone)]
12112pub struct tm_physics_shape_box_t {
12113    pub half_extent: tm_vec3_t,
12114}
12115#[repr(C)]
12116#[derive(Copy, Clone)]
12117pub struct tm_physics_shape_cooked_t {
12118    pub format: *const ::std::os::raw::c_char,
12119    pub data: *const u8,
12120    pub size: u64,
12121}
12122#[repr(C)]
12123#[derive(Copy, Clone)]
12124pub struct tm_physics_shape_material_t {
12125    pub static_friction: f32,
12126    pub dynamic_friction: f32,
12127    pub restitution: f32,
12128}
12129#[repr(C)]
12130#[derive(Copy, Clone)]
12131pub struct tm_physics_shape_component_t {
12132    pub shape: u32,
12133    pub _padding_106: [::std::os::raw::c_char; 4usize],
12134    pub __bindgen_anon_1: tm_physics_shape_component_t__bindgen_ty_1,
12135    pub material: tm_physics_shape_material_t,
12136    pub _padding_116: [::std::os::raw::c_char; 4usize],
12137    pub collision_id: tm_tt_id_t,
12138    pub is_trigger: bool,
12139    pub _padding_119: [::std::os::raw::c_char; 7usize],
12140}
12141#[repr(C)]
12142#[derive(Copy, Clone)]
12143pub union tm_physics_shape_component_t__bindgen_ty_1 {
12144    pub sphere: tm_physics_shape_sphere_t,
12145    pub capsule: tm_physics_shape_capsule_t,
12146    pub box_: tm_physics_shape_box_t,
12147    pub convex: tm_physics_shape_cooked_t,
12148    pub mesh: tm_physics_shape_cooked_t,
12149    _bindgen_union_align: [u64; 3usize],
12150}
12151#[repr(C)]
12152#[derive(Copy, Clone)]
12153pub struct tm_physics_shape_cooking_o {
12154    _unused: [u8; 0],
12155}
12156#[repr(C)]
12157#[derive(Copy, Clone)]
12158pub struct tm_physics_shape_cooking_i {
12159    pub inst: *mut tm_physics_shape_cooking_o,
12160    pub cook_convex: ::std::option::Option<
12161        unsafe extern "C" fn(
12162            inst: *mut tm_physics_shape_cooking_o,
12163            tt: *mut tm_the_truth_o,
12164            convex: tm_tt_id_t,
12165            undo_scope: tm_tt_undo_scope_t,
12166        ) -> *const ::std::os::raw::c_char,
12167    >,
12168    pub cook_mesh: ::std::option::Option<
12169        unsafe extern "C" fn(
12170            inst: *mut tm_physics_shape_cooking_o,
12171            tt: *mut tm_the_truth_o,
12172            mesh: tm_tt_id_t,
12173            undo_scope: tm_tt_undo_scope_t,
12174        ) -> *const ::std::os::raw::c_char,
12175    >,
12176}
12177#[repr(C)]
12178#[derive(Copy, Clone)]
12179pub struct tm_physics_shape_drawing_o {
12180    _unused: [u8; 0],
12181}
12182#[repr(C)]
12183#[derive(Copy, Clone)]
12184pub struct tm_physics_shape_drawing_i {
12185    pub inst: *mut tm_physics_shape_drawing_o,
12186    pub convex_lines: ::std::option::Option<
12187        unsafe extern "C" fn(
12188            inst: *mut tm_physics_shape_drawing_o,
12189            convex: *const tm_physics_shape_cooked_t,
12190            ta: *mut tm_temp_allocator_i,
12191        ) -> *const tm_vec3_t,
12192    >,
12193    pub mesh_lines: ::std::option::Option<
12194        unsafe extern "C" fn(
12195            inst: *mut tm_physics_shape_drawing_o,
12196            mesh: *const tm_physics_shape_cooked_t,
12197            ta: *mut tm_temp_allocator_i,
12198        ) -> *const tm_vec3_t,
12199    >,
12200}
12201#[repr(C)]
12202#[derive(Copy, Clone)]
12203pub struct tm_physics_shape_api {
12204    pub load_component_from_truth: ::std::option::Option<
12205        unsafe extern "C" fn(
12206            c: *mut tm_physics_shape_component_t,
12207            tt: *const tm_the_truth_o,
12208            asset: tm_tt_id_t,
12209        ),
12210    >,
12211}
12212pub type tm_physics_shape_geometry = ::std::option::Option<
12213    unsafe extern "C" fn(
12214        tt: *const tm_the_truth_o,
12215        id: tm_tt_id_t,
12216        ta: *mut tm_temp_allocator_i,
12217    ) -> tm_dcc_asset_geometry_t,
12218>;
12219pub const TM_TT_PROP__VELOCITY_COMPONENT__VELOCITY: ::std::os::raw::c_int = 0;
12220pub const TM_TT_PROP__VELOCITY_COMPONENT__ANGULAR_VELOCITY: ::std::os::raw::c_int = 1;
12221pub type _bindgen_ty_140 = ::std::os::raw::c_int;
12222#[repr(C)]
12223#[derive(Copy, Clone)]
12224pub struct tm_velocity_component_t {
12225    pub velocity: tm_vec3_t,
12226    pub angular_velocity: tm_vec3_t,
12227}
12228#[repr(C)]
12229#[derive(Copy, Clone)]
12230pub struct tm_physx_actor_o {
12231    _unused: [u8; 0],
12232}
12233#[repr(C)]
12234#[derive(Copy, Clone)]
12235pub struct tm_physx_shape_o {
12236    _unused: [u8; 0],
12237}
12238#[repr(C)]
12239#[derive(Copy, Clone)]
12240pub struct tm_physx_joint_o {
12241    _unused: [u8; 0],
12242}
12243#[repr(C)]
12244#[derive(Copy, Clone)]
12245pub struct tm_physx_mover_o {
12246    _unused: [u8; 0],
12247}
12248#[repr(C)]
12249#[derive(Copy, Clone)]
12250pub struct tm_physx_rigid_static_component_t {
12251    pub actor: *mut tm_physx_actor_o,
12252}
12253#[repr(C)]
12254#[derive(Copy, Clone)]
12255pub struct tm_physx_rigid_body_component_t {
12256    pub actor: *mut tm_physx_actor_o,
12257}
12258#[repr(C)]
12259#[derive(Copy, Clone)]
12260pub struct tm_physx_rigid_body_shape_component_t {
12261    pub body_entity: tm_entity_t,
12262    pub shape: *mut tm_physx_shape_o,
12263}
12264#[repr(C)]
12265#[derive(Copy, Clone)]
12266pub struct tm_physx_joint_component_t {
12267    pub joint: *mut tm_physx_joint_o,
12268}
12269#[repr(C)]
12270#[derive(Copy, Clone)]
12271pub struct tm_physx_mover_component_t {
12272    pub mover: *mut tm_physx_mover_o,
12273    pub collision_idx: u32,
12274    pub velocity: tm_vec3_t,
12275    pub is_standing: bool,
12276    pub _padding_66: [::std::os::raw::c_char; 7usize],
12277}
12278pub const TM_PHYSX_SCENE_FLAGS__EDITOR: ::std::os::raw::c_int = 1;
12279pub type _bindgen_ty_141 = ::std::os::raw::c_int;
12280#[repr(C)]
12281#[derive(Copy, Clone)]
12282pub struct tm_physx_raycast_flags_t {
12283    pub ignore_static: bool,
12284    pub ignore_dynamic: bool,
12285}
12286#[repr(C)]
12287#[derive(Copy, Clone)]
12288pub struct tm_physx_raycast_hit_t {
12289    pub pos: tm_vec3_t,
12290    pub normal: tm_vec3_t,
12291    pub distance: f32,
12292    pub _padding_97: [::std::os::raw::c_char; 4usize],
12293    pub body: tm_entity_t,
12294    pub shape: tm_entity_t,
12295}
12296#[repr(C)]
12297#[derive(Copy, Clone)]
12298pub struct tm_physx_raycast_t {
12299    pub has_block: bool,
12300    pub _padding_111: [::std::os::raw::c_char; 7usize],
12301    pub block: tm_physx_raycast_hit_t,
12302    pub num_touches: u32,
12303    pub _padding_118: [::std::os::raw::c_char; 4usize],
12304}
12305#[repr(C)]
12306#[derive(Copy, Clone)]
12307pub struct tm_physx_overlap_hit_t {
12308    pub body: tm_entity_t,
12309    pub shape: tm_entity_t,
12310}
12311#[repr(C)]
12312#[derive(Copy, Clone)]
12313pub struct tm_physx_on_contact_t {
12314    pub actor_0: tm_entity_t,
12315    pub actor_1: tm_entity_t,
12316    pub shape_0: tm_entity_t,
12317    pub shape_1: tm_entity_t,
12318    pub pos: tm_vec3_t,
12319    pub normal: tm_vec3_t,
12320    pub first_touch: bool,
12321    pub lost_touch: bool,
12322    pub _padding_158: [::std::os::raw::c_char; 6usize],
12323}
12324#[repr(C)]
12325#[derive(Copy, Clone)]
12326pub struct tm_physx_on_trigger_t {
12327    pub trigger_entity: tm_entity_t,
12328    pub trigger_shape: tm_entity_t,
12329    pub touched_entity: tm_entity_t,
12330    pub touched_shape: tm_entity_t,
12331    pub lost_touch: bool,
12332    pub _padding_178: [::std::os::raw::c_char; 7usize],
12333}
12334#[repr(C)]
12335#[derive(Copy, Clone)]
12336pub struct tm_physx_on_joint_break_t {
12337    pub joint: tm_entity_t,
12338}
12339pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__FORCE: tm_physx_force_flags = 0;
12340pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__IMPULSE: tm_physx_force_flags = 1;
12341pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__ACCELERATION: tm_physx_force_flags = 2;
12342pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__VELOCITY_CHANGE: tm_physx_force_flags = 3;
12343pub const tm_physx_force_flags_TM_PHYSX_FORCE_FLAGS__CONTINUOUS: tm_physx_force_flags = 4;
12344pub type tm_physx_force_flags = ::std::os::raw::c_int;
12345#[repr(C)]
12346#[derive(Copy, Clone)]
12347pub struct tm_physx_scene_api {
12348    pub create: ::std::option::Option<
12349        unsafe extern "C" fn(ctx: *mut tm_entity_context_o, flags: u32) -> *mut tm_physx_scene_o,
12350    >,
12351    pub update: ::std::option::Option<unsafe extern "C" fn(physx: *mut tm_physx_scene_o, dt: f32)>,
12352    pub visualize: ::std::option::Option<
12353        unsafe extern "C" fn(
12354            physx: *mut tm_physx_scene_o,
12355            pbuffer: *mut tm_primitive_drawer_buffer_t,
12356            vbuffer: *mut tm_primitive_drawer_buffer_t,
12357            a: *mut tm_allocator_i,
12358        ),
12359    >,
12360    pub raycast: ::std::option::Option<
12361        unsafe extern "C" fn(
12362            physx: *mut tm_physx_scene_o,
12363            from: tm_vec3_t,
12364            dir: tm_vec3_t,
12365            distance: f32,
12366            collision_id: tm_tt_id_t,
12367            flags: tm_physx_raycast_flags_t,
12368            touches: *mut tm_physx_raycast_hit_t,
12369            max_touches: u32,
12370        ) -> tm_physx_raycast_t,
12371    >,
12372    pub sweep: ::std::option::Option<
12373        unsafe extern "C" fn(
12374            physx: *mut tm_physx_scene_o,
12375            shape: *const tm_physics_shape_component_t,
12376            from: tm_vec3_t,
12377            rot: tm_vec4_t,
12378            dir: tm_vec3_t,
12379            distance: f32,
12380            collision_id: tm_tt_id_t,
12381            flags: tm_physx_raycast_flags_t,
12382            touches: *mut tm_physx_raycast_hit_t,
12383            max_touches: u32,
12384        ) -> tm_physx_raycast_t,
12385    >,
12386    pub overlap: ::std::option::Option<
12387        unsafe extern "C" fn(
12388            physx: *mut tm_physx_scene_o,
12389            shape: *const tm_physics_shape_component_t,
12390            pos: tm_vec3_t,
12391            rot: tm_vec4_t,
12392            collision_id: tm_tt_id_t,
12393            flags: tm_physx_raycast_flags_t,
12394            touches: *mut tm_physx_overlap_hit_t,
12395            max_touches: u32,
12396        ) -> u32,
12397    >,
12398    pub on_contact: ::std::option::Option<
12399        unsafe extern "C" fn(physx: *mut tm_physx_scene_o) -> *mut tm_physx_on_contact_t,
12400    >,
12401    pub on_trigger: ::std::option::Option<
12402        unsafe extern "C" fn(physx: *mut tm_physx_scene_o) -> *mut tm_physx_on_trigger_t,
12403    >,
12404    pub on_joint_break: ::std::option::Option<
12405        unsafe extern "C" fn(physx: *mut tm_physx_scene_o) -> *mut tm_physx_on_joint_break_t,
12406    >,
12407    pub velocity: ::std::option::Option<
12408        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> tm_vec3_t,
12409    >,
12410    pub set_velocity: ::std::option::Option<
12411        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t, vel: tm_vec3_t),
12412    >,
12413    pub angular_velocity: ::std::option::Option<
12414        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> tm_vec3_t,
12415    >,
12416    pub set_angular_velocity: ::std::option::Option<
12417        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t, vel: tm_vec3_t),
12418    >,
12419    pub is_kinematic: ::std::option::Option<
12420        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> bool,
12421    >,
12422    pub set_kinematic: ::std::option::Option<
12423        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t, is_kinematic: bool),
12424    >,
12425    pub add_force: ::std::option::Option<
12426        unsafe extern "C" fn(
12427            physx: *mut tm_physx_scene_o,
12428            e: tm_entity_t,
12429            force: tm_vec3_t,
12430            flags: u32,
12431        ),
12432    >,
12433    pub add_torque: ::std::option::Option<
12434        unsafe extern "C" fn(
12435            physx: *mut tm_physx_scene_o,
12436            e: tm_entity_t,
12437            torque: tm_vec3_t,
12438            flags: u32,
12439        ),
12440    >,
12441    pub add_force_at: ::std::option::Option<
12442        unsafe extern "C" fn(
12443            physx: *mut tm_physx_scene_o,
12444            e: tm_entity_t,
12445            force: tm_vec3_t,
12446            pos: tm_vec3_t,
12447            flags: u32,
12448        ),
12449    >,
12450    pub push: ::std::option::Option<
12451        unsafe extern "C" fn(
12452            physx: *mut tm_physx_scene_o,
12453            e: tm_entity_t,
12454            vel: tm_vec3_t,
12455            mass: f32,
12456        ),
12457    >,
12458    pub push_at: ::std::option::Option<
12459        unsafe extern "C" fn(
12460            physx: *mut tm_physx_scene_o,
12461            e: tm_entity_t,
12462            vel: tm_vec3_t,
12463            mass: f32,
12464            pos: tm_vec3_t,
12465        ),
12466    >,
12467    pub break_joint:
12468        ::std::option::Option<unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t)>,
12469    pub is_joint_broken: ::std::option::Option<
12470        unsafe extern "C" fn(physx: *mut tm_physx_scene_o, e: tm_entity_t) -> bool,
12471    >,
12472}
12473pub const TM_RENDERER_STATE_BLOCK_TYPE_TESSELLATION: ::std::os::raw::c_int = 0;
12474pub const TM_RENDERER_STATE_BLOCK_TYPE_RASTER: ::std::os::raw::c_int = 1;
12475pub const TM_RENDERER_STATE_BLOCK_TYPE_DEPTH_STENCIL: ::std::os::raw::c_int = 2;
12476pub const TM_RENDERER_STATE_BLOCK_TYPE_TEXTURE_SAMPLER: ::std::os::raw::c_int = 3;
12477pub const TM_RENDERER_STATE_BLOCK_TYPE_RENDER_TARGET_BLEND: ::std::os::raw::c_int = 4;
12478pub const TM_RENDERER_STATE_BLOCK_TYPE_BLEND: ::std::os::raw::c_int = 5;
12479pub const TM_RENDERER_STATE_BLOCK_TYPE_MULTI_SAMPLE: ::std::os::raw::c_int = 6;
12480pub const TM_RENDERER_STATE_BLOCK_TYPE_MAX_STATE_BLOCK_TYPES: ::std::os::raw::c_int = 7;
12481pub type _bindgen_ty_142 = ::std::os::raw::c_int;
12482pub const TM_RENDERER_VALUE_TYPE_BOOL: ::std::os::raw::c_int = 0;
12483pub const TM_RENDERER_VALUE_TYPE_UINT32: ::std::os::raw::c_int = 1;
12484pub const TM_RENDERER_VALUE_TYPE_FLOAT32: ::std::os::raw::c_int = 2;
12485pub const TM_RENDERER_VALUE_TYPE_COMPARE_OP: ::std::os::raw::c_int = 3;
12486pub const TM_RENDERER_VALUE_TYPE_CULL: ::std::os::raw::c_int = 4;
12487pub const TM_RENDERER_VALUE_TYPE_FRONT_FACE: ::std::os::raw::c_int = 5;
12488pub const TM_RENDERER_VALUE_TYPE_POLYGON_MODE: ::std::os::raw::c_int = 6;
12489pub const TM_RENDERER_VALUE_TYPE_STENCIL_OP: ::std::os::raw::c_int = 7;
12490pub const TM_RENDERER_VALUE_TYPE_FILTER: ::std::os::raw::c_int = 8;
12491pub const TM_RENDERER_VALUE_TYPE_MIP_MODE: ::std::os::raw::c_int = 9;
12492pub const TM_RENDERER_VALUE_TYPE_ADDRESS_MODE: ::std::os::raw::c_int = 10;
12493pub const TM_RENDERER_VALUE_TYPE_BORDER_COLOR: ::std::os::raw::c_int = 11;
12494pub const TM_RENDERER_VALUE_TYPE_BLEND_FACTOR: ::std::os::raw::c_int = 12;
12495pub const TM_RENDERER_VALUE_TYPE_BLEND_OPERATION: ::std::os::raw::c_int = 13;
12496pub const TM_RENDERER_VALUE_TYPE_BLEND_WRITE_MASK: ::std::os::raw::c_int = 14;
12497pub const TM_RENDERER_VALUE_TYPE_LOGICAL_OPERATION: ::std::os::raw::c_int = 15;
12498pub const TM_RENDERER_VALUE_TYPE_STATE_BLOCK: ::std::os::raw::c_int = -16777216;
12499pub const TM_RENDERER_VALUE_TYPE_MAX_VALUE_TYPES: ::std::os::raw::c_int = -16777215;
12500pub type _bindgen_ty_143 = ::std::os::raw::c_int;
12501#[repr(C)]
12502#[derive(Copy, Clone)]
12503pub struct tm_renderer_shader_blob_t {
12504    pub size: u64,
12505    pub data: *mut u8,
12506}
12507#[repr(C)]
12508#[derive(Copy, Clone)]
12509pub struct tm_renderer_image_subresource_layers_t {
12510    pub first_layer: u16,
12511    pub layer_count: u16,
12512    pub first_mip: u16,
12513    pub mip_levels: u16,
12514}
12515#[repr(C)]
12516#[derive(Copy, Clone)]
12517pub struct tm_renderer_image_offset_t {
12518    pub x: u16,
12519    pub y: u16,
12520    pub z: u16,
12521}
12522#[repr(C)]
12523#[derive(Copy, Clone)]
12524pub struct tm_renderer_image_extent_t {
12525    pub width: u16,
12526    pub height: u16,
12527    pub depth: u16,
12528}
12529pub const tm_renderer_queue_TM_RENDERER_QUEUE_GRAPHICS: tm_renderer_queue = 0;
12530pub const tm_renderer_queue_TM_RENDERER_QUEUE_COMPUTE: tm_renderer_queue = 1;
12531pub const tm_renderer_queue_TM_RENDERER_QUEUE_TRANSFER: tm_renderer_queue = 2;
12532pub type tm_renderer_queue = ::std::os::raw::c_int;
12533pub const tm_renderer_resource_load_op_TM_RENDERER_RESOURCE_LOAD_OP_LOAD:
12534    tm_renderer_resource_load_op = 0;
12535pub const tm_renderer_resource_load_op_TM_RENDERER_RESOURCE_LOAD_OP_CLEAR:
12536    tm_renderer_resource_load_op = 1;
12537pub const tm_renderer_resource_load_op_TM_RENDERER_RESOURCE_LOAD_OP_DISCARD:
12538    tm_renderer_resource_load_op = 2;
12539pub type tm_renderer_resource_load_op = ::std::os::raw::c_int;
12540pub const tm_renderer_resource_store_op_TM_RENDERER_RESOURCE_STORE_OP_STORE:
12541    tm_renderer_resource_store_op = 0;
12542pub const tm_renderer_resource_store_op_TM_RENDERER_RESOURCE_STORE_OP_DISCARD:
12543    tm_renderer_resource_store_op = 1;
12544pub type tm_renderer_resource_store_op = ::std::os::raw::c_int;
12545pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_VERTEX_INPUT:
12546    tm_renderer_resource_state = 1;
12547pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_RENDER_TARGET:
12548    tm_renderer_resource_state = 2;
12549pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_UAV: tm_renderer_resource_state = 4;
12550pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_RESOURCE:
12551    tm_renderer_resource_state = 8;
12552pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_VERTEX_SHADER:
12553    tm_renderer_resource_state = 16;
12554pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_HULL_SHADER:
12555    tm_renderer_resource_state = 32;
12556pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_DOMAIN_SHADER:
12557    tm_renderer_resource_state = 64;
12558pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_GEOMETRY_SHADER:
12559    tm_renderer_resource_state = 128;
12560pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_PIXEL_SHADER:
12561    tm_renderer_resource_state = 256;
12562pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_COMPUTE_SHADER:
12563    tm_renderer_resource_state = 512;
12564pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_COPY_SOURCE:
12565    tm_renderer_resource_state = 1024;
12566pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_COPY_DESTINATION:
12567    tm_renderer_resource_state = 2048;
12568pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_INDIRECT_ARGUMENT:
12569    tm_renderer_resource_state = 4096;
12570pub const tm_renderer_resource_state_TM_RENDERER_RESOURCE_STATE_PRESENT:
12571    tm_renderer_resource_state = 8192;
12572pub type tm_renderer_resource_state = ::std::os::raw::c_int;
12573#[repr(C)]
12574#[derive(Copy, Clone)]
12575pub struct tm_renderer_command_buffer {
12576    _unused: [u8; 0],
12577}
12578#[repr(C)]
12579#[derive(Copy, Clone)]
12580pub struct tm_renderer_render_pass_bind_render_target_t {
12581    pub resource: u32,
12582    pub aspect: u32,
12583    pub initial_state: u16,
12584    pub final_state: u16,
12585    pub load_op: u8,
12586    pub store_op: u8,
12587    pub stencil_load_op: u8,
12588    pub stencil_store_op: u8,
12589}
12590pub const TM_RENDERER_MAX_RENDER_TARGETS: ::std::os::raw::c_int = 8;
12591pub type _bindgen_ty_144 = ::std::os::raw::c_int;
12592pub const TM_RENDERER_MAX_QUEUE_FENCES: ::std::os::raw::c_int = 4;
12593pub type _bindgen_ty_145 = ::std::os::raw::c_int;
12594#[repr(C)]
12595#[derive(Copy, Clone)]
12596pub struct tm_renderer_scheduling_t {
12597    pub wait_queue_fences: [u32; 4usize],
12598    pub wait_device_affinity_masks: [u32; 4usize],
12599    pub num_wait_fences: u32,
12600    pub signal_queue_fence: u32,
12601    pub signal_device_affinity_mask: u32,
12602}
12603#[repr(C)]
12604#[derive(Copy, Clone)]
12605pub struct tm_renderer_render_pass_bind_t {
12606    pub device_affinity_mask: u32,
12607    pub render_targets: [tm_renderer_render_pass_bind_render_target_t; 8usize],
12608    pub depth_stencil_target: tm_renderer_render_pass_bind_render_target_t,
12609    pub scheduling: tm_renderer_scheduling_t,
12610}
12611#[repr(C)]
12612#[derive(Copy, Clone)]
12613pub struct tm_renderer_queue_bind_t {
12614    pub device_affinity_mask: u32,
12615    pub queue_family: u8,
12616    pub queue_index: u8,
12617    pub _padding_154: [::std::os::raw::c_char; 2usize],
12618    pub scheduling: tm_renderer_scheduling_t,
12619}
12620pub const TM_RENDERER_MAX_VIEWPORTS_SCISSOR_RECTS: ::std::os::raw::c_int = 8;
12621pub type _bindgen_ty_146 = ::std::os::raw::c_int;
12622#[repr(C)]
12623#[derive(Copy, Clone)]
12624pub struct tm_renderer_set_viewports_t {
12625    pub viewports: [tm_renderer_set_viewports_t__bindgen_ty_1; 8usize],
12626    pub num_viewports: u32,
12627}
12628#[repr(C)]
12629#[derive(Copy, Clone)]
12630pub struct tm_renderer_set_viewports_t__bindgen_ty_1 {
12631    pub x: f32,
12632    pub y: f32,
12633    pub width: f32,
12634    pub height: f32,
12635    pub min_depth: f32,
12636    pub max_depth: f32,
12637}
12638#[repr(C)]
12639#[derive(Copy, Clone)]
12640pub struct tm_renderer_set_scissor_rects_t {
12641    pub rects: [tm_renderer_set_scissor_rects_t__bindgen_ty_1; 8usize],
12642    pub num_rects: u32,
12643}
12644#[repr(C)]
12645#[derive(Copy, Clone)]
12646pub struct tm_renderer_set_scissor_rects_t__bindgen_ty_1 {
12647    pub x: i32,
12648    pub y: i32,
12649    pub width: u32,
12650    pub height: u32,
12651}
12652#[repr(C)]
12653#[derive(Copy, Clone)]
12654pub struct tm_renderer_begin_statistics_t {
12655    pub category: *const ::std::os::raw::c_char,
12656    pub name: *const ::std::os::raw::c_char,
12657    pub flags: u32,
12658    pub _padding_197: [::std::os::raw::c_char; 4usize],
12659    pub uid: u64,
12660    pub backend_data: [u32; 8usize],
12661}
12662#[repr(C)]
12663#[derive(Copy, Clone)]
12664pub struct tm_renderer_end_statistics_t {
12665    pub uid: u64,
12666    pub backend_data: [u32; 8usize],
12667}
12668pub const tm_renderer_dispatch_type_TM_RENDERER_DISPATCH_TYPE_NORMAL: tm_renderer_dispatch_type = 0;
12669pub const tm_renderer_dispatch_type_TM_RENDERER_DISPATCH_TYPE_INDIRECT: tm_renderer_dispatch_type =
12670    1;
12671pub type tm_renderer_dispatch_type = ::std::os::raw::c_int;
12672#[repr(C)]
12673#[derive(Copy, Clone)]
12674pub struct tm_renderer_dispatch_command_t {
12675    pub group_count: [u32; 3usize],
12676}
12677#[repr(C)]
12678#[derive(Copy, Clone)]
12679pub struct tm_renderer_dispatch_indirect_command_t {
12680    pub indirect_buffer: u32,
12681    pub _padding_226: [::std::os::raw::c_char; 4usize],
12682    pub offset: u64,
12683}
12684#[repr(C)]
12685#[derive(Copy, Clone)]
12686pub struct tm_renderer_compute_info_t {
12687    pub dispatch_type: u8,
12688    pub _padding_234: [::std::os::raw::c_char; 7usize],
12689    pub __bindgen_anon_1: tm_renderer_compute_info_t__bindgen_ty_1,
12690}
12691#[repr(C)]
12692#[derive(Copy, Clone)]
12693pub union tm_renderer_compute_info_t__bindgen_ty_1 {
12694    pub dispatch: tm_renderer_dispatch_command_t,
12695    pub indirect: tm_renderer_dispatch_indirect_command_t,
12696    _bindgen_union_align: [u64; 2usize],
12697}
12698pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_TRIANGLE_LIST:
12699    tm_renderer_primitive_type = 0;
12700pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_LINE_LIST:
12701    tm_renderer_primitive_type = 1;
12702pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_POINT_LIST:
12703    tm_renderer_primitive_type = 2;
12704pub const tm_renderer_primitive_type_TM_RENDERER_PRIMITIVE_TYPE_MAX_TYPES:
12705    tm_renderer_primitive_type = 3;
12706pub type tm_renderer_primitive_type = ::std::os::raw::c_int;
12707pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_NON_INDEXED: tm_renderer_draw_type = 0;
12708pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_INDEXED: tm_renderer_draw_type = 1;
12709pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_NON_INDEXED_INDIRECT: tm_renderer_draw_type =
12710    2;
12711pub const tm_renderer_draw_type_TM_RENDERER_DRAW_TYPE_INDEXED_INDIRECT: tm_renderer_draw_type = 3;
12712pub type tm_renderer_draw_type = ::std::os::raw::c_int;
12713pub const tm_renderer_index_type_TM_RENDERER_INDEX_TYPE_UINT16: tm_renderer_index_type = 0;
12714pub const tm_renderer_index_type_TM_RENDERER_INDEX_TYPE_UINT32: tm_renderer_index_type = 1;
12715pub type tm_renderer_index_type = ::std::os::raw::c_int;
12716#[repr(C)]
12717#[derive(Copy, Clone)]
12718pub struct tm_renderer_draw_command_t {
12719    pub num_vertices: u32,
12720    pub num_instances: u32,
12721    pub first_vertex: u32,
12722    pub first_instance: u32,
12723}
12724#[repr(C)]
12725#[derive(Copy, Clone)]
12726pub struct tm_renderer_draw_indexed_command_t {
12727    pub num_indices: u32,
12728    pub num_instances: u32,
12729    pub first_index: u32,
12730    pub vertex_offset: i32,
12731    pub first_instance: u32,
12732}
12733#[repr(C)]
12734#[derive(Copy, Clone)]
12735pub struct tm_renderer_draw_indirect_command_t {
12736    pub indirect_buffer: u32,
12737    pub _padding_306: [::std::os::raw::c_char; 4usize],
12738    pub offset: u64,
12739    pub stride: u32,
12740    pub num_draws: u32,
12741}
12742#[repr(C)]
12743#[derive(Copy, Clone)]
12744pub struct tm_renderer_draw_call_info_t {
12745    pub __bindgen_anon_1: tm_renderer_draw_call_info_t__bindgen_ty_1,
12746    pub index_buffer: u32,
12747    pub primitive_type: u8,
12748    pub draw_type: u8,
12749    pub index_type: u8,
12750    pub _padding_337: [::std::os::raw::c_char; 1usize],
12751}
12752#[repr(C)]
12753#[derive(Copy, Clone)]
12754pub union tm_renderer_draw_call_info_t__bindgen_ty_1 {
12755    pub non_indexed: tm_renderer_draw_command_t,
12756    pub indexed: tm_renderer_draw_indexed_command_t,
12757    pub indirect: tm_renderer_draw_indirect_command_t,
12758    _bindgen_union_align: [u64; 3usize],
12759}
12760pub const TM_RENDERER_MAX_RESOURCE_BINDERS: ::std::os::raw::c_int = 6;
12761pub const TM_RENDERER_MAX_PUSH_CONSTANTS: ::std::os::raw::c_int = 8;
12762pub const TM_RENDERER_MAX_SHADER_STATE_OVERRIDE_BLOCKS: ::std::os::raw::c_int = 4;
12763pub type _bindgen_ty_147 = ::std::os::raw::c_int;
12764#[repr(C)]
12765#[derive(Copy, Clone)]
12766pub struct tm_renderer_shader_state_override_blocks_t {
12767    pub num_override_blocks: u8,
12768    pub _padding_353: [::std::os::raw::c_char; 3usize],
12769    pub shader_state_override_blocks: [u32; 4usize],
12770}
12771#[repr(C)]
12772#[derive(Copy, Clone)]
12773pub struct tm_renderer_shader_resource_binders_t {
12774    pub num_resource_binders: u8,
12775    pub _padding_362: [::std::os::raw::c_char; 3usize],
12776    pub resource_binders: [u32; 6usize],
12777}
12778#[repr(C)]
12779#[derive(Copy, Clone)]
12780pub struct tm_renderer_shader_push_constants_t {
12781    pub num_constants: u8,
12782    pub _padding_371: [::std::os::raw::c_char; 3usize],
12783    pub data: [u32; 8usize],
12784}
12785#[repr(C)]
12786#[derive(Copy, Clone)]
12787pub struct tm_renderer_shader_info_t {
12788    pub shader: u32,
12789    pub state_override_blocks: tm_renderer_shader_state_override_blocks_t,
12790    pub binders: tm_renderer_shader_resource_binders_t,
12791    pub constants: tm_renderer_shader_push_constants_t,
12792    pub sort_key: u64,
12793}
12794#[repr(C)]
12795#[derive(Copy, Clone)]
12796pub struct tm_renderer_shader_header_t {
12797    pub shader: u32,
12798    pub num_state_override_blocks: u16,
12799    pub num_resource_binders: u16,
12800    pub num_bytes_push_constants: u16,
12801    pub _padding_398: [::std::os::raw::c_char; 2usize],
12802}
12803pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_DEFAULT: tm_renderer_image_aspect = 0;
12804pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_SRGB: tm_renderer_image_aspect = 1;
12805pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_DEPTH: tm_renderer_image_aspect = 2;
12806pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_STENCIL: tm_renderer_image_aspect = 3;
12807pub const tm_renderer_image_aspect_TM_RENDERER_IMAGE_ASPECT_ADDITONAL_VIEW:
12808    tm_renderer_image_aspect = 134217728;
12809pub type tm_renderer_image_aspect = ::std::os::raw::c_int;
12810#[repr(C)]
12811#[derive(Copy, Clone)]
12812pub struct tm_renderer_set_resource_t {
12813    pub bind_point: u32,
12814    pub resource_handle: u32,
12815    pub resource_aspect_flag: u32,
12816}
12817#[repr(C)]
12818#[derive(Copy, Clone)]
12819pub struct tm_renderer_set_array_resources_t {
12820    pub bind_point: u32,
12821    pub first_element: u32,
12822    pub n_handles: u32,
12823}
12824#[repr(C)]
12825#[derive(Copy, Clone)]
12826pub struct tm_renderer_update_buffer_command_t {
12827    pub offset: u64,
12828    pub size: u64,
12829    pub device_affinity_mask: u32,
12830    pub _padding_452: [::std::os::raw::c_char; 4usize],
12831}
12832#[repr(C)]
12833#[derive(Copy, Clone)]
12834pub struct tm_renderer_update_image_buffer_command_t {
12835    pub subresource: tm_renderer_image_subresource_layers_t,
12836    pub offset: tm_renderer_image_offset_t,
12837    pub extent: tm_renderer_image_extent_t,
12838    pub _padding_461: [::std::os::raw::c_char; 4usize],
12839    pub size: u64,
12840    pub device_affinity_mask: u32,
12841    pub _padding_466: [::std::os::raw::c_char; 4usize],
12842}
12843#[repr(C)]
12844#[derive(Copy, Clone)]
12845pub struct tm_renderer_create_additional_image_views_t {
12846    pub device_affinity_mask: u32,
12847    pub num_views: u32,
12848}
12849#[repr(C)]
12850#[derive(Copy, Clone)]
12851pub struct tm_renderer_destroy_additional_image_views_t {
12852    pub device_affinity_mask: u32,
12853}
12854#[repr(C)]
12855#[derive(Copy, Clone)]
12856pub struct tm_renderer_resource_barrier_header_t {
12857    pub num_barriers: u32,
12858}
12859pub const tm_renderer_resource_barrier_flag_TM_RENDERER_RESOURCE_BARRIER_FLAG_IMAGE_ASPECT_STENCIL : tm_renderer_resource_barrier_flag = 1 ;
12860pub const tm_renderer_resource_barrier_flag_TM_RENDERER_RESOURCE_BARRIER_FLAG_SUBRESOURCE:
12861    tm_renderer_resource_barrier_flag = 2;
12862pub type tm_renderer_resource_barrier_flag = ::std::os::raw::c_int;
12863#[repr(C)]
12864#[derive(Copy, Clone)]
12865pub struct tm_renderer_resource_barrier_t {
12866    pub resource_handle: u32,
12867    pub source_state: u16,
12868    pub destination_state: u16,
12869    pub source_queue: u16,
12870    pub destination_queue: u16,
12871    pub barrier_flags: u16,
12872    pub _padding_513: [::std::os::raw::c_char; 2usize],
12873    pub __bindgen_anon_1: tm_renderer_resource_barrier_t__bindgen_ty_1,
12874}
12875#[repr(C)]
12876#[derive(Copy, Clone)]
12877pub union tm_renderer_resource_barrier_t__bindgen_ty_1 {
12878    pub subresource_image: tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1,
12879    pub subresource_buffer: tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2,
12880    _bindgen_union_align: [u64; 2usize],
12881}
12882#[repr(C)]
12883#[derive(Copy, Clone)]
12884pub struct tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_1 {
12885    pub first_layer: u16,
12886    pub layer_count: u16,
12887    pub first_mip_level: u16,
12888    pub mip_count: u16,
12889}
12890#[repr(C)]
12891#[derive(Copy, Clone)]
12892pub struct tm_renderer_resource_barrier_t__bindgen_ty_1__bindgen_ty_2 {
12893    pub offset: u64,
12894    pub size: u64,
12895}
12896pub const tm_renderer_copy_image_flags_TM_RENDERER_COPY_IMAGE_FLAG_IMAGE_ASPECT_STENCIL:
12897    tm_renderer_copy_image_flags = 1;
12898pub const tm_renderer_copy_image_flags_TM_RENDERER_COPY_IMAGE_FLAG_SUBRESOURCE:
12899    tm_renderer_copy_image_flags = 2;
12900pub type tm_renderer_copy_image_flags = ::std::os::raw::c_int;
12901#[repr(C)]
12902#[derive(Copy, Clone)]
12903pub struct tm_renderer_copy_image_buffer_t {
12904    pub source_resource: u32,
12905    pub destination_resource: u32,
12906    pub copy_flags: u16,
12907    pub src_subresource_layers: tm_renderer_image_subresource_layers_t,
12908    pub src_offset: tm_renderer_image_offset_t,
12909    pub dst_subresource_layers: tm_renderer_image_subresource_layers_t,
12910    pub dst_offset: tm_renderer_image_offset_t,
12911    pub extent: tm_renderer_image_extent_t,
12912}
12913#[repr(C)]
12914#[derive(Copy, Clone)]
12915pub struct tm_renderer_copy_buffer_t {
12916    pub source_resource: u32,
12917    pub destination_resource: u32,
12918    pub source_offset: u64,
12919    pub destination_offset: u64,
12920    pub size: u64,
12921}
12922pub const tm_renderer_read_image_flags_TM_RENDERER_READ_IMAGE_FLAG_IMAGE_ASPECT_STENCIL:
12923    tm_renderer_read_image_flags = 1;
12924pub const tm_renderer_read_image_flags_TM_RENDERER_READ_IMAGE_FLAG_SUBRESOURCE:
12925    tm_renderer_read_image_flags = 2;
12926pub type tm_renderer_read_image_flags = ::std::os::raw::c_int;
12927#[repr(C)]
12928#[derive(Copy, Clone)]
12929pub struct tm_renderer_read_image_buffer_t {
12930    pub device_affinity_mask: u32,
12931    pub resource_handle: u32,
12932    pub resource_state: u16,
12933    pub resource_queue: u16,
12934    pub read_flags: u16,
12935    pub subresource_layers: tm_renderer_image_subresource_layers_t,
12936    pub offset: tm_renderer_image_offset_t,
12937    pub extent: tm_renderer_image_extent_t,
12938    pub _padding_604: [::std::os::raw::c_char; 6usize],
12939    pub bits: *mut ::std::os::raw::c_void,
12940    pub size_bits: u64,
12941}
12942#[repr(C)]
12943#[derive(Copy, Clone)]
12944pub struct tm_renderer_read_buffer_t {
12945    pub device_affinity_mask: u32,
12946    pub resource_handle: u32,
12947    pub resource_state: u16,
12948    pub resource_queue: u16,
12949    pub _padding_622: [::std::os::raw::c_char; 4usize],
12950    pub offset: u64,
12951    pub size: u64,
12952    pub bits: *mut ::std::os::raw::c_void,
12953}
12954#[repr(C)]
12955#[derive(Copy, Clone)]
12956pub struct tm_device_memory_view_o {
12957    _unused: [u8; 0],
12958}
12959#[repr(C)]
12960#[derive(Copy, Clone)]
12961pub struct tm_device_memory_view_api {
12962    pub create: ::std::option::Option<
12963        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_device_memory_view_o,
12964    >,
12965    pub destroy: ::std::option::Option<unsafe extern "C" fn(view: *mut tm_device_memory_view_o)>,
12966    pub ui: ::std::option::Option<
12967        unsafe extern "C" fn(
12968            view: *mut tm_device_memory_view_o,
12969            ui: *mut tm_ui_o,
12970            uistyle: *const tm_ui_style_t,
12971            content_r: tm_rect_t,
12972            tab_id: u64,
12973        ),
12974    >,
12975}
12976#[repr(C)]
12977#[derive(Copy, Clone)]
12978pub struct tm_nil_renderer_backend_api {
12979    pub create: ::std::option::Option<
12980        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_renderer_backend_i,
12981    >,
12982    pub destroy: ::std::option::Option<unsafe extern "C" fn(backend: *mut tm_renderer_backend_i)>,
12983}
12984#[repr(C)]
12985#[derive(Copy, Clone)]
12986pub struct tm_renderer_api {
12987    pub tm_renderer_memory_block_pool_o: *mut tm_renderer_memory_block_pool_o,
12988    pub tm_renderer_command_buffer_pool_o: *mut tm_renderer_command_buffer_pool_o,
12989    pub tm_renderer_resource_command_buffer_pool_o: *mut tm_renderer_resource_command_buffer_pool_o,
12990    pub tm_renderer_command_buffer_pool_api: *mut tm_renderer_command_buffer_pool_api,
12991    pub tm_renderer_command_buffer_api: *mut tm_renderer_command_buffer_api,
12992    pub tm_renderer_command_buffer_sort_api: *mut tm_renderer_command_buffer_sort_api,
12993    pub tm_renderer_resource_command_buffer_pool_api:
12994        *mut tm_renderer_resource_command_buffer_pool_api,
12995    pub tm_renderer_resource_command_buffer_api: *mut tm_renderer_resource_command_buffer_api,
12996}
12997#[repr(C)]
12998#[derive(Copy, Clone)]
12999pub struct tm_renderer_init_api {
13000    pub init: ::std::option::Option<
13001        unsafe extern "C" fn(
13002            allocator: *mut tm_allocator_i,
13003            user_data_size: u64,
13004        ) -> *mut tm_renderer_api,
13005    >,
13006    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
13007}
13008#[repr(C)]
13009#[derive(Copy, Clone)]
13010pub struct tm_renderer_memory_statistics_allocation_t {
13011    pub tag: *const ::std::os::raw::c_char,
13012    pub offset: u64,
13013    pub requested_size: u64,
13014    pub allocated_size: u64,
13015}
13016#[repr(C)]
13017#[derive(Copy, Clone)]
13018pub struct tm_renderer_memory_statistics_allocator_t {
13019    pub name: *const ::std::os::raw::c_char,
13020    pub num_blocks: u32,
13021    pub _padding_32: [::std::os::raw::c_char; 4usize],
13022    pub block_size: [u64; 256usize],
13023}
13024#[repr(C)]
13025#[derive(Copy, Clone)]
13026pub struct tm_renderer_swap_chain_o {
13027    pub opaque: u64,
13028}
13029#[repr(C)]
13030#[derive(Copy, Clone)]
13031pub struct tm_renderer_device_memory_o {
13032    pub opaque: [u64; 6usize],
13033}
13034#[repr(C)]
13035#[derive(Copy, Clone)]
13036pub struct tm_renderer_backend_resource_allocator_i {
13037    pub inst: *mut ::std::os::raw::c_void,
13038    pub command_buffer_size_buffer: ::std::option::Option<
13039        unsafe extern "C" fn(
13040            inst: *mut ::std::os::raw::c_void,
13041            buffer: *const tm_renderer_buffer_t,
13042            device_affinity_mask: u32,
13043        ) -> u32,
13044    >,
13045    pub command_buffer_size_image_buffer: ::std::option::Option<
13046        unsafe extern "C" fn(
13047            inst: *mut ::std::os::raw::c_void,
13048            image: *const tm_renderer_image_buffer_t,
13049            device_affinity_mask: u32,
13050        ) -> u32,
13051    >,
13052    pub command_buffer_size_shader: ::std::option::Option<
13053        unsafe extern "C" fn(
13054            inst: *mut ::std::os::raw::c_void,
13055            shader: *const tm_renderer_shader_t,
13056            device_affinity_mask: u32,
13057        ) -> u32,
13058    >,
13059    pub command_buffer_size_shader_state_override: ::std::option::Option<
13060        unsafe extern "C" fn(
13061            inst: *mut ::std::os::raw::c_void,
13062            state_override: *const tm_renderer_shader_state_override_t,
13063            device_affinity_mask: u32,
13064        ) -> u32,
13065    >,
13066    pub command_buffer_size_sampler: ::std::option::Option<
13067        unsafe extern "C" fn(
13068            inst: *mut ::std::os::raw::c_void,
13069            sampler: *const tm_renderer_sampler_t,
13070            device_affinity_mask: u32,
13071        ) -> u32,
13072    >,
13073    pub command_buffer_size_queue_fence: ::std::option::Option<
13074        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, device_affinity_mask: u32) -> u32,
13075    >,
13076    pub command_buffer_size_resource_binder: ::std::option::Option<
13077        unsafe extern "C" fn(
13078            inst: *mut ::std::os::raw::c_void,
13079            num_bind_points: u32,
13080            device_affinity_mask: u32,
13081        ) -> u32,
13082    >,
13083    pub create_buffer: ::std::option::Option<
13084        unsafe extern "C" fn(
13085            inst: *mut ::std::os::raw::c_void,
13086            dest: *mut ::std::os::raw::c_void,
13087            buffer: *const tm_renderer_buffer_t,
13088            device_affinity_mask: u32,
13089        ) -> u32,
13090    >,
13091    pub create_image_buffer: ::std::option::Option<
13092        unsafe extern "C" fn(
13093            inst: *mut ::std::os::raw::c_void,
13094            dest: *mut ::std::os::raw::c_void,
13095            image: *const tm_renderer_image_buffer_t,
13096            device_affinity_mask: u32,
13097        ) -> u32,
13098    >,
13099    pub create_shader: ::std::option::Option<
13100        unsafe extern "C" fn(
13101            inst: *mut ::std::os::raw::c_void,
13102            dest: *mut ::std::os::raw::c_void,
13103            shader: *const tm_renderer_shader_t,
13104            device_affinity_mask: u32,
13105        ) -> u32,
13106    >,
13107    pub create_shader_state_override: ::std::option::Option<
13108        unsafe extern "C" fn(
13109            inst: *mut ::std::os::raw::c_void,
13110            dest: *mut ::std::os::raw::c_void,
13111            state_override: *const tm_renderer_shader_state_override_t,
13112            device_affinity_mask: u32,
13113        ) -> u32,
13114    >,
13115    pub create_sampler: ::std::option::Option<
13116        unsafe extern "C" fn(
13117            inst: *mut ::std::os::raw::c_void,
13118            dest: *mut ::std::os::raw::c_void,
13119            sampler: *const tm_renderer_sampler_t,
13120            device_affinity_mask: u32,
13121        ) -> u32,
13122    >,
13123    pub create_queue_fence: ::std::option::Option<
13124        unsafe extern "C" fn(
13125            inst: *mut ::std::os::raw::c_void,
13126            dest: *mut ::std::os::raw::c_void,
13127            device_affinity_mask: u32,
13128        ) -> u32,
13129    >,
13130    pub create_resource_binder: ::std::option::Option<
13131        unsafe extern "C" fn(
13132            inst: *mut ::std::os::raw::c_void,
13133            dest: *mut ::std::os::raw::c_void,
13134            bind_points: *const tm_renderer_resource_bind_point_t,
13135            num_bind_points: u32,
13136            device_affinity_mask: u32,
13137        ) -> u32,
13138    >,
13139}
13140#[repr(C)]
13141#[derive(Copy, Clone)]
13142pub struct tm_renderer_device_memory_allocator_i {
13143    pub inst: *mut ::std::os::raw::c_void,
13144    pub allocate_staging_memory_command: ::std::option::Option<
13145        unsafe extern "C" fn(
13146            inst: *mut ::std::os::raw::c_void,
13147            cmd_type: u32,
13148            cmd_data: *mut ::std::os::raw::c_void,
13149            device_affinity_mask: u32,
13150            data: *mut *mut ::std::os::raw::c_void,
13151        ) -> tm_renderer_device_memory_o,
13152    >,
13153    pub allocate_staging_memory: ::std::option::Option<
13154        unsafe extern "C" fn(
13155            inst: *mut ::std::os::raw::c_void,
13156            size: u64,
13157            device_affinity_mask: u32,
13158            data: *mut *mut ::std::os::raw::c_void,
13159        ) -> tm_renderer_device_memory_o,
13160    >,
13161    pub allocate_resource_read_fence: ::std::option::Option<
13162        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, device_affinity_mask: u32) -> u32,
13163    >,
13164}
13165#[repr(C)]
13166#[derive(Copy, Clone)]
13167pub struct tm_renderer_backend_o {
13168    _unused: [u8; 0],
13169}
13170#[repr(C)]
13171#[derive(Copy, Clone)]
13172pub struct tm_renderer_backend_i {
13173    pub inst: *mut tm_renderer_backend_o,
13174    pub create_swap_chain: ::std::option::Option<
13175        unsafe extern "C" fn(
13176            inst: *mut tm_renderer_backend_o,
13177            window: *mut tm_window_o,
13178            device_affinity: u32,
13179        ) -> tm_renderer_swap_chain_o,
13180    >,
13181    pub destroy_swap_chain: ::std::option::Option<
13182        unsafe extern "C" fn(
13183            inst: *mut tm_renderer_backend_o,
13184            swap_chain: tm_renderer_swap_chain_o,
13185        ),
13186    >,
13187    pub resize_swap_chain: ::std::option::Option<
13188        unsafe extern "C" fn(
13189            inst: *mut tm_renderer_backend_o,
13190            swap_chain: tm_renderer_swap_chain_o,
13191            width: u32,
13192            height: u32,
13193        ),
13194    >,
13195    pub present_swap_chain: ::std::option::Option<
13196        unsafe extern "C" fn(
13197            inst: *mut tm_renderer_backend_o,
13198            swap_chain: tm_renderer_swap_chain_o,
13199        ),
13200    >,
13201    pub swap_chain_resource: ::std::option::Option<
13202        unsafe extern "C" fn(
13203            inst: *mut tm_renderer_backend_o,
13204            swap_chain: tm_renderer_swap_chain_o,
13205        ) -> u32,
13206    >,
13207    pub create_command_buffers: ::std::option::Option<
13208        unsafe extern "C" fn(
13209            inst: *mut tm_renderer_backend_o,
13210            command_buffers: *mut *mut tm_renderer_command_buffer_o,
13211            num_buffers: u32,
13212        ),
13213    >,
13214    pub submit_command_buffers: ::std::option::Option<
13215        unsafe extern "C" fn(
13216            inst: *mut tm_renderer_backend_o,
13217            command_buffers: *mut *mut tm_renderer_command_buffer_o,
13218            num_buffers: u32,
13219        ),
13220    >,
13221    pub destroy_command_buffers: ::std::option::Option<
13222        unsafe extern "C" fn(
13223            inst: *mut tm_renderer_backend_o,
13224            command_buffers: *mut *mut tm_renderer_command_buffer_o,
13225            num_buffers: u32,
13226        ),
13227    >,
13228    pub num_command_queues: ::std::option::Option<
13229        unsafe extern "C" fn(
13230            inst: *mut tm_renderer_backend_o,
13231            queue_family: u8,
13232            device_affinity_mask: u32,
13233        ) -> u8,
13234    >,
13235    pub supports_buffer: ::std::option::Option<
13236        unsafe extern "C" fn(
13237            inst: *mut tm_renderer_backend_o,
13238            buffer: *const tm_renderer_buffer_t,
13239            device_affinity_mask: u32,
13240        ) -> bool,
13241    >,
13242    pub supports_image_buffer: ::std::option::Option<
13243        unsafe extern "C" fn(
13244            inst: *mut tm_renderer_backend_o,
13245            image: *const tm_renderer_image_buffer_t,
13246            device_affinity_mask: u32,
13247        ) -> bool,
13248    >,
13249    pub create_resource_command_buffers: ::std::option::Option<
13250        unsafe extern "C" fn(
13251            inst: *mut tm_renderer_backend_o,
13252            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
13253            num_buffers: u32,
13254        ),
13255    >,
13256    pub submit_resource_command_buffers: ::std::option::Option<
13257        unsafe extern "C" fn(
13258            inst: *mut tm_renderer_backend_o,
13259            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
13260            num_buffers: u32,
13261        ),
13262    >,
13263    pub destroy_resource_command_buffers: ::std::option::Option<
13264        unsafe extern "C" fn(
13265            inst: *mut tm_renderer_backend_o,
13266            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
13267            num_buffers: u32,
13268        ),
13269    >,
13270    pub frame_begin: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_backend_o)>,
13271    pub recycle_buffers:
13272        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_backend_o)>,
13273    pub read_complete: ::std::option::Option<
13274        unsafe extern "C" fn(
13275            inst: *mut tm_renderer_backend_o,
13276            read_fence: u32,
13277            device_affinity_mask: u32,
13278        ) -> bool,
13279    >,
13280    pub hashed_backend_name:
13281        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_backend_o) -> u64>,
13282    pub statistics_memory_allocators: ::std::option::Option<
13283        unsafe extern "C" fn(
13284            inst: *mut tm_renderer_backend_o,
13285            device_affinity: u32,
13286            allocators: *mut tm_renderer_memory_statistics_allocator_t,
13287        ) -> u32,
13288    >,
13289    pub statistics_memory_allocations: ::std::option::Option<
13290        unsafe extern "C" fn(
13291            inst: *mut tm_renderer_backend_o,
13292            device_affinity: u32,
13293            allocator: u32,
13294            block: u32,
13295            allocators: *mut tm_renderer_memory_statistics_allocation_t,
13296        ) -> u32,
13297    >,
13298    pub statistics: ::std::option::Option<
13299        unsafe extern "C" fn(
13300            inst: *mut tm_renderer_backend_o,
13301            device_affinity: u32,
13302            stats: *mut tm_renderer_statistics_t,
13303        ),
13304    >,
13305}
13306#[repr(C)]
13307#[derive(Copy, Clone)]
13308pub struct tm_renderer_command_buffer_pool_o {
13309    _unused: [u8; 0],
13310}
13311#[repr(C)]
13312#[derive(Copy, Clone)]
13313pub struct tm_renderer_index_buffer_bind_t {
13314    _unused: [u8; 0],
13315}
13316#[repr(C)]
13317#[derive(Copy, Clone)]
13318pub struct tm_renderer_memory_block_pool_o {
13319    _unused: [u8; 0],
13320}
13321#[repr(C)]
13322#[derive(Copy, Clone)]
13323pub struct tm_renderer_resource_command_buffer_pool_o {
13324    _unused: [u8; 0],
13325}
13326pub const tm_renderer_command_TM_RENDERER_COMMAND_BIND_RENDER_PASS: tm_renderer_command = 0;
13327pub const tm_renderer_command_TM_RENDERER_COMMAND_SET_VIEWPORTS: tm_renderer_command = 1;
13328pub const tm_renderer_command_TM_RENDERER_COMMAND_SET_SCISSOR_RECTS: tm_renderer_command = 2;
13329pub const tm_renderer_command_TM_RENDERER_COMMAND_DRAW_CALL: tm_renderer_command = 3;
13330pub const tm_renderer_command_TM_RENDERER_COMMAND_BEGIN_STATISTICS: tm_renderer_command = 4;
13331pub const tm_renderer_command_TM_RENDERER_COMMAND_END_STATISTICS: tm_renderer_command = 5;
13332pub const tm_renderer_command_TM_RENDERER_COMMAND_BIND_QUEUE: tm_renderer_command = 6;
13333pub const tm_renderer_command_TM_RENDERER_COMMAND_COMPUTE: tm_renderer_command = 7;
13334pub const tm_renderer_command_TM_RENDERER_COMMAND_TRANSITION_RESOURCES: tm_renderer_command = 8;
13335pub const tm_renderer_command_TM_RENDERER_COMMAND_COPY_IMAGE_BUFFER: tm_renderer_command = 9;
13336pub const tm_renderer_command_TM_RENDERER_COMMAND_COPY_BUFFER: tm_renderer_command = 10;
13337pub const tm_renderer_command_TM_RENDERER_COMMAND_READ_IMAGE_BUFFER: tm_renderer_command = 11;
13338pub const tm_renderer_command_TM_RENDERER_COMMAND_READ_BUFFER: tm_renderer_command = 12;
13339pub type tm_renderer_command = ::std::os::raw::c_int;
13340pub const tm_renderer_map_flags_TM_RENDERER_MAP_FLAGS_CPU_CACHED: tm_renderer_map_flags = 1;
13341pub type tm_renderer_map_flags = ::std::os::raw::c_int;
13342pub const tm_renderer_statistics_flags_TM_RENDERER_GPU_TIMINGS: tm_renderer_statistics_flags = 1;
13343pub type tm_renderer_statistics_flags = ::std::os::raw::c_int;
13344#[repr(C)]
13345#[derive(Copy, Clone)]
13346pub struct tm_renderer_commands_t {
13347    pub sort_keys: *mut u64,
13348    pub types: *mut u32,
13349    pub data: *mut *mut ::std::os::raw::c_void,
13350}
13351#[repr(C)]
13352#[derive(Copy, Clone)]
13353pub struct tm_renderer_command_buffer_api {
13354    pub bind_render_pass: ::std::option::Option<
13355        unsafe extern "C" fn(
13356            inst: *mut tm_renderer_command_buffer_o,
13357            sort_key: u64,
13358            render_pass: *const tm_renderer_render_pass_bind_t,
13359        ),
13360    >,
13361    pub set_viewports: ::std::option::Option<
13362        unsafe extern "C" fn(
13363            inst: *mut tm_renderer_command_buffer_o,
13364            sort_key: u64,
13365            viewports: *const tm_renderer_set_viewports_t,
13366        ),
13367    >,
13368    pub set_scissor_rects: ::std::option::Option<
13369        unsafe extern "C" fn(
13370            inst: *mut tm_renderer_command_buffer_o,
13371            sort_key: u64,
13372            rects: *const tm_renderer_set_scissor_rects_t,
13373        ),
13374    >,
13375    pub draw_calls: ::std::option::Option<
13376        unsafe extern "C" fn(
13377            inst: *mut tm_renderer_command_buffer_o,
13378            sort_keys: *const u64,
13379            draw_calls: *const tm_renderer_draw_call_info_t,
13380            shaders: *const tm_renderer_shader_info_t,
13381            num_draw_calls: u32,
13382        ),
13383    >,
13384    pub bind_queue: ::std::option::Option<
13385        unsafe extern "C" fn(
13386            inst: *mut tm_renderer_command_buffer_o,
13387            sort_key: u64,
13388            queue_bind: *const tm_renderer_queue_bind_t,
13389        ),
13390    >,
13391    pub begin_statistics_scope: ::std::option::Option<
13392        unsafe extern "C" fn(
13393            inst: *mut tm_renderer_command_buffer_o,
13394            sort_key: u64,
13395            category: *const ::std::os::raw::c_char,
13396            name: *const ::std::os::raw::c_char,
13397            flags: u32,
13398        ) -> u64,
13399    >,
13400    pub end_statistics_scope: ::std::option::Option<
13401        unsafe extern "C" fn(
13402            inst: *mut tm_renderer_command_buffer_o,
13403            sort_key: u64,
13404            statistics_scope: u64,
13405        ),
13406    >,
13407    pub compute_dispatches: ::std::option::Option<
13408        unsafe extern "C" fn(
13409            inst: *mut tm_renderer_command_buffer_o,
13410            sort_keys: *const u64,
13411            compute_dispatches: *const tm_renderer_compute_info_t,
13412            shaders: *const tm_renderer_shader_info_t,
13413            num_compute_dispatches: u32,
13414        ),
13415    >,
13416    pub transition_resources: ::std::option::Option<
13417        unsafe extern "C" fn(
13418            inst: *mut tm_renderer_command_buffer_o,
13419            sort_key: u64,
13420            barriers: *const tm_renderer_resource_barrier_t,
13421            num_barriers: u32,
13422        ),
13423    >,
13424    pub copy_image_buffer: ::std::option::Option<
13425        unsafe extern "C" fn(
13426            inst: *mut tm_renderer_command_buffer_o,
13427            sort_key: u64,
13428            copy_image: *const tm_renderer_copy_image_buffer_t,
13429        ),
13430    >,
13431    pub copy_buffer: ::std::option::Option<
13432        unsafe extern "C" fn(
13433            inst: *mut tm_renderer_command_buffer_o,
13434            sort_key: u64,
13435            copy_buffer: *const tm_renderer_copy_buffer_t,
13436        ),
13437    >,
13438    pub read_image_buffer: ::std::option::Option<
13439        unsafe extern "C" fn(
13440            inst: *mut tm_renderer_command_buffer_o,
13441            sort_key: u64,
13442            read_image: *const tm_renderer_read_image_buffer_t,
13443        ) -> u32,
13444    >,
13445    pub read_buffer: ::std::option::Option<
13446        unsafe extern "C" fn(
13447            inst: *mut tm_renderer_command_buffer_o,
13448            sort_key: u64,
13449            read_buffer: *const tm_renderer_read_buffer_t,
13450        ) -> u32,
13451    >,
13452    pub num_commands: ::std::option::Option<
13453        unsafe extern "C" fn(inst: *const tm_renderer_command_buffer_o) -> u32,
13454    >,
13455    pub commands: ::std::option::Option<
13456        unsafe extern "C" fn(inst: *const tm_renderer_command_buffer_o) -> tm_renderer_commands_t,
13457    >,
13458    pub user_data: ::std::option::Option<
13459        unsafe extern "C" fn(
13460            inst: *mut tm_renderer_command_buffer_o,
13461        ) -> *mut ::std::os::raw::c_void,
13462    >,
13463    pub set_backend_allocator: ::std::option::Option<
13464        unsafe extern "C" fn(
13465            inst: *mut tm_renderer_command_buffer_o,
13466            memory_allocator: *mut tm_renderer_device_memory_allocator_i,
13467        ),
13468    >,
13469    pub append_buffers: ::std::option::Option<
13470        unsafe extern "C" fn(
13471            inst: *mut tm_renderer_command_buffer_o,
13472            buffers: *mut *mut tm_renderer_command_buffer_o,
13473            num_buffers: u32,
13474        ),
13475    >,
13476}
13477#[repr(C)]
13478#[derive(Copy, Clone)]
13479pub struct tm_renderer_command_buffer_pool_api {
13480    pub create: ::std::option::Option<
13481        unsafe extern "C" fn(
13482            inst: *mut tm_renderer_command_buffer_pool_o,
13483        ) -> *mut tm_renderer_command_buffer_o,
13484    >,
13485    pub destroy: ::std::option::Option<
13486        unsafe extern "C" fn(
13487            inst: *mut tm_renderer_command_buffer_pool_o,
13488            buffer: *mut tm_renderer_command_buffer_o,
13489        ),
13490    >,
13491    pub user_data_size: ::std::option::Option<
13492        unsafe extern "C" fn(inst: *mut tm_renderer_command_buffer_pool_o) -> u64,
13493    >,
13494}
13495extern "C" {
13496    pub fn tm_renderer_create_command_buffer_pool(
13497        backing_memory_block_pool: *mut tm_renderer_memory_block_pool_o,
13498        user_data_size: u64,
13499        allocator: *mut tm_allocator_i,
13500        memory_tracker_scope: u32,
13501    ) -> *mut tm_renderer_command_buffer_pool_o;
13502}
13503extern "C" {
13504    pub fn tm_renderer_destroy_command_buffer_pool(
13505        pool: *mut tm_renderer_command_buffer_pool_o,
13506        allocator: *mut tm_allocator_i,
13507        memory_tracker_scope: u32,
13508    );
13509}
13510#[repr(C)]
13511#[derive(Copy, Clone)]
13512pub struct tm_renderer_command_buffer_sort_api {
13513    pub sort_memory_needed: ::std::option::Option<
13514        unsafe extern "C" fn(
13515            buffers: *mut *const tm_renderer_command_buffer_o,
13516            num_buffers: u32,
13517        ) -> u64,
13518    >,
13519    pub sort_commands: ::std::option::Option<
13520        unsafe extern "C" fn(
13521            buffers: *mut *const tm_renderer_command_buffer_o,
13522            num_buffers: u32,
13523            sort_memory: *mut ::std::os::raw::c_void,
13524            sorted_output: *mut *mut tm_renderer_commands_t,
13525            num_commands: *mut u32,
13526        ),
13527    >,
13528}
13529pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_BUFFER: tm_renderer_resource = 0;
13530pub const tm_renderer_resource_TM_RENDERER_RESOURCE_MAP_CREATE_BUFFER: tm_renderer_resource = 1;
13531pub const tm_renderer_resource_TM_RENDERER_RESOURCE_RESIZE_BUFFER: tm_renderer_resource = 2;
13532pub const tm_renderer_resource_TM_RENDERER_RESOURCE_UPDATE_BUFFER: tm_renderer_resource = 3;
13533pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_IMAGE: tm_renderer_resource = 4;
13534pub const tm_renderer_resource_TM_RENDERER_RESOURCE_MAP_CREATE_IMAGE: tm_renderer_resource = 5;
13535pub const tm_renderer_resource_TM_RENDERER_RESOURCE_UPDATE_IMAGE: tm_renderer_resource = 6;
13536pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_ADDITIONAL_IMAGE_VIEWS:
13537    tm_renderer_resource = 7;
13538pub const tm_renderer_resource_TM_RENDERER_RESOURCE_DESTROY_ADDITIONAL_IMAGE_VIEWS:
13539    tm_renderer_resource = 8;
13540pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_SHADER: tm_renderer_resource = 9;
13541pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_SHADER_STATE_OVERRIDE:
13542    tm_renderer_resource = 10;
13543pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_SAMPLER: tm_renderer_resource = 11;
13544pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_QUEUE_FENCE: tm_renderer_resource = 12;
13545pub const tm_renderer_resource_TM_RENDERER_RESOURCE_CREATE_RESOURCE_BINDER: tm_renderer_resource =
13546    13;
13547pub const tm_renderer_resource_TM_RENDERER_RESOURCE_SET_RESOURCE: tm_renderer_resource = 14;
13548pub const tm_renderer_resource_TM_RENDERER_RESOURCE_SET_ARRAY_RESOURCES: tm_renderer_resource = 15;
13549pub const tm_renderer_resource_TM_RENDERER_RESOURCE_DESTROY: tm_renderer_resource = 16;
13550pub const tm_renderer_resource_TM_RENDERER_RESOURCE_NUM_COMMAND_TYPES: tm_renderer_resource = 17;
13551pub type tm_renderer_resource = ::std::os::raw::c_int;
13552#[repr(C)]
13553#[derive(Copy, Clone)]
13554pub struct tm_renderer_resource_commands_t {
13555    pub types: *mut u32,
13556    pub handles: *mut u32,
13557    pub data: *mut *mut ::std::os::raw::c_void,
13558}
13559#[repr(C)]
13560#[derive(Copy, Clone)]
13561pub struct tm_renderer_resource_command_buffer_api {
13562    pub create_buffer: ::std::option::Option<
13563        unsafe extern "C" fn(
13564            inst: *mut tm_renderer_resource_command_buffer_o,
13565            buffer: *const tm_renderer_buffer_t,
13566            device_affinity_mask: u32,
13567        ) -> u32,
13568    >,
13569    pub map_create_buffer: ::std::option::Option<
13570        unsafe extern "C" fn(
13571            inst: *mut tm_renderer_resource_command_buffer_o,
13572            buffer: *const tm_renderer_buffer_t,
13573            device_affinity_mask: u32,
13574            map_flags: u32,
13575            data: *mut *mut ::std::os::raw::c_void,
13576        ) -> u32,
13577    >,
13578    pub resize_buffer: ::std::option::Option<
13579        unsafe extern "C" fn(
13580            inst: *mut tm_renderer_resource_command_buffer_o,
13581            handle: u32,
13582            size: u64,
13583        ),
13584    >,
13585    pub update_buffer: ::std::option::Option<
13586        unsafe extern "C" fn(
13587            inst: *mut tm_renderer_resource_command_buffer_o,
13588            handle: u32,
13589            offset: u64,
13590            size: u64,
13591            device_affinity_mask: u32,
13592            map_flags: u32,
13593            data: *mut *mut ::std::os::raw::c_void,
13594        ),
13595    >,
13596    pub create_image_buffer: ::std::option::Option<
13597        unsafe extern "C" fn(
13598            inst: *mut tm_renderer_resource_command_buffer_o,
13599            image: *const tm_renderer_image_buffer_t,
13600            device_affinity_mask: u32,
13601        ) -> u32,
13602    >,
13603    pub map_create_image_buffer: ::std::option::Option<
13604        unsafe extern "C" fn(
13605            inst: *mut tm_renderer_resource_command_buffer_o,
13606            image: *const tm_renderer_image_buffer_t,
13607            device_affinity_mask: u32,
13608            map_flags: u32,
13609            data: *mut *mut ::std::os::raw::c_void,
13610        ) -> u32,
13611    >,
13612    pub update_image_buffer: ::std::option::Option<
13613        unsafe extern "C" fn(
13614            inst: *mut tm_renderer_resource_command_buffer_o,
13615            handle: u32,
13616            format: u32,
13617            subresource: *const tm_renderer_image_subresource_layers_t,
13618            offset: *const tm_renderer_image_offset_t,
13619            extent: *const tm_renderer_image_extent_t,
13620            device_affinity_mask: u32,
13621            map_flags: u32,
13622            data: *mut *mut ::std::os::raw::c_void,
13623        ),
13624    >,
13625    pub create_additional_image_views: ::std::option::Option<
13626        unsafe extern "C" fn(
13627            inst: *mut tm_renderer_resource_command_buffer_o,
13628            handle: u32,
13629            device_affinity_mask: u32,
13630            views: *const tm_renderer_additional_image_view_t,
13631            num_views: u32,
13632        ),
13633    >,
13634    pub destroy_additional_image_views: ::std::option::Option<
13635        unsafe extern "C" fn(
13636            inst: *mut tm_renderer_resource_command_buffer_o,
13637            handle: u32,
13638            device_affinity_mask: u32,
13639        ),
13640    >,
13641    pub create_shader: ::std::option::Option<
13642        unsafe extern "C" fn(
13643            inst: *mut tm_renderer_resource_command_buffer_o,
13644            shader: *const tm_renderer_shader_t,
13645            device_affinity_mask: u32,
13646        ) -> u32,
13647    >,
13648    pub create_sampler: ::std::option::Option<
13649        unsafe extern "C" fn(
13650            inst: *mut tm_renderer_resource_command_buffer_o,
13651            sampler: *const tm_renderer_sampler_t,
13652            device_affinity_mask: u32,
13653        ) -> u32,
13654    >,
13655    pub create_shader_state_override: ::std::option::Option<
13656        unsafe extern "C" fn(
13657            inst: *mut tm_renderer_resource_command_buffer_o,
13658            state_override: *const tm_renderer_shader_state_override_t,
13659            device_affinity_mask: u32,
13660        ) -> u32,
13661    >,
13662    pub create_queue_fence: ::std::option::Option<
13663        unsafe extern "C" fn(
13664            inst: *mut tm_renderer_resource_command_buffer_o,
13665            device_affinity_mask: u32,
13666        ) -> u32,
13667    >,
13668    pub create_resource_binder: ::std::option::Option<
13669        unsafe extern "C" fn(
13670            inst: *mut tm_renderer_resource_command_buffer_o,
13671            bind_points: *const tm_renderer_resource_bind_point_t,
13672            num_bind_points: u32,
13673            device_affinity_mask: u32,
13674        ) -> u32,
13675    >,
13676    pub set_resource: ::std::option::Option<
13677        unsafe extern "C" fn(
13678            inst: *mut tm_renderer_resource_command_buffer_o,
13679            resource_binder: u32,
13680            bind_point: u32,
13681            resource_handles: u32,
13682            reosource_aspect_flags: u32,
13683        ),
13684    >,
13685    pub set_array_resources: ::std::option::Option<
13686        unsafe extern "C" fn(
13687            inst: *mut tm_renderer_resource_command_buffer_o,
13688            resource_binder: u32,
13689            bind_point: u32,
13690            first_element: u32,
13691            resource_handles: *const u32,
13692            resource_aspect_flags: *const u32,
13693            n_handles: u32,
13694        ),
13695    >,
13696    pub destroy_resource: ::std::option::Option<
13697        unsafe extern "C" fn(inst: *mut tm_renderer_resource_command_buffer_o, handle: u32),
13698    >,
13699    pub num_commands: ::std::option::Option<
13700        unsafe extern "C" fn(
13701            inst: *mut tm_renderer_resource_command_buffer_o,
13702            count_per_command_type: *mut u32,
13703        ) -> u32,
13704    >,
13705    pub commands: ::std::option::Option<
13706        unsafe extern "C" fn(
13707            inst: *mut tm_renderer_resource_command_buffer_o,
13708        ) -> tm_renderer_resource_commands_t,
13709    >,
13710    pub user_data: ::std::option::Option<
13711        unsafe extern "C" fn(
13712            inst: *mut tm_renderer_resource_command_buffer_o,
13713        ) -> *mut ::std::os::raw::c_void,
13714    >,
13715    pub set_backend_allocators: ::std::option::Option<
13716        unsafe extern "C" fn(
13717            inst: *mut tm_renderer_resource_command_buffer_o,
13718            resource_allocator: *mut tm_renderer_backend_resource_allocator_i,
13719            memory_allocator: *mut tm_renderer_device_memory_allocator_i,
13720        ),
13721    >,
13722    pub append_buffers: ::std::option::Option<
13723        unsafe extern "C" fn(
13724            inst: *mut tm_renderer_resource_command_buffer_o,
13725            buffers: *mut *mut tm_renderer_resource_command_buffer_o,
13726            num_buffers: u32,
13727        ),
13728    >,
13729}
13730#[repr(C)]
13731#[derive(Copy, Clone)]
13732pub struct tm_renderer_resource_command_buffer_pool_api {
13733    pub create: ::std::option::Option<
13734        unsafe extern "C" fn(
13735            inst: *mut tm_renderer_resource_command_buffer_pool_o,
13736        ) -> *mut tm_renderer_resource_command_buffer_o,
13737    >,
13738    pub destroy: ::std::option::Option<
13739        unsafe extern "C" fn(
13740            inst: *mut tm_renderer_resource_command_buffer_pool_o,
13741            buffer: *mut tm_renderer_resource_command_buffer_o,
13742        ),
13743    >,
13744    pub user_data_size: ::std::option::Option<
13745        unsafe extern "C" fn(inst: *mut tm_renderer_resource_command_buffer_pool_o) -> u64,
13746    >,
13747}
13748#[repr(C)]
13749#[derive(Copy, Clone)]
13750pub struct tm_renderer_statistics_t {
13751    pub non_indexed_draws: u64,
13752    pub indexed_draws: u64,
13753    pub non_indexed_indirect_draws: u64,
13754    pub indexed_indirect_draws: u64,
13755    pub compute_dispatches: u64,
13756    pub compute_indirect_dispatches: u64,
13757    pub primitive_count: u64,
13758    pub pipeline_binds: u64,
13759    pub resource_barriers: u64,
13760    pub render_pass_binds: u64,
13761}
13762pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_NOT_INITIALIZED:
13763    tm_renderer_resource_type = 0;
13764pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_BUFFER: tm_renderer_resource_type = 1;
13765pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_IMAGE_BUFFER:
13766    tm_renderer_resource_type = 2;
13767pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_SAMPLER: tm_renderer_resource_type =
13768    3;
13769pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_QUEUE_FENCE:
13770    tm_renderer_resource_type = 4;
13771pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_SHADER: tm_renderer_resource_type = 5;
13772pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_SHADER_STATE_OVERRIDE:
13773    tm_renderer_resource_type = 6;
13774pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_RESOURCE_BINDER:
13775    tm_renderer_resource_type = 7;
13776pub const tm_renderer_resource_type_TM_RENDERER_RESOURCE_TYPE_BACK_BUFFER:
13777    tm_renderer_resource_type = 8;
13778pub type tm_renderer_resource_type = ::std::os::raw::c_int;
13779pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_UNIFORM:
13780    tm_renderer_buffer_usage_flags = 1;
13781pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_STORAGE:
13782    tm_renderer_buffer_usage_flags = 2;
13783pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_UPDATABLE:
13784    tm_renderer_buffer_usage_flags = 4;
13785pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_UAV:
13786    tm_renderer_buffer_usage_flags = 8;
13787pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_INDEX:
13788    tm_renderer_buffer_usage_flags = 16;
13789pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_VERTEX:
13790    tm_renderer_buffer_usage_flags = 32;
13791pub const tm_renderer_buffer_usage_flags_TM_RENDERER_BUFFER_USAGE_INDIRECT:
13792    tm_renderer_buffer_usage_flags = 64;
13793pub type tm_renderer_buffer_usage_flags = ::std::os::raw::c_int;
13794#[repr(C)]
13795#[derive(Copy, Clone)]
13796pub struct tm_renderer_buffer_t {
13797    pub size: u32,
13798    pub usage_flags: tm_renderer_buffer_usage_flags,
13799    pub debug_tag: *const ::std::os::raw::c_char,
13800}
13801pub const tm_renderer_image_buffer_usage_flags_TM_RENDERER_IMAGE_BUFFER_USAGE_RENDER_TARGET:
13802    tm_renderer_image_buffer_usage_flags = 1;
13803pub const tm_renderer_image_buffer_usage_flags_TM_RENDERER_IMAGE_BUFFER_USAGE_UAV:
13804    tm_renderer_image_buffer_usage_flags = 2;
13805pub type tm_renderer_image_buffer_usage_flags = ::std::os::raw::c_int;
13806pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_1D: tm_renderer_image_type = 0;
13807pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_2D: tm_renderer_image_type = 1;
13808pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_3D: tm_renderer_image_type = 2;
13809pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_CUBE: tm_renderer_image_type = 3;
13810pub const tm_renderer_image_type_TM_RENDERER_IMAGE_TYPE_MAX_VIEWS: tm_renderer_image_type = 4;
13811pub type tm_renderer_image_type = ::std::os::raw::c_int;
13812#[repr(C)]
13813#[derive(Copy, Clone)]
13814pub union tm_renderer_clear_value_t {
13815    pub color: tm_renderer_clear_value_t_color,
13816    pub depth_stencil: tm_renderer_clear_value_t_depth_stencil,
13817    _bindgen_union_align: [u32; 4usize],
13818}
13819#[repr(C)]
13820#[derive(Copy, Clone)]
13821pub struct tm_renderer_clear_value_t_color {
13822    pub __bindgen_anon_1: tm_renderer_clear_value_t_color__bindgen_ty_1,
13823}
13824#[repr(C)]
13825#[derive(Copy, Clone)]
13826pub union tm_renderer_clear_value_t_color__bindgen_ty_1 {
13827    pub float32: [f32; 4usize],
13828    pub int32: [i32; 4usize],
13829    pub uint32: [u32; 4usize],
13830    _bindgen_union_align: [u32; 4usize],
13831}
13832#[repr(C)]
13833#[derive(Copy, Clone)]
13834pub struct tm_renderer_clear_value_t_depth_stencil {
13835    pub depth: f32,
13836    pub stencil: u32,
13837}
13838#[repr(C)]
13839#[derive(Copy, Clone)]
13840pub struct tm_renderer_image_buffer_t {
13841    pub type_: tm_renderer_image_type,
13842    pub usage_flags: tm_renderer_image_buffer_usage_flags,
13843    pub format: u32,
13844    pub width: u32,
13845    pub height: u32,
13846    pub depth: u32,
13847    pub mip_levels: u32,
13848    pub layer_count: u32,
13849    pub sample_count: u32,
13850    pub clear_value: tm_renderer_clear_value_t,
13851    pub _padding_117: [::std::os::raw::c_char; 4usize],
13852    pub debug_tag: *const ::std::os::raw::c_char,
13853}
13854#[repr(C)]
13855#[derive(Copy, Clone)]
13856pub struct tm_renderer_additional_image_view_t {
13857    pub first_layer: u16,
13858    pub layer_count: u16,
13859    pub first_mip: u8,
13860    pub mip_count: u8,
13861    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
13862    pub _padding_152: [::std::os::raw::c_char; 1usize],
13863}
13864impl tm_renderer_additional_image_view_t {
13865    #[inline]
13866    pub fn aspect(&self) -> u8 {
13867        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
13868    }
13869    #[inline]
13870    pub fn set_aspect(&mut self, val: u8) {
13871        unsafe {
13872            let val: u8 = ::std::mem::transmute(val);
13873            self._bitfield_1.set(0usize, 4u8, val as u64)
13874        }
13875    }
13876    #[inline]
13877    pub fn padding(&self) -> u8 {
13878        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
13879    }
13880    #[inline]
13881    pub fn set_padding(&mut self, val: u8) {
13882        unsafe {
13883            let val: u8 = ::std::mem::transmute(val);
13884            self._bitfield_1.set(4usize, 4u8, val as u64)
13885        }
13886    }
13887    #[inline]
13888    pub fn new_bitfield_1(aspect: u8, padding: u8) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
13889        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
13890            Default::default();
13891        __bindgen_bitfield_unit.set(0usize, 4u8, {
13892            let aspect: u8 = unsafe { ::std::mem::transmute(aspect) };
13893            aspect as u64
13894        });
13895        __bindgen_bitfield_unit.set(4usize, 4u8, {
13896            let padding: u8 = unsafe { ::std::mem::transmute(padding) };
13897            padding as u64
13898        });
13899        __bindgen_bitfield_unit
13900    }
13901}
13902pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_VERTEX: tm_renderer_shader_stage = 0;
13903pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_HULL: tm_renderer_shader_stage = 1;
13904pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_DOMAIN: tm_renderer_shader_stage = 2;
13905pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_GEOMETRY: tm_renderer_shader_stage = 3;
13906pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_PIXEL: tm_renderer_shader_stage = 4;
13907pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_COMPUTE: tm_renderer_shader_stage = 5;
13908pub const tm_renderer_shader_stage_TM_RENDERER_SHADER_STAGE_MAX: tm_renderer_shader_stage = 6;
13909pub type tm_renderer_shader_stage = ::std::os::raw::c_int;
13910#[repr(C)]
13911#[derive(Copy, Clone)]
13912pub struct tm_renderer_shader_t {
13913    pub tessellation_states: tm_renderer_shader_blob_t,
13914    pub raster_states: tm_renderer_shader_blob_t,
13915    pub depth_stencil_states: tm_renderer_shader_blob_t,
13916    pub blend_states: tm_renderer_shader_blob_t,
13917    pub multi_sample_states: tm_renderer_shader_blob_t,
13918    pub stages: [tm_renderer_shader_blob_t; 6usize],
13919}
13920#[repr(C)]
13921#[derive(Copy, Clone)]
13922pub struct tm_renderer_sampler_t {
13923    pub sampler_states: tm_renderer_shader_blob_t,
13924}
13925#[repr(C)]
13926#[derive(Copy, Clone)]
13927pub struct tm_renderer_shader_state_override_t {
13928    pub tessellation_states: tm_renderer_shader_blob_t,
13929    pub raster_states: tm_renderer_shader_blob_t,
13930    pub depth_stencil_states: tm_renderer_shader_blob_t,
13931    pub blend_states: tm_renderer_shader_blob_t,
13932    pub multi_sample_states: tm_renderer_shader_blob_t,
13933}
13934pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_VERTEX:
13935    tm_renderer_shader_stage_flag = 1;
13936pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_HULL:
13937    tm_renderer_shader_stage_flag = 2;
13938pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_DOMAIN:
13939    tm_renderer_shader_stage_flag = 4;
13940pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_GEOMETRY:
13941    tm_renderer_shader_stage_flag = 8;
13942pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_PIXEL:
13943    tm_renderer_shader_stage_flag = 16;
13944pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_COMPUTE:
13945    tm_renderer_shader_stage_flag = 32;
13946pub const tm_renderer_shader_stage_flag_TM_RENDERER_SHADER_STAGE_FLAG_ALL:
13947    tm_renderer_shader_stage_flag = 63;
13948pub type tm_renderer_shader_stage_flag = ::std::os::raw::c_int;
13949pub const tm_renderer_resource_bind_usage_flag_TM_RENDERER_RESOURCE_BIND_USAGE_FLAG_UAV:
13950    tm_renderer_resource_bind_usage_flag = 1;
13951pub type tm_renderer_resource_bind_usage_flag = ::std::os::raw::c_int;
13952#[repr(C)]
13953#[derive(Copy, Clone)]
13954pub struct tm_renderer_resource_bind_point_t {
13955    pub bind_point: u32,
13956    pub stage_flags: u32,
13957    pub type_: u32,
13958    pub view: u32,
13959    pub usage: u32,
13960    pub count: u32,
13961}
13962pub const TM_RENDERER_SHADER_SOURCE_LANGUAGE_HLSL: ::std::os::raw::c_int = 0;
13963pub type _bindgen_ty_148 = ::std::os::raw::c_int;
13964pub const TM_RENDERER_SHADER_COMPILER_STAGE_VERTEX: ::std::os::raw::c_int = 0;
13965pub const TM_RENDERER_SHADER_COMPILER_STAGE_HULL: ::std::os::raw::c_int = 1;
13966pub const TM_RENDERER_SHADER_COMPILER_STAGE_DOMAIN: ::std::os::raw::c_int = 2;
13967pub const TM_RENDERER_SHADER_COMPILER_STAGE_GEOMETRY: ::std::os::raw::c_int = 3;
13968pub const TM_RENDERER_SHADER_COMPILER_STAGE_PIXEL: ::std::os::raw::c_int = 4;
13969pub const TM_RENDERER_SHADER_COMPILER_STAGE_COMPUTE: ::std::os::raw::c_int = 5;
13970pub type _bindgen_ty_149 = ::std::os::raw::c_int;
13971#[repr(C)]
13972#[derive(Copy, Clone)]
13973pub struct tm_renderer_shader_compiler_o {
13974    _unused: [u8; 0],
13975}
13976#[repr(C)]
13977#[derive(Copy, Clone)]
13978pub struct tm_renderer_state_value_pair_t {
13979    pub state: u32,
13980    pub _padding_32: [::std::os::raw::c_char; 4usize],
13981    pub __bindgen_anon_1: tm_renderer_state_value_pair_t__bindgen_ty_1,
13982}
13983#[repr(C)]
13984#[derive(Copy, Clone)]
13985pub union tm_renderer_state_value_pair_t__bindgen_ty_1 {
13986    pub enum_value: u32,
13987    pub uint32_value: u32,
13988    pub float_value: f32,
13989    pub nested_states: *mut tm_renderer_state_value_pair_t,
13990    _bindgen_union_align: u64,
13991}
13992pub const TM_RENDERER_STATE_BLOCK_COMPLETE: ::std::os::raw::c_int = 0;
13993pub const TM_RENDERER_STATE_BLOCK_OVERRIDE: ::std::os::raw::c_int = 1;
13994pub type _bindgen_ty_150 = ::std::os::raw::c_int;
13995#[repr(C)]
13996#[derive(Copy, Clone)]
13997pub struct tm_renderer_shader_compiler_api {
13998    pub init: ::std::option::Option<
13999        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_renderer_shader_compiler_o,
14000    >,
14001    pub shutdown:
14002        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_renderer_shader_compiler_o)>,
14003    pub num_state_block_types: ::std::option::Option<
14004        unsafe extern "C" fn(inst: *mut tm_renderer_shader_compiler_o) -> u32,
14005    >,
14006    pub state_block_type: ::std::option::Option<
14007        unsafe extern "C" fn(
14008            inst: *mut tm_renderer_shader_compiler_o,
14009            state_block_type_idx: u32,
14010        ) -> u32,
14011    >,
14012    pub state_block_name: ::std::option::Option<
14013        unsafe extern "C" fn(
14014            inst: *mut tm_renderer_shader_compiler_o,
14015            state_block_type: u32,
14016        ) -> *const ::std::os::raw::c_char,
14017    >,
14018    pub num_states: ::std::option::Option<
14019        unsafe extern "C" fn(
14020            inst: *mut tm_renderer_shader_compiler_o,
14021            state_block_type: u32,
14022        ) -> u32,
14023    >,
14024    pub state_name: ::std::option::Option<
14025        unsafe extern "C" fn(
14026            inst: *mut tm_renderer_shader_compiler_o,
14027            state_block_type: u32,
14028            state: u32,
14029        ) -> *const ::std::os::raw::c_char,
14030    >,
14031    pub value_type: ::std::option::Option<
14032        unsafe extern "C" fn(
14033            inst: *mut tm_renderer_shader_compiler_o,
14034            state_block_type: u32,
14035            state: u32,
14036        ) -> u32,
14037    >,
14038    pub num_values: ::std::option::Option<
14039        unsafe extern "C" fn(inst: *mut tm_renderer_shader_compiler_o, value_type: u32) -> u32,
14040    >,
14041    pub value_name: ::std::option::Option<
14042        unsafe extern "C" fn(
14043            inst: *mut tm_renderer_shader_compiler_o,
14044            value_type: u32,
14045            value: u32,
14046        ) -> *const ::std::os::raw::c_char,
14047    >,
14048    pub enum_value: ::std::option::Option<
14049        unsafe extern "C" fn(
14050            inst: *mut tm_renderer_shader_compiler_o,
14051            value_type: u32,
14052            value: u32,
14053        ) -> u32,
14054    >,
14055    pub compile_state_block: ::std::option::Option<
14056        unsafe extern "C" fn(
14057            inst: *mut tm_renderer_shader_compiler_o,
14058            bind_type: u32,
14059            block_type: u32,
14060            states: *const tm_renderer_state_value_pair_t,
14061            num_raster_states: u32,
14062        ) -> tm_renderer_shader_blob_t,
14063    >,
14064    pub compile_shader: ::std::option::Option<
14065        unsafe extern "C" fn(
14066            inst: *mut tm_renderer_shader_compiler_o,
14067            source: *const ::std::os::raw::c_char,
14068            entry_point: *const ::std::os::raw::c_char,
14069            source_language: u32,
14070            stage: u32,
14071        ) -> tm_renderer_shader_blob_t,
14072    >,
14073    pub release_blob: ::std::option::Option<
14074        unsafe extern "C" fn(
14075            inst: *mut tm_renderer_shader_compiler_o,
14076            blob: tm_renderer_shader_blob_t,
14077        ),
14078    >,
14079}
14080extern "C" {
14081    pub static mut tm_renderer_state_block_names: [*const ::std::os::raw::c_char; 7usize];
14082}
14083pub const TM_RENDERER_VALUE_BOOL_FALSE: ::std::os::raw::c_int = 0;
14084pub const TM_RENDERER_VALUE_BOOL_TRUE: ::std::os::raw::c_int = 1;
14085pub const TM_RENDERER_VALUE_BOOL_MAX_VALUES: ::std::os::raw::c_int = 2;
14086pub type _bindgen_ty_151 = ::std::os::raw::c_int;
14087extern "C" {
14088    pub static mut tm_renderer_value_bool_names: [*const ::std::os::raw::c_char; 2usize];
14089}
14090pub const TM_RENDERER_COMPARE_OP_NEVER: ::std::os::raw::c_int = 0;
14091pub const TM_RENDERER_COMPARE_OP_LESS: ::std::os::raw::c_int = 1;
14092pub const TM_RENDERER_COMPARE_OP_EQUAL: ::std::os::raw::c_int = 2;
14093pub const TM_RENDERER_COMPARE_OP_LESS_OR_EQUAL: ::std::os::raw::c_int = 3;
14094pub const TM_RENDERER_COMPARE_OP_GREATER: ::std::os::raw::c_int = 4;
14095pub const TM_RENDERER_COMPARE_OP_NOT_EQUAL: ::std::os::raw::c_int = 5;
14096pub const TM_RENDERER_COMPARE_OP_GREATER_OR_EQUAL: ::std::os::raw::c_int = 6;
14097pub const TM_RENDERER_COMPARE_OP_MAX_VALUES: ::std::os::raw::c_int = 7;
14098pub type _bindgen_ty_152 = ::std::os::raw::c_int;
14099extern "C" {
14100    pub static mut tm_renderer_value_compare_op_names: [*const ::std::os::raw::c_char; 7usize];
14101}
14102pub const TM_RENDERER_TESSELLATION_STATE_CONTROL_POINTS: ::std::os::raw::c_int = 0;
14103pub const TM_RENDERER_TESSELLATION_STATE_MAX_STATES: ::std::os::raw::c_int = 1;
14104pub type _bindgen_ty_153 = ::std::os::raw::c_int;
14105extern "C" {
14106    pub static mut tm_renderer_tessellation_state_names: [*const ::std::os::raw::c_char; 1usize];
14107}
14108extern "C" {
14109    pub static mut tm_renderer_tessellation_state_value_types: [u32; 1usize];
14110}
14111pub const TM_RENDERER_RASTER_STATE_CULL_MODE: ::std::os::raw::c_int = 0;
14112pub const TM_RENDERER_RASTER_STATE_FRONT_FACE: ::std::os::raw::c_int = 1;
14113pub const TM_RENDERER_RASTER_STATE_POLYGON_MODE: ::std::os::raw::c_int = 2;
14114pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_ENABLE: ::std::os::raw::c_int = 3;
14115pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_CONSTANT_FACTOR: ::std::os::raw::c_int = 4;
14116pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_CLAMP: ::std::os::raw::c_int = 5;
14117pub const TM_RENDERER_RASTER_STATE_DEPTH_BIAS_SLOPE_FACTOR: ::std::os::raw::c_int = 6;
14118pub const TM_RENDERER_RASTER_STATE_MAX_STATES: ::std::os::raw::c_int = 7;
14119pub type _bindgen_ty_154 = ::std::os::raw::c_int;
14120extern "C" {
14121    pub static mut tm_renderer_raster_state_names: [*const ::std::os::raw::c_char; 7usize];
14122}
14123extern "C" {
14124    pub static mut tm_renderer_raster_state_value_types: [u32; 7usize];
14125}
14126pub const TM_RENDERER_RASTER_VALUE_CULL_NONE: ::std::os::raw::c_int = 0;
14127pub const TM_RENDERER_RASTER_VALUE_CULL_FRONT: ::std::os::raw::c_int = 1;
14128pub const TM_RENDERER_RASTER_VALUE_CULL_BACK: ::std::os::raw::c_int = 2;
14129pub const TM_RENDERER_RASTER_VALUE_CULL_MAX_VALUES: ::std::os::raw::c_int = 3;
14130pub type _bindgen_ty_155 = ::std::os::raw::c_int;
14131extern "C" {
14132    pub static mut tm_renderer_raster_value_cull_names: [*const ::std::os::raw::c_char; 3usize];
14133}
14134pub const TM_RENDERER_RASTER_VALUE_FRONT_FACE_CW: ::std::os::raw::c_int = 0;
14135pub const TM_RENDERER_RASTER_VALUE_FRONT_FACE_CCW: ::std::os::raw::c_int = 1;
14136pub const TM_RENDERER_RASTER_VALUE_FRONT_FACE_MAX_VALUES: ::std::os::raw::c_int = 2;
14137pub type _bindgen_ty_156 = ::std::os::raw::c_int;
14138extern "C" {
14139    pub static mut tm_renderer_raster_value_front_face_names:
14140        [*const ::std::os::raw::c_char; 2usize];
14141}
14142pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_FILL: ::std::os::raw::c_int = 0;
14143pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_LINE: ::std::os::raw::c_int = 1;
14144pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_POINT: ::std::os::raw::c_int = 2;
14145pub const TM_RENDERER_RASTER_VALUE_POLYGON_MODE_MAX_VALUES: ::std::os::raw::c_int = 3;
14146pub type _bindgen_ty_157 = ::std::os::raw::c_int;
14147extern "C" {
14148    pub static mut tm_renderer_raster_value_polygon_names: [*const ::std::os::raw::c_char; 3usize];
14149}
14150pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_TEST_ENABLE: ::std::os::raw::c_int = 0;
14151pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_WRITE_ENABLE: ::std::os::raw::c_int = 1;
14152pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_COMPARE_OP: ::std::os::raw::c_int = 2;
14153pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_TEST_ENABLE: ::std::os::raw::c_int = 3;
14154pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_FAIL_OP: ::std::os::raw::c_int = 4;
14155pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_PASS_OP: ::std::os::raw::c_int = 5;
14156pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_DEPTH_FAIL_OP: ::std::os::raw::c_int = 6;
14157pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_COMPARE_OP: ::std::os::raw::c_int = 7;
14158pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_COMPARE_MASK: ::std::os::raw::c_int = 8;
14159pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_COMPARE_WRITE_MASK: ::std::os::raw::c_int =
14160    9;
14161pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_FRONT_REFERENCE: ::std::os::raw::c_int = 10;
14162pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_FAIL_OP: ::std::os::raw::c_int = 11;
14163pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_PASS_OP: ::std::os::raw::c_int = 12;
14164pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_DEPTH_FAIL_OP: ::std::os::raw::c_int = 13;
14165pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_COMPARE_OP: ::std::os::raw::c_int = 14;
14166pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_COMPARE_MASK: ::std::os::raw::c_int = 15;
14167pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_COMPARE_WRITE_MASK: ::std::os::raw::c_int =
14168    16;
14169pub const TM_RENDERER_DEPTH_STENCIL_STATE_STENCIL_BACK_REFERENCE: ::std::os::raw::c_int = 17;
14170pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_BOUND_TEST_ENABLE: ::std::os::raw::c_int = 18;
14171pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_BOUND_MIN: ::std::os::raw::c_int = 19;
14172pub const TM_RENDERER_DEPTH_STENCIL_STATE_DEPTH_BOUND_MAX: ::std::os::raw::c_int = 20;
14173pub const TM_RENDERER_DEPTH_STENCIL_STATE_MAX_STATES: ::std::os::raw::c_int = 21;
14174pub type _bindgen_ty_158 = ::std::os::raw::c_int;
14175extern "C" {
14176    pub static mut tm_renderer_depth_stencil_state_names: [*const ::std::os::raw::c_char; 21usize];
14177}
14178extern "C" {
14179    pub static mut tm_renderer_depth_stencil_state_value_types: [u32; 21usize];
14180}
14181pub const TM_RENDERER_STENCIL_OP_KEEP: ::std::os::raw::c_int = 0;
14182pub const TM_RENDERER_STENCIL_OP_ZERO: ::std::os::raw::c_int = 1;
14183pub const TM_RENDERER_STENCIL_OP_REPLACE: ::std::os::raw::c_int = 2;
14184pub const TM_RENDERER_STENCIL_OP_INC_CLAMP: ::std::os::raw::c_int = 3;
14185pub const TM_RENDERER_STENCIL_OP_DEC_CLAMP: ::std::os::raw::c_int = 4;
14186pub const TM_RENDERER_STENCIL_OP_INVERT: ::std::os::raw::c_int = 5;
14187pub const TM_RENDERER_STENCIL_OP_INC_WRAP: ::std::os::raw::c_int = 6;
14188pub const TM_RENDERER_STENCIL_OP_DEC_WRAP: ::std::os::raw::c_int = 7;
14189pub const TM_RENDERER_STENCIL_OP_MAX_VALUES: ::std::os::raw::c_int = 8;
14190pub type _bindgen_ty_159 = ::std::os::raw::c_int;
14191extern "C" {
14192    pub static mut tm_renderer_value_stencil_op_names: [*const ::std::os::raw::c_char; 8usize];
14193}
14194pub const TM_RENDERER_SAMPLER_STATE_MIN_FILTER: ::std::os::raw::c_int = 0;
14195pub const TM_RENDERER_SAMPLER_STATE_MAG_FILTER: ::std::os::raw::c_int = 1;
14196pub const TM_RENDERER_SAMPLER_STATE_MIP_MODE: ::std::os::raw::c_int = 2;
14197pub const TM_RENDERER_SAMPLER_STATE_ADDRESS_U: ::std::os::raw::c_int = 3;
14198pub const TM_RENDERER_SAMPLER_STATE_ADDRESS_V: ::std::os::raw::c_int = 4;
14199pub const TM_RENDERER_SAMPLER_STATE_ADDRESS_W: ::std::os::raw::c_int = 5;
14200pub const TM_RENDERER_SAMPLER_STATE_MIP_LOD_BIAS: ::std::os::raw::c_int = 6;
14201pub const TM_RENDERER_SAMPLER_STATE_ANISOTROPY_ENABLE: ::std::os::raw::c_int = 7;
14202pub const TM_RENDERER_SAMPLER_STATE_MAX_ANISOTROPY: ::std::os::raw::c_int = 8;
14203pub const TM_RENDERER_SAMPLER_STATE_COMPARE_ENABLE: ::std::os::raw::c_int = 9;
14204pub const TM_RENDERER_SAMPLER_STATE_COMPARE_OP: ::std::os::raw::c_int = 10;
14205pub const TM_RENDERER_SAMPLER_STATE_MIN_LOD: ::std::os::raw::c_int = 11;
14206pub const TM_RENDERER_SAMPLER_STATE_MAX_LOD: ::std::os::raw::c_int = 12;
14207pub const TM_RENDERER_SAMPLER_STATE_BORDER_COLOR: ::std::os::raw::c_int = 13;
14208pub const TM_RENDERER_SAMPLER_STATE_MAX_STATES: ::std::os::raw::c_int = 14;
14209pub type _bindgen_ty_160 = ::std::os::raw::c_int;
14210extern "C" {
14211    pub static mut tm_renderer_sampler_state_names: [*const ::std::os::raw::c_char; 14usize];
14212}
14213extern "C" {
14214    pub static mut tm_renderer_sampler_state_types: [u32; 14usize];
14215}
14216pub const TM_RENDERER_FILTER_POINT: ::std::os::raw::c_int = 0;
14217pub const TM_RENDERER_FILTER_LINEAR: ::std::os::raw::c_int = 1;
14218pub const TM_RENDERER_FILTER_MAX_VALUES: ::std::os::raw::c_int = 2;
14219pub type _bindgen_ty_161 = ::std::os::raw::c_int;
14220extern "C" {
14221    pub static mut tm_renderer_value_filter_names: [*const ::std::os::raw::c_char; 2usize];
14222}
14223pub const TM_RENDERER_MIP_MODE_POINT: ::std::os::raw::c_int = 0;
14224pub const TM_RENDERER_MIP_MODE_LINEAR: ::std::os::raw::c_int = 1;
14225pub const TM_RENDERER_MIP_MODE_MAX_VALUES: ::std::os::raw::c_int = 2;
14226pub type _bindgen_ty_162 = ::std::os::raw::c_int;
14227extern "C" {
14228    pub static mut tm_renderer_value_mip_mode_names: [*const ::std::os::raw::c_char; 2usize];
14229}
14230pub const TM_RENDERER_ADDRESS_MODE_WRAP: ::std::os::raw::c_int = 0;
14231pub const TM_RENDERER_ADDRESS_MODE_MIRROR_WRAP: ::std::os::raw::c_int = 1;
14232pub const TM_RENDERER_ADDRESS_MODE_CLAMP: ::std::os::raw::c_int = 2;
14233pub const TM_RENDERER_ADDRESS_MODE_CLAMP_BORDER_COLOR: ::std::os::raw::c_int = 3;
14234pub const TM_RENDERER_ADDRESS_MODE_MIRROR_CLAMP: ::std::os::raw::c_int = 4;
14235pub const TM_RENDERER_ADDRESS_MODE_MAX_VALUES: ::std::os::raw::c_int = 5;
14236pub type _bindgen_ty_163 = ::std::os::raw::c_int;
14237extern "C" {
14238    pub static mut tm_renderer_value_address_mode_names: [*const ::std::os::raw::c_char; 5usize];
14239}
14240pub const TM_RENDERER_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK: ::std::os::raw::c_int = 0;
14241pub const TM_RENDERER_BORDER_COLOR_INT_TRANSPARENT_BLACK: ::std::os::raw::c_int = 1;
14242pub const TM_RENDERER_BORDER_COLOR_FLOAT_OPAQUE_BLACK: ::std::os::raw::c_int = 2;
14243pub const TM_RENDERER_BORDER_COLOR_INT_OPAQUE_BLACK: ::std::os::raw::c_int = 3;
14244pub const TM_RENDERER_BORDER_COLOR_FLOAT_OPAQUE_WHITE: ::std::os::raw::c_int = 4;
14245pub const TM_RENDERER_BORDER_COLOR_INT_OPAQUE_WHITE: ::std::os::raw::c_int = 5;
14246pub const TM_RENDERER_BORDER_COLOR_MAX_VALUES: ::std::os::raw::c_int = 6;
14247pub type _bindgen_ty_164 = ::std::os::raw::c_int;
14248extern "C" {
14249    pub static mut tm_renderer_value_border_color_names: [*const ::std::os::raw::c_char; 6usize];
14250}
14251pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_BLEND_ENABLE: ::std::os::raw::c_int = 0;
14252pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_SOURCE_BLEND_FACTOR_COLOR: ::std::os::raw::c_int =
14253    1;
14254pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_DESTINATION_BLEND_FACTOR_COLOR:
14255    ::std::os::raw::c_int = 2;
14256pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_BLEND_OP_COLOR: ::std::os::raw::c_int = 3;
14257pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_SOURCE_BLEND_FACTOR_ALPHA: ::std::os::raw::c_int =
14258    4;
14259pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_DESTINATION_BLEND_FACTOR_ALPHA:
14260    ::std::os::raw::c_int = 5;
14261pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_BLEND_OP_ALPHA: ::std::os::raw::c_int = 6;
14262pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_WRITE_MASK: ::std::os::raw::c_int = 7;
14263pub const TM_RENDERER_RENDER_TARGET_BLEND_STATE_MAX_STATES: ::std::os::raw::c_int = 8;
14264pub type _bindgen_ty_165 = ::std::os::raw::c_int;
14265extern "C" {
14266    pub static mut tm_renderer_render_target_blend_state_names:
14267        [*const ::std::os::raw::c_char; 8usize];
14268}
14269extern "C" {
14270    pub static mut tm_renderer_render_target_blend_state_types: [u32; 8usize];
14271}
14272pub const TM_RENDERER_BLEND_FACTOR_ZERO: ::std::os::raw::c_int = 0;
14273pub const TM_RENDERER_BLEND_FACTOR_ONE: ::std::os::raw::c_int = 1;
14274pub const TM_RENDERER_BLEND_FACTOR_SOURCE_COLOR: ::std::os::raw::c_int = 2;
14275pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE_COLOR: ::std::os::raw::c_int = 3;
14276pub const TM_RENDERER_BLEND_FACTOR_DESTINATION_COLOR: ::std::os::raw::c_int = 4;
14277pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_DESTINATION_COLOR: ::std::os::raw::c_int = 5;
14278pub const TM_RENDERER_BLEND_FACTOR_SOURCE_ALPHA: ::std::os::raw::c_int = 6;
14279pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE_ALPHA: ::std::os::raw::c_int = 7;
14280pub const TM_RENDERER_BLEND_FACTOR_DESTINATION_ALPHA: ::std::os::raw::c_int = 8;
14281pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_DESTINATION_ALPHA: ::std::os::raw::c_int = 9;
14282pub const TM_RENDERER_BLEND_FACTOR_CONSTANT_COLOR: ::std::os::raw::c_int = 10;
14283pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR: ::std::os::raw::c_int = 11;
14284pub const TM_RENDERER_BLEND_FACTOR_CONSTANT_ALPHA: ::std::os::raw::c_int = 12;
14285pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA: ::std::os::raw::c_int = 13;
14286pub const TM_RENDERER_BLEND_FACTOR_SOURCE_ALPHA_SATURATE: ::std::os::raw::c_int = 14;
14287pub const TM_RENDERER_BLEND_FACTOR_SOURCE1_COLOR: ::std::os::raw::c_int = 15;
14288pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE1_COLOR: ::std::os::raw::c_int = 16;
14289pub const TM_RENDERER_BLEND_FACTOR_SOURCE1_ALPHA: ::std::os::raw::c_int = 17;
14290pub const TM_RENDERER_BLEND_FACTOR_ONE_MINUS_SOURCE1_ALPHA: ::std::os::raw::c_int = 18;
14291pub const TM_RENDERER_BLEND_FACTOR_MAX_VALUES: ::std::os::raw::c_int = 19;
14292pub type _bindgen_ty_166 = ::std::os::raw::c_int;
14293extern "C" {
14294    pub static mut tm_renderer_value_blend_factor_names: [*const ::std::os::raw::c_char; 19usize];
14295}
14296pub const TM_RENDERER_LOGICAL_OP_CLEAR: ::std::os::raw::c_int = 0;
14297pub const TM_RENDERER_LOGICAL_OP_AND: ::std::os::raw::c_int = 1;
14298pub const TM_RENDERER_LOGICAL_OP_AND_REVERSE: ::std::os::raw::c_int = 2;
14299pub const TM_RENDERER_LOGICAL_OP_COPY: ::std::os::raw::c_int = 3;
14300pub const TM_RENDERER_LOGICAL_OP_AND_INVERTED: ::std::os::raw::c_int = 4;
14301pub const TM_RENDERER_LOGICAL_OP_NO_OP: ::std::os::raw::c_int = 5;
14302pub const TM_RENDERER_LOGICAL_OP_XOR: ::std::os::raw::c_int = 6;
14303pub const TM_RENDERER_LOGICAL_OP_OR: ::std::os::raw::c_int = 7;
14304pub const TM_RENDERER_LOGICAL_OP_NOR: ::std::os::raw::c_int = 8;
14305pub const TM_RENDERER_LOGICAL_OP_EQUIVALENT: ::std::os::raw::c_int = 9;
14306pub const TM_RENDERER_LOGICAL_OP_INVERT: ::std::os::raw::c_int = 10;
14307pub const TM_RENDERER_LOGICAL_OP_OR_REVERSE: ::std::os::raw::c_int = 11;
14308pub const TM_RENDERER_LOGICAL_OP_COPY_INVERTED: ::std::os::raw::c_int = 12;
14309pub const TM_RENDERER_LOGICAL_OP_OR_INVERTED: ::std::os::raw::c_int = 13;
14310pub const TM_RENDERER_LOGICAL_OP_NAND: ::std::os::raw::c_int = 14;
14311pub const TM_RENDERER_LOGICAL_OP_SET: ::std::os::raw::c_int = 15;
14312pub const TM_RENDERER_LOGICAL_OP_MAX_VALUES: ::std::os::raw::c_int = 16;
14313pub type _bindgen_ty_167 = ::std::os::raw::c_int;
14314extern "C" {
14315    pub static mut tm_renderer_value_logical_op_names: [*const ::std::os::raw::c_char; 16usize];
14316}
14317pub const TM_RENDERER_BLEND_OP_ADD: ::std::os::raw::c_int = 0;
14318pub const TM_RENDERER_BLEND_OP_SUBTRACT: ::std::os::raw::c_int = 1;
14319pub const TM_RENDERER_BLEND_OP_REVERSE_SUBTRACT: ::std::os::raw::c_int = 2;
14320pub const TM_RENDERER_BLEND_OP_MIN: ::std::os::raw::c_int = 3;
14321pub const TM_RENDERER_BLEND_OP_MAX: ::std::os::raw::c_int = 4;
14322pub const TM_RENDERER_BLEND_OP_MAX_VALUES: ::std::os::raw::c_int = 5;
14323pub type _bindgen_ty_168 = ::std::os::raw::c_int;
14324extern "C" {
14325    pub static mut tm_renderer_value_blend_op_names: [*const ::std::os::raw::c_char; 5usize];
14326}
14327pub const TM_RENDERER_BLEND_WRITE_MASK_DISABLED: ::std::os::raw::c_int = 0;
14328pub const TM_RENDERER_BLEND_WRITE_MASK_RED: ::std::os::raw::c_int = 1;
14329pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN: ::std::os::raw::c_int = 2;
14330pub const TM_RENDERER_BLEND_WRITE_MASK_BLUE: ::std::os::raw::c_int = 4;
14331pub const TM_RENDERER_BLEND_WRITE_MASK_ALPHA: ::std::os::raw::c_int = 8;
14332pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN: ::std::os::raw::c_int = 3;
14333pub const TM_RENDERER_BLEND_WRITE_MASK_RED_BLUE: ::std::os::raw::c_int = 5;
14334pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN_BLUE: ::std::os::raw::c_int = 6;
14335pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN_BLUE: ::std::os::raw::c_int = 7;
14336pub const TM_RENDERER_BLEND_WRITE_MASK_RED_ALPHA: ::std::os::raw::c_int = 9;
14337pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN_ALPHA: ::std::os::raw::c_int = 10;
14338pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN_ALPHA: ::std::os::raw::c_int = 9;
14339pub const TM_RENDERER_BLEND_WRITE_MASK_BLUE_ALPHA: ::std::os::raw::c_int = 12;
14340pub const TM_RENDERER_BLEND_WRITE_MASK_RED_BLUE_ALPHA: ::std::os::raw::c_int = 13;
14341pub const TM_RENDERER_BLEND_WRITE_MASK_GREEN_BLUE_ALPHA: ::std::os::raw::c_int = 14;
14342pub const TM_RENDERER_BLEND_WRITE_MASK_RED_GREEN_BLUE_ALPHA: ::std::os::raw::c_int = 15;
14343pub const TM_RENDERER_BLEND_WRITE_MASK_MAX_VALUES: ::std::os::raw::c_int = 16;
14344pub type _bindgen_ty_169 = ::std::os::raw::c_int;
14345extern "C" {
14346    pub static mut tm_renderer_enum_value_write_mask: [u32; 16usize];
14347}
14348extern "C" {
14349    pub static mut tm_renderer_value_write_mask_names: [*const ::std::os::raw::c_char; 16usize];
14350}
14351pub const TM_RENDERER_BLEND_STATE_LOGICAL_OPERATION_ENABLE: ::std::os::raw::c_int = 0;
14352pub const TM_RENDERER_BLEND_STATE_LOGICAL_OPERATION: ::std::os::raw::c_int = 1;
14353pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_0: ::std::os::raw::c_int = 2;
14354pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_1: ::std::os::raw::c_int = 3;
14355pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_2: ::std::os::raw::c_int = 4;
14356pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_3: ::std::os::raw::c_int = 5;
14357pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_4: ::std::os::raw::c_int = 6;
14358pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_5: ::std::os::raw::c_int = 7;
14359pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_6: ::std::os::raw::c_int = 8;
14360pub const TM_RENDERER_BLEND_STATE_RENDER_TARGET_7: ::std::os::raw::c_int = 9;
14361pub const TM_RENDERER_BLEND_STATE_MAX_STATES: ::std::os::raw::c_int = 10;
14362pub type _bindgen_ty_170 = ::std::os::raw::c_int;
14363extern "C" {
14364    pub static mut tm_renderer_blend_state_names: [*const ::std::os::raw::c_char; 10usize];
14365}
14366extern "C" {
14367    pub static mut tm_renderer_blend_state_types: [u32; 10usize];
14368}
14369pub const TM_RENDERER_MULTI_SAMPLE_SHADING_ENABLE: ::std::os::raw::c_int = 0;
14370pub const TM_RENDERER_MULTI_MIN_SAMPLE_SHADING: ::std::os::raw::c_int = 1;
14371pub const TM_RENDERER_MULTI_SAMPLE_ALPHA_TO_COVERAGE_ENABLE: ::std::os::raw::c_int = 2;
14372pub const TM_RENDERER_MULTI_SAMPLE_ALPHA_TO_ONE_ENABLE: ::std::os::raw::c_int = 3;
14373pub const TM_RENDERER_MULTI_SAMPLE_MAX_STATES: ::std::os::raw::c_int = 4;
14374pub type _bindgen_ty_171 = ::std::os::raw::c_int;
14375extern "C" {
14376    pub static mut tm_renderer_multi_sample_state_names: [*const ::std::os::raw::c_char; 4usize];
14377}
14378extern "C" {
14379    pub static mut tm_renderer_multi_sample_state_types: [u32; 4usize];
14380}
14381#[repr(C)]
14382#[derive(Copy, Clone)]
14383pub struct tm_render_graph_setup_o {
14384    _unused: [u8; 0],
14385}
14386#[repr(C)]
14387#[derive(Copy, Clone)]
14388pub struct tm_render_graph_execute_o {
14389    _unused: [u8; 0],
14390}
14391pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_SUB_MODULE_BITS_START:
14392    tm_render_graph_sort_key = 0;
14393pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_SUB_MODULE_BITS: tm_render_graph_sort_key =
14394    8;
14395pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_DEPTH_BITS_START: tm_render_graph_sort_key =
14396    8;
14397pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_DEPTH_BITS: tm_render_graph_sort_key = 16;
14398pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_INTERNAL_PASS_BITS_START:
14399    tm_render_graph_sort_key = 24;
14400pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_INTERNAL_PASS_BITS:
14401    tm_render_graph_sort_key = 27;
14402pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_PASS_BITS_START: tm_render_graph_sort_key =
14403    51;
14404pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_PASS_BITS: tm_render_graph_sort_key = 11;
14405pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_GRAPH_LOOP_BITS_START:
14406    tm_render_graph_sort_key = 62;
14407pub const tm_render_graph_sort_key_TM_RENDER_GRAPH_SORT_GRAPH_LOOP_BITS: tm_render_graph_sort_key =
14408    2;
14409pub type tm_render_graph_sort_key = ::std::os::raw::c_int;
14410pub const tm_render_graph_write_bind_flag_TM_RENDER_GRAPH_WRITE_BIND_FLAG_UAV:
14411    tm_render_graph_write_bind_flag = 1;
14412pub const tm_render_graph_write_bind_flag_TM_RENDER_GRAPH_WRITE_BIND_FLAG_COLOR_TARGET:
14413    tm_render_graph_write_bind_flag = 2;
14414pub const tm_render_graph_write_bind_flag_TM_RENDER_GRAPH_WRITE_BIND_FLAG_DEPTH_STENCIL_TARGET:
14415    tm_render_graph_write_bind_flag = 4;
14416pub type tm_render_graph_write_bind_flag = ::std::os::raw::c_int;
14417#[repr(C)]
14418#[derive(Copy, Clone)]
14419pub struct tm_render_graph_handle_t {
14420    pub value: u32,
14421}
14422#[repr(C)]
14423#[derive(Copy, Clone)]
14424pub union tm_render_graph_blackboard_value {
14425    pub data: *mut ::std::os::raw::c_void,
14426    pub float32: f32,
14427    pub uint64: u64,
14428    pub uint32: u32,
14429    pub int64: i64,
14430    pub int32: i32,
14431    pub boolean: bool,
14432    _bindgen_union_align: u64,
14433}
14434#[repr(C)]
14435#[derive(Copy, Clone)]
14436pub struct tm_render_graph_viewer_t {
14437    pub sort_key: u64,
14438    pub visibility_mask: u64,
14439    pub viewer_system: *mut tm_shader_system_o,
14440    pub viewer_cbuffer: *mut tm_shader_constant_buffer_instance_t,
14441    pub viewer_rbinder: *mut tm_shader_resource_binder_instance_t,
14442    pub view: tm_mat44_t,
14443    pub projection: tm_mat44_t,
14444    pub near_plane: f32,
14445    pub far_plane: f32,
14446}
14447#[repr(C)]
14448#[derive(Copy, Clone)]
14449pub struct tm_render_graph_api {
14450    pub create: ::std::option::Option<
14451        unsafe extern "C" fn(
14452            sort_key: u64,
14453            allocator: *mut tm_allocator_i,
14454            shader_repository: *mut tm_shader_repository_o,
14455        ) -> *mut tm_render_graph_o,
14456    >,
14457    pub destroy: ::std::option::Option<unsafe extern "C" fn(graph: *mut tm_render_graph_o)>,
14458    pub sort_key: ::std::option::Option<
14459        unsafe extern "C" fn(graph: *const tm_render_graph_o, material_layer_name: u64) -> u64,
14460    >,
14461    pub register_gpu_image: ::std::option::Option<
14462        unsafe extern "C" fn(
14463            graph: *mut tm_render_graph_o,
14464            name: u64,
14465            resource: u32,
14466            resource_state: u32,
14467            image_desc: *const tm_renderer_image_buffer_t,
14468        ),
14469    >,
14470    pub register_gpu_buffer: ::std::option::Option<
14471        unsafe extern "C" fn(
14472            graph: *mut tm_render_graph_o,
14473            name: u64,
14474            resource: u32,
14475            resource_state: u32,
14476            buffer_desc: *const tm_renderer_buffer_t,
14477        ),
14478    >,
14479    pub write_blackboard: ::std::option::Option<
14480        unsafe extern "C" fn(
14481            graph: *mut tm_render_graph_o,
14482            key: u64,
14483            value: tm_render_graph_blackboard_value,
14484        ),
14485    >,
14486    pub read_blackboard: ::std::option::Option<
14487        unsafe extern "C" fn(
14488            graph: *const tm_render_graph_o,
14489            key: u64,
14490            value: *mut tm_render_graph_blackboard_value,
14491        ) -> bool,
14492    >,
14493    pub setup_passes: ::std::option::Option<
14494        unsafe extern "C" fn(
14495            graph: *mut tm_render_graph_o,
14496            render_module: *mut tm_render_graph_module_o,
14497        ),
14498    >,
14499    pub validate_and_build: ::std::option::Option<
14500        unsafe extern "C" fn(
14501            graph: *mut tm_render_graph_o,
14502            backend: *mut tm_renderer_backend_i,
14503            device_affinity_mask: u32,
14504        ) -> bool,
14505    >,
14506    pub execute: ::std::option::Option<
14507        unsafe extern "C" fn(
14508            graph: *mut tm_render_graph_o,
14509            backend: *mut tm_renderer_backend_i,
14510            shader_context: *const tm_shader_system_context_o,
14511            device_affinity_mask: u32,
14512        ) -> *mut tm_atomic_counter_o,
14513    >,
14514    pub resource_buffers: ::std::option::Option<
14515        unsafe extern "C" fn(
14516            graph: *const tm_render_graph_o,
14517            resource_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
14518            num_resource_buffers: *mut u32,
14519        ),
14520    >,
14521    pub command_buffers: ::std::option::Option<
14522        unsafe extern "C" fn(
14523            graph: *const tm_render_graph_o,
14524            command_buffers: *mut *mut tm_renderer_command_buffer_o,
14525            num_command_buffers: *mut u32,
14526        ),
14527    >,
14528    pub viewers: ::std::option::Option<
14529        unsafe extern "C" fn(
14530            graph: *mut tm_render_graph_o,
14531            viewers: *mut tm_render_graph_viewer_t,
14532            num_viewers: *mut u32,
14533        ),
14534    >,
14535    pub backend_handle: ::std::option::Option<
14536        unsafe extern "C" fn(
14537            graph: *const tm_render_graph_o,
14538            graph_handle: tm_render_graph_handle_t,
14539        ) -> u32,
14540    >,
14541}
14542#[repr(C)]
14543#[derive(Copy, Clone)]
14544pub struct tm_render_graph_module_editor_submenu_i {
14545    pub submenu_name: *const ::std::os::raw::c_char,
14546    pub inst: *mut ::std::os::raw::c_void,
14547    pub submenu: ::std::option::Option<
14548        unsafe extern "C" fn(
14549            inst: *mut ::std::os::raw::c_void,
14550            ui: *mut tm_ui_o,
14551            uistyle: *const tm_ui_style_t,
14552            submenu_pos: tm_vec2_t,
14553        ),
14554    >,
14555}
14556#[repr(C)]
14557#[derive(Copy, Clone)]
14558pub struct tm_render_graph_module_api {
14559    pub create: ::std::option::Option<
14560        unsafe extern "C" fn(
14561            allocator: *mut tm_allocator_i,
14562            name: *const ::std::os::raw::c_char,
14563        ) -> *mut tm_render_graph_module_o,
14564    >,
14565    pub destroy: ::std::option::Option<
14566        unsafe extern "C" fn(
14567            render_module: *mut tm_render_graph_module_o,
14568            res_buf: *mut tm_renderer_resource_command_buffer_o,
14569        ),
14570    >,
14571    pub add_pass: ::std::option::Option<
14572        unsafe extern "C" fn(
14573            render_module: *mut tm_render_graph_module_o,
14574            pass: *mut tm_render_graph_pass_i,
14575        ),
14576    >,
14577    pub add_extension_point: ::std::option::Option<
14578        unsafe extern "C" fn(
14579            render_module: *mut tm_render_graph_module_o,
14580            extension_point_name: u64,
14581        ),
14582    >,
14583    pub insert_extension: ::std::option::Option<
14584        unsafe extern "C" fn(
14585            render_module: *mut tm_render_graph_module_o,
14586            extension_point_name: u64,
14587            extension: *mut tm_render_graph_module_o,
14588            ordering_weight: f32,
14589        ) -> bool,
14590    >,
14591    pub add_sub_module: ::std::option::Option<
14592        unsafe extern "C" fn(
14593            render_module: *mut tm_render_graph_module_o,
14594            shader_layer_name: u64,
14595            sub_module: *mut tm_render_graph_module_o,
14596        ),
14597    >,
14598    pub init_passes: ::std::option::Option<
14599        unsafe extern "C" fn(
14600            render_module: *mut tm_render_graph_module_o,
14601            res_buf: *mut tm_renderer_resource_command_buffer_o,
14602        ),
14603    >,
14604    pub set_editor_submenu_interface: ::std::option::Option<
14605        unsafe extern "C" fn(
14606            render_module: *mut tm_render_graph_module_o,
14607            submenu_i: *mut tm_render_graph_module_editor_submenu_i,
14608        ),
14609    >,
14610    pub editor_submenu: ::std::option::Option<
14611        unsafe extern "C" fn(
14612            render_module: *mut tm_render_graph_module_o,
14613            ui: *mut tm_ui_o,
14614            uistyle: *const tm_ui_style_t,
14615            submenu_pos: tm_vec2_t,
14616        ),
14617    >,
14618    pub create_persistent_gpu_image: ::std::option::Option<
14619        unsafe extern "C" fn(
14620            render_module: *mut tm_render_graph_module_o,
14621            name: u64,
14622            image_desc: *const tm_renderer_image_buffer_t,
14623            inherits: u64,
14624        ),
14625    >,
14626    pub create_persistent_gpu_buffer: ::std::option::Option<
14627        unsafe extern "C" fn(
14628            render_module: *mut tm_render_graph_module_o,
14629            name: u64,
14630            buffer_desc: *const tm_renderer_buffer_t,
14631            inherits: u64,
14632        ),
14633    >,
14634}
14635#[repr(C)]
14636#[derive(Copy, Clone)]
14637pub struct tm_render_graph_setup_api {
14638    pub external_resource: ::std::option::Option<
14639        unsafe extern "C" fn(
14640            graph_setup: *mut tm_render_graph_setup_o,
14641            name: u64,
14642        ) -> tm_render_graph_handle_t,
14643    >,
14644    pub image_desc: ::std::option::Option<
14645        unsafe extern "C" fn(
14646            graph_setup: *mut tm_render_graph_setup_o,
14647            handle: tm_render_graph_handle_t,
14648        ) -> *const tm_renderer_image_buffer_t,
14649    >,
14650    pub buffer_desc: ::std::option::Option<
14651        unsafe extern "C" fn(
14652            graph_setup: *mut tm_render_graph_setup_o,
14653            handle: tm_render_graph_handle_t,
14654        ) -> *const tm_renderer_buffer_t,
14655    >,
14656    pub shader_repository: ::std::option::Option<
14657        unsafe extern "C" fn(
14658            graph_setup: *mut tm_render_graph_setup_o,
14659        ) -> *mut tm_shader_repository_o,
14660    >,
14661    pub create_gpu_images: ::std::option::Option<
14662        unsafe extern "C" fn(
14663            graph_setup: *mut tm_render_graph_setup_o,
14664            image_descs: *const tm_renderer_image_buffer_t,
14665            num_images: u32,
14666            handles: *mut tm_render_graph_handle_t,
14667        ),
14668    >,
14669    pub create_gpu_buffers: ::std::option::Option<
14670        unsafe extern "C" fn(
14671            graph_setup: *mut tm_render_graph_setup_o,
14672            buffer_descs: *const tm_renderer_buffer_t,
14673            num_buffers: u32,
14674            handles: *mut tm_render_graph_handle_t,
14675        ),
14676    >,
14677    pub read_gpu_resource: ::std::option::Option<
14678        unsafe extern "C" fn(
14679            graph_setup: *mut tm_render_graph_setup_o,
14680            handle: tm_render_graph_handle_t,
14681            wanted_resource_state: u32,
14682        ),
14683    >,
14684    pub write_gpu_resource: ::std::option::Option<
14685        unsafe extern "C" fn(
14686            graph_setup: *mut tm_render_graph_setup_o,
14687            handle: tm_render_graph_handle_t,
14688            write_bind_flags: u32,
14689            wanted_resource_state: u32,
14690            load_op: u32,
14691            bind_slot: u32,
14692            blackboard_key: u64,
14693        ),
14694    >,
14695    pub set_active: ::std::option::Option<
14696        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, state: bool),
14697    >,
14698    pub set_output: ::std::option::Option<
14699        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, state: bool),
14700    >,
14701    pub set_request_async_compute: ::std::option::Option<
14702        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, state: bool),
14703    >,
14704    pub set_request_multi_gpu: ::std::option::Option<
14705        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, device_affinity_mask: u32),
14706    >,
14707    pub expose_as_material_layer: ::std::option::Option<
14708        unsafe extern "C" fn(graph_setup: *mut tm_render_graph_setup_o, layer_name: u64),
14709    >,
14710    pub write_blackboard: ::std::option::Option<
14711        unsafe extern "C" fn(
14712            graph_setup: *mut tm_render_graph_setup_o,
14713            key: u64,
14714            value: tm_render_graph_blackboard_value,
14715        ),
14716    >,
14717    pub read_blackboard: ::std::option::Option<
14718        unsafe extern "C" fn(
14719            graph_setup: *mut tm_render_graph_setup_o,
14720            key: u64,
14721            value: *mut tm_render_graph_blackboard_value,
14722        ) -> bool,
14723    >,
14724}
14725#[repr(C)]
14726#[derive(Copy, Clone)]
14727pub struct tm_render_graph_layer_sort_key_t {
14728    pub layer_name: u64,
14729    pub sort_key: u64,
14730}
14731#[repr(C)]
14732#[derive(Copy, Clone)]
14733pub struct tm_render_graph_execute_api {
14734    pub default_command_buffer: ::std::option::Option<
14735        unsafe extern "C" fn(
14736            graph_execute: *mut tm_render_graph_execute_o,
14737        ) -> *mut tm_renderer_command_buffer_o,
14738    >,
14739    pub default_resource_command_buffer: ::std::option::Option<
14740        unsafe extern "C" fn(
14741            graph_execute: *mut tm_render_graph_execute_o,
14742        ) -> *mut tm_renderer_resource_command_buffer_o,
14743    >,
14744    pub shader_context: ::std::option::Option<
14745        unsafe extern "C" fn(
14746            graph_execute: *mut tm_render_graph_execute_o,
14747        ) -> *const tm_shader_system_context_o,
14748    >,
14749    pub device_affinity_mask: ::std::option::Option<
14750        unsafe extern "C" fn(graph_execute: *mut tm_render_graph_execute_o) -> u32,
14751    >,
14752    pub backend_handle: ::std::option::Option<
14753        unsafe extern "C" fn(
14754            graph_execute: *mut tm_render_graph_execute_o,
14755            graph_handle: tm_render_graph_handle_t,
14756        ) -> u32,
14757    >,
14758    pub run_sub_module: ::std::option::Option<
14759        unsafe extern "C" fn(
14760            graph_execute: *mut tm_render_graph_execute_o,
14761            sub_module_name: u64,
14762            sort_key: u64,
14763            commands: *mut tm_renderer_command_buffer_o,
14764        ),
14765    >,
14766    pub read_blackboard: ::std::option::Option<
14767        unsafe extern "C" fn(
14768            graph_execute: *mut tm_render_graph_execute_o,
14769            key: u64,
14770            value: *mut tm_render_graph_blackboard_value,
14771        ) -> bool,
14772    >,
14773    pub append_viewers: ::std::option::Option<
14774        unsafe extern "C" fn(
14775            graph_execute: *mut tm_render_graph_execute_o,
14776            viewers: *const tm_render_graph_viewer_t,
14777            num_viewers: u32,
14778        ),
14779    >,
14780}
14781#[repr(C)]
14782#[derive(Copy, Clone)]
14783pub struct tm_render_graph_pass_api {
14784    pub init_pass: ::std::option::Option<
14785        unsafe extern "C" fn(
14786            const_data: *mut ::std::os::raw::c_void,
14787            allocator: *mut tm_allocator_i,
14788            res_buf: *mut tm_renderer_resource_command_buffer_o,
14789        ),
14790    >,
14791    pub shutdown_pass: ::std::option::Option<
14792        unsafe extern "C" fn(
14793            const_data: *mut ::std::os::raw::c_void,
14794            allocator: *mut tm_allocator_i,
14795            res_buf: *mut tm_renderer_resource_command_buffer_o,
14796        ),
14797    >,
14798    pub setup_pass: ::std::option::Option<
14799        unsafe extern "C" fn(
14800            const_data: *const ::std::os::raw::c_void,
14801            runtime_data: *mut ::std::os::raw::c_void,
14802            graph_setup: *mut tm_render_graph_setup_o,
14803        ),
14804    >,
14805    pub execute_pass: ::std::option::Option<
14806        unsafe extern "C" fn(
14807            const_data: *const ::std::os::raw::c_void,
14808            runtime_data: *mut ::std::os::raw::c_void,
14809            sort_key: u64,
14810            graph_execute: *mut tm_render_graph_execute_o,
14811        ),
14812    >,
14813}
14814#[repr(C)]
14815#[derive(Copy, Clone)]
14816pub struct tm_render_graph_pass_i {
14817    pub const_data: *mut ::std::os::raw::c_void,
14818    pub const_data_size: u64,
14819    pub runtime_data_size: u64,
14820    pub profiling_scope: *const ::std::os::raw::c_char,
14821    pub api: tm_render_graph_pass_api,
14822}
14823#[repr(C)]
14824#[derive(Copy, Clone)]
14825pub struct tm_render_graph_module_o {
14826    _unused: [u8; 0],
14827}
14828#[repr(C)]
14829#[derive(Copy, Clone)]
14830pub struct tm_render_graph_o {
14831    _unused: [u8; 0],
14832}
14833#[repr(C)]
14834#[derive(Copy, Clone)]
14835pub struct tm_shader_context_o {
14836    _unused: [u8; 0],
14837}
14838#[repr(C)]
14839#[derive(Copy, Clone)]
14840pub struct tm_render_pipeline_o {
14841    _unused: [u8; 0],
14842}
14843#[repr(C)]
14844#[derive(Copy, Clone)]
14845pub struct tm_render_pipeline_update_frame_parameters_t {
14846    pub last_time: f32,
14847    pub time: f32,
14848    pub delta_time: f32,
14849    pub frame_number: u32,
14850    pub selection_outline_color: tm_vec4_t,
14851}
14852#[repr(C)]
14853#[derive(Copy, Clone)]
14854pub struct tm_render_pipeline_shader_system_t {
14855    pub system: *mut tm_shader_system_o,
14856    pub constants: *mut tm_shader_constant_buffer_instance_t,
14857    pub resources: *mut tm_shader_resource_binder_instance_t,
14858}
14859pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_FRAME_PARAMETERS:
14860    tm_render_pipeline_global_shader_system = 0;
14861pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_EDITOR_SELECTION:
14862    tm_render_pipeline_global_shader_system = 1;
14863pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_DYNAMIC_OBJECT:
14864    tm_render_pipeline_global_shader_system = 2;
14865pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_LIGHTING_SYSTEM:
14866    tm_render_pipeline_global_shader_system = 3;
14867pub const tm_render_pipeline_global_shader_system_TM_RENDER_PIPELINE_SHADER_SYSTEMS_MAX:
14868    tm_render_pipeline_global_shader_system = 4;
14869pub type tm_render_pipeline_global_shader_system = ::std::os::raw::c_int;
14870#[repr(C)]
14871#[derive(Copy, Clone)]
14872pub struct tm_render_pipeline_api {
14873    pub name: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
14874    pub create: ::std::option::Option<
14875        unsafe extern "C" fn(
14876            allocator: *mut tm_allocator_i,
14877            res_buf: *mut tm_renderer_resource_command_buffer_o,
14878        ) -> *mut tm_render_pipeline_o,
14879    >,
14880    pub destroy: ::std::option::Option<
14881        unsafe extern "C" fn(
14882            inst: *mut tm_render_pipeline_o,
14883            res_buf: *mut tm_renderer_resource_command_buffer_o,
14884        ),
14885    >,
14886    pub main_module: ::std::option::Option<
14887        unsafe extern "C" fn(inst: *mut tm_render_pipeline_o) -> *mut tm_render_graph_module_o,
14888    >,
14889    pub begin: ::std::option::Option<
14890        unsafe extern "C" fn(
14891            inst: *mut tm_render_pipeline_o,
14892            graph: *mut tm_render_graph_o,
14893            context: *mut tm_shader_system_context_o,
14894        ),
14895    >,
14896    pub end: ::std::option::Option<
14897        unsafe extern "C" fn(
14898            inst: *mut tm_render_pipeline_o,
14899            graph: *mut tm_render_graph_o,
14900            context: *mut tm_shader_system_context_o,
14901        ),
14902    >,
14903    pub editor_submenu: ::std::option::Option<
14904        unsafe extern "C" fn(
14905            inst: *mut tm_render_pipeline_o,
14906            ui: *mut tm_ui_o,
14907            uistyle: *const tm_ui_style_t,
14908            submenu_pos: tm_vec2_t,
14909        ),
14910    >,
14911    pub global_shader_system: ::std::option::Option<
14912        unsafe extern "C" fn(
14913            inst: *mut tm_render_pipeline_o,
14914            system_id: tm_render_pipeline_global_shader_system,
14915            system: *mut tm_render_pipeline_shader_system_t,
14916        ) -> bool,
14917    >,
14918    pub update_frame_parameters: ::std::option::Option<
14919        unsafe extern "C" fn(
14920            inst: *mut tm_render_pipeline_o,
14921            frame_params: *const tm_render_pipeline_update_frame_parameters_t,
14922            res_buf: *mut tm_renderer_resource_command_buffer_o,
14923        ),
14924    >,
14925}
14926#[repr(C)]
14927#[derive(Copy, Clone)]
14928pub struct tm_render_pipeline_i {
14929    pub inst: *mut tm_render_pipeline_o,
14930    pub api: *mut tm_render_pipeline_api,
14931}
14932#[repr(C)]
14933#[derive(Copy, Clone)]
14934pub struct tm_shadow_map_manager_o {
14935    _unused: [u8; 0],
14936}
14937pub const TM_SHADOW_LIGHT_TYPE_POINT: ::std::os::raw::c_int = 0;
14938pub const TM_SHADOW_LIGHT_TYPE_SPOT: ::std::os::raw::c_int = 1;
14939pub const TM_SHADOW_LIGHT_TYPE_DIRECTIONAL: ::std::os::raw::c_int = 2;
14940pub type _bindgen_ty_172 = ::std::os::raw::c_int;
14941#[repr(C)]
14942#[derive(Copy, Clone)]
14943pub struct tm_shadow_mapping_input_t {
14944    pub tm: tm_mat44_t,
14945    pub type_: u32,
14946    pub __bindgen_anon_1: tm_shadow_mapping_input_t__bindgen_ty_1,
14947    pub depth_bias: f32,
14948    pub _padding_40: [::std::os::raw::c_char; 4usize],
14949    pub shadow_data_offset: *mut u32,
14950}
14951#[repr(C)]
14952#[derive(Copy, Clone)]
14953pub union tm_shadow_mapping_input_t__bindgen_ty_1 {
14954    pub directional: tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1,
14955    pub point_spot: tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2,
14956    _bindgen_union_align: [u32; 3usize],
14957}
14958#[repr(C)]
14959#[derive(Copy, Clone)]
14960pub struct tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_1 {
14961    pub num_cascades: u32,
14962    pub shadow_distance: f32,
14963    pub uniform_log_weight: f32,
14964}
14965#[repr(C)]
14966#[derive(Copy, Clone)]
14967pub struct tm_shadow_mapping_input_t__bindgen_ty_1__bindgen_ty_2 {
14968    pub near_range: f32,
14969    pub far_range: f32,
14970    pub spot_angle_outer: f32,
14971}
14972#[repr(C)]
14973#[derive(Copy, Clone)]
14974pub struct tm_shadow_mapping_api {
14975    pub create_manager: ::std::option::Option<
14976        unsafe extern "C" fn(
14977            allocator: *mut tm_allocator_i,
14978            viewer_system: *mut tm_shader_system_o,
14979            visibility_mask: u64,
14980            shadow_atlas_width: u32,
14981            shadow_atlas_height: u32,
14982            res_buf: *mut tm_renderer_resource_command_buffer_o,
14983        ) -> *mut tm_shadow_map_manager_o,
14984    >,
14985    pub destroy_manager: ::std::option::Option<
14986        unsafe extern "C" fn(
14987            manager: *mut tm_shadow_map_manager_o,
14988            res_buf: *mut tm_renderer_resource_command_buffer_o,
14989        ),
14990    >,
14991    pub shadow_passes: ::std::option::Option<
14992        unsafe extern "C" fn(
14993            mod_: *mut tm_render_graph_module_o,
14994            shadow_map_manager: *mut tm_shadow_map_manager_o,
14995            blackboard_lighting_system_name: u64,
14996        ),
14997    >,
14998}
14999pub const TM_MAX_RENDER_TARGETS: ::std::os::raw::c_int = 8;
15000pub const TM_MAX_UAVS: ::std::os::raw::c_int = 8;
15001pub type _bindgen_ty_173 = ::std::os::raw::c_int;
15002#[repr(C)]
15003#[derive(Copy, Clone)]
15004pub struct tm_pass_render_target_t {
15005    pub name: u64,
15006    pub load_op: u8,
15007    pub store_op: u8,
15008    pub create: bool,
15009    pub _padding_30: [::std::os::raw::c_char; 5usize],
15010    pub inherits: u64,
15011    pub scale: [f32; 3usize],
15012    pub _padding_35: [::std::os::raw::c_char; 4usize],
15013    pub __bindgen_anon_1: tm_pass_render_target_t__bindgen_ty_1,
15014}
15015#[repr(C)]
15016#[derive(Copy, Clone)]
15017pub union tm_pass_render_target_t__bindgen_ty_1 {
15018    pub desc: *mut tm_renderer_image_buffer_t,
15019    pub opaque: [u8; 64usize],
15020    _bindgen_union_align: [u64; 8usize],
15021}
15022#[repr(C)]
15023#[derive(Copy, Clone)]
15024pub struct tm_pass_buffer_write_t {
15025    pub name: u64,
15026    pub usage_flags: u8,
15027    pub create: bool,
15028    pub _padding_54: [::std::os::raw::c_char; 2usize],
15029    pub size: u32,
15030}
15031#[repr(C)]
15032#[derive(Copy, Clone)]
15033pub struct tm_material_pass_setup_t {
15034    pub output_pass: bool,
15035    pub _padding_64: [::std::os::raw::c_char; 7usize],
15036    pub color_targets: [tm_pass_render_target_t; 8usize],
15037    pub depth_stencil_target: tm_pass_render_target_t,
15038    pub layer_name: u64,
15039}
15040pub const TM_FULLSCREEN_PASS_MAX_INPUT_RESOURCES_PER_SLOT: ::std::os::raw::c_int = 8;
15041pub const TM_FULLSCREEN_PASS_MAX_INPUT_SLOTS: ::std::os::raw::c_int = 4;
15042pub type _bindgen_ty_174 = ::std::os::raw::c_int;
15043pub const tm_fullscreen_pass_type_TM_FULLSCREEN_PASS_TYPE__GRAPHICS: tm_fullscreen_pass_type = 0;
15044pub const tm_fullscreen_pass_type_TM_FULLSCREEN_PASS_TYPE__COMPUTE: tm_fullscreen_pass_type = 1;
15045pub type tm_fullscreen_pass_type = ::std::os::raw::c_int;
15046#[repr(C)]
15047#[derive(Copy, Clone)]
15048pub struct tm_fullscreen_pass_input_resource_t {
15049    pub name: u64,
15050    pub view_aspect_flag: u32,
15051    pub _padding_90: [::std::os::raw::c_char; 4usize],
15052}
15053#[repr(C)]
15054#[derive(Copy, Clone)]
15055pub struct tm_fullscreen_pass_input_slot_resources_t {
15056    pub slot_name: u64,
15057    pub bind_flag_name: u64,
15058    pub resources: [tm_fullscreen_pass_input_resource_t; 8usize],
15059}
15060#[repr(C)]
15061#[derive(Copy, Clone)]
15062pub struct tm_fullscreen_pass_setup_t {
15063    pub output_pass: bool,
15064    pub type_: u8,
15065    pub _padding_112: [::std::os::raw::c_char; 2usize],
15066    pub group_count: [u32; 3usize],
15067    pub input_slots: [tm_fullscreen_pass_input_slot_resources_t; 4usize],
15068    pub color_targets: [tm_pass_render_target_t; 8usize],
15069    pub depth_stencil_target: tm_pass_render_target_t,
15070    pub buffer_writes: [tm_pass_buffer_write_t; 8usize],
15071    pub shader: u64,
15072}
15073#[repr(C)]
15074#[derive(Copy, Clone)]
15075pub struct tm_debug_visualization_pass_setup_t {
15076    pub color_target: u64,
15077    pub shader: u64,
15078}
15079#[repr(C)]
15080#[derive(Copy, Clone)]
15081pub struct tm_debug_visualization_resources_t {
15082    pub resources: [tm_debug_visualization_resources_t__bindgen_ty_1; 16usize],
15083    pub num_resources: u32,
15084    pub _padding_156: [::std::os::raw::c_char; 4usize],
15085}
15086#[repr(C)]
15087#[derive(Copy, Clone)]
15088pub struct tm_debug_visualization_resources_t__bindgen_ty_1 {
15089    pub name: u64,
15090    pub view_aspect_flag: u32,
15091    pub contents: tm_debug_visualization_resources_t__bindgen_ty_1__bindgen_ty_1,
15092}
15093pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_COLOR_RGB:
15094    ::std::os::raw::c_int = 0;
15095pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_COLOR_A: ::std::os::raw::c_int =
15096    1;
15097pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_NORMALS: ::std::os::raw::c_int =
15098    2;
15099pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_SHADOW_MAP:
15100    ::std::os::raw::c_int = 3;
15101pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_PIXEL_VELOCITY:
15102    ::std::os::raw::c_int = 4;
15103pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_EV100: ::std::os::raw::c_int = 5;
15104pub const tm_debug_visualization_resources_t__bindgen_ty_1_CONTENT_NAN_INF: ::std::os::raw::c_int =
15105    6;
15106pub type tm_debug_visualization_resources_t__bindgen_ty_1__bindgen_ty_1 = ::std::os::raw::c_int;
15107pub type tm_custom_fullscreen_setup = ::std::option::Option<
15108    unsafe extern "C" fn(
15109        const_data: *const ::std::os::raw::c_void,
15110        runtime_data: *mut ::std::os::raw::c_void,
15111        graph_setup: *mut tm_render_graph_setup_o,
15112    ),
15113>;
15114#[repr(C)]
15115#[derive(Copy, Clone)]
15116pub struct tm_render_graph_toolbox_api {
15117    pub fullscreen_pass: ::std::option::Option<
15118        unsafe extern "C" fn(
15119            module: *mut tm_render_graph_module_o,
15120            setup: *mut tm_fullscreen_pass_setup_t,
15121            profiling_scope: *const ::std::os::raw::c_char,
15122        ),
15123    >,
15124    pub custom_fullscreen_pass: ::std::option::Option<
15125        unsafe extern "C" fn(
15126            module: *mut tm_render_graph_module_o,
15127            setup: tm_custom_fullscreen_setup,
15128            const_data: *const ::std::os::raw::c_void,
15129            const_data_size: u32,
15130            profiling_scope: *const ::std::os::raw::c_char,
15131        ),
15132    >,
15133    pub material_pass: ::std::option::Option<
15134        unsafe extern "C" fn(
15135            module: *mut tm_render_graph_module_o,
15136            setup: *mut tm_material_pass_setup_t,
15137            profiling_scope: *const ::std::os::raw::c_char,
15138        ),
15139    >,
15140    pub debug_visualization_pass: ::std::option::Option<
15141        unsafe extern "C" fn(
15142            module: *mut tm_render_graph_module_o,
15143            setup: *mut tm_debug_visualization_pass_setup_t,
15144            profiling_scope: *const ::std::os::raw::c_char,
15145        ),
15146    >,
15147    pub setup_render_target_writes: ::std::option::Option<
15148        unsafe extern "C" fn(
15149            color_targets: *const tm_pass_render_target_t,
15150            depth_stencil_target: *const tm_pass_render_target_t,
15151            buffer_writes: *const tm_pass_buffer_write_t,
15152            graph_setup: *mut tm_render_graph_setup_o,
15153        ),
15154    >,
15155    pub setup_render_target_descs: ::std::option::Option<
15156        unsafe extern "C" fn(
15157            color_targets: *mut tm_pass_render_target_t,
15158            depth_stencil_target: *mut tm_pass_render_target_t,
15159        ),
15160    >,
15161    pub setup_fullscreen_pass: ::std::option::Option<
15162        unsafe extern "C" fn(
15163            setup: *mut tm_fullscreen_pass_setup_t,
15164            runtime_data: *mut ::std::os::raw::c_void,
15165            graph_setup: *mut tm_render_graph_setup_o,
15166        ),
15167    >,
15168    pub image_desc: ::std::option::Option<
15169        unsafe extern "C" fn(
15170            graph_setup: *mut tm_render_graph_setup_o,
15171            resource_name: u64,
15172        ) -> *const tm_renderer_image_buffer_t,
15173    >,
15174}
15175#[repr(C)]
15176#[derive(Copy, Clone)]
15177pub struct tm_component_shader_system_t {
15178    pub active_viewer_mask: u64,
15179    pub system: *mut tm_shader_system_o,
15180    pub constants: *mut tm_shader_constant_buffer_instance_t,
15181    pub resources: *mut tm_shader_resource_binder_instance_t,
15182}
15183#[repr(C)]
15184#[derive(Copy, Clone)]
15185pub struct tm_component_shader_system_i {
15186    pub name_hash: u64,
15187    pub update_system: ::std::option::Option<
15188        unsafe extern "C" fn(
15189            ctx: *mut tm_entity_context_o,
15190            entity: tm_entity_t,
15191            component: *mut ::std::os::raw::c_void,
15192            entity_transform: *const tm_mat44_t,
15193            res_buf: *mut tm_renderer_resource_command_buffer_o,
15194            device_affinity_mask: u32,
15195            system: *mut tm_component_shader_system_t,
15196        ) -> bool,
15197    >,
15198}
15199#[repr(C)]
15200#[derive(Copy, Clone)]
15201pub struct tm_component_shader_system_api {
15202    pub update_systems: ::std::option::Option<
15203        unsafe extern "C" fn(
15204            system_components: *const u32,
15205            systems: *mut *mut tm_component_shader_system_i,
15206            n_systems: u32,
15207            ctx: *mut tm_entity_context_o,
15208            entity: tm_entity_t,
15209            entity_transform: *const tm_mat44_t,
15210            res_buf: *mut tm_renderer_resource_command_buffer_o,
15211            device_affinity_mask: u32,
15212            active_systems: *mut tm_component_shader_system_t,
15213        ) -> u32,
15214    >,
15215    pub components: ::std::option::Option<
15216        unsafe extern "C" fn(
15217            systems: *mut *mut tm_component_shader_system_i,
15218            n_systems: u32,
15219            ctx: *mut tm_entity_context_o,
15220            ta: *mut tm_temp_allocator_i,
15221        ) -> *const u32,
15222    >,
15223}
15224pub const TM_TT_PROP__CUBEMAP_CAPTURE_COMPONENT__CAPTURE_INTERFACE: ::std::os::raw::c_int = 0;
15225pub const TM_TT_PROP__CUBEMAP_CAPTURE_COMPONENT__OUTPUT_IMAGE: ::std::os::raw::c_int = 1;
15226pub type _bindgen_ty_175 = ::std::os::raw::c_int;
15227#[repr(C)]
15228#[derive(Copy, Clone)]
15229pub struct tm_cubemap_capture_component_t {
15230    pub image_asset: tm_tt_id_t,
15231}
15232#[repr(C)]
15233#[derive(Copy, Clone)]
15234pub struct tm_cubemap_capture_o {
15235    _unused: [u8; 0],
15236}
15237#[repr(C)]
15238#[derive(Copy, Clone)]
15239pub struct tm_cubemap_capture_api {
15240    pub capture: ::std::option::Option<
15241        unsafe extern "C" fn(
15242            inst: *mut tm_cubemap_capture_o,
15243            entity: tm_tt_id_t,
15244            resource: u32,
15245            resource_state: u16,
15246            output_desc: *const tm_renderer_image_buffer_t,
15247            device_affinity_mask: u32,
15248        ),
15249    >,
15250    pub interface_name: ::std::option::Option<
15251        unsafe extern "C" fn(inst: *mut tm_cubemap_capture_o) -> *const ::std::os::raw::c_char,
15252    >,
15253    pub interface_uid:
15254        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_cubemap_capture_o) -> u64>,
15255}
15256#[repr(C)]
15257#[derive(Copy, Clone)]
15258pub struct tm_cubemap_capture_i {
15259    pub inst: *mut tm_cubemap_capture_o,
15260    pub api: *mut tm_cubemap_capture_api,
15261}
15262#[repr(C)]
15263#[derive(Copy, Clone)]
15264pub struct tm_gpu_picking_o {
15265    _unused: [u8; 0],
15266}
15267#[repr(C)]
15268#[derive(Copy, Clone)]
15269pub struct tm_gpu_picking_api {
15270    pub create: ::std::option::Option<
15271        unsafe extern "C" fn(
15272            allocator: *mut tm_allocator_i,
15273            res_buf: *mut tm_renderer_resource_command_buffer_o,
15274            picking_system: *mut tm_shader_system_o,
15275            clear_picking_buffer_shader: *mut tm_shader_o,
15276        ) -> *mut tm_gpu_picking_o,
15277    >,
15278    pub destroy: ::std::option::Option<
15279        unsafe extern "C" fn(
15280            inst: *mut tm_gpu_picking_o,
15281            res_buf: *mut tm_renderer_resource_command_buffer_o,
15282        ),
15283    >,
15284    pub update_cpu: ::std::option::Option<
15285        unsafe extern "C" fn(
15286            inst: *mut tm_gpu_picking_o,
15287            rb: *mut tm_renderer_backend_i,
15288            device_affinity_mask: u32,
15289            activate_system: bool,
15290            cursor_position: tm_vec2_t,
15291            opacity_threshold: f32,
15292            result: *mut u64,
15293        ) -> bool,
15294    >,
15295    pub update_gpu: ::std::option::Option<
15296        unsafe extern "C" fn(
15297            inst: *mut tm_gpu_picking_o,
15298            context: *mut tm_shader_system_context_o,
15299            res_buf: *mut tm_renderer_resource_command_buffer_o,
15300            cmd_buf: *mut tm_renderer_command_buffer_o,
15301            device_affinity_mask: u32,
15302            resolution_scale: f32,
15303        ),
15304    >,
15305}
15306pub const TM_TT_PROP__GRID_SETTINGS__CELL_SIZE: ::std::os::raw::c_int = 0;
15307pub const TM_TT_PROP__GRID_SETTINGS__EXTENT: ::std::os::raw::c_int = 1;
15308pub const TM_TT_PROP__GRID_SETTINGS__INFINITE: ::std::os::raw::c_int = 2;
15309pub const TM_TT_PROP__GRID_SETTINGS__THIN_LINES_COLOR: ::std::os::raw::c_int = 3;
15310pub const TM_TT_PROP__GRID_SETTINGS__THICK_LINES_COLOR: ::std::os::raw::c_int = 4;
15311pub type _bindgen_ty_176 = ::std::os::raw::c_int;
15312#[repr(C)]
15313#[derive(Copy, Clone)]
15314pub struct tm_visual_grid_t {
15315    pub tm: tm_mat44_t,
15316    pub grid_extent: f32,
15317    pub cell_size: f32,
15318    pub infinite: bool,
15319    pub thin_lines_color: tm_color_srgb_t,
15320    pub thick_lines_color: tm_color_srgb_t,
15321    pub _padding_38: [::std::os::raw::c_char; 3usize],
15322}
15323#[repr(C)]
15324#[derive(Copy, Clone)]
15325pub struct tm_grid_renderer_api {
15326    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
15327    pub read_from_truth_settings: ::std::option::Option<
15328        unsafe extern "C" fn(
15329            grid: *mut tm_visual_grid_t,
15330            tt: *mut tm_the_truth_o,
15331            grid_settings: tm_tt_id_t,
15332        ),
15333    >,
15334    pub render: ::std::option::Option<
15335        unsafe extern "C" fn(
15336            context: *const tm_shader_system_context_o,
15337            grid_shader: *mut tm_shader_o,
15338            grid: *const tm_visual_grid_t,
15339            res_buf: *mut tm_renderer_resource_command_buffer_o,
15340            cmd_buf: *mut tm_renderer_command_buffer_o,
15341            sort_key: u64,
15342        ),
15343    >,
15344}
15345#[repr(C)]
15346#[derive(Copy, Clone)]
15347pub struct tm_tab_o {
15348    _unused: [u8; 0],
15349}
15350#[repr(C)]
15351#[derive(Copy, Clone)]
15352pub struct tm_image_inspector_data_t {
15353    pub render_handle: u32,
15354    pub _padding_19: [::std::os::raw::c_char; 4usize],
15355    pub desc: *const tm_renderer_image_buffer_t,
15356    pub srgb: bool,
15357    pub display_channels_rgba: [bool; 4usize],
15358    pub _padding_30: [::std::os::raw::c_char; 3usize],
15359    pub checker_colors: [u32; 2usize],
15360    pub mip_level: u32,
15361    pub slice: u32,
15362    pub dpi_scale_factor: f32,
15363    pub origo: tm_vec2_t,
15364    pub zoom: f32,
15365}
15366#[repr(C)]
15367#[derive(Copy, Clone)]
15368pub struct tm_image_inspector_api {
15369    pub render: ::std::option::Option<
15370        unsafe extern "C" fn(
15371            shader: *mut tm_shader_o,
15372            data: *const tm_image_inspector_data_t,
15373            system_context: *const tm_shader_system_context_o,
15374            res_buf: *mut tm_renderer_resource_command_buffer_o,
15375            cmd_buf: *mut tm_renderer_command_buffer_o,
15376            sort_key: u64,
15377        ),
15378    >,
15379}
15380pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_LINES: tm_primitive_drawer_type = 0;
15381pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_SPHERE: tm_primitive_drawer_type = 1;
15382pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_CONE: tm_primitive_drawer_type = 2;
15383pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_TRIANGLES: tm_primitive_drawer_type = 3;
15384pub const tm_primitive_drawer_type_TM_PRIMITIVE_DRAWER_FILLED_TRIANGLES: tm_primitive_drawer_type =
15385    4;
15386pub type tm_primitive_drawer_type = ::std::os::raw::c_int;
15387#[repr(C)]
15388#[derive(Copy, Clone)]
15389pub struct tm_primitive_drawer_buffer_t {
15390    pub buffer: *mut u8,
15391    pub bytes: u32,
15392    pub bytes_allocated: u32,
15393}
15394pub const TM_PRIMITIVE_DRAWER__OK: ::std::os::raw::c_int = 0;
15395pub const TM_PRIMITIVE_DRAWER__PBUFFER_FULL: ::std::os::raw::c_int = 1;
15396pub const TM_PRIMITIVE_DRAWER__VBUFFER_FULL: ::std::os::raw::c_int = 2;
15397pub type _bindgen_ty_177 = ::std::os::raw::c_int;
15398#[repr(C)]
15399#[derive(Copy, Clone)]
15400pub struct tm_primitive_drawer_api {
15401    pub stroke_lines: ::std::option::Option<
15402        unsafe extern "C" fn(
15403            pbuffer: *mut tm_primitive_drawer_buffer_t,
15404            vbuffer: *mut tm_primitive_drawer_buffer_t,
15405            tm: *const tm_mat44_t,
15406            vertices: *const tm_vec3_t,
15407            num_lines: u32,
15408            color: tm_color_srgb_t,
15409            line_width: f32,
15410        ) -> u32,
15411    >,
15412    pub stroke_polyline: ::std::option::Option<
15413        unsafe extern "C" fn(
15414            pbuffer: *mut tm_primitive_drawer_buffer_t,
15415            vbuffer: *mut tm_primitive_drawer_buffer_t,
15416            tm: *const tm_mat44_t,
15417            vertices: *const tm_vec3_t,
15418            num_vertices: u32,
15419            color: tm_color_srgb_t,
15420            line_width: f32,
15421        ) -> u32,
15422    >,
15423    pub stroke_triangles: ::std::option::Option<
15424        unsafe extern "C" fn(
15425            pbuffer: *mut tm_primitive_drawer_buffer_t,
15426            vbuffer: *mut tm_primitive_drawer_buffer_t,
15427            tm: *const tm_mat44_t,
15428            vertices: *const tm_vec3_t,
15429            num_vertices: u32,
15430            indices: *const u32,
15431            num_indices: u32,
15432            color: tm_color_srgb_t,
15433            line_width: f32,
15434        ) -> u32,
15435    >,
15436    pub stroke_rect: ::std::option::Option<
15437        unsafe extern "C" fn(
15438            pbuffer: *mut tm_primitive_drawer_buffer_t,
15439            vbuffer: *mut tm_primitive_drawer_buffer_t,
15440            tm: *const tm_mat44_t,
15441            width: f32,
15442            height: f32,
15443            color: tm_color_srgb_t,
15444            line_width: f32,
15445        ) -> u32,
15446    >,
15447    pub stroke_ellipse: ::std::option::Option<
15448        unsafe extern "C" fn(
15449            pbuffer: *mut tm_primitive_drawer_buffer_t,
15450            vbuffer: *mut tm_primitive_drawer_buffer_t,
15451            tm: *const tm_mat44_t,
15452            width: f32,
15453            height: f32,
15454            divisions: u32,
15455            color: tm_color_srgb_t,
15456            line_width: f32,
15457        ) -> u32,
15458    >,
15459    pub stroke_cuboid: ::std::option::Option<
15460        unsafe extern "C" fn(
15461            pbuffer: *mut tm_primitive_drawer_buffer_t,
15462            vbuffer: *mut tm_primitive_drawer_buffer_t,
15463            tm: *const tm_mat44_t,
15464            lower_bound: tm_vec3_t,
15465            upper_bound: tm_vec3_t,
15466            color: tm_color_srgb_t,
15467            line_width: f32,
15468        ) -> u32,
15469    >,
15470    pub stroke_sphere: ::std::option::Option<
15471        unsafe extern "C" fn(
15472            pbuffer: *mut tm_primitive_drawer_buffer_t,
15473            tm: *const tm_mat44_t,
15474            radius: f32,
15475            segments: u32,
15476            parts: u32,
15477            color: tm_color_srgb_t,
15478            line_width: f32,
15479        ) -> u32,
15480    >,
15481    pub stroke_cone: ::std::option::Option<
15482        unsafe extern "C" fn(
15483            pbuffer: *mut tm_primitive_drawer_buffer_t,
15484            tm: *const tm_mat44_t,
15485            length: f32,
15486            radius: f32,
15487            segments: u32,
15488            bars: u32,
15489            color: tm_color_srgb_t,
15490            line_width: f32,
15491        ) -> u32,
15492    >,
15493    pub stroke_octasphere: ::std::option::Option<
15494        unsafe extern "C" fn(
15495            pbuffer: *mut tm_primitive_drawer_buffer_t,
15496            vbuffer: *mut tm_primitive_drawer_buffer_t,
15497            tm: *const tm_mat44_t,
15498            r: f32,
15499            d: tm_vec3_t,
15500            n: u32,
15501            color: tm_color_srgb_t,
15502            line_width: f32,
15503        ) -> u32,
15504    >,
15505    pub fill_triangles: ::std::option::Option<
15506        unsafe extern "C" fn(
15507            pbuffer: *mut tm_primitive_drawer_buffer_t,
15508            vbuffer: *mut tm_primitive_drawer_buffer_t,
15509            tm: *const tm_mat44_t,
15510            vertices: *const tm_vec3_t,
15511            num_vertices: u32,
15512            indices: *const u32,
15513            num_indices: u32,
15514            color: tm_color_srgb_t,
15515        ) -> u32,
15516    >,
15517    pub reserve: ::std::option::Option<
15518        unsafe extern "C" fn(
15519            pbuffer: *mut tm_primitive_drawer_buffer_t,
15520            p_bytes: u32,
15521            vbuffer: *mut tm_primitive_drawer_buffer_t,
15522            v_bytes: u32,
15523            allocator: *mut tm_allocator_i,
15524        ),
15525    >,
15526    pub grow: ::std::option::Option<
15527        unsafe extern "C" fn(
15528            pbuffer: *mut tm_primitive_drawer_buffer_t,
15529            vbuffer: *mut tm_primitive_drawer_buffer_t,
15530            res: u32,
15531            allocator: *mut tm_allocator_i,
15532        ),
15533    >,
15534}
15535#[repr(C)]
15536#[derive(Copy, Clone)]
15537pub struct tm_primitive_renderer_o {
15538    _unused: [u8; 0],
15539}
15540#[repr(C)]
15541#[derive(Copy, Clone)]
15542pub struct tm_primitive_renderer_api {
15543    pub create: ::std::option::Option<
15544        unsafe extern "C" fn(
15545            allocator: *mut tm_allocator_i,
15546            res_buf: *mut tm_renderer_resource_command_buffer_o,
15547        ) -> *mut tm_primitive_renderer_o,
15548    >,
15549    pub destroy: ::std::option::Option<
15550        unsafe extern "C" fn(
15551            inst: *mut tm_primitive_renderer_o,
15552            res_buf: *mut tm_renderer_resource_command_buffer_o,
15553        ),
15554    >,
15555    pub render: ::std::option::Option<
15556        unsafe extern "C" fn(
15557            inst: *mut tm_primitive_renderer_o,
15558            pbuffer: *const tm_primitive_drawer_buffer_t,
15559            vbuffer: *const tm_primitive_drawer_buffer_t,
15560            shader: *mut tm_shader_o,
15561            shader_context: *const tm_shader_system_context_o,
15562            sort_key: u64,
15563            res_buf: *mut tm_renderer_resource_command_buffer_o,
15564            cmd_buf: *mut tm_renderer_command_buffer_o,
15565        ),
15566    >,
15567}
15568pub const TM_TT_PROP__RENDER_COMPONENT__CREATION_GRAPH: ::std::os::raw::c_int = 0;
15569pub type _bindgen_ty_178 = ::std::os::raw::c_int;
15570#[repr(C)]
15571#[derive(Copy, Clone)]
15572pub struct tm_render_component_public_t {
15573    pub update_shader_variables: bool,
15574}
15575#[repr(C)]
15576#[derive(Copy, Clone)]
15577pub struct tm_render_component_api {
15578    pub draw_call: ::std::option::Option<
15579        unsafe extern "C" fn(
15580            c: *mut tm_render_component_public_t,
15581            name: u64,
15582        ) -> *const tm_creation_graph_draw_call_data_t,
15583    >,
15584}
15585pub const TM_TT_PROP__SKINNING_COMPONENT__BONES: ::std::os::raw::c_int = 0;
15586pub type _bindgen_ty_179 = ::std::os::raw::c_int;
15587#[repr(C)]
15588#[derive(Copy, Clone)]
15589pub struct tm_bone_t {
15590    pub name: u64,
15591    pub bone_idx: u32,
15592    pub inverse_bind: tm_transform_t,
15593    pub _padding_29: [::std::os::raw::c_char; 4usize],
15594}
15595#[repr(C)]
15596#[derive(Copy, Clone)]
15597pub struct tm_skinning_component_api {
15598    pub update_system: ::std::option::Option<
15599        unsafe extern "C" fn(
15600            ctx: *mut tm_entity_context_o,
15601            entity: tm_entity_t,
15602            component: *mut ::std::os::raw::c_void,
15603            entity_transform: *const tm_mat44_t,
15604            res_buf: *mut tm_renderer_resource_command_buffer_o,
15605            device_affinity_mask: u32,
15606            system: *mut tm_component_shader_system_t,
15607        ) -> bool,
15608    >,
15609}
15610pub const TM_TT_PROP__SCULPT_COMPONENT__VISIBILITY_FLAGS: ::std::os::raw::c_int = 0;
15611pub const TM_TT_PROP__SCULPT_COMPONENT__NUM_BOXES: ::std::os::raw::c_int = 1;
15612pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_POS: ::std::os::raw::c_int = 2;
15613pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_ROT: ::std::os::raw::c_int = 3;
15614pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_SIZE: ::std::os::raw::c_int = 4;
15615pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_COLOR: ::std::os::raw::c_int = 5;
15616pub const TM_TT_PROP__SCULPT_COMPONENT__BOXES_PARENT: ::std::os::raw::c_int = 6;
15617pub const TM_TT_PROP__SCULPT_COMPONENT__SELECTION: ::std::os::raw::c_int = 7;
15618pub const TM_TT_PROP__SCULPT_COMPONENT__DRAW_COLOR: ::std::os::raw::c_int = 8;
15619pub type _bindgen_ty_180 = ::std::os::raw::c_int;
15620pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__INDICES: ::std::os::raw::c_int = 0;
15621pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__POSITION: ::std::os::raw::c_int = 1;
15622pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__ROTATION: ::std::os::raw::c_int = 2;
15623pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__EXTENT: ::std::os::raw::c_int = 3;
15624pub const TM_TT_PROP__SCULPT_COMPONENT_SELECTION__COLOR: ::std::os::raw::c_int = 4;
15625pub type _bindgen_ty_181 = ::std::os::raw::c_int;
15626pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__MOVE:
15627    tm_sculpt_component__select_sub_tool = 0;
15628pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__ROTATE:
15629    tm_sculpt_component__select_sub_tool = 1;
15630pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__SCALE:
15631    tm_sculpt_component__select_sub_tool = 2;
15632pub const tm_sculpt_component__select_sub_tool_TM_SCULPT_COMPONENT__SELECT_SUB_TOOL__COUNT:
15633    tm_sculpt_component__select_sub_tool = 3;
15634pub type tm_sculpt_component__select_sub_tool = ::std::os::raw::c_int;
15635#[repr(C)]
15636#[derive(Copy, Clone)]
15637pub struct tm_sculpt_component__select_tool_settings_t {
15638    pub sub_tool: tm_sculpt_component__select_sub_tool,
15639    pub _padding_62: [::std::os::raw::c_char; 4usize],
15640    pub move_settings: *const tm_gizmo__move_settings_t,
15641    pub rotate_settings: *const tm_gizmo__rotate_settings_t,
15642    pub scale_settings: *const tm_gizmo__scale_settings_t,
15643}
15644#[repr(C)]
15645#[derive(Copy, Clone)]
15646pub struct tm_sculpt_component__select_tool_results_t {
15647    pub gizmo_showing: bool,
15648    pub _padding_77: [::std::os::raw::c_char; 3usize],
15649    pub gizmo_pos: tm_vec3_t,
15650}
15651#[repr(C)]
15652#[derive(Copy, Clone)]
15653pub struct tm_sculpt_component_api {
15654    pub box_place_tool: ::std::option::Option<
15655        unsafe extern "C" fn(
15656            ctx: *mut tm_entity_context_o,
15657            e: tm_entity_t,
15658            ui: *mut tm_ui_o,
15659            uistyle: *const tm_ui_style_t,
15660            viewport_rect: tm_rect_t,
15661            viewport_id: u64,
15662            camera: *const tm_camera_t,
15663            undo_stack: *mut tm_undo_stack_i,
15664        ),
15665    >,
15666    pub box_drag_tool: ::std::option::Option<
15667        unsafe extern "C" fn(
15668            ctx: *mut tm_entity_context_o,
15669            e: tm_entity_t,
15670            ui: *mut tm_ui_o,
15671            uistyle: *const tm_ui_style_t,
15672            viewport_rect: tm_rect_t,
15673            viewport_id: u64,
15674            camera: *const tm_camera_t,
15675            pbuffer: *mut tm_primitive_drawer_buffer_t,
15676            vbuffer: *mut tm_primitive_drawer_buffer_t,
15677            move_settings: *const tm_gizmo__move_settings_t,
15678            undo_stack: *mut tm_undo_stack_i,
15679        ),
15680    >,
15681    pub box_select_tool: ::std::option::Option<
15682        unsafe extern "C" fn(
15683            ctx: *mut tm_entity_context_o,
15684            e: tm_entity_t,
15685            ui: *mut tm_ui_o,
15686            uistyle: *const tm_ui_style_t,
15687            viewport_rect: tm_rect_t,
15688            viewport_id: u64,
15689            tab_id: u64,
15690            camera: *const tm_camera_t,
15691            pbuffer: *mut tm_primitive_drawer_buffer_t,
15692            vbuffer: *mut tm_primitive_drawer_buffer_t,
15693            settings: *const tm_sculpt_component__select_tool_settings_t,
15694            undo_stack: *mut tm_undo_stack_i,
15695        ) -> tm_sculpt_component__select_tool_results_t,
15696    >,
15697}
15698pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_BOOL: tm_shader_constant_type = 0;
15699pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_INT: tm_shader_constant_type = 1;
15700pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_UINT: tm_shader_constant_type = 2;
15701pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_HALF: tm_shader_constant_type = 3;
15702pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_FLOAT: tm_shader_constant_type = 4;
15703pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_DOUBLE: tm_shader_constant_type = 5;
15704pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_STRUCT: tm_shader_constant_type = 6;
15705pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_DEPTH: tm_shader_constant_type = 7;
15706pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_STENCIL_REF: tm_shader_constant_type = 8;
15707pub const tm_shader_constant_type_TM_SHADER_CONSTANT_TYPE_MAX_TYPES: tm_shader_constant_type = 9;
15708pub type tm_shader_constant_type = ::std::os::raw::c_int;
15709#[repr(C)]
15710#[derive(Copy, Clone)]
15711pub struct tm_shader_constant_t {
15712    pub __bindgen_anon_1: tm_shader_constant_t__bindgen_ty_1,
15713    pub type_: tm_shader_constant_type,
15714    pub __bindgen_anon_2: tm_shader_constant_t__bindgen_ty_2,
15715    pub elements: u32,
15716    pub _padding_38: [::std::os::raw::c_char; 4usize],
15717}
15718#[repr(C)]
15719#[derive(Copy, Clone)]
15720pub union tm_shader_constant_t__bindgen_ty_1 {
15721    pub name: *const ::std::os::raw::c_char,
15722    pub hashed_name: u64,
15723    _bindgen_union_align: u64,
15724}
15725#[repr(C)]
15726#[derive(Copy, Clone)]
15727pub union tm_shader_constant_t__bindgen_ty_2 {
15728    pub __bindgen_anon_1: tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1,
15729    pub struct_size: u32,
15730    _bindgen_union_align: u32,
15731}
15732#[repr(C)]
15733#[derive(Copy, Clone)]
15734pub struct tm_shader_constant_t__bindgen_ty_2__bindgen_ty_1 {
15735    pub rows: u8,
15736    pub columns: u8,
15737}
15738pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_BUFFER: tm_shader_resource_type = 0;
15739pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_1D: tm_shader_resource_type = 1;
15740pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_2D: tm_shader_resource_type = 2;
15741pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_3D: tm_shader_resource_type = 3;
15742pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_CUBE: tm_shader_resource_type = 4;
15743pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_1D_ARRAY:
15744    tm_shader_resource_type = 5;
15745pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_2D_ARRAY:
15746    tm_shader_resource_type = 6;
15747pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_TEXTURE_CUBE_ARRAY:
15748    tm_shader_resource_type = 7;
15749pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_SAMPLER: tm_shader_resource_type = 8;
15750pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_SAMPLER_COMPARISON:
15751    tm_shader_resource_type = 9;
15752pub const tm_shader_resource_type_TM_SHADER_RESOURCE_TYPE_MAX_TYPES: tm_shader_resource_type = 10;
15753pub type tm_shader_resource_type = ::std::os::raw::c_int;
15754#[repr(C)]
15755#[derive(Copy, Clone)]
15756pub struct tm_shader_resource_t {
15757    pub __bindgen_anon_1: tm_shader_resource_t__bindgen_ty_1,
15758    pub element_type: *const ::std::os::raw::c_char,
15759    pub static_resource_name: *const ::std::os::raw::c_char,
15760    pub static_resource: u32,
15761    pub elements: u32,
15762    pub type_: tm_shader_resource_type,
15763    pub requested_view_aspect: u8,
15764    pub uav: bool,
15765    pub _padding_71: [::std::os::raw::c_char; 2usize],
15766}
15767#[repr(C)]
15768#[derive(Copy, Clone)]
15769pub union tm_shader_resource_t__bindgen_ty_1 {
15770    pub name: *const ::std::os::raw::c_char,
15771    pub hashed_name: u64,
15772    _bindgen_union_align: u64,
15773}
15774pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_POSITION:
15775    tm_shader_system_semantic_type = 0;
15776pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_DISPATCH_THREAD_ID:
15777    tm_shader_system_semantic_type = 1;
15778pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_GROUP_ID:
15779    tm_shader_system_semantic_type = 2;
15780pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_GROUP_INDEX:
15781    tm_shader_system_semantic_type = 3;
15782pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_GROUP_THREAD_ID:
15783    tm_shader_system_semantic_type = 4;
15784pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_INSTANCE_ID:
15785    tm_shader_system_semantic_type = 5;
15786pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_PRIMITIVE_ID:
15787    tm_shader_system_semantic_type = 6;
15788pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_VERTEX_ID:
15789    tm_shader_system_semantic_type = 7;
15790pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_IS_FRONT_FACE_ID:
15791    tm_shader_system_semantic_type = 8;
15792pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_OUTPUT_CONTROL_POINT_ID:
15793    tm_shader_system_semantic_type = 9;
15794pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_DOMAIN_LOCATION:
15795    tm_shader_system_semantic_type = 10;
15796pub const tm_shader_system_semantic_type_TM_SHADER_SYSTEM_SEMANTIC_MAX_SEMANTICS:
15797    tm_shader_system_semantic_type = 11;
15798pub type tm_shader_system_semantic_type = ::std::os::raw::c_int;
15799pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_LINEAR:
15800    tm_shader_interpolation_modifier_type = 0;
15801pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_CENTROID:
15802    tm_shader_interpolation_modifier_type = 1;
15803pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_NOINTERPOLATION:
15804    tm_shader_interpolation_modifier_type = 2;
15805pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_NOPERSPECTIVE:
15806    tm_shader_interpolation_modifier_type = 3;
15807pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_SAMPLE:
15808    tm_shader_interpolation_modifier_type = 4;
15809pub const tm_shader_interpolation_modifier_type_TM_SHADER_INTERPOLATION_MODIFIER_MAX_MODIFIERS:
15810    tm_shader_interpolation_modifier_type = 5;
15811pub type tm_shader_interpolation_modifier_type = ::std::os::raw::c_int;
15812#[repr(C)]
15813#[derive(Copy, Clone)]
15814pub struct tm_shader_stage_export_t {
15815    pub requested: bool,
15816    pub _padding_101: [::std::os::raw::c_char; 7usize],
15817    pub constant: tm_shader_constant_t,
15818    pub interpolation_modifier: u32,
15819    pub _padding_104: [::std::os::raw::c_char; 4usize],
15820}
15821pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_TRIANGLE:
15822    tm_shader_tess_attribute_domain = 0;
15823pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_QUAD:
15824    tm_shader_tess_attribute_domain = 1;
15825pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_ISOLINE:
15826    tm_shader_tess_attribute_domain = 2;
15827pub const tm_shader_tess_attribute_domain_TM_SHADER_TESS_ATTRIBUTE_DOMAIN_VALUE_MAX_VALUES:
15828    tm_shader_tess_attribute_domain = 3;
15829pub type tm_shader_tess_attribute_domain = ::std::os::raw::c_int;
15830pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_POINT:
15831    tm_shader_hull_attribute_output_topology = 0;
15832pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_LINE:
15833    tm_shader_hull_attribute_output_topology = 1;
15834pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_TRIANGLE_CW : tm_shader_hull_attribute_output_topology = 2 ;
15835pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_TRIANGLE_CCW : tm_shader_hull_attribute_output_topology = 3 ;
15836pub const tm_shader_hull_attribute_output_topology_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_VALUE_MAX_VALUES : tm_shader_hull_attribute_output_topology = 4 ;
15837pub type tm_shader_hull_attribute_output_topology = ::std::os::raw::c_int;
15838pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_INTEGER : tm_shader_hull_attribute_partitioning = 0 ;
15839pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_FRACTIONAL_EVEN : tm_shader_hull_attribute_partitioning = 1 ;
15840pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_FRACTIONAL_ODD : tm_shader_hull_attribute_partitioning = 2 ;
15841pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_POW2:
15842    tm_shader_hull_attribute_partitioning = 3;
15843pub const tm_shader_hull_attribute_partitioning_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING_VALUE_MAX_VALUES : tm_shader_hull_attribute_partitioning = 4 ;
15844pub type tm_shader_hull_attribute_partitioning = ::std::os::raw::c_int;
15845pub const tm_shader_attribute_type_TM_SHADER_GEOMETRY_ATTRIBUTE_INSTANCE: tm_shader_attribute_type =
15846    0;
15847pub const tm_shader_attribute_type_TM_SHADER_TESS_ATTRIBUTE_DOMAIN: tm_shader_attribute_type = 1;
15848pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_MAX_TESS_FACTOR:
15849    tm_shader_attribute_type = 2;
15850pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_CONTROL_POINTS:
15851    tm_shader_attribute_type = 3;
15852pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_OUTPUT_TOPOLOGY:
15853    tm_shader_attribute_type = 4;
15854pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_PARTITIONING: tm_shader_attribute_type =
15855    5;
15856pub const tm_shader_attribute_type_TM_SHADER_HULL_ATTRIBUTE_PATCH_CONSTANT_FUNCTION:
15857    tm_shader_attribute_type = 6;
15858pub const tm_shader_attribute_type_TM_SHADER_PIXEL_ATTRIBUTE_EARLY_DEPTH_STENCIL:
15859    tm_shader_attribute_type = 7;
15860pub const tm_shader_attribute_type_TM_SHADER_COMPUTE_ATTRIBUTE_NUM_THREADS:
15861    tm_shader_attribute_type = 8;
15862pub const tm_shader_attribute_type_TM_SHADER_ATTRIBUTE_MAX_ATTRIBUTES: tm_shader_attribute_type = 9;
15863pub type tm_shader_attribute_type = ::std::os::raw::c_int;
15864#[repr(C)]
15865#[derive(Copy, Clone)]
15866pub struct tm_shader_stage_attribute_t {
15867    pub type_: tm_shader_attribute_type,
15868    pub _padding_170: [::std::os::raw::c_char; 4usize],
15869    pub __bindgen_anon_1: tm_shader_stage_attribute_t__bindgen_ty_1,
15870}
15871#[repr(C)]
15872#[derive(Copy, Clone)]
15873pub union tm_shader_stage_attribute_t__bindgen_ty_1 {
15874    pub boolean: bool,
15875    pub values: [u32; 4usize],
15876    pub value: u32,
15877    _bindgen_union_align: [u32; 4usize],
15878}
15879extern "C" {
15880    pub static tm_shader_constant_type_to_bytes: [u32; 9usize];
15881}
15882#[repr(C)]
15883#[derive(Copy, Clone)]
15884pub union tm_shader_system_cl_type_t {
15885    pub uint64: u64,
15886    pub boolean: bool,
15887    _bindgen_union_align: u64,
15888}
15889#[repr(C)]
15890#[derive(Copy, Clone)]
15891pub struct tm_shader_system_io_o {
15892    _unused: [u8; 0],
15893}
15894#[repr(C)]
15895#[derive(Copy, Clone)]
15896pub struct tm_shader_blob_header_t {
15897    _unused: [u8; 0],
15898}
15899#[repr(C)]
15900#[derive(Copy, Clone)]
15901pub struct tm_creation_graph_update_shader_constant_resource_t {
15902    pub draw_calls: *const tm_creation_graph_output_t,
15903    pub cbuffers: *const tm_shader_constant_buffer_instance_t,
15904    pub io_interface: tm_tt_id_t,
15905    pub entity_id: u64,
15906    pub entity_ctx: *mut tm_entity_context_o,
15907}
15908#[repr(C)]
15909#[derive(Copy, Clone)]
15910pub struct tm_shader_declaration_o {
15911    _unused: [u8; 0],
15912}
15913pub const TM_SHADER_STAGE_VERTEX: ::std::os::raw::c_int = 1;
15914pub const TM_SHADER_STAGE_HULL: ::std::os::raw::c_int = 2;
15915pub const TM_SHADER_STAGE_DOMAIN: ::std::os::raw::c_int = 4;
15916pub const TM_SHADER_STAGE_GEOMETRY: ::std::os::raw::c_int = 8;
15917pub const TM_SHADER_STAGE_PIXEL: ::std::os::raw::c_int = 16;
15918pub const TM_SHADER_STAGE_COMPUTE: ::std::os::raw::c_int = 32;
15919pub const TM_SHADER_STAGE_ALL: ::std::os::raw::c_int = 63;
15920pub const TM_SHADER_STAGE_MAX_STAGES: ::std::os::raw::c_int = 6;
15921pub type _bindgen_ty_182 = ::std::os::raw::c_int;
15922pub const TM_SHADER_SYSTEM_MAX_PASSES: ::std::os::raw::c_int = 16;
15923pub type _bindgen_ty_183 = ::std::os::raw::c_int;
15924#[repr(C)]
15925#[derive(Copy, Clone)]
15926pub struct tm_shader_declaration_api {
15927    pub clear: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_declaration_o)>,
15928    pub append_render_states: ::std::option::Option<
15929        unsafe extern "C" fn(
15930            inst: *mut tm_shader_declaration_o,
15931            block_type: u32,
15932            states: *const tm_renderer_state_value_pair_t,
15933            num_states: u32,
15934        ),
15935    >,
15936    pub append_serialized_render_states: ::std::option::Option<
15937        unsafe extern "C" fn(inst: *mut tm_shader_declaration_o, block_type: u32, data: *const u8),
15938    >,
15939    pub append_static_sampler_states: ::std::option::Option<
15940        unsafe extern "C" fn(
15941            inst: *mut tm_shader_declaration_o,
15942            state_block_name_hash: u64,
15943            states: *const tm_renderer_state_value_pair_t,
15944            num_states: u32,
15945        ),
15946    >,
15947    pub request_channel: ::std::option::Option<
15948        unsafe extern "C" fn(
15949            inst: *mut tm_shader_declaration_o,
15950            stage_flag: u32,
15951            channel_name: *const ::std::os::raw::c_char,
15952        ),
15953    >,
15954    pub set_constant: ::std::option::Option<
15955        unsafe extern "C" fn(inst: *mut tm_shader_declaration_o, constant: tm_shader_constant_t),
15956    >,
15957    pub set_resource: ::std::option::Option<
15958        unsafe extern "C" fn(inst: *mut tm_shader_declaration_o, resource: tm_shader_resource_t),
15959    >,
15960    pub set_stage_export: ::std::option::Option<
15961        unsafe extern "C" fn(
15962            inst: *mut tm_shader_declaration_o,
15963            stage_flag: u32,
15964            stage_export: tm_shader_stage_export_t,
15965        ),
15966    >,
15967    pub set_stage_system_semantic_import: ::std::option::Option<
15968        unsafe extern "C" fn(
15969            inst: *mut tm_shader_declaration_o,
15970            stage_flag: u32,
15971            type_: tm_shader_system_semantic_type,
15972        ),
15973    >,
15974    pub set_stage_system_semantic_export: ::std::option::Option<
15975        unsafe extern "C" fn(
15976            inst: *mut tm_shader_declaration_o,
15977            stage_flag: u32,
15978            type_: tm_shader_system_semantic_type,
15979        ),
15980    >,
15981    pub set_stage_attribute: ::std::option::Option<
15982        unsafe extern "C" fn(
15983            inst: *mut tm_shader_declaration_o,
15984            stage_flag: u32,
15985            attr: tm_shader_stage_attribute_t,
15986        ),
15987    >,
15988    pub append_patch_code: ::std::option::Option<
15989        unsafe extern "C" fn(
15990            inst: *mut tm_shader_declaration_o,
15991            domain: u32,
15992            code: *const ::std::os::raw::c_char,
15993            source_file: *const ::std::os::raw::c_char,
15994            source_line: u32,
15995        ),
15996    >,
15997    pub append_code: ::std::option::Option<
15998        unsafe extern "C" fn(
15999            inst: *mut tm_shader_declaration_o,
16000            stage_flag: u32,
16001            code: *const ::std::os::raw::c_char,
16002            source_file: *const ::std::os::raw::c_char,
16003            source_line: u32,
16004        ),
16005    >,
16006    pub append_common_code: ::std::option::Option<
16007        unsafe extern "C" fn(
16008            inst: *mut tm_shader_declaration_o,
16009            code: *const ::std::os::raw::c_char,
16010            source_file: *const ::std::os::raw::c_char,
16011            source_line: u32,
16012        ),
16013    >,
16014}
16015#[repr(C)]
16016#[derive(Copy, Clone)]
16017pub struct tm_shader_system_api {
16018    pub create_context: ::std::option::Option<
16019        unsafe extern "C" fn(
16020            allocator: *mut tm_allocator_i,
16021            render_graph: *mut tm_render_graph_o,
16022        ) -> *mut tm_shader_system_context_o,
16023    >,
16024    pub clone_context: ::std::option::Option<
16025        unsafe extern "C" fn(
16026            src_context: *const tm_shader_system_context_o,
16027            allocator: *mut tm_allocator_i,
16028        ) -> *mut tm_shader_system_context_o,
16029    >,
16030    pub destroy_context:
16031        ::std::option::Option<unsafe extern "C" fn(context: *mut tm_shader_system_context_o)>,
16032    pub set_render_graph: ::std::option::Option<
16033        unsafe extern "C" fn(
16034            context: *mut tm_shader_system_context_o,
16035            render_graph: *mut tm_render_graph_o,
16036        ),
16037    >,
16038    pub activate_system: ::std::option::Option<
16039        unsafe extern "C" fn(
16040            context: *mut tm_shader_system_context_o,
16041            system: *mut tm_shader_system_o,
16042            cbuffer_instances: *const tm_shader_constant_buffer_instance_t,
16043            num_cbuffer_instances: u32,
16044            rbinder_instances: *const tm_shader_resource_binder_instance_t,
16045            num_rbinder_instances: u32,
16046        ),
16047    >,
16048    pub deactivate_system: ::std::option::Option<
16049        unsafe extern "C" fn(
16050            context: *mut tm_shader_system_context_o,
16051            system: *mut tm_shader_system_o,
16052        ),
16053    >,
16054}
16055pub const TM_SHADER_SYSTEM_UNINITIALIZED_INSTANCE: ::std::os::raw::c_int = -1;
16056pub type _bindgen_ty_184 = ::std::os::raw::c_int;
16057#[repr(C)]
16058#[derive(Copy, Clone)]
16059pub struct tm_shader_constant_buffer_instance_t {
16060    pub instance_id: u32,
16061}
16062#[repr(C)]
16063#[derive(Copy, Clone)]
16064pub struct tm_shader_resource_binder_instance_t {
16065    pub instance_id: u32,
16066}
16067#[repr(C)]
16068#[derive(Copy, Clone)]
16069pub struct tm_shader_constant_update_t {
16070    pub instance_id: u32,
16071    pub constant_offset: u32,
16072    pub first_byte: u32,
16073    pub num_bytes: u32,
16074    pub data: *const ::std::os::raw::c_void,
16075}
16076#[repr(C)]
16077#[derive(Copy, Clone)]
16078pub struct tm_shader_resource_update_t {
16079    pub instance_id: u32,
16080    pub resource_slot: u32,
16081    pub first_resource: u32,
16082    pub num_resources: u32,
16083    pub resources: *const u32,
16084    pub resources_view_aspect_flags: *const u32,
16085}
16086#[repr(C)]
16087#[derive(Copy, Clone)]
16088pub struct tm_shader_io_o {
16089    _unused: [u8; 0],
16090}
16091#[repr(C)]
16092#[derive(Copy, Clone)]
16093pub struct tm_shader_api {
16094    pub create_constant_buffer_instances: ::std::option::Option<
16095        unsafe extern "C" fn(
16096            io: *mut tm_shader_io_o,
16097            num_instances: u32,
16098            result: *mut tm_shader_constant_buffer_instance_t,
16099        ),
16100    >,
16101    pub create_constant_buffer_instances_from_template: ::std::option::Option<
16102        unsafe extern "C" fn(
16103            io: *mut tm_shader_io_o,
16104            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
16105            num_instances: u32,
16106            result: *mut tm_shader_constant_buffer_instance_t,
16107            cbuf_template: tm_shader_constant_buffer_instance_t,
16108        ),
16109    >,
16110    pub destroy_constant_buffer_instances: ::std::option::Option<
16111        unsafe extern "C" fn(
16112            io: *mut tm_shader_io_o,
16113            instances: *mut tm_shader_constant_buffer_instance_t,
16114            num_instances: u32,
16115        ),
16116    >,
16117    pub create_resource_binder_instances: ::std::option::Option<
16118        unsafe extern "C" fn(
16119            io: *mut tm_shader_io_o,
16120            num_instances: u32,
16121            result: *mut tm_shader_resource_binder_instance_t,
16122        ),
16123    >,
16124    pub destroy_resource_binder_instances: ::std::option::Option<
16125        unsafe extern "C" fn(
16126            io: *mut tm_shader_io_o,
16127            instances: *mut tm_shader_resource_binder_instance_t,
16128            num_instances: u32,
16129        ),
16130    >,
16131    pub reflect_constants: ::std::option::Option<
16132        unsafe extern "C" fn(
16133            io: *mut tm_shader_io_o,
16134            num_constants: *mut u32,
16135            constants: *mut tm_shader_constant_t,
16136            constant_offsets: *mut u32,
16137        ),
16138    >,
16139    pub lookup_constant: ::std::option::Option<
16140        unsafe extern "C" fn(
16141            io: *mut tm_shader_io_o,
16142            name: u64,
16143            constant: *mut tm_shader_constant_t,
16144            constant_offset: *mut u32,
16145        ) -> bool,
16146    >,
16147    pub update_constants: ::std::option::Option<
16148        unsafe extern "C" fn(
16149            io: *mut tm_shader_io_o,
16150            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
16151            constant_updates: *const tm_shader_constant_update_t,
16152            num_updates: u32,
16153        ),
16154    >,
16155    pub update_constants_raw: ::std::option::Option<
16156        unsafe extern "C" fn(
16157            io: *mut tm_shader_io_o,
16158            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
16159            instance_ids: *const u32,
16160            data: *mut *const ::std::os::raw::c_void,
16161            offset: u32,
16162            size: u32,
16163            num_updates: u32,
16164        ),
16165    >,
16166    pub update_constant_buffer_instances_from_template: ::std::option::Option<
16167        unsafe extern "C" fn(
16168            io: *mut tm_shader_io_o,
16169            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
16170            num_instances: u32,
16171            instances: *mut tm_shader_constant_buffer_instance_t,
16172            cbuf_template: tm_shader_constant_buffer_instance_t,
16173        ),
16174    >,
16175    pub reflect_resources: ::std::option::Option<
16176        unsafe extern "C" fn(
16177            io: *mut tm_shader_io_o,
16178            num_resources: *mut u32,
16179            resources: *mut tm_shader_resource_t,
16180            resource_slots: *mut u32,
16181        ),
16182    >,
16183    pub lookup_resource: ::std::option::Option<
16184        unsafe extern "C" fn(
16185            io: *mut tm_shader_io_o,
16186            name: u64,
16187            resource: *mut tm_shader_resource_t,
16188            resource_slot: *mut u32,
16189        ) -> bool,
16190    >,
16191    pub update_resources: ::std::option::Option<
16192        unsafe extern "C" fn(
16193            io: *mut tm_shader_io_o,
16194            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
16195            resource_updates: *mut tm_shader_resource_update_t,
16196            num_updates: u32,
16197        ),
16198    >,
16199    pub max_passes: ::std::option::Option<unsafe extern "C" fn(shader: *mut tm_shader_o) -> u8>,
16200    pub assemble_shader_infos: ::std::option::Option<
16201        unsafe extern "C" fn(
16202            shader: *mut tm_shader_o,
16203            state_override_blocks: *const u32,
16204            num_state_override_blocks: u32,
16205            context: *const tm_shader_system_context_o,
16206            visibility_context: u64,
16207            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
16208            cbuf_instances: *const tm_shader_constant_buffer_instance_t,
16209            rbinder_instances: *const tm_shader_resource_binder_instance_t,
16210            num_shaders: u32,
16211            results: *mut tm_renderer_shader_info_t,
16212        ) -> u8,
16213    >,
16214    pub shader_io: ::std::option::Option<
16215        unsafe extern "C" fn(shader: *mut tm_shader_o) -> *mut tm_shader_io_o,
16216    >,
16217    pub system_io: ::std::option::Option<
16218        unsafe extern "C" fn(system: *mut tm_shader_system_o) -> *mut tm_shader_io_o,
16219    >,
16220    pub name: ::std::option::Option<unsafe extern "C" fn(shader: *mut tm_shader_o) -> u64>,
16221}
16222pub const tm_shader_state_overrides_TM_SHADER_STATE_OVERRIDE_DOUBLE_SIDED:
16223    tm_shader_state_overrides = 0;
16224pub const tm_shader_state_overrides_TM_SHADER_STATE_OVERRIDE_FRONT_FACE_CW:
16225    tm_shader_state_overrides = 1;
16226pub const tm_shader_state_overrides_TM_SHADER_STATE_OVERRIDE_MAX_SHADER_STATE_OVERRIDES:
16227    tm_shader_state_overrides = 2;
16228pub type tm_shader_state_overrides = ::std::os::raw::c_int;
16229pub const tm_shader_system_background_status_TM_SHADER_SYSTEM_BACKGROUND_CREATE_STATUS_SUCCESS:
16230    tm_shader_system_background_status = 0;
16231pub const tm_shader_system_background_status_TM_SHADER_SYSTEM_BACKGROUND_CREATE_STATUS_CANCEL:
16232    tm_shader_system_background_status = 1;
16233pub const tm_shader_system_background_status_TM_SHADER_SYSTEM_BACKGROUND_CREATE_STATUS_ERROR:
16234    tm_shader_system_background_status = 2;
16235pub type tm_shader_system_background_status = ::std::os::raw::c_int;
16236#[repr(C)]
16237#[derive(Copy, Clone)]
16238pub struct tm_shader_system_background_create_i {
16239    pub user_data: *mut ::std::os::raw::c_void,
16240    pub done: ::std::option::Option<
16241        unsafe extern "C" fn(
16242            status: tm_shader_system_background_status,
16243            blob: *const tm_shader_blob_header_t,
16244            blob_size: u64,
16245            user_data: *mut ::std::os::raw::c_void,
16246        ),
16247    >,
16248}
16249#[repr(C)]
16250#[derive(Copy, Clone)]
16251pub struct tm_shader_repository_api {
16252    pub create: ::std::option::Option<
16253        unsafe extern "C" fn(
16254            system_io: *mut tm_shader_system_io_o,
16255            a: *mut tm_allocator_i,
16256            backend: *mut tm_renderer_backend_i,
16257            shader_compiler_api: *mut tm_renderer_shader_compiler_api,
16258            tt: *mut tm_the_truth_o,
16259        ) -> *mut tm_shader_repository_o,
16260    >,
16261    pub destroy: ::std::option::Option<
16262        unsafe extern "C" fn(
16263            inst: *mut tm_shader_repository_o,
16264            resource_buffer: *mut tm_renderer_resource_command_buffer_o,
16265        ),
16266    >,
16267    pub set_the_truth: ::std::option::Option<
16268        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, tt: *mut tm_the_truth_o),
16269    >,
16270    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
16271    pub import_truth_declaration_from_config: ::std::option::Option<
16272        unsafe extern "C" fn(
16273            inst: *mut tm_shader_repository_o,
16274            config: *const tm_config_i,
16275            pi: *const tm_json_parse_info_t,
16276            name: u64,
16277            validity_hash: u64,
16278            time_stamp: *const tm_file_time_o,
16279            filename: *const ::std::os::raw::c_char,
16280        ) -> tm_tt_id_t,
16281    >,
16282    pub destroy_truth_declaration:
16283        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64)>,
16284    pub lookup_truth_declaration: ::std::option::Option<
16285        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64) -> tm_tt_id_t,
16286    >,
16287    pub lookup_declaration_validity_hash: ::std::option::Option<
16288        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, id: tm_tt_id_t) -> u64,
16289    >,
16290    pub load_shader_declaration: ::std::option::Option<
16291        unsafe extern "C" fn(
16292            inst: *mut tm_shader_repository_o,
16293            declaration: *mut tm_shader_declaration_o,
16294            id: tm_tt_id_t,
16295        ),
16296    >,
16297    pub last_modified: ::std::option::Option<
16298        unsafe extern "C" fn(
16299            inst: *mut tm_shader_repository_o,
16300            id: tm_tt_id_t,
16301            modified: *mut tm_file_time_o,
16302        ),
16303    >,
16304    pub host_save_state: ::std::option::Option<
16305        unsafe extern "C" fn(
16306            inst: *mut tm_shader_repository_o,
16307            carray: *mut *mut ::std::os::raw::c_char,
16308            a: *mut tm_allocator_i,
16309        ),
16310    >,
16311    pub client_load_state: ::std::option::Option<
16312        unsafe extern "C" fn(
16313            inst: *mut tm_shader_repository_o,
16314            tt: *mut tm_the_truth_o,
16315            state: *mut *const ::std::os::raw::c_char,
16316        ),
16317    >,
16318    pub create_shader_declaration: ::std::option::Option<
16319        unsafe extern "C" fn(
16320            inst: *mut tm_shader_repository_o,
16321            a: *mut tm_allocator_i,
16322        ) -> *mut tm_shader_declaration_o,
16323    >,
16324    pub destroy_shader_declaration: ::std::option::Option<
16325        unsafe extern "C" fn(
16326            inst: *mut tm_shader_repository_o,
16327            declaration: *mut tm_shader_declaration_o,
16328        ),
16329    >,
16330    pub generate_system_includes: ::std::option::Option<
16331        unsafe extern "C" fn(
16332            inst: *mut tm_shader_repository_o,
16333            output_path: *const ::std::os::raw::c_char,
16334        ),
16335    >,
16336    pub update_shaders_from_directory: ::std::option::Option<
16337        unsafe extern "C" fn(
16338            inst: *mut tm_shader_repository_o,
16339            dir: *const ::std::os::raw::c_char,
16340            recursive: bool,
16341            allocator: *mut tm_allocator_i,
16342            res_buf: *mut tm_renderer_resource_command_buffer_o,
16343        ),
16344    >,
16345    pub allocator: ::std::option::Option<
16346        unsafe extern "C" fn(inst: *mut tm_shader_repository_o) -> *mut tm_allocator_i,
16347    >,
16348    pub refresh_truth_shaders:
16349        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o)>,
16350    pub lookup_or_create_shader: ::std::option::Option<
16351        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64) -> *mut tm_shader_o,
16352    >,
16353    pub lookup_or_create_system: ::std::option::Option<
16354        unsafe extern "C" fn(
16355            inst: *mut tm_shader_repository_o,
16356            name: u64,
16357        ) -> *mut tm_shader_system_o,
16358    >,
16359    pub create_shader_from_blob: ::std::option::Option<
16360        unsafe extern "C" fn(
16361            inst: *mut tm_shader_repository_o,
16362            res_buf: *mut tm_renderer_resource_command_buffer_o,
16363            shader_blob: *const tm_shader_blob_header_t,
16364        ) -> *mut tm_shader_o,
16365    >,
16366    pub compile_shader: ::std::option::Option<
16367        unsafe extern "C" fn(
16368            inst: *mut tm_shader_repository_o,
16369            res_buf: *mut tm_renderer_resource_command_buffer_o,
16370            shader: *mut tm_shader_o,
16371            active_shader_stages: u32,
16372            active_systems_bitmask: u64,
16373            active_system_names: *const u64,
16374            active_systems: *mut *const tm_shader_declaration_o,
16375            num_active_systems: u32,
16376            declarations: *mut *const tm_shader_declaration_o,
16377            num_declarations: u32,
16378            validity_hash: u64,
16379        ) -> bool,
16380    >,
16381    pub create_from_declaration: ::std::option::Option<
16382        unsafe extern "C" fn(
16383            inst: *mut tm_shader_repository_o,
16384            res_buf: *mut tm_renderer_resource_command_buffer_o,
16385            declaration: tm_tt_id_t,
16386            name: u64,
16387            generated_code: *mut tm_shader_declaration_o,
16388            creation_graph_data: *const tm_shader_creation_graph_data_o,
16389        ) -> bool,
16390    >,
16391    pub background_create_from_declaration: ::std::option::Option<
16392        unsafe extern "C" fn(
16393            inst: *mut tm_shader_repository_o,
16394            declaration: tm_tt_id_t,
16395            name: u64,
16396            generated_code: *mut tm_shader_declaration_o,
16397            creation_graph_data: *const tm_shader_creation_graph_data_o,
16398            callback: *const tm_shader_system_background_create_i,
16399        ),
16400    >,
16401    pub destroy_shader:
16402        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64)>,
16403    pub destroy_system:
16404        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64)>,
16405    pub lookup_shader: ::std::option::Option<
16406        unsafe extern "C" fn(inst: *mut tm_shader_repository_o, name: u64) -> *mut tm_shader_o,
16407    >,
16408    pub lookup_system: ::std::option::Option<
16409        unsafe extern "C" fn(
16410            inst: *mut tm_shader_repository_o,
16411            name: u64,
16412        ) -> *mut tm_shader_system_o,
16413    >,
16414    pub recycle_resources:
16415        ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_shader_repository_o)>,
16416    pub shader_state_override: ::std::option::Option<
16417        unsafe extern "C" fn(
16418            inst: *mut tm_shader_repository_o,
16419            state_override: tm_shader_state_overrides,
16420        ) -> u32,
16421    >,
16422    pub lookup_shader_blob: ::std::option::Option<
16423        unsafe extern "C" fn(
16424            inst: *mut tm_shader_repository_o,
16425            name: u64,
16426            size: *mut u64,
16427        ) -> *const tm_shader_blob_header_t,
16428    >,
16429}
16430#[repr(C)]
16431#[derive(Copy, Clone)]
16432pub struct tm_connector_type_t {
16433    _unused: [u8; 0],
16434}
16435#[repr(C)]
16436#[derive(Copy, Clone)]
16437pub struct tm_shader_creation_graph_data_o {
16438    pub allocator: *mut tm_allocator_i,
16439    pub connected_inputs: *mut bool,
16440    pub actions: *mut tm_tt_id_t,
16441    pub settings: *mut tm_tt_id_t,
16442}
16443#[repr(C)]
16444#[derive(Copy, Clone)]
16445pub struct tm_shader_creation_graph_api {
16446    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
16447    pub compile_data_to_wire: ::std::option::Option<
16448        unsafe extern "C" fn(
16449            inst: *mut tm_creation_graph_instance_t,
16450            wire: u32,
16451            tt: *const tm_the_truth_o,
16452            data_id: tm_tt_id_t,
16453            to_type_hash: u64,
16454        ) -> bool,
16455    >,
16456    pub node_from_declaration: ::std::option::Option<
16457        unsafe extern "C" fn(
16458            tt: *mut tm_the_truth_o,
16459            declaration: tm_tt_id_t,
16460            node: *mut tm_creation_graph_node_type_i,
16461            a: *mut tm_allocator_i,
16462        ),
16463    >,
16464    pub register_static_graph_nodes:
16465        ::std::option::Option<unsafe extern "C" fn(reg: *mut tm_api_registry_api, load: bool)>,
16466    pub wire_result_as_string: ::std::option::Option<
16467        unsafe extern "C" fn(
16468            tt: *const tm_the_truth_o,
16469            ta: *mut tm_temp_allocator_i,
16470            cw: *const tm_creation_graph_interpreter_wire_content_t,
16471            requested_type: *const tm_connector_type_t,
16472        ) -> *const ::std::os::raw::c_char,
16473    >,
16474}
16475pub const TM_TT_PROP__SHADER_REPOSITORY__DECLARATIONS: ::std::os::raw::c_int = 0;
16476pub const TM_TT_PROP__SHADER_REPOSITORY__MATERIALS: ::std::os::raw::c_int = 1;
16477pub type _bindgen_ty_185 = ::std::os::raw::c_int;
16478pub const TM_TT_PROP__SHADER_DECLARATION__NAME: ::std::os::raw::c_int = 0;
16479pub const TM_TT_PROP__SHADER_DECLARATION__COMPILABLE: ::std::os::raw::c_int = 1;
16480pub const TM_TT_PROP__SHADER_DECLARATION__SYSTEM: ::std::os::raw::c_int = 2;
16481pub const TM_TT_PROP__SHADER_DECLARATION__CREATION_GRAPH_NODE: ::std::os::raw::c_int = 3;
16482pub const TM_TT_PROP__SHADER_DECLARATION__INCLUDES: ::std::os::raw::c_int = 4;
16483pub const TM_TT_PROP__SHADER_DECLARATION__VARIATIONS: ::std::os::raw::c_int = 5;
16484pub const TM_TT_PROP__SHADER_DECLARATION__COMPILE_CONFIGURATIONS: ::std::os::raw::c_int = 6;
16485pub const TM_TT_PROP__SHADER_DECLARATION__COMPILE_CONTEXTS: ::std::os::raw::c_int = 7;
16486pub const TM_TT_PROP__SHADER_DECLARATION__FILENAME: ::std::os::raw::c_int = 8;
16487pub const TM_TT_PROP__SHADER_DECLARATION__VALIDITY_HASH: ::std::os::raw::c_int = 9;
16488pub const TM_TT_PROP__SHADER_DECLARATION__LAST_MODIFIED: ::std::os::raw::c_int = 10;
16489pub const TM_TT_PROP__SHADER_DECLARATION__REQUESTS: ::std::os::raw::c_int = 11;
16490pub const TM_TT_PROP__SHADER_DECLARATION__CONSTANTS: ::std::os::raw::c_int = 12;
16491pub const TM_TT_PROP__SHADER_DECLARATION__RESOURCES: ::std::os::raw::c_int = 13;
16492pub const TM_TT_PROP__SHADER_DECLARATION__RENDER_STATE_BLOCKS: ::std::os::raw::c_int = 14;
16493pub const TM_TT_PROP__SHADER_DECLARATION__SAMPLER_STATE_BLOCKS: ::std::os::raw::c_int = 15;
16494pub const TM_TT_PROP__SHADER_DECLARATION__COMMON_CODE: ::std::os::raw::c_int = 16;
16495pub const TM_TT_PROP__SHADER_DECLARATION__COMMON_CODE_LINE_NUMBER: ::std::os::raw::c_int = 17;
16496pub const TM_TT_PROP__SHADER_DECLARATION__FUNCTION_CODE: ::std::os::raw::c_int = 18;
16497pub const TM_TT_PROP__SHADER_DECLARATION__FUNCTION_CODE_LINE_NUMBER: ::std::os::raw::c_int = 19;
16498pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_CODE: ::std::os::raw::c_int = 20;
16499pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_CODE_LINE_NUMBER: ::std::os::raw::c_int = 21;
16500pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_STAGE_EXPORTS: ::std::os::raw::c_int = 22;
16501pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
16502    23;
16503pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
16504    24;
16505pub const TM_TT_PROP__SHADER_DECLARATION__VERTEX_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 25;
16506pub const TM_TT_PROP__SHADER_DECLARATION__HULL_CODE: ::std::os::raw::c_int = 26;
16507pub const TM_TT_PROP__SHADER_DECLARATION__HULL_CODE_LINE_NUMBER: ::std::os::raw::c_int = 27;
16508pub const TM_TT_PROP__SHADER_DECLARATION__HULL_STAGE_EXPORTS: ::std::os::raw::c_int = 28;
16509pub const TM_TT_PROP__SHADER_DECLARATION__HULL_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int = 29;
16510pub const TM_TT_PROP__SHADER_DECLARATION__HULL_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int = 30;
16511pub const TM_TT_PROP__SHADER_DECLARATION__HULL_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 31;
16512pub const TM_TT_PROP__SHADER_DECLARATION__HULL_PATCH: ::std::os::raw::c_int = 32;
16513pub const TM_TT_PROP__SHADER_DECLARATION__HULL_PATCH_LINE_NUMBER: ::std::os::raw::c_int = 33;
16514pub const TM_TT_PROP__SHADER_DECLARATION__HULL_CONDITION: ::std::os::raw::c_int = 34;
16515pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_CODE: ::std::os::raw::c_int = 35;
16516pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_CODE_LINE_NUMBER: ::std::os::raw::c_int = 36;
16517pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_STAGE_EXPORTS: ::std::os::raw::c_int = 37;
16518pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
16519    38;
16520pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
16521    39;
16522pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 40;
16523pub const TM_TT_PROP__SHADER_DECLARATION__DOMAIN_CONDITION: ::std::os::raw::c_int = 41;
16524pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_CODE: ::std::os::raw::c_int = 42;
16525pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_CODE_LINE_NUMBER: ::std::os::raw::c_int = 43;
16526pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_STAGE_EXPORTS: ::std::os::raw::c_int = 44;
16527pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
16528    45;
16529pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
16530    46;
16531pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 47;
16532pub const TM_TT_PROP__SHADER_DECLARATION__GEOMETRY_CONDITION: ::std::os::raw::c_int = 48;
16533pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_CODE: ::std::os::raw::c_int = 49;
16534pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_CODE_LINE_NUMBER: ::std::os::raw::c_int = 50;
16535pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_STAGE_EXPORTS: ::std::os::raw::c_int = 51;
16536pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
16537    52;
16538pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
16539    53;
16540pub const TM_TT_PROP__SHADER_DECLARATION__PIXEL_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 54;
16541pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_CODE: ::std::os::raw::c_int = 55;
16542pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_CODE_LINE_NUMBER: ::std::os::raw::c_int = 56;
16543pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_STAGE_EXPORTS: ::std::os::raw::c_int = 57;
16544pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_SYSTEM_SEMANTICS_IMPORTS: ::std::os::raw::c_int =
16545    58;
16546pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_SYSTEM_SEMANTICS_EXPORTS: ::std::os::raw::c_int =
16547    59;
16548pub const TM_TT_PROP__SHADER_DECLARATION__COMPUTE_STAGE_ATTRIBUTES: ::std::os::raw::c_int = 60;
16549pub type _bindgen_ty_186 = ::std::os::raw::c_int;
16550pub const TM_TT_PROP__RENDER_STATE_BLOCK__TYPE: ::std::os::raw::c_int = 0;
16551pub const TM_TT_PROP__RENDER_STATE_BLOCK__STATES: ::std::os::raw::c_int = 1;
16552pub type _bindgen_ty_187 = ::std::os::raw::c_int;
16553pub const TM_TT_PROP__SAMPLER_STATE_BLOCK__NAME: ::std::os::raw::c_int = 0;
16554pub const TM_TT_PROP__SAMPLER_STATE_BLOCK__STATES: ::std::os::raw::c_int = 1;
16555pub type _bindgen_ty_188 = ::std::os::raw::c_int;
16556pub const TM_TT_PROP__SHADER_REQUEST__TYPE_NAME: ::std::os::raw::c_int = 0;
16557pub const TM_TT_PROP__SHADER_REQUEST__CHANNEL_NAME: ::std::os::raw::c_int = 1;
16558pub type _bindgen_ty_189 = ::std::os::raw::c_int;
16559pub const TM_TT_PROP__SHADER_CONSTANT__NAME: ::std::os::raw::c_int = 0;
16560pub const TM_TT_PROP__SHADER_CONSTANT__TYPE: ::std::os::raw::c_int = 1;
16561pub const TM_TT_PROP__SHADER_CONSTANT__ROWS: ::std::os::raw::c_int = 2;
16562pub const TM_TT_PROP__SHADER_CONSTANT__COLUMNS: ::std::os::raw::c_int = 3;
16563pub const TM_TT_PROP__SHADER_CONSTANT__STRUCT_SIZE: ::std::os::raw::c_int = 4;
16564pub const TM_TT_PROP__SHADER_CONSTANT__ELEMENTS: ::std::os::raw::c_int = 5;
16565pub type _bindgen_ty_190 = ::std::os::raw::c_int;
16566pub const TM_TT_PROP__SHADER_RESOURCE__NAME: ::std::os::raw::c_int = 0;
16567pub const TM_TT_PROP__SHADER_RESOURCE__TYPE: ::std::os::raw::c_int = 1;
16568pub const TM_TT_PROP__SHADER_RESOURCE__ELEMENT_TYPE: ::std::os::raw::c_int = 2;
16569pub const TM_TT_PROP__SHADER_RESOURCE__ELEMENTS: ::std::os::raw::c_int = 3;
16570pub const TM_TT_PROP__SHADER_RESOURCE__STATIC_RESOURCE: ::std::os::raw::c_int = 4;
16571pub const TM_TT_PROP__SHADER_RESOURCE__UAV: ::std::os::raw::c_int = 5;
16572pub type _bindgen_ty_191 = ::std::os::raw::c_int;
16573pub const TM_TT_PROP__STAGE_EXPORT__CONSTANT: ::std::os::raw::c_int = 0;
16574pub const TM_TT_PROP__STAGE_EXPORT__INTERPOLATION_MODIFIER: ::std::os::raw::c_int = 1;
16575pub const TM_TT_PROP__STAGE_EXPORT__CHANNEL_REQUESTED: ::std::os::raw::c_int = 2;
16576pub type _bindgen_ty_192 = ::std::os::raw::c_int;
16577pub const TM_TT_PROP__INCLUDE__NAME: ::std::os::raw::c_int = 0;
16578pub type _bindgen_ty_193 = ::std::os::raw::c_int;
16579pub const TM_TT_PROP__VARIATION__SYSTEMS: ::std::os::raw::c_int = 0;
16580pub type _bindgen_ty_194 = ::std::os::raw::c_int;
16581pub const TM_TT_PROP__VARIATION__SYSTEM__NAME: ::std::os::raw::c_int = 0;
16582pub type _bindgen_ty_195 = ::std::os::raw::c_int;
16583pub const TM_TT_PROP__COMPILE_CONFIGURATION__NAME: ::std::os::raw::c_int = 0;
16584pub const TM_TT_PROP__COMPILE_CONFIGURATION__VARIATIONS: ::std::os::raw::c_int = 1;
16585pub type _bindgen_ty_196 = ::std::os::raw::c_int;
16586pub const TM_TT_PROP__COMPILE_BRANCH__CONDITION: ::std::os::raw::c_int = 0;
16587pub const TM_TT_PROP__COMPILE_BRANCH__THEN: ::std::os::raw::c_int = 1;
16588pub const TM_TT_PROP__COMPILE_BRANCH__ELSE: ::std::os::raw::c_int = 2;
16589pub type _bindgen_ty_197 = ::std::os::raw::c_int;
16590pub const TM_TT_PROP__PASS_CONDITION__SYSTEMS_ACTIVE: ::std::os::raw::c_int = 0;
16591pub type _bindgen_ty_198 = ::std::os::raw::c_int;
16592pub const TM_TT_PROP__PASS__LAYER: ::std::os::raw::c_int = 0;
16593pub const TM_TT_PROP__PASS__CONDITION: ::std::os::raw::c_int = 1;
16594pub const TM_TT_PROP__PASS__ENABLE_SYSTEMS: ::std::os::raw::c_int = 2;
16595pub const TM_TT_PROP__PASS__RENDER_STATE_BLOCKS: ::std::os::raw::c_int = 3;
16596pub const TM_TT_PROP__PASS__COMPILE_CONFIGURATION: ::std::os::raw::c_int = 4;
16597pub type _bindgen_ty_199 = ::std::os::raw::c_int;
16598pub const TM_TT_PROP__COMPILE_CONTEXT__NAME: ::std::os::raw::c_int = 0;
16599pub const TM_TT_PROP__COMPILE_CONTEXT__PASSES: ::std::os::raw::c_int = 1;
16600pub type _bindgen_ty_200 = ::std::os::raw::c_int;
16601pub const TM_TT_PROP__SHADER_SYSTEM_COMPILED_RESULT__NAME: ::std::os::raw::c_int = 0;
16602pub const TM_TT_PROP__SHADER_SYSTEM_COMPILED_RESULT__BUFFER: ::std::os::raw::c_int = 1;
16603pub type _bindgen_ty_201 = ::std::os::raw::c_int;
16604pub const TM_TT_PROP__SHADER_SYSTEM__CONSTANT_NODE__VALUE_TYPE_HASH: ::std::os::raw::c_int = 0;
16605pub const TM_TT_PROP__SHADER_SYSTEM__CONSTANT_NODE__VALUE: ::std::os::raw::c_int = 1;
16606pub type _bindgen_ty_202 = ::std::os::raw::c_int;
16607pub const TM_TT_PROP__CREATION_GRAPH_NODE_RESOURCE_ASPECT__RESOURCE: ::std::os::raw::c_int = 0;
16608pub const TM_TT_PROP__CREATION_GRAPH_NODE_RESOURCE_ASPECT__ASPECT: ::std::os::raw::c_int = 1;
16609pub type _bindgen_ty_203 = ::std::os::raw::c_int;
16610pub const TM_TT_PROP__CREATION_GRAPH_NODE_DEFINE__NAME: ::std::os::raw::c_int = 0;
16611pub type _bindgen_ty_204 = ::std::os::raw::c_int;
16612pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__NAME_HASH: ::std::os::raw::c_int = 0;
16613pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__RESOURCE_ASPECTS: ::std::os::raw::c_int = 1;
16614pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__DEFINES: ::std::os::raw::c_int = 2;
16615pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__REQUESTS: ::std::os::raw::c_int = 3;
16616pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__ENABLE_SYSTEMS: ::std::os::raw::c_int = 4;
16617pub const TM_TT_PROP__CREATION_GRAPH_NODE_ACTION__RENDER_STATE_BLOCKS: ::std::os::raw::c_int = 5;
16618pub type _bindgen_ty_205 = ::std::os::raw::c_int;
16619pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING_OPTION__DISPLAY_NAME:
16620    ::std::os::raw::c_int = 0;
16621pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING_OPTION__DISPLAY_TOOLTIP:
16622    ::std::os::raw::c_int = 1;
16623pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING_OPTION__ACTION: ::std::os::raw::c_int =
16624    2;
16625pub type _bindgen_ty_206 = ::std::os::raw::c_int;
16626pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__DISPLAY_NAME: ::std::os::raw::c_int =
16627    0;
16628pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__DISPLAY_TOOLTIP:
16629    ::std::os::raw::c_int = 1;
16630pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__SETTING_CONDITION:
16631    ::std::os::raw::c_int = 2;
16632pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__OPTIONS: ::std::os::raw::c_int = 3;
16633pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTING__BOOL_ACTION: ::std::os::raw::c_int =
16634    4;
16635pub type _bindgen_ty_207 = ::std::os::raw::c_int;
16636pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTINGS__OBJECT_TYPE_HASH:
16637    ::std::os::raw::c_int = 0;
16638pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR_SETTINGS__SETTINGS: ::std::os::raw::c_int = 1;
16639pub type _bindgen_ty_208 = ::std::os::raw::c_int;
16640pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__VERTEX: ::std::os::raw::c_int = 0;
16641pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__HULL: ::std::os::raw::c_int = 1;
16642pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__DOMAIN: ::std::os::raw::c_int = 2;
16643pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__GEOMETRY: ::std::os::raw::c_int = 3;
16644pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__PIXEL: ::std::os::raw::c_int = 4;
16645pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__COMPUTE: ::std::os::raw::c_int = 5;
16646pub const TM_SHADER_SYSTEM__NODE_CONNECTOR__EVALUATION_STAGE__MAX_STAGES: ::std::os::raw::c_int = 6;
16647pub type _bindgen_ty_209 = ::std::os::raw::c_int;
16648extern "C" {
16649    pub static mut tm_shader_system__node__connector__evaluation_stage_names:
16650        [*const ::std::os::raw::c_char; 6usize];
16651}
16652pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__NAME: ::std::os::raw::c_int = 0;
16653pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__DISPLAY_NAME: ::std::os::raw::c_int = 1;
16654pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__DISPLAY_TOOLTIP: ::std::os::raw::c_int = 2;
16655pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TARGET_NAME: ::std::os::raw::c_int = 3;
16656pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TARGET_ELEMENT: ::std::os::raw::c_int = 4;
16657pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__CONNECTOR_FLAG: ::std::os::raw::c_int = 5;
16658pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__IS_OPTIONAL: ::std::os::raw::c_int = 6;
16659pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__IS_FUNCTION: ::std::os::raw::c_int = 7;
16660pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE: ::std::os::raw::c_int = 8;
16661pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__ROWS: ::std::os::raw::c_int = 9;
16662pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__COLUMNS: ::std::os::raw::c_int = 10;
16663pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE_OF: ::std::os::raw::c_int = 11;
16664pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__EVALUATION_STAGE: ::std::os::raw::c_int = 12;
16665pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__SETTINGS: ::std::os::raw::c_int = 13;
16666pub type _bindgen_ty_210 = ::std::os::raw::c_int;
16667pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE_OF__CONNECTOR: ::std::os::raw::c_int = 0;
16668pub const TM_TT_PROP__CREATION_GRAPH_NODE__CONNECTOR__TYPE_OF__REQUESTED_CHANNEL:
16669    ::std::os::raw::c_int = 1;
16670pub type _bindgen_ty_211 = ::std::os::raw::c_int;
16671pub const TM_TT_PROP__CREATION_GRAPH_NODE__DECLARATION_NAME: ::std::os::raw::c_int = 0;
16672pub const TM_TT_PROP__CREATION_GRAPH_NODE__NODE_NAME: ::std::os::raw::c_int = 1;
16673pub const TM_TT_PROP__CREATION_GRAPH_NODE__DISPLAY_NAME: ::std::os::raw::c_int = 2;
16674pub const TM_TT_PROP__CREATION_GRAPH_NODE__CATEGORY: ::std::os::raw::c_int = 3;
16675pub const TM_TT_PROP__CREATION_GRAPH_NODE__ACTIONS: ::std::os::raw::c_int = 4;
16676pub const TM_TT_PROP__CREATION_GRAPH_NODE__INPUTS: ::std::os::raw::c_int = 5;
16677pub const TM_TT_PROP__CREATION_GRAPH_NODE__OUTPUTS: ::std::os::raw::c_int = 6;
16678pub type _bindgen_ty_212 = ::std::os::raw::c_int;
16679pub const TM_TT_PROP__RUNNER_SETTINGS__PROJECT: ::std::os::raw::c_int = 0;
16680pub const TM_TT_PROP__RUNNER_SETTINGS__WORLD_ENTITY: ::std::os::raw::c_int = 1;
16681pub const TM_TT_PROP__RUNNER_SETTINGS__SHADERS_DIR: ::std::os::raw::c_int = 2;
16682pub const TM_TT_PROP__RUNNER_SETTINGS__PLUGINS_DIR: ::std::os::raw::c_int = 3;
16683pub const TM_TT_PROP__RUNNER_SETTINGS__WINDOW_TITLE: ::std::os::raw::c_int = 4;
16684pub type _bindgen_ty_213 = ::std::os::raw::c_int;
16685#[repr(C)]
16686#[derive(Copy, Clone)]
16687pub struct tm_runner_settings_api {
16688    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
16689}
16690#[repr(C)]
16691#[derive(Copy, Clone)]
16692pub struct tm_simulate_context_o {
16693    _unused: [u8; 0],
16694}
16695#[repr(C)]
16696#[derive(Copy, Clone)]
16697pub struct tm_simulate_context_api {
16698    pub create: ::std::option::Option<
16699        unsafe extern "C" fn(
16700            allocator: *mut tm_allocator_i,
16701            entity_ctx: *mut tm_entity_context_o,
16702        ) -> *mut tm_simulate_context_o,
16703    >,
16704    pub destroy:
16705        ::std::option::Option<unsafe extern "C" fn(simulate_ctx: *mut tm_simulate_context_o)>,
16706    pub camera: ::std::option::Option<
16707        unsafe extern "C" fn(simulate_ctx: *const tm_simulate_context_o) -> tm_entity_t,
16708    >,
16709    pub set_camera: ::std::option::Option<
16710        unsafe extern "C" fn(simulate_ctx: *mut tm_simulate_context_o, camera: tm_entity_t),
16711    >,
16712}
16713pub const tm_tt_value__statistics_graph__type_TM_TT_VALUE__STATISTICS_GRAPH__NONE:
16714    tm_tt_value__statistics_graph__type = 0;
16715pub const tm_tt_value__statistics_graph__type_TM_TT_VALUE__STATISTICS_GRAPH__TABLE:
16716    tm_tt_value__statistics_graph__type = 1;
16717pub const tm_tt_value__statistics_graph__type_TM_TT_VALUE__STATISTICS_GRAPH__LINE_GRAPH:
16718    tm_tt_value__statistics_graph__type = 2;
16719pub type tm_tt_value__statistics_graph__type = ::std::os::raw::c_int;
16720pub const TM_TT_PROP__STATISTICS_GRAPH__NAME: ::std::os::raw::c_int = 0;
16721pub const TM_TT_PROP__STATISTICS_GRAPH__TYPE: ::std::os::raw::c_int = 1;
16722pub const TM_TT_PROP__STATISTICS_GRAPH__HISTORY: ::std::os::raw::c_int = 2;
16723pub const TM_TT_PROP__STATISTICS_GRAPH__Y_RANGE_AUTO: ::std::os::raw::c_int = 3;
16724pub const TM_TT_PROP__STATISTICS_GRAPH__Y_MIN: ::std::os::raw::c_int = 4;
16725pub const TM_TT_PROP__STATISTICS_GRAPH__Y_MAX: ::std::os::raw::c_int = 5;
16726pub const TM_TT_PROP__STATISTICS_GRAPH__SOURCES: ::std::os::raw::c_int = 6;
16727pub type _bindgen_ty_214 = ::std::os::raw::c_int;
16728pub const TM_TT_PROP__STATISTICS_GRAPH_SOURCE__NAME: ::std::os::raw::c_int = 0;
16729pub const TM_TT_PROP__STATISTICS_GRAPH_SOURCE__SOURCE: ::std::os::raw::c_int = 1;
16730pub const TM_TT_PROP__STATISTICS_GRAPH_SOURCE__COLOR: ::std::os::raw::c_int = 2;
16731pub type _bindgen_ty_215 = ::std::os::raw::c_int;
16732#[repr(C)]
16733#[derive(Copy, Clone)]
16734pub struct tm_statistics_graph_api {
16735    pub ui: ::std::option::Option<
16736        unsafe extern "C" fn(
16737            tt: *mut tm_the_truth_o,
16738            settings: tm_tt_id_t,
16739            ui: *mut tm_ui_o,
16740            uistyle: *const tm_ui_style_t,
16741            rect: tm_rect_t,
16742        ) -> bool,
16743    >,
16744    pub create_default_settings: ::std::option::Option<
16745        unsafe extern "C" fn(tt: *mut tm_the_truth_o, ui: *mut tm_ui_o) -> tm_tt_id_t,
16746    >,
16747}
16748pub const TM_STATISTICS_SOURCE_MAX_FRAMES: ::std::os::raw::c_int = 1024;
16749pub type _bindgen_ty_216 = ::std::os::raw::c_int;
16750#[repr(C)]
16751#[derive(Copy, Clone)]
16752pub struct tm_statistics_source_t {
16753    pub name: *const ::std::os::raw::c_char,
16754    pub default_title: *const ::std::os::raw::c_char,
16755    pub values: *mut f64,
16756    pub frame_value: f64,
16757}
16758#[repr(C)]
16759#[derive(Copy, Clone)]
16760pub struct tm_statistics_source_api {
16761    pub source: ::std::option::Option<
16762        unsafe extern "C" fn(
16763            name: *const ::std::os::raw::c_char,
16764            default_title: *const ::std::os::raw::c_char,
16765        ) -> *mut f64,
16766    >,
16767    pub push_frame: ::std::option::Option<unsafe extern "C" fn()>,
16768    pub is_paused: ::std::option::Option<unsafe extern "C" fn() -> bool>,
16769    pub set_paused: ::std::option::Option<unsafe extern "C" fn(paused: bool)>,
16770    pub read: ::std::option::Option<
16771        unsafe extern "C" fn(
16772            source: *const ::std::os::raw::c_char,
16773        ) -> *const tm_statistics_source_t,
16774    >,
16775    pub sources: ::std::option::Option<
16776        unsafe extern "C" fn(count: *mut u32) -> *const tm_statistics_source_t,
16777    >,
16778    pub num_frames: ::std::option::Option<unsafe extern "C" fn() -> u64>,
16779}
16780#[repr(C)]
16781#[derive(Copy, Clone)]
16782pub struct tm_asset_preview_api__ui_args_t {
16783    pub tt: *mut tm_the_truth_o,
16784    pub asset: tm_tt_id_t,
16785    pub entity_ctx: *mut tm_entity_context_o,
16786    pub entity: *const tm_entity_t,
16787    pub viewer_render_info: *mut tm_viewer_render_info_t,
16788    pub lighting_environment_settings: *mut tm_lighting_environment_settings_t,
16789    pub tab_id: u64,
16790    pub ui: *mut tm_ui_o,
16791    pub uistyle: *const tm_ui_style_t,
16792    pub content_r: tm_rect_t,
16793}
16794#[repr(C)]
16795#[derive(Copy, Clone)]
16796pub struct tm_asset_preview_api {
16797    pub create: ::std::option::Option<
16798        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_asset_preview_o,
16799    >,
16800    pub destroy: ::std::option::Option<
16801        unsafe extern "C" fn(inst: *mut tm_asset_preview_o, allocator: *mut tm_allocator_i),
16802    >,
16803    pub create_entity: ::std::option::Option<
16804        unsafe extern "C" fn(
16805            inst: *mut tm_asset_preview_o,
16806            tt: *mut tm_the_truth_o,
16807            asset: tm_tt_id_t,
16808            entity_ctx: *mut tm_entity_context_o,
16809            result: *mut tm_entity_t,
16810        ),
16811    >,
16812    pub intercept_focus: ::std::option::Option<
16813        unsafe extern "C" fn(
16814            inst: *mut tm_asset_preview_o,
16815            tt: *mut tm_the_truth_o,
16816            root_asset: tm_tt_id_t,
16817            entity_ctx: *mut tm_entity_context_o,
16818            entity: *const tm_entity_t,
16819            focus_asset: tm_tt_id_t,
16820        ) -> bool,
16821    >,
16822    pub reload: ::std::option::Option<
16823        unsafe extern "C" fn(
16824            inst: *mut tm_asset_preview_o,
16825            tt: *mut tm_the_truth_o,
16826            asset: tm_tt_id_t,
16827            entity_ctx: *mut tm_entity_context_o,
16828            entity: *mut tm_entity_t,
16829        ) -> bool,
16830    >,
16831    pub render: ::std::option::Option<
16832        unsafe extern "C" fn(
16833            inst: *mut tm_asset_preview_o,
16834            tt: *mut tm_the_truth_o,
16835            asset: tm_tt_id_t,
16836            args: *const tm_render_args_t,
16837        ),
16838    >,
16839    pub ui: ::std::option::Option<
16840        unsafe extern "C" fn(
16841            inst: *mut tm_asset_preview_o,
16842            args: *const tm_asset_preview_api__ui_args_t,
16843        ),
16844    >,
16845    pub toolbars: ::std::option::Option<
16846        unsafe extern "C" fn(
16847            inst: *mut tm_asset_preview_o,
16848            n: *mut u32,
16849            args: *const tm_asset_preview_api__ui_args_t,
16850        ) -> *mut tm_tab_toolbar_i,
16851    >,
16852}
16853#[repr(C)]
16854#[derive(Copy, Clone)]
16855pub struct tm_asset_preview_i {
16856    pub api: *mut tm_asset_preview_api,
16857    pub inst: *mut tm_asset_preview_o,
16858}
16859#[repr(C)]
16860#[derive(Copy, Clone)]
16861pub struct tm_asset_scene_api {
16862    pub create: ::std::option::Option<
16863        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_asset_scene_o,
16864    >,
16865    pub destroy: ::std::option::Option<
16866        unsafe extern "C" fn(inst: *mut tm_asset_scene_o, allocator: *mut tm_allocator_i),
16867    >,
16868    pub droppable: ::std::option::Option<
16869        unsafe extern "C" fn(
16870            inst: *mut tm_asset_scene_o,
16871            tt: *mut tm_the_truth_o,
16872            asset: tm_tt_id_t,
16873        ) -> bool,
16874    >,
16875    pub create_entity: ::std::option::Option<
16876        unsafe extern "C" fn(
16877            inst: *mut tm_asset_scene_o,
16878            tt: *mut tm_the_truth_o,
16879            asset: tm_tt_id_t,
16880            ctx: *mut tm_entity_context_o,
16881            parent_entity: tm_tt_id_t,
16882            name: *const ::std::os::raw::c_char,
16883            pos: tm_vec3_t,
16884            scl: tm_vec3_t,
16885            undo_scope: tm_tt_undo_scope_t,
16886        ) -> tm_tt_id_t,
16887    >,
16888    pub bound_entity_asset: ::std::option::Option<
16889        unsafe extern "C" fn(
16890            inst: *mut tm_asset_scene_o,
16891            tt: *const tm_the_truth_o,
16892            asset: tm_tt_id_t,
16893            bounds: *mut tm_vec3_t,
16894        ),
16895    >,
16896}
16897#[repr(C)]
16898#[derive(Copy, Clone)]
16899pub struct tm_asset_scene_i {
16900    pub api: *mut tm_asset_scene_api,
16901    pub inst: *mut tm_asset_scene_o,
16902}
16903pub const camera_controller_mode_MODE_NONE: camera_controller_mode = 0;
16904pub const camera_controller_mode_MODE_FREE_FLIGHT: camera_controller_mode = 1;
16905pub const camera_controller_mode_MODE_MAYA_SPIN: camera_controller_mode = 2;
16906pub const camera_controller_mode_MODE_MAYA_ZOOM: camera_controller_mode = 3;
16907pub const camera_controller_mode_MODE_MAYA_PAN: camera_controller_mode = 4;
16908pub type camera_controller_mode = ::std::os::raw::c_int;
16909#[repr(C)]
16910#[derive(Copy, Clone)]
16911pub struct tm_camera_controller_component_t {
16912    pub disable_input: bool,
16913    pub _padding_24: [::std::os::raw::c_char; 3usize],
16914    pub mode: camera_controller_mode,
16915    pub translation: tm_vec3_t,
16916    pub damped_translation: tm_vec3_t,
16917    pub rotation: tm_vec2_t,
16918    pub focus_point: tm_vec3_t,
16919    pub zoom: f32,
16920    pub spin: tm_vec2_t,
16921    pub pan: tm_vec2_t,
16922}
16923#[repr(C)]
16924#[derive(Copy, Clone)]
16925pub struct tm_camera_controller_component_manager_o {
16926    _unused: [u8; 0],
16927}
16928#[repr(C)]
16929#[derive(Copy, Clone)]
16930pub struct tm_camera_controller_component_api {
16931    pub create: ::std::option::Option<
16932        unsafe extern "C" fn(
16933            ctx: *mut tm_entity_context_o,
16934        ) -> *mut tm_camera_controller_component_manager_o,
16935    >,
16936    pub feed_ui_input: ::std::option::Option<
16937        unsafe extern "C" fn(
16938            manager: *mut tm_camera_controller_component_manager_o,
16939            ui: *mut tm_ui_o,
16940            in_area: bool,
16941        ),
16942    >,
16943    pub register_engines: ::std::option::Option<
16944        unsafe extern "C" fn(manager: *mut tm_camera_controller_component_manager_o),
16945    >,
16946}
16947pub type tm_ci_editor_properties_ui_f = ::std::option::Option<
16948    unsafe extern "C" fn(
16949        args: *mut tm_properties_ui_args_t,
16950        item_rect: tm_rect_t,
16951        object: tm_tt_id_t,
16952        indent: u32,
16953    ) -> f32,
16954>;
16955#[repr(C)]
16956#[derive(Copy, Clone)]
16957pub struct tm_ci_editor_ui_icon_i {
16958    pub unicode: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
16959}
16960#[repr(C)]
16961#[derive(Copy, Clone)]
16962pub struct tm_ci_viewport_interact {
16963    pub tt: *mut tm_the_truth_o,
16964    pub entity_ctx: *mut tm_entity_context_o,
16965    pub entity: tm_tt_id_t,
16966    pub component: tm_tt_id_t,
16967    pub ui: *mut tm_ui_o,
16968    pub uistyle: *const tm_ui_style_t,
16969    pub primitive_buffer: *mut tm_primitive_drawer_buffer_t,
16970    pub vertex_buffer: *mut tm_primitive_drawer_buffer_t,
16971    pub allocator: *mut tm_allocator_i,
16972    pub camera: *const tm_camera_t,
16973    pub viewport_r: tm_rect_t,
16974    pub viewport_id: u64,
16975    pub tab_id: u64,
16976    pub undo_stack: *mut tm_undo_stack_i,
16977    pub active_tool_id: u64,
16978    pub move_settings: *const tm_gizmo__move_settings_t,
16979    pub rotate_settings: *const tm_gizmo__rotate_settings_t,
16980    pub scale_settings: *const tm_gizmo__scale_settings_t,
16981    pub editor: *mut ::std::os::raw::c_void,
16982    pub set_selection: ::std::option::Option<
16983        unsafe extern "C" fn(editor: *mut ::std::os::raw::c_void, item_t: tm_tt_id_t),
16984    >,
16985}
16986#[repr(C)]
16987#[derive(Copy, Clone)]
16988pub struct tm_ci_viewport_interact_result {
16989    pub hide_gizmo: bool,
16990}
16991#[repr(C)]
16992#[derive(Copy, Clone)]
16993pub struct tm_ci_toolbar {
16994    pub active_tool_id: u64,
16995    pub editor: *mut ::std::os::raw::c_void,
16996    pub set_active_tool:
16997        ::std::option::Option<unsafe extern "C" fn(editor: *mut ::std::os::raw::c_void, id: u64)>,
16998}
16999#[repr(C)]
17000#[derive(Copy, Clone)]
17001pub struct tm_ci_editor_ui_i {
17002    pub disabled: ::std::option::Option<unsafe extern "C" fn() -> bool>,
17003    pub category: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
17004    pub icon_interface:
17005        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_ci_editor_ui_icon_i>,
17006    pub gizmo_priority: f32,
17007    pub _padding_90: [::std::os::raw::c_char; 4usize],
17008    pub gizmo_get_transform: ::std::option::Option<
17009        unsafe extern "C" fn(
17010            tt: *const tm_the_truth_o,
17011            ctx: *mut tm_entity_context_o,
17012            entity: tm_tt_id_t,
17013            component: tm_tt_id_t,
17014            object: tm_tt_id_t,
17015            world: *mut tm_transform_t,
17016            local: *mut tm_transform_t,
17017        ) -> bool,
17018    >,
17019    pub gizmo_set_transform: ::std::option::Option<
17020        unsafe extern "C" fn(
17021            tt: *mut tm_the_truth_o,
17022            ctx: *mut tm_entity_context_o,
17023            entity: tm_tt_id_t,
17024            component: tm_tt_id_t,
17025            object: tm_tt_id_t,
17026            local: *const tm_transform_t,
17027            undo_scope: tm_tt_undo_scope_t,
17028        ),
17029    >,
17030    pub gizmo_duplicate: ::std::option::Option<
17031        unsafe extern "C" fn(
17032            tt: *mut tm_the_truth_o,
17033            ctx: *mut tm_entity_context_o,
17034            entity: tm_tt_id_t,
17035            component: tm_tt_id_t,
17036            object: tm_tt_id_t,
17037            undo_scope: tm_tt_undo_scope_t,
17038        ) -> tm_tt_id_t,
17039    >,
17040    pub override_properties: ::std::option::Option<
17041        unsafe extern "C" fn(
17042            tt: *mut tm_the_truth_o,
17043            other_component: tm_tt_id_t,
17044        ) -> tm_ci_editor_properties_ui_f,
17045    >,
17046    pub viewport_interact: ::std::option::Option<
17047        unsafe extern "C" fn(vi: *const tm_ci_viewport_interact) -> tm_ci_viewport_interact_result,
17048    >,
17049    pub create: ::std::option::Option<
17050        unsafe extern "C" fn(
17051            tt: *mut tm_the_truth_o,
17052            type_: u64,
17053            undo_scope: tm_tt_undo_scope_t,
17054        ) -> tm_tt_id_t,
17055    >,
17056    pub toolbar: ::std::option::Option<
17057        unsafe extern "C" fn(ci: *const tm_ci_toolbar) -> *mut tm_tab_toolbar_i,
17058    >,
17059}
17060#[repr(C)]
17061#[derive(Copy, Clone)]
17062pub struct tm_ci_render_viewer_t {
17063    pub sort_key: u64,
17064    pub visibility_mask: u64,
17065    pub visibility_context: u64,
17066    pub viewer_system: *mut tm_shader_system_o,
17067    pub viewer_cbuffer: *mut tm_shader_constant_buffer_instance_t,
17068    pub viewer_rbinder: *mut tm_shader_resource_binder_instance_t,
17069}
17070#[repr(C)]
17071#[derive(Copy, Clone)]
17072pub struct tm_ci_render_i {
17073    pub init: ::std::option::Option<
17074        unsafe extern "C" fn(
17075            manager: *mut tm_component_manager_o,
17076            entities: *const tm_entity_t,
17077            entity_indices: *const u32,
17078            render_component_data: *mut *mut ::std::os::raw::c_void,
17079            num_renderables: u32,
17080        ),
17081    >,
17082    pub render: ::std::option::Option<
17083        unsafe extern "C" fn(
17084            manager: *mut tm_component_manager_o,
17085            args: *mut tm_render_args_t,
17086            viewers: *const tm_ci_render_viewer_t,
17087            num_viewers: u32,
17088            entities: *const tm_entity_t,
17089            entity_transforms: *const tm_transform_component_t,
17090            entity_selection_state: *const bool,
17091            entity_indices: *const u32,
17092            render_component_data: *mut *mut ::std::os::raw::c_void,
17093            num_renderables: u32,
17094            frustum_visibility: *const u8,
17095        ),
17096    >,
17097    pub bounding_volume_type:
17098        ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o) -> u32>,
17099    pub fill_bounding_volume_buffer: ::std::option::Option<
17100        unsafe extern "C" fn(
17101            manager: *mut tm_component_manager_o,
17102            entities: *const tm_entity_t,
17103            entity_transforms: *const tm_transform_component_t,
17104            entity_indices: *const u32,
17105            render_component_data: *mut *mut ::std::os::raw::c_void,
17106            num_renderables: u32,
17107            bv_buffer: *mut u8,
17108        ),
17109    >,
17110}
17111#[repr(C)]
17112#[derive(Copy, Clone)]
17113pub struct tm_ci_render_gather_callback_args_t {
17114    pub allocator: *mut tm_allocator_i,
17115    pub selected_entities_lookup: *const tm_set_entity_t,
17116    pub hidden_entities_lookup: *const tm_set_entity_t,
17117    pub ignored_entities_lookup: *const tm_set_entity_t,
17118    pub render_component_names: [u64; 64usize],
17119    pub render_interfaces: [*mut tm_ci_render_i; 64usize],
17120    pub num_render_components: u32,
17121    pub render_component_data_strides: [u32; 64usize],
17122    pub _padding_54: [::std::os::raw::c_char; 4usize],
17123    pub component_managers: [*mut tm_component_manager_o; 64usize],
17124    pub entity_selection_state: *mut bool,
17125    pub entity_ignore_state: *mut bool,
17126    pub entity_transforms: *mut tm_transform_component_t,
17127    pub entities: *mut tm_entity_t,
17128    pub component_data: [*mut *mut ::std::os::raw::c_void; 64usize],
17129    pub entity_indices: [*mut u32; 64usize],
17130    pub num_renderables_per_component: [u32; 64usize],
17131}
17132#[repr(C)]
17133#[derive(Copy, Clone)]
17134pub struct tm_ci_shader_i {
17135    pub init: ::std::option::Option<
17136        unsafe extern "C" fn(
17137            manager: *mut tm_component_manager_o,
17138            entities: *const tm_entity_t,
17139            entity_indices: *const u32,
17140            shader_component_data: *mut *mut ::std::os::raw::c_void,
17141            num_shader_datas: u32,
17142        ),
17143    >,
17144    pub graph_module_inject: ::std::option::Option<
17145        unsafe extern "C" fn(
17146            manager: *mut tm_component_manager_o,
17147            module: *mut tm_render_graph_module_o,
17148        ),
17149    >,
17150    pub bounding_volume_type:
17151        ::std::option::Option<unsafe extern "C" fn(manager: *mut tm_component_manager_o) -> u32>,
17152    pub fill_bounding_volume_buffer: ::std::option::Option<
17153        unsafe extern "C" fn(
17154            manager: *mut tm_component_manager_o,
17155            entity_transforms: *const tm_transform_t,
17156            entity_indices: *const u32,
17157            component_data: *mut *mut ::std::os::raw::c_void,
17158            num_components: u32,
17159            bv_buffer: *mut u8,
17160        ),
17161    >,
17162    pub update: ::std::option::Option<
17163        unsafe extern "C" fn(
17164            manager: *mut tm_component_manager_o,
17165            args: *mut tm_render_args_t,
17166            entities: *const tm_entity_t,
17167            entity_transforms: *const tm_transform_component_t,
17168            entity_indices: *const u32,
17169            component_data: *mut *mut ::std::os::raw::c_void,
17170            num_components: u32,
17171            frustum_visibility: *const u8,
17172        ),
17173    >,
17174}
17175#[repr(C)]
17176#[derive(Copy, Clone)]
17177pub struct tm_ci_shader_data_gather_callback_args_t {
17178    pub allocator: *mut tm_allocator_i,
17179    pub hidden_entities_lookup: *const tm_set_entity_t,
17180    pub shader_component_names: [u64; 15usize],
17181    pub shader_interfaces: [*mut tm_ci_shader_i; 15usize],
17182    pub num_shader_components: u32,
17183    pub shader_component_data_strides: [u32; 15usize],
17184    pub component_managers: [*mut tm_component_manager_o; 15usize],
17185    pub entity_transforms: *mut tm_transform_component_t,
17186    pub entities: *mut tm_entity_t,
17187    pub component_data: [*mut *mut ::std::os::raw::c_void; 15usize],
17188    pub entity_indices: [*mut u32; 15usize],
17189    pub num_shader_data_per_component: [u32; 15usize],
17190    pub _padding_56: [::std::os::raw::c_char; 4usize],
17191}
17192#[repr(C)]
17193#[derive(Copy, Clone)]
17194pub struct tm_culling_viewer_t {
17195    pub visibility_mask: u64,
17196    pub frustum_planes: [tm_vec4_t; 6usize],
17197}
17198#[repr(C)]
17199#[derive(Copy, Clone)]
17200pub struct tm_frustum_culling_api {
17201    pub viewer_from_projection_mat: ::std::option::Option<
17202        unsafe extern "C" fn(
17203            view_tm: *const tm_mat44_t,
17204            projection_tm: *const tm_mat44_t,
17205            visibility_mask: u64,
17206        ) -> tm_culling_viewer_t,
17207    >,
17208    pub calc_size_of_objects_buffer:
17209        ::std::option::Option<unsafe extern "C" fn(bv_type: u32, num_objects: u32) -> u32>,
17210    pub calc_size_of_results_buffer:
17211        ::std::option::Option<unsafe extern "C" fn(num_viewers: u32, num_objects: u32) -> u32>,
17212    pub cull: ::std::option::Option<
17213        unsafe extern "C" fn(
17214            viewers: *const tm_culling_viewer_t,
17215            num_viewers: u32,
17216            bv_type: u32,
17217            objects: *const u8,
17218            num_objects: u32,
17219            results: *mut u8,
17220            ta: *mut tm_temp_allocator_i,
17221        ) -> *mut tm_atomic_counter_o,
17222    >,
17223}
17224#[repr(C)]
17225#[derive(Copy, Clone)]
17226pub struct tm_render_context_o {
17227    _unused: [u8; 0],
17228}
17229#[repr(C)]
17230#[derive(Copy, Clone)]
17231pub struct tm_render_context_api {
17232    pub create: ::std::option::Option<
17233        unsafe extern "C" fn(allocator: *mut tm_allocator_i) -> *mut tm_render_context_o,
17234    >,
17235    pub destroy: ::std::option::Option<unsafe extern "C" fn(context: *mut tm_render_context_o)>,
17236    pub append_resource_buffers: ::std::option::Option<
17237        unsafe extern "C" fn(
17238            context: *mut tm_render_context_o,
17239            res_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
17240            num_buffers: u32,
17241        ),
17242    >,
17243    pub append_command_buffers: ::std::option::Option<
17244        unsafe extern "C" fn(
17245            context: *mut tm_render_context_o,
17246            cmd_buffers: *mut *mut tm_renderer_command_buffer_o,
17247            num_buffers: u32,
17248        ),
17249    >,
17250    pub resource_buffers: ::std::option::Option<
17251        unsafe extern "C" fn(
17252            context: *mut tm_render_context_o,
17253            res_buffers: *mut *mut tm_renderer_resource_command_buffer_o,
17254        ) -> u32,
17255    >,
17256    pub command_buffers: ::std::option::Option<
17257        unsafe extern "C" fn(
17258            context: *mut tm_render_context_o,
17259            cmd_buffers: *mut *mut tm_renderer_command_buffer_o,
17260        ) -> u32,
17261    >,
17262}
17263#[repr(C)]
17264#[derive(Copy, Clone)]
17265pub struct tm_render_args_t {
17266    pub camera_tm: tm_transform_t,
17267    pub context: *mut tm_render_context_o,
17268    pub render_backend: *mut tm_renderer_backend_i,
17269    pub shader_repository: *mut tm_shader_repository_o,
17270    pub device_affinity_mask: u32,
17271    pub _padding_61: [::std::os::raw::c_char; 4usize],
17272    pub default_resource_buffer: *mut tm_renderer_resource_command_buffer_o,
17273    pub default_command_buffer: *mut tm_renderer_command_buffer_o,
17274    pub render_graph: *mut tm_render_graph_o,
17275    pub render_pipeline: *mut tm_render_pipeline_i,
17276    pub shader_context: *const tm_shader_system_context_o,
17277}
17278#[repr(C)]
17279#[derive(Copy, Clone)]
17280pub struct tm_lighting_environment_settings_t {
17281    pub enabled: bool,
17282    pub _padding_27: [::std::os::raw::c_char; 7usize],
17283    pub asset: tm_tt_id_t,
17284    pub spawned_entity: tm_entity_t,
17285    pub search_buf: [::std::os::raw::c_char; 1024usize],
17286}
17287#[repr(C)]
17288#[derive(Copy, Clone)]
17289pub struct tm_scene_common_api {
17290    pub init_camera: ::std::option::Option<
17291        unsafe extern "C" fn(camera: *mut tm_transform_t, translation: tm_vec3_t),
17292    >,
17293    pub camera_frame_bounds: ::std::option::Option<
17294        unsafe extern "C" fn(
17295            camera: *mut tm_transform_t,
17296            camera_y_fov: f32,
17297            bounds: *const tm_vec3_t,
17298            translation_speed: *mut f32,
17299            focus_point: *mut tm_vec3_t,
17300        ),
17301    >,
17302    pub find_component_render_interfaces: ::std::option::Option<
17303        unsafe extern "C" fn(
17304            entity_ctx: *mut tm_entity_context_o,
17305            transform_component: u32,
17306            tt: *const tm_the_truth_o,
17307            allocator: *mut tm_allocator_i,
17308            selection: *const tm_tt_id_t,
17309            selection_n: u64,
17310            ignore: *const tm_entity_t,
17311            ignore_n: u64,
17312            include_entities_without_render_components: bool,
17313            res: *mut tm_ci_render_gather_callback_args_t,
17314        ),
17315    >,
17316    pub bound_assets: ::std::option::Option<
17317        unsafe extern "C" fn(
17318            entity_ctx: *mut tm_entity_context_o,
17319            transform_component: u32,
17320            tt: *const tm_the_truth_o,
17321            ignore: *const tm_entity_t,
17322            ignore_n: u64,
17323            bounds: *mut tm_vec3_t,
17324            include_origo: bool,
17325        ),
17326    >,
17327    pub bound_selected_assets: ::std::option::Option<
17328        unsafe extern "C" fn(
17329            entity_ctx: *mut tm_entity_context_o,
17330            transform_component: u32,
17331            tt: *const tm_the_truth_o,
17332            selection: *const tm_tt_id_t,
17333            selection_n: u64,
17334            ignore: *const tm_entity_t,
17335            ignore_n: u64,
17336            bounds: *mut tm_vec3_t,
17337            include_origo: bool,
17338        ),
17339    >,
17340    pub bound_entity_asset: ::std::option::Option<
17341        unsafe extern "C" fn(tt: *const tm_the_truth_o, entity: tm_tt_id_t, bounds: *mut tm_vec3_t),
17342    >,
17343    pub find_shader_data_engine_update: ::std::option::Option<
17344        unsafe extern "C" fn(inst: *mut tm_engine_o, data: *mut tm_engine_update_set_t),
17345    >,
17346    pub gather_shader_data_filter: ::std::option::Option<
17347        unsafe extern "C" fn(
17348            inst: *mut tm_engine_o,
17349            components: *const u32,
17350            num_components: u32,
17351            mask: *const tm_component_mask_t,
17352        ) -> bool,
17353    >,
17354    pub find_renderables_engine_update: ::std::option::Option<
17355        unsafe extern "C" fn(inst: *mut tm_engine_o, data: *mut tm_engine_update_set_t),
17356    >,
17357    pub gather_renderables_filter: ::std::option::Option<
17358        unsafe extern "C" fn(
17359            inst: *mut tm_engine_o,
17360            components: *const u32,
17361            num_components: u32,
17362            mask: *const tm_component_mask_t,
17363        ) -> bool,
17364    >,
17365    pub add_default_light_source: ::std::option::Option<
17366        unsafe extern "C" fn(entity_ctx: *mut tm_entity_context_o) -> tm_entity_t,
17367    >,
17368    pub has_any_light_source:
17369        ::std::option::Option<unsafe extern "C" fn(ctx: *mut tm_entity_context_o) -> bool>,
17370    pub viewport_visualization_toolbar: ::std::option::Option<
17371        unsafe extern "C" fn(
17372            tt: *mut tm_the_truth_o,
17373            entity_ctx: *mut tm_entity_context_o,
17374            le_settings: *mut tm_lighting_environment_settings_t,
17375            render_pipeline: *mut tm_render_pipeline_i,
17376            ui: *mut tm_ui_o,
17377            uistyle: *const tm_ui_style_t,
17378            toolbar_r: tm_rect_t,
17379            toolbar_direction: u32,
17380        ) -> tm_rect_t,
17381    >,
17382    pub place_entity: ::std::option::Option<
17383        unsafe extern "C" fn(
17384            tt: *mut tm_the_truth_o,
17385            entity: tm_tt_id_t,
17386            ctx: *mut tm_entity_context_o,
17387            parent_entity: tm_tt_id_t,
17388            pos: tm_vec3_t,
17389            scl: tm_vec3_t,
17390            undo_scope: tm_tt_undo_scope_t,
17391        ),
17392    >,
17393}
17394pub type tm_viewer_render_callback_f = ::std::option::Option<
17395    unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, args: *const tm_render_args_t),
17396>;
17397pub type tm_viewer_gather_shader_data_callback_f = ::std::option::Option<
17398    unsafe extern "C" fn(
17399        inst: *mut ::std::os::raw::c_void,
17400        args: *mut tm_ci_shader_data_gather_callback_args_t,
17401    ),
17402>;
17403pub type tm_viewer_gather_render_callback_f = ::std::option::Option<
17404    unsafe extern "C" fn(
17405        inst: *mut ::std::os::raw::c_void,
17406        args: *mut tm_ci_render_gather_callback_args_t,
17407    ),
17408>;
17409#[repr(C)]
17410#[derive(Copy, Clone)]
17411pub struct tm_viewer_render_args_t {
17412    pub camera_tm: tm_transform_t,
17413    pub near_plane: f32,
17414    pub far_plane: f32,
17415    pub vertical_fov: f32,
17416    pub simulation_speed: f32,
17417    pub render_pipeline_api: *mut tm_render_pipeline_api,
17418    pub final_target_resource_state: u16,
17419    pub _padding_49: [::std::os::raw::c_char; 2usize],
17420    pub rect: tm_rect_t,
17421    pub dpi_scale_factor: f32,
17422    pub editor_visibility_flags: u64,
17423    pub native_resolution: bool,
17424    pub _padding_63: [::std::os::raw::c_char; 3usize],
17425    pub wanted_gpu: u32,
17426    pub capture_target_resource: u32,
17427    pub capture_target_resource_surface: u32,
17428    pub capture_target_resource_state: u16,
17429    pub _padding_78: [::std::os::raw::c_char; 6usize],
17430    pub render_callback: tm_viewer_render_callback_f,
17431    pub render_callback_inst: *mut ::std::os::raw::c_void,
17432    pub gather_shader_data_callback: tm_viewer_gather_shader_data_callback_f,
17433    pub gather_shader_data_callback_inst: *mut ::std::os::raw::c_void,
17434    pub gather_render_callback: tm_viewer_gather_render_callback_f,
17435    pub gather_render_callback_inst: *mut ::std::os::raw::c_void,
17436    pub gpu_picking: *mut tm_gpu_picking_o,
17437}
17438#[repr(C)]
17439#[derive(Copy, Clone)]
17440pub struct tm_viewer_render_info_t {
17441    pub target_width: u32,
17442    pub target_height: u32,
17443    pub dpi_scale_factor: f32,
17444    pub vr_context: u32,
17445    pub camera: *const tm_camera_t,
17446    pub render_pipeline: *mut tm_render_pipeline_i,
17447}
17448#[repr(C)]
17449#[derive(Copy, Clone)]
17450pub struct tm_viewer_api {
17451    pub request_render: ::std::option::Option<
17452        unsafe extern "C" fn(
17453            viewer: *mut tm_viewer_o,
17454            args: *const tm_viewer_render_args_t,
17455            info: *mut tm_viewer_render_info_t,
17456            res_buf: *mut tm_renderer_resource_command_buffer_o,
17457            cmd_buf: *mut tm_renderer_command_buffer_o,
17458        ) -> u32,
17459    >,
17460    pub pipeline: ::std::option::Option<
17461        unsafe extern "C" fn(viewer: *mut tm_viewer_o) -> *mut tm_render_pipeline_i,
17462    >,
17463    pub reset_render_pipeline:
17464        ::std::option::Option<unsafe extern "C" fn(viewer: *mut tm_viewer_o)>,
17465    pub set_render_pipeline_api: ::std::option::Option<
17466        unsafe extern "C" fn(viewer: *mut tm_viewer_o, pipeline_api: *mut tm_render_pipeline_api),
17467    >,
17468    pub screenshot: ::std::option::Option<unsafe extern "C" fn(viewer: *mut tm_viewer_o)>,
17469    pub init_vr:
17470        ::std::option::Option<unsafe extern "C" fn(viewer: *mut tm_viewer_o, activate: bool)>,
17471}
17472#[repr(C)]
17473#[derive(Copy, Clone)]
17474pub struct tm_viewer_manager_api {
17475    pub create_manager: ::std::option::Option<
17476        unsafe extern "C" fn(
17477            allocator: *mut tm_allocator_i,
17478            render_backend: *mut tm_renderer_backend_i,
17479            shader_repository: *mut tm_shader_repository_o,
17480            main_device_affinity: u32,
17481            default_visibility_context: *mut tm_visibility_context_o,
17482            viewport_visibility_flag: u64,
17483        ) -> *mut tm_viewer_manager_o,
17484    >,
17485    pub destroy_manager: ::std::option::Option<
17486        unsafe extern "C" fn(
17487            manager: *mut tm_viewer_manager_o,
17488            res_buf: *mut tm_renderer_resource_command_buffer_o,
17489        ),
17490    >,
17491    pub create: ::std::option::Option<
17492        unsafe extern "C" fn(manager: *mut tm_viewer_manager_o) -> *mut tm_viewer_o,
17493    >,
17494    pub destroy: ::std::option::Option<
17495        unsafe extern "C" fn(
17496            manager: *mut tm_viewer_manager_o,
17497            viewer: *mut tm_viewer_o,
17498            res_buf: *mut tm_renderer_resource_command_buffer_o,
17499        ),
17500    >,
17501    pub viewers: ::std::option::Option<
17502        unsafe extern "C" fn(manager: *mut tm_viewer_manager_o) -> *mut *mut tm_viewer_o,
17503    >,
17504    pub render: ::std::option::Option<
17505        unsafe extern "C" fn(
17506            manager: *mut tm_viewer_manager_o,
17507            shader_context: *const tm_shader_system_context_o,
17508            tt: *const tm_the_truth_o,
17509            frame_params: *const tm_render_pipeline_update_frame_parameters_t,
17510        ),
17511    >,
17512}
17513pub const TM_TT_PROP__CLIPBOARD__OBJECTS: ::std::os::raw::c_int = 0;
17514pub const TM_TT_PROP__CLIPBOARD__IS_CUT: ::std::os::raw::c_int = 1;
17515pub type _bindgen_ty_217 = ::std::os::raw::c_int;
17516#[repr(C)]
17517#[derive(Copy, Clone)]
17518pub struct tm_ui_clipboard_api {
17519    pub setup_the_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
17520    pub cut: ::std::option::Option<
17521        unsafe extern "C" fn(
17522            tt: *mut tm_the_truth_o,
17523            objects: *const tm_tt_id_t,
17524            count: u32,
17525            undo_stack: *mut tm_undo_stack_i,
17526        ),
17527    >,
17528    pub copy: ::std::option::Option<
17529        unsafe extern "C" fn(
17530            tt: *mut tm_the_truth_o,
17531            objects: *const tm_tt_id_t,
17532            count: u32,
17533            undo_stack: *mut tm_undo_stack_i,
17534        ),
17535    >,
17536    pub empty: ::std::option::Option<
17537        unsafe extern "C" fn(tt: *mut tm_the_truth_o, undo_scope: tm_tt_undo_scope_t),
17538    >,
17539    pub cut_objects: ::std::option::Option<
17540        unsafe extern "C" fn(
17541            tt: *const tm_the_truth_o,
17542            ta: *mut tm_temp_allocator_i,
17543        ) -> *const tm_tt_id_t,
17544    >,
17545    pub copied_objects: ::std::option::Option<
17546        unsafe extern "C" fn(
17547            tt: *const tm_the_truth_o,
17548            ta: *mut tm_temp_allocator_i,
17549        ) -> *const tm_tt_id_t,
17550    >,
17551    pub truth: ::std::option::Option<unsafe extern "C" fn() -> *const tm_the_truth_o>,
17552}
17553#[repr(C)]
17554#[derive(Copy, Clone)]
17555pub struct tm_docking_tabwell_o {
17556    _unused: [u8; 0],
17557}
17558#[repr(C)]
17559#[derive(Copy, Clone)]
17560pub struct tm_ui_renderer_o {
17561    _unused: [u8; 0],
17562}
17563pub const tm_tab_focus_event_TM_TAB_FOCUS_EVENT__FOCUS: tm_tab_focus_event = 0;
17564pub const tm_tab_focus_event_TM_TAB_FOCUS_EVENT__OPEN: tm_tab_focus_event = 1;
17565pub type tm_tab_focus_event = ::std::os::raw::c_int;
17566#[repr(C)]
17567#[derive(Copy, Clone)]
17568pub struct tm_tab_vt_root_t {
17569    pub tt: *mut tm_the_truth_o,
17570    pub root: tm_tt_id_t,
17571    pub counter: u64,
17572}
17573#[repr(C)]
17574#[derive(Copy, Clone)]
17575pub struct tm_docking_feed_events_args_t {
17576    pub window_ui: *mut tm_ui_o,
17577    pub window_rect: tm_rect_t,
17578    pub window_dpi_scale_factor: f32,
17579    pub window_has_focus: bool,
17580    pub window_under_cursor: bool,
17581    pub _padding_89: [::std::os::raw::c_char; 2usize],
17582}
17583pub const TM_TT_PROP__DOCKING_SETTINGS__TOOLBARS_SETTINGS: ::std::os::raw::c_int = 0;
17584pub type _bindgen_ty_218 = ::std::os::raw::c_int;
17585#[repr(C)]
17586#[derive(Copy, Clone)]
17587pub struct tm_tab_vt {
17588    pub name: *const ::std::os::raw::c_char,
17589    pub name_hash: u64,
17590    pub create_menu_name:
17591        ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
17592    pub create: ::std::option::Option<
17593        unsafe extern "C" fn(context: *mut tm_tab_create_context_t) -> *mut tm_tab_i,
17594    >,
17595    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o)>,
17596    pub ui: ::std::option::Option<
17597        unsafe extern "C" fn(
17598            inst: *mut tm_tab_o,
17599            font: u32,
17600            font_info: *const tm_font_t,
17601            font_scale: f32,
17602            ui: *mut tm_ui_o,
17603            rect: tm_rect_t,
17604        ),
17605    >,
17606    pub hidden_update: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o)>,
17607    pub title: ::std::option::Option<
17608        unsafe extern "C" fn(
17609            inst: *mut tm_tab_o,
17610            ui: *mut tm_ui_o,
17611        ) -> *const ::std::os::raw::c_char,
17612    >,
17613    pub set_root: ::std::option::Option<
17614        unsafe extern "C" fn(inst: *mut tm_tab_o, tt: *mut tm_the_truth_o, root: tm_tt_id_t),
17615    >,
17616    pub root: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o) -> tm_tab_vt_root_t>,
17617    pub can_close: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_tab_o) -> bool>,
17618    pub focus_event: ::std::option::Option<
17619        unsafe extern "C" fn(
17620            inst: *mut tm_tab_o,
17621            from: *mut tm_tab_i,
17622            event: tm_tab_focus_event,
17623            tt: *mut tm_the_truth_o,
17624            object: tm_tt_id_t,
17625            selection: *const tm_tt_id_t,
17626            selection_n: u32,
17627        ),
17628    >,
17629    pub feed_events: ::std::option::Option<
17630        unsafe extern "C" fn(
17631            inst: *mut tm_tab_o,
17632            events: *const tm_input_event_t,
17633            count: u32,
17634            args: *mut tm_docking_feed_events_args_t,
17635        ),
17636    >,
17637    pub process_dropped_os_files: ::std::option::Option<
17638        unsafe extern "C" fn(
17639            inst: *mut tm_tab_o,
17640            ui: *mut tm_ui_o,
17641            files: *mut *mut ::std::os::raw::c_char,
17642            num_files: u32,
17643        ),
17644    >,
17645    pub toolbars: ::std::option::Option<
17646        unsafe extern "C" fn(inst: *mut tm_tab_o, n: *mut u32) -> *mut tm_tab_toolbar_i,
17647    >,
17648    pub cant_be_pinned: bool,
17649    pub run_as_job: bool,
17650    pub _padding_222: [::std::os::raw::c_char; 6usize],
17651}
17652#[repr(C)]
17653#[derive(Copy, Clone)]
17654pub struct tm_tab_i {
17655    pub vt: *mut tm_tab_vt,
17656    pub inst: *mut tm_tab_o,
17657    pub root_id: u64,
17658}
17659pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_NONE: tm_docking_tabwell_split = 0;
17660pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_RIGHT: tm_docking_tabwell_split = 1;
17661pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_LEFT: tm_docking_tabwell_split = 2;
17662pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_TOP: tm_docking_tabwell_split = 3;
17663pub const tm_docking_tabwell_split_TM_DOCKING_TABWELL_SPLIT_BOTTOM: tm_docking_tabwell_split = 4;
17664pub type tm_docking_tabwell_split = ::std::os::raw::c_int;
17665#[repr(C)]
17666#[derive(Copy, Clone)]
17667pub struct tm_docking_tab_info_t {
17668    pub tab: *mut tm_tab_i,
17669    pub ui: *mut tm_ui_o,
17670    pub visible: bool,
17671    pub _padding_260: [::std::os::raw::c_char; 7usize],
17672    pub last_focused: tm_clock_o,
17673    pub pin_type: u32,
17674    pub _padding_267: [::std::os::raw::c_char; 4usize],
17675}
17676pub const TM_DOCKING_MAX_TABS_IN_TABWELL: ::std::os::raw::c_int = 32;
17677pub type _bindgen_ty_219 = ::std::os::raw::c_int;
17678#[repr(C)]
17679#[derive(Copy, Clone)]
17680pub struct tm_docking_tabwell_info_t {
17681    pub left: *mut tm_docking_tabwell_o,
17682    pub right: *mut tm_docking_tabwell_o,
17683    pub top: *mut tm_docking_tabwell_o,
17684    pub bottom: *mut tm_docking_tabwell_o,
17685    pub bias: f32,
17686    pub num_tabs: u32,
17687    pub tabs: [*mut tm_tab_i; 32usize],
17688    pub last_rect: tm_rect_t,
17689}
17690#[repr(C)]
17691#[derive(Copy, Clone)]
17692pub struct tm_docking_find_tab_t {
17693    pub tab: *mut tm_tab_i,
17694    pub ui: *mut tm_ui_o,
17695}
17696#[repr(C)]
17697#[derive(Copy, Clone)]
17698pub struct tm_docking_find_tab_opt_t {
17699    pub from_tab: *mut tm_tab_i,
17700    pub to_tab: *mut tm_tab_i,
17701    pub in_ui: *mut tm_ui_o,
17702    pub find_asset_tt: *mut tm_the_truth_o,
17703    pub find_asset: tm_tt_id_t,
17704    pub exclude_pinned: bool,
17705    pub _padding_319: [::std::os::raw::c_char; 7usize],
17706}
17707#[repr(C)]
17708#[derive(Copy, Clone)]
17709pub struct tm_docking_api {
17710    pub create_truth_types: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
17711    pub add_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, r: tm_rect_t)>,
17712    pub remove_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
17713    pub root:
17714        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_docking_tabwell_o>,
17715    pub split_tabwell: ::std::option::Option<
17716        unsafe extern "C" fn(
17717            parent: *mut tm_docking_tabwell_o,
17718            split: tm_docking_tabwell_split,
17719            bias: f32,
17720            sibling: *mut *mut tm_docking_tabwell_o,
17721        ) -> *mut tm_docking_tabwell_o,
17722    >,
17723    pub add_tab: ::std::option::Option<
17724        unsafe extern "C" fn(
17725            ui: *mut tm_ui_o,
17726            tabwell: *mut tm_docking_tabwell_o,
17727            tab: *mut tm_tab_i,
17728        ),
17729    >,
17730    pub remove_tab: ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i)>,
17731    pub move_tab: ::std::option::Option<
17732        unsafe extern "C" fn(
17733            tab: *mut tm_tab_i,
17734            ui: *mut tm_ui_o,
17735            tabwell: *mut tm_docking_tabwell_o,
17736        ),
17737    >,
17738    pub clear: ::std::option::Option<unsafe extern "C" fn()>,
17739    pub feed_events: ::std::option::Option<
17740        unsafe extern "C" fn(
17741            events: *const tm_input_event_t,
17742            count: u32,
17743            args: *mut tm_docking_feed_events_args_t,
17744        ),
17745    >,
17746    pub ui: ::std::option::Option<
17747        unsafe extern "C" fn(
17748            ui: *mut tm_ui_o,
17749            ui_renderer: *mut tm_ui_renderer_o,
17750            rect: tm_rect_t,
17751            font: u32,
17752            font_info: *const tm_font_t,
17753            font_scale: f32,
17754            ui_has_focus: bool,
17755            dropped_files: *const tm_os_dropped_file_t,
17756            num_dropped_files: u32,
17757            context: *mut tm_tab_create_context_t,
17758            settings_tt: *mut tm_the_truth_o,
17759            settings_obj: tm_tt_id_t,
17760        ),
17761    >,
17762    pub is_dragging_tab:
17763        ::std::option::Option<unsafe extern "C" fn(pos: *mut tm_vec2_t) -> *mut tm_tab_i>,
17764    pub should_create_new_ui_for_tab: ::std::option::Option<
17765        unsafe extern "C" fn(
17766            create_context: *mut tm_tab_create_context_t,
17767            rect: *mut tm_rect_t,
17768        ) -> *mut tm_tab_i,
17769    >,
17770    pub focused_tabwell:
17771        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_docking_tabwell_o>,
17772    pub focused_tab: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_tab_i>,
17773    pub tabwell_info: ::std::option::Option<
17774        unsafe extern "C" fn(tw: *mut tm_docking_tabwell_o) -> tm_docking_tabwell_info_t,
17775    >,
17776    pub tab_info: ::std::option::Option<
17777        unsafe extern "C" fn(
17778            tabs: *mut tm_docking_tab_info_t,
17779            n: u32,
17780            filter_ui: *mut tm_ui_o,
17781            filter_visible: bool,
17782        ) -> u32,
17783    >,
17784    pub root_history: ::std::option::Option<
17785        unsafe extern "C" fn(tab: *mut tm_tab_i, n: *mut u32) -> *mut tm_tab_vt_root_t,
17786    >,
17787    pub clear_root_history_with_greater_counter:
17788        ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i, counter: u64)>,
17789    pub tab_ui: ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i) -> *mut tm_ui_o>,
17790    pub can_remove_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
17791    pub set_focus_tab:
17792        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, tab: *mut tm_tab_i)>,
17793    pub close_focused_tab: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
17794    pub close_all_tabs: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
17795    pub send_focus_event: ::std::option::Option<
17796        unsafe extern "C" fn(
17797            from: *mut tm_tab_i,
17798            event: tm_tab_focus_event,
17799            tt: *mut tm_the_truth_o,
17800            object: tm_tt_id_t,
17801            selection: *const tm_tt_id_t,
17802            selection_n: u32,
17803        ),
17804    >,
17805    pub destroy_truth: ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o)>,
17806    pub find_tab: ::std::option::Option<
17807        unsafe extern "C" fn(
17808            type_name_hash: u64,
17809            opt: *const tm_docking_find_tab_opt_t,
17810        ) -> tm_docking_find_tab_t,
17811    >,
17812    pub find_tabs: ::std::option::Option<
17813        unsafe extern "C" fn(
17814            type_name_hash: u64,
17815            ta: *mut tm_temp_allocator_i,
17816        ) -> *mut tm_docking_find_tab_t,
17817    >,
17818    pub pin_type: ::std::option::Option<unsafe extern "C" fn(tab: *mut tm_tab_i) -> u32>,
17819    pub pin_object: ::std::option::Option<
17820        unsafe extern "C" fn(tab: *mut tm_tab_i, tt: *mut tm_the_truth_o, root: tm_tt_id_t),
17821    >,
17822    pub draw_toolbars: ::std::option::Option<
17823        unsafe extern "C" fn(
17824            tab: *mut tm_tab_i,
17825            ui: *mut tm_ui_o,
17826            tab_r: tm_rect_t,
17827            font: u32,
17828            font_info: *const tm_font_t,
17829            font_scale: f32,
17830            settings_tt: *mut tm_the_truth_o,
17831            settings_obj: tm_tt_id_t,
17832        ) -> tm_rect_t,
17833    >,
17834}
17835#[repr(C)]
17836#[derive(Copy, Clone)]
17837pub struct tm_ui_drag_api {
17838    pub start_dragging:
17839        ::std::option::Option<unsafe extern "C" fn(tt: *mut tm_the_truth_o, object: tm_tt_id_t)>,
17840    pub start_dragging_multiple_objects: ::std::option::Option<
17841        unsafe extern "C" fn(
17842            tt: *mut tm_the_truth_o,
17843            objects: *const tm_tt_id_t,
17844            object_count: u64,
17845        ),
17846    >,
17847    pub single_dragged_object:
17848        ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> tm_tt_id_t>,
17849    pub all_dragged_objects:
17850        ::std::option::Option<unsafe extern "C" fn(tt: *const tm_the_truth_o) -> *mut tm_tt_id_t>,
17851    pub dragged_truth: ::std::option::Option<unsafe extern "C" fn() -> *const tm_the_truth_o>,
17852    pub stop_dragging: ::std::option::Option<unsafe extern "C" fn()>,
17853}
17854#[repr(C)]
17855#[derive(Copy, Clone)]
17856pub struct tm_font_glyph_t {
17857    pub texture: u32,
17858    pub uv: tm_rect_t,
17859    pub offset: tm_vec2_t,
17860    pub xadvance: f32,
17861    pub glyph_segments_offset: u32,
17862}
17863#[repr(C)]
17864#[derive(Copy, Clone)]
17865pub struct tm_font_glyph_line_segment_t {
17866    pub p0: tm_vec2_t,
17867    pub p1: tm_vec2_t,
17868}
17869#[repr(C)]
17870#[derive(Copy, Clone)]
17871pub struct tm_font_glyph_bezier_segment_t {
17872    pub p0: tm_vec2_t,
17873    pub p1: tm_vec2_t,
17874    pub c: tm_vec2_t,
17875}
17876#[repr(C)]
17877#[derive(Copy, Clone)]
17878pub struct tm_font_range_t {
17879    pub start: u32,
17880    pub n: u32,
17881}
17882pub const TM_FONT_MAX_BAKED_SCALES: ::std::os::raw::c_int = 8;
17883pub type _bindgen_ty_220 = ::std::os::raw::c_int;
17884#[repr(C)]
17885#[derive(Copy, Clone)]
17886pub struct tm_font_t {
17887    pub num_glyphs: u32,
17888    pub _padding_86: [::std::os::raw::c_char; 4usize],
17889    pub glyphs: *mut tm_font_glyph_t,
17890    pub glyphs_segments_size: u32,
17891    pub _padding_93: [::std::os::raw::c_char; 4usize],
17892    pub glyphs_segments: *mut u8,
17893    pub num_ranges: u32,
17894    pub em: f32,
17895    pub ranges: *mut tm_font_range_t,
17896    pub num_font_scales: u32,
17897    pub font_scales: [f32; 8usize],
17898    pub ascent: [f32; 8usize],
17899    pub descent: [f32; 8usize],
17900    pub line_gap: [f32; 8usize],
17901    pub ex: [f32; 8usize],
17902    pub cap_height: [f32; 8usize],
17903    pub _padding_134: [::std::os::raw::c_char; 4usize],
17904}
17905pub const TM_DRAW2D__FEATHER__DEFAULT: ::std::os::raw::c_int = 0;
17906pub const TM_DRAW2D__FEATHER__NONE: ::std::os::raw::c_int = 1;
17907pub type _bindgen_ty_221 = ::std::os::raw::c_int;
17908#[repr(C)]
17909#[derive(Copy, Clone)]
17910pub struct tm_draw2d_style_t {
17911    pub color: tm_color_srgb_t,
17912    pub line_width: f32,
17913    pub feather_width: f32,
17914    pub feather: u32,
17915    pub clip: u32,
17916    pub font: u32,
17917    pub font_info: *const tm_font_t,
17918    pub font_scale: f32,
17919    pub include_alpha: bool,
17920    pub _padding_175: [::std::os::raw::c_char; 3usize],
17921}
17922#[repr(C)]
17923#[derive(Copy, Clone)]
17924pub struct tm_draw2d_vbuffer_t {
17925    pub vbuffer: *mut u8,
17926    pub vbytes: u32,
17927    pub vbytes_allocated: u32,
17928}
17929#[repr(C)]
17930#[derive(Copy, Clone)]
17931pub struct tm_draw2d_ibuffer_t {
17932    pub ibuffer: *mut u32,
17933    pub in_: u32,
17934    pub in_allocated: u32,
17935}
17936pub const TM_DRAW2D_AUX_DATA_TYPE_GRID: ::std::os::raw::c_int = 3;
17937pub type _bindgen_ty_222 = ::std::os::raw::c_int;
17938#[repr(C)]
17939#[derive(Copy, Clone)]
17940pub struct tm_draw2d_aux_data_grid_t {
17941    pub offset: tm_vec2_t,
17942    pub cell_size: f32,
17943    pub thin_lines_color: tm_color_srgb_t,
17944    pub thick_lines_color: tm_color_srgb_t,
17945}
17946#[repr(C)]
17947#[derive(Copy, Clone)]
17948pub struct tm_draw2d_api {
17949    pub add_clip_rect: ::std::option::Option<
17950        unsafe extern "C" fn(vbuffer: *mut tm_draw2d_vbuffer_t, clip: tm_rect_t) -> u32,
17951    >,
17952    pub add_sub_clip_rect: ::std::option::Option<
17953        unsafe extern "C" fn(
17954            vbuffer: *mut tm_draw2d_vbuffer_t,
17955            parent: u32,
17956            clip: tm_rect_t,
17957        ) -> u32,
17958    >,
17959    pub clip_rect: ::std::option::Option<
17960        unsafe extern "C" fn(vbuffer: *mut tm_draw2d_vbuffer_t, clip: u32) -> tm_rect_t,
17961    >,
17962    pub add_font: ::std::option::Option<
17963        unsafe extern "C" fn(vbuffer: *mut tm_draw2d_vbuffer_t, font: *const tm_font_t) -> u32,
17964    >,
17965    pub fill_rect: ::std::option::Option<
17966        unsafe extern "C" fn(
17967            vbuffer: *mut tm_draw2d_vbuffer_t,
17968            ibuffer: *mut tm_draw2d_ibuffer_t,
17969            style: *const tm_draw2d_style_t,
17970            r: tm_rect_t,
17971        ),
17972    >,
17973    pub fill_rect_feathered: ::std::option::Option<
17974        unsafe extern "C" fn(
17975            vbuffer: *mut tm_draw2d_vbuffer_t,
17976            ibuffer: *mut tm_draw2d_ibuffer_t,
17977            style: *const tm_draw2d_style_t,
17978            r: tm_rect_t,
17979        ),
17980    >,
17981    pub stroke_rect: ::std::option::Option<
17982        unsafe extern "C" fn(
17983            vbuffer: *mut tm_draw2d_vbuffer_t,
17984            ibuffer: *mut tm_draw2d_ibuffer_t,
17985            style: *const tm_draw2d_style_t,
17986            r: tm_rect_t,
17987        ),
17988    >,
17989    pub textured_rect: ::std::option::Option<
17990        unsafe extern "C" fn(
17991            vbuffer: *mut tm_draw2d_vbuffer_t,
17992            ibuffer: *mut tm_draw2d_ibuffer_t,
17993            style: *const tm_draw2d_style_t,
17994            r: tm_rect_t,
17995            texture: u32,
17996            uv: tm_rect_t,
17997        ),
17998    >,
17999    pub aux_rect: ::std::option::Option<
18000        unsafe extern "C" fn(
18001            vbuffer: *mut tm_draw2d_vbuffer_t,
18002            ibuffer: *mut tm_draw2d_ibuffer_t,
18003            style: *const tm_draw2d_style_t,
18004            r: tm_rect_t,
18005            aux_data_type: u32,
18006            aux_data: *const ::std::os::raw::c_void,
18007            aux_data_size: u32,
18008        ),
18009    >,
18010    pub gradient_rect: ::std::option::Option<
18011        unsafe extern "C" fn(
18012            vbuffer: *mut tm_draw2d_vbuffer_t,
18013            ibuffer: *mut tm_draw2d_ibuffer_t,
18014            style: *const tm_draw2d_style_t,
18015            r: tm_rect_t,
18016            colors: *mut tm_color_srgb_t,
18017        ),
18018    >,
18019    pub fill_rounded_rect: ::std::option::Option<
18020        unsafe extern "C" fn(
18021            vbuffer: *mut tm_draw2d_vbuffer_t,
18022            ibuffer: *mut tm_draw2d_ibuffer_t,
18023            style: *const tm_draw2d_style_t,
18024            r: tm_rect_t,
18025            radius: f32,
18026        ),
18027    >,
18028    pub stroke_rounded_rect: ::std::option::Option<
18029        unsafe extern "C" fn(
18030            vbuffer: *mut tm_draw2d_vbuffer_t,
18031            ibuffer: *mut tm_draw2d_ibuffer_t,
18032            style: *const tm_draw2d_style_t,
18033            r: tm_rect_t,
18034            radius: f32,
18035        ),
18036    >,
18037    pub fill_circle: ::std::option::Option<
18038        unsafe extern "C" fn(
18039            vbuffer: *mut tm_draw2d_vbuffer_t,
18040            ibuffer: *mut tm_draw2d_ibuffer_t,
18041            style: *const tm_draw2d_style_t,
18042            pos: tm_vec2_t,
18043            radius: f32,
18044        ),
18045    >,
18046    pub stroke_circle: ::std::option::Option<
18047        unsafe extern "C" fn(
18048            vbuffer: *mut tm_draw2d_vbuffer_t,
18049            ibuffer: *mut tm_draw2d_ibuffer_t,
18050            style: *const tm_draw2d_style_t,
18051            pos: tm_vec2_t,
18052            radius: f32,
18053        ),
18054    >,
18055    pub fill_triangles: ::std::option::Option<
18056        unsafe extern "C" fn(
18057            vbuffer: *mut tm_draw2d_vbuffer_t,
18058            ibuffer: *mut tm_draw2d_ibuffer_t,
18059            style: *const tm_draw2d_style_t,
18060            points: *const tm_vec2_t,
18061            num_points: u32,
18062            indices: *const u32,
18063            num_indices: u32,
18064        ),
18065    >,
18066    pub fill_convex_polyline: ::std::option::Option<
18067        unsafe extern "C" fn(
18068            vbuffer: *mut tm_draw2d_vbuffer_t,
18069            ibuffer: *mut tm_draw2d_ibuffer_t,
18070            style: *const tm_draw2d_style_t,
18071            points: *const tm_vec2_t,
18072            num_points: u32,
18073        ),
18074    >,
18075    pub stroke_polyline: ::std::option::Option<
18076        unsafe extern "C" fn(
18077            vbuffer: *mut tm_draw2d_vbuffer_t,
18078            ibuffer: *mut tm_draw2d_ibuffer_t,
18079            style: *const tm_draw2d_style_t,
18080            points: *const tm_vec2_t,
18081            num_points: u32,
18082            closed: bool,
18083        ),
18084    >,
18085    pub stroke_polyline_widths: ::std::option::Option<
18086        unsafe extern "C" fn(
18087            vbuffer: *mut tm_draw2d_vbuffer_t,
18088            ibuffer: *mut tm_draw2d_ibuffer_t,
18089            style: *const tm_draw2d_style_t,
18090            points: *const tm_vec2_t,
18091            widths: *const f32,
18092            num_points: u32,
18093            closed: bool,
18094        ),
18095    >,
18096    pub bezier_path: ::std::option::Option<
18097        unsafe extern "C" fn(
18098            curve: *const tm_vec2_t,
18099            num_curve_points: u32,
18100            tolerance: f32,
18101            ta: *mut tm_temp_allocator_i,
18102            num_points: *mut u32,
18103            allocated_points: *mut u32,
18104        ) -> *mut tm_vec2_t,
18105    >,
18106    pub fill_convex_bezier: ::std::option::Option<
18107        unsafe extern "C" fn(
18108            vbuffer: *mut tm_draw2d_vbuffer_t,
18109            ibuffer: *mut tm_draw2d_ibuffer_t,
18110            style: *const tm_draw2d_style_t,
18111            curve: *const tm_vec2_t,
18112            num_curve_points: u32,
18113            tolerance: f32,
18114            ta: *mut tm_temp_allocator_i,
18115        ),
18116    >,
18117    pub stroke_bezier: ::std::option::Option<
18118        unsafe extern "C" fn(
18119            vbuffer: *mut tm_draw2d_vbuffer_t,
18120            ibuffer: *mut tm_draw2d_ibuffer_t,
18121            style: *const tm_draw2d_style_t,
18122            curve: *const tm_vec2_t,
18123            num_curve_points: u32,
18124            closed: bool,
18125            tolerance: f32,
18126            ta: *mut tm_temp_allocator_i,
18127        ),
18128    >,
18129    pub draw_glyphs: ::std::option::Option<
18130        unsafe extern "C" fn(
18131            vbuffer: *mut tm_draw2d_vbuffer_t,
18132            ibuffer: *mut tm_draw2d_ibuffer_t,
18133            style: *const tm_draw2d_style_t,
18134            pos: tm_vec2_t,
18135            glyphs: *const u16,
18136            num_glyphs: u32,
18137        ) -> f32,
18138    >,
18139    pub draw_glyphs_rotated: ::std::option::Option<
18140        unsafe extern "C" fn(
18141            vbuffer: *mut tm_draw2d_vbuffer_t,
18142            ibuffer: *mut tm_draw2d_ibuffer_t,
18143            style: *const tm_draw2d_style_t,
18144            pos: tm_vec2_t,
18145            glyphs: *const u16,
18146            num_glyphs: u32,
18147            x: tm_vec2_t,
18148            y: tm_vec2_t,
18149        ) -> f32,
18150    >,
18151    pub merge_buffers: ::std::option::Option<
18152        unsafe extern "C" fn(
18153            to_vbuffer: *mut tm_draw2d_vbuffer_t,
18154            to_ibuffers: *mut *mut tm_draw2d_ibuffer_t,
18155            from_vbuffer: *const tm_draw2d_vbuffer_t,
18156            from_ibuffers: *const *mut tm_draw2d_ibuffer_t,
18157            num_ibuffers: u32,
18158        ),
18159    >,
18160}
18161#[repr(C)]
18162#[derive(Copy, Clone)]
18163pub struct tm_font_api {
18164    pub glyphs: ::std::option::Option<
18165        unsafe extern "C" fn(
18166            font: *const tm_font_t,
18167            glyphs: *mut u16,
18168            codepoints: *const u32,
18169            size: u32,
18170        ),
18171    >,
18172    pub metrics: ::std::option::Option<
18173        unsafe extern "C" fn(
18174            font: *const tm_font_t,
18175            font_scale: f32,
18176            glyphs: *const u16,
18177            num_glyphs: u32,
18178        ) -> tm_rect_t,
18179    >,
18180    pub metrics_array: ::std::option::Option<
18181        unsafe extern "C" fn(
18182            font: *const tm_font_t,
18183            font_scale: f32,
18184            pos_x: *mut f32,
18185            rects: *mut tm_rect_t,
18186            glyphs: *const u16,
18187            num_glyphs: u32,
18188        ) -> tm_rect_t,
18189    >,
18190    pub line: ::std::option::Option<
18191        unsafe extern "C" fn(
18192            font: *const tm_font_t,
18193            font_scale: f32,
18194            line_width: *mut f32,
18195            glyphs: *const u16,
18196            num_glyphs: u32,
18197        ) -> u32,
18198    >,
18199    pub rescale_font:
18200        ::std::option::Option<unsafe extern "C" fn(font: *mut tm_font_t, scale_factor: f32)>,
18201    pub glyph_set_from_scale: ::std::option::Option<
18202        unsafe extern "C" fn(
18203            font: *const tm_font_t,
18204            font_scale: f32,
18205            new_font_scale: *mut f32,
18206        ) -> u32,
18207    >,
18208    pub first_glyph_of_set: ::std::option::Option<
18209        unsafe extern "C" fn(font: *const tm_font_t, set: u32) -> *const tm_font_glyph_t,
18210    >,
18211}
18212pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_TRIANGLE: tm_draw2d_primitive = 67108864;
18213pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_RECT: tm_draw2d_primitive = 134217728;
18214pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_RECT_TEXTURED: tm_draw2d_primitive = 201326592;
18215pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_RECT_AUX_DATA: tm_draw2d_primitive = 268435456;
18216pub const tm_draw2d_primitive_TM_DRAW2D_PRIMITIVE_GLYPH: tm_draw2d_primitive = -2147483648;
18217pub type tm_draw2d_primitive = ::std::os::raw::c_int;
18218pub const tm_draw2d_corner_TM_DRAW2D_CORNER_TL: tm_draw2d_corner = 0;
18219pub const tm_draw2d_corner_TM_DRAW2D_CORNER_TR: tm_draw2d_corner = 16777216;
18220pub const tm_draw2d_corner_TM_DRAW2D_CORNER_BL: tm_draw2d_corner = 33554432;
18221pub const tm_draw2d_corner_TM_DRAW2D_CORNER_BR: tm_draw2d_corner = 50331648;
18222pub type tm_draw2d_corner = ::std::os::raw::c_int;
18223#[repr(C)]
18224#[derive(Copy, Clone)]
18225pub struct tm_draw2d_triangle_vertex_t {
18226    pub pos: tm_vec2_t,
18227    pub color: tm_color_srgb_t,
18228    pub clip: u32,
18229}
18230#[repr(C)]
18231#[derive(Copy, Clone)]
18232pub struct tm_draw2d_rect_vertex_t {
18233    pub rect: tm_rect_t,
18234    pub color: tm_color_srgb_t,
18235    pub clip: u32,
18236}
18237#[repr(C)]
18238#[derive(Copy, Clone)]
18239pub struct tm_draw2d_rect_textured_vertex_t {
18240    pub rect: tm_rect_t,
18241    pub tint: tm_color_srgb_t,
18242    pub clip: u32,
18243    pub texture: u32,
18244    pub uv: tm_rect_t,
18245}
18246#[repr(C)]
18247#[derive(Copy, Clone)]
18248pub struct tm_draw2d_glyph_range_vertex_t {
18249    pub origin: tm_vec2_t,
18250    pub color: tm_color_srgb_t,
18251    pub scale: f32,
18252    pub clip: u32,
18253    pub font: u32,
18254    pub x: tm_vec2_t,
18255    pub y: tm_vec2_t,
18256}
18257#[repr(C)]
18258#[derive(Copy, Clone)]
18259pub struct tm_draw2d_glyph_vertex_t {
18260    pub x_offset: f32,
18261    pub glyph: u32,
18262}
18263#[repr(C)]
18264#[derive(Copy, Clone)]
18265pub struct font_library_t {
18266    _unused: [u8; 0],
18267}
18268extern "C" {
18269    pub fn create_font_library(allocator: *mut tm_allocator_i) -> *mut font_library_t;
18270}
18271extern "C" {
18272    pub fn destroy_font_library(lib: *mut font_library_t);
18273}
18274extern "C" {
18275    pub fn font_library_add_ttf(
18276        lib: *mut font_library_t,
18277        file: *const ::std::os::raw::c_char,
18278    ) -> u32;
18279}
18280extern "C" {
18281    pub fn font_library_lookup(
18282        lib: *const font_library_t,
18283        font: u32,
18284        size: u32,
18285        display_dpi: f32,
18286    ) -> *const tm_font_t;
18287}
18288extern "C" {
18289    pub fn font_library_generate(
18290        lib: *mut font_library_t,
18291        tm_res_buf_api: *mut tm_renderer_resource_command_buffer_api,
18292        font_texture_id: u32,
18293        texture_handle: *mut u32,
18294        res_buf: *mut tm_renderer_resource_command_buffer_o,
18295        device_affinity: u32,
18296        font: u32,
18297        size: u32,
18298        scales: *const f32,
18299        n_scales: u32,
18300        display_dpi: f32,
18301    ) -> *mut tm_font_t;
18302}
18303pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__NO_MOVE: tm_gizmo__move_result = 0;
18304pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__PREVIEW: tm_gizmo__move_result = 1;
18305pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__COMMIT: tm_gizmo__move_result = 2;
18306pub const tm_gizmo__move_result_TM_GIZMO__MOVE_RESULT__DUPLICATE: tm_gizmo__move_result = 3;
18307pub type tm_gizmo__move_result = ::std::os::raw::c_int;
18308#[repr(C)]
18309#[derive(Copy, Clone)]
18310pub struct tm_gizmo__move_settings_t {
18311    pub use_world_axes: bool,
18312    pub grid_snap: bool,
18313    pub _padding_36: [::std::os::raw::c_char; 2usize],
18314    pub grid_size: f32,
18315}
18316#[repr(C)]
18317#[derive(Copy, Clone)]
18318pub struct tm_gizmo__rotate_settings_t {
18319    pub use_world_axes: bool,
18320    pub snap: bool,
18321    pub _padding_50: [::std::os::raw::c_char; 2usize],
18322    pub snap_angle: f32,
18323}
18324#[repr(C)]
18325#[derive(Copy, Clone)]
18326pub struct tm_gizmo__scale_settings_t {
18327    pub absolute_handle: bool,
18328}
18329#[repr(C)]
18330#[derive(Copy, Clone)]
18331pub struct tm_gizmo__grid_settings_t {
18332    pub visibile: bool,
18333    pub _padding_69: [::std::os::raw::c_char; 3usize],
18334    pub transform: tm_transform_t,
18335}
18336#[repr(C)]
18337#[derive(Copy, Clone)]
18338pub struct tm_gizmo_api {
18339    pub move_: ::std::option::Option<
18340        unsafe extern "C" fn(
18341            ui: *mut tm_ui_o,
18342            uistyle: *const tm_ui_style_t,
18343            pbuf: *mut tm_primitive_drawer_buffer_t,
18344            vbuf: *mut tm_primitive_drawer_buffer_t,
18345            camera: *const tm_camera_t,
18346            viewport: tm_rect_t,
18347            tm: *const tm_transform_t,
18348            local: *mut tm_transform_t,
18349            settings: *const tm_gizmo__move_settings_t,
18350            grid_settings: *mut tm_gizmo__grid_settings_t,
18351        ) -> tm_gizmo__move_result,
18352    >,
18353    pub rotate: ::std::option::Option<
18354        unsafe extern "C" fn(
18355            ui: *mut tm_ui_o,
18356            uistyle: *const tm_ui_style_t,
18357            pbuf: *mut tm_primitive_drawer_buffer_t,
18358            vbuf: *mut tm_primitive_drawer_buffer_t,
18359            camera: *const tm_camera_t,
18360            viewport: tm_rect_t,
18361            tm: *const tm_transform_t,
18362            local: *mut tm_transform_t,
18363            settings: *const tm_gizmo__rotate_settings_t,
18364        ) -> tm_gizmo__move_result,
18365    >,
18366    pub scale: ::std::option::Option<
18367        unsafe extern "C" fn(
18368            ui: *mut tm_ui_o,
18369            uistyle: *const tm_ui_style_t,
18370            pbuf: *mut tm_primitive_drawer_buffer_t,
18371            vbuf: *mut tm_primitive_drawer_buffer_t,
18372            camera: *const tm_camera_t,
18373            viewport: tm_rect_t,
18374            tm: *const tm_transform_t,
18375            local: *mut tm_transform_t,
18376            settings: *const tm_gizmo__scale_settings_t,
18377        ) -> tm_gizmo__move_result,
18378    >,
18379}
18380#[repr(C)]
18381#[derive(Copy, Clone)]
18382pub struct tm_ui_modal_api {
18383    pub message_box: ::std::option::Option<
18384        unsafe extern "C" fn(
18385            title: *const ::std::os::raw::c_char,
18386            text: *const ::std::os::raw::c_char,
18387            buttons: *mut *const ::std::os::raw::c_char,
18388            num_buttons: u32,
18389        ) -> u32,
18390    >,
18391    pub progress_box: ::std::option::Option<
18392        unsafe extern "C" fn(
18393            title: *const ::std::os::raw::c_char,
18394            text: *const ::std::os::raw::c_char,
18395            buttons: *mut *const ::std::os::raw::c_char,
18396            num_buttons: u32,
18397            callback: ::std::option::Option<
18398                unsafe extern "C" fn(data: *mut ::std::os::raw::c_void) -> f32,
18399            >,
18400            callback_data: *mut ::std::os::raw::c_void,
18401        ) -> u32,
18402    >,
18403    pub textinput_box: ::std::option::Option<
18404        unsafe extern "C" fn(
18405            title: *const ::std::os::raw::c_char,
18406            text: *const ::std::os::raw::c_char,
18407            buttons: *mut *const ::std::os::raw::c_char,
18408            num_buttons: u32,
18409            output_text: *mut ::std::os::raw::c_char,
18410            text_max_length: u32,
18411        ) -> u32,
18412    >,
18413}
18414#[repr(C)]
18415#[derive(Copy, Clone)]
18416pub struct tm_shape3d_api {
18417    pub circle: ::std::option::Option<
18418        unsafe extern "C" fn(w: *mut tm_vec3_t, c: tm_vec3_t, n: tm_vec3_t, r: f32, num: u32),
18419    >,
18420    pub arc: ::std::option::Option<
18421        unsafe extern "C" fn(
18422            w: *mut tm_vec3_t,
18423            c: tm_vec3_t,
18424            n: tm_vec3_t,
18425            r: f32,
18426            x: tm_vec3_t,
18427            start_angle: f32,
18428            stop_angle: f32,
18429            num: u32,
18430        ),
18431    >,
18432    pub box_: ::std::option::Option<
18433        unsafe extern "C" fn(
18434            w: *mut tm_vec3_t,
18435            c: tm_vec3_t,
18436            x: tm_vec3_t,
18437            y: tm_vec3_t,
18438            z: tm_vec3_t,
18439        ),
18440    >,
18441    pub box_ib_n: u32,
18442    pub _padding_27: [::std::os::raw::c_char; 4usize],
18443    pub box_ib: *mut u32,
18444}
18445pub const TM_TT_PROP__TOOLBAR_SETTINGS__ID: ::std::os::raw::c_int = 0;
18446pub const TM_TT_PROP__TOOLBAR_SETTINGS__CONTAINER: ::std::os::raw::c_int = 1;
18447pub const TM_TT_PROP__TOOLBAR_SETTINGS__ANCHOR: ::std::os::raw::c_int = 2;
18448pub const TM_TT_PROP__TOOLBAR_SETTINGS__ANCHOR_ORDER: ::std::os::raw::c_int = 3;
18449pub const TM_TT_PROP__TOOLBAR_SETTINGS__POSITION: ::std::os::raw::c_int = 4;
18450pub type _bindgen_ty_223 = ::std::os::raw::c_int;
18451pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_TOP: tm_toolbar_container = 0;
18452pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_BOTTOM: tm_toolbar_container = 1;
18453pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_LEFT: tm_toolbar_container = 2;
18454pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_RIGHT: tm_toolbar_container = 3;
18455pub const tm_toolbar_container_TM_TOOLBAR_CONTAINER_COUNT: tm_toolbar_container = 4;
18456pub type tm_toolbar_container = ::std::os::raw::c_int;
18457pub const tm_toolbar_direction_TM_TOOLBAR_DIRECTION_HORIZONTAL: tm_toolbar_direction = 0;
18458pub const tm_toolbar_direction_TM_TOOLBAR_DIRECTION_VERTICAL: tm_toolbar_direction = 1;
18459pub type tm_toolbar_direction = ::std::os::raw::c_int;
18460pub const tm_toolbar_anchor_TM_TOOLBAR_ANCHOR_NONE: tm_toolbar_anchor = 0;
18461pub const tm_toolbar_anchor_TM_TOOLBAR_ANCHOR_END: tm_toolbar_anchor = 1;
18462pub const tm_toolbar_anchor_TM_TOOLBAR_ANCHOR_BEGINNING: tm_toolbar_anchor = 2;
18463pub type tm_toolbar_anchor = ::std::os::raw::c_int;
18464pub const tm_toolbar_size_mode_TM_TOOLBAR_SIZE_MODE_FIXED: tm_toolbar_size_mode = 0;
18465pub const tm_toolbar_size_mode_TM_TOOLBAR_SIZE_MODE_FILL: tm_toolbar_size_mode = 1;
18466pub type tm_toolbar_size_mode = ::std::os::raw::c_int;
18467#[repr(C)]
18468#[derive(Copy, Clone)]
18469pub struct tm_tab_toolbar_i {
18470    pub id: u64,
18471    pub state: [u8; 4096usize],
18472    pub ui: ::std::option::Option<
18473        unsafe extern "C" fn(
18474            state: *mut ::std::os::raw::c_void,
18475            ui: *mut tm_ui_o,
18476            uistyle: *const tm_ui_style_t,
18477            toolbar_r: tm_rect_t,
18478            direction: tm_toolbar_direction,
18479        ) -> tm_rect_t,
18480    >,
18481    pub default_container: tm_toolbar_container,
18482    pub default_anchor: tm_toolbar_anchor,
18483    pub force_anchor: bool,
18484    pub _padding_69: [::std::os::raw::c_char; 3usize],
18485    pub num_tool_ids: u32,
18486    pub tool_ids: *const u64,
18487    pub size_mode: tm_toolbar_size_mode,
18488    pub fill_min_size: f32,
18489    pub only_horizontal: bool,
18490    pub _padding_86: [::std::os::raw::c_char; 7usize],
18491}
18492#[repr(C)]
18493#[derive(Copy, Clone)]
18494pub struct tm_ttf_range_t {
18495    pub start: u32,
18496    pub n: u32,
18497}
18498#[repr(C)]
18499#[derive(Copy, Clone)]
18500pub struct tm_ttf_baker_api {
18501    pub bake: ::std::option::Option<
18502        unsafe extern "C" fn(
18503            ttf: *mut u8,
18504            font_size: f32,
18505            font_scales: *const f32,
18506            num_scales: u32,
18507            texture_identifier: u32,
18508            pixels: *mut u8,
18509            width: u32,
18510            height: u32,
18511            ranges: *mut tm_ttf_range_t,
18512            num_ranges: u32,
18513            extract_glyph_segments: bool,
18514            allocator: *mut tm_allocator_i,
18515            font_bytes: *mut u64,
18516        ) -> *mut tm_font_t,
18517    >,
18518}
18519pub const tm_ui_color_TM_UI_COLOR_CHROME_BACKGROUND: tm_ui_color = 0;
18520pub const tm_ui_color_TM_UI_COLOR_WINDOW_BACKGROUND: tm_ui_color = 1;
18521pub const tm_ui_color_TM_UI_COLOR_WINDOW_TITLE: tm_ui_color = 2;
18522pub const tm_ui_color_TM_UI_COLOR_WINDOW_SELECTION: tm_ui_color = 3;
18523pub const tm_ui_color_TM_UI_COLOR_WINDOW_STATUS_BAR: tm_ui_color = 4;
18524pub const tm_ui_color_TM_UI_COLOR_WINDOW_STATUS_BAR_TEXT: tm_ui_color = 5;
18525pub const tm_ui_color_TM_UI_COLOR_SELECTION: tm_ui_color = 6;
18526pub const tm_ui_color_TM_UI_COLOR_SELECTION_NO_FOCUS: tm_ui_color = 7;
18527pub const tm_ui_color_TM_UI_COLOR_SELECTION_HOVER: tm_ui_color = 8;
18528pub const tm_ui_color_TM_UI_COLOR_TEXT: tm_ui_color = 9;
18529pub const tm_ui_color_TM_UI_COLOR_DISABLED_TEXT: tm_ui_color = 10;
18530pub const tm_ui_color_TM_UI_COLOR_SELECTED_TEXT: tm_ui_color = 11;
18531pub const tm_ui_color_TM_UI_COLOR_ERROR_TEXT: tm_ui_color = 12;
18532pub const tm_ui_color_TM_UI_COLOR_FILTERED_TEXT: tm_ui_color = 13;
18533pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_BASE: tm_ui_color = 14;
18534pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_ADDED: tm_ui_color = 14;
18535pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_ASSET: tm_ui_color = 15;
18536pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_INHERITED: tm_ui_color = 16;
18537pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_INSTANTIATED: tm_ui_color = 17;
18538pub const tm_ui_color_TM_UI_COLOR_PROTOTYPE_RELATION_REMOVED: tm_ui_color = 18;
18539pub const tm_ui_color_TM_UI_COLOR_THIN_LINES: tm_ui_color = 19;
18540pub const tm_ui_color_TM_UI_COLOR_THIN_LINES_HOVER: tm_ui_color = 20;
18541pub const tm_ui_color_TM_UI_COLOR_ICONS: tm_ui_color = 21;
18542pub const tm_ui_color_TM_UI_COLOR_ICONS_HOVER: tm_ui_color = 22;
18543pub const tm_ui_color_TM_UI_COLOR_ICONS_ACTIVE: tm_ui_color = 23;
18544pub const tm_ui_color_TM_UI_COLOR_CONTROL_BACKGROUND: tm_ui_color = 24;
18545pub const tm_ui_color_TM_UI_COLOR_CONTROL_BACKGROUND_HOVER: tm_ui_color = 25;
18546pub const tm_ui_color_TM_UI_COLOR_CONTROL_BACKGROUND_ACTIVE: tm_ui_color = 26;
18547pub const tm_ui_color_TM_UI_COLOR_MENU_BACKGROUND: tm_ui_color = 27;
18548pub const tm_ui_color_TM_UI_COLOR_MENU_SELECTED: tm_ui_color = 28;
18549pub const tm_ui_color_TM_UI_COLOR_MENU_MENUBAR_HOVER: tm_ui_color = 29;
18550pub const tm_ui_color_TM_UI_COLOR_TOOLTIP_BACKGROUND: tm_ui_color = 30;
18551pub const tm_ui_color_TM_UI_COLOR_TOOLTIP_BORDER: tm_ui_color = 31;
18552pub const tm_ui_color_TM_UI_COLOR_TOOLTIP_TEXT: tm_ui_color = 32;
18553pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_BACKGROUND: tm_ui_color = 33;
18554pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_SELECTION: tm_ui_color = 34;
18555pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_GRID_THICK_LINES: tm_ui_color = 35;
18556pub const tm_ui_color_TM_UI_COLOR_VIEWPORT_GRID_THIN_LINES: tm_ui_color = 36;
18557pub const tm_ui_color_TM_UI_COLOR_LINK: tm_ui_color = 37;
18558pub const tm_ui_color_TM_UI_COLOR_LINK_HOVER: tm_ui_color = 38;
18559pub const tm_ui_color_TM_UI_COLOR_NODE_BACKGROUND: tm_ui_color = 39;
18560pub const tm_ui_color_TM_UI_COLOR_NODE_GPU_BACKGROUND: tm_ui_color = 40;
18561pub const tm_ui_color_TM_UI_COLOR_NODE_GPU_BACKGROUND_WATERMARK_TEXT: tm_ui_color = 41;
18562pub const tm_ui_color_TM_UI_COLOR_GRAPH_GRID_THIN_LINES: tm_ui_color = 42;
18563pub const tm_ui_color_TM_UI_COLOR_GRAPH_GRID_THICK_LINES: tm_ui_color = 43;
18564pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR_BACKGROUND: tm_ui_color = 44;
18565pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR: tm_ui_color = 45;
18566pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR_HOVER: tm_ui_color = 46;
18567pub const tm_ui_color_TM_UI_COLOR_SCROLLBAR_ACTIVE: tm_ui_color = 47;
18568pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_DRAG_HANDLE: tm_ui_color = 48;
18569pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_DROP_ZONE: tm_ui_color = 49;
18570pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_THIN_LINES: tm_ui_color = 50;
18571pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_THIN_LINES_HOVER: tm_ui_color = 51;
18572pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_CONTROL_BACKGROUND: tm_ui_color = 52;
18573pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_CONTROL_BACKGROUND_HOVER: tm_ui_color = 53;
18574pub const tm_ui_color_TM_UI_COLOR_TOOLBAR_CONTROL_BACKGROUND_ACTIVE: tm_ui_color = 54;
18575pub const tm_ui_color_TM_UI_COLOR_COUNT: tm_ui_color = 55;
18576pub type tm_ui_color = ::std::os::raw::c_int;
18577pub const tm_ui_metric_TM_UI_METRIC_LINE_WIDTH: tm_ui_metric = 0;
18578pub const tm_ui_metric_TM_UI_METRIC_WINDOW_TITLE_HEIGHT: tm_ui_metric = 1;
18579pub const tm_ui_metric_TM_UI_METRIC_WINDOW_MIN_SIZE: tm_ui_metric = 2;
18580pub const tm_ui_metric_TM_UI_METRIC_MENUBAR_HEIGHT: tm_ui_metric = 3;
18581pub const tm_ui_metric_TM_UI_METRIC_MENU_ITEM_HEIGHT: tm_ui_metric = 4;
18582pub const tm_ui_metric_TM_UI_METRIC_SCROLLBAR_WIDTH: tm_ui_metric = 5;
18583pub const tm_ui_metric_TM_UI_METRIC_MARGIN: tm_ui_metric = 6;
18584pub const tm_ui_metric_TM_UI_METRIC_TEXT_MARGIN: tm_ui_metric = 7;
18585pub const tm_ui_metric_TM_UI_METRIC_SPLITTER_SIZE: tm_ui_metric = 8;
18586pub const tm_ui_metric_TM_UI_METRIC_TOOLTIP_HOVER_TIME: tm_ui_metric = 9;
18587pub const tm_ui_metric_TM_UI_METRIC_TOOLTIP_WIDTH: tm_ui_metric = 10;
18588pub const tm_ui_metric_TM_UI_METRIC_TREE_ARROW_SCALE: tm_ui_metric = 11;
18589pub const tm_ui_metric_TM_UI_METRIC_TREE_ICON_WIDTH: tm_ui_metric = 12;
18590pub const tm_ui_metric_TM_UI_METRIC_TOOLBAR_HEIGHT: tm_ui_metric = 13;
18591pub const tm_ui_metric_TM_UI_METRIC_TOOLBAR_OUTER_MARGIN: tm_ui_metric = 14;
18592pub const tm_ui_metric_TM_UI_METRIC_TOOLBAR_INNER_MARGIN: tm_ui_metric = 15;
18593pub const tm_ui_metric_TM_UI_METRIC_COUNT: tm_ui_metric = 16;
18594pub type tm_ui_metric = ::std::os::raw::c_int;
18595pub const TM_TT_PROP__UI_THEME__NAME: ::std::os::raw::c_int = 0;
18596pub const TM_TT_PROP__UI_THEME__BASED_ON: ::std::os::raw::c_int = 1;
18597pub const TM_TT_PROP__UI_THEME__COLORS: ::std::os::raw::c_int = 2;
18598pub type _bindgen_ty_224 = ::std::os::raw::c_int;
18599pub const TM_TT_PROP__UI_THEME_COLOR__NAME: ::std::os::raw::c_int = 0;
18600pub const TM_TT_PROP__UI_THEME_COLOR__COLOR: ::std::os::raw::c_int = 1;
18601pub type _bindgen_ty_225 = ::std::os::raw::c_int;
18602pub const tm_ui_default_theme_TM_UI__DEFAULT_THEME__DARK: tm_ui_default_theme = 0;
18603pub const tm_ui_default_theme_TM_UI__DEFAULT_THEME__LIGHT: tm_ui_default_theme = 1;
18604pub type tm_ui_default_theme = ::std::os::raw::c_int;
18605#[repr(C)]
18606#[derive(Copy, Clone)]
18607pub struct tm_ui_theme_t {
18608    pub based_on: tm_ui_default_theme,
18609    pub _padding_241: [::std::os::raw::c_char; 4usize],
18610    pub tt: *mut tm_the_truth_o,
18611    pub id: tm_tt_id_t,
18612}
18613pub const tm_ui_buffer_TM_UI_BUFFER_MAIN: tm_ui_buffer = 0;
18614pub const tm_ui_buffer_TM_UI_BUFFER_OVERLAY: tm_ui_buffer = 1;
18615pub type tm_ui_buffer = ::std::os::raw::c_int;
18616#[repr(C)]
18617#[derive(Copy, Clone)]
18618pub struct tm_ui_style_t {
18619    pub clip: u32,
18620    pub font: u32,
18621    pub font_info: *const tm_font_t,
18622    pub font_scale: f32,
18623    pub buffer: tm_ui_buffer,
18624    pub feather_width: f32,
18625    pub _padding_276: [::std::os::raw::c_char; 4usize],
18626}
18627pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_NONE: tm_ui_window_event = 0;
18628pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_ACTIVATE: tm_ui_window_event = 1;
18629pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_MOVE: tm_ui_window_event = 2;
18630pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_RESIZE: tm_ui_window_event = 3;
18631pub const tm_ui_window_event_TM_UI_WINDOW_EVENT_CLOSE: tm_ui_window_event = 4;
18632pub type tm_ui_window_event = ::std::os::raw::c_int;
18633#[repr(C)]
18634#[derive(Copy, Clone)]
18635pub struct tm_ui_window_t {
18636    pub id: u64,
18637    pub title: *const ::std::os::raw::c_char,
18638    pub can_move: bool,
18639    pub can_resize: bool,
18640    pub can_close: bool,
18641    pub _padding_306: [::std::os::raw::c_char; 5usize],
18642}
18643#[repr(C)]
18644#[derive(Copy, Clone)]
18645pub struct tm_ui_scrollbar_t {
18646    pub id: u64,
18647    pub rect: tm_rect_t,
18648    pub min: f32,
18649    pub max: f32,
18650    pub size: f32,
18651    pub _padding_319: [::std::os::raw::c_char; 4usize],
18652}
18653pub const tm_ui_scrollbar_visibility_TM_UI_SCROLLBAR_VISIBILITY_WHEN_NEEDED:
18654    tm_ui_scrollbar_visibility = 0;
18655pub const tm_ui_scrollbar_visibility_TM_UI_SCROLLBAR_VISIBILITY_NEVER: tm_ui_scrollbar_visibility =
18656    1;
18657pub const tm_ui_scrollbar_visibility_TM_UI_SCROLLBAR_VISIBILITY_ALWAYS: tm_ui_scrollbar_visibility =
18658    2;
18659pub type tm_ui_scrollbar_visibility = ::std::os::raw::c_int;
18660#[repr(C)]
18661#[derive(Copy, Clone)]
18662pub struct tm_ui_scrollview_t {
18663    pub id: u64,
18664    pub rect: tm_rect_t,
18665    pub canvas: tm_rect_t,
18666    pub visibility_x: tm_ui_scrollbar_visibility,
18667    pub visibility_y: tm_ui_scrollbar_visibility,
18668}
18669#[repr(C)]
18670#[derive(Copy, Clone)]
18671pub struct tm_ui_label_t {
18672    pub id: u64,
18673    pub rect: tm_rect_t,
18674    pub text: *const ::std::os::raw::c_char,
18675    pub tooltip: *const ::std::os::raw::c_char,
18676}
18677pub const tm_ui_align_TM_UI_ALIGN_LEFT: tm_ui_align = 0;
18678pub const tm_ui_align_TM_UI_ALIGN_CENTER: tm_ui_align = 1;
18679pub const tm_ui_align_TM_UI_ALIGN_RIGHT: tm_ui_align = 2;
18680pub type tm_ui_align = ::std::os::raw::c_int;
18681#[repr(C)]
18682#[derive(Copy, Clone)]
18683pub struct tm_ui_text_t {
18684    pub rect: tm_rect_t,
18685    pub text: *const ::std::os::raw::c_char,
18686    pub color: *const tm_color_srgb_t,
18687    pub align: tm_ui_align,
18688    pub _padding_373: [::std::os::raw::c_char; 4usize],
18689}
18690#[repr(C)]
18691#[derive(Copy, Clone)]
18692pub struct tm_ui_link_t {
18693    pub id: u64,
18694    pub rect: tm_rect_t,
18695    pub text: *const ::std::os::raw::c_char,
18696    pub color: *const tm_color_srgb_t,
18697    pub align: tm_ui_align,
18698    pub _padding_385: [::std::os::raw::c_char; 4usize],
18699}
18700#[repr(C)]
18701#[derive(Copy, Clone)]
18702pub struct tm_ui_button_t {
18703    pub id: u64,
18704    pub rect: tm_rect_t,
18705    pub is_disabled: bool,
18706    pub hide_background: bool,
18707    pub hide_margins: bool,
18708    pub _padding_396: [::std::os::raw::c_char; 5usize],
18709    pub text: *const ::std::os::raw::c_char,
18710    pub text_color: *const tm_color_srgb_t,
18711    pub tooltip: *const ::std::os::raw::c_char,
18712    pub text_offset_y: f32,
18713    pub _padding_401: [::std::os::raw::c_char; 4usize],
18714}
18715#[repr(C)]
18716#[derive(Copy, Clone)]
18717pub struct tm_ui_checkbox_t {
18718    pub id: u64,
18719    pub rect: tm_rect_t,
18720    pub is_disabled: bool,
18721    pub _padding_410: [::std::os::raw::c_char; 7usize],
18722    pub text: *const ::std::os::raw::c_char,
18723    pub tooltip: *const ::std::os::raw::c_char,
18724}
18725#[repr(C)]
18726#[derive(Copy, Clone)]
18727pub struct tm_ui_radio_t {
18728    pub id: u64,
18729    pub rect: tm_rect_t,
18730    pub is_disabled: bool,
18731    pub _padding_421: [::std::os::raw::c_char; 7usize],
18732    pub text: *const ::std::os::raw::c_char,
18733}
18734#[repr(C)]
18735#[derive(Copy, Clone)]
18736pub struct tm_ui_progress_t {
18737    pub id: u64,
18738    pub rect: tm_rect_t,
18739    pub text: *const ::std::os::raw::c_char,
18740}
18741#[repr(C)]
18742#[derive(Copy, Clone)]
18743pub struct tm_ui_slider_t {
18744    pub id: u64,
18745    pub rect: tm_rect_t,
18746    pub is_disabled: bool,
18747    pub _padding_441: [::std::os::raw::c_char; 3usize],
18748    pub min: f32,
18749    pub max: f32,
18750    pub step: f32,
18751}
18752pub const TM_UI_SPINNER__DECIMALS__DEFAULT: ::std::os::raw::c_int = 0;
18753pub const TM_UI_SPINNER__DECIMALS__0: ::std::os::raw::c_int = 1;
18754pub const TM_UI_SPINNER__DECIMALS__1: ::std::os::raw::c_int = 2;
18755pub const TM_UI_SPINNER__DECIMALS__2: ::std::os::raw::c_int = 3;
18756pub const TM_UI_SPINNER__DECIMALS__3: ::std::os::raw::c_int = 4;
18757pub const TM_UI_SPINNER__DECIMALS__4: ::std::os::raw::c_int = 5;
18758pub const TM_UI_SPINNER__DECIMALS__5: ::std::os::raw::c_int = 6;
18759pub type _bindgen_ty_226 = ::std::os::raw::c_int;
18760#[repr(C)]
18761#[derive(Copy, Clone)]
18762pub struct tm_ui_spinner_t {
18763    pub id: u64,
18764    pub rect: tm_rect_t,
18765    pub is_disabled: bool,
18766    pub _padding_473: [::std::os::raw::c_char; 7usize],
18767    pub min: f64,
18768    pub max: f64,
18769    pub value_per_pixel: f64,
18770    pub decimals: u32,
18771    pub _padding_483: [::std::os::raw::c_char; 4usize],
18772    pub tooltip: *const ::std::os::raw::c_char,
18773}
18774#[repr(C)]
18775#[derive(Copy, Clone)]
18776pub struct tm_ui_dropdown_t {
18777    pub id: u64,
18778    pub rect: tm_rect_t,
18779    pub is_disabled: bool,
18780    pub _padding_493: [::std::os::raw::c_char; 7usize],
18781    pub items: *mut *const ::std::os::raw::c_char,
18782    pub tooltips: *mut *const ::std::os::raw::c_char,
18783    pub num_items: u32,
18784    pub _padding_501: [::std::os::raw::c_char; 4usize],
18785}
18786#[repr(C)]
18787#[derive(Copy, Clone)]
18788pub struct tm_ui_textedit_t {
18789    pub id: u64,
18790    pub rect: tm_rect_t,
18791    pub is_disabled: bool,
18792    pub is_password: bool,
18793    pub _padding_511: [::std::os::raw::c_char; 6usize],
18794    pub default_text: *const ::std::os::raw::c_char,
18795    pub select_all_on_mouse_activate: bool,
18796    pub scroll_to_end: bool,
18797    pub select_all_on_startup: bool,
18798    pub _padding_528: [::std::os::raw::c_char; 1usize],
18799    pub select: tm_ui_textedit_t__bindgen_ty_1,
18800}
18801#[repr(C)]
18802#[derive(Copy, Clone)]
18803pub struct tm_ui_textedit_t__bindgen_ty_1 {
18804    pub all: bool,
18805    pub range: bool,
18806    pub _padding_538: [::std::os::raw::c_char; 2usize],
18807    pub start: u32,
18808    pub end: u32,
18809}
18810pub const TM_UI_MENU_DEFAULT_ID_BASE: ::std::os::raw::c_int = -268435456;
18811pub type _bindgen_ty_227 = ::std::os::raw::c_int;
18812#[repr(C)]
18813#[derive(Copy, Clone)]
18814pub struct tm_ui_menu_item_t {
18815    pub text: *const ::std::os::raw::c_char,
18816    pub accelerator: *const ::std::os::raw::c_char,
18817    pub tooltip: *const ::std::os::raw::c_char,
18818    pub item_id: u64,
18819    pub toggle: *mut bool,
18820    pub is_checked: bool,
18821    pub has_submenu: bool,
18822    pub is_disabled: bool,
18823    pub is_hidden: bool,
18824    pub _padding_581: [::std::os::raw::c_char; 4usize],
18825}
18826#[repr(C)]
18827#[derive(Copy, Clone)]
18828pub struct tm_ui_menubar_t {
18829    pub id: u64,
18830    pub pos: tm_vec2_t,
18831    pub width: f32,
18832    pub _padding_594: [::std::os::raw::c_char; 4usize],
18833    pub items: *const tm_ui_menu_item_t,
18834    pub num_items: u32,
18835    pub _padding_601: [::std::os::raw::c_char; 4usize],
18836}
18837#[repr(C)]
18838#[derive(Copy, Clone)]
18839pub struct tm_ui_menu_t {
18840    pub pos: tm_vec2_t,
18841    pub items: *const tm_ui_menu_item_t,
18842    pub num_items: u32,
18843    pub _padding_615: [::std::os::raw::c_char; 4usize],
18844}
18845#[repr(C)]
18846#[derive(Copy, Clone)]
18847pub struct tm_ui_menu_result_t {
18848    pub selected_item_id: u64,
18849    pub selected_text: *const ::std::os::raw::c_char,
18850    pub highlighted_item_id: u64,
18851    pub submenu_pos: tm_vec2_t,
18852}
18853#[repr(C)]
18854#[derive(Copy, Clone)]
18855pub struct tm_ui_treeitem_t {
18856    pub id: u64,
18857    pub rect: tm_rect_t,
18858    pub text: *const ::std::os::raw::c_char,
18859}
18860pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__NONE: tm_ui_tab_pin_type = 0;
18861pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__OBJECT: tm_ui_tab_pin_type = 1;
18862pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__TABS: tm_ui_tab_pin_type = 2;
18863pub const tm_ui_tab_pin_type_TM_UI_TAB_PIN_TYPE__WINDOWS: tm_ui_tab_pin_type = 3;
18864pub type tm_ui_tab_pin_type = ::std::os::raw::c_int;
18865#[repr(C)]
18866#[derive(Copy, Clone)]
18867pub struct tm_ui_tabbar_item_t {
18868    pub text: *const ::std::os::raw::c_char,
18869    pub id: u64,
18870    pub has_close_box: bool,
18871    pub has_pin: bool,
18872    pub _padding_669: [::std::os::raw::c_char; 2usize],
18873    pub pin_type: tm_ui_tab_pin_type,
18874}
18875#[repr(C)]
18876#[derive(Copy, Clone)]
18877pub struct tm_ui_tabbar_t {
18878    pub id: u64,
18879    pub rect: tm_rect_t,
18880    pub items: *mut tm_ui_tabbar_item_t,
18881    pub num_items: u32,
18882    pub can_drag: bool,
18883    pub can_drag_off: bool,
18884    pub is_dragging_external_tab: bool,
18885    pub _padding_695: [::std::os::raw::c_char; 1usize],
18886    pub dragged_external_item: *mut *const ::std::os::raw::c_char,
18887}
18888pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_NONE: tm_ui_tabbar_event = 0;
18889pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_SELECT: tm_ui_tabbar_event = 1;
18890pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_CLOSE: tm_ui_tabbar_event = 2;
18891pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_REORDER: tm_ui_tabbar_event = 3;
18892pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_DRAG_OFF: tm_ui_tabbar_event = 4;
18893pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_EXTERNAL_DROP: tm_ui_tabbar_event = 5;
18894pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_CONTEXT_MENU: tm_ui_tabbar_event = 6;
18895pub const tm_ui_tabbar_event_TM_UI_TABBAR_EVENT_PIN: tm_ui_tabbar_event = 7;
18896pub type tm_ui_tabbar_event = ::std::os::raw::c_int;
18897#[repr(C)]
18898#[derive(Copy, Clone)]
18899pub struct tm_ui_tabbar_result_t {
18900    pub event: tm_ui_tabbar_event,
18901    pub item: u32,
18902    pub new_position: u32,
18903    pub drag_offset: tm_vec2_t,
18904}
18905#[repr(C)]
18906#[derive(Copy, Clone)]
18907pub struct tm_ui_draggedtab_t {
18908    pub id: u64,
18909    pub rect: tm_rect_t,
18910    pub text: *const ::std::os::raw::c_char,
18911    pub has_close_box: bool,
18912    pub has_pin: bool,
18913    pub _padding_753: [::std::os::raw::c_char; 2usize],
18914    pub pin_type: tm_ui_tab_pin_type,
18915}
18916#[repr(C)]
18917#[derive(Copy, Clone)]
18918pub struct tm_ui_splitter_t {
18919    pub id: u64,
18920    pub rect: tm_rect_t,
18921    pub min_size: f32,
18922    pub _padding_764: [::std::os::raw::c_char; 4usize],
18923}
18924#[repr(C)]
18925#[derive(Copy, Clone)]
18926pub struct tm_ui_titlebar_t {
18927    pub id: u64,
18928    pub rect: tm_rect_t,
18929    pub has_focus: bool,
18930    pub is_maximized: bool,
18931    pub _padding_780: [::std::os::raw::c_char; 6usize],
18932    pub caption: *const ::std::os::raw::c_char,
18933    pub icon_texture: u32,
18934    pub _padding_787: [::std::os::raw::c_char; 4usize],
18935}
18936#[repr(C)]
18937#[derive(Copy, Clone)]
18938pub struct tm_ui_titlebar_result_t {
18939    pub close_window: bool,
18940    pub restore_window: bool,
18941    pub maximize_window: bool,
18942    pub minimize_window: bool,
18943    pub content_r: tm_rect_t,
18944}
18945pub const tm_ui_cursor_TM_UI_CURSOR_DEFAULT: tm_ui_cursor = 0;
18946pub const tm_ui_cursor_TM_UI_CURSOR_POINTER: tm_ui_cursor = 1;
18947pub const tm_ui_cursor_TM_UI_CURSOR_TEXT: tm_ui_cursor = 2;
18948pub const tm_ui_cursor_TM_UI_CURSOR_MOVE: tm_ui_cursor = 3;
18949pub const tm_ui_cursor_TM_UI_CURSOR_ALL_SCROLL: tm_ui_cursor = 4;
18950pub const tm_ui_cursor_TM_UI_CURSOR_COL_RESIZE: tm_ui_cursor = 5;
18951pub const tm_ui_cursor_TM_UI_CURSOR_ROW_RESIZE: tm_ui_cursor = 6;
18952pub const tm_ui_cursor_TM_UI_CURSOR_EW_RESIZE: tm_ui_cursor = 7;
18953pub const tm_ui_cursor_TM_UI_CURSOR_NS_RESIZE: tm_ui_cursor = 8;
18954pub const tm_ui_cursor_TM_UI_CURSOR_NESW_RESIZE: tm_ui_cursor = 9;
18955pub const tm_ui_cursor_TM_UI_CURSOR_NWSE_RESIZE: tm_ui_cursor = 10;
18956pub const tm_ui_cursor_TM_UI_CURSOR_DRAG_AND_DROP: tm_ui_cursor = 11;
18957pub const tm_ui_cursor_TM_UI_CURSOR_NONE: tm_ui_cursor = 12;
18958pub type tm_ui_cursor = ::std::os::raw::c_int;
18959#[repr(C)]
18960#[derive(Copy, Clone)]
18961pub struct tm_ui_buffers_t {
18962    pub vbuffer: *mut tm_draw2d_vbuffer_t,
18963    pub ibuffers: *mut *mut tm_draw2d_ibuffer_t,
18964    pub input: *mut tm_ui_input_state_t,
18965    pub activation: *mut tm_ui_activation_t,
18966    pub active_data: *mut ::std::os::raw::c_void,
18967    pub lost_focus_data: *mut ::std::os::raw::c_void,
18968    pub metrics: *mut f32,
18969    pub colors: *mut tm_color_srgb_t,
18970    pub allocator: *mut tm_allocator_i,
18971}
18972pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_NO_CHANGE:
18973    tm_ui_interaction_result_t = 0;
18974pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_TRANSIENT_CHANGE:
18975    tm_ui_interaction_result_t = 1;
18976pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_COMMIT: tm_ui_interaction_result_t =
18977    2;
18978pub const tm_ui_interaction_result_t_TM_UI_INTERACTION_RESULT_ABORT: tm_ui_interaction_result_t = 3;
18979pub type tm_ui_interaction_result_t = ::std::os::raw::c_int;
18980#[repr(C)]
18981#[derive(Copy, Clone)]
18982pub struct tm_ui_mouse_help_texts_t {
18983    pub left_mouse_pressed: *const ::std::os::raw::c_char,
18984    pub middle_mouse_pressed: *const ::std::os::raw::c_char,
18985    pub right_mouse_pressed: *const ::std::os::raw::c_char,
18986    pub double_click: *const ::std::os::raw::c_char,
18987    pub triple_click: *const ::std::os::raw::c_char,
18988}
18989#[repr(C)]
18990#[derive(Copy, Clone)]
18991pub struct tm_ui_api {
18992    pub create: ::std::option::Option<unsafe extern "C" fn(a: *mut tm_allocator_i) -> *mut tm_ui_o>,
18993    pub destroy: ::std::option::Option<unsafe extern "C" fn(i: *mut tm_ui_o)>,
18994    pub clear: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
18995    pub release_held_state: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
18996    pub set_window_status: ::std::option::Option<
18997        unsafe extern "C" fn(
18998            ui: *mut tm_ui_o,
18999            rect: tm_rect_t,
19000            has_focus: bool,
19001            is_under_cursor: bool,
19002        ),
19003    >,
19004    pub window_rect: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_rect_t>,
19005    pub set_feather_width:
19006        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, feather_width: f32)>,
19007    pub feather_width: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> f32>,
19008    pub feed_events: ::std::option::Option<
19009        unsafe extern "C" fn(
19010            ui: *mut tm_ui_o,
19011            events: *const tm_input_event_t,
19012            count: u32,
19013            offset: tm_vec2_t,
19014            scale: tm_vec2_t,
19015        ),
19016    >,
19017    pub feed_external_edit_key:
19018        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, key: u32)>,
19019    pub merge_overlay: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
19020    pub begin_overlay_draw_scope:
19021        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
19022    pub end_overlay_draw_scope:
19023        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
19024    pub drawing_in_overlay: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
19025    pub cursor: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_cursor>,
19026    pub window: ::std::option::Option<
19027        unsafe extern "C" fn(
19028            ui: *mut tm_ui_o,
19029            style: *const tm_ui_style_t,
19030            c: *const tm_ui_window_t,
19031            rect: *mut tm_rect_t,
19032            content_rect: *mut tm_rect_t,
19033        ) -> tm_ui_window_event,
19034    >,
19035    pub pane: ::std::option::Option<
19036        unsafe extern "C" fn(ui: *mut tm_ui_o, style: *const tm_ui_style_t, rect: tm_rect_t),
19037    >,
19038    pub scrollbar_x: ::std::option::Option<
19039        unsafe extern "C" fn(
19040            ui: *mut tm_ui_o,
19041            uistyle: *const tm_ui_style_t,
19042            c: *const tm_ui_scrollbar_t,
19043            scroll: *mut f32,
19044        ) -> bool,
19045    >,
19046    pub scrollbar_y: ::std::option::Option<
19047        unsafe extern "C" fn(
19048            ui: *mut tm_ui_o,
19049            uistyle: *const tm_ui_style_t,
19050            c: *const tm_ui_scrollbar_t,
19051            scroll: *mut f32,
19052        ) -> bool,
19053    >,
19054    pub begin_scrollview: ::std::option::Option<
19055        unsafe extern "C" fn(
19056            ui: *mut tm_ui_o,
19057            style: *const tm_ui_style_t,
19058            c: *const tm_ui_scrollview_t,
19059            scroll_x: *mut f32,
19060            scroll_y: *mut f32,
19061            content_rect: *mut tm_rect_t,
19062        ) -> bool,
19063    >,
19064    pub end_scrollview: ::std::option::Option<
19065        unsafe extern "C" fn(ui: *mut tm_ui_o, scroll_x: *mut f32, scroll_y: *mut f32) -> bool,
19066    >,
19067    pub label: ::std::option::Option<
19068        unsafe extern "C" fn(
19069            ui: *mut tm_ui_o,
19070            style: *const tm_ui_style_t,
19071            c: *const tm_ui_label_t,
19072        ) -> tm_rect_t,
19073    >,
19074    pub text: ::std::option::Option<
19075        unsafe extern "C" fn(
19076            ui: *mut tm_ui_o,
19077            style: *const tm_ui_style_t,
19078            c: *const tm_ui_text_t,
19079        ) -> tm_rect_t,
19080    >,
19081    pub text_metrics: ::std::option::Option<
19082        unsafe extern "C" fn(
19083            ui: *mut tm_ui_o,
19084            style: *const tm_ui_style_t,
19085            text: *const ::std::os::raw::c_char,
19086        ) -> tm_rect_t,
19087    >,
19088    pub wrapped_text: ::std::option::Option<
19089        unsafe extern "C" fn(
19090            ui: *mut tm_ui_o,
19091            style: *const tm_ui_style_t,
19092            c: *const tm_ui_text_t,
19093        ) -> tm_rect_t,
19094    >,
19095    pub link: ::std::option::Option<
19096        unsafe extern "C" fn(
19097            ui: *mut tm_ui_o,
19098            style: *const tm_ui_style_t,
19099            c: *const tm_ui_link_t,
19100        ) -> bool,
19101    >,
19102    pub tooltip: ::std::option::Option<
19103        unsafe extern "C" fn(
19104            ui: *mut tm_ui_o,
19105            style: *const tm_ui_style_t,
19106            text: *const ::std::os::raw::c_char,
19107        ),
19108    >,
19109    pub button: ::std::option::Option<
19110        unsafe extern "C" fn(
19111            ui: *mut tm_ui_o,
19112            style: *const tm_ui_style_t,
19113            c: *const tm_ui_button_t,
19114        ) -> bool,
19115    >,
19116    pub pushbutton: ::std::option::Option<
19117        unsafe extern "C" fn(
19118            ui: *mut tm_ui_o,
19119            style: *const tm_ui_style_t,
19120            c: *const tm_ui_button_t,
19121            pressed: *mut bool,
19122        ) -> bool,
19123    >,
19124    pub checkbox: ::std::option::Option<
19125        unsafe extern "C" fn(
19126            ui: *mut tm_ui_o,
19127            style: *const tm_ui_style_t,
19128            c: *const tm_ui_checkbox_t,
19129            checked: *mut bool,
19130        ) -> bool,
19131    >,
19132    pub radio: ::std::option::Option<
19133        unsafe extern "C" fn(
19134            ui: *mut tm_ui_o,
19135            style: *const tm_ui_style_t,
19136            c: *const tm_ui_radio_t,
19137            checked: bool,
19138        ) -> bool,
19139    >,
19140    pub progress: ::std::option::Option<
19141        unsafe extern "C" fn(
19142            ui: *mut tm_ui_o,
19143            style: *const tm_ui_style_t,
19144            c: *const tm_ui_progress_t,
19145            fraction: f32,
19146        ),
19147    >,
19148    pub slider: ::std::option::Option<
19149        unsafe extern "C" fn(
19150            ui: *mut tm_ui_o,
19151            style: *const tm_ui_style_t,
19152            c: *const tm_ui_slider_t,
19153            val: *mut f32,
19154            initial: *mut f32,
19155        ) -> tm_ui_interaction_result_t,
19156    >,
19157    pub spinner: ::std::option::Option<
19158        unsafe extern "C" fn(
19159            ui: *mut tm_ui_o,
19160            style: *const tm_ui_style_t,
19161            c: *const tm_ui_spinner_t,
19162            val: *mut f64,
19163            initial: *mut f64,
19164        ) -> tm_ui_interaction_result_t,
19165    >,
19166    pub dropdown: ::std::option::Option<
19167        unsafe extern "C" fn(
19168            ui: *mut tm_ui_o,
19169            style: *const tm_ui_style_t,
19170            c: *const tm_ui_dropdown_t,
19171            selected: *mut u32,
19172        ) -> bool,
19173    >,
19174    pub textedit: ::std::option::Option<
19175        unsafe extern "C" fn(
19176            ui: *mut tm_ui_o,
19177            style: *const tm_ui_style_t,
19178            c: *const tm_ui_textedit_t,
19179            s: *mut ::std::os::raw::c_char,
19180            maxlen: u32,
19181        ) -> bool,
19182    >,
19183    pub menubar: ::std::option::Option<
19184        unsafe extern "C" fn(
19185            ui: *mut tm_ui_o,
19186            style: *const tm_ui_style_t,
19187            c: *const tm_ui_menubar_t,
19188        ) -> tm_ui_menu_result_t,
19189    >,
19190    pub menu: ::std::option::Option<
19191        unsafe extern "C" fn(
19192            ui: *mut tm_ui_o,
19193            style: *const tm_ui_style_t,
19194            c: *const tm_ui_menu_t,
19195        ) -> tm_ui_menu_result_t,
19196    >,
19197    pub sort_menu_items:
19198        ::std::option::Option<unsafe extern "C" fn(items: *mut tm_ui_menu_item_t, count: u32)>,
19199    pub tabbar: ::std::option::Option<
19200        unsafe extern "C" fn(
19201            ui: *mut tm_ui_o,
19202            style: *const tm_ui_style_t,
19203            c: *const tm_ui_tabbar_t,
19204            selected: *mut u32,
19205        ) -> tm_ui_tabbar_result_t,
19206    >,
19207    pub draggedtab: ::std::option::Option<
19208        unsafe extern "C" fn(
19209            ui: *mut tm_ui_o,
19210            style: *const tm_ui_style_t,
19211            c: *const tm_ui_draggedtab_t,
19212        ),
19213    >,
19214    pub splitter_x: ::std::option::Option<
19215        unsafe extern "C" fn(
19216            ui: *mut tm_ui_o,
19217            uistyle: *const tm_ui_style_t,
19218            c: *const tm_ui_splitter_t,
19219            bias: *mut f32,
19220            content_left: *mut tm_rect_t,
19221            content_right: *mut tm_rect_t,
19222        ) -> bool,
19223    >,
19224    pub splitter_x_rects: ::std::option::Option<
19225        unsafe extern "C" fn(
19226            c: *const tm_ui_splitter_t,
19227            bias: f32,
19228            content_left: *mut tm_rect_t,
19229            content_right: *mut tm_rect_t,
19230        ),
19231    >,
19232    pub splitter_y: ::std::option::Option<
19233        unsafe extern "C" fn(
19234            ui: *mut tm_ui_o,
19235            uistyle: *const tm_ui_style_t,
19236            c: *const tm_ui_splitter_t,
19237            bias: *mut f32,
19238            content_top: *mut tm_rect_t,
19239            content_bottom: *mut tm_rect_t,
19240        ) -> bool,
19241    >,
19242    pub splitter_y_rects: ::std::option::Option<
19243        unsafe extern "C" fn(
19244            c: *const tm_ui_splitter_t,
19245            bias: f32,
19246            content_top: *mut tm_rect_t,
19247            content_bottom: *mut tm_rect_t,
19248        ),
19249    >,
19250    pub titlebar: ::std::option::Option<
19251        unsafe extern "C" fn(
19252            ui: *mut tm_ui_o,
19253            uistyle: *const tm_ui_style_t,
19254            c: *const tm_ui_titlebar_t,
19255        ) -> tm_ui_titlebar_result_t,
19256    >,
19257    pub grow_buffer: ::std::option::Option<
19258        unsafe extern "C" fn(ui: *mut tm_ui_o, b: tm_ui_buffer, vbytes: u32, ibytes: u32),
19259    >,
19260    pub buffers: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_buffers_t>,
19261    pub make_id: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> u64>,
19262    pub last_id: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> u64>,
19263    pub create_fixed_id_range:
19264        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, size: u64) -> u64>,
19265    pub set_id: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> u64>,
19266    pub set_cursor:
19267        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, cursor: tm_ui_cursor)>,
19268    pub is_hovering: ::std::option::Option<
19269        unsafe extern "C" fn(ui: *mut tm_ui_o, r: tm_rect_t, clip: u32) -> bool,
19270    >,
19271    pub set_responder_chain_root:
19272        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
19273    pub begin_responder_scope:
19274        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
19275    pub end_responder_scope: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
19276    pub in_responder_chain:
19277        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
19278    pub is_first_responder:
19279        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
19280    pub set_responder_chain: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
19281    pub responder_chain:
19282        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, count: *mut u32) -> *mut u64>,
19283    pub is_responder_chain_empty:
19284        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> bool>,
19285    pub focus_on_mouse_press: ::std::option::Option<
19286        unsafe extern "C" fn(ui: *mut tm_ui_o, r: tm_rect_t, id: u64) -> bool,
19287    >,
19288    pub consume_key:
19289        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, keyboard_item: u32)>,
19290    pub begin_tab_scope:
19291        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
19292    pub end_tab_scope: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o)>,
19293    pub focus_on_tab:
19294        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64) -> bool>,
19295    pub set_tab_focus_disabled:
19296        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, tab_focus_disabled: bool)>,
19297    pub set_active: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, id: u64)>,
19298    pub to_draw_style: ::std::option::Option<
19299        unsafe extern "C" fn(
19300            ui: *mut tm_ui_o,
19301            style: *mut tm_draw2d_style_t,
19302            uistyle: *const tm_ui_style_t,
19303        ) -> *mut tm_draw2d_style_t,
19304    >,
19305    pub set_cache: ::std::option::Option<
19306        unsafe extern "C" fn(ui: *mut tm_ui_o, key: u64, carray: *mut ::std::os::raw::c_char),
19307    >,
19308    pub lookup_cache: ::std::option::Option<
19309        unsafe extern "C" fn(ui: *mut tm_ui_o, key: u64) -> *mut ::std::os::raw::c_char,
19310    >,
19311    pub left_mouse_pressed: ::std::option::Option<
19312        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
19313    >,
19314    pub middle_mouse_pressed: ::std::option::Option<
19315        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
19316    >,
19317    pub right_mouse_pressed: ::std::option::Option<
19318        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
19319    >,
19320    pub double_click: ::std::option::Option<
19321        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
19322    >,
19323    pub triple_click: ::std::option::Option<
19324        unsafe extern "C" fn(ui: *mut tm_ui_o, help_text: *const ::std::os::raw::c_char) -> bool,
19325    >,
19326    pub get_mouse_help_texts:
19327        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_mouse_help_texts_t>,
19328    pub theme: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_ui_theme_t>,
19329    pub set_theme:
19330        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, theme: tm_ui_theme_t)>,
19331    pub create_custom_theme: ::std::option::Option<
19332        unsafe extern "C" fn(ui: *mut tm_ui_o, tt: *mut tm_the_truth_o) -> tm_ui_theme_t,
19333    >,
19334    pub set_parent_ui:
19335        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o, parent_ui: *mut tm_ui_o)>,
19336    pub fork: ::std::option::Option<unsafe extern "C" fn(main: *mut tm_ui_o) -> *mut tm_ui_o>,
19337    pub join: ::std::option::Option<unsafe extern "C" fn(main: *mut tm_ui_o, fork: *mut tm_ui_o)>,
19338    pub main_ui: ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> *mut tm_ui_o>,
19339}
19340#[repr(C)]
19341#[derive(Copy, Clone)]
19342pub struct tm_ui_activation_t {
19343    pub active: u64,
19344    pub lost_focus: u64,
19345    pub hover: u64,
19346    pub hover_in_overlay: bool,
19347    pub _padding_39: [::std::os::raw::c_char; 7usize],
19348    pub next_hover: u64,
19349    pub next_hover_in_overlay: bool,
19350    pub _padding_42: [::std::os::raw::c_char; 7usize],
19351    pub sub_hover: u64,
19352    pub next_sub_hover: u64,
19353    pub hover_time: f32,
19354    pub _padding_48: [::std::os::raw::c_char; 4usize],
19355    pub hover_at_time: f64,
19356    pub tooltip: u64,
19357    pub tooltip_position: tm_vec2_t,
19358    pub tooltip_time: f64,
19359    pub next_hover_window: u64,
19360    pub hover_window: u64,
19361    pub next_hover_scrollview: u64,
19362    pub hover_scrollview: u64,
19363    pub menu_level: u32,
19364    pub _padding_87: [::std::os::raw::c_char; 4usize],
19365}
19366pub const tm_ui_edit_key_TM_UI_EDIT_KEY_NONE: tm_ui_edit_key = 0;
19367pub const tm_ui_edit_key_TM_UI_EDIT_KEY_LEFT: tm_ui_edit_key = 1;
19368pub const tm_ui_edit_key_TM_UI_EDIT_KEY_RIGHT: tm_ui_edit_key = 2;
19369pub const tm_ui_edit_key_TM_UI_EDIT_KEY_UP: tm_ui_edit_key = 3;
19370pub const tm_ui_edit_key_TM_UI_EDIT_KEY_DOWN: tm_ui_edit_key = 4;
19371pub const tm_ui_edit_key_TM_UI_EDIT_KEY_TAB: tm_ui_edit_key = 5;
19372pub const tm_ui_edit_key_TM_UI_EDIT_KEY_ENTER: tm_ui_edit_key = 6;
19373pub const tm_ui_edit_key_TM_UI_EDIT_KEY_END: tm_ui_edit_key = 7;
19374pub const tm_ui_edit_key_TM_UI_EDIT_KEY_HOME: tm_ui_edit_key = 8;
19375pub const tm_ui_edit_key_TM_UI_EDIT_KEY_DELETE: tm_ui_edit_key = 9;
19376pub const tm_ui_edit_key_TM_UI_EDIT_KEY_BACKSPACE: tm_ui_edit_key = 10;
19377pub const tm_ui_edit_key_TM_UI_EDIT_KEY_ESCAPE: tm_ui_edit_key = 11;
19378pub const tm_ui_edit_key_TM_UI_EDIT_KEY_SELECT_ALL: tm_ui_edit_key = 12;
19379pub const tm_ui_edit_key_TM_UI_EDIT_KEY_CUT: tm_ui_edit_key = 13;
19380pub const tm_ui_edit_key_TM_UI_EDIT_KEY_COPY: tm_ui_edit_key = 14;
19381pub const tm_ui_edit_key_TM_UI_EDIT_KEY_PASTE: tm_ui_edit_key = 15;
19382pub const tm_ui_edit_key_TM_UI_EDIT_KEY_DUPLICATE: tm_ui_edit_key = 16;
19383pub const tm_ui_edit_key_TM_UI_EDIT_KEY_UNDO: tm_ui_edit_key = 17;
19384pub const tm_ui_edit_key_TM_UI_EDIT_KEY_REDO: tm_ui_edit_key = 18;
19385pub const tm_ui_edit_key_TM_UI_EDIT_KEY_COUNT: tm_ui_edit_key = 19;
19386pub type tm_ui_edit_key = ::std::os::raw::c_int;
19387pub const TM_UI_MAX_TEXT_INPUT: ::std::os::raw::c_int = 32;
19388pub type _bindgen_ty_228 = ::std::os::raw::c_int;
19389pub const TM_UI_MODIFIERS_NONE: ::std::os::raw::c_int = 0;
19390pub const TM_UI_MODIFIERS_SHIFT: ::std::os::raw::c_int = 1;
19391pub const TM_UI_MODIFIERS_ALT: ::std::os::raw::c_int = 2;
19392pub const TM_UI_MODIFIERS_SHIFT_ALT: ::std::os::raw::c_int = 3;
19393pub const TM_UI_MODIFIERS_CTRL: ::std::os::raw::c_int = 4;
19394pub const TM_UI_MODIFIERS_SHIFT_CTRL: ::std::os::raw::c_int = 5;
19395pub const TM_UI_MODIFIERS_ALT_CTRL: ::std::os::raw::c_int = 6;
19396pub const TM_UI_MODIFIERS_SHIFT_ALT_CTRL: ::std::os::raw::c_int = 7;
19397pub type _bindgen_ty_229 = ::std::os::raw::c_int;
19398#[repr(C)]
19399#[derive(Copy, Clone)]
19400pub struct tm_ui_input_state_t {
19401    pub time: f64,
19402    pub scale: tm_vec2_t,
19403    pub offset: tm_vec2_t,
19404    pub mouse_pos: tm_vec2_t,
19405    pub mouse_move: tm_vec2_t,
19406    pub mouse_wheel: f32,
19407    pub left_mouse_pressed: bool,
19408    pub left_mouse_released: bool,
19409    pub left_mouse_is_down: bool,
19410    pub right_mouse_pressed: bool,
19411    pub right_mouse_released: bool,
19412    pub right_mouse_is_down: bool,
19413    pub middle_mouse_pressed: bool,
19414    pub middle_mouse_released: bool,
19415    pub middle_mouse_is_down: bool,
19416    pub back_mouse_pressed: bool,
19417    pub back_mouse_released: bool,
19418    pub back_mouse_is_down: bool,
19419    pub left_mouse_pressed_at_time: f64,
19420    pub mouse_move_at_time: f64,
19421    pub double_click: bool,
19422    pub triple_click: bool,
19423    pub pen_pressed: bool,
19424    pub pen_released: bool,
19425    pub pen_is_down: bool,
19426    pub touch_pressed: bool,
19427    pub touch_released: bool,
19428    pub touch_is_down: bool,
19429    pub pressure: f32,
19430    pub pen_erase: bool,
19431    pub _padding_191: [::std::os::raw::c_char; 3usize],
19432    pub key_is_down: *mut bool,
19433    pub key_pressed: *mut bool,
19434    pub key_released: *mut bool,
19435    pub key_repeated: *mut bool,
19436    pub modifiers: u32,
19437    pub edit_key_pressed: [bool; 19usize],
19438    pub _padding_207: [::std::os::raw::c_char; 1usize],
19439    pub num_text_input: u32,
19440    pub text_input: [u32; 32usize],
19441    pub _padding_212: [::std::os::raw::c_char; 4usize],
19442}
19443pub const TM_UI_ACTIVE_DATA_BYTES: ::std::os::raw::c_int = 16384;
19444pub type _bindgen_ty_230 = ::std::os::raw::c_int;
19445pub const tm_ui_icon_TM_UI_ICON__PLAY: tm_ui_icon = 0;
19446pub const tm_ui_icon_TM_UI_ICON__PAUSE: tm_ui_icon = 1;
19447pub const tm_ui_icon_TM_UI_ICON__RESTART: tm_ui_icon = 2;
19448pub const tm_ui_icon_TM_UI_ICON__STOP: tm_ui_icon = 3;
19449pub const tm_ui_icon_TM_UI_ICON__VOLUME: tm_ui_icon = 4;
19450pub const tm_ui_icon_TM_UI_ICON__PITCH: tm_ui_icon = 5;
19451pub const tm_ui_icon_TM_UI_ICON__PAN: tm_ui_icon = 6;
19452pub type tm_ui_icon = ::std::os::raw::c_int;
19453#[repr(C)]
19454#[derive(Copy, Clone)]
19455pub struct tm_ui_icon_button_t {
19456    pub id: u64,
19457    pub rect: tm_rect_t,
19458    pub is_disabled: bool,
19459    pub _padding_26: [::std::os::raw::c_char; 3usize],
19460    pub icon: tm_ui_icon,
19461}
19462#[repr(C)]
19463#[derive(Copy, Clone)]
19464pub struct tm_ui_icon_api {
19465    pub button: ::std::option::Option<
19466        unsafe extern "C" fn(
19467            ui: *mut tm_ui_o,
19468            uistyle: *const tm_ui_style_t,
19469            c: *const tm_ui_icon_button_t,
19470        ) -> bool,
19471    >,
19472    pub pushbutton: ::std::option::Option<
19473        unsafe extern "C" fn(
19474            ui: *mut tm_ui_o,
19475            uistyle: *const tm_ui_style_t,
19476            c: *const tm_ui_icon_button_t,
19477            pressed: *mut bool,
19478        ) -> bool,
19479    >,
19480}
19481#[repr(C)]
19482#[derive(Copy, Clone)]
19483pub struct tm_ui_renderer_api {
19484    pub create: ::std::option::Option<
19485        unsafe extern "C" fn(
19486            res_buf: *mut tm_renderer_resource_command_buffer_o,
19487            shader_repository: *mut tm_shader_repository_o,
19488            allocator: *mut tm_allocator_i,
19489            device_affinity: u32,
19490        ) -> *mut tm_ui_renderer_o,
19491    >,
19492    pub destroy: ::std::option::Option<
19493        unsafe extern "C" fn(
19494            ui_renderer: *mut tm_ui_renderer_o,
19495            res_buf: *mut tm_renderer_resource_command_buffer_o,
19496        ),
19497    >,
19498    pub render: ::std::option::Option<
19499        unsafe extern "C" fn(
19500            ui_renderer: *mut tm_ui_renderer_o,
19501            ui: *mut tm_ui_o,
19502            sort_key: u64,
19503            render_target_resolution: *const u32,
19504            dpi_scale_factor: f32,
19505            res_buf: *mut tm_renderer_resource_command_buffer_o,
19506            cmd_buf: *mut tm_renderer_command_buffer_o,
19507        ),
19508    >,
19509    pub font: ::std::option::Option<
19510        unsafe extern "C" fn(
19511            ui_renderer: *mut tm_ui_renderer_o,
19512            font_size: u32,
19513            window_dpi: f32,
19514            res_buf: *mut tm_renderer_resource_command_buffer_o,
19515        ) -> *const tm_font_t,
19516    >,
19517    pub allocate_image_slot:
19518        ::std::option::Option<unsafe extern "C" fn(ui_renderer: *mut tm_ui_renderer_o) -> u32>,
19519    pub set_image: ::std::option::Option<
19520        unsafe extern "C" fn(ui_renderer: *mut tm_ui_renderer_o, slot: u32, image_handle: u32),
19521    >,
19522}
19523#[repr(C)]
19524#[derive(Copy, Clone)]
19525pub struct tm_ui_tree_t {
19526    pub ud: *mut ::std::os::raw::c_void,
19527    pub root: u64,
19528    pub item_height: f32,
19529    pub rect: tm_rect_t,
19530    pub _padding_26: [::std::os::raw::c_char; 4usize],
19531    pub node_ui: ::std::option::Option<
19532        unsafe extern "C" fn(
19533            ui: *mut tm_ui_o,
19534            uistyle: *const tm_ui_style_t,
19535            item_id: u64,
19536            rect: tm_rect_t,
19537            ud: *mut ::std::os::raw::c_void,
19538            node: u64,
19539            parent: u64,
19540            child_idx: u64,
19541        ),
19542    >,
19543    pub node_children: ::std::option::Option<
19544        unsafe extern "C" fn(
19545            ud: *mut ::std::os::raw::c_void,
19546            node: u64,
19547            children: *mut u64,
19548            n: u32,
19549        ) -> u32,
19550    >,
19551}
19552#[repr(C)]
19553#[derive(Copy, Clone)]
19554pub struct tm_ui_tree_item_metrics_t {
19555    pub have_been_filled: bool,
19556    pub _padding_45: [::std::os::raw::c_char; 7usize],
19557    pub tooltip_hover_text: *const ::std::os::raw::c_char,
19558    pub toolbar_ui_elements: *mut u64,
19559    pub toolbar_used_rect: tm_rect_t,
19560    pub toolbar_element_count: u32,
19561    pub _padding_52: [::std::os::raw::c_char; 4usize],
19562}
19563#[repr(C)]
19564#[derive(Copy, Clone)]
19565pub struct tm_ui_tree_state_t {
19566    pub expanded: *mut tm_set_t,
19567    pub selected: *mut tm_set_t,
19568    pub total_height: f32,
19569    pub scroll_y: f32,
19570}
19571#[repr(C, packed)]
19572#[derive(Copy, Clone)]
19573pub struct tm_ui_tree_item_state_t {
19574    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
19575}
19576impl tm_ui_tree_item_state_t {
19577    #[inline]
19578    pub fn can_expand(&self) -> bool {
19579        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
19580    }
19581    #[inline]
19582    pub fn set_can_expand(&mut self, val: bool) {
19583        unsafe {
19584            let val: u8 = ::std::mem::transmute(val);
19585            self._bitfield_1.set(0usize, 1u8, val as u64)
19586        }
19587    }
19588    #[inline]
19589    pub fn expanded(&self) -> bool {
19590        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
19591    }
19592    #[inline]
19593    pub fn set_expanded(&mut self, val: bool) {
19594        unsafe {
19595            let val: u8 = ::std::mem::transmute(val);
19596            self._bitfield_1.set(1usize, 1u8, val as u64)
19597        }
19598    }
19599    #[inline]
19600    pub fn can_select(&self) -> bool {
19601        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
19602    }
19603    #[inline]
19604    pub fn set_can_select(&mut self, val: bool) {
19605        unsafe {
19606            let val: u8 = ::std::mem::transmute(val);
19607            self._bitfield_1.set(2usize, 1u8, val as u64)
19608        }
19609    }
19610    #[inline]
19611    pub fn selected(&self) -> bool {
19612        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
19613    }
19614    #[inline]
19615    pub fn set_selected(&mut self, val: bool) {
19616        unsafe {
19617            let val: u8 = ::std::mem::transmute(val);
19618            self._bitfield_1.set(3usize, 1u8, val as u64)
19619        }
19620    }
19621    #[inline]
19622    pub fn padding(&self) -> u8 {
19623        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
19624    }
19625    #[inline]
19626    pub fn set_padding(&mut self, val: u8) {
19627        unsafe {
19628            let val: u8 = ::std::mem::transmute(val);
19629            self._bitfield_1.set(4usize, 4u8, val as u64)
19630        }
19631    }
19632    #[inline]
19633    pub fn new_bitfield_1(
19634        can_expand: bool,
19635        expanded: bool,
19636        can_select: bool,
19637        selected: bool,
19638        padding: u8,
19639    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
19640        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
19641            Default::default();
19642        __bindgen_bitfield_unit.set(0usize, 1u8, {
19643            let can_expand: u8 = unsafe { ::std::mem::transmute(can_expand) };
19644            can_expand as u64
19645        });
19646        __bindgen_bitfield_unit.set(1usize, 1u8, {
19647            let expanded: u8 = unsafe { ::std::mem::transmute(expanded) };
19648            expanded as u64
19649        });
19650        __bindgen_bitfield_unit.set(2usize, 1u8, {
19651            let can_select: u8 = unsafe { ::std::mem::transmute(can_select) };
19652            can_select as u64
19653        });
19654        __bindgen_bitfield_unit.set(3usize, 1u8, {
19655            let selected: u8 = unsafe { ::std::mem::transmute(selected) };
19656            selected as u64
19657        });
19658        __bindgen_bitfield_unit.set(4usize, 4u8, {
19659            let padding: u8 = unsafe { ::std::mem::transmute(padding) };
19660            padding as u64
19661        });
19662        __bindgen_bitfield_unit
19663    }
19664}
19665#[repr(C)]
19666#[derive(Copy, Clone)]
19667pub struct tm_ui_tree_item_res_t {
19668    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u8>,
19669    pub _padding_109: [::std::os::raw::c_char; 2usize],
19670    pub item_rect: tm_rect_t,
19671    pub _padding_113: [::std::os::raw::c_char; 4usize],
19672    pub item_id: u64,
19673}
19674impl tm_ui_tree_item_res_t {
19675    #[inline]
19676    pub fn expanded(&self) -> bool {
19677        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
19678    }
19679    #[inline]
19680    pub fn set_expanded(&mut self, val: bool) {
19681        unsafe {
19682            let val: u8 = ::std::mem::transmute(val);
19683            self._bitfield_1.set(0usize, 1u8, val as u64)
19684        }
19685    }
19686    #[inline]
19687    pub fn expanded_changed(&self) -> bool {
19688        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
19689    }
19690    #[inline]
19691    pub fn set_expanded_changed(&mut self, val: bool) {
19692        unsafe {
19693            let val: u8 = ::std::mem::transmute(val);
19694            self._bitfield_1.set(1usize, 1u8, val as u64)
19695        }
19696    }
19697    #[inline]
19698    pub fn selected(&self) -> bool {
19699        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
19700    }
19701    #[inline]
19702    pub fn set_selected(&mut self, val: bool) {
19703        unsafe {
19704            let val: u8 = ::std::mem::transmute(val);
19705            self._bitfield_1.set(2usize, 1u8, val as u64)
19706        }
19707    }
19708    #[inline]
19709    pub fn selected_changed(&self) -> bool {
19710        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
19711    }
19712    #[inline]
19713    pub fn set_selected_changed(&mut self, val: bool) {
19714        unsafe {
19715            let val: u8 = ::std::mem::transmute(val);
19716            self._bitfield_1.set(3usize, 1u8, val as u64)
19717        }
19718    }
19719    #[inline]
19720    pub fn clicked(&self) -> bool {
19721        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
19722    }
19723    #[inline]
19724    pub fn set_clicked(&mut self, val: bool) {
19725        unsafe {
19726            let val: u8 = ::std::mem::transmute(val);
19727            self._bitfield_1.set(4usize, 1u8, val as u64)
19728        }
19729    }
19730    #[inline]
19731    pub fn double_clicked(&self) -> bool {
19732        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
19733    }
19734    #[inline]
19735    pub fn set_double_clicked(&mut self, val: bool) {
19736        unsafe {
19737            let val: u8 = ::std::mem::transmute(val);
19738            self._bitfield_1.set(5usize, 1u8, val as u64)
19739        }
19740    }
19741    #[inline]
19742    pub fn visible(&self) -> bool {
19743        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
19744    }
19745    #[inline]
19746    pub fn set_visible(&mut self, val: bool) {
19747        unsafe {
19748            let val: u8 = ::std::mem::transmute(val);
19749            self._bitfield_1.set(6usize, 1u8, val as u64)
19750        }
19751    }
19752    #[inline]
19753    pub fn deselect_others(&self) -> bool {
19754        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
19755    }
19756    #[inline]
19757    pub fn set_deselect_others(&mut self, val: bool) {
19758        unsafe {
19759            let val: u8 = ::std::mem::transmute(val);
19760            self._bitfield_1.set(7usize, 1u8, val as u64)
19761        }
19762    }
19763    #[inline]
19764    pub fn select_range(&self) -> bool {
19765        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
19766    }
19767    #[inline]
19768    pub fn set_select_range(&mut self, val: bool) {
19769        unsafe {
19770            let val: u8 = ::std::mem::transmute(val);
19771            self._bitfield_1.set(8usize, 1u8, val as u64)
19772        }
19773    }
19774    #[inline]
19775    pub fn hovered(&self) -> bool {
19776        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) }
19777    }
19778    #[inline]
19779    pub fn set_hovered(&mut self, val: bool) {
19780        unsafe {
19781            let val: u8 = ::std::mem::transmute(val);
19782            self._bitfield_1.set(9usize, 1u8, val as u64)
19783        }
19784    }
19785    #[inline]
19786    pub fn padding(&self) -> u8 {
19787        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 6u8) as u8) }
19788    }
19789    #[inline]
19790    pub fn set_padding(&mut self, val: u8) {
19791        unsafe {
19792            let val: u8 = ::std::mem::transmute(val);
19793            self._bitfield_1.set(10usize, 6u8, val as u64)
19794        }
19795    }
19796    #[inline]
19797    pub fn new_bitfield_1(
19798        expanded: bool,
19799        expanded_changed: bool,
19800        selected: bool,
19801        selected_changed: bool,
19802        clicked: bool,
19803        double_clicked: bool,
19804        visible: bool,
19805        deselect_others: bool,
19806        select_range: bool,
19807        hovered: bool,
19808        padding: u8,
19809    ) -> __BindgenBitfieldUnit<[u8; 2usize], u8> {
19810        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u8> =
19811            Default::default();
19812        __bindgen_bitfield_unit.set(0usize, 1u8, {
19813            let expanded: u8 = unsafe { ::std::mem::transmute(expanded) };
19814            expanded as u64
19815        });
19816        __bindgen_bitfield_unit.set(1usize, 1u8, {
19817            let expanded_changed: u8 = unsafe { ::std::mem::transmute(expanded_changed) };
19818            expanded_changed as u64
19819        });
19820        __bindgen_bitfield_unit.set(2usize, 1u8, {
19821            let selected: u8 = unsafe { ::std::mem::transmute(selected) };
19822            selected as u64
19823        });
19824        __bindgen_bitfield_unit.set(3usize, 1u8, {
19825            let selected_changed: u8 = unsafe { ::std::mem::transmute(selected_changed) };
19826            selected_changed as u64
19827        });
19828        __bindgen_bitfield_unit.set(4usize, 1u8, {
19829            let clicked: u8 = unsafe { ::std::mem::transmute(clicked) };
19830            clicked as u64
19831        });
19832        __bindgen_bitfield_unit.set(5usize, 1u8, {
19833            let double_clicked: u8 = unsafe { ::std::mem::transmute(double_clicked) };
19834            double_clicked as u64
19835        });
19836        __bindgen_bitfield_unit.set(6usize, 1u8, {
19837            let visible: u8 = unsafe { ::std::mem::transmute(visible) };
19838            visible as u64
19839        });
19840        __bindgen_bitfield_unit.set(7usize, 1u8, {
19841            let deselect_others: u8 = unsafe { ::std::mem::transmute(deselect_others) };
19842            deselect_others as u64
19843        });
19844        __bindgen_bitfield_unit.set(8usize, 1u8, {
19845            let select_range: u8 = unsafe { ::std::mem::transmute(select_range) };
19846            select_range as u64
19847        });
19848        __bindgen_bitfield_unit.set(9usize, 1u8, {
19849            let hovered: u8 = unsafe { ::std::mem::transmute(hovered) };
19850            hovered as u64
19851        });
19852        __bindgen_bitfield_unit.set(10usize, 6u8, {
19853            let padding: u8 = unsafe { ::std::mem::transmute(padding) };
19854            padding as u64
19855        });
19856        __bindgen_bitfield_unit
19857    }
19858}
19859#[repr(C)]
19860#[derive(Copy, Clone)]
19861pub struct tm_ui_tree_api {
19862    pub tree: ::std::option::Option<
19863        unsafe extern "C" fn(
19864            ui: *mut tm_ui_o,
19865            uistyle: *const tm_ui_style_t,
19866            tree: *const tm_ui_tree_t,
19867            state: *mut tm_ui_tree_state_t,
19868        ),
19869    >,
19870    pub tree_item: ::std::option::Option<
19871        unsafe extern "C" fn(
19872            ui: *mut tm_ui_o,
19873            uistyle: *const tm_ui_style_t,
19874            rect: tm_rect_t,
19875            state: tm_ui_tree_item_state_t,
19876            tree_has_focus: bool,
19877            metrics: *const tm_ui_tree_item_metrics_t,
19878        ) -> tm_ui_tree_item_res_t,
19879    >,
19880    pub tree_item_with_sets: ::std::option::Option<
19881        unsafe extern "C" fn(
19882            ui: *mut tm_ui_o,
19883            uistyle: *const tm_ui_style_t,
19884            rect: tm_rect_t,
19885            key: u64,
19886            expanded_set: *mut tm_set_t,
19887            selected_set: *mut tm_set_t,
19888            tree_has_focus: bool,
19889        ) -> tm_ui_tree_item_res_t,
19890    >,
19891    pub tree_item_with_metrics: ::std::option::Option<
19892        unsafe extern "C" fn(
19893            ui: *mut tm_ui_o,
19894            uistyle: *const tm_ui_style_t,
19895            rect: tm_rect_t,
19896            key: u64,
19897            expanded_set: *mut tm_set_t,
19898            selected_set: *mut tm_set_t,
19899            tree_has_focus: bool,
19900            metrics: *const tm_ui_tree_item_metrics_t,
19901        ) -> tm_ui_tree_item_res_t,
19902    >,
19903}
19904pub const tm_upnp_state_TM_UPNP_STATE_NONE: tm_upnp_state = 0;
19905pub const tm_upnp_state_TM_UPNP_STATE_IN_PROGRESS: tm_upnp_state = 1;
19906pub const tm_upnp_state_TM_UPNP_STATE_FAILURE: tm_upnp_state = 2;
19907pub const tm_upnp_state_TM_UPNP_STATE_PORT_FORWARDED: tm_upnp_state = 3;
19908pub const tm_upnp_state_TM_UPNP_STATE_PORT_REMOVED: tm_upnp_state = 4;
19909pub type tm_upnp_state = ::std::os::raw::c_int;
19910#[repr(C)]
19911#[derive(Copy, Clone)]
19912pub struct tm_upnp_o {
19913    _unused: [u8; 0],
19914}
19915#[repr(C)]
19916#[derive(Copy, Clone)]
19917pub struct tm_upnp_result_t {
19918    pub forwarded_port: u32,
19919    pub _padding_25: [::std::os::raw::c_char; 4usize],
19920    pub router_wan_address: *mut tm_socket_address_t,
19921}
19922#[repr(C)]
19923#[derive(Copy, Clone)]
19924pub struct tm_upnp_api {
19925    pub create: ::std::option::Option<
19926        unsafe extern "C" fn(
19927            allocator: *mut tm_allocator_i,
19928            port_to_forward: u32,
19929        ) -> *mut tm_upnp_o,
19930    >,
19931    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_upnp_o)>,
19932    pub remove_forwarded_port: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_upnp_o)>,
19933    pub update: ::std::option::Option<
19934        unsafe extern "C" fn(inst: *mut tm_upnp_o, res: *mut tm_upnp_result_t) -> tm_upnp_state,
19935    >,
19936}
19937pub const tm_vulkan_init_flag_TM_VULKAN_INIT_FLAG_SWAPCHAIN: tm_vulkan_init_flag = 1;
19938pub const tm_vulkan_init_flag_TM_VULKAN_INIT_FLAG_VALIDATION: tm_vulkan_init_flag = 2;
19939pub type tm_vulkan_init_flag = ::std::os::raw::c_int;
19940pub const tm_vulkan_device_flag_TM_VULKAN_DEVICE_FLAG_DISCRETE: tm_vulkan_device_flag = 1;
19941pub const tm_vulkan_device_flag_TM_VULKAN_DEVICE_FLAG_INTEGRATED: tm_vulkan_device_flag = 2;
19942pub type tm_vulkan_device_flag = ::std::os::raw::c_int;
19943#[repr(C)]
19944#[derive(Copy, Clone)]
19945pub struct tm_vulkan_device_id {
19946    pub opaque: u32,
19947}
19948#[repr(C)]
19949#[derive(Copy, Clone)]
19950pub struct tm_vulkan_raw_device_access_t {
19951    pub vk_instance: *mut VkInstance_T,
19952    pub vk_device: *mut VkDevice_T,
19953    pub vk_physical_device: *mut VkPhysicalDevice_T,
19954    pub vk_graphics_queue: *mut VkQueue_T,
19955    pub vk_graphics_queue_family_index: u32,
19956    pub _padding_49: [::std::os::raw::c_char; 4usize],
19957}
19958#[repr(C)]
19959#[derive(Copy, Clone)]
19960pub struct tm_vulkan_raw_image_buffer_access_t {
19961    pub vk_format: u32,
19962    pub vk_msaa_sample_count_flag: u32,
19963    pub vk_image_view_type: u32,
19964    pub width: u32,
19965    pub height: u32,
19966    pub depth: u32,
19967    pub layers: u32,
19968    pub mip_levels: u32,
19969    pub vk_image: *mut VkImage_T,
19970}
19971#[repr(C)]
19972#[derive(Copy, Clone)]
19973pub struct tm_vulkan_backend_i {
19974    pub inst: *mut ::std::os::raw::c_void,
19975    pub init: ::std::option::Option<
19976        unsafe extern "C" fn(
19977            inst: *mut ::std::os::raw::c_void,
19978            required_instance_flags: u32,
19979        ) -> bool,
19980    >,
19981    pub shutdown: ::std::option::Option<unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void)>,
19982    pub agnostic_render_backend: ::std::option::Option<
19983        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void) -> *mut tm_renderer_backend_i,
19984    >,
19985    pub num_physical_devices: ::std::option::Option<
19986        unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, required_device_flags: u32) -> u32,
19987    >,
19988    pub physical_device_name: ::std::option::Option<
19989        unsafe extern "C" fn(
19990            inst: *mut ::std::os::raw::c_void,
19991            device: u32,
19992            required_device_flags: u32,
19993            vendor_id: *mut u32,
19994            device_id: *mut u32,
19995            driver_ver: *mut u32,
19996            swap_chain_support: *mut bool,
19997        ) -> *const ::std::os::raw::c_char,
19998    >,
19999    pub physical_device_id: ::std::option::Option<
20000        unsafe extern "C" fn(
20001            inst: *mut ::std::os::raw::c_void,
20002            device: u32,
20003            required_device_flags: u32,
20004            result: *mut tm_vulkan_device_id,
20005        ) -> bool,
20006    >,
20007    pub num_device_groups:
20008        ::std::option::Option<unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void) -> u32>,
20009    pub physical_devices_in_group: ::std::option::Option<
20010        unsafe extern "C" fn(
20011            inst: *mut ::std::os::raw::c_void,
20012            device_group: u32,
20013            num_physical_devices: *mut u32,
20014        ) -> *const u32,
20015    >,
20016    pub device_group_id: ::std::option::Option<
20017        unsafe extern "C" fn(
20018            inst: *mut ::std::os::raw::c_void,
20019            device_group: u32,
20020        ) -> tm_vulkan_device_id,
20021    >,
20022    pub create_devices: ::std::option::Option<
20023        unsafe extern "C" fn(
20024            inst: *mut ::std::os::raw::c_void,
20025            devices: *const tm_vulkan_device_id,
20026            num_devices: u32,
20027            device_affinities: *mut u32,
20028        ) -> bool,
20029    >,
20030    pub destroy_devices: ::std::option::Option<
20031        unsafe extern "C" fn(
20032            inst: *mut ::std::os::raw::c_void,
20033            device_affinities: *const u32,
20034            num_devices: u32,
20035        ),
20036    >,
20037    pub retrieve_raw_device: ::std::option::Option<
20038        unsafe extern "C" fn(
20039            inst: *mut ::std::os::raw::c_void,
20040            device_affinity_mask: u32,
20041            device_access: *mut tm_vulkan_raw_device_access_t,
20042        ) -> bool,
20043    >,
20044    pub retrieve_raw_image_buffer: ::std::option::Option<
20045        unsafe extern "C" fn(
20046            inst: *mut ::std::os::raw::c_void,
20047            handle: u32,
20048            device_affinity_mask: u32,
20049            image_buffer_access: *mut tm_vulkan_raw_image_buffer_access_t,
20050        ) -> bool,
20051    >,
20052}
20053#[repr(C)]
20054#[derive(Copy, Clone)]
20055pub struct tm_vulkan_api {
20056    pub create_backend: ::std::option::Option<
20057        unsafe extern "C" fn(
20058            allocator: *mut tm_allocator_i,
20059            error: *mut tm_error_i,
20060        ) -> *mut tm_vulkan_backend_i,
20061    >,
20062    pub destroy_backend:
20063        ::std::option::Option<unsafe extern "C" fn(backend: *mut tm_vulkan_backend_i)>,
20064    pub shader_compiler:
20065        ::std::option::Option<unsafe extern "C" fn() -> *mut tm_renderer_shader_compiler_api>,
20066}
20067#[repr(C)]
20068#[derive(Copy, Clone)]
20069pub struct tm_asset_browser_tab_api {
20070    pub find_asset_browser:
20071        ::std::option::Option<unsafe extern "C" fn(ui: *mut tm_ui_o) -> tm_tt_id_t>,
20072    pub selected_object: ::std::option::Option<
20073        unsafe extern "C" fn(tt: *mut tm_the_truth_o, asset_browser: tm_tt_id_t) -> tm_tt_id_t,
20074    >,
20075    pub set_selection: ::std::option::Option<
20076        unsafe extern "C" fn(
20077            ui: *mut tm_ui_o,
20078            asset_or_dir: tm_tt_id_t,
20079            undo_scope: tm_tt_undo_scope_t,
20080        ) -> bool,
20081    >,
20082}
20083extern "C" {
20084    pub static mut console_logger: *mut tm_logger_i;
20085}
20086#[repr(C)]
20087#[derive(Copy, Clone)]
20088pub struct tm_update_tracker_api {
20089    pub init: ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
20090    pub should_show_update_notification:
20091        ::std::option::Option<unsafe extern "C" fn(app: *mut tm_application_o) -> bool>,
20092    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
20093}
20094pub const TM_TT_PROP__APPLICATION_SETTINGS__UPDATES__LATEST_VERSION: ::std::os::raw::c_int = 0;
20095pub const TM_TT_PROP__APPLICATION_SETTINGS__UPDATES__SKIP_THIS_VERSION: ::std::os::raw::c_int = 1;
20096pub type _bindgen_ty_231 = ::std::os::raw::c_int;
20097pub const TM_TT_PROP__APPLICATION_SETTINGS__DOWNLOAD__URL: ::std::os::raw::c_int = 0;
20098pub const TM_TT_PROP__APPLICAITON_SETTINGS__DOWNLOAD__FILE: ::std::os::raw::c_int = 1;
20099pub const TM_TT_PROP__APPLICAITON_SETTINGS__DOWNLOAD__UNZIP_DIRECTORY: ::std::os::raw::c_int = 2;
20100pub type _bindgen_ty_232 = ::std::os::raw::c_int;
20101extern "C" {
20102    pub static mut tm_update_tracker_api: *mut tm_update_tracker_api;
20103}
20104extern "C" {
20105    pub fn import_gltf_asset(
20106        gltf_file: *const ::std::os::raw::c_char,
20107        target_dir: tm_tt_id_t,
20108        a: *mut tm_allocator_i,
20109        tt: *mut tm_the_truth_o,
20110        reimport_into: tm_tt_id_t,
20111        ui: *mut tm_ui_o,
20112        undo_scope: tm_tt_undo_scope_t,
20113    ) -> u64;
20114}
20115extern "C" {
20116    pub static mut gltf_asset_io: *mut tm_asset_io_i;
20117}
20118extern "C" {
20119    pub fn import_tab__import_project(tab: *mut tm_tab_o, file: *const ::std::os::raw::c_char);
20120}
20121#[repr(C)]
20122#[derive(Copy, Clone)]
20123pub struct tm_integration_test_runner_api {
20124    pub create: ::std::option::Option<
20125        unsafe extern "C" fn(
20126            app: *mut tm_application_o,
20127            allocator: *mut tm_allocator_i,
20128            context: u64,
20129        ) -> *mut tm_integration_test_runner_o,
20130    >,
20131    pub add_test: ::std::option::Option<
20132        unsafe extern "C" fn(
20133            runner: *mut tm_integration_test_runner_o,
20134            name: *const ::std::os::raw::c_char,
20135        ),
20136    >,
20137    pub tick:
20138        ::std::option::Option<unsafe extern "C" fn(runner: *mut tm_integration_test_runner_o)>,
20139    pub destroy:
20140        ::std::option::Option<unsafe extern "C" fn(runner: *mut tm_integration_test_runner_o)>,
20141}
20142extern "C" {
20143    pub static mut tm_integration_test_runner_api: *mut tm_integration_test_runner_api;
20144}
20145pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__NONE: tm_login__tab_action = 0;
20146pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__SHOW: tm_login__tab_action = 1;
20147pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__FULLSCREEN: tm_login__tab_action = 2;
20148pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__HIDE: tm_login__tab_action = 3;
20149pub const tm_login__tab_action_TM_LOGIN__TAB_ACTION__QUIT: tm_login__tab_action = 4;
20150pub type tm_login__tab_action = ::std::os::raw::c_int;
20151#[repr(C)]
20152#[derive(Copy, Clone)]
20153pub struct tm_login_update_t {
20154    pub show_login_tab: bool,
20155    pub force_focus_login_tab: bool,
20156}
20157#[repr(C)]
20158#[derive(Copy, Clone)]
20159pub struct tm_login_api {
20160    pub init: ::std::option::Option<unsafe extern "C" fn(allocator: *mut tm_allocator_i)>,
20161    pub update: ::std::option::Option<unsafe extern "C" fn() -> tm_login__tab_action>,
20162    pub shutdown: ::std::option::Option<unsafe extern "C" fn()>,
20163}
20164extern "C" {
20165    pub static mut tm_login_api: *mut tm_login_api;
20166}
20167extern "C" {
20168    pub fn menu__new_plugin__editor_tab();
20169}
20170extern "C" {
20171    pub fn menu__new_plugin__entity_component();
20172}
20173extern "C" {
20174    pub fn menu__new_plugin__minimal();
20175}
20176extern "C" {
20177    pub fn load_plugin_templates(reg: *mut tm_api_registry_api, load: bool);
20178}
20179extern "C" {
20180    pub fn profiler_view(tab: *mut tm_tab_o) -> *mut tm_profiler_view_o;
20181}
20182extern "C" {
20183    pub fn properties_tab_set_root_with_mask(
20184        tab: *mut tm_tab_o,
20185        tt: *mut tm_the_truth_o,
20186        root: tm_tt_id_t,
20187        mask: u64,
20188    );
20189}
20190pub const TM_TT_PROP__SCENE_TAB__ASSET: ::std::os::raw::c_int = 0;
20191pub const TM_TT_PROP__SCENE_TAB__SELECTION: ::std::os::raw::c_int = 1;
20192pub const TM_TT_PROP__SCENE_TAB__LAST_SELECTED: ::std::os::raw::c_int = 2;
20193pub const TM_TT_PROP__SCENE_TAB__PICK_COUNTER: ::std::os::raw::c_int = 3;
20194pub const TM_TT_PROP__SCENE_TAB__FRAME_OBJECT: ::std::os::raw::c_int = 4;
20195pub const TM_TT_PROP__SCENE_TAB__HIDDEN: ::std::os::raw::c_int = 5;
20196pub type _bindgen_ty_233 = ::std::os::raw::c_int;
20197pub const TM_TT_PROP__SCENE_SETTINGS__ASSET_UUID_A: ::std::os::raw::c_int = 0;
20198pub const TM_TT_PROP__SCENE_SETTINGS__USE_WORLD_AXES: ::std::os::raw::c_int = 1;
20199pub const TM_TT_PROP__SCENE_SETTINGS__MULTI_SELECT_PIVOT: ::std::os::raw::c_int = 2;
20200pub const TM_TT_PROP__SCENE_SETTINGS__MOVE_SNAP: ::std::os::raw::c_int = 3;
20201pub const TM_TT_PROP__SCENE_SETTINGS__MOVE_SNAP_SIZE: ::std::os::raw::c_int = 4;
20202pub const TM_TT_PROP__SCENE_SETTINGS__ROT_SNAP: ::std::os::raw::c_int = 5;
20203pub const TM_TT_PROP__SCENE_SETTINGS__ROT_SNAP_ANGLE: ::std::os::raw::c_int = 6;
20204pub const TM_TT_PROP__SCENE_SETTINGS__SCALE_ABSOLUTE_HANDLE: ::std::os::raw::c_int = 7;
20205pub type _bindgen_ty_234 = ::std::os::raw::c_int;
20206extern "C" {
20207    pub fn scene_tab_truth_object(tab: *mut tm_tab_o) -> tm_tt_id_t;
20208}
20209extern "C" {
20210    pub fn scene_tab_entity_context(tab: *mut tm_tab_o) -> *mut tm_entity_context_o;
20211}
20212#[repr(C)]
20213#[derive(Copy, Clone)]
20214pub struct scene_tab_entity_data_t {
20215    pub entity_ctx: *mut tm_entity_context_o,
20216    pub camera_controller_manager: *mut tm_camera_controller_component_manager_o,
20217    pub camera_controller_component: u32,
20218    pub dcc_asset_component: u32,
20219    pub camera: tm_entity_t,
20220    pub entity: tm_entity_t,
20221}
20222extern "C" {
20223    pub fn scene_tab_entity_data(tab: *mut tm_tab_o) -> scene_tab_entity_data_t;
20224}
20225extern "C" {
20226    pub fn scene_tab_viewer_render_args(tab: *mut tm_tab_o, args: *mut tm_viewer_render_args_t);
20227}
20228extern "C" {
20229    pub fn load_scene_tab(reg: *mut tm_api_registry_api, load: bool);
20230}
20231extern "C" {
20232    pub fn simulate_tab_set_show_playback_controls(tab: *mut tm_tab_o, show: bool);
20233}
20234#[repr(C)]
20235#[derive(Copy, Clone)]
20236pub struct tm_task_manager_o {
20237    _unused: [u8; 0],
20238}
20239#[repr(C)]
20240#[derive(Copy, Clone)]
20241pub struct tm_task_manager_api {
20242    pub create: ::std::option::Option<
20243        unsafe extern "C" fn(alloc: *mut tm_allocator_i) -> *mut tm_task_manager_o,
20244    >,
20245    pub destroy: ::std::option::Option<unsafe extern "C" fn(inst: *mut tm_task_manager_o)>,
20246    pub ui: ::std::option::Option<
20247        unsafe extern "C" fn(
20248            inst: *mut tm_task_manager_o,
20249            ui: *mut tm_ui_o,
20250            id: u64,
20251            uistyle: *const tm_ui_style_t,
20252            r: tm_rect_t,
20253        ),
20254    >,
20255}
20256extern "C" {
20257    pub static mut tm_global_api_registry: *mut tm_api_registry_api;
20258}
20259extern "C" {
20260    pub static mut tm_allocator_api: *mut tm_allocator_api;
20261}
20262extern "C" {
20263    pub static mut tm_buffer_format_api: *mut tm_buffer_format_api;
20264}
20265extern "C" {
20266    pub static mut tm_collaboration_api: *mut tm_collaboration_api;
20267}
20268extern "C" {
20269    pub static mut tm_config_api: *mut tm_config_api;
20270}
20271extern "C" {
20272    pub static mut tm_error_api: *mut tm_error_api;
20273}
20274extern "C" {
20275    pub static mut tm_image_loader_api: *mut tm_image_loader_api;
20276}
20277extern "C" {
20278    pub static mut tm_input_api: *mut tm_input_api;
20279}
20280extern "C" {
20281    pub static mut tm_json_api: *mut tm_json_api;
20282}
20283extern "C" {
20284    pub static mut tm_localizer_api: *mut tm_localizer_api;
20285}
20286extern "C" {
20287    pub static mut tm_logger_api: *mut tm_logger_api;
20288}
20289extern "C" {
20290    pub static mut tm_memory_tracker_api: *mut tm_memory_tracker_api;
20291}
20292extern "C" {
20293    pub static mut tm_os_api: *mut tm_os_api;
20294}
20295extern "C" {
20296    pub static mut tm_path_api: *mut tm_path_api;
20297}
20298extern "C" {
20299    pub static mut tm_plugins_api: *mut tm_plugins_api;
20300}
20301extern "C" {
20302    pub static mut tm_profiler_api: *mut tm_profiler_api;
20303}
20304extern "C" {
20305    pub static mut tm_task_system_api: *mut tm_task_system_api;
20306}
20307extern "C" {
20308    pub static mut tm_temp_allocator_api: *mut tm_temp_allocator_api;
20309}
20310extern "C" {
20311    pub static mut tm_the_truth_api: *mut tm_the_truth_api;
20312}
20313extern "C" {
20314    pub static mut tm_the_truth_assets_api: *mut tm_the_truth_assets_api;
20315}
20316extern "C" {
20317    pub static mut tm_the_truth_common_types_api: *mut tm_the_truth_common_types_api;
20318}
20319extern "C" {
20320    pub static mut tm_unicode_api: *mut tm_unicode_api;
20321}
20322extern "C" {
20323    pub static mut tm_feature_flags_api: *mut tm_feature_flags_api;
20324}
20325extern "C" {
20326    pub static mut tm_camera_api: *mut tm_camera_api;
20327}
20328extern "C" {
20329    pub static mut tm_progress_report_api: *mut tm_progress_report_api;
20330}
20331extern "C" {
20332    pub static mut tm_asset_browser_api: *mut tm_asset_browser_api;
20333}
20334extern "C" {
20335    pub static mut tm_asset_io_api: *mut tm_asset_io_api;
20336}
20337extern "C" {
20338    pub static mut tm_dcc_asset_api: *mut tm_dcc_asset_api;
20339}
20340extern "C" {
20341    pub static mut tm_default_render_pipe_api: *mut tm_default_render_pipe_api;
20342}
20343extern "C" {
20344    pub static mut tm_docking_api: *mut tm_docking_api;
20345}
20346extern "C" {
20347    pub static mut tm_draw2d_api: *mut tm_draw2d_api;
20348}
20349extern "C" {
20350    pub static mut tm_entity_api: *mut tm_entity_api;
20351}
20352extern "C" {
20353    pub static mut tm_font_api: *mut tm_font_api;
20354}
20355extern "C" {
20356    pub static mut tm_graph_api: *mut tm_graph_api;
20357}
20358extern "C" {
20359    pub static mut tm_grid_renderer_api: *mut tm_grid_renderer_api;
20360}
20361extern "C" {
20362    pub static mut tm_job_system_api: *mut tm_job_system_api;
20363}
20364extern "C" {
20365    pub static mut tm_link_component_api: *mut tm_link_component_api;
20366}
20367extern "C" {
20368    pub static mut tm_os_display_api: *mut tm_os_display_api;
20369}
20370extern "C" {
20371    pub static mut tm_os_window_api: *mut tm_os_window_api;
20372}
20373extern "C" {
20374    pub static mut tm_owner_component_api: *mut tm_owner_component_api;
20375}
20376extern "C" {
20377    pub static mut tm_primitive_drawer_api: *mut tm_primitive_drawer_api;
20378}
20379extern "C" {
20380    pub static mut tm_profiler_view_api: *mut tm_profiler_view_api;
20381}
20382extern "C" {
20383    pub static mut tm_properties_view_api: *mut tm_properties_view_api;
20384}
20385extern "C" {
20386    pub static mut tm_render_graph_api: *mut tm_render_graph_api;
20387}
20388extern "C" {
20389    pub static mut tm_render_graph_module_api: *mut tm_render_graph_module_api;
20390}
20391extern "C" {
20392    pub static mut tm_renderer_init_api: *mut tm_renderer_init_api;
20393}
20394extern "C" {
20395    pub static mut tm_shader_api: *mut tm_shader_api;
20396}
20397extern "C" {
20398    pub static mut tm_shader_declaration_api: *mut tm_shader_declaration_api;
20399}
20400extern "C" {
20401    pub static mut tm_shader_repository_api: *mut tm_shader_repository_api;
20402}
20403extern "C" {
20404    pub static mut tm_shader_system_api: *mut tm_shader_system_api;
20405}
20406extern "C" {
20407    pub static mut tm_shape3d_api: *mut tm_shape3d_api;
20408}
20409extern "C" {
20410    pub static mut tm_ui_api: *mut tm_ui_api;
20411}
20412extern "C" {
20413    pub static mut tm_ui_drag_api: *mut tm_ui_drag_api;
20414}
20415extern "C" {
20416    pub static mut tm_ui_renderer_api: *mut tm_ui_renderer_api;
20417}
20418extern "C" {
20419    pub static mut tm_vulkan_api: *mut tm_vulkan_api;
20420}
20421extern "C" {
20422    pub static mut tm_gpu_picking_api: *mut tm_gpu_picking_api;
20423}
20424extern "C" {
20425    pub static mut tm_visibility_flags_api: *mut tm_visibility_flags_api;
20426}
20427extern "C" {
20428    pub static mut tm_viewer_api: *mut tm_viewer_api;
20429}
20430extern "C" {
20431    pub static mut tm_viewer_manager_api: *mut tm_viewer_manager_api;
20432}
20433extern "C" {
20434    pub static mut tm_frustum_culling_api: *mut tm_frustum_culling_api;
20435}
20436extern "C" {
20437    pub static mut tm_render_context_api: *mut tm_render_context_api;
20438}
20439extern "C" {
20440    pub static mut tm_camera_controller_component_api: *mut tm_camera_controller_component_api;
20441}
20442extern "C" {
20443    pub static mut tm_scene_common_api: *mut tm_scene_common_api;
20444}
20445extern "C" {
20446    pub static mut tm_task_manager_api: *mut tm_task_manager_api;
20447}
20448extern "C" {
20449    pub static mut tm_gltf_api_opt: *mut tm_gltf_api;
20450}
20451extern "C" {
20452    pub static mut tm_openvr_api_opt: *mut tm_openvr_api;
20453}
20454extern "C" {
20455    pub static mut tm_cmd_buf_api: *mut tm_renderer_command_buffer_api;
20456}
20457extern "C" {
20458    pub static mut tm_res_buf_api: *mut tm_renderer_resource_command_buffer_api;
20459}
20460extern "C" {
20461    pub fn app_open_asset(
20462        app: *mut tm_application_o,
20463        ui: *mut tm_ui_o,
20464        from_tab: *mut tm_tab_i,
20465        asset: tm_tt_id_t,
20466    );
20467}
20468extern "C" {
20469    pub fn app_get_asset_root(app: *mut tm_application_o) -> tm_tt_id_t;
20470}
20471extern "C" {
20472    pub fn app_reimport_asset(
20473        app: *mut tm_application_o,
20474        ui: *mut tm_ui_o,
20475        tt: *mut tm_the_truth_o,
20476        asset: tm_tt_id_t,
20477    );
20478}
20479extern "C" {
20480    pub fn app_create_or_select_tab(
20481        app: *mut tm_application_o,
20482        ui: *mut tm_ui_o,
20483        vt_name: *const ::std::os::raw::c_char,
20484        opt: *const tm_docking_find_tab_opt_t,
20485    ) -> *mut tm_tab_i;
20486}
20487extern "C" {
20488    pub fn app_window_for_ui(app: *mut tm_application_o, ui: *const tm_ui_o) -> *mut tm_window_o;
20489}
20490extern "C" {
20491    pub fn app_collaboration(app: *mut tm_application_o) -> *mut tm_collaboration_o;
20492}
20493extern "C" {
20494    pub fn app_collaboration_p2p(app: *mut tm_application_o) -> *mut tm_collaboration_p2p_o;
20495}
20496extern "C" {
20497    pub fn app_collaboration_discord(app: *mut tm_application_o)
20498        -> *mut tm_collaboration_discord_o;
20499}
20500pub const TM_TT_PROP__APPLICATION_SETTINGS__CAMERA_SETTINGS: ::std::os::raw::c_int = 0;
20501pub const TM_TT_PROP__APPLICATION_SETTINGS__GRID_SETTINGS: ::std::os::raw::c_int = 1;
20502pub const TM_TT_PROP__APPLICATION_SETTINGS__WINDOW_LAYOUTS: ::std::os::raw::c_int = 2;
20503pub const TM_TT_PROP__APPLICATION_SETTINGS__RECENT_FILES: ::std::os::raw::c_int = 3;
20504pub const TM_TT_PROP__APPLICATION_SETTINGS__ANALYTICS_CLIENT_ID: ::std::os::raw::c_int = 4;
20505pub const TM_TT_PROP__APPLICATION_SETTINGS__INTERFACE_SETTINGS: ::std::os::raw::c_int = 5;
20506pub const TM_TT_PROP__APPLICATION_SETTINGS__UI_THEMES: ::std::os::raw::c_int = 6;
20507pub const TM_TT_PROP__APPLICATION_SETTINGS__UI_THEME: ::std::os::raw::c_int = 7;
20508pub const TM_TT_PROP__APPLICATION_SETTINGS__BUILTIN_UI_THEME: ::std::os::raw::c_int = 8;
20509pub const TM_TT_PROP__APPLICATION_SETTINGS__PROJECTS_SETTINGS: ::std::os::raw::c_int = 9;
20510pub const TM_TT_PROP__APPLICATION_SETTINGS__UPDATES: ::std::os::raw::c_int = 10;
20511pub const TM_TT_PROP__APPLICATION_SETTINGS__DOWNLOADS: ::std::os::raw::c_int = 11;
20512pub const TM_TT_PROP__APPLICATION_SETTINGS__LAST_OPENED_PROJECT: ::std::os::raw::c_int = 12;
20513pub const TM_TT_PROP__APPLICATION_SETTINGS__OPEN_EMPTY_PROJECT_ON_STARTUP: ::std::os::raw::c_int =
20514    13;
20515pub const TM_TT_PROP__APPLICATION_SETTINGS__DOCKING_SETTINGS: ::std::os::raw::c_int = 14;
20516pub type _bindgen_ty_235 = ::std::os::raw::c_int;
20517pub const TM_TT_PROP__INTERFACE_SETTINGS__RESOLUTION_SCALE: ::std::os::raw::c_int = 0;
20518pub type _bindgen_ty_236 = ::std::os::raw::c_int;
20519pub const TM_TT_PROP__WINDOW_LAYOUTS__LAYOUTS: ::std::os::raw::c_int = 0;
20520pub type _bindgen_ty_237 = ::std::os::raw::c_int;
20521pub const TM_TT_PROP__WINDOW_LAYOUT__NAME: ::std::os::raw::c_int = 0;
20522pub const TM_TT_PROP__WINDOW_LAYOUT__CREATE_ON_STARTUP: ::std::os::raw::c_int = 1;
20523pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_X: ::std::os::raw::c_int = 2;
20524pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_Y: ::std::os::raw::c_int = 3;
20525pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_WIDTH: ::std::os::raw::c_int = 4;
20526pub const TM_TT_PROP__WINDOW_LAYOUT__WINDOW_HEIGHT: ::std::os::raw::c_int = 5;
20527pub const TM_TT_PROP__WINDOW_LAYOUT__TABWELL: ::std::os::raw::c_int = 6;
20528pub type _bindgen_ty_238 = ::std::os::raw::c_int;
20529pub const TM_TT_PROP__RECENT_FILE__PATH: ::std::os::raw::c_int = 0;
20530pub const TM_TT_PROP__RECENT_FILE__TIME_STAMP: ::std::os::raw::c_int = 1;
20531pub type _bindgen_ty_239 = ::std::os::raw::c_int;
20532pub const TM_TT_PROP__TABWELL__LEFT: ::std::os::raw::c_int = 0;
20533pub const TM_TT_PROP__TABWELL__RIGHT: ::std::os::raw::c_int = 1;
20534pub const TM_TT_PROP__TABWELL__TOP: ::std::os::raw::c_int = 2;
20535pub const TM_TT_PROP__TABWELL__BOTTOM: ::std::os::raw::c_int = 3;
20536pub const TM_TT_PROP__TABWELL__BIAS: ::std::os::raw::c_int = 4;
20537pub const TM_TT_PROP__TABWELL__VIEWS: ::std::os::raw::c_int = 5;
20538pub type _bindgen_ty_240 = ::std::os::raw::c_int;
20539pub const TM_TT_PROP__TAB_VIEW__NAME: ::std::os::raw::c_int = 0;
20540pub const TM_TT_PROP__TAB_VIEW__SORT_INDEX: ::std::os::raw::c_int = 1;
20541pub type _bindgen_ty_241 = ::std::os::raw::c_int;
20542pub const TM_TT_PROP__PUBLISH_SETTINGS__DIRECTORY_PROJECT: ::std::os::raw::c_int = 0;
20543pub const TM_TT_PROP__PUBLISH_SETTINGS__EXECUTABLE_NAME: ::std::os::raw::c_int = 1;
20544pub const TM_TT_PROP__PUBLISH_SETTINGS__WINDOW_TITLE: ::std::os::raw::c_int = 2;
20545pub const TM_TT_PROP__PUBLISH_SETTINGS__WORLD_ENTITY: ::std::os::raw::c_int = 3;
20546pub type _bindgen_ty_242 = ::std::os::raw::c_int;
20547pub const TM_TT_PROP__PROJECT_SETTINGS__PATH: ::std::os::raw::c_int = 0;
20548pub const TM_TT_PROP__PROJECT_SETTINGS__GRAPHS_SETTINGS: ::std::os::raw::c_int = 1;
20549pub const TM_TT_PROP__PROJECT_SETTINGS__SCENES_SETTINGS: ::std::os::raw::c_int = 2;
20550pub const TM_TT_PROP__PROJECT_SETTINGS__PUBLISH_SETTINGS: ::std::os::raw::c_int = 3;
20551pub type _bindgen_ty_243 = ::std::os::raw::c_int;
20552extern "C" {
20553    pub fn app_settings(app: *mut tm_application_o, id: *mut tm_tt_id_t) -> *mut tm_the_truth_o;
20554}
20555extern "C" {
20556    pub fn app_project_settings(
20557        app: *mut tm_application_o,
20558        id: *mut tm_tt_id_t,
20559    ) -> *mut tm_the_truth_o;
20560}
20561extern "C" {
20562    pub fn app_open_project(
20563        app: *mut tm_application_o,
20564        ui: *mut tm_ui_o,
20565        path: *const ::std::os::raw::c_char,
20566    ) -> bool;
20567}
20568extern "C" {
20569    pub fn app_open_any_project(app: *mut tm_application_o, file: *const ::std::os::raw::c_char);
20570}
20571extern "C" {
20572    pub fn app_save_to_asset_database(
20573        app: *mut tm_application_o,
20574        file: *const ::std::os::raw::c_char,
20575    );
20576}
20577extern "C" {
20578    pub fn app_import_asset(app: *mut tm_application_o, file: *const ::std::os::raw::c_char);
20579}
20580extern "C" {
20581    pub fn app_save_all(app: *mut tm_application_o);
20582}
20583extern "C" {
20584    pub fn app_get_truth(app: *mut tm_application_o) -> *mut tm_the_truth_o;
20585}
20586extern "C" {
20587    pub fn app_new_project(app: *mut tm_application_o);
20588}
20589extern "C" {
20590    pub static mut tm_application_api: *mut tm_application_api;
20591}
20592extern "C" {
20593    pub fn create_localizer(a: *mut tm_allocator_i) -> *mut tm_localizer_o;
20594}
20595extern "C" {
20596    pub fn destroy_localizer(loc: *mut tm_localizer_o);
20597}
20598extern "C" {
20599    pub fn localizer_language(loc: *mut tm_localizer_o) -> u64;
20600}
20601extern "C" {
20602    pub fn localizer_set_language(loc: *mut tm_localizer_o, lang: u64);
20603}
20604extern "C" {
20605    pub fn localizer_interface(loc: *mut tm_localizer_o) -> *mut tm_localizer_i;
20606}
20607#[repr(C)]
20608#[derive(Copy, Clone)]
20609pub struct tm_tab_create_context_t {
20610    pub allocator: *mut tm_allocator_i,
20611    pub id: *mut u64,
20612    pub application: *mut tm_application_o,
20613    pub tt: *mut tm_the_truth_o,
20614    pub undo_stack: *mut tm_undo_stack_i,
20615    pub save_interface: *mut tm_asset_save_i,
20616    pub ui_renderer: *mut tm_ui_renderer_o,
20617}
20618#[repr(C)]
20619#[derive(Copy, Clone)]
20620pub struct tm_the_machinery_tab_vt {
20621    pub __bindgen_padding_0: [u64; 16usize],
20622    pub menu_title: ::std::option::Option<
20623        unsafe extern "C" fn(
20624            inst: *mut tm_tab_o,
20625            ui: *mut tm_ui_o,
20626        ) -> *const ::std::os::raw::c_char,
20627    >,
20628    pub menu: ::std::option::Option<
20629        unsafe extern "C" fn(
20630            inst: *mut tm_tab_o,
20631            ui: *mut tm_ui_o,
20632            uistyle: *const tm_ui_style_t,
20633            submenu_pos: tm_vec2_t,
20634        ),
20635    >,
20636}
20637#[repr(C)]
20638#[derive(Copy, Clone)]
20639pub struct tm_preview_tab_vt {
20640    pub __bindgen_padding_0: [u64; 18usize],
20641    pub preview_entity: ::std::option::Option<
20642        unsafe extern "C" fn(tab: *mut tm_tab_o, e: *mut tm_entity_t) -> *mut tm_entity_context_o,
20643    >,
20644}
20645#[repr(C)]
20646#[derive(Copy, Clone)]
20647pub struct tm_graph_tab_vt {
20648    pub __bindgen_padding_0: [u64; 18usize],
20649    pub refresh_node_types: ::std::option::Option<
20650        unsafe extern "C" fn(
20651            tab: *mut tm_tab_o,
20652            node_interface_name: *const ::std::os::raw::c_char,
20653        ),
20654    >,
20655}
20656pub type __builtin_va_list = *mut ::std::os::raw::c_char;
20657#[repr(C)]
20658#[derive(Copy, Clone)]
20659pub struct tm_viewer_manager_o {
20660    pub _address: u8,
20661}
20662#[repr(C)]
20663#[derive(Copy, Clone)]
20664pub struct tm_asset_io_o {
20665    pub _address: u8,
20666}
20667#[repr(C)]
20668#[derive(Copy, Clone)]
20669pub struct tm_plugin_o {
20670    pub _address: u8,
20671}
20672#[repr(C)]
20673#[derive(Copy, Clone)]
20674pub struct tm_string_repository_o {
20675    pub _address: u8,
20676}
20677#[repr(C)]
20678#[derive(Copy, Clone)]
20679pub struct tm_temp_allocator_o {
20680    pub _address: u8,
20681}
20682#[repr(C)]
20683#[derive(Copy, Clone)]
20684pub struct tm_hash32_t {
20685    pub _address: u8,
20686}
20687#[repr(C)]
20688#[derive(Copy, Clone)]
20689pub struct tm_animation_player_o {
20690    pub _address: u8,
20691}
20692#[repr(C)]
20693#[derive(Copy, Clone)]
20694pub struct tm_creation_graph_instance_data_o {
20695    pub _address: u8,
20696}
20697#[repr(C)]
20698#[derive(Copy, Clone)]
20699pub struct tm_asset_browser_create_asset_o {
20700    pub _address: u8,
20701}
20702#[repr(C)]
20703#[derive(Copy, Clone)]
20704pub struct tm_asset_browser_open_asset_o {
20705    pub _address: u8,
20706}
20707#[repr(C)]
20708#[derive(Copy, Clone)]
20709pub struct tm_asset_browser_add_asset_o {
20710    pub _address: u8,
20711}
20712#[repr(C)]
20713#[derive(Copy, Clone)]
20714pub struct tm_asset_browser_select_asset_o {
20715    pub _address: u8,
20716}
20717#[repr(C)]
20718#[derive(Copy, Clone)]
20719pub struct tm_asset_preview_o {
20720    pub _address: u8,
20721}
20722#[repr(C)]
20723#[derive(Copy, Clone)]
20724pub struct tm_asset_scene_o {
20725    pub _address: u8,
20726}
20727#[repr(C)]
20728#[derive(Copy, Clone)]
20729pub struct VkInstance_T {
20730    pub _address: u8,
20731}
20732#[repr(C)]
20733#[derive(Copy, Clone)]
20734pub struct VkDevice_T {
20735    pub _address: u8,
20736}
20737#[repr(C)]
20738#[derive(Copy, Clone)]
20739pub struct VkPhysicalDevice_T {
20740    pub _address: u8,
20741}
20742#[repr(C)]
20743#[derive(Copy, Clone)]
20744pub struct VkQueue_T {
20745    pub _address: u8,
20746}
20747#[repr(C)]
20748#[derive(Copy, Clone)]
20749pub struct VkImage_T {
20750    pub _address: u8,
20751}