pub struct FullscreenPass { /* private fields */ }Expand description
A game-owned procedural effect. Send + Sync for the compositor
thread. Rebuilt from the snapshot every frame (same pattern as the
sprite batch): uniforms refresh each prepare, texture uploads ride
along only on change frames.
Implementations§
Source§impl FullscreenPass
impl FullscreenPass
Sourcepub fn new(
id: impl Into<String>,
wgsl: &'static str,
desc: FullscreenDesc,
) -> Self
pub fn new( id: impl Into<String>, wgsl: &'static str, desc: FullscreenDesc, ) -> Self
id disambiguates pipelines when several passes share one app;
wgsl must follow the module binding contract above.
Sourcepub fn set_uniform_bytes(&mut self, bytes: &[u8])
pub fn set_uniform_bytes(&mut self, bytes: &[u8])
Replace the uniform buffer contents (raw bytes).
Sourcepub fn set_uniform_f32(&mut self, words: &[f32])
pub fn set_uniform_f32(&mut self, words: &[f32])
Replace the uniform buffer contents (f32 words).
Sourcepub fn extend_textures(
&mut self,
uploads: impl IntoIterator<Item = FullscreenTexture>,
)
pub fn extend_textures( &mut self, uploads: impl IntoIterator<Item = FullscreenTexture>, )
Queue texture uploads, applied in the next prepare.
Source§impl FullscreenPass
impl FullscreenPass
Sourcepub fn prepare_with(
&self,
device: &Device,
queue: &Queue,
screen: &ScreenDescriptor,
resources: &mut CallbackResources,
uniforms: &[u8],
uploads: &[FullscreenTexture],
) -> Vec<CommandBuffer>
pub fn prepare_with( &self, device: &Device, queue: &Queue, screen: &ScreenDescriptor, resources: &mut CallbackResources, uniforms: &[u8], uploads: &[FullscreenTexture], ) -> Vec<CommandBuffer>
Prepare with explicit data instead of the stored snapshot. Lets game-owned passes (custom snapshot types) delegate without rebuilding engine state: same pipeline, same draw calls.
Trait Implementations§
Source§impl WgpuCallback for FullscreenPass
impl WgpuCallback for FullscreenPass
Source§fn prepare(
&self,
device: &Device,
queue: &Queue,
_encoder: &mut CommandEncoder,
screen: &ScreenDescriptor,
resources: &mut CallbackResources,
) -> Vec<CommandBuffer>
fn prepare( &self, device: &Device, queue: &Queue, _encoder: &mut CommandEncoder, screen: &ScreenDescriptor, resources: &mut CallbackResources, ) -> Vec<CommandBuffer>
Called before the main
repose render pass, with access to device/queue/encoder
for buffer uploads. Can return extra command buffers to be submitted.fn paint( &self, _info: PaintCallbackInfo, rpass: &mut RenderPass<'static>, resources: &CallbackResources, )
Source§fn finish_prepare(
&self,
_device: &Device,
_queue: &Queue,
_encoder: &mut CommandEncoder,
_screen_descriptor: &ScreenDescriptor,
_resources: &mut CallbackResources,
) -> Vec<CommandBuffer>
fn finish_prepare( &self, _device: &Device, _queue: &Queue, _encoder: &mut CommandEncoder, _screen_descriptor: &ScreenDescriptor, _resources: &mut CallbackResources, ) -> Vec<CommandBuffer>
Called after all
prepare calls, before paint. For cross-callback sync.Auto Trait Implementations§
impl Freeze for FullscreenPass
impl RefUnwindSafe for FullscreenPass
impl Send for FullscreenPass
impl Sync for FullscreenPass
impl Unpin for FullscreenPass
impl UnsafeUnpin for FullscreenPass
impl UnwindSafe for FullscreenPass
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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.