// Face3D shader — flat-shaded triangle fill for DXF 3DFACE entities. // // Vertex layout (28 bytes): // position [f32; 3] offset 0 12 B // color [f32; 4] offset 12 16 B struct Uniforms { view_proj: mat4x4, viewport: vec2, _pad: vec2, }; @group(0) @binding(0) var u: Uniforms; struct VertexIn { @location(0) position: vec3, @location(1) color: vec4, }; struct VertexOut { @builtin(position) clip_pos: vec4, @location(0) color: vec4, }; @vertex fn vs_main(v: VertexIn) -> VertexOut { var out: VertexOut; out.clip_pos = u.view_proj * vec4(v.position, 1.0); out.color = v.color; return out; } @fragment fn fs_main(in: VertexOut) -> @location(0) vec4 { return in.color; }