pub struct PickingLayerProcessor {
    pub picking_target: Arc<DynamicResource<GpuTextureHandle, TextureDesc, GpuTextureInternal>>,
    /* private fields */
}
Expand description

Manages the rendering of the picking layer pass, its render targets & readback buffer.

The view builder creates this for every frame that requests a picking result.

Fields§

§picking_target: Arc<DynamicResource<GpuTextureHandle, TextureDesc, GpuTextureInternal>>

Implementations§

source§

impl PickingLayerProcessor

source

pub const PICKING_LAYER_FORMAT: TextureFormat = wgpu::TextureFormat::Rgba32Uint

The texture format used for the picking layer.

source

pub const PICKING_LAYER_DEPTH_FORMAT: TextureFormat = wgpu::TextureFormat::Depth32Float

The depth format used for the picking layer - f32 makes it easiest to deal with retrieved depth and is guaranteed to be copyable.

source

pub const PICKING_LAYER_MSAA_STATE: MultisampleState = _

source

pub const PICKING_LAYER_DEPTH_STATE: Option<DepthStencilState> = ViewBuilder::MAIN_TARGET_DEFAULT_DEPTH_STATE

source

pub fn new<T: 'static + Send + Sync>( ctx: &mut RenderContext, view_name: &DebugLabel, screen_resolution: UVec2, picking_rect: RectInt, frame_uniform_buffer_content: &FrameUniformBuffer, enable_picking_target_sampling: bool, readback_identifier: GpuReadbackIdentifier, readback_user_data: T ) -> Self

New picking layer for a given screen.

Note that out-of-bounds rectangles are allowed, the picking layer will not be clipped to the screen. This means that the content of the picking layer rectangle will behave as-if the screen was bigger, containing valid picking data. It’s up to the user when interpreting the picking data to do any required clipping.

enable_picking_target_sampling should be enabled only for debugging purposes. It allows to sample the picking layer texture in a shader.

source

pub fn begin_render_pass<'a>( &'a self, view_name: &DebugLabel, encoder: &'a mut CommandEncoder ) -> RenderPass<'a>

source

pub fn end_render_pass( self, encoder: &mut CommandEncoder, pools: &WgpuResourcePools ) -> Result<(), PickingLayerError>

source

pub fn next_readback_result<T: 'static + Send + Sync>( ctx: &RenderContext, identifier: GpuReadbackIdentifier ) -> Option<PickingResult<T>>

Returns the oldest received picking results for a given identifier and user data type.

It is recommended to call this method repeatedly until it returns None to ensure that all pending data is flushed.

Ready data that hasn’t been retrieved for more than a frame will be discarded.

See also crate::view_builder::ViewBuilder::schedule_picking_rect

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more