[−][src]Enum glium::draw_parameters::DepthTest
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
Never replace the target pixel.
This option doesn't really make sense, but is here for completeness.
Always replace the target pixel.
This is the default mode.
Replace if the z-value of the source is equal to the destination.
Replace if the z-value of the source is different than the destination.
Replace if the z-value of the source is more than the destination.
Replace if the z-value of the source is more than, or equal to the destination.
Replace if the z-value of the source is less than the destination.
Replace if the z-value of the source is less than, or equal to the destination.
Implementations
impl DepthTest
[src]
pub fn requires_depth_buffer(&self) -> bool
[src]
Returns true if the function requires a depth buffer to be used.
Trait Implementations
impl Clone for DepthTest
[src]
impl Copy for DepthTest
[src]
impl Debug for DepthTest
[src]
impl Eq for DepthTest
[src]
impl PartialEq<DepthTest> for DepthTest
[src]
impl StructuralEq for DepthTest
[src]
impl StructuralPartialEq for DepthTest
[src]
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
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Content for T where
T: Copy,
[src]
T: Copy,
type Owned = T
A type that holds a sized version of the content.
fn read<F, E>(usize, F) -> Result<T, E> where
F: FnOnce(&mut T) -> Result<(), E>,
[src]
F: FnOnce(&mut T) -> Result<(), E>,
fn get_elements_size() -> usize
[src]
fn to_void_ptr(&Self) -> *const ()
[src]
fn ref_from_ptr(*mut (), usize) -> Option<*mut T>
[src]
fn is_size_suitable(usize) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,