move shaders in examples into consts
This commit is contained in:
		
							parent
							
								
									5aeb3b937b
								
							
						
					
					
						commit
						5ea979dd0e
					
				| @ -13,6 +13,31 @@ struct MyMaterial { | |||||||
|     pub color: Color, |     pub color: Color, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | const VERTEX_SHADER: &str = r#" | ||||||
|  | #version 450 | ||||||
|  | layout(location = 0) in vec3 Vertex_Position; | ||||||
|  | layout(set = 0, binding = 0) uniform Camera { | ||||||
|  |     mat4 ViewProj; | ||||||
|  | }; | ||||||
|  | layout(set = 1, binding = 0) uniform Object { | ||||||
|  |     mat4 Model; | ||||||
|  | }; | ||||||
|  | void main() { | ||||||
|  |     gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0); | ||||||
|  | } | ||||||
|  | "#;
 | ||||||
|  | 
 | ||||||
|  | const FRAGMENT_SHADER: &str = r#" | ||||||
|  | #version 450 | ||||||
|  | layout(location = 0) out vec4 o_Target; | ||||||
|  | layout(set = 1, binding = 1) uniform MyMaterial_color { | ||||||
|  |     vec4 color; | ||||||
|  | }; | ||||||
|  | void main() { | ||||||
|  |     o_Target = color; | ||||||
|  | } | ||||||
|  | "#;
 | ||||||
|  | 
 | ||||||
| fn setup( | fn setup( | ||||||
|     command_buffer: &mut CommandBuffer, |     command_buffer: &mut CommandBuffer, | ||||||
|     mut pipelines: ResMut<Assets<PipelineDescriptor>>, |     mut pipelines: ResMut<Assets<PipelineDescriptor>>, | ||||||
| @ -24,35 +49,8 @@ fn setup( | |||||||
|     // create new shader pipeline and add to main pass in Render Graph
 |     // create new shader pipeline and add to main pass in Render Graph
 | ||||||
|     let pipeline_handle = { |     let pipeline_handle = { | ||||||
|         let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages { |         let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages { | ||||||
|             vertex: shaders.add(Shader::from_glsl( |             vertex: shaders.add(Shader::from_glsl(ShaderStage::Vertex, VERTEX_SHADER)), | ||||||
|                 ShaderStage::Vertex, |             fragment: Some(shaders.add(Shader::from_glsl(ShaderStage::Fragment, FRAGMENT_SHADER))), | ||||||
|                 r#" |  | ||||||
|                 #version 450 |  | ||||||
|                 layout(location = 0) in vec3 Vertex_Position; |  | ||||||
|                 layout(set = 0, binding = 0) uniform Camera { |  | ||||||
|                     mat4 ViewProj; |  | ||||||
|                 }; |  | ||||||
|                 layout(set = 1, binding = 0) uniform Object { |  | ||||||
|                     mat4 Model; |  | ||||||
|                 }; |  | ||||||
|                 void main() { |  | ||||||
|                     gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0); |  | ||||||
|                 } |  | ||||||
|             "#,
 |  | ||||||
|             )), |  | ||||||
|             fragment: Some(shaders.add(Shader::from_glsl( |  | ||||||
|                 ShaderStage::Fragment, |  | ||||||
|                 r#" |  | ||||||
|                 #version 450 |  | ||||||
|                 layout(location = 0) out vec4 o_Target; |  | ||||||
|                 layout(set = 1, binding = 1) uniform MyMaterial_color { |  | ||||||
|                     vec4 color; |  | ||||||
|                 }; |  | ||||||
|                 void main() { |  | ||||||
|                     o_Target = color; |  | ||||||
|                 } |  | ||||||
|             "#,
 |  | ||||||
|             ))), |  | ||||||
|         })); |         })); | ||||||
| 
 | 
 | ||||||
