1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// TODO Safety doc would be nice
//! G'day, and welcome to Hotham! 👋
//!
//! Hotham is an attempt to create a lightweight, high performance game engine for mobile VR headsets. It's primarily aimed at small (1-5 person) teams of mostly technical folk who are looking to create games for devices like the Oculus Quest, but find existing tools cumbersome to work with. You can learn more about the project [in the FAQ](https://github.com/leetvr/hotham/wiki/FAQ).
//!
//! # Getting started
//! Hotham is a complex project with many moving parts! Have no fear - we've written an easy to follow [Getting Started guide](https://github.com/leetvr/hotham/wiki/Getting-started) that will have you running our example application in no time. Head on over to [getting started](https://github.com/leetvr/hotham/wiki/Getting-started) to.. get.. started.
//!
//! # Sponsoring
//! Hotham's development is only possible thanks to the support of the community. It's currently being developed on full time by [@kanerogers](https://github.com/kanerogers) If you'd like to help make VR development in Rust possible, please [consider becoming a donor](https://github.com/sponsors/leetvr). 💗
pub use vk;
pub use openxr as xr;
pub use ;
pub use hecs;
pub use HothamError;
pub use nalgebra;
pub use rapier3d;
/// Components are data that are used to update the simulation and interact with the external world
/// A tool to import models from glTF files into Hotham
/// Resources are wrappers around some external state that the engine will interact with
/// Data used in the fragment shader
/// Systems are functions called each frame to update either the external state or the current simulation
/// Kitchen sink utility functions
/// Hotham result type
pub type HothamResult<T> = Result;
/// Format used for colour textures
pub const COLOR_FORMAT: Format = R8G8B8A8_SRGB;
/// Format used for depth textures
pub const DEPTH_FORMAT: Format = D32_SFLOAT;
/// Number of views
pub const VIEW_COUNT: u32 = 2;
/// Swapchain length
pub const SWAPCHAIN_LENGTH: usize = 3;
/// OpenXR view type
pub const VIEW_TYPE: ViewConfigurationType = PRIMARY_STEREO;
/// OpenXR blend mode
pub const BLEND_MODE: EnvironmentBlendMode = OPAQUE;
/// Vulkan depth attachment usage flags
pub const DEPTH_ATTACHMENT_USAGE_FLAGS: ImageUsageFlags =
DEPTH_STENCIL_ATTACHMENT;