X-Git-Url: http://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/c49355663c73c1775c179ec6360d09ce0978bb97..6df203a00536662101ec4a4275ec84baa7527d79:/src/engine/texture.c diff --git a/src/engine/texture.c b/src/engine/texture.c index 362b0cb..7cf05fa 100644 --- a/src/engine/texture.c +++ b/src/engine/texture.c @@ -1,6 +1,6 @@ /* * upkg: tool for manipulating Unreal Tournament packages. - * Copyright (C) 2009 Nick Bowler + * Copyright © 2009-2011 Nick Bowler * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,8 @@ #include #include -#include "texture.h" +#include +#include #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); } @@ -91,10 +110,25 @@ get_property(GObject *o, guint id, GValue *val, GParamSpec *spec) switch (id) { case PROP_USIZE: - g_value_set_boolean(val, t->usize); + g_value_set_uint(val, t->usize); break; case PROP_VSIZE: - g_value_set_boolean(val, t->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_TYPE_PALETTE, + G_PARAM_READWRITE)); } static void engine_texture_class_finalize(EngineTextureClass *class)