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);
41 U_OBJECT_CLASS(engine_texture_parent_class)->deserialize(o, f);
43 printf("Texture size: %lux%lu\n", t->usize, t->vsize);
48 void texture_register(GTypeModule *m)
50 engine_texture_register_type(m);
54 set_property(GObject *o, guint id, const GValue *val, GParamSpec *spec)
56 EngineTexture *t = ENGINE_TEXTURE(o);
60 t->usize = g_value_get_uint(val);
63 t->vsize = g_value_get_uint(val);
66 G_OBJECT_WARN_INVALID_PROPERTY_ID(o, id, spec);
71 get_property(GObject *o, guint id, GValue *val, GParamSpec *spec)
73 EngineTexture *t = ENGINE_TEXTURE(o);
77 g_value_set_boolean(val, t->usize);
80 g_value_set_boolean(val, t->vsize);
83 G_OBJECT_WARN_INVALID_PROPERTY_ID(o, id, spec);
87 static void engine_texture_init(EngineTexture *t)
89 t->usize = t->vsize = 0;
92 static void engine_texture_class_init(EngineTextureClass *class)
94 UObjectClass *uo = U_OBJECT_CLASS(class);
95 GObjectClass *go = G_OBJECT_CLASS(class);
97 g_type_class_add_private(class, sizeof (struct texture_priv));
99 uo->deserialize = deserialize;
100 go->set_property = set_property;
101 go->get_property = get_property;
103 g_object_class_install_property(go, PROP_USIZE,
104 g_param_spec_uint("USize",
106 "Width of the texture.",
109 g_object_class_install_property(go, PROP_VSIZE,
110 g_param_spec_uint("VSize",
112 "Height of the texture.",
117 static void engine_texture_class_finalize(EngineTextureClass *class)