summaryrefslogtreecommitdiffstats
path: root/wgpu/src/triangle.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2023-06-29 08:09:45 +0200
committerLibravatar GitHub <noreply@github.com>2023-06-29 08:09:45 +0200
commitc6b583113da7c9d9ceaeb5a3bf676ae62d8931e1 (patch)
treeed833fab41f64c57a7522fea400ea42eec788e9f /wgpu/src/triangle.rs
parent8d65e40a1174ecb8225ce9973575bced36e7aeb5 (diff)
parent6921564c9f66e8103e19ec658099c5f5c32e8cc5 (diff)
downloadiced-c6b583113da7c9d9ceaeb5a3bf676ae62d8931e1.tar.gz
iced-c6b583113da7c9d9ceaeb5a3bf676ae62d8931e1.tar.bz2
iced-c6b583113da7c9d9ceaeb5a3bf676ae62d8931e1.zip
Merge pull request #1932 from iced-rs/generic-graphics-primitive
Backend-specific primitives
Diffstat (limited to 'wgpu/src/triangle.rs')
-rw-r--r--wgpu/src/triangle.rs75
1 files changed, 39 insertions, 36 deletions
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs
index 3f3635cf..d8b23dfe 100644
--- a/wgpu/src/triangle.rs
+++ b/wgpu/src/triangle.rs
@@ -393,7 +393,7 @@ impl Uniforms {
}
mod solid {
- use crate::graphics::primitive;
+ use crate::graphics::mesh;
use crate::graphics::Antialiasing;
use crate::triangle;
use crate::Buffer;
@@ -406,7 +406,7 @@ mod solid {
#[derive(Debug)]
pub struct Layer {
- pub vertices: Buffer<primitive::ColoredVertex2D>,
+ pub vertices: Buffer<mesh::SolidVertex2D>,
pub uniforms: Buffer<triangle::Uniforms>,
pub constants: wgpu::BindGroup,
}
@@ -493,38 +493,40 @@ mod solid {
),
});
- let pipeline = device.create_render_pipeline(
- &wgpu::RenderPipelineDescriptor {
- label: Some("iced_wgpu::triangle::solid pipeline"),
- layout: Some(&layout),
- vertex: wgpu::VertexState {
- module: &shader,
- entry_point: "solid_vs_main",
- buffers: &[wgpu::VertexBufferLayout {
- array_stride: std::mem::size_of::<
- primitive::ColoredVertex2D,
- >()
- as u64,
- step_mode: wgpu::VertexStepMode::Vertex,
- attributes: &wgpu::vertex_attr_array!(
- // Position
- 0 => Float32x2,
- // Color
- 1 => Float32x4,
- ),
- }],
+ let pipeline =
+ device.create_render_pipeline(
+ &wgpu::RenderPipelineDescriptor {
+ label: Some("iced_wgpu::triangle::solid pipeline"),
+ layout: Some(&layout),
+ vertex: wgpu::VertexState {
+ module: &shader,
+ entry_point: "solid_vs_main",
+ buffers: &[wgpu::VertexBufferLayout {
+ array_stride: std::mem::size_of::<
+ mesh::SolidVertex2D,
+ >(
+ )
+ as u64,
+ step_mode: wgpu::VertexStepMode::Vertex,
+ attributes: &wgpu::vertex_attr_array!(
+ // Position
+ 0 => Float32x2,
+ // Color
+ 1 => Float32x4,
+ ),
+ }],
+ },
+ fragment: Some(wgpu::FragmentState {
+ module: &shader,
+ entry_point: "solid_fs_main",
+ targets: &[triangle::fragment_target(format)],
+ }),
+ primitive: triangle::primitive_state(),
+ depth_stencil: None,
+ multisample: triangle::multisample_state(antialiasing),
+ multiview: None,
},
- fragment: Some(wgpu::FragmentState {
- module: &shader,
- entry_point: "solid_fs_main",
- targets: &[triangle::fragment_target(format)],
- }),
- primitive: triangle::primitive_state(),
- depth_stencil: None,
- multisample: triangle::multisample_state(antialiasing),
- multiview: None,
- },
- );
+ );
Self {
pipeline,
@@ -535,7 +537,8 @@ mod solid {
}
mod gradient {
- use crate::graphics::{primitive, Antialiasing};
+ use crate::graphics::mesh;
+ use crate::graphics::Antialiasing;
use crate::triangle;
use crate::Buffer;
@@ -547,7 +550,7 @@ mod gradient {
#[derive(Debug)]
pub struct Layer {
- pub vertices: Buffer<primitive::GradientVertex2D>,
+ pub vertices: Buffer<mesh::GradientVertex2D>,
pub uniforms: Buffer<triangle::Uniforms>,
pub constants: wgpu::BindGroup,
}
@@ -645,7 +648,7 @@ mod gradient {
entry_point: "gradient_vs_main",
buffers: &[wgpu::VertexBufferLayout {
array_stride: std::mem::size_of::<
- primitive::GradientVertex2D,
+ mesh::GradientVertex2D,
>()
as u64,
step_mode: wgpu::VertexStepMode::Vertex,