Struct three_d::MeshProgram [−][src]
A shader program used for rendering one or more instances of a Mesh. It has a fixed vertex shader and customizable fragment shader for custom lighting. Use this in combination with render.
Implementations
impl MeshProgram
[src]
pub fn new(
context: &Context,
fragment_shader_source: &str
) -> Result<Self, Error>
[src]
context: &Context,
fragment_shader_source: &str
) -> Result<Self, Error>
Constructs a new shader program for rendering meshes. The fragment shader can use the fragments position by adding in vec3 pos;
,
its normal by in vec3 nor;
, its uv coordinates by in vec2 uvs;
and its per vertex color by in vec4 col;
to the shader source code.
Methods from Deref<Target = Program>
pub fn use_uniform_int(&self, name: &str, data: &i32) -> Result<(), Error>
[src]
pub fn use_uniform_float(&self, name: &str, data: &f32) -> Result<(), Error>
[src]
pub fn use_uniform_vec2(&self, name: &str, data: &Vec2) -> Result<(), Error>
[src]
pub fn use_uniform_vec3(&self, name: &str, data: &Vec3) -> Result<(), Error>
[src]
pub fn use_uniform_vec4(&self, name: &str, data: &Vec4) -> Result<(), Error>
[src]
pub fn use_uniform_mat2(&self, name: &str, data: &Mat2) -> Result<(), Error>
[src]
pub fn use_uniform_mat3(&self, name: &str, data: &Mat3) -> Result<(), Error>
[src]
pub fn use_uniform_mat4(&self, name: &str, data: &Mat4) -> Result<(), Error>
[src]
pub fn use_texture(
&self,
texture: &dyn Texture,
texture_name: &str
) -> Result<(), Error>
[src]
&self,
texture: &dyn Texture,
texture_name: &str
) -> Result<(), Error>
pub fn use_uniform_block(&self, buffer: &UniformBuffer, block_name: &str)
[src]
pub fn use_attribute(
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
pub fn use_attribute_divisor(
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
pub fn use_attribute_vec2(
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
pub fn use_attribute_vec2_divisor(
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
pub fn use_attribute_vec3(
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
pub fn use_attribute_vec3_divisor(
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
pub fn use_attribute_vec4(
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str
) -> Result<(), Error>
pub fn use_attribute_vec4_divisor(
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
[src]
&self,
buffer: &VertexBuffer,
attribute_name: &str,
divisor: usize
) -> Result<(), Error>
pub fn draw_arrays(
&self,
render_states: RenderStates,
viewport: Viewport,
count: u32
)
[src]
&self,
render_states: RenderStates,
viewport: Viewport,
count: u32
)
pub fn draw_arrays_instanced(
&self,
render_states: RenderStates,
viewport: Viewport,
count: u32,
instance_count: u32
)
[src]
&self,
render_states: RenderStates,
viewport: Viewport,
count: u32,
instance_count: u32
)
pub fn draw_elements(
&self,
render_states: RenderStates,
viewport: Viewport,
element_buffer: &ElementBuffer
)
[src]
&self,
render_states: RenderStates,
viewport: Viewport,
element_buffer: &ElementBuffer
)
pub fn draw_subset_of_elements(
&self,
render_states: RenderStates,
viewport: Viewport,
element_buffer: &ElementBuffer,
first: u32,
count: u32
)
[src]
&self,
render_states: RenderStates,
viewport: Viewport,
element_buffer: &ElementBuffer,
first: u32,
count: u32
)
pub fn draw_elements_instanced(
&self,
render_states: RenderStates,
viewport: Viewport,
element_buffer: &ElementBuffer,
count: u32
)
[src]
&self,
render_states: RenderStates,
viewport: Viewport,
element_buffer: &ElementBuffer,
count: u32
)
Trait Implementations
impl Deref for MeshProgram
[src]
Auto Trait Implementations
impl !RefUnwindSafe for MeshProgram
impl !Send for MeshProgram
impl !Sync for MeshProgram
impl Unpin for MeshProgram
impl UnwindSafe for MeshProgram
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,
pub fn borrow_mut(&mut self) -> &mut T
[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, 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.
pub 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>,