[][src]Enum processing::draw_parameters::DepthTest

pub enum DepthTest {
    Ignore,
    Overwrite,
    IfEqual,
    IfNotEqual,
    IfMore,
    IfMoreOrEqual,
    IfLess,
    IfLessOrEqual,
}

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.

Methods

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 PartialEq<DepthTest> for DepthTest[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl Clone for DepthTest[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for DepthTest[src]

impl Copy for DepthTest[src]

impl Eq for DepthTest[src]

Auto Trait Implementations

impl Send for DepthTest

impl Sync for DepthTest

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Content for T where
    T: Copy
[src]

type Owned = T

A type that holds a sized version of the content.

impl<T> Scalar for T where
    T: Copy + PartialEq<T> + Any + Debug
[src]

fn is<T>() -> bool where
    T: Scalar
[src]

Tests if Self the same as the type T Read more

impl<T> Same for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf for SP where
    SS: SubsetOf<SP>, 

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.

impl<T> Erased for T[src]