mirror of
https://github.com/brl/mutter.git
synced 2024-12-22 19:12:04 +00:00
Read-only mirror of https://gitlab.gnome.org/GNOME/mutter
212c4a0ee8
Big rework of the actor management semantics: now ClutterActor objects behave like GtkObjects - that is they have an initial "floating" reference that gets "sunk" when they are added to a ClutterGroup. This makes a group responsible of de-allocating each actor inside it, so you just have to destroy the group to get every child actor destroyed. Also, now you can do: clutter_group_add (group, clutter_video_texture_new ()); without having to care about reference counting and explicit unreffing. * clutter/clutter-private.h: Add private flags setter and getter macros. * clutter/clutter-actor.h: * clutter/clutter-actor.c: Clean up; inherit from GInitiallyUnowned; add a "visible" property; add the "destroy", "show" and "hide" signals to ClutterActorClass. (clutter_actor_show), (clutter_actor_hide): Refactor a bit; emit the "show" and "hide" signals. (clutter_actor_set_property), (clutter_actor_get_property), (clutter_actor_class_init): Implement the "visible" property; add signals. (clutter_actor_finalize): Do not leak the actor's name, if it is set. (clutter_actor_dispose): Emit the "destroy" signal here. (clutter_actor_init): Sink the initial floating flag if needed. (clutter_actor_destroy): Add a function to explicitely destroy a ClutterActor. (clutter_actor_set_parent), (clutter_actor_get_parent), (clutter_actor_unparent): Make set_parent require a valid parent; add unparent; check on get_parent; ref_sink the actor when setting its parent and unref it when unsetting it. Probably we'll need a function that does reparenting as unparent+set_parent in a single shot. * clutter/clutter-group.h: * clutter/clutter-group.c (clutter_group_dispose), (clutter_group_finalize), (clutter_group_add), (clutter_group_remove): Make the group destroy its children when disposing it; clean up, and use the newly-available clutter_actor_unparent(). * clutter/clutter-stage.h: * clutter/clutter-stage.c (clutter_stage_init): ClutterStage is a top-level actor; clean up. * clutter/clutter-video-texture.h: * clutter/clutter-video-texture.c: Clean up. * examples/super-oh.c: * examples/test.c: * examples/video-player.c: * examples/test-text.c: * examples/video-cube.c: Remove the g_object_unref() call, as the ClutterStage object is destroyed on clutter_main_quit(). |
||
---|---|---|
clutter | ||
doc | ||
examples | ||
gst | ||
gtk | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
clutter.pc.in | ||
configure.ac | ||
COPYING | ||
Makefile.am | ||
NEWS | ||
README | ||
TODO |
Clutter README. =============== Clutter aims to give a nice easy GObject based API for creating fast, mainly 2D single window stylalised applications such as media box UI's, presentaions, kiosk style apps etc. It uses OpenGL for rendering. Its not meant to be a full featured GUI toolkit for regular desktop apps nor provide a general interface to *all* openGL functionality. It currently uses fairly low end GL functionality with an aim to still work well on open source graphics drivers as well as possibly making an eventual GL ES port feasable. Clutter currently requires GLib >= 2.8, GdkPixbuf, Gstreamer 0.10 and OpenGL >= 1.2. Its also recommended you have some kind of working hardware OpenGL on your target system. Clutter is LGPL licensed. If you want to hack on and improve clutter check the TODO file.