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 SceneContainerA reference to scene container of the engine. You can add new scenes from Plugin methods
by using SceneContainer::add.
resource_manager: &'a ResourceManagerA 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 UiContainerA 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 GraphicsContextA 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: f32The 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 f32A 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 PerformanceStatisticsPerformance statistics from the last frame.
elapsed_time: f32Amount 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 ScriptProcessorScript processor is used to run script methods in a strict order.
async_scene_loader: &'a mut AsyncSceneLoaderAsynchronous 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 TaskPoolHandlerTask 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> 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.