move shaders in examples into consts
This commit is contained in:
parent
5aeb3b937b
commit
5ea979dd0e
@ -13,20 +13,7 @@ struct MyMaterial {
|
|||||||
pub color: Color,
|
pub color: Color,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup(
|
const VERTEX_SHADER: &str = r#"
|
||||||
command_buffer: &mut CommandBuffer,
|
|
||||||
mut pipelines: ResMut<Assets<PipelineDescriptor>>,
|
|
||||||
mut shaders: ResMut<Assets<Shader>>,
|
|
||||||
mut meshes: ResMut<Assets<Mesh>>,
|
|
||||||
mut materials: ResMut<Assets<MyMaterial>>,
|
|
||||||
mut render_graph: ResMut<RenderGraph>,
|
|
||||||
) {
|
|
||||||
// create new shader pipeline and add to main pass in Render Graph
|
|
||||||
let pipeline_handle = {
|
|
||||||
let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages {
|
|
||||||
vertex: shaders.add(Shader::from_glsl(
|
|
||||||
ShaderStage::Vertex,
|
|
||||||
r#"
|
|
||||||
#version 450
|
#version 450
|
||||||
layout(location = 0) in vec3 Vertex_Position;
|
layout(location = 0) in vec3 Vertex_Position;
|
||||||
layout(set = 0, binding = 0) uniform Camera {
|
layout(set = 0, binding = 0) uniform Camera {
|
||||||
@ -38,11 +25,9 @@ fn setup(
|
|||||||
void main() {
|
void main() {
|
||||||
gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0);
|
gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0);
|
||||||
}
|
}
|
||||||
"#,
|
"#;
|
||||||
)),
|
|
||||||
fragment: Some(shaders.add(Shader::from_glsl(
|
const FRAGMENT_SHADER: &str = r#"
|
||||||
ShaderStage::Fragment,
|
|
||||||
r#"
|
|
||||||
#version 450
|
#version 450
|
||||||
layout(location = 0) out vec4 o_Target;
|
layout(location = 0) out vec4 o_Target;
|
||||||
layout(set = 1, binding = 1) uniform MyMaterial_color {
|
layout(set = 1, binding = 1) uniform MyMaterial_color {
|
||||||
@ -51,8 +36,21 @@ fn setup(
|
|||||||
void main() {
|
void main() {
|
||||||
o_Target = color;
|
o_Target = color;
|
||||||
}
|
}
|
||||||
"#,
|
"#;
|
||||||
))),
|
|
||||||
|
fn setup(
|
||||||
|
command_buffer: &mut CommandBuffer,
|
||||||
|
mut pipelines: ResMut<Assets<PipelineDescriptor>>,
|
||||||
|
mut shaders: ResMut<Assets<Shader>>,
|
||||||
|
mut meshes: ResMut<Assets<Mesh>>,
|
||||||
|
mut materials: ResMut<Assets<MyMaterial>>,
|
||||||
|
mut render_graph: ResMut<RenderGraph>,
|
||||||
|
) {
|
||||||
|
// create new shader pipeline and add to main pass in Render Graph
|
||||||
|
let pipeline_handle = {
|
||||||
|
let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages {
|
||||||
|
vertex: shaders.add(Shader::from_glsl(ShaderStage::Vertex, VERTEX_SHADER)),
|
||||||
|
fragment: Some(shaders.add(Shader::from_glsl(ShaderStage::Fragment, FRAGMENT_SHADER))),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
render_graph.add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true));
|
render_graph.add_system_node("my_material", AssetUniformNode::<MyMaterial>::new(true));
|
||||||
|
|||||||
@ -19,20 +19,7 @@ struct MyMaterial {
|
|||||||
pub always_red: bool,
|
pub always_red: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup(
|
const VERTEX_SHADER: &str = r#"
|
||||||
command_buffer: &mut CommandBuffer,
|
|
||||||
mut pipelines: ResMut<Assets<PipelineDescriptor>>,
|
|
||||||
mut shaders: ResMut<Assets<Shader>>,
|
|
||||||
mut meshes: ResMut<Assets<Mesh>>,
|
|
||||||
mut materials: ResMut<Assets<MyMaterial>>,
|
|
||||||
mut render_graph: ResMut<RenderGraph>,
|
|
||||||
) {
|
|
||||||
// create new shader pipeline and add to main pass in Render Graph
|
|
||||||
let pipeline_handle = {
|
|
||||||
let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages {
|
|
||||||
vertex: shaders.add(Shader::from_glsl(
|
|
||||||
ShaderStage::Vertex,
|
|
||||||
r#"
|
|
||||||
#version 450
|
#version 450
|
||||||
layout(location = 0) in vec3 Vertex_Position;
|
layout(location = 0) in vec3 Vertex_Position;
|
||||||
layout(set = 0, binding = 0) uniform Camera {
|
layout(set = 0, binding = 0) uniform Camera {
|
||||||
@ -44,11 +31,9 @@ fn setup(
|
|||||||
void main() {
|
void main() {
|
||||||
gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0);
|
gl_Position = ViewProj * Model * vec4(Vertex_Position, 1.0);
|
||||||
}
|
}
|
||||||
"#,
|
"#;
|
||||||
)),
|
|
||||||
fragment: Some(shaders.add(Shader::from_glsl(
|
const FRAGMENT_SHADER: &str = r#"
|
||||||
ShaderStage::Fragment,
|
|
||||||
r#"
|
|
||||||
#version 450
|
#version 450
|
||||||
layout(location = 0) out vec4 o_Target;
|
layout(location = 0) out vec4 o_Target;
|
||||||
layout(set = 1, binding = 1) uniform MyMaterial_color {
|
layout(set = 1, binding = 1) uniform MyMaterial_color {
|
||||||
@ -61,8 +46,21 @@ fn setup(
|
|||||||
o_Target = vec4(0.8, 0.0, 0.0, 1.0);
|
o_Target = vec4(0.8, 0.0, 0.0, 1.0);
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
"#,
|
"#;
|
||||||
))),
|
|
||||||
|
fn setup(
|
||||||
|
command_buffer: &mut CommandBuffer,
|
||||||
|
mut pipelines: ResMut<Assets<PipelineDescriptor>>,
|
||||||
|
mut shaders: ResMut<Assets<Shader>>,
|
||||||
|
mut meshes: ResMut<Assets<Mesh>>,
|
||||||
|
mut materials: ResMut<Assets<MyMaterial>>,
|
||||||
|
mut render_graph: ResMut<RenderGraph>,
|
||||||
|
) {
|
||||||
|
// create new shader pipeline and add to main pass in Render Graph
|
||||||
|
let pipeline_handle = {
|
||||||
|
let pipeline_handle = pipelines.add(PipelineDescriptor::default_config(ShaderStages {
|
||||||
|
vertex: shaders.add(Shader::from_glsl(ShaderStage::Vertex, VERTEX_SHADER)),
|
||||||
|
fragment: Some(shaders.add(Shader::from_glsl(ShaderStage::Fragment, FRAGMENT_SHADER))),
|
||||||
}));
|
}));
|
||||||
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