diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-12-01 03:02:16 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-12-02 00:46:18 +0200 |
commit | 27373919f4369c0c511f9f0ac66854b7f76e101d (patch) | |
tree | e830e623af8b51b72468f9aa04faf85210d66177 /src/shader.h | |
parent | 22e6fb7056dcc888e9ccf768fefb6c073077a3b5 (diff) | |
download | minetest-27373919f4369c0c511f9f0ac66854b7f76e101d.tar.gz minetest-27373919f4369c0c511f9f0ac66854b7f76e101d.tar.bz2 minetest-27373919f4369c0c511f9f0ac66854b7f76e101d.zip |
Implement a global shader parameter passing system and useful shaders
Diffstat (limited to 'src/shader.h')
-rw-r--r-- | src/shader.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/shader.h b/src/shader.h index d6a425311..774a17b20 100644 --- a/src/shader.h +++ b/src/shader.h @@ -52,6 +52,22 @@ struct ShaderInfo }; /* + Setter of constants for shaders +*/ + +namespace irr { namespace video { + class IMaterialRendererServices; +} } + +class IShaderConstantSetter +{ +public: + virtual ~IShaderConstantSetter(){}; + virtual void onSetConstants(video::IMaterialRendererServices *services, + bool is_highlevel) = 0; +}; + +/* ShaderSource creates and caches shaders. */ @@ -82,6 +98,7 @@ public: virtual void insertSourceShader(const std::string &name_of_shader, const std::string &filename, const std::string &program)=0; virtual void rebuildShaders()=0; + virtual void addGlobalConstantSetter(IShaderConstantSetter *setter)=0; }; IWritableShaderSource* createShaderSource(IrrlichtDevice *device); |