X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fshader.h;h=811f33080d8453091da09889f1e8831730d813fc;hb=87291ea44a61614d5bd9efc0657926da3f867b5f;hp=a62569602e1ac94dc3c329edda3a2be01841b05f;hpb=2bdff11d5472e4e5299c4e4e25e128b0869367a8;p=oweals%2Fminetest.git diff --git a/src/shader.h b/src/shader.h index a62569602..811f33080 100644 --- a/src/shader.h +++ b/src/shader.h @@ -4,16 +4,16 @@ Copyright (C) 2013 celeron55, Perttu Ahola Copyright (C) 2013 Kahrl This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Lesser General Public License for more details. -You should have received a copy of the GNU General Public License along +You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ @@ -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,