class ShaderProgramFactory
Defined at line 19 of file ../../src/ui/lib/escher/vk/shader_program_factory.h
ShaderProgramFactory is a |Trait| that clients use to obtain ShaderPrograms.
Subclasses must override GetProgram(), and will typically lazily-generate and
cache these programs.
Public Methods
ShaderProgramPtr GetComputeProgram (std::string compute_shader_path, ShaderVariantArgs args)
Return a compute program whose code is specified by |compute_shader_path|.
Defined at line 13 of file ../../src/ui/lib/escher/vk/shader_program_factory.cc
ShaderProgramPtr GetGraphicsProgram (std::stringvertex_shader_path,std::stringfragment_shader_path,ShaderVariantArgsargs)
Return a graphics program which has only vertex and fragment shader stages;
The fragment shader path may be empty: this is used for depth-only passes.
Defined at line 24 of file ../../src/ui/lib/escher/vk/shader_program_factory.cc
ShaderProgramPtr GetGraphicsProgram (std::stringvertex_shader_path,std::stringtessellation_control_shader_path,std::stringtessellation_evaluation_shader_path,std::stringgeometry_shader_path,std::stringfragment_shader_path,ShaderVariantArgsargs)
Return a graphics program containing all shader stages that a non-empty
path is provided for.
Defined at line 45 of file ../../src/ui/lib/escher/vk/shader_program_factory.cc
ShaderProgramPtr GetProgram (ShaderProgramData program_data)
Convenience helper function that calls the pure virtual function |GetProgram|. Can be used
for both compute and graphics shaders.
Defined at line 36 of file ../../src/ui/lib/escher/vk/shader_program_factory.cc
Protected Methods
void ~ShaderProgramFactory ()
Defined at line 11 of file ../../src/ui/lib/escher/vk/shader_program_factory.cc
ShaderProgramPtr GetProgramImpl (const std::string[6] shader_paths, ShaderVariantArgs args)
Subclasses must implement this. The array index of each path corresponds
to a value in the ShaderStage enum; each non-empty path provides the source
code for the corresponding shader stage.