|         render_graph.add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true)); |         render_graph.add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true)); | ||||||
|  | |||||||
| @ -19,6 +19,35 @@ struct MyMaterial { | |||||||
|     pub always_red: bool, |     pub always_red: bool, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | const VERTEX_SHADER: &str = r#" | ||||||
|  | #version 450 | ||||||
|  | layout(location = 0) in vec3 Vertex_Position; | ||||||
|  | layout(set = 0, binding = 0) uniform Camera { | ||||||
|  |     mat4 ViewProj; | ||||||
|  | }; | ||||||
|  | layout(set = 1, binding = 0) uniform Object { | ||||||
|  |     mat4 Model; | ||||||
|  | }; | ||||||
|  | void main() { | ||||||
|  |     gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0); | ||||||
|  | } | ||||||
|  | "#;
 | ||||||
|  | 
 | ||||||
|  | const FRAGMENT_SHADER: &str = r#" | ||||||
|  | #version 450 | ||||||
|  | layout(location = 0) out vec4 o_Target; | ||||||
|  | layout(set = 1, binding = 1) uniform MyMaterial_color { | ||||||
|  |     vec4 color; | ||||||
|  | }; | ||||||
|  | void main() { | ||||||
|  |     o_Target = color; | ||||||
|  | 
 | ||||||
|  | # ifdef MYMATERIAL_ALWAYS_RED | ||||||
|  |     o_Target = vec4(0.8, 0.0, 0.0, 1.0); | ||||||
|  | # endif | ||||||
|  | } | ||||||
|  | "#;
 | ||||||
|  | 
 | ||||||
| fn setup( | fn setup( | ||||||
|     command_buffer: &mut CommandBuffer, |     command_buffer: &mut CommandBuffer, | ||||||
|     mut pipelines: ResMut<Assets<PipelineDescriptor>>, |     mut pipelines: ResMut<Assets<PipelineDescriptor>>, | ||||||
| @ -30,39 +59,8 @@ fn setup( | |||||||
|     // create new shader pipeline and add to main pass in Render Graph
 |     // create new shader pipeline and add to main pass in Render Graph
 | ||||||
|     let pipeline_handle = { |     let pipeline_handle = { | ||||||
|         let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages { |         let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages { | ||||||
|             vertex: shaders.add(Shader::from_glsl( |             vertex: shaders.add(Shader::from_glsl(ShaderStage::Vertex, VERTEX_SHADER)), | ||||||
|                 ShaderStage::Vertex, |             fragment: Some(shaders.add(Shader::from_glsl(ShaderStage::Fragment, FRAGMENT_SHADER))), | ||||||
|                 r#" |  | ||||||
|                 #version 450 |  | ||||||
|                 layout(location = 0) in vec3 Vertex_Position; |  | ||||||
|                 layout(set = 0, binding = 0) uniform Camera { |  | ||||||
|                     mat4 ViewProj; |  | ||||||
|                 }; |  | ||||||
|                 layout(set = 1, binding = 0) uniform Object { |  | ||||||
|                     mat4 Model; |  | ||||||
|                 }; |  | ||||||
|                 void main() { |  | ||||||
|                     gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0); |  | ||||||
|                 } |  | ||||||
|                 "#,
 |  | ||||||
|             )), |  | ||||||
|             fragment: Some(shaders.add(Shader::from_glsl( |  | ||||||
|                 ShaderStage::Fragment, |  | ||||||
|                 r#" |  | ||||||
|                 #version 450 |  | ||||||
|                 layout(location = 0) out vec4 o_Target; |  | ||||||
|                 layout(set = 1, binding = 1) uniform MyMaterial_color { |  | ||||||
|                     vec4 color; |  | ||||||
|                 }; |  | ||||||
|                 void main() { |  | ||||||
|                     o_Target = color; |  | ||||||
| 
 |  | ||||||
|                 # ifdef MYMATERIAL_ALWAYS_RED |  | ||||||
|                     o_Target = vec4(0.8, 0.0, 0.0, 1.0); |  | ||||||
|                 # endif |  | ||||||
|                 } |  | ||||||
|                 "#,
 |  | ||||||
|             ))), |  | ||||||
|         })); |         })); | ||||||
|         render_graph.add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true)); |         render_graph.add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true)); | ||||||
|         let main_pass: &mut PassNode = render_graph.get_node_mut("main_pass").unwrap(); |         let main_pass: &mut PassNode = render_graph.get_node_mut("main_pass").unwrap(); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Carter Anderson
						Carter Anderson