]> git.draconx.ca Git - upkg.git/blobdiff - src/engine/texture.c
uobject: Add initial support for object properties.
[upkg.git] / src / engine / texture.c
index f0f0aaa0edab4c6e97cf8d096c24288c076596fb..db6edd02487c6d4a93464a7aa6d2738400b49cc2 100644 (file)
@@ -23,6 +23,7 @@
 #include <uobject/uobject.h>
 #include <uobject/exportable.h>
 #include "texture.h"
+#include "palette.h"
 #include "upkg.h"
 
 #define TEXTURE_GET_PRIV(o) \
@@ -36,6 +37,7 @@ enum {
        PROP_VCLAMP,
        PROP_UBITS,
        PROP_VBITS,
+       PROP_PALETTE,
 };
 
 struct texture_priv {
@@ -93,6 +95,9 @@ set_property(GObject *o, guint id, const GValue *val, GParamSpec *spec)
        case PROP_VBITS:
                t->vbits = g_value_get_uint(val);
                break;
+       case PROP_PALETTE:
+               t->palette = g_value_get_object(val);
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID(o, id, spec);
        }
@@ -122,6 +127,9 @@ get_property(GObject *o, guint id, GValue *val, GParamSpec *spec)
        case PROP_VBITS:
                g_value_set_uint(val, t->vbits);
                break;
+       case PROP_PALETTE:
+               g_value_set_object(val, t->palette);
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID(o, id, spec);
        }
@@ -179,6 +187,12 @@ static void engine_texture_class_init(EngineTextureClass *class)
                        "???",
                        0, 64, 0,
                        G_PARAM_READWRITE));
+       g_object_class_install_property(go, PROP_PALETTE,
+               g_param_spec_object("Palette",
+                       "Palette",
+                       "Palette reference for the texture.",
+                       ENGINE_PALETTE_TYPE,
+                       G_PARAM_READWRITE));
 }
 
 static void engine_texture_class_finalize(EngineTextureClass *class)