Struct truck_rendimpl::PolygonState
source · pub struct PolygonState {
pub matrix: Matrix4,
pub material: Material,
pub texture: Option<Arc<Texture>>,
pub backface_culling: bool,
}
Expand description
Configures of instances.
Fields§
§matrix: Matrix4
instance matrix
material: Material
material of instance
texture: Option<Arc<Texture>>
texture of instance
backface_culling: bool
If this parameter is true, the backface culling will be activated.
Implementations§
source§impl PolygonState
impl PolygonState
sourcepub fn matrix_buffer(&self, device: &Device) -> BufferHandler
pub fn matrix_buffer(&self, device: &Device) -> BufferHandler
Creates a UNIFORM
buffer of instance matrix.
The bind group provided by the instances holds this uniform buffer.
Shader Examples
layout(set = 1, binding = 0) uniform ModelMatrix {
mat4 uniform_matrix;
};
Examples found in repository?
src/polygon_instance.rs (line 56)
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
fn non_textured_bg(&self, device: &Device, layout: &BindGroupLayout) -> BindGroup {
bind_group_util::create_bind_group(
device,
layout,
vec![
self.state.matrix_buffer(device).binding_resource(),
self.state.material.buffer(device).binding_resource(),
],
)
}
#[inline(always)]
fn textured_bg(&self, device: &Device, layout: &BindGroupLayout) -> BindGroup {
let (view, sampler) = self.state.textureview_and_sampler(device);
bind_group_util::create_bind_group(
device,
layout,
vec![
self.state.matrix_buffer(device).binding_resource(),
self.state.material.buffer(device).binding_resource(),
BindingResource::TextureView(&view),
BindingResource::Sampler(&sampler),
],
)
}
sourcepub fn material_buffer(&self, device: &Device) -> BufferHandler
pub fn material_buffer(&self, device: &Device) -> BufferHandler
Creates a UNIFORM
buffer of material.
The bind group provided by the instances holds this uniform buffer.
Shader Examples
layout(set = 1, binding = 1) uniform Material {
vec4 albedo;
float roughness;
float reflectance;
float ambient_ratio;
};
sourcepub fn textureview_and_sampler(&self, device: &Device) -> (TextureView, Sampler)
pub fn textureview_and_sampler(&self, device: &Device) -> (TextureView, Sampler)
Creates texture view and sampler of the instance’s texture image.
The bind group provided by the instances holds this uniform buffer.
Shader Examples
layout(set = 1, binding = 2) uniform texture2D texture_view;
layout(set = 1, binding = 3) uniform sampler texture_sampler;
Examples found in repository?
src/polygon_instance.rs (line 63)
62 63 64 65 66 67 68 69 70 71 72 73 74
fn textured_bg(&self, device: &Device, layout: &BindGroupLayout) -> BindGroup {
let (view, sampler) = self.state.textureview_and_sampler(device);
bind_group_util::create_bind_group(
device,
layout,
vec![
self.state.matrix_buffer(device).binding_resource(),
self.state.material.buffer(device).binding_resource(),
BindingResource::TextureView(&view),
BindingResource::Sampler(&sampler),
],
)
}
Trait Implementations§
source§impl Clone for PolygonState
impl Clone for PolygonState
source§fn clone(&self) -> PolygonState
fn clone(&self) -> PolygonState
Returns a copy 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 moresource§impl Debug for PolygonState
impl Debug for PolygonState
source§impl Default for PolygonState
impl Default for PolygonState
source§fn default() -> PolygonState
fn default() -> PolygonState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for PolygonState
impl Send for PolygonState
impl Sync for PolygonState
impl Unpin for PolygonState
impl !UnwindSafe for PolygonState
Blanket Implementations§
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for Pwhere
R: Read + ReadEndian<P>,
P: Default,
impl<R, P> ReadPrimitive<R> for Pwhere
R: Read + ReadEndian<P>,
P: Default,
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian()
.