X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fmaterials%2Funlitmaterial.cpp;h=d5d99c01f2196a67ca6204ef8d7f9b22a34bebb4;hp=5eddd66997416438643003dd5efdc872a25ebbec;hb=ae45c0397e2cb8f0a01f2f31d01c95ff3870271e;hpb=2f198e3210714c7abac53bbe1be4d41b1ef85c14 diff --git a/source/materials/unlitmaterial.cpp b/source/materials/unlitmaterial.cpp index 5eddd669..d5d99c01 100644 --- a/source/materials/unlitmaterial.cpp +++ b/source/materials/unlitmaterial.cpp @@ -5,26 +5,32 @@ using namespace std; namespace Msp { namespace GL { +const Tag UnlitMaterial::texture_tags[] = +{ + Tag("color_tex"), + Tag() +}; + UnlitMaterial::UnlitMaterial(): texture(0), vertex_color(false) { - set_tint(Color(1.0f)); + set_color(Color(1.0f)); } -string UnlitMaterial::create_program_source() const +void UnlitMaterial::fill_program_info(string &module_name, map &spec_values) const { - string source = "import unlit;\n"; - if(texture) - source += "const bool use_texture = true;\n"; - if(vertex_color) - source += "const bool use_vertex_color = true;\n"; - return source; + module_name = "unlit.glsl"; + spec_values["use_texture"] = (texture!=0); + spec_values["use_vertex_color"] = vertex_color; } -void UnlitMaterial::attach_textures_to(Texturing &texturing, ProgramData &tex_shdata) const +const Texture *UnlitMaterial::get_texture(Tag tag) const { - attach_texture_to(texture, texturing, tex_shdata, "texture"); + if(tag==texture_tags[0]) + return texture; + else + return 0; } void UnlitMaterial::set_texture(const Texture *tex) @@ -32,10 +38,10 @@ void UnlitMaterial::set_texture(const Texture *tex) texture = tex; } -void UnlitMaterial::set_tint(const Color &t) +void UnlitMaterial::set_color(const Color &c) { - tint = t; - shdata.uniform("tint", tint); + color = c; + shdata.uniform("unlit_material.color", color); } void UnlitMaterial::set_vertex_color(bool vc) @@ -46,12 +52,6 @@ void UnlitMaterial::set_vertex_color(bool vc) DataFile::Loader::ActionMap UnlitMaterial::Loader::shared_actions; -UnlitMaterial::Loader::Loader(UnlitMaterial &m): - DerivedObjectLoader >(m) -{ - set_actions(shared_actions); -} - UnlitMaterial::Loader::Loader(UnlitMaterial &m, Collection &c): DerivedObjectLoader >(m, c) { @@ -62,7 +62,7 @@ void UnlitMaterial::Loader::init_actions() { Material::PropertyLoader::init_actions(); add("texture", &Loader::property_texture, &UnlitMaterial::set_texture); - add_property("tint", &UnlitMaterial::set_tint, 0, true); + add_property("color", &UnlitMaterial::set_color, 0, true); add("vertex_color", &UnlitMaterial::vertex_color); }