pub struct Engine {
pub frame_config: FrameConfig,
pub ray_config: RayConfig,
pub denoiser_enabled: bool,
pub denoiser_config: DenoiserConfig,
pub post_proc_config: PostProcConfig,
/* private fields */
}
Expand description
Blade Engine encapsulates all the context for applications, such as the GPU context, Ray-tracing context, EGUI integration, asset hub, physics context, task processing, and more.
Fields§
§frame_config: FrameConfig
§ray_config: RayConfig
§denoiser_enabled: bool
§denoiser_config: DenoiserConfig
§post_proc_config: PostProcConfig
Implementations§
Source§impl Engine
impl Engine
Sourcepub fn new(window: &Window, config: &Engine) -> Self
pub fn new(window: &Window, config: &Engine) -> Self
Create a new context based on a given window.
pub fn destroy(&mut self)
pub fn update(&mut self, dt: f32)
pub fn render( &mut self, camera: &FrameCamera, gui_primitives: &[ClippedPrimitive], gui_textures: &TexturesDelta, physical_size: PhysicalSize<u32>, scale_factor: f32, )
pub fn populate_hud(&mut self, ui: &mut Ui)
pub fn screen_aspect(&self) -> f32
pub fn add_object( &mut self, config: &Object, transform: Transform, dynamic_input: DynamicInput, ) -> ObjectHandle
pub fn wake_up(&mut self, object: ObjectHandle)
pub fn add_joint( &mut self, parent: ObjectHandle, child: ObjectHandle, desc: JointDesc, ) -> JointHandle
Sourcepub fn get_object_transform(
&self,
handle: ObjectHandle,
prediction: Prediction,
) -> Transform
pub fn get_object_transform( &self, handle: ObjectHandle, prediction: Prediction, ) -> Transform
Get the current object transform.
Since the simulation is done at fixed key frames, the position specifically at the current time needs to be predicted.
pub fn get_object_bounds(&self, handle: ObjectHandle) -> BoundingBox
pub fn apply_linear_impulse( &mut self, handle: ObjectHandle, impulse: Vector3<f32>, )
pub fn apply_angular_impulse( &mut self, handle: ObjectHandle, impulse: Vector3<f32>, )
pub fn teleport_object(&mut self, handle: ObjectHandle, transform: Transform)
pub fn set_joint_motor( &mut self, handle: JointHandle, axis: JointAxis, target_pos: f32, target_vel: f32, )
pub fn set_environment_map(&mut self, path: &str)
pub fn set_gravity(&mut self, force: f32)
pub fn set_average_luminosity(&mut self, avg_lum: f32)
pub fn set_debug_pixel(&mut self, mouse_pos: Option<[i32; 2]>)
Auto Trait Implementations§
impl !Freeze for Engine
impl !RefUnwindSafe for Engine
impl Send for Engine
impl !Sync for Engine
impl Unpin for Engine
impl !UnwindSafe for Engine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.