]> git.draconx.ca Git - upkg.git/blobdiff - src/engine/texture.c
engine: Include object headers as <engine/xyz.h>.
[upkg.git] / src / engine / texture.c
index f0f0aaa0edab4c6e97cf8d096c24288c076596fb..90cca6e7444dae5874553820e95f9825ae5f5a90 100644 (file)
@@ -22,7 +22,8 @@
 
 #include <uobject/uobject.h>
 #include <uobject/exportable.h>
-#include "texture.h"
+#include <engine/texture.h>
+#include <engine/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 {
@@ -52,7 +54,7 @@ void exportable_init(UObjectExportable *e)
 {
 }
 
-G_DEFINE_DYNAMIC_TYPE(EngineTexture, engine_texture, U_OBJECT_TYPE);
+G_DEFINE_DYNAMIC_TYPE(EngineTexture, engine_texture, U_TYPE_OBJECT);
 
 static int deserialize(UObject *uo)
 {
@@ -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)