]> git.tdb.fi Git - libs/gl.git/commitdiff
Adjust uniform organization for UnlitMaterial
authorMikko Rasa <tdb@tdb.fi>
Sat, 20 Mar 2021 13:37:12 +0000 (15:37 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sat, 20 Mar 2021 14:39:45 +0000 (16:39 +0200)
Its only property are now stored in a struct to match other material
types.  This allows using the name "color" without conflicting with the
vertex attribute.  The texture uniform was also renamed in order to
avoid clashing with the texture() function.

shaderlib/unlit.glsl
source/materials/unlitmaterial.cpp
source/materials/unlitmaterial.h

index 57be8b1ba1acc571b7d0dbbbdcd691a1d1a7dd96..85275558b399346b8b1a89758b80ac52ea9d3458 100644 (file)
@@ -1,19 +1,28 @@
 import msp_interface;
 import common;
 
-uniform sampler2D texture;
-uniform vec4 tint;
+struct UnlitMaterialParameters
+{
+       vec4 color;
+};
+
+uniform UnlitMaterial
+{
+       UnlitMaterialParameters unlit_material;
+};
+
+uniform sampler2D color_tex;
 
 layout(constant_id=auto) const bool use_texture = false;
 layout(constant_id=auto) const bool use_vertex_color = false;
 layout(constant_id=auto) const bool use_fog = false;
 
 #pragma MSP stage(fragment)
-vec4 get_color()
+virtual vec4 get_color()
 {
-       vec4 result = tint;
+       vec4 result = unlit_material.color;
        if(use_texture)
-               result *= texture(texture, texcoord.xy);
+               result *= texture(color_tex, texcoord.xy);
        if(use_vertex_color)
                result *= color;
        return result;
index 9aded2522972250cc76b1efcc3b0a745916b4461..e81be8ae136c3b8a915ef3b440b4c6946ffd5cb0 100644 (file)
@@ -9,7 +9,7 @@ UnlitMaterial::UnlitMaterial():
        texture(0),
        vertex_color(false)
 {
-       set_tint(Color(1.0f));
+       set_color(Color(1.0f));
 }
 
 void UnlitMaterial::fill_program_info(string &module_name, map<string, int> &spec_values) const
@@ -21,7 +21,7 @@ void UnlitMaterial::fill_program_info(string &module_name, map<string, int> &spe
 
 void UnlitMaterial::attach_textures_to(Texturing &texturing, ProgramData &tex_shdata) const
 {
-       attach_texture_to(texture, texturing, tex_shdata, "texture");
+       attach_texture_to(texture, texturing, tex_shdata, "color_tex");
 }
 
 void UnlitMaterial::set_texture(const Texture *tex)
@@ -29,10 +29,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)
@@ -59,7 +59,7 @@ void UnlitMaterial::Loader::init_actions()
 {
        Material::PropertyLoader<UnlitMaterial>::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);
 }
 
index 22e226917da00298d7c8934f3adedae0eed86c0e..a98b12844c5ae1fa1bfa3653cf89953117620026 100644 (file)
@@ -26,7 +26,7 @@ public:
 
 private:
        const Texture *texture;
-       Color tint;
+       Color color;
        bool vertex_color;
 
 public:
@@ -39,7 +39,7 @@ public:
        virtual void attach_textures_to(Texturing &, ProgramData &) const;
 
        void set_texture(const Texture *);
-       void set_tint(const Color &);
+       void set_color(const Color &);
        void set_vertex_color(bool);
 };