From 27373919f4369c0c511f9f0ac66854b7f76e101d Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 1 Dec 2012 03:02:16 +0200 Subject: Implement a global shader parameter passing system and useful shaders --- src/shader.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/shader.h') diff --git a/src/shader.h b/src/shader.h index d6a425311..774a17b20 100644 --- a/src/shader.h +++ b/src/shader.h @@ -51,6 +51,22 @@ struct ShaderInfo ShaderInfo(): name(""), material(video::EMT_SOLID) {} }; +/* + 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); -- cgit v1.2.3