pub struct PipelineState {
pub program_key: u64,
pub dimension: DispatchDimension,
pub barrier_bits: u32,
pub ssbo_bindings: Vec<(u32, u32)>,
pub uniforms: Vec<UniformValue>,
}Expand description
Snapshot of the state needed for a compute dispatch.
Fields§
§program_key: u64Program cache key.
dimension: DispatchDimensionDispatch dimension.
barrier_bits: u32Barrier bits to issue after dispatch.
ssbo_bindings: Vec<(u32, u32)>SSBO bindings: (binding_index, buffer_raw_id).
uniforms: Vec<UniformValue>Uniform values.
Implementations§
Source§impl PipelineState
impl PipelineState
Sourcepub fn new(program_key: u64, dimension: DispatchDimension) -> Self
pub fn new(program_key: u64, dimension: DispatchDimension) -> Self
Create a new pipeline state.
Sourcepub fn set_uniform(&mut self, value: UniformValue) -> &mut Self
pub fn set_uniform(&mut self, value: UniformValue) -> &mut Self
Add a uniform.
Sourcepub fn set_barrier(&mut self, bits: u32) -> &mut Self
pub fn set_barrier(&mut self, bits: u32) -> &mut Self
Set barrier bits.
Sourcepub fn execute(&self, gl: &Context, cache: &PipelineCache)
pub fn execute(&self, gl: &Context, cache: &PipelineCache)
Execute this pipeline state: bind SSBOs, set uniforms, dispatch.
Trait Implementations§
Source§impl Clone for PipelineState
impl Clone for PipelineState
Source§fn clone(&self) -> PipelineState
fn clone(&self) -> PipelineState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PipelineState
impl RefUnwindSafe for PipelineState
impl Send for PipelineState
impl Sync for PipelineState
impl Unpin for PipelineState
impl UnsafeUnpin for PipelineState
impl UnwindSafe for PipelineState
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.