Struct bevy_egui::EguiContexts
source · pub struct EguiContexts<'w, 's> { /* private fields */ }
Expand description
A helper SystemParam that provides a way to get [EguiContext]
with less boilerplate and
combines a proxy interface to the EguiUserTextures
resource.
Implementations§
source§impl<'w, 's> EguiContexts<'w, 's>
impl<'w, 's> EguiContexts<'w, 's>
sourcepub fn ctx_for_window_mut(&mut self, window: Entity) -> &mut Context
pub fn ctx_for_window_mut(&mut self, window: Entity) -> &mut Context
Egui context for a specific window.
sourcepub fn try_ctx_for_window_mut(&mut self, window: Entity) -> Option<&mut Context>
pub fn try_ctx_for_window_mut(&mut self, window: Entity) -> Option<&mut Context>
Fallible variant of EguiContexts::ctx_for_window_mut
.
sourcepub fn ctx_for_windows_mut<const N: usize>(
&mut self,
ids: [Entity; N]
) -> Result<[&mut Context; N], QueryEntityError>
pub fn ctx_for_windows_mut<const N: usize>( &mut self, ids: [Entity; N] ) -> Result<[&mut Context; N], QueryEntityError>
Allows to get multiple contexts at the same time. This function is useful when you want
to get multiple window contexts without using the immutable_ctx
feature.
sourcepub fn ctx(&self) -> &Context
pub fn ctx(&self) -> &Context
Egui context of the primary window.
Even though the mutable borrow isn’t necessary, as the context is wrapped into RwLock
,
using the immutable getter is gated with the immutable_ctx
feature. Using the immutable
borrow is discouraged as it may cause unpredictable blocking in UI systems.
When the context is queried with &mut EguiContext
, the Bevy scheduler is able to make
sure that the context isn’t accessed concurrently and can perform other useful work
instead of busy-waiting.
sourcepub fn ctx_for_window(&self, window: Entity) -> &Context
pub fn ctx_for_window(&self, window: Entity) -> &Context
Egui context for a specific window.
Even though the mutable borrow isn’t necessary, as the context is wrapped into RwLock
,
using the immutable getter is gated with the immutable_ctx
feature. Using the immutable
borrow is discouraged as it may cause unpredictable blocking in UI systems.
When the context is queried with &mut EguiContext
, the Bevy scheduler is able to make
sure that the context isn’t accessed concurrently and can perform other useful work
instead of busy-waiting.
sourcepub fn try_ctx_for_window(&self, window: Entity) -> Option<&Context>
pub fn try_ctx_for_window(&self, window: Entity) -> Option<&Context>
Fallible variant of EguiContexts::ctx_for_window_mut
.
Even though the mutable borrow isn’t necessary, as the context is wrapped into RwLock
,
using the immutable getter is gated with the immutable_ctx
feature. Using the immutable
borrow is discouraged as it may cause unpredictable blocking in UI systems.
When the context is queried with &mut EguiContext
, the Bevy scheduler is able to make
sure that the context isn’t accessed concurrently and can perform other useful work
instead of busy-waiting.
sourcepub fn add_image(&mut self, image: Handle<Image>) -> TextureId
pub fn add_image(&mut self, image: Handle<Image>) -> TextureId
Can accept either a strong or a weak handle.
You may want to pass a weak handle if you control removing texture assets in your application manually and you don’t want to bother with cleaning up textures in Egui.
You’ll want to pass a strong handle if a texture is used only in Egui and there are no handle copies stored anywhere else.
sourcepub fn remove_image(&mut self, image: &Handle<Image>) -> Option<TextureId>
pub fn remove_image(&mut self, image: &Handle<Image>) -> Option<TextureId>
Removes the image handle and an Egui texture id associated with it.
Trait Implementations§
source§impl SystemParam for EguiContexts<'_, '_>
impl SystemParam for EguiContexts<'_, '_>
§type Item<'w, 's> = EguiContexts<'w, 's>
type Item<'w, 's> = EguiContexts<'w, 's>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State
fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State
World
] access used by this [SystemParam
]
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut Self::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut Self::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
], registers the components accessed by this [SystemParam
] (if applicable).source§fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
SystemParam
]’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut Self::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> Self::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> Self::Item<'w, 's>
SystemParamFunction
. Read moreimpl<'w, 's> ReadOnlySystemParam for EguiContexts<'w, 's>where
Query<'w, 's, (Entity, &'static mut EguiContext, Option<&'static PrimaryWindow>), With<Window>>: ReadOnlySystemParam,
ResMut<'w, EguiUserTextures>: ReadOnlySystemParam,
Auto Trait Implementations§
impl<'w, 's> !RefUnwindSafe for EguiContexts<'w, 's>
impl<'w, 's> Send for EguiContexts<'w, 's>
impl<'w, 's> Sync for EguiContexts<'w, 's>
impl<'w, 's> Unpin for EguiContexts<'w, 's>
impl<'w, 's> !UnwindSafe for EguiContexts<'w, 's>
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist.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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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.