Struct three_d::core::render_target::DepthTarget
source · pub struct DepthTarget<'a> { /* private fields */ }
Expand description
Adds additional functionality to clear, read from and write to a texture.
Use the as_depth_target
function directly on the texture structs (for example DepthTexture2D) to construct a depth target.
Combine this together with a ColorTarget with RenderTarget::new to be able to write to both a depth and color target at the same time.
A depth target purely adds functionality, so it can be created each time it is needed, the actual data is saved in the texture.
Implementations§
source§impl<'a> DepthTarget<'a>
impl<'a> DepthTarget<'a>
sourcepub fn clear(&self, clear_state: ClearState) -> &Self
pub fn clear(&self, clear_state: ClearState) -> &Self
Clears the depth of this depth target as defined by the given clear state.
sourcepub fn clear_partially(
&self,
scissor_box: ScissorBox,
clear_state: ClearState
) -> &Self
pub fn clear_partially( &self, scissor_box: ScissorBox, clear_state: ClearState ) -> &Self
Clears the depth of the part of this depth target that is inside the given scissor box.
sourcepub fn write<E: Error>(
&self,
render: impl FnOnce() -> Result<(), E>
) -> Result<&Self, E>
pub fn write<E: Error>( &self, render: impl FnOnce() -> Result<(), E> ) -> Result<&Self, E>
Writes whatever rendered in the render
closure into this depth target.
sourcepub fn write_partially<E: Error>(
&self,
scissor_box: ScissorBox,
render: impl FnOnce() -> Result<(), E>
) -> Result<&Self, E>
pub fn write_partially<E: Error>( &self, scissor_box: ScissorBox, render: impl FnOnce() -> Result<(), E> ) -> Result<&Self, E>
Writes whatever rendered in the render
closure into the part of this depth target defined by the scissor box.
sourcepub fn read_partially(&self, scissor_box: ScissorBox) -> Vec<f32>
pub fn read_partially(&self, scissor_box: ScissorBox) -> Vec<f32>
Returns the depth values in this depth target inside the given scissor box.
source§impl<'a> DepthTarget<'a>
impl<'a> DepthTarget<'a>
sourcepub fn scissor_box(&self) -> ScissorBox
pub fn scissor_box(&self) -> ScissorBox
Returns the scissor box that encloses the entire target.
source§impl<'a> DepthTarget<'a>
impl<'a> DepthTarget<'a>
sourcepub fn render(
&self,
camera: &Camera,
objects: impl IntoIterator<Item = impl Object>,
lights: &[&dyn Light]
) -> &Self
pub fn render( &self, camera: &Camera, objects: impl IntoIterator<Item = impl Object>, lights: &[&dyn Light] ) -> &Self
Render the objects using the given camera and lights into this render target.
Use an empty array for the lights
argument, if the objects does not require lights to be rendered.
Also, objects outside the camera frustum are not rendered and the objects are rendered in the order given by cmp_render_order.
sourcepub fn render_partially(
&self,
scissor_box: ScissorBox,
camera: &Camera,
objects: impl IntoIterator<Item = impl Object>,
lights: &[&dyn Light]
) -> &Self
pub fn render_partially( &self, scissor_box: ScissorBox, camera: &Camera, objects: impl IntoIterator<Item = impl Object>, lights: &[&dyn Light] ) -> &Self
Render the objects using the given camera and lights into the part of this render target defined by the scissor box.
Use an empty array for the lights
argument, if the objects does not require lights to be rendered.
Also, objects outside the camera frustum are not rendered and the objects are rendered in the order given by cmp_render_order.
sourcepub fn render_with_material(
&self,
material: &dyn Material,
camera: &Camera,
geometries: impl IntoIterator<Item = impl Geometry>,
lights: &[&dyn Light]
) -> &Self
pub fn render_with_material( &self, material: &dyn Material, camera: &Camera, geometries: impl IntoIterator<Item = impl Geometry>, lights: &[&dyn Light] ) -> &Self
Render the geometries with the given Material using the given camera and lights into this render target.
Use an empty array for the lights
argument, if the material does not require lights to be rendered.
sourcepub fn render_partially_with_material(
&self,
scissor_box: ScissorBox,
material: &dyn Material,
camera: &Camera,
geometries: impl IntoIterator<Item = impl Geometry>,
lights: &[&dyn Light]
) -> &Self
pub fn render_partially_with_material( &self, scissor_box: ScissorBox, material: &dyn Material, camera: &Camera, geometries: impl IntoIterator<Item = impl Geometry>, lights: &[&dyn Light] ) -> &Self
Render the geometries with the given Material using the given camera and lights into the part of this render target defined by the scissor box.
Use an empty array for the lights
argument, if the material does not require lights to be rendered.
sourcepub fn render_with_effect(
&self,
effect: &dyn Effect,
camera: &Camera,
geometries: impl IntoIterator<Item = impl Geometry>,
lights: &[&dyn Light],
color_texture: Option<ColorTexture<'_>>,
depth_texture: Option<DepthTexture<'_>>
) -> &Self
pub fn render_with_effect( &self, effect: &dyn Effect, camera: &Camera, geometries: impl IntoIterator<Item = impl Geometry>, lights: &[&dyn Light], color_texture: Option<ColorTexture<'_>>, depth_texture: Option<DepthTexture<'_>> ) -> &Self
Render the geometries with the given Effect using the given camera and lights into this render target.
Use an empty array for the lights
argument, if the effect does not require lights to be rendered.
sourcepub fn render_partially_with_effect(
&self,
scissor_box: ScissorBox,
effect: &dyn Effect,
camera: &Camera,
geometries: impl IntoIterator<Item = impl Geometry>,
lights: &[&dyn Light],
color_texture: Option<ColorTexture<'_>>,
depth_texture: Option<DepthTexture<'_>>
) -> &Self
pub fn render_partially_with_effect( &self, scissor_box: ScissorBox, effect: &dyn Effect, camera: &Camera, geometries: impl IntoIterator<Item = impl Geometry>, lights: &[&dyn Light], color_texture: Option<ColorTexture<'_>>, depth_texture: Option<DepthTexture<'_>> ) -> &Self
Render the geometries with the given Effect using the given camera and lights into the part of this render target defined by the scissor box.
Use an empty array for the lights
argument, if the effect does not require lights to be rendered.
sourcepub fn apply_screen_material(
&self,
material: &dyn Material,
camera: &Camera,
lights: &[&dyn Light]
) -> &Self
pub fn apply_screen_material( &self, material: &dyn Material, camera: &Camera, lights: &[&dyn Light] ) -> &Self
Apply the given Material to this render target.
Use an empty array for the lights
argument, if the material does not require lights to be rendered.
sourcepub fn apply_screen_material_partially(
&self,
scissor_box: ScissorBox,
material: &dyn Material,
camera: &Camera,
lights: &[&dyn Light]
) -> &Self
pub fn apply_screen_material_partially( &self, scissor_box: ScissorBox, material: &dyn Material, camera: &Camera, lights: &[&dyn Light] ) -> &Self
Apply the given Material to the part of this render target defined by the scissor box.
Use an empty array for the lights
argument, if the material does not require lights to be rendered.
sourcepub fn apply_screen_effect(
&self,
effect: &dyn Effect,
camera: &Camera,
lights: &[&dyn Light],
color_texture: Option<ColorTexture<'_>>,
depth_texture: Option<DepthTexture<'_>>
) -> &Self
pub fn apply_screen_effect( &self, effect: &dyn Effect, camera: &Camera, lights: &[&dyn Light], color_texture: Option<ColorTexture<'_>>, depth_texture: Option<DepthTexture<'_>> ) -> &Self
Apply the given Effect to this render target.
Use an empty array for the lights
argument, if the effect does not require lights to be rendered.
sourcepub fn apply_screen_effect_partially(
&self,
scissor_box: ScissorBox,
effect: &dyn Effect,
camera: &Camera,
lights: &[&dyn Light],
color_texture: Option<ColorTexture<'_>>,
depth_texture: Option<DepthTexture<'_>>
) -> &Self
pub fn apply_screen_effect_partially( &self, scissor_box: ScissorBox, effect: &dyn Effect, camera: &Camera, lights: &[&dyn Light], color_texture: Option<ColorTexture<'_>>, depth_texture: Option<DepthTexture<'_>> ) -> &Self
Apply the given Effect to the part of this render target defined by the scissor box.
Use an empty array for the lights
argument, if the effect does not require lights to be rendered.
Trait Implementations§
source§impl<'a> Clone for DepthTarget<'a>
impl<'a> Clone for DepthTarget<'a>
source§fn clone(&self) -> DepthTarget<'a>
fn clone(&self) -> DepthTarget<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more