Enum glium::draw_parameters::DepthTest
source · pub enum DepthTest {
Ignore,
Overwrite,
IfEqual,
IfNotEqual,
IfMore,
IfMoreOrEqual,
IfLess,
IfLessOrEqual,
}
Expand description
The function that the GPU will use to determine whether to write over an existing pixel on the target.
Depth buffers
After the fragment shader has been run, the GPU maps the output Z coordinates to the depth
range (which you can specify in the draw parameters) in order to obtain the depth value in
in window coordinates. This depth value is always between 0.0
and 1.0
.
In addition to the buffer where pixel colors are stored, you can also have a buffer
which contains the depth value of each pixel. Whenever the GPU tries to write a pixel,
it will first compare the depth value of the pixel to be written with the depth value that
is stored at this location. If depth_write
is set to true
in the draw parameters, it will
then write the depth value in the buffer.
The most common value for depth testing is to set depth_test
to IfLess
, and depth_write
to true
.
If you don’t have a depth buffer available, you can only pass Overwrite
. Glium detects if
you pass any other value and reports an error.
Variants§
Ignore
Never replace the target pixel.
This option doesn’t really make sense, but is here for completeness.
Overwrite
Always replace the target pixel.
This is the default mode.
IfEqual
Replace if the z-value of the source is equal to the destination.
IfNotEqual
Replace if the z-value of the source is different than the destination.
IfMore
Replace if the z-value of the source is more than the destination.
IfMoreOrEqual
Replace if the z-value of the source is more than, or equal to the destination.
IfLess
Replace if the z-value of the source is less than the destination.
IfLessOrEqual
Replace if the z-value of the source is less than, or equal to the destination.
Implementations§
Trait Implementations§
source§impl PartialEq<DepthTest> for DepthTest
impl PartialEq<DepthTest> for DepthTest
impl Copy for DepthTest
impl Eq for DepthTest
impl StructuralEq for DepthTest
impl StructuralPartialEq for DepthTest
Auto Trait Implementations§
impl RefUnwindSafe for DepthTest
impl Send for DepthTest
impl Sync for DepthTest
impl Unpin for DepthTest
impl UnwindSafe for DepthTest
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> Content for Twhere
T: Copy,
impl<T> Content for Twhere T: Copy,
source§fn read<F, E>(size: usize, f: F) -> Result<T, E>where
F: FnOnce(&mut T) -> Result<(), E>,
fn read<F, E>(size: usize, f: F) -> Result<T, E>where F: FnOnce(&mut T) -> Result<(), E>,
Owned
.