* TODO:
Updates.
* clutter/clutter-stage.c:
* clutter/glx/clutter-stage-glx.c:
Fix cursor visibility property.
Force a repaint before mapping to attempt to avoid flicker.
Always make sure that the opacity is a positive integer, even if the
start and end opacities are inverted.
Also, use the correct integer-to-pointer casts, as the opacity is an
unsigned integer.
* clutter/Makefile.am:
* clutter/eglnative/Makefile.am:
* clutter/eglnative/clutter-backend-egl.c:
* clutter/eglnative/clutter-backend-egl.h:
* clutter/eglnative/clutter-egl.h:
* clutter/eglnative/clutter-event-egl.c:
* clutter/eglnative/clutter-stage-egl.c:
* clutter/eglnative/clutter-stage-egl.h:
* clutter/eglx/Makefile.am:
* clutter/eglx/clutter-backend-egl.c:
* clutter/eglx/clutter-egl.h:
* clutter/eglx/clutter-event-egl.c:
* clutter/eglx/clutter-stage-egl.c:
* configure.ac:
Add a new 'native' EGL backend for non X based EGL's
(i.e on framebuffer).
Rename old backend to 'eglx' and namespace public funcs with this.
* clutter/pango/pangoclutter-private.h:
Add extra checks for expected defines.
* clutter/clutter-box.c: (clutter_box_pick):
Call clutter_box_paint rather than actor paint method avoiding
infinte loop (Fixes test-boxes crasher).
* clutter/glx/clutter-stage-glx.c: (clutter_stage_glx_unrealize):
Trap the X calls to avoid potential X errors.
This patch adds a command line switch to make every X call synchronous.
It's only useful for debugging purposes, so it will not be displayed when
calling a Clutter application with --help.
* clutter/clutter-main.c (clutter_redraw): Move the stage
paint init call from the main redraw function...
* clutter/clutter-stage.c (clutter_stage_paint): ... to the
ClutterActor::paint() overridden method in ClutterStage.
* clutter/clutter.h:
* clutter/Makefile.am: ClutterBackend is marked as public API,
so install the clutter-backend.h header and include it when
including clutter.h.
* clutter/clutter-entry.[ch]: Various fixes to ClutterEntry:
fix code style issues; add documentation for the various
properties; add ClutterEntry:entry-padding property, for controlling
the text padding (until we have style properties separated from
the object properties); notify property changes; free resources
in the ::finalize method; rename clutter_entry_add() to
clutter_entry_insert_unichar(), and clutter_entry_remove() to
clutter_entry_delete_chars() - for bindings and for matching the
insert_text() and delete_text() existing methods; add a getter
method for the max-length property.
Make ClutterEffectTemplate use a pointer to the private data to avoid
a type check each time it dereferences the ClutterEffectTemplatePrivate
structure pointer.
Clean up the header file for parsing purposes.
Add a description for the gtk-doc reference.
* clutter/clutter-entry.c: (clutter_entry_handle_key_event),
(clutter_entry_add), (clutter_entry_remove):
Check if unichar == 0, and if so, return, as it will cause a delete in
the GString.
* clutter/clutter-texture.c: (texture_upload_data):
Fix a SEGV for GL ES textures.
* clutter/cogl/gles/cogl.c: (cogl_setup_viewport):
Tweak default z_camera for 60 degrees like GL.
* clutter/egl/clutter-backend-egl.c::
* clutter/egl/clutter-stage-egl.c:
Fix edpy usage (thanks to Kaj Gronholm).
* NEWS:
* README.in:
* TODO:
Update for 0.3 release.
* clutter/clutter-actor.c:
Minor doc fixups
* clutter/clutter-texture.c:
Various minor additions for handling non RGBA data.
Fix a typo breaking clutter_texture_get_pixbuf() on tiled textures.
* tests/test-actors.c:
Disable scaling to avoid drifting (temporary till API is fixed)
All the ClutterTimeline share a ClutterTimeoutPool by default. This might
cause problems if an application is using a heavily threaded library that
does not play nicely with the main loop (like libneon). If this is the
case, using the CLUTTER_TIMELINE environment variable set to "no-pool"
makes the ClutterTimeline objects discard the pool and allocate a slice
of the main loop.
* TODO:
Sync up a little.
* clutter/clutter-main.c:
Set a default window title based on g_prgname().
* clutter/clutter-stage.c:
* clutter/clutter-stage.h:
* clutter/egl/clutter-stage-egl.c:
* clutter/glx/clutter-stage-glx.c:
* clutter/sdl/clutter-stage-sdl.c:
Alter draw_to_pixbuf to return a pixbuf
* configure.ac:
Only full in gdk-pixbuf-xlib as a GLX backend dep.
* tests/test-entry.c:
Fix a couple of warnings.
* clutter/sdl/clutter-event-sdl.c:
Seemingly fix SDL Event source.
Add some very basic SDL keysym translation.
(Thanks to Thomas Van Machelen for initial translation code)
* tests/test-events.c:
Dump some info on keysyms pressed.
* clutter/clutter-actor.h:
* clutter/clutter-stage.h: Add 32 padding slots; when we
reach 1.0 it'll be a long road until the following ABI
break.
* tests/test-behave.c: Don't forget to include headers.
* clutter/clutter-container.h:
* clutter/clutter-layout.h: Interfaces are not checked
at compile-time, so there's not need to add padding to
avoid ABI breaks.
* clutter/clutter-actor.c:
Fix typo in x rotation transform (Thanks to Johan Billen #138)
* configure.ac:
* doc/manual/Makefile.am:
Fix manual build and required program check.
* tests/Makefile.am:
Another typo fix.
The mutex protection for the timeout pool was causing deadlocks, so it has been
removed for the time being, until I figure out a way to make it work properly.
A timeout pool should not be considered thread-safe (or thread-aware) until further
notice.
* clutter/clutter-box.[ch]: Base class for layout containers.
* clutter/clutter-hbox.[ch]: Horizontal box actor.
* clutter/clutter-vbox.[ch]: Vertical box actor.
* clutter/clutter.h:
* clutter/Makefile.am: Build glue
* tests/Makefile.am:
* tests/test-boxes.c: Test suite for ClutterBox API and
implementations.
* clutter/cogl/gl/cogl.c: (cogl_check_extension):
Actually populate this func and remove the static alternate
named one. Means GLX actually checks for available extensions.
Other minor tidy ups.
* clutter/glx/clutter-backend-glx.c:
* clutter/glx/clutter-backend-glx.h:
Add support for GLX_SGI_swap_control to do vblanking prefering
over glXGetVideoSyncSGI. Should fix issues on Intel chips with
very slow frame rates due to vblank problems.
Thanks to Michel Danzer for tips, see;
http://bugs.freedesktop.org/show_bug.cgi?id=10542
* test/test-actors.c:
Change FPS to 60.
* clutter/clutter-timeout-pool.c: Make ClutterTimeoutPool
more thread-safe, using a static lock.
(clutter_timeout_pool_dispatch), (clutter_timeout_pool_remove): Fix
a race condition-turned-in-memory corruption bug, triggered by
removing a timeout from the pool while still spinning the pool
source.
Use a per-class timeout pool into ClutterTimeline so that every timeline
instance will use a pooled timeout function to execute the tick. This
should make multiple timelines not starve the main loop.
A ClutterTimeoutPool is a source for the GLib main loop which pools
multiple timeout functions. The pool is always sorted so that the first
timeout to expire is also the first element of the pool; hence, extraction
is a constant time operation. This also makes the usage of multiple
timeouts at the same priority not compete for a timeslice of the main
loop, leading to starvation.
* clutter/clutter-container.[ch]: Add a generic actor container
interface, for actors to implement without subclassing ClutterGroup.
* clutter/clutter-group.[ch]: Make ClutterGroup implement the
ClutterContainer interface, and deprecate the colliding methods.
* clutter/clutter-layout.[ch]: Add extended layout interface.
Actors and containers requiring or honouring complex layout
management should implement this interface and provide at least
one of the available layout types: width for height, height for
width, natural size, iterative size request.
* clutter/clutter-label.c: A ClutterLabel requires height for
width layout management, so it implements the ClutterLayout
interface.
* clutter/Makefile.am: Add new files to the build.
* tests/*.c:
* examples/*.c: Update tests and examples code to use the
new ClutterContainer API instead of ClutterGroup.
This patch adds a "delay" property to the timeline object. If set,
it will delay the start of the timeline of a number of milliseconds.
If the timeline is looping, the delay will be applied just the first
time and not for every loop.
* clutter/clutter-entry.c: (clutter_entry_set_property),
(clutter_entry_get_property), (clutter_entry_class_init),
(clutter_entry_init), (clutter_entry_set_text),
(clutter_entry_set_max_length):
* clutter/clutter-entry.h:
* examples/test-entry.c: (main):
Added a max-length property whihc limits the length of the text in the
entry.
boundries.
Text will move within the clip region to keep the cursor always
visible.
Added some padding to the left and right to make sure cursor is
always show.