Owns named shader programs and materials.
More...
#include <ShaderLibrary.hpp>
|
| | ShaderLibrary ()=default |
| Shader * | load_source (const std::string &name, const std::string &vertex_src, const std::string &pixel_src) |
| | Compile GLSL source and register it. Null + logged on failure.
|
| Shader * | load_files (const std::string &name, const Path &vertex_path, const Path &pixel_path) |
| | Compile GLSL from files and register it. Null + logged on failure.
|
| Shader * | add (const std::string &name, Shader *shader) |
| | Register an already-built shader (takes ownership).
|
| Shader * | get (const std::string &name) const |
| bool | has (const std::string &name) const |
| Shader * | default_shader () |
| | The default Allegro program, created on first use. Always valid.
|
| Material * | create_material (const std::string &name, const std::string &shader_name) |
| | Create a material bound to a registered shader (null if missing).
|
| Material * | material (const std::string &name) const |
| std::vector< std::string > | shader_names () const |
| std::vector< std::string > | material_names () const |
Owns named shader programs and materials.
This is the registry the engine/editor talk to instead of juggling raw Shader pointers. Shaders are owned here (unique_ptr); materials reference them. Loading reports compile/link failures (and returns null) so a broken shader never silently produces a blank screen.
◆ ShaderLibrary()
| turbo::ShaderLibrary::ShaderLibrary |
( |
| ) |
|
|
default |
◆ add()
| Shader * turbo::ShaderLibrary::add |
( |
const std::string & | name, |
|
|
Shader * | shader ) |
Register an already-built shader (takes ownership).
◆ create_material()
| Material * turbo::ShaderLibrary::create_material |
( |
const std::string & | name, |
|
|
const std::string & | shader_name ) |
Create a material bound to a registered shader (null if missing).
◆ default_shader()
| Shader * turbo::ShaderLibrary::default_shader |
( |
| ) |
|
The default Allegro program, created on first use. Always valid.
◆ get()
| Shader * turbo::ShaderLibrary::get |
( |
const std::string & | name | ) |
const |
◆ has()
| bool turbo::ShaderLibrary::has |
( |
const std::string & | name | ) |
const |
◆ load_files()
| Shader * turbo::ShaderLibrary::load_files |
( |
const std::string & | name, |
|
|
const Path & | vertex_path, |
|
|
const Path & | pixel_path ) |
Compile GLSL from files and register it. Null + logged on failure.
◆ load_source()
| Shader * turbo::ShaderLibrary::load_source |
( |
const std::string & | name, |
|
|
const std::string & | vertex_src, |
|
|
const std::string & | pixel_src ) |
Compile GLSL source and register it. Null + logged on failure.
◆ material()
| Material * turbo::ShaderLibrary::material |
( |
const std::string & | name | ) |
const |
◆ material_names()
| std::vector< std::string > turbo::ShaderLibrary::material_names |
( |
| ) |
const |
◆ shader_names()
| std::vector< std::string > turbo::ShaderLibrary::shader_names |
( |
| ) |
const |
The documentation for this class was generated from the following files: