@@ -15,10 +15,13 @@ impl ShaderCompilerBuilder {
1515 pub fn build ( self ) -> ShaderCompiler {
1616 let compiler =
1717 shaderc:: Compiler :: new ( ) . expect ( "Failed to create shaderc compiler." ) ;
18+
19+ let mut options = shaderc:: CompileOptions :: new ( )
20+ . expect ( "Failed to create shaderc compile options." ) ;
21+
1822 return ShaderCompiler {
1923 compiler,
20- default_options : shaderc:: CompileOptions :: new ( )
21- . expect ( "Failed to set the default shaderc compiler options" ) ,
24+ default_options : options,
2225 } ;
2326 }
2427}
@@ -84,8 +87,6 @@ impl ShaderCompiler {
8487 entry_point : & str ,
8588 shader_kind : ShaderKind ,
8689 ) -> Vec < u32 > {
87- // TODO(vmarcella): Investigate into common strategies for reading from files
88- // efficiently in Rust.
8990 let mut opened_shader_file = std:: fs:: File :: open ( path) . unwrap ( ) ;
9091 let mut shader_source = String :: new ( ) ;
9192 opened_shader_file
@@ -94,7 +95,13 @@ impl ShaderCompiler {
9495
9596 let compiled_shader = self
9697 . compiler
97- . compile_into_spirv ( & shader_source, shader_kind, path, entry_point, None )
98+ . compile_into_spirv (
99+ & shader_source,
100+ shader_kind,
101+ path,
102+ entry_point,
103+ Some ( & self . default_options ) ,
104+ )
98105 . expect ( "Failed to compile the shader." ) ;
99106 return compiled_shader. as_binary ( ) . to_vec ( ) ;
100107 }
@@ -109,8 +116,15 @@ impl ShaderCompiler {
109116 ) -> Vec < u32 > {
110117 let compiled_shader = self
111118 . compiler
112- . compile_into_spirv ( shader_source, shader_kind, name, entry_point, None )
119+ . compile_into_spirv (
120+ shader_source,
121+ shader_kind,
122+ name,
123+ entry_point,
124+ Some ( & self . default_options ) ,
125+ )
113126 . expect ( "Failed to compile the shader." ) ;
127+
114128 return compiled_shader. as_binary ( ) . to_vec ( ) ;
115129 }
116130}
0 commit comments