pub enum ProgramCreationInput<'a> {
SourceCode {
vertex_shader: &'a str,
tessellation_control_shader: Option<&'a str>,
tessellation_evaluation_shader: Option<&'a str>,
geometry_shader: Option<&'a str>,
fragment_shader: &'a str,
transform_feedback_varyings: Option<(Vec<String>, TransformFeedbackMode)>,
outputs_srgb: bool,
uses_point_size: bool,
},
Binary {
data: Binary,
outputs_srgb: bool,
uses_point_size: bool,
},
SpirV(SpirvProgram<'a>),
}Expand description
Input when creating a program.
Variants§
SourceCode
Use GLSL source code.
Fields
§
tessellation_control_shader: Option<&'a str>Source code of the optional tessellation control shader.
§
tessellation_evaluation_shader: Option<&'a str>Source code of the optional tessellation evaluation shader.
§
transform_feedback_varyings: Option<(Vec<String>, TransformFeedbackMode)>The list of variables and mode to use for transform feedback.
The information specified here will be passed to the OpenGL linker. If you pass
None, then you won’t be able to use transform feedback.
Binary
Use a precompiled binary.
SpirV(SpirvProgram<'a>)
Use a SPIR-V binary.
Trait Implementations§
Source§impl<'a> From<Binary> for ProgramCreationInput<'a>
impl<'a> From<Binary> for ProgramCreationInput<'a>
Source§fn from(binary: Binary) -> ProgramCreationInput<'a>
fn from(binary: Binary) -> ProgramCreationInput<'a>
Converts to this type from the input type.
Source§impl<'a> From<SourceCode<'a>> for ProgramCreationInput<'a>
impl<'a> From<SourceCode<'a>> for ProgramCreationInput<'a>
Source§fn from(code: SourceCode<'a>) -> ProgramCreationInput<'a>
fn from(code: SourceCode<'a>) -> ProgramCreationInput<'a>
Converts to this type from the input type.
Auto Trait Implementations§
impl<'a> Freeze for ProgramCreationInput<'a>
impl<'a> RefUnwindSafe for ProgramCreationInput<'a>
impl<'a> Send for ProgramCreationInput<'a>
impl<'a> Sync for ProgramCreationInput<'a>
impl<'a> Unpin for ProgramCreationInput<'a>
impl<'a> UnwindSafe for ProgramCreationInput<'a>
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> 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.