# vert_framework::modules::graphics::shader::color_mesh::ColorMeshShader Shader Source File. Code in this segment annotated with `rs,wgsl`, `rs,wgsl,vertex` or `rs,wgsl,fragment` will be assembled into a the vert_framework::modules::graphics::shader::color_mesh::ColorMeshShader Shader. ## Bind Groups ```rs,wgsl,ignore @group(0) @binding(0) var camera : Camera; struct Camera { view_pos : vec4, view_proj : mat4x4, } ``` ## Vertex, Instance and VertexOutput ```rs,wgsl,ignore struct Vertex { @location(0) pos: vec3, @location(1) color: vec4, } struct Instance { @location(2) col1: vec4, @location(3) col2: vec4, @location(4) col3: vec4, @location(5) translation: vec4, } struct VertexOutput { @builtin(position) clip_position: vec4, @location(0) color: vec4, } ``` ## Vertex Shader - Inputs: `vertex_index: u32`, `instance_index: u32`, `vertex: Vertex`, `instance: Instance` - Output: VertexOutput ```rs,wgsl,vertex // Code here will be inserted into the vertex shader. var output: VertexOutput; // set output.. return output; ``` ## Fragment Shader - Inputs: `position: vec4`, `front_facing: bool`, `frag_depth: f32`, `sample_index: u32`, `sample_mask: u32`, `in: VertexOutput` - Output: vec4 (The fragment color) ```rs,wgsl,fragment // Code here will be inserted into the fragment shader. return vec4(1.0,0.0,0.0,1.0); ``` ## Other Code ```rs,wgsl // Here you can define other structs functions that the parse will pick up on. ```