machinery_api/plugins/
the_machinery_shared.rs

1#[repr(C)]
2#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
3pub struct __BindgenBitfieldUnit<Storage> {
4    storage: Storage,
5}
6impl<Storage> __BindgenBitfieldUnit<Storage> {
7    #[inline]
8    pub const fn new(storage: Storage) -> Self {
9        Self { storage }
10    }
11}
12impl<Storage> __BindgenBitfieldUnit<Storage>
13where
14    Storage: AsRef<[u8]> + AsMut<[u8]>,
15{
16    #[inline]
17    pub fn get_bit(&self, index: usize) -> bool {
18        debug_assert!(index / 8 < self.storage.as_ref().len());
19        let byte_index = index / 8;
20        let byte = self.storage.as_ref()[byte_index];
21        let bit_index = if cfg!(target_endian = "big") {
22            7 - (index % 8)
23        } else {
24            index % 8
25        };
26        let mask = 1 << bit_index;
27        byte & mask == mask
28    }
29    #[inline]
30    pub fn set_bit(&mut self, index: usize, val: bool) {
31        debug_assert!(index / 8 < self.storage.as_ref().len());
32        let byte_index = index / 8;
33        let byte = &mut self.storage.as_mut()[byte_index];
34        let bit_index = if cfg!(target_endian = "big") {
35            7 - (index % 8)
36        } else {
37            index % 8
38        };
39        let mask = 1 << bit_index;
40        if val {
41            *byte |= mask;
42        } else {
43            *byte &= !mask;
44        }
45    }
46    #[inline]
47    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
48        debug_assert!(bit_width <= 64);
49        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
50        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
51        let mut val = 0;
52        for i in 0..(bit_width as usize) {
53            if self.get_bit(i + bit_offset) {
54                let index = if cfg!(target_endian = "big") {
55                    bit_width as usize - 1 - i
56                } else {
57                    i
58                };
59                val |= 1 << index;
60            }
61        }
62        val
63    }
64    #[inline]
65    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
66        debug_assert!(bit_width <= 64);
67        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
68        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
69        for i in 0..(bit_width as usize) {
70            let mask = 1 << i;
71            let val_bit_is_set = val & mask == mask;
72            let index = if cfg!(target_endian = "big") {
73                bit_width as usize - 1 - i
74            } else {
75                i
76            };
77            self.set_bit(index + bit_offset, val_bit_is_set);
78        }
79    }
80}
81#[repr(C)]
82pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
83impl<T> __BindgenUnionField<T> {
84    #[inline]
85    pub const fn new() -> Self {
86        __BindgenUnionField(::std::marker::PhantomData)
87    }
88    #[inline]
89    pub unsafe fn as_ref(&self) -> &T {
90        ::std::mem::transmute(self)
91    }
92    #[inline]
93    pub unsafe fn as_mut(&mut self) -> &mut T {
94        ::std::mem::transmute(self)
95    }
96}
97impl<T> ::std::default::Default for __BindgenUnionField<T> {
98    #[inline]
99    fn default() -> Self {
100        Self::new()
101    }
102}
103impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
104    #[inline]
105    fn clone(&self) -> Self {
106        Self::new()
107    }
108}
109impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
110impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
111    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
112        fmt.write_str("__BindgenUnionField")
113    }
114}
115impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
116    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
117}
118impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
119    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
120        true
121    }
122}
123impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
124pub const __SAL_H_VERSION: u32 = 180000000;
125pub const __bool_true_false_are_defined: u32 = 1;
126pub const TYPE__CAMERA_CONTROLLER_COMPONENT: &'static [u8; 31usize] =
127    b"tm_camera_controller_component\0";
128pub const TM_MAX_RENDER_COMPONENTS: u32 = 64;
129pub const TM_MAX_SHADER_DATA_COMPONENTS: u32 = 15;
130pub const TM_VIEWPORT_HUD_HEIGHT: f64 = 25.0;
131pub const TM_VIEWPORT_HUD_OUTER_MARGIN_X: f64 = 5.0;
132pub const TM_VIEWPORT_HUD_OUTER_MARGIN_Y: f64 = 5.0;
133pub const TM_VIEWPORT_HUD_INNER_MARGIN: f64 = 5.0;
134extern "C" {
135    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
136}
137pub type __vcrt_bool = bool;
138extern "C" {
139    pub fn __security_init_cookie();
140}
141extern "C" {
142    pub fn __security_check_cookie(_StackCookie: usize);
143}
144extern "C" {
145    pub fn __report_gsfailure(_StackCookie: usize);
146}
147extern "C" {
148    pub static mut __security_cookie: usize;
149}
150#[repr(C)]
151#[derive(Copy, Clone)]
152pub union TtIdTBindgenTy1 {
153    pub u64_: u64,
154    pub __bindgen_anon_1: TtIdTBindgenTy1BindgenTy1,
155}
156#[repr(C)]
157#[repr(align(8))]
158#[derive(Default, Copy, Clone)]
159pub struct TtIdTBindgenTy1BindgenTy1 {
160    pub _bitfield_align_1: [u32; 0],
161    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
162}
163impl TtIdTBindgenTy1BindgenTy1 {
164    #[inline]
165    pub fn type_(&self) -> u64 {
166        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 10u8) as u64) }
167    }
168    #[inline]
169    pub fn set_type(&mut self, val: u64) {
170        unsafe {
171            let val: u64 = ::std::mem::transmute(val);
172            self._bitfield_1.set(0usize, 10u8, val as u64)
173        }
174    }
175    #[inline]
176    pub fn generation(&self) -> u64 {
177        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 22u8) as u64) }
178    }
179    #[inline]
180    pub fn set_generation(&mut self, val: u64) {
181        unsafe {
182            let val: u64 = ::std::mem::transmute(val);
183            self._bitfield_1.set(10usize, 22u8, val as u64)
184        }
185    }
186    #[inline]
187    pub fn index(&self) -> u64 {
188        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
189    }
190    #[inline]
191    pub fn set_index(&mut self, val: u64) {
192        unsafe {
193            let val: u64 = ::std::mem::transmute(val);
194            self._bitfield_1.set(32usize, 32u8, val as u64)
195        }
196    }
197    #[inline]
198    pub fn new_bitfield_1(
199        type_: u64,
200        generation: u64,
201        index: u64,
202    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
203        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
204        __bindgen_bitfield_unit.set(0usize, 10u8, {
205            let type_: u64 = unsafe { ::std::mem::transmute(type_) };
206            type_ as u64
207        });
208        __bindgen_bitfield_unit.set(10usize, 22u8, {
209            let generation: u64 = unsafe { ::std::mem::transmute(generation) };
210            generation as u64
211        });
212        __bindgen_bitfield_unit.set(32usize, 32u8, {
213            let index: u64 = unsafe { ::std::mem::transmute(index) };
214            index as u64
215        });
216        __bindgen_bitfield_unit
217    }
218}
219impl Default for TtIdTBindgenTy1 {
220    fn default() -> Self {
221        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
222        unsafe {
223            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
224            s.assume_init()
225        }
226    }
227}
228#[repr(C)]
229pub struct TheTruthPropertyDefinitionTBindgenTy1 {
230    pub enum_editor: __BindgenUnionField<TheTruthEditorEnumT>,
231    pub string_open_path_editor: __BindgenUnionField<TheTruthEditorStringOpenPathT>,
232    pub string_save_path_editor: __BindgenUnionField<TheTruthEditorStringSavePathT>,
233    pub bindgen_union_field: [u64; 3usize],
234}
235impl Default for TheTruthPropertyDefinitionTBindgenTy1 {
236    fn default() -> Self {
237        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
238        unsafe {
239            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
240            s.assume_init()
241        }
242    }
243}
244#[repr(C)]
245pub struct TtPropValueTBindgenTy1 {
246    pub b: __BindgenUnionField<bool>,
247    pub u32_: __BindgenUnionField<u32>,
248    pub u64_: __BindgenUnionField<u64>,
249    pub f32_: __BindgenUnionField<f32>,
250    pub f64_: __BindgenUnionField<f64>,
251    pub string: __BindgenUnionField<*const ::std::os::raw::c_char>,
252    pub buffer: __BindgenUnionField<TtBufferT>,
253    pub object: __BindgenUnionField<TtIdT>,
254    pub set: __BindgenUnionField<*const TtIdT>,
255    pub bindgen_union_field: [u64; 4usize],
256}
257impl Default for TtPropValueTBindgenTy1 {
258    fn default() -> Self {
259        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
260        unsafe {
261            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
262            s.assume_init()
263        }
264    }
265}
266pub const TM_THE_TRUTH_MAX_PROPERTIES: ::std::os::raw::c_int = 64;
267pub type _bindgen_ty_1 = ::std::os::raw::c_int;
268#[repr(C)]
269pub struct AssetPreviewApiUiArgsT {
270    pub tt: *mut TheTruthO,
271    pub asset: TtIdT,
272    pub entity_ctx: *mut EntityContextO,
273    pub entity: *const EntityT,
274    pub viewer_render_info: *mut ViewerRenderInfoT,
275    pub lighting_environment_settings: *mut LightingEnvironmentSettingsT,
276    pub statistics_overlays: *mut StatisticsOverlaysT,
277    pub tab: *mut TabI,
278    pub ui: *mut UiO,
279    pub uistyle: *const UiStyleT,
280    pub content_r: RectT,
281    pub undo_stack: *mut UndoStackI,
282}
283impl Default for AssetPreviewApiUiArgsT {
284    fn default() -> Self {
285        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
286        unsafe {
287            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
288            s.assume_init()
289        }
290    }
291}
292#[repr(C)]
293#[derive(Default, Copy, Clone)]
294pub struct AssetPreviewApi {
295    pub create: ::std::option::Option<
296        unsafe extern "C" fn(allocator: *mut AllocatorI) -> *mut AssetPreviewO,
297    >,
298    pub destroy: ::std::option::Option<
299        unsafe extern "C" fn(inst: *mut AssetPreviewO, allocator: *mut AllocatorI),
300    >,
301    pub create_entity: ::std::option::Option<
302        unsafe extern "C" fn(
303            inst: *mut AssetPreviewO,
304            tt: *mut TheTruthO,
305            asset: TtIdT,
306            entity_ctx: *mut EntityContextO,
307            result: *mut EntityT,
308        ),
309    >,
310    pub intercept_focus: ::std::option::Option<
311        unsafe extern "C" fn(
312            inst: *mut AssetPreviewO,
313            tt: *mut TheTruthO,
314            root_asset: TtIdT,
315            entity_ctx: *mut EntityContextO,
316            entity: *const EntityT,
317            focus_asset: TtIdT,
318        ) -> bool,
319    >,
320    pub reload: ::std::option::Option<
321        unsafe extern "C" fn(
322            inst: *mut AssetPreviewO,
323            tt: *mut TheTruthO,
324            asset: TtIdT,
325            entity_ctx: *mut EntityContextO,
326            entity: *mut EntityT,
327        ) -> bool,
328    >,
329    pub dirty: ::std::option::Option<
330        unsafe extern "C" fn(inst: *mut AssetPreviewO, tt: *mut TheTruthO, asset: TtIdT) -> bool,
331    >,
332    pub render: ::std::option::Option<
333        unsafe extern "C" fn(
334            inst: *mut AssetPreviewO,
335            tt: *mut TheTruthO,
336            asset: TtIdT,
337            args: *const RenderArgsT,
338        ),
339    >,
340    pub refresh_thumbnail: ::std::option::Option<
341        unsafe extern "C" fn(
342            inst: *mut AssetPreviewO,
343            tt: *mut TheTruthO,
344            asset: TtIdT,
345            args: *const RenderArgsT,
346        ),
347    >,
348    pub ui: ::std::option::Option<
349        unsafe extern "C" fn(inst: *mut AssetPreviewO, args: *const AssetPreviewApiUiArgsT),
350    >,
351    pub toolbars: ::std::option::Option<
352        unsafe extern "C" fn(
353            inst: *mut AssetPreviewO,
354            ta: *mut TempAllocatorI,
355            args: *const AssetPreviewApiUiArgsT,
356        ) -> *mut ToolbarI,
357    >,
358    pub update_camera: ::std::option::Option<
359        unsafe extern "C" fn(
360            inst: *mut AssetPreviewO,
361            tt: *mut TheTruthO,
362            cam_tm: *mut TransformT,
363            cam_settings: *mut *const CameraSettingsT,
364        ),
365    >,
366    pub show_grid: bool,
367    pub _padding_100: [::std::os::raw::c_char; 7usize],
368}
369#[repr(C)]
370#[derive(Copy, Clone)]
371pub struct AssetPreviewI {
372    pub api: *mut AssetPreviewApi,
373    pub inst: *mut AssetPreviewO,
374}
375impl Default for AssetPreviewI {
376    fn default() -> Self {
377        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
378        unsafe {
379            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
380            s.assume_init()
381        }
382    }
383}
384#[repr(C)]
385#[derive(Default, Copy, Clone)]
386pub struct AssetSceneApi {
387    pub create:
388        ::std::option::Option<unsafe extern "C" fn(allocator: *mut AllocatorI) -> *mut AssetSceneO>,
389    pub destroy: ::std::option::Option<
390        unsafe extern "C" fn(inst: *mut AssetSceneO, allocator: *mut AllocatorI),
391    >,
392    pub droppable: ::std::option::Option<
393        unsafe extern "C" fn(inst: *mut AssetSceneO, tt: *mut TheTruthO, asset: TtIdT) -> bool,
394    >,
395    pub create_entity: ::std::option::Option<
396        unsafe extern "C" fn(
397            inst: *mut AssetSceneO,
398            tt: *mut TheTruthO,
399            asset: TtIdT,
400            name: *const ::std::os::raw::c_char,
401            local_transform: *const TransformT,
402            parent_entity: TtIdT,
403            asset_root: TtIdT,
404            undo_stack: *mut UndoStackI,
405        ) -> TtIdT,
406    >,
407    pub bound_entity_asset: ::std::option::Option<
408        unsafe extern "C" fn(
409            inst: *mut AssetSceneO,
410            tt: *const TheTruthO,
411            asset: TtIdT,
412            bounds: *mut Vec3T,
413        ),
414    >,
415}
416#[repr(C)]
417#[derive(Copy, Clone)]
418pub struct AssetSceneI {
419    pub api: *mut AssetSceneApi,
420    pub inst: *mut AssetSceneO,
421}
422impl Default for AssetSceneI {
423    fn default() -> Self {
424        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
425        unsafe {
426            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
427            s.assume_init()
428        }
429    }
430}
431pub const TM_ASSET_OPEN_MODE_REUSE_OR_CREATE_TAB: AssetOpenMode = 0;
432pub const TM_ASSET_OPEN_MODE_CREATE_TAB: AssetOpenMode = 1;
433pub const TM_ASSET_OPEN_MODE_CREATE_TAB_AND_PIN: AssetOpenMode = 2;
434pub const TM_ASSET_OPEN_MODE_CREATE_WORKSPACE: AssetOpenMode = 3;
435pub type AssetOpenMode = ::std::os::raw::c_int;
436#[repr(C)]
437#[derive(Default, Copy, Clone)]
438pub struct AssetOpenAspectI {
439    pub open: ::std::option::Option<
440        unsafe extern "C" fn(
441            app: *mut ApplicationO,
442            ui: *mut UiO,
443            from_tab: *mut TabI,
444            tt: *mut TheTruthO,
445            asset: TtIdT,
446            open_mode: AssetOpenMode,
447        ),
448    >,
449}
450#[repr(C)]
451#[derive(Copy, Clone)]
452pub union EntityT {
453    pub __bindgen_anon_1: EntityTBindgenTy1,
454    pub u64_: u64,
455}
456#[repr(C)]
457#[derive(Default, Copy, Clone)]
458pub struct EntityTBindgenTy1 {
459    pub index: u32,
460    pub generation: u32,
461}
462impl Default for EntityT {
463    fn default() -> Self {
464        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
465        unsafe {
466            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
467            s.assume_init()
468        }
469    }
470}
471#[repr(C)]
472#[derive(Copy, Clone)]
473pub struct BakerContextO {
474    _unused: [u8; 0],
475}
476#[repr(C)]
477#[derive(Default, Copy, Clone)]
478pub struct BakerContextApi {
479    pub create_context: ::std::option::Option<
480        unsafe extern "C" fn(
481            a: *mut AllocatorI,
482            tt: *mut TheTruthO,
483            asset_root: TtIdT,
484            render_pipe: *mut RenderPipelineVt,
485        ) -> *mut BakerContextO,
486    >,
487    pub destroy_context: ::std::option::Option<unsafe extern "C" fn(context: *mut BakerContextO)>,
488    pub entity_context: ::std::option::Option<
489        unsafe extern "C" fn(context: *mut BakerContextO) -> *mut EntityContextO,
490    >,
491    pub set_entity:
492        ::std::option::Option<unsafe extern "C" fn(context: *mut BakerContextO, e: EntityT)>,
493    pub render_args: ::std::option::Option<
494        unsafe extern "C" fn(context: *mut BakerContextO, args: *mut ViewerRenderArgsT),
495    >,
496    pub set_camera: ::std::option::Option<
497        unsafe extern "C" fn(
498            context: *mut BakerContextO,
499            camera_tm: *const TransformT,
500            camera_settings: *const CameraSettingsT,
501        ),
502    >,
503}
504pub const TM_CAMERA_CONTROLLER_MODE__NONE: CameraControllerMode = 0;
505pub const TM_CAMERA_CONTROLLER_MODE__FOLLOW: CameraControllerMode = 1;
506pub const TM_CAMERA_CONTROLLER_MODE__FREE_FLIGHT: CameraControllerMode = 2;
507pub const TM_CAMERA_CONTROLLER_MODE__MAYA_SPIN: CameraControllerMode = 3;
508pub const TM_CAMERA_CONTROLLER_MODE__MAYA_ZOOM: CameraControllerMode = 4;
509pub const TM_CAMERA_CONTROLLER_MODE__MAYA_PAN: CameraControllerMode = 5;
510pub type CameraControllerMode = ::std::os::raw::c_int;
511#[repr(C)]
512pub struct CameraControllerComponentT {
513    pub disable_input: bool,
514    pub _padding_33: [::std::os::raw::c_char; 3usize],
515    pub mode: CameraControllerMode,
516    pub translation_speed: f32,
517    pub rotation_speed: f32,
518    pub translation_damping: f32,
519    pub target_orientation: Vec2T,
520    pub follow_speed: f32,
521    pub translation: Vec3T,
522    pub damped_translation: Vec3T,
523    pub rotation: Vec2T,
524    pub focus_point: Vec3T,
525    pub zoom: f32,
526    pub spin: Vec2T,
527    pub pan: Vec2T,
528}
529impl Default for CameraControllerComponentT {
530    fn default() -> Self {
531        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
532        unsafe {
533            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
534            s.assume_init()
535        }
536    }
537}
538#[repr(C)]
539#[derive(Copy, Clone)]
540pub struct CameraControllerComponentManagerO {
541    _unused: [u8; 0],
542}
543#[repr(C)]
544pub struct UiOrientationIndicatorT {
545    pub controller: *mut CameraControllerComponentT,
546    pub camera: *const CameraT,
547    pub viewport: RectT,
548    pub rect: RectT,
549    pub allow_snapping: bool,
550    pub _padding_80: [::std::os::raw::c_char; 7usize],
551}
552impl Default for UiOrientationIndicatorT {
553    fn default() -> Self {
554        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
555        unsafe {
556            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
557            s.assume_init()
558        }
559    }
560}
561#[repr(C)]
562#[derive(Default, Copy, Clone)]
563pub struct CameraControllerComponentApi {
564    pub create: ::std::option::Option<
565        unsafe extern "C" fn(ctx: *mut EntityContextO) -> *mut CameraControllerComponentManagerO,
566    >,
567    pub feed_ui_input: ::std::option::Option<
568        unsafe extern "C" fn(
569            manager: *mut CameraControllerComponentManagerO,
570            ui: *mut UiO,
571            in_area: bool,
572        ),
573    >,
574    pub register_engines: ::std::option::Option<
575        unsafe extern "C" fn(manager: *mut CameraControllerComponentManagerO),
576    >,
577    pub orientation_indicator: ::std::option::Option<
578        unsafe extern "C" fn(
579            manager: *mut CameraControllerComponentManagerO,
580            ui: *mut UiO,
581            uistyle: *const UiStyleT,
582            c: *const UiOrientationIndicatorT,
583        ),
584    >,
585}
586pub type CiEditorPropertiesUiF = ::std::option::Option<
587    unsafe extern "C" fn(
588        args: *mut PropertiesUiArgsT,
589        item_rect: RectT,
590        object: TtIdT,
591        indent: u32,
592    ) -> f32,
593>;
594#[repr(C)]
595#[derive(Default, Copy, Clone)]
596pub struct CiEditorUiIconI {
597    pub ui_icon: ::std::option::Option<unsafe extern "C" fn() -> u32>,
598}
599#[repr(C)]
600pub struct CiViewportInteract {
601    pub tt: *mut TheTruthO,
602    pub entity_ctx: *mut EntityContextO,
603    pub entity: TtIdT,
604    pub component: TtIdT,
605    pub ui: *mut UiO,
606    pub uistyle: *const UiStyleT,
607    pub primitive_buffer: *mut PrimitiveDrawerBufferT,
608    pub vertex_buffer: *mut PrimitiveDrawerBufferT,
609    pub allocator: *mut AllocatorI,
610    pub camera: *const CameraT,
611    pub viewport_r: RectT,
612    pub viewport_id: u64,
613    pub tab_id: u64,
614    pub undo_stack: *mut UndoStackI,
615    pub active_tool_id: StrhashT,
616    pub move_settings: *mut GizmoMoveSettingsT,
617    pub rotate_settings: *mut GizmoRotateSettingsT,
618    pub scale_settings: *mut GizmoScaleSettingsT,
619    pub editor: *mut ::std::os::raw::c_void,
620    pub set_selection: ::std::option::Option<
621        unsafe extern "C" fn(editor: *mut ::std::os::raw::c_void, item_t: TtIdT),
622    >,
623}
624impl Default for CiViewportInteract {
625    fn default() -> Self {
626        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
627        unsafe {
628            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
629            s.assume_init()
630        }
631    }
632}
633#[repr(C)]
634#[derive(Default, Copy, Clone)]
635pub struct CiViewportInteractResult {
636    pub hide_gizmo: bool,
637}
638#[repr(C)]
639#[derive(Copy, Clone)]
640pub struct CiToolbar {
641    pub editor: *mut ::std::os::raw::c_void,
642    pub active_tool: ::std::option::Option<
643        unsafe extern "C" fn(editor: *mut ::std::os::raw::c_void) -> StrhashT,
644    >,
645    pub set_active_tool: ::std::option::Option<
646        unsafe extern "C" fn(editor: *mut ::std::os::raw::c_void, id: StrhashT),
647    >,
648}
649impl Default for CiToolbar {
650    fn default() -> Self {
651        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
652        unsafe {
653            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
654            s.assume_init()
655        }
656    }
657}
658#[repr(C)]
659#[derive(Default, Copy, Clone)]
660pub struct CiEditorUiI {
661    pub disabled: ::std::option::Option<unsafe extern "C" fn() -> bool>,
662    pub category: ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
663    pub icon_interface: ::std::option::Option<unsafe extern "C" fn() -> *mut CiEditorUiIconI>,
664    pub gizmo_priority: f32,
665    pub _padding_95: [::std::os::raw::c_char; 4usize],
666    pub gizmo_get_transform: ::std::option::Option<
667        unsafe extern "C" fn(
668            tt: *const TheTruthO,
669            ctx: *mut EntityContextO,
670            entity: TtIdT,
671            component: TtIdT,
672            object: TtIdT,
673            world: *mut TransformT,
674            local: *mut TransformT,
675        ) -> bool,
676    >,
677    pub gizmo_set_transform: ::std::option::Option<
678        unsafe extern "C" fn(
679            tt: *mut TheTruthO,
680            ctx: *mut EntityContextO,
681            entity: TtIdT,
682            component: TtIdT,
683            object: TtIdT,
684            local: *const TransformT,
685            undo_scope: TtUndoScopeT,
686        ),
687    >,
688    pub gizmo_duplicate: ::std::option::Option<
689        unsafe extern "C" fn(
690            tt: *mut TheTruthO,
691            ctx: *mut EntityContextO,
692            entity: TtIdT,
693            component: TtIdT,
694            object: TtIdT,
695            undo_scope: TtUndoScopeT,
696        ) -> TtIdT,
697    >,
698    pub override_properties: ::std::option::Option<
699        unsafe extern "C" fn(tt: *mut TheTruthO, other_component: TtIdT) -> CiEditorPropertiesUiF,
700    >,
701    pub viewport_interact: ::std::option::Option<
702        unsafe extern "C" fn(vi: *const CiViewportInteract) -> CiViewportInteractResult,
703    >,
704    pub editor_ui: ::std::option::Option<
705        unsafe extern "C" fn(
706            ui: *mut UiO,
707            uistyle: *const UiStyleT,
708            viewport: RectT,
709            manager: *mut ComponentManagerO,
710        ),
711    >,
712    pub create: ::std::option::Option<
713        unsafe extern "C" fn(tt: *mut TheTruthO, type_: TtTypeT, undo_scope: TtUndoScopeT) -> TtIdT,
714    >,
715    pub toolbars: ::std::option::Option<
716        unsafe extern "C" fn(ci: *mut CiToolbar, ta: *mut TempAllocatorI) -> *mut ToolbarI,
717    >,
718}
719#[repr(C)]
720pub struct CiRenderViewerT {
721    pub sort_key: u64,
722    pub visibility_mask: u64,
723    pub visibility_context: StrhashT,
724    pub viewer_system: *mut ShaderSystemO,
725    pub viewer_cbuffer: *mut ShaderConstantBufferInstanceT,
726    pub viewer_rbinder: *mut ShaderResourceBinderInstanceT,
727    pub camera: *const CameraT,
728    pub gpu_picking: *mut GpuPickingO,
729}
730impl Default for CiRenderViewerT {
731    fn default() -> Self {
732        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
733        unsafe {
734            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
735            s.assume_init()
736        }
737    }
738}
739#[repr(C)]
740#[derive(Default, Copy, Clone)]
741pub struct CiRenderI {
742    pub init: ::std::option::Option<
743        unsafe extern "C" fn(
744            manager: *mut ComponentManagerO,
745            entities: *const EntityT,
746            entity_indices: *const u32,
747            render_component_data: *mut *mut ::std::os::raw::c_void,
748            num_renderables: u32,
749        ),
750    >,
751    pub bounding_volume_type:
752        ::std::option::Option<unsafe extern "C" fn(manager: *mut ComponentManagerO) -> u32>,
753    pub fill_bounding_volume_buffer: ::std::option::Option<
754        unsafe extern "C" fn(
755            manager: *mut ComponentManagerO,
756            args: *mut RenderArgsT,
757            entities: *const EntityT,
758            entity_transforms: *const TransformComponentT,
759            entity_indices: *const u32,
760            render_component_data: *mut *mut ::std::os::raw::c_void,
761            num_renderables: u32,
762            bv_buffer: *mut u8,
763        ),
764    >,
765    pub render: ::std::option::Option<
766        unsafe extern "C" fn(
767            manager: *mut ComponentManagerO,
768            args: *mut RenderArgsT,
769            viewers: *const CiRenderViewerT,
770            num_viewers: u32,
771            entities: *const EntityT,
772            entity_transforms: *const TransformComponentT,
773            entity_selection_state: *const bool,
774            entity_indices: *const u32,
775            render_component_data: *mut *mut ::std::os::raw::c_void,
776            num_renderables: u32,
777            frustum_visibility: *const u8,
778        ),
779    >,
780}
781#[repr(C)]
782pub struct CiRenderGatherCallbackArgsT {
783    pub allocator: *mut AllocatorI,
784    pub selected_entities_lookup: *const SetEntityT,
785    pub hidden_entities_lookup: *const SetEntityT,
786    pub ignored_entities_lookup: *const SetEntityT,
787    pub render_component_names: [StrhashT; 64usize],
788    pub render_interfaces: [*mut CiRenderI; 64usize],
789    pub num_render_components: u32,
790    pub render_component_data_strides: [u32; 64usize],
791    pub _padding_74: [::std::os::raw::c_char; 4usize],
792    pub component_managers: [*mut ComponentManagerO; 64usize],
793    pub entity_selection_state: *mut bool,
794    pub entity_ignore_state: *mut bool,
795    pub entity_transforms: *mut TransformComponentT,
796    pub entities: *mut EntityT,
797    pub component_data: [*mut *mut ::std::os::raw::c_void; 64usize],
798    pub entity_indices: [*mut u32; 64usize],
799    pub num_renderables_per_component: [u32; 64usize],
800}
801impl Default for CiRenderGatherCallbackArgsT {
802    fn default() -> Self {
803        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
804        unsafe {
805            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
806            s.assume_init()
807        }
808    }
809}
810#[repr(C)]
811#[derive(Default, Copy, Clone)]
812pub struct CiShaderI {
813    pub init: ::std::option::Option<
814        unsafe extern "C" fn(
815            manager: *mut ComponentManagerO,
816            entities: *const EntityT,
817            entity_indices: *const u32,
818            shader_component_data: *mut *mut ::std::os::raw::c_void,
819            num_shader_datas: u32,
820        ),
821    >,
822    pub graph_module_inject: ::std::option::Option<
823        unsafe extern "C" fn(manager: *mut ComponentManagerO, module: *mut RenderGraphModuleO),
824    >,
825    pub graph_requested:
826        ::std::option::Option<unsafe extern "C" fn(manager: *mut ComponentManagerO) -> StrhashT>,
827    pub activate_systems: ::std::option::Option<
828        unsafe extern "C" fn(
829            manager: *mut ComponentManagerO,
830            shader_context: *mut ShaderSystemContextO,
831        ),
832    >,
833    pub update: ::std::option::Option<
834        unsafe extern "C" fn(
835            manager: *mut ComponentManagerO,
836            args: *mut RenderArgsT,
837            entities: *const EntityT,
838            entity_transforms: *const TransformComponentT,
839            entity_indices: *const u32,
840            component_data: *mut *mut ::std::os::raw::c_void,
841            num_components: u32,
842            frustum_visibility: *const u8,
843        ),
844    >,
845}
846#[repr(C)]
847pub struct CiShaderDataGatherCallbackArgsT {
848    pub allocator: *mut AllocatorI,
849    pub hidden_entities_lookup: *const SetEntityT,
850    pub shader_component_names: [StrhashT; 15usize],
851    pub shader_interfaces: [*mut CiShaderI; 15usize],
852    pub num_shader_components: u32,
853    pub shader_component_data_strides: [u32; 15usize],
854    pub component_managers: [*mut ComponentManagerO; 15usize],
855    pub entity_transforms: *mut TransformComponentT,
856    pub entities: *mut EntityT,
857    pub component_data: [*mut *mut ::std::os::raw::c_void; 15usize],
858    pub entity_indices: [*mut u32; 15usize],
859    pub num_shader_data_per_component: [u32; 15usize],
860    pub _padding_77: [::std::os::raw::c_char; 4usize],
861}
862impl Default for CiShaderDataGatherCallbackArgsT {
863    fn default() -> Self {
864        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
865        unsafe {
866            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
867            s.assume_init()
868        }
869    }
870}
871#[repr(C)]
872pub struct CullingViewerT {
873    pub frustum_planes: [Vec4T; 6usize],
874    pub visibility_mask: u64,
875}
876impl Default for CullingViewerT {
877    fn default() -> Self {
878        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
879        unsafe {
880            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
881            s.assume_init()
882        }
883    }
884}
885#[repr(C)]
886#[derive(Default, Copy, Clone)]
887pub struct GpuCullingHeaderT {
888    pub num_viewers: u32,
889    pub viewers_offset: u32,
890    pub num_transforms: u32,
891    pub results_offset: u32,
892}
893#[repr(C)]
894#[derive(Copy, Clone)]
895pub struct GpuCullingArgsT {
896    pub shader: *mut ShaderO,
897    pub res_buf: *mut RendererResourceCommandBufferO,
898    pub cmd_buf: *mut RendererCommandBufferO,
899    pub sort_key: u64,
900    pub device_affinity_mask: u32,
901    pub _padding_57: [::std::os::raw::c_char; 4usize],
902    pub viewers: *const CullingViewerT,
903    pub viewers_count: u32,
904    pub bounding_radius: f32,
905    pub transforms: *const RendererHandleT,
906    pub transforms_count: u32,
907    pub transforms_start: u32,
908    pub transform_stride: u32,
909    pub culling_distance: f32,
910    pub parent_transform: *const Mat44T,
911}
912impl Default for GpuCullingArgsT {
913    fn default() -> Self {
914        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
915        unsafe {
916            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
917            s.assume_init()
918        }
919    }
920}
921#[repr(C)]
922#[derive(Default, Copy, Clone)]
923pub struct FrustumCullingApi {
924    pub viewer_from_projection_mat: ::std::option::Option<
925        unsafe extern "C" fn(
926            view_tm: *const Mat44T,
927            projection_tm: *const Mat44T,
928            visibility_mask: u64,
929        ) -> CullingViewerT,
930    >,
931    pub calc_size_of_objects_buffer:
932        ::std::option::Option<unsafe extern "C" fn(bv_type: u32, num_objects: u32) -> u32>,
933    pub calc_size_of_results_buffer:
934        ::std::option::Option<unsafe extern "C" fn(num_viewers: u32, num_objects: u32) -> u32>,
935    pub cull_fast: ::std::option::Option<
936        unsafe extern "C" fn(
937            viewers: *const CullingViewerT,
938            num_viewers: u32,
939            bv_type: u32,
940            objects: *const u8,
941            num_objects: u32,
942            results: *mut u8,
943            ta: *mut TempAllocatorI,
944        ) -> *mut AtomicCounterO,
945    >,
946    pub cull_precise: ::std::option::Option<
947        unsafe extern "C" fn(
948            viewers: *const CullingViewerT,
949            num_viewers: u32,
950            bv_type: u32,
951            objects: *const u8,
952            num_objects: u32,
953            results: *mut u8,
954            ta: *mut TempAllocatorI,
955        ) -> *mut AtomicCounterO,
956    >,
957    pub gpu_cull: ::std::option::Option<
958        unsafe extern "C" fn(
959            args: *mut GpuCullingArgsT,
960            output: *mut RendererHandleT,
961            output_desc: *mut RendererBufferDescT,
962        ),
963    >,
964}
965#[repr(C)]
966#[derive(Copy, Clone)]
967pub struct CreationGraphDrawCallDataT {
968    _unused: [u8; 0],
969}
970pub const TM_GPU_SCENE_SUBMISSION_DRAW_CALL_LOD_DISABLED: ::std::os::raw::c_int = -1;
971pub type _bindgen_ty_2 = ::std::os::raw::c_int;
972#[repr(C)]
973pub struct GpuSceneSubmissionDrawCallLodSettingsT {
974    pub lod_step: u32,
975    pub lod_size_range: Vec2T,
976}
977impl Default for GpuSceneSubmissionDrawCallLodSettingsT {
978    fn default() -> Self {
979        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
980        unsafe {
981            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
982            s.assume_init()
983        }
984    }
985}
986#[repr(C)]
987#[derive(Default, Copy, Clone)]
988pub struct GpuSceneSubmissionCullAndLodHeaderT {
989    pub viewers_offset: u32,
990    pub draw_calls_lod_settings_offset: u32,
991    pub draw_calls_instance_count_offset: u32,
992    pub draw_call_bitmask_offset: u32,
993    pub count: u32,
994}
995pub const TM_GPU_SCENE_SUBMISSION__INDIRECT_DRAW_NON_INDEXED: GpuSceneSubmissionIndirectDrawType =
996    0;
997pub const TM_GPU_SCENE_SUBMISSION__INDIRECT_DRAW_INDEXED: GpuSceneSubmissionIndirectDrawType = 1;
998pub type GpuSceneSubmissionIndirectDrawType = ::std::os::raw::c_int;
999#[repr(C)]
1000#[derive(Copy, Clone)]
1001pub struct GpuSceneSubmissionIndirectDrawCmdT {
1002    pub draw_type: GpuSceneSubmissionIndirectDrawType,
1003    pub data: [u32; 5usize],
1004}
1005impl Default for GpuSceneSubmissionIndirectDrawCmdT {
1006    fn default() -> Self {
1007        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1008        unsafe {
1009            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1010            s.assume_init()
1011        }
1012    }
1013}
1014pub const TM_GPU_SCENE_SUBMISSION__BYTE_OFFSET__INSTANCE_COUNT: ::std::os::raw::c_int = 8;
1015pub const TM_GPU_SCENE_SUBMISSION__BYTE_OFFSET__NON_INDEXED__FIRST_INSTANCE: ::std::os::raw::c_int =
1016    16;
1017pub const TM_GPU_SCENE_SUBMISSION__BYTE_OFFSET__INDEXED__FIRST_INSTANCE: ::std::os::raw::c_int = 20;
1018pub type _bindgen_ty_3 = ::std::os::raw::c_int;
1019#[repr(C)]
1020#[derive(Default, Copy, Clone)]
1021pub struct GpuSceneSubmissionDrawCallsAndTransformIndirectionHeaderT {
1022    pub draw_calls_offset: u32,
1023    pub first_instance_index_offset: u32,
1024    pub stram_compaction_dispatch_command_offset: u32,
1025}
1026#[repr(C)]
1027#[derive(Copy, Clone)]
1028pub struct GpuSceneSubmissionWorkloadO {
1029    _unused: [u8; 0],
1030}
1031#[repr(C)]
1032pub struct GpuSceneSubmissionArgsT {
1033    pub shader_repo: *mut ShaderRepositoryO,
1034    pub shader_context: *const ShaderSystemContextO,
1035    pub workload: *mut GpuSceneSubmissionWorkloadO,
1036    pub res_buf: *mut RendererResourceCommandBufferO,
1037    pub cmd_buf: *mut RendererCommandBufferO,
1038    pub sort_key: u64,
1039    pub device_affinity_mask: u32,
1040    pub _padding_169: [::std::os::raw::c_char; 4usize],
1041    pub viewers: *const CiRenderViewerT,
1042    pub viewers_count: u32,
1043    pub bounding_radius: f32,
1044    pub transforms: RendererHandleT,
1045    pub _padding_182: [::std::os::raw::c_char; 4usize],
1046    pub transforms_count: u32,
1047    pub transforms_start: u32,
1048    pub transforms_stride: u32,
1049    pub culling_distance: f32,
1050    pub parent_transform: *const Mat44T,
1051}
1052impl Default for GpuSceneSubmissionArgsT {
1053    fn default() -> Self {
1054        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1055        unsafe {
1056            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1057            s.assume_init()
1058        }
1059    }
1060}
1061#[repr(C)]
1062#[derive(Default, Copy, Clone)]
1063pub struct GpuSceneSubmissionApi {
1064    pub create_workload: ::std::option::Option<
1065        unsafe extern "C" fn(
1066            draw_calls: *const CreationGraphDrawCallDataT,
1067            draw_calls_count: u32,
1068            res_buf: *mut RendererResourceCommandBufferO,
1069            a: *mut AllocatorI,
1070        ) -> *mut GpuSceneSubmissionWorkloadO,
1071    >,
1072    pub destroy_workload: ::std::option::Option<
1073        unsafe extern "C" fn(
1074            workload: *mut GpuSceneSubmissionWorkloadO,
1075            res_buf: *mut RendererResourceCommandBufferO,
1076        ),
1077    >,
1078    pub cull_and_render:
1079        ::std::option::Option<unsafe extern "C" fn(args: *mut GpuSceneSubmissionArgsT)>,
1080}
1081#[repr(C)]
1082#[derive(Copy, Clone)]
1083pub struct RenderContextO {
1084    _unused: [u8; 0],
1085}
1086pub const TM_RENDER_CONTEXT_BUFFER_PHASE_VIEWER: RenderContextBufferPhase = 0;
1087pub const TM_RENDER_CONTEXT_BUFFER_PHASE_VIEWER_DESTROY: RenderContextBufferPhase = 1;
1088pub const TM_RENDER_CONTEXT_BUFFER_PHASE_UTILITY: RenderContextBufferPhase = 2;
1089pub const TM_RENDER_CONTEXT_BUFFER_PHASE_UTILITY_DESTROY: RenderContextBufferPhase = 3;
1090pub const TM_RENDER_CONTEXT_BUFFER_PHASE_MAX_PHASES: RenderContextBufferPhase = 4;
1091pub type RenderContextBufferPhase = ::std::os::raw::c_int;
1092#[repr(C)]
1093#[derive(Default, Copy, Clone)]
1094pub struct RenderContextApi {
1095    pub create: ::std::option::Option<
1096        unsafe extern "C" fn(allocator: *mut AllocatorI) -> *mut RenderContextO,
1097    >,
1098    pub destroy: ::std::option::Option<unsafe extern "C" fn(context: *mut RenderContextO)>,
1099    pub append_resource_buffers: ::std::option::Option<
1100        unsafe extern "C" fn(
1101            context: *mut RenderContextO,
1102            phase: RenderContextBufferPhase,
1103            res_buffers: *mut *mut RendererResourceCommandBufferO,
1104            num_buffers: u32,
1105        ),
1106    >,
1107    pub append_command_buffers: ::std::option::Option<
1108        unsafe extern "C" fn(
1109            context: *mut RenderContextO,
1110            phase: RenderContextBufferPhase,
1111            cmd_buffers: *mut *mut RendererCommandBufferO,
1112            num_buffers: u32,
1113        ),
1114    >,
1115    pub resource_buffers: ::std::option::Option<
1116        unsafe extern "C" fn(
1117            context: *mut RenderContextO,
1118            phase: RenderContextBufferPhase,
1119            res_buffers: *mut *mut RendererResourceCommandBufferO,
1120        ) -> u32,
1121    >,
1122    pub command_buffers: ::std::option::Option<
1123        unsafe extern "C" fn(
1124            context: *mut RenderContextO,
1125            phase: RenderContextBufferPhase,
1126            cmd_buffers: *mut *mut RendererCommandBufferO,
1127        ) -> u32,
1128    >,
1129}
1130#[repr(C)]
1131pub struct RenderArgsT {
1132    pub camera_tm: TransformT,
1133    pub camera: *const CameraT,
1134    pub context: *mut RenderContextO,
1135    pub render_backend: *mut RendererBackendI,
1136    pub shader_repository: *mut ShaderRepositoryO,
1137    pub device_affinity_mask: u32,
1138    pub _padding_81: [::std::os::raw::c_char; 4usize],
1139    pub default_resource_buffer: *mut RendererResourceCommandBufferO,
1140    pub default_command_buffer: *mut RendererCommandBufferO,
1141    pub render_graph: *mut RenderGraphO,
1142    pub render_pipeline: *mut RenderPipelineI,
1143    pub shader_context: *const ShaderSystemContextO,
1144}
1145impl Default for RenderArgsT {
1146    fn default() -> Self {
1147        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1148        unsafe {
1149            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1150            s.assume_init()
1151        }
1152    }
1153}
1154#[repr(C)]
1155#[derive(Copy, Clone)]
1156pub struct RenderPipelineI {
1157    _unused: [u8; 0],
1158}
1159#[repr(C)]
1160pub struct LightingEnvironmentSettingsT {
1161    pub enabled: bool,
1162    pub _padding_32: [::std::os::raw::c_char; 7usize],
1163    pub asset: TtIdT,
1164    pub spawned_entity: EntityT,
1165    pub search_buf: [::std::os::raw::c_char; 1024usize],
1166}
1167impl Default for LightingEnvironmentSettingsT {
1168    fn default() -> Self {
1169        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1170        unsafe {
1171            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1172            s.assume_init()
1173        }
1174    }
1175}
1176#[repr(C)]
1177#[derive(Copy, Clone)]
1178pub struct StatisticsOverlaysT {
1179    pub tt: *mut TheTruthO,
1180    pub tab: *mut TabI,
1181    pub settings_objects: *mut TtIdT,
1182}
1183impl Default for StatisticsOverlaysT {
1184    fn default() -> Self {
1185        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1186        unsafe {
1187            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1188            s.assume_init()
1189        }
1190    }
1191}
1192#[repr(C)]
1193#[derive(Default, Copy, Clone)]
1194pub struct SceneCommonApi {
1195    pub init_camera:
1196        ::std::option::Option<unsafe extern "C" fn(camera: *mut TransformT, translation: Vec3T)>,
1197    pub camera_frame_bounds: ::std::option::Option<
1198        unsafe extern "C" fn(
1199            camera: *mut TransformT,
1200            camera_y_fov: f32,
1201            bounds: *const Vec3T,
1202            translation_speed: *mut f32,
1203            focus_point: *mut Vec3T,
1204        ),
1205    >,
1206    pub find_component_render_interfaces: ::std::option::Option<
1207        unsafe extern "C" fn(
1208            entity_ctx: *mut EntityContextO,
1209            transform_component: ComponentTypeT,
1210            tt: *const TheTruthO,
1211            allocator: *mut AllocatorI,
1212            selection: *const TtIdT,
1213            selection_n: u64,
1214            ignore: *const EntityT,
1215            ignore_n: u64,
1216            include_entities_without_render_components: bool,
1217            res: *mut CiRenderGatherCallbackArgsT,
1218        ),
1219    >,
1220    pub bound_assets: ::std::option::Option<
1221        unsafe extern "C" fn(
1222            entity_ctx: *mut EntityContextO,
1223            transform_component: ComponentTypeT,
1224            tt: *const TheTruthO,
1225            ignore: *const EntityT,
1226            ignore_n: u64,
1227            bounds: *mut Vec3T,
1228            include_origo: bool,
1229        ),
1230    >,
1231    pub bound_selected_assets: ::std::option::Option<
1232        unsafe extern "C" fn(
1233            entity_ctx: *mut EntityContextO,
1234            transform_component: ComponentTypeT,
1235            tt: *const TheTruthO,
1236            selection: *const TtIdT,
1237            selection_n: u64,
1238            ignore: *const EntityT,
1239            ignore_n: u64,
1240            bounds: *mut Vec3T,
1241            include_origo: bool,
1242        ),
1243    >,
1244    pub bound_entity_asset: ::std::option::Option<
1245        unsafe extern "C" fn(tt: *const TheTruthO, entity: TtIdT, bounds: *mut Vec3T),
1246    >,
1247    pub find_shader_data_engine_update: ::std::option::Option<
1248        unsafe extern "C" fn(
1249            inst: *mut EngineO,
1250            data: *mut EngineUpdateSetT,
1251            commands: *mut EntityCommandsO,
1252        ),
1253    >,
1254    pub gather_shader_data_filter: ::std::option::Option<
1255        unsafe extern "C" fn(
1256            inst: *mut EngineO,
1257            components: *const ComponentTypeT,
1258            num_components: u32,
1259            mask: *const ComponentMaskT,
1260        ) -> bool,
1261    >,
1262    pub find_renderables_engine_update: ::std::option::Option<
1263        unsafe extern "C" fn(
1264            inst: *mut EngineO,
1265            data: *mut EngineUpdateSetT,
1266            commands: *mut EntityCommandsO,
1267        ),
1268    >,
1269    pub gather_renderables_filter: ::std::option::Option<
1270        unsafe extern "C" fn(
1271            inst: *mut EngineO,
1272            components: *const ComponentTypeT,
1273            num_components: u32,
1274            mask: *const ComponentMaskT,
1275        ) -> bool,
1276    >,
1277    pub add_default_light_source:
1278        ::std::option::Option<unsafe extern "C" fn(entity_ctx: *mut EntityContextO) -> EntityT>,
1279    pub has_any_light_source:
1280        ::std::option::Option<unsafe extern "C" fn(ctx: *mut EntityContextO) -> bool>,
1281    pub component_visualization_menu: ::std::option::Option<
1282        unsafe extern "C" fn(
1283            tt: *mut TheTruthO,
1284            entity_ctx: *mut EntityContextO,
1285            ui: *mut UiO,
1286            uistyle: *const UiStyleT,
1287            tab: *mut TabI,
1288            pos: Vec2T,
1289        ),
1290    >,
1291    pub viewport_visualization_toolbar: ::std::option::Option<
1292        unsafe extern "C" fn(
1293            tt: *mut TheTruthO,
1294            entity_ctx: *mut EntityContextO,
1295            le_settings: *mut LightingEnvironmentSettingsT,
1296            statistics_overlays: *mut StatisticsOverlaysT,
1297            render_pipeline: *mut RenderPipelineI,
1298            ui: *mut UiO,
1299            uistyle: *const UiStyleT,
1300            tab: *mut TabI,
1301            toolbar_r: RectT,
1302            toolbar_draw_mode: u32,
1303        ) -> RectT,
1304    >,
1305    pub statistics_menu: ::std::option::Option<
1306        unsafe extern "C" fn(
1307            statistics_overlays: *mut StatisticsOverlaysT,
1308            ui: *mut UiO,
1309            uistyle: *const UiStyleT,
1310            pos: Vec2T,
1311        ),
1312    >,
1313    pub statistics_overlay_toolbars: ::std::option::Option<
1314        unsafe extern "C" fn(
1315            statistics_overlays: *mut StatisticsOverlaysT,
1316            ta: *mut TempAllocatorI,
1317        ) -> *mut ToolbarI,
1318    >,
1319    pub place_entity: ::std::option::Option<
1320        unsafe extern "C" fn(
1321            tt: *mut TheTruthO,
1322            entity: TtIdT,
1323            local_transform: *const TransformT,
1324            parent: TtIdT,
1325            undo_scope: TtUndoScopeT,
1326        ),
1327    >,
1328    pub select_entity: ::std::option::Option<
1329        unsafe extern "C" fn(
1330            tt: *mut TheTruthO,
1331            tab: *mut TabI,
1332            entity: TtIdT,
1333            undo_scope: TtUndoScopeT,
1334        ),
1335    >,
1336    pub select_component: ::std::option::Option<
1337        unsafe extern "C" fn(
1338            tt: *mut TheTruthO,
1339            tab: *mut TabI,
1340            component: TtIdT,
1341            undo_scope: TtUndoScopeT,
1342        ),
1343    >,
1344}
1345#[repr(C)]
1346pub struct SceneCommandDataT {
1347    pub tab: *mut TabI,
1348    pub viewport: RectT,
1349    pub camera: *mut CameraT,
1350    pub command_position: Vec2T,
1351}
1352impl Default for SceneCommandDataT {
1353    fn default() -> Self {
1354        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1355        unsafe {
1356            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1357            s.assume_init()
1358        }
1359    }
1360}
1361#[repr(C)]
1362#[derive(Copy, Clone)]
1363pub struct SceneTabCommandI {
1364    pub can_be_executed:
1365        ::std::option::Option<unsafe extern "C" fn(data: *mut SceneCommandDataT) -> bool>,
1366    pub execute: ::std::option::Option<unsafe extern "C" fn(data: *mut SceneCommandDataT)>,
1367    pub name: *const ::std::os::raw::c_char,
1368}
1369impl Default for SceneTabCommandI {
1370    fn default() -> Self {
1371        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1372        unsafe {
1373            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1374            s.assume_init()
1375        }
1376    }
1377}
1378#[repr(C)]
1379#[derive(Default, Copy, Clone)]
1380pub struct TtAspectNameProperty {
1381    pub property_idx: u32,
1382}
1383#[repr(C)]
1384#[derive(Default, Copy, Clone)]
1385pub struct TheTruthReplacerApi {
1386    pub replace_using_path: ::std::option::Option<
1387        unsafe extern "C" fn(
1388            tt: *mut TheTruthO,
1389            dest: TtIdT,
1390            source: TtIdT,
1391            undo_scope: TtUndoScopeT,
1392        ),
1393    >,
1394}
1395#[repr(C)]
1396#[derive(Default, Copy, Clone)]
1397pub struct TheTruthStripperI {
1398    pub strip: ::std::option::Option<unsafe extern "C" fn(tt: *mut TheTruthO, asset_root: TtIdT)>,
1399}
1400#[repr(C)]
1401#[derive(Copy, Clone)]
1402pub struct RenderPipelineUpdateFrameParametersT {
1403    _unused: [u8; 0],
1404}
1405#[repr(C)]
1406#[derive(Copy, Clone)]
1407pub struct RenderdocToolbarArgsT {
1408    _unused: [u8; 0],
1409}
1410pub type ViewerRenderCallbackF = ::std::option::Option<
1411    unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, args: *const RenderArgsT),
1412>;
1413pub type ViewerGatherShaderDataCallbackF = ::std::option::Option<
1414    unsafe extern "C" fn(
1415        inst: *mut ::std::os::raw::c_void,
1416        args: *mut CiShaderDataGatherCallbackArgsT,
1417    ),
1418>;
1419pub type ViewerGatherRenderCallbackF = ::std::option::Option<
1420    unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, args: *mut CiRenderGatherCallbackArgsT),
1421>;
1422#[repr(C)]
1423pub struct ViewerCameraT {
1424    pub tm: TransformT,
1425    pub camera: *const CameraSettingsT,
1426}
1427impl Default for ViewerCameraT {
1428    fn default() -> Self {
1429        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1430        unsafe {
1431            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1432            s.assume_init()
1433        }
1434    }
1435}
1436pub type ViewerGatherCameraSettingsCallbackF = ::std::option::Option<
1437    unsafe extern "C" fn(inst: *mut ::std::os::raw::c_void, camera: *mut ViewerCameraT),
1438>;
1439pub const TM_VIEWER_CAMERA_SETTINGS_IMMEDIATE: ViewerCameraSettings = 0;
1440pub const TM_VIEWER_CAMERA_SETTINGS_CALLBACK: ViewerCameraSettings = 1;
1441pub type ViewerCameraSettings = ::std::os::raw::c_int;
1442#[repr(C)]
1443pub struct ViewerRenderArgsTBindgenTy1 {
1444    pub __bindgen_anon_1: __BindgenUnionField<ViewerRenderArgsTBindgenTy1BindgenTy1>,
1445    pub camera: __BindgenUnionField<ViewerCameraT>,
1446    pub bindgen_union_field: [u64; 6usize],
1447}
1448#[repr(C)]
1449#[derive(Copy, Clone)]
1450pub struct ViewerRenderArgsTBindgenTy1BindgenTy1 {
1451    pub gather_camera_settings_callback: ViewerGatherCameraSettingsCallbackF,
1452    pub gather_camera_settings_callback_inst: *mut ::std::os::raw::c_void,
1453}
1454impl Default for ViewerRenderArgsTBindgenTy1BindgenTy1 {
1455    fn default() -> Self {
1456        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1457        unsafe {
1458            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1459            s.assume_init()
1460        }
1461    }
1462}
1463impl Default for ViewerRenderArgsTBindgenTy1 {
1464    fn default() -> Self {
1465        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1466        unsafe {
1467            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1468            s.assume_init()
1469        }
1470    }
1471}
1472#[repr(C)]
1473#[derive(Copy, Clone)]
1474pub struct ViewerRenderInfoT {
1475    pub target_width: u32,
1476    pub target_height: u32,
1477    pub vr_context: u32,
1478    pub _padding_139: [::std::os::raw::c_char; 4usize],
1479    pub camera: *const CameraT,
1480    pub render_pipeline: *mut RenderPipelineI,
1481}
1482impl Default for ViewerRenderInfoT {
1483    fn default() -> Self {
1484        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1485        unsafe {
1486            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1487            s.assume_init()
1488        }
1489    }
1490}
1491#[repr(C)]
1492#[derive(Copy, Clone)]
1493pub struct ViewerO {
1494    _unused: [u8; 0],
1495}
1496#[repr(C)]
1497#[derive(Default, Copy, Clone)]
1498pub struct ViewerApi {
1499    pub request_render: ::std::option::Option<
1500        unsafe extern "C" fn(
1501            viewer: *mut ViewerO,
1502            args: *const ViewerRenderArgsT,
1503            info: *mut ViewerRenderInfoT,
1504            res_buf: *mut RendererResourceCommandBufferO,
1505            cmd_buf: *mut RendererCommandBufferO,
1506        ) -> RendererHandleT,
1507    >,
1508    pub get_color_space: ::std::option::Option<
1509        unsafe extern "C" fn(viewer: *const ViewerO) -> *const ColorSpaceDescT,
1510    >,
1511    pub pipeline:
1512        ::std::option::Option<unsafe extern "C" fn(viewer: *mut ViewerO) -> *mut RenderPipelineI>,
1513    pub reset_render_pipeline: ::std::option::Option<unsafe extern "C" fn(viewer: *mut ViewerO)>,
1514    pub set_render_pipeline_api: ::std::option::Option<
1515        unsafe extern "C" fn(viewer: *mut ViewerO, pipeline_api: *mut RenderPipelineVt),
1516    >,
1517    pub screenshot: ::std::option::Option<unsafe extern "C" fn(viewer: *mut ViewerO)>,
1518    pub init_vr: ::std::option::Option<unsafe extern "C" fn(viewer: *mut ViewerO, activate: bool)>,
1519}
1520#[repr(C)]
1521#[derive(Default, Copy, Clone)]
1522pub struct ViewerManagerApi {
1523    pub create_manager: ::std::option::Option<
1524        unsafe extern "C" fn(
1525            allocator: *mut AllocatorI,
1526            render_backend: *mut RendererBackendI,
1527            shader_repository: *mut ShaderRepositoryO,
1528            main_device_affinity: u32,
1529            default_visibility_context: *mut VisibilityContextO,
1530            viewport_visibility_flag: u64,
1531        ) -> *mut ViewerManagerO,
1532    >,
1533    pub destroy_manager: ::std::option::Option<
1534        unsafe extern "C" fn(
1535            manager: *mut ViewerManagerO,
1536            res_buf: *mut RendererResourceCommandBufferO,
1537        ),
1538    >,
1539    pub create: ::std::option::Option<
1540        unsafe extern "C" fn(
1541            manager: *mut ViewerManagerO,
1542            main_module_name: *const ::std::os::raw::c_char,
1543        ) -> *mut ViewerO,
1544    >,
1545    pub destroy: ::std::option::Option<
1546        unsafe extern "C" fn(
1547            manager: *mut ViewerManagerO,
1548            viewer: *mut ViewerO,
1549            res_buf: *mut RendererResourceCommandBufferO,
1550        ),
1551    >,
1552    pub viewers: ::std::option::Option<
1553        unsafe extern "C" fn(
1554            manager: *mut ViewerManagerO,
1555            active: *mut *mut bool,
1556        ) -> *mut *mut ViewerO,
1557    >,
1558    pub render: ::std::option::Option<
1559        unsafe extern "C" fn(
1560            manager: *mut ViewerManagerO,
1561            shader_context: *const ShaderSystemContextO,
1562            tt: *const TheTruthO,
1563            frame_params: *const RenderPipelineUpdateFrameParametersT,
1564        ),
1565    >,
1566}
1567#[repr(C)]
1568#[derive(Default, Copy, Clone)]
1569pub struct AssetPreviewO {
1570    pub _address: u8,
1571}
1572#[repr(C)]
1573#[derive(Default, Copy, Clone)]
1574pub struct AssetSceneO {
1575    pub _address: u8,
1576}
1577
1578// Extensions generated by machinery-generator
1579
1580use const_cstr::{const_cstr, ConstCStr};
1581
1582use crate::foundation::VersionT;
1583
1584use crate::foundation::*;
1585use crate::plugins::editor_views::*;
1586use crate::plugins::entity::*;
1587use crate::plugins::render_graph::*;
1588use crate::plugins::renderer::*;
1589use crate::plugins::shader_system::*;
1590use crate::plugins::ui::*;
1591
1592impl AssetPreviewApi {
1593    pub unsafe fn create(&self, allocator: *mut AllocatorI) -> *mut AssetPreviewO {
1594        self.create.unwrap()(allocator)
1595    }
1596
1597    pub unsafe fn destroy(&self, inst: *mut AssetPreviewO, allocator: *mut AllocatorI) {
1598        self.destroy.unwrap()(inst, allocator)
1599    }
1600
1601    pub unsafe fn create_entity(
1602        &self,
1603        inst: *mut AssetPreviewO,
1604        tt: *mut TheTruthO,
1605        asset: TtIdT,
1606        entity_ctx: *mut EntityContextO,
1607        result: *mut EntityT,
1608    ) {
1609        self.create_entity.unwrap()(inst, tt, asset, entity_ctx, result)
1610    }
1611
1612    pub unsafe fn intercept_focus(
1613        &self,
1614        inst: *mut AssetPreviewO,
1615        tt: *mut TheTruthO,
1616        root_asset: TtIdT,
1617        entity_ctx: *mut EntityContextO,
1618        entity: *const EntityT,
1619        focus_asset: TtIdT,
1620    ) -> bool {
1621        self.intercept_focus.unwrap()(inst, tt, root_asset, entity_ctx, entity, focus_asset)
1622    }
1623
1624    pub unsafe fn reload(
1625        &self,
1626        inst: *mut AssetPreviewO,
1627        tt: *mut TheTruthO,
1628        asset: TtIdT,
1629        entity_ctx: *mut EntityContextO,
1630        entity: *mut EntityT,
1631    ) -> bool {
1632        self.reload.unwrap()(inst, tt, asset, entity_ctx, entity)
1633    }
1634
1635    pub unsafe fn dirty(&self, inst: *mut AssetPreviewO, tt: *mut TheTruthO, asset: TtIdT) -> bool {
1636        self.dirty.unwrap()(inst, tt, asset)
1637    }
1638
1639    pub unsafe fn render(
1640        &self,
1641        inst: *mut AssetPreviewO,
1642        tt: *mut TheTruthO,
1643        asset: TtIdT,
1644        args: *const RenderArgsT,
1645    ) {
1646        self.render.unwrap()(inst, tt, asset, args)
1647    }
1648
1649    pub unsafe fn refresh_thumbnail(
1650        &self,
1651        inst: *mut AssetPreviewO,
1652        tt: *mut TheTruthO,
1653        asset: TtIdT,
1654        args: *const RenderArgsT,
1655    ) {
1656        self.refresh_thumbnail.unwrap()(inst, tt, asset, args)
1657    }
1658
1659    pub unsafe fn ui(&self, inst: *mut AssetPreviewO, args: *const AssetPreviewApiUiArgsT) {
1660        self.ui.unwrap()(inst, args)
1661    }
1662
1663    pub unsafe fn toolbars(
1664        &self,
1665        inst: *mut AssetPreviewO,
1666        ta: *mut TempAllocatorI,
1667        args: *const AssetPreviewApiUiArgsT,
1668    ) -> *mut ToolbarI {
1669        self.toolbars.unwrap()(inst, ta, args)
1670    }
1671
1672    pub unsafe fn update_camera(
1673        &self,
1674        inst: *mut AssetPreviewO,
1675        tt: *mut TheTruthO,
1676        cam_tm: *mut TransformT,
1677        cam_settings: *mut *const CameraSettingsT,
1678    ) {
1679        self.update_camera.unwrap()(inst, tt, cam_tm, cam_settings)
1680    }
1681}
1682
1683impl crate::Api for AssetPreviewApi {
1684    const NAME: ConstCStr = const_cstr!("tm_asset_preview_api");
1685    const VERSION: VersionT = VersionT {
1686        major: 2u32,
1687        minor: 0u32,
1688        patch: 0u32,
1689    };
1690}
1691
1692impl AssetSceneApi {
1693    pub unsafe fn create(&self, allocator: *mut AllocatorI) -> *mut AssetSceneO {
1694        self.create.unwrap()(allocator)
1695    }
1696
1697    pub unsafe fn destroy(&self, inst: *mut AssetSceneO, allocator: *mut AllocatorI) {
1698        self.destroy.unwrap()(inst, allocator)
1699    }
1700
1701    pub unsafe fn droppable(
1702        &self,
1703        inst: *mut AssetSceneO,
1704        tt: *mut TheTruthO,
1705        asset: TtIdT,
1706    ) -> bool {
1707        self.droppable.unwrap()(inst, tt, asset)
1708    }
1709
1710    pub unsafe fn create_entity(
1711        &self,
1712        inst: *mut AssetSceneO,
1713        tt: *mut TheTruthO,
1714        asset: TtIdT,
1715        name: *const ::std::os::raw::c_char,
1716        local_transform: *const TransformT,
1717        parent_entity: TtIdT,
1718        asset_root: TtIdT,
1719        undo_stack: *mut UndoStackI,
1720    ) -> TtIdT {
1721        self.create_entity.unwrap()(
1722            inst,
1723            tt,
1724            asset,
1725            name,
1726            local_transform,
1727            parent_entity,
1728            asset_root,
1729            undo_stack,
1730        )
1731    }
1732
1733    pub unsafe fn bound_entity_asset(
1734        &self,
1735        inst: *mut AssetSceneO,
1736        tt: *const TheTruthO,
1737        asset: TtIdT,
1738        bounds: *mut Vec3T,
1739    ) {
1740        self.bound_entity_asset.unwrap()(inst, tt, asset, bounds)
1741    }
1742}
1743
1744impl BakerContextApi {
1745    pub unsafe fn create_context(
1746        &self,
1747        a: *mut AllocatorI,
1748        tt: *mut TheTruthO,
1749        asset_root: TtIdT,
1750        render_pipe: *mut RenderPipelineVt,
1751    ) -> *mut BakerContextO {
1752        self.create_context.unwrap()(a, tt, asset_root, render_pipe)
1753    }
1754
1755    pub unsafe fn destroy_context(&self, context: *mut BakerContextO) {
1756        self.destroy_context.unwrap()(context)
1757    }
1758
1759    pub unsafe fn entity_context(&self, context: *mut BakerContextO) -> *mut EntityContextO {
1760        self.entity_context.unwrap()(context)
1761    }
1762
1763    pub unsafe fn set_entity(&self, context: *mut BakerContextO, e: EntityT) {
1764        self.set_entity.unwrap()(context, e)
1765    }
1766
1767    pub unsafe fn render_args(&self, context: *mut BakerContextO, args: *mut ViewerRenderArgsT) {
1768        self.render_args.unwrap()(context, args)
1769    }
1770
1771    pub unsafe fn set_camera(
1772        &self,
1773        context: *mut BakerContextO,
1774        camera_tm: *const TransformT,
1775        camera_settings: *const CameraSettingsT,
1776    ) {
1777        self.set_camera.unwrap()(context, camera_tm, camera_settings)
1778    }
1779}
1780
1781impl crate::Api for BakerContextApi {
1782    const NAME: ConstCStr = const_cstr!("tm_baker_context_api");
1783    const VERSION: VersionT = VersionT {
1784        major: 1u32,
1785        minor: 0u32,
1786        patch: 0u32,
1787    };
1788}
1789
1790impl CameraControllerComponentApi {
1791    pub unsafe fn create(
1792        &self,
1793        ctx: *mut EntityContextO,
1794    ) -> *mut CameraControllerComponentManagerO {
1795        self.create.unwrap()(ctx)
1796    }
1797
1798    pub unsafe fn feed_ui_input(
1799        &self,
1800        manager: *mut CameraControllerComponentManagerO,
1801        ui: *mut UiO,
1802        in_area: bool,
1803    ) {
1804        self.feed_ui_input.unwrap()(manager, ui, in_area)
1805    }
1806
1807    pub unsafe fn register_engines(&self, manager: *mut CameraControllerComponentManagerO) {
1808        self.register_engines.unwrap()(manager)
1809    }
1810
1811    pub unsafe fn orientation_indicator(
1812        &self,
1813        manager: *mut CameraControllerComponentManagerO,
1814        ui: *mut UiO,
1815        uistyle: *const UiStyleT,
1816        c: *const UiOrientationIndicatorT,
1817    ) {
1818        self.orientation_indicator.unwrap()(manager, ui, uistyle, c)
1819    }
1820}
1821
1822impl crate::Api for CameraControllerComponentApi {
1823    const NAME: ConstCStr = const_cstr!("tm_camera_controller_component_api");
1824    const VERSION: VersionT = VersionT {
1825        major: 1u32,
1826        minor: 0u32,
1827        patch: 0u32,
1828    };
1829}
1830
1831impl FrustumCullingApi {
1832    pub unsafe fn viewer_from_projection_mat(
1833        &self,
1834        view_tm: *const Mat44T,
1835        projection_tm: *const Mat44T,
1836        visibility_mask: u64,
1837    ) -> CullingViewerT {
1838        self.viewer_from_projection_mat.unwrap()(view_tm, projection_tm, visibility_mask)
1839    }
1840
1841    pub unsafe fn calc_size_of_objects_buffer(&self, bv_type: u32, num_objects: u32) -> u32 {
1842        self.calc_size_of_objects_buffer.unwrap()(bv_type, num_objects)
1843    }
1844
1845    pub unsafe fn calc_size_of_results_buffer(&self, num_viewers: u32, num_objects: u32) -> u32 {
1846        self.calc_size_of_results_buffer.unwrap()(num_viewers, num_objects)
1847    }
1848
1849    pub unsafe fn cull_fast(
1850        &self,
1851        viewers: *const CullingViewerT,
1852        num_viewers: u32,
1853        bv_type: u32,
1854        objects: *const u8,
1855        num_objects: u32,
1856        results: *mut u8,
1857        ta: *mut TempAllocatorI,
1858    ) -> *mut AtomicCounterO {
1859        self.cull_fast.unwrap()(
1860            viewers,
1861            num_viewers,
1862            bv_type,
1863            objects,
1864            num_objects,
1865            results,
1866            ta,
1867        )
1868    }
1869
1870    pub unsafe fn cull_precise(
1871        &self,
1872        viewers: *const CullingViewerT,
1873        num_viewers: u32,
1874        bv_type: u32,
1875        objects: *const u8,
1876        num_objects: u32,
1877        results: *mut u8,
1878        ta: *mut TempAllocatorI,
1879    ) -> *mut AtomicCounterO {
1880        self.cull_precise.unwrap()(
1881            viewers,
1882            num_viewers,
1883            bv_type,
1884            objects,
1885            num_objects,
1886            results,
1887            ta,
1888        )
1889    }
1890
1891    pub unsafe fn gpu_cull(
1892        &self,
1893        args: *mut GpuCullingArgsT,
1894        output: *mut RendererHandleT,
1895        output_desc: *mut RendererBufferDescT,
1896    ) {
1897        self.gpu_cull.unwrap()(args, output, output_desc)
1898    }
1899}
1900
1901impl crate::Api for FrustumCullingApi {
1902    const NAME: ConstCStr = const_cstr!("tm_frustum_culling_api");
1903    const VERSION: VersionT = VersionT {
1904        major: 1u32,
1905        minor: 0u32,
1906        patch: 0u32,
1907    };
1908}
1909
1910impl GpuSceneSubmissionApi {
1911    pub unsafe fn create_workload(
1912        &self,
1913        draw_calls: *const CreationGraphDrawCallDataT,
1914        draw_calls_count: u32,
1915        res_buf: *mut RendererResourceCommandBufferO,
1916        a: *mut AllocatorI,
1917    ) -> *mut GpuSceneSubmissionWorkloadO {
1918        self.create_workload.unwrap()(draw_calls, draw_calls_count, res_buf, a)
1919    }
1920
1921    pub unsafe fn destroy_workload(
1922        &self,
1923        workload: *mut GpuSceneSubmissionWorkloadO,
1924        res_buf: *mut RendererResourceCommandBufferO,
1925    ) {
1926        self.destroy_workload.unwrap()(workload, res_buf)
1927    }
1928
1929    pub unsafe fn cull_and_render(&self, args: *mut GpuSceneSubmissionArgsT) {
1930        self.cull_and_render.unwrap()(args)
1931    }
1932}
1933
1934impl crate::Api for GpuSceneSubmissionApi {
1935    const NAME: ConstCStr = const_cstr!("tm_gpu_scene_submission_api");
1936    const VERSION: VersionT = VersionT {
1937        major: 1u32,
1938        minor: 0u32,
1939        patch: 0u32,
1940    };
1941}
1942
1943impl RenderContextApi {
1944    pub unsafe fn create(&self, allocator: *mut AllocatorI) -> *mut RenderContextO {
1945        self.create.unwrap()(allocator)
1946    }
1947
1948    pub unsafe fn destroy(&self, context: *mut RenderContextO) {
1949        self.destroy.unwrap()(context)
1950    }
1951
1952    pub unsafe fn append_resource_buffers(
1953        &self,
1954        context: *mut RenderContextO,
1955        phase: RenderContextBufferPhase,
1956        res_buffers: *mut *mut RendererResourceCommandBufferO,
1957        num_buffers: u32,
1958    ) {
1959        self.append_resource_buffers.unwrap()(context, phase, res_buffers, num_buffers)
1960    }
1961
1962    pub unsafe fn append_command_buffers(
1963        &self,
1964        context: *mut RenderContextO,
1965        phase: RenderContextBufferPhase,
1966        cmd_buffers: *mut *mut RendererCommandBufferO,
1967        num_buffers: u32,
1968    ) {
1969        self.append_command_buffers.unwrap()(context, phase, cmd_buffers, num_buffers)
1970    }
1971
1972    pub unsafe fn resource_buffers(
1973        &self,
1974        context: *mut RenderContextO,
1975        phase: RenderContextBufferPhase,
1976        res_buffers: *mut *mut RendererResourceCommandBufferO,
1977    ) -> u32 {
1978        self.resource_buffers.unwrap()(context, phase, res_buffers)
1979    }
1980
1981    pub unsafe fn command_buffers(
1982        &self,
1983        context: *mut RenderContextO,
1984        phase: RenderContextBufferPhase,
1985        cmd_buffers: *mut *mut RendererCommandBufferO,
1986    ) -> u32 {
1987        self.command_buffers.unwrap()(context, phase, cmd_buffers)
1988    }
1989}
1990
1991impl crate::Api for RenderContextApi {
1992    const NAME: ConstCStr = const_cstr!("tm_render_context_api");
1993    const VERSION: VersionT = VersionT {
1994        major: 1u32,
1995        minor: 0u32,
1996        patch: 0u32,
1997    };
1998}
1999
2000impl SceneCommonApi {
2001    pub unsafe fn init_camera(&self, camera: *mut TransformT, translation: Vec3T) {
2002        self.init_camera.unwrap()(camera, translation)
2003    }
2004
2005    pub unsafe fn camera_frame_bounds(
2006        &self,
2007        camera: *mut TransformT,
2008        camera_y_fov: f32,
2009        bounds: *const Vec3T,
2010        translation_speed: *mut f32,
2011        focus_point: *mut Vec3T,
2012    ) {
2013        self.camera_frame_bounds.unwrap()(
2014            camera,
2015            camera_y_fov,
2016            bounds,
2017            translation_speed,
2018            focus_point,
2019        )
2020    }
2021
2022    pub unsafe fn find_component_render_interfaces(
2023        &self,
2024        entity_ctx: *mut EntityContextO,
2025        transform_component: ComponentTypeT,
2026        tt: *const TheTruthO,
2027        allocator: *mut AllocatorI,
2028        selection: *const TtIdT,
2029        selection_n: u64,
2030        ignore: *const EntityT,
2031        ignore_n: u64,
2032        include_entities_without_render_components: bool,
2033        res: *mut CiRenderGatherCallbackArgsT,
2034    ) {
2035        self.find_component_render_interfaces.unwrap()(
2036            entity_ctx,
2037            transform_component,
2038            tt,
2039            allocator,
2040            selection,
2041            selection_n,
2042            ignore,
2043            ignore_n,
2044            include_entities_without_render_components,
2045            res,
2046        )
2047    }
2048
2049    pub unsafe fn bound_assets(
2050        &self,
2051        entity_ctx: *mut EntityContextO,
2052        transform_component: ComponentTypeT,
2053        tt: *const TheTruthO,
2054        ignore: *const EntityT,
2055        ignore_n: u64,
2056        bounds: *mut Vec3T,
2057        include_origo: bool,
2058    ) {
2059        self.bound_assets.unwrap()(
2060            entity_ctx,
2061            transform_component,
2062            tt,
2063            ignore,
2064            ignore_n,
2065            bounds,
2066            include_origo,
2067        )
2068    }
2069
2070    pub unsafe fn bound_selected_assets(
2071        &self,
2072        entity_ctx: *mut EntityContextO,
2073        transform_component: ComponentTypeT,
2074        tt: *const TheTruthO,
2075        selection: *const TtIdT,
2076        selection_n: u64,
2077        ignore: *const EntityT,
2078        ignore_n: u64,
2079        bounds: *mut Vec3T,
2080        include_origo: bool,
2081    ) {
2082        self.bound_selected_assets.unwrap()(
2083            entity_ctx,
2084            transform_component,
2085            tt,
2086            selection,
2087            selection_n,
2088            ignore,
2089            ignore_n,
2090            bounds,
2091            include_origo,
2092        )
2093    }
2094
2095    pub unsafe fn bound_entity_asset(
2096        &self,
2097        tt: *const TheTruthO,
2098        entity: TtIdT,
2099        bounds: *mut Vec3T,
2100    ) {
2101        self.bound_entity_asset.unwrap()(tt, entity, bounds)
2102    }
2103
2104    pub unsafe fn find_shader_data_engine_update(
2105        &self,
2106        inst: *mut EngineO,
2107        data: *mut EngineUpdateSetT,
2108        commands: *mut EntityCommandsO,
2109    ) {
2110        self.find_shader_data_engine_update.unwrap()(inst, data, commands)
2111    }
2112
2113    pub unsafe fn gather_shader_data_filter(
2114        &self,
2115        inst: *mut EngineO,
2116        components: *const ComponentTypeT,
2117        num_components: u32,
2118        mask: *const ComponentMaskT,
2119    ) -> bool {
2120        self.gather_shader_data_filter.unwrap()(inst, components, num_components, mask)
2121    }
2122
2123    pub unsafe fn find_renderables_engine_update(
2124        &self,
2125        inst: *mut EngineO,
2126        data: *mut EngineUpdateSetT,
2127        commands: *mut EntityCommandsO,
2128    ) {
2129        self.find_renderables_engine_update.unwrap()(inst, data, commands)
2130    }
2131
2132    pub unsafe fn gather_renderables_filter(
2133        &self,
2134        inst: *mut EngineO,
2135        components: *const ComponentTypeT,
2136        num_components: u32,
2137        mask: *const ComponentMaskT,
2138    ) -> bool {
2139        self.gather_renderables_filter.unwrap()(inst, components, num_components, mask)
2140    }
2141
2142    pub unsafe fn add_default_light_source(&self, entity_ctx: *mut EntityContextO) -> EntityT {
2143        self.add_default_light_source.unwrap()(entity_ctx)
2144    }
2145
2146    pub unsafe fn has_any_light_source(&self, ctx: *mut EntityContextO) -> bool {
2147        self.has_any_light_source.unwrap()(ctx)
2148    }
2149
2150    pub unsafe fn component_visualization_menu(
2151        &self,
2152        tt: *mut TheTruthO,
2153        entity_ctx: *mut EntityContextO,
2154        ui: *mut UiO,
2155        uistyle: *const UiStyleT,
2156        tab: *mut TabI,
2157        pos: Vec2T,
2158    ) {
2159        self.component_visualization_menu.unwrap()(tt, entity_ctx, ui, uistyle, tab, pos)
2160    }
2161
2162    pub unsafe fn viewport_visualization_toolbar(
2163        &self,
2164        tt: *mut TheTruthO,
2165        entity_ctx: *mut EntityContextO,
2166        le_settings: *mut LightingEnvironmentSettingsT,
2167        statistics_overlays: *mut StatisticsOverlaysT,
2168        render_pipeline: *mut RenderPipelineI,
2169        ui: *mut UiO,
2170        uistyle: *const UiStyleT,
2171        tab: *mut TabI,
2172        toolbar_r: RectT,
2173        toolbar_draw_mode: u32,
2174    ) -> RectT {
2175        self.viewport_visualization_toolbar.unwrap()(
2176            tt,
2177            entity_ctx,
2178            le_settings,
2179            statistics_overlays,
2180            render_pipeline,
2181            ui,
2182            uistyle,
2183            tab,
2184            toolbar_r,
2185            toolbar_draw_mode,
2186        )
2187    }
2188
2189    pub unsafe fn statistics_menu(
2190        &self,
2191        statistics_overlays: *mut StatisticsOverlaysT,
2192        ui: *mut UiO,
2193        uistyle: *const UiStyleT,
2194        pos: Vec2T,
2195    ) {
2196        self.statistics_menu.unwrap()(statistics_overlays, ui, uistyle, pos)
2197    }
2198
2199    pub unsafe fn statistics_overlay_toolbars(
2200        &self,
2201        statistics_overlays: *mut StatisticsOverlaysT,
2202        ta: *mut TempAllocatorI,
2203    ) -> *mut ToolbarI {
2204        self.statistics_overlay_toolbars.unwrap()(statistics_overlays, ta)
2205    }
2206
2207    pub unsafe fn place_entity(
2208        &self,
2209        tt: *mut TheTruthO,
2210        entity: TtIdT,
2211        local_transform: *const TransformT,
2212        parent: TtIdT,
2213        undo_scope: TtUndoScopeT,
2214    ) {
2215        self.place_entity.unwrap()(tt, entity, local_transform, parent, undo_scope)
2216    }
2217
2218    pub unsafe fn select_entity(
2219        &self,
2220        tt: *mut TheTruthO,
2221        tab: *mut TabI,
2222        entity: TtIdT,
2223        undo_scope: TtUndoScopeT,
2224    ) {
2225        self.select_entity.unwrap()(tt, tab, entity, undo_scope)
2226    }
2227
2228    pub unsafe fn select_component(
2229        &self,
2230        tt: *mut TheTruthO,
2231        tab: *mut TabI,
2232        component: TtIdT,
2233        undo_scope: TtUndoScopeT,
2234    ) {
2235        self.select_component.unwrap()(tt, tab, component, undo_scope)
2236    }
2237}
2238
2239impl crate::Api for SceneCommonApi {
2240    const NAME: ConstCStr = const_cstr!("tm_scene_common_api");
2241    const VERSION: VersionT = VersionT {
2242        major: 2u32,
2243        minor: 0u32,
2244        patch: 0u32,
2245    };
2246}
2247
2248impl TheTruthReplacerApi {
2249    pub unsafe fn replace_using_path(
2250        &self,
2251        tt: *mut TheTruthO,
2252        dest: TtIdT,
2253        source: TtIdT,
2254        undo_scope: TtUndoScopeT,
2255    ) {
2256        self.replace_using_path.unwrap()(tt, dest, source, undo_scope)
2257    }
2258}
2259
2260impl crate::Api for TheTruthReplacerApi {
2261    const NAME: ConstCStr = const_cstr!("tm_the_truth_replacer_api");
2262    const VERSION: VersionT = VersionT {
2263        major: 1u32,
2264        minor: 0u32,
2265        patch: 0u32,
2266    };
2267}
2268
2269impl ViewerApi {
2270    pub unsafe fn request_render(
2271        &self,
2272        viewer: *mut ViewerO,
2273        args: *const ViewerRenderArgsT,
2274        info: *mut ViewerRenderInfoT,
2275        res_buf: *mut RendererResourceCommandBufferO,
2276        cmd_buf: *mut RendererCommandBufferO,
2277    ) -> RendererHandleT {
2278        self.request_render.unwrap()(viewer, args, info, res_buf, cmd_buf)
2279    }
2280
2281    pub unsafe fn get_color_space(&self, viewer: *const ViewerO) -> *const ColorSpaceDescT {
2282        self.get_color_space.unwrap()(viewer)
2283    }
2284
2285    pub unsafe fn pipeline(&self, viewer: *mut ViewerO) -> *mut RenderPipelineI {
2286        self.pipeline.unwrap()(viewer)
2287    }
2288
2289    pub unsafe fn reset_render_pipeline(&self, viewer: *mut ViewerO) {
2290        self.reset_render_pipeline.unwrap()(viewer)
2291    }
2292
2293    pub unsafe fn set_render_pipeline_api(
2294        &self,
2295        viewer: *mut ViewerO,
2296        pipeline_api: *mut RenderPipelineVt,
2297    ) {
2298        self.set_render_pipeline_api.unwrap()(viewer, pipeline_api)
2299    }
2300
2301    pub unsafe fn screenshot(&self, viewer: *mut ViewerO) {
2302        self.screenshot.unwrap()(viewer)
2303    }
2304
2305    pub unsafe fn init_vr(&self, viewer: *mut ViewerO, activate: bool) {
2306        self.init_vr.unwrap()(viewer, activate)
2307    }
2308}
2309
2310impl crate::Api for ViewerApi {
2311    const NAME: ConstCStr = const_cstr!("tm_viewer_api");
2312    const VERSION: VersionT = VersionT {
2313        major: 1u32,
2314        minor: 0u32,
2315        patch: 0u32,
2316    };
2317}
2318
2319impl ViewerManagerApi {
2320    pub unsafe fn create_manager(
2321        &self,
2322        allocator: *mut AllocatorI,
2323        render_backend: *mut RendererBackendI,
2324        shader_repository: *mut ShaderRepositoryO,
2325        main_device_affinity: u32,
2326        default_visibility_context: *mut VisibilityContextO,
2327        viewport_visibility_flag: u64,
2328    ) -> *mut ViewerManagerO {
2329        self.create_manager.unwrap()(
2330            allocator,
2331            render_backend,
2332            shader_repository,
2333            main_device_affinity,
2334            default_visibility_context,
2335            viewport_visibility_flag,
2336        )
2337    }
2338
2339    pub unsafe fn destroy_manager(
2340        &self,
2341        manager: *mut ViewerManagerO,
2342        res_buf: *mut RendererResourceCommandBufferO,
2343    ) {
2344        self.destroy_manager.unwrap()(manager, res_buf)
2345    }
2346
2347    pub unsafe fn create(
2348        &self,
2349        manager: *mut ViewerManagerO,
2350        main_module_name: *const ::std::os::raw::c_char,
2351    ) -> *mut ViewerO {
2352        self.create.unwrap()(manager, main_module_name)
2353    }
2354
2355    pub unsafe fn destroy(
2356        &self,
2357        manager: *mut ViewerManagerO,
2358        viewer: *mut ViewerO,
2359        res_buf: *mut RendererResourceCommandBufferO,
2360    ) {
2361        self.destroy.unwrap()(manager, viewer, res_buf)
2362    }
2363
2364    pub unsafe fn viewers(
2365        &self,
2366        manager: *mut ViewerManagerO,
2367        active: *mut *mut bool,
2368    ) -> *mut *mut ViewerO {
2369        self.viewers.unwrap()(manager, active)
2370    }
2371
2372    pub unsafe fn render(
2373        &self,
2374        manager: *mut ViewerManagerO,
2375        shader_context: *const ShaderSystemContextO,
2376        tt: *const TheTruthO,
2377        frame_params: *const RenderPipelineUpdateFrameParametersT,
2378    ) {
2379        self.render.unwrap()(manager, shader_context, tt, frame_params)
2380    }
2381}
2382
2383impl crate::Api for ViewerManagerApi {
2384    const NAME: ConstCStr = const_cstr!("tm_viewer_manager_api");
2385    const VERSION: VersionT = VersionT {
2386        major: 2u32,
2387        minor: 0u32,
2388        patch: 0u32,
2389    };
2390}
2391
2392pub const TM_TT_ASPECT__ASSET_PREVIEW: StrhashT = StrhashT {
2393    u64_: 14212721863639798132u64,
2394};
2395pub const TM_TT_ASPECT__ASSET_SCENE: StrhashT = StrhashT {
2396    u64_: 14329318064558651605u64,
2397};
2398pub const TM_TT_ASPECT__ASSET_OPEN: StrhashT = StrhashT {
2399    u64_: 5594051701220254319u64,
2400};
2401pub const TYPE_HASH__CAMERA_CONTROLLER_COMPONENT: StrhashT = StrhashT {
2402    u64_: 9760961870676976776u64,
2403};
2404pub const TM_ENGINE__FREEFLIGHT_CAMERA_CONTROLLER: StrhashT = StrhashT {
2405    u64_: 16405980432310866292u64,
2406};
2407pub const TM_ENGINE__FREEFLIGHT_CAMERA_TRANSFORM: StrhashT = StrhashT {
2408    u64_: 3643124764479369251u64,
2409};
2410pub const TM_CI_EDITOR_UI: StrhashT = StrhashT {
2411    u64_: 15967003850867459386u64,
2412};
2413pub const TM_EDITOR_TOOL_ID__SELECT: StrhashT = StrhashT {
2414    u64_: 15419100652914668230u64,
2415};
2416pub const TM_EDITOR_TOOL_ID__MOVE: StrhashT = StrhashT {
2417    u64_: 10765360271784010468u64,
2418};
2419pub const TM_EDITOR_TOOL_ID__ROTATE: StrhashT = StrhashT {
2420    u64_: 4957850385211195158u64,
2421};
2422pub const TM_EDITOR_TOOL_ID__SCALE: StrhashT = StrhashT {
2423    u64_: 10577229183153927243u64,
2424};
2425pub const TM_EDITOR_TOOL_ID__ORIENTATION: StrhashT = StrhashT {
2426    u64_: 6220572659606744657u64,
2427};
2428pub const TM_CI_RENDER: StrhashT = StrhashT {
2429    u64_: 6430888070237176841u64,
2430};
2431pub const TM_CI_SHADER: StrhashT = StrhashT {
2432    u64_: 14389400674037110261u64,
2433};
2434pub const TM_GPU_CULLING__TRANSFORMS_INPUT: StrhashT = StrhashT {
2435    u64_: 2665470916605338210u64,
2436};
2437pub const TM_GPU_CULLING__OUTPUT: StrhashT = StrhashT {
2438    u64_: 13816956930322693720u64,
2439};
2440pub const TM_GPU_CULLING__DRAW_CMDS_OUTPUT: StrhashT = StrhashT {
2441    u64_: 12832042406061263999u64,
2442};
2443pub const TM_GPU_CULLING__BOUNDING_RADIUS: StrhashT = StrhashT {
2444    u64_: 13926938770589846664u64,
2445};
2446pub const TM_GPU_CULLING__TRANSFORMS_COUNT: StrhashT = StrhashT {
2447    u64_: 7762110212670973143u64,
2448};
2449pub const TM_GPU_CULLING__TRANSFORMS_START: StrhashT = StrhashT {
2450    u64_: 17570208879660267539u64,
2451};
2452pub const TM_GPU_CULLING__TRANSFORMS_STRIDE: StrhashT = StrhashT {
2453    u64_: 194691516363235041u64,
2454};
2455pub const TM_GPU_CULLING__CULLING_DISTANCE: StrhashT = StrhashT {
2456    u64_: 5958167400858114767u64,
2457};
2458pub const TM_GPU_CULLING__DRAW_CMDS_COUNT: StrhashT = StrhashT {
2459    u64_: 17165353573604852259u64,
2460};
2461pub const TM_GPU_CULLING__PARENT_TRANSFORM: StrhashT = StrhashT {
2462    u64_: 10460656992834597080u64,
2463};
2464pub const TM_GPU_SCENE_SUBMISSION__TRANSFORMS_INPUT: StrhashT = StrhashT {
2465    u64_: 2735135666531474372u64,
2466};
2467pub const TM_GPU_SCENE_SUBMISSION__OUTPUT: StrhashT = StrhashT {
2468    u64_: 18345216586284322428u64,
2469};
2470pub const TM_GPU_SCENE_SUBMISSION__DRAW_CMDS_OUTPUT: StrhashT = StrhashT {
2471    u64_: 3450145739906582207u64,
2472};
2473pub const TM_GPU_SCENE_SUBMISSION__DISPATCH_INDIRECT_OUTPUT: StrhashT = StrhashT {
2474    u64_: 8013803713849225952u64,
2475};
2476pub const TM_GPU_SCENE_SUBMISSION__BOUNDING_RADIUS: StrhashT = StrhashT {
2477    u64_: 1112308192711211455u64,
2478};
2479pub const TM_GPU_SCENE_SUBMISSION__TRANSFORMS_COUNT: StrhashT = StrhashT {
2480    u64_: 16164211266129383767u64,
2481};
2482pub const TM_GPU_SCENE_SUBMISSION__TRANSFORMS_START: StrhashT = StrhashT {
2483    u64_: 5762445022806614575u64,
2484};
2485pub const TM_GPU_SCENE_SUBMISSION__TRANSFORMS_STRIDE: StrhashT = StrhashT {
2486    u64_: 12307040261741271801u64,
2487};
2488pub const TM_GPU_SCENE_SUBMISSION__PARENT_TRANSFORM: StrhashT = StrhashT {
2489    u64_: 12159040891817738833u64,
2490};
2491pub const TM_GPU_SCENE_SUBMISSION__CULLING_DISTANCE: StrhashT = StrhashT {
2492    u64_: 5100655888310955492u64,
2493};
2494pub const TM_GPU_SCENE_SUBMISSION__DRAW_CMDS_COUNT: StrhashT = StrhashT {
2495    u64_: 5210628088815794490u64,
2496};
2497pub const TM_GPU_SCENE_SUBMISSION__VIEWERS_COUNT: StrhashT = StrhashT {
2498    u64_: 8158439013611647872u64,
2499};
2500pub const TM_GPU_SCENE_SUBMISSION__INDIRECT_DRAW_CMDS_START: StrhashT = StrhashT {
2501    u64_: 7929537108828966574u64,
2502};
2503pub const TM_GPU_SCENE_SUBMISSION__INDIRECT_COMPUTE_CMD_OFFSET: StrhashT = StrhashT {
2504    u64_: 6871324773626176928u64,
2505};
2506pub const TM_GPU_SCENE_SUBMISSION__INSTANCE_COUNTERS_START: StrhashT = StrhashT {
2507    u64_: 8003617856616968400u64,
2508};
2509pub const TM_GPU_SCENE_SUBMISSION__INSTANCE_INDIRECTION_START: StrhashT = StrhashT {
2510    u64_: 8389349747083231397u64,
2511};
2512pub const TM_TT_ASPECT__NAME_PROPERTY: StrhashT = StrhashT {
2513    u64_: 16328471694850579054u64,
2514};
2515pub const TM_CAMERA_CONTROLLER_COMPONENT_API_VERSION: VersionT = VersionT {
2516    major: 1u32,
2517    minor: 0u32,
2518    patch: 0u32,
2519};
2520pub const TM_VIEWER_API_VERSION: VersionT = VersionT {
2521    major: 1u32,
2522    minor: 0u32,
2523    patch: 0u32,
2524};
2525pub const TM_BAKER_CONTEXT_API_VERSION: VersionT = VersionT {
2526    major: 1u32,
2527    minor: 0u32,
2528    patch: 0u32,
2529};
2530pub const TM_SCENE_COMMON_API_VERSION: VersionT = VersionT {
2531    major: 2u32,
2532    minor: 0u32,
2533    patch: 0u32,
2534};
2535pub const TM_VIEWER_MANAGER_API_VERSION: VersionT = VersionT {
2536    major: 2u32,
2537    minor: 0u32,
2538    patch: 0u32,
2539};
2540pub const TM_SCENE_TAB_COMMAND_I_VERSION: VersionT = VersionT {
2541    major: 1u32,
2542    minor: 0u32,
2543    patch: 0u32,
2544};
2545pub const TM_RENDER_CONTEXT_API_VERSION: VersionT = VersionT {
2546    major: 1u32,
2547    minor: 0u32,
2548    patch: 0u32,
2549};
2550pub const TM_THE_TRUTH_REPLACER_API_VERSION: VersionT = VersionT {
2551    major: 1u32,
2552    minor: 0u32,
2553    patch: 0u32,
2554};
2555pub const TM_ASSET_PREVIEW_API_VERSION: VersionT = VersionT {
2556    major: 2u32,
2557    minor: 0u32,
2558    patch: 0u32,
2559};
2560pub const TM_THE_TRUTH_STRIPPER_I_VERSION: VersionT = VersionT {
2561    major: 1u32,
2562    minor: 0u32,
2563    patch: 0u32,
2564};
2565pub const TM_FRUSTUM_CULLING_API_VERSION: VersionT = VersionT {
2566    major: 1u32,
2567    minor: 0u32,
2568    patch: 0u32,
2569};
2570pub const TM_GPU_SCENE_SUBMISSION_API_VERSION: VersionT = VersionT {
2571    major: 1u32,
2572    minor: 0u32,
2573    patch: 0u32,
2574};