pub struct PaintCallback {
pub rect: Rect,
pub callback: Arc<dyn Any + Sync + Send>,
}
Expand description
If you want to paint some 3D shapes inside an egui region, you can use this.
This is advanced usage, and is backend specific.
Fields§
§rect: Rect
Where to paint.
This will become PaintCallbackInfo::viewport
.
callback: Arc<dyn Any + Sync + Send>
Paint something custom (e.g. 3D stuff).
The concrete value of callback
depends on the rendering backend used. For instance, the
glow
backend requires that callback be an egui_glow::CallbackFn
while the wgpu
backend requires a egui_wgpu::Callback
.
If the type cannot be downcast to the type expected by the current backend the callback will not be drawn.
The rendering backend is responsible for first setting the active viewport to
Self::rect
.
The rendering backend is also responsible for restoring any state, such as the bound shader program, vertex array, etc.
Shape has to be clone, therefore this has to be an Arc
instead of a Box
.
Trait Implementations§
§impl Clone for PaintCallback
impl Clone for PaintCallback
§fn clone(&self) -> PaintCallback
fn clone(&self) -> PaintCallback
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for PaintCallback
impl Debug for PaintCallback
§impl From<PaintCallback> for Shape
impl From<PaintCallback> for Shape
§fn from(shape: PaintCallback) -> Shape
fn from(shape: PaintCallback) -> Shape
§impl PartialEq for PaintCallback
impl PartialEq for PaintCallback
§fn eq(&self, other: &PaintCallback) -> bool
fn eq(&self, other: &PaintCallback) -> bool
self
and other
values to be equal, and is used
by ==
.Auto Trait Implementations§
impl Freeze for PaintCallback
impl !RefUnwindSafe for PaintCallback
impl Send for PaintCallback
impl Sync for PaintCallback
impl Unpin for PaintCallback
impl !UnwindSafe for PaintCallback
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> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request