3 #include <glib-object.h>
5 #include "exportable.h"
10 #define TEXTURE_GET_PRIV(o) \
11 G_TYPE_INSTANCE_GET_PRIVATE(o, ENGINE_TEXTURE_TYPE, struct texture_priv)
25 unsigned char buf[2048];
29 void exportable_init(UObjectExportable *e)
33 G_DEFINE_DYNAMIC_TYPE(EngineTexture, engine_texture, U_OBJECT_TYPE);
35 static int deserialize(UObject *o, struct upkg_file *f)
37 struct texture_priv *priv = TEXTURE_GET_PRIV(o);
38 EngineTexture *t = ENGINE_TEXTURE(o);
40 U_OBJECT_CLASS(engine_texture_parent_class)->deserialize(o, f);
42 printf("Texture size: %ux%u\n", t->usize, t->vsize);
47 void texture_register(GTypeModule *m)
49 engine_texture_register_type(m);
53 set_property(GObject *o, guint id, const GValue *val, GParamSpec *spec)
55 EngineTexture *t = ENGINE_TEXTURE(o);
59 t->usize = g_value_get_uint(val);
62 t->vsize = g_value_get_uint(val);
65 G_OBJECT_WARN_INVALID_PROPERTY_ID(o, id, spec);
70 get_property(GObject *o, guint id, GValue *val, GParamSpec *spec)
72 EngineTexture *t = ENGINE_TEXTURE(o);
76 g_value_set_boolean(val, t->usize);
79 g_value_set_boolean(val, t->vsize);
82 G_OBJECT_WARN_INVALID_PROPERTY_ID(o, id, spec);
86 static void engine_texture_init(EngineTexture *t)
88 t->usize = t->vsize = 0;
91 static void engine_texture_class_init(EngineTextureClass *class)
93 UObjectClass *uo = U_OBJECT_CLASS(class);
94 GObjectClass *go = G_OBJECT_CLASS(class);
96 g_type_class_add_private(class, sizeof (struct texture_priv));
98 uo->deserialize = deserialize;
99 go->set_property = set_property;
100 go->get_property = get_property;
102 g_object_class_install_property(go, PROP_USIZE,
103 g_param_spec_uint("USize",
105 "Width of the texture.",
108 g_object_class_install_property(go, PROP_VSIZE,
109 g_param_spec_uint("VSize",
111 "Height of the texture.",
116 static void engine_texture_class_finalize(EngineTextureClass *class)