summaryrefslogtreecommitdiff
path: root/src/shader.h
diff options
context:
space:
mode:
authorRealBadAngel <maciej.kasatkin@o2.pl>2014-05-14 23:19:31 +0200
committerRealBadAngel <maciej.kasatkin@o2.pl>2014-06-15 05:40:33 +0200
commit6c98fd6658fcf7c0c676ee88f03e364c852e9f1b (patch)
tree01a6a17c00730bd2744a2394f36950ba83b10107 /src/shader.h
parent9ffa88b558498a139488679ef2ed8767c8540471 (diff)
downloadminetest-6c98fd6658fcf7c0c676ee88f03e364c852e9f1b.tar.gz
minetest-6c98fd6658fcf7c0c676ee88f03e364c852e9f1b.tar.bz2
minetest-6c98fd6658fcf7c0c676ee88f03e364c852e9f1b.zip
Unite nodes shaders.
Pass drawtype and material type to shaders. Move shaders generation to startup only. Allow assign shaders per tile. Initial code to support water surface shader.
Diffstat (limited to 'src/shader.h')
-rw-r--r--src/shader.h28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/shader.h b/src/shader.h
index 579cef635..811f33080 100644
--- a/src/shader.h
+++ b/src/shader.h
@@ -46,9 +46,15 @@ std::string getShaderPath(const std::string &name_of_shader,
struct ShaderInfo
{
std::string name;
+ video::E_MATERIAL_TYPE base_material;
video::E_MATERIAL_TYPE material;
+ u8 drawtype;
+ u8 material_type;
+ s32 user_data;
- ShaderInfo(): name(""), material(video::EMT_SOLID) {}
+ ShaderInfo(): name(""), base_material(video::EMT_SOLID),
+ material(video::EMT_SOLID),
+ drawtype(0), material_type(0) {}
virtual ~ShaderInfo() {}
};
@@ -77,11 +83,11 @@ class IShaderSource
public:
IShaderSource(){}
virtual ~IShaderSource(){}
- virtual u32 getShaderId(const std::string &name){return 0;}
- virtual u32 getShaderIdDirect(const std::string &name){return 0;}
- virtual std::string getShaderName(u32 id){return "";}
- virtual ShaderInfo getShader(u32 id){return ShaderInfo();}
- virtual ShaderInfo getShader(const std::string &name){return ShaderInfo();}
+ virtual u32 getShaderIdDirect(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
+ virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();}
+ virtual u32 getShader(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
};
class IWritableShaderSource : public IShaderSource
@@ -89,11 +95,11 @@ class IWritableShaderSource : public IShaderSource
public:
IWritableShaderSource(){}
virtual ~IWritableShaderSource(){}
- virtual u32 getShaderId(const std::string &name){return 0;}
- virtual u32 getShaderIdDirect(const std::string &name){return 0;}
- virtual std::string getShaderName(u32 id){return "";}
- virtual ShaderInfo getShader(u32 id){return ShaderInfo();}
- virtual ShaderInfo getShader(const std::string &name){return ShaderInfo();}
+ virtual u32 getShaderIdDirect(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
+ virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();}
+ virtual u32 getShader(const std::string &name,
+ const u8 material_type, const u8 drawtype){return 0;}
virtual void processQueue()=0;
virtual void insertSourceShader(const std::string &name_of_shader,