X-Git-Url: http://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/c336603df0c87a23fa41c0bd5c342d53ca2e396c..7a9046e942bc1f880f121f0be7e05ef80a0270c8:/src/engine/texture.c diff --git a/src/engine/texture.c b/src/engine/texture.c index 0364664..499a397 100644 --- a/src/engine/texture.c +++ b/src/engine/texture.c @@ -23,6 +23,7 @@ #include #include #include "texture.h" +#include "palette.h" #include "upkg.h" #define TEXTURE_GET_PRIV(o) \ @@ -32,6 +33,11 @@ enum { PROP_0, PROP_USIZE, PROP_VSIZE, + PROP_UCLAMP, + PROP_VCLAMP, + PROP_UBITS, + PROP_VBITS, + PROP_PALETTE, }; struct texture_priv { @@ -48,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) { @@ -57,8 +63,6 @@ static int deserialize(UObject *uo) U_OBJECT_CLASS(engine_texture_parent_class)->deserialize(uo); - printf("Texture size: %ux%u\n", t->usize, t->vsize); - return 0; } @@ -79,6 +83,21 @@ set_property(GObject *o, guint id, const GValue *val, GParamSpec *spec) case PROP_VSIZE: t->vsize = g_value_get_uint(val); break; + case PROP_UCLAMP: + t->uclamp = g_value_get_uint(val); + break; + case PROP_VCLAMP: + t->vclamp = g_value_get_uint(val); + break; + case PROP_UBITS: + t->ubits = g_value_get_uint(val); + break; + 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); } @@ -96,6 +115,21 @@ get_property(GObject *o, guint id, GValue *val, GParamSpec *spec) case PROP_VSIZE: g_value_set_uint(val, t->vsize); break; + case PROP_UCLAMP: + g_value_set_uint(val, t->uclamp); + break; + case PROP_VCLAMP: + g_value_set_uint(val, t->vclamp); + break; + case PROP_UBITS: + g_value_set_uint(val, t->ubits); + break; + 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); } @@ -129,6 +163,36 @@ static void engine_texture_class_init(EngineTextureClass *class) "Height of the texture.", 0, 2048, 0, G_PARAM_READWRITE)); + g_object_class_install_property(go, PROP_UCLAMP, + g_param_spec_uint("UClamp", + "UClamp", + "???", + 0, 2048, 0, + G_PARAM_READWRITE)); + g_object_class_install_property(go, PROP_VCLAMP, + g_param_spec_uint("VClamp", + "VClamp", + "???", + 0, 2048, 0, + G_PARAM_READWRITE)); + g_object_class_install_property(go, PROP_UBITS, + g_param_spec_uint("UBits", + "UBits", + "???", + 0, 64, 0, + G_PARAM_READWRITE)); + g_object_class_install_property(go, PROP_VBITS, + g_param_spec_uint("VBits", + "VBits", + "???", + 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)