pub struct PluginContext<'a, 'b> {Show 14 fields
pub scenes: &'a mut SceneContainer,
pub resource_manager: &'a ResourceManager,
pub user_interfaces: &'a mut UiContainer,
pub graphics_context: &'a mut GraphicsContext,
pub dt: f32,
pub lag: &'b mut f32,
pub serialization_context: &'a Arc<SerializationContext>,
pub widget_constructors: &'a Arc<WidgetConstructorContainer>,
pub performance_statistics: &'a PerformanceStatistics,
pub elapsed_time: f32,
pub script_processor: &'a ScriptProcessor,
pub async_scene_loader: &'a mut AsyncSceneLoader,
pub window_target: Option<&'b EventLoopWindowTarget<()>>,
pub task_pool: &'a mut TaskPoolHandler,
}
Expand description
Contains plugin environment.
Fields§
§scenes: &'a mut SceneContainer
A reference to scene container of the engine. You can add new scenes from Plugin
methods
by using SceneContainer::add
.
resource_manager: &'a ResourceManager
A reference to the resource manager, it can be used to load various resources and manage
them. See ResourceManager
docs for more info.
user_interfaces: &'a mut UiContainer
A reference to user interface container of the engine. The engine guarantees that there’s
at least one user interface exists. Use context.user_interfaces.first()/first_mut()
to
get a reference to it.
graphics_context: &'a mut GraphicsContext
A reference to the graphics_context, it contains a reference to the window and the current renderer.
It could be GraphicsContext::Uninitialized
if your application is suspended (possible only on
Android; it is safe to call GraphicsContext::as_initialized_ref
or GraphicsContext::as_initialized_mut
on every other platform).
dt: f32
The time (in seconds) that passed since last call of a method in which the context was
passed. It has fixed value that is defined by a caller (in most cases it is Executor
).
lag: &'b mut f32
A reference to time accumulator, that holds remaining amount of time that should be used
to update a plugin. A caller splits lag
into multiple sub-steps using dt
and thus
stabilizes update rate. The main use of this variable, is to be able to reset lag
when
you doing some heavy calculations in a your game loop (i.e. loading a new level) so the
engine won’t try to “catch up” with all the time that was spent in heavy calculation.
serialization_context: &'a Arc<SerializationContext>
A reference to serialization context of the engine. See SerializationContext
for more
info.
widget_constructors: &'a Arc<WidgetConstructorContainer>
A reference to serialization context of the engine. See WidgetConstructorContainer
for more
info.
performance_statistics: &'a PerformanceStatistics
Performance statistics from the last frame.
elapsed_time: f32
Amount of time (in seconds) that passed from creation of the engine. Keep in mind, that this value is not guaranteed to match real time. A user can change delta time with which the engine “ticks” and this delta time affects elapsed time.
script_processor: &'a ScriptProcessor
Script processor is used to run script methods in a strict order.
async_scene_loader: &'a mut AsyncSceneLoader
Asynchronous scene loader. It is used to request scene loading. See AsyncSceneLoader
docs
for usage example.
window_target: Option<&'b EventLoopWindowTarget<()>>
Special field that associates main application event loop (not game loop) with OS-specific windows. It also can be used to alternate control flow of the application.
task_pool: &'a mut TaskPoolHandler
Task pool for asynchronous task management.
Auto Trait Implementations§
impl<'a, 'b> Freeze for PluginContext<'a, 'b>
impl<'a, 'b> !RefUnwindSafe for PluginContext<'a, 'b>
impl<'a, 'b> !Send for PluginContext<'a, 'b>
impl<'a, 'b> !Sync for PluginContext<'a, 'b>
impl<'a, 'b> Unpin for PluginContext<'a, 'b>
impl<'a, 'b> !UnwindSafe for PluginContext<'a, 'b>
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
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>
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>
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)
&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)
&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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Any
. Could be used to downcast a trait object
to a particular type.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Any
. Could be used to downcast a trait object
to a particular type.fn into_any(self: Box<T>) -> Box<dyn Any>
Source§impl<T> FieldValue for Twhere
T: 'static,
impl<T> FieldValue for Twhere
T: 'static,
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> ⓘ
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> ⓘ
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>
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.