pub struct StateCacher { /* private fields */ }
Expand description

Keep track of the state of a command buffer builder, so that you don’t need to bind objects that were already bound.

Important: Executing a secondary command buffer invalidates the state of a command buffer builder. When you do so, you need to call invalidate().

Implementations

Builds a new StateCacher.

Resets the cache to its default state. You must call this after executing a secondary command buffer.

Compares the current state with incoming, and returns a new state that contains the states that differ and that need to be actually set in the command buffer builder.

This function also updates the state cacher. The state cacher assumes that the state changes are going to be performed after this function returns.

Starts the process of comparing a list of descriptor sets to the descriptor sets currently in cache.

After calling this function, call add for each set one by one. Then call compare in order to get the index of the first set to bind, or None if the sets were identical to what is in cache.

This process also updates the state cacher. The state cacher assumes that the state changes are going to be performed after the compare function returns.

Checks whether we need to bind a graphics pipeline. Returns StateCacherOutcome::AlreadyOk if the pipeline was already bound earlier, and StateCacherOutcome::NeedChange if you need to actually bind the pipeline.

This function also updates the state cacher. The state cacher assumes that the state changes are going to be performed after this function returns.

Checks whether we need to bind a compute pipeline. Returns StateCacherOutcome::AlreadyOk if the pipeline was already bound earlier, and StateCacherOutcome::NeedChange if you need to actually bind the pipeline.

This function also updates the state cacher. The state cacher assumes that the state changes are going to be performed after this function returns.

Starts the process of comparing a list of vertex buffers to the vertex buffers currently in cache.

After calling this function, call add for each set one by one. Then call compare in order to get the range of the vertex buffers to bind, or None if the sets were identical to what is in cache.

This process also updates the state cacher. The state cacher assumes that the state changes are going to be performed after the compare function returns.

Checks whether we need to bind an index buffer. Returns StateCacherOutcome::AlreadyOk if the index buffer was already bound earlier, and StateCacherOutcome::NeedChange if you need to actually bind the buffer.

This function also updates the state cacher. The state cacher assumes that the state changes are going to be performed after this function returns.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Builds a pointer to this type from a raw pointer.
Returns true if the size is suitable to store a type like this.
Returns the size of an individual element.

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.