* clutter/cogl/gl/cogl.c:
* clutter/cogl/gles/cogl.c:
* clutter/cogl/cogl.h.in: Add cogl_clip_stack_save,
cogl_clip_stack_restore, cogl_viewport and cogl_frustum.
* clutter/cogl/gl/cogl-fbo.h:
* clutter/cogl/gl/cogl-fbo.c: Try to attach a stencil buffer when
creating an FBO.
* clutter/cogl/common/cogl-clip-stack.c: Add functions to save and
restore the whole state of the stack.
* clutter/clutter-texture.c (clutter_texture_paint): When
rendering the FBO source, setup a temporary asymmetric perspective
projection matrix to render it as it would appear on screen.
* clutter/clutter-private.h:
* clutter/clutter-actor.c
(_clutter_actor_apply_modelview_transform_recursive): No longer
static and exported in clutter-private.h
* clutter/clutter-timeline.c: Calculate the 'duration' property
on-demand instead of storing it as a member variable. Notify
duration property changes whenever the fps or num_frames changes.
* clutter/clutter-score.c (clutter_score_is_playing): Check
whether priv->running_timelines is NULL before checking its
length.
(foreach_running_timeline): Remove the completed signal handler
when stopping the score. Otherwise the completed callback will get
called multiple times if the timeline is started later.
* clutter/clutter-stage.c (clutter_stage_dispose): Unrealize the
stage before removing the update idle handler. Otherwise
unrealizing causes another redraw to be queued and if the stage
object remains alive it will cause an assert and abort.
* clutter/clutter-fixed.h:
* clutter/clutter-units.h: Fix the upper and lower boundaries of
ClutterFixed and ClutterUnit types; G_MAXINT16 and G_MININT16
were not enough to describe those values.
* clutter/clutter-main.c:
Destroy the debugging timer when the context is freed.
* clutter/clutter-stage.c:
Free the stage title when the stage is finalized.
function is supposed to accept -1 to disable sorting. However it
checks for whether the column is >= the number of columns, but
clutter_model_get_n_columns() returns an unsigned int so the
column number also gets promoted to unsigned for the
comparison. Therefore -1 is always greater than the number of
columns so it wouldn't let you set it.
* clutter/clutter-rectangle.c:
* clutter/clutter-group.c:
* clutter/clutter-entry.c:
* clutter/clutter-clone-texture.c: Remove unnecessary calls to
cogl_{push,pop}_matrix. The matrix is preserved in
clutter_actor_paint whenever the actor's transformation is applied
so there should be no need to push the matrix in actor paint
implementations unless it does some additional transformations
itself.
* clutter/clutter-stage.c:
(clutter_stage_hide_cursor):
Fixed C&P bug that made it impossible to show cursor once hidden.
Stripped trailing whitespace.
Bug 1011 - Fix TFP fallback mechanism (take 2)
* clutter/glx/clutter-glx-texture-pixmap.c:
* tests/test-pixmap.c:
Slightly modified patch from Gwenole Beauchesne applied
to better handle both falling back to non accelerated tfp
and improvements to the test case.
Bug 1033 - Manually parsing command line options prevents
initializing clutter (Armin Burgmeier)
* clutter/clutter-main.c:
(post_parse_hook), (clutter_init_real): Set the is_initialized
flag inside the real initialization function.
new layout code
* clutter/clutter-texture.c (clutter_texture_new_from_actor): Now
parents the source actor if it doesn't already have a parent so
that it will get an allocation during layout.
* tests/test-fbo.c: One of the tests tries to ensure that the
ClutterTexture clone keeps the source actor alive by derefing
it. However as actors have a floating reference then test-fbo
doesn't have its own reference once the source is parented so
unrefing just steals the parent's reference and causes
badness. The test now claims the floating reference before cloning
the source so that it can safely be unref'd later.
(clutter_actor_get_abs_allocation_vertices): The initialization of
the local stage pointer got moved away in revision 3081 so it was
crashing if the function is called before the layout is run.
* clutter/clutter-label.c:
(clutter_label_create_layout_no_cache),
(clutter_label_create_layout): Split the layout creation in two
functions: one creating the layout, the other creating the layout
and hitting the glyphs cache. The first one is for the offscren
operations - like requesting the preferred size; the second one
is for paint and allocation.
(clutter_label_allocate): Try to aggressively cache the PangoLayout
between allocations - to avoid recreating it even when the label
just moved because of an animation. See bug #1010.
robust. There are situations though where the device seems to stop
generating any touch events until all fingers have been lifted and
a new interaction session is started.
Bug 1010 - ClutterLabel does not update the layout (Lee Jusung)
* clutter/clutter-actor.c:
(clutter_actor_queue_relayout): Remove some pointer dereferencing.
* clutter/clutter-label.c:
(clutter_label_allocate): Revert the change of r2883 and remove the
layout width cache and force a recreation of the layout every time
we receive an allocation.
This is now do-what-I-mean like clutter_actor_get_size so that if
the allocation box is available it will use that, otherwise it
will use the preferred size. clutter_actor_transform_vertices has
been converted to clutter_actor_transform_and_project_box so that
it can be used by both functions. Based on a patch by Emmanuele
Bassi.
(clutter_actor_get_abs_allocation_vertices)
(clutter_actor_get_allocation_vertices): These two functions now
force a relayout if the allocation box is not available.
* tests/test-fbo.c: Fixed the shader to use texture2D instead of
texture2DRect now that GL_EXT_texture_rectangle is no longer used.
Add a note to the clutter_stage_read_pixels doc that the alpha channel
isn't guaranteed to contain sensible data
* tests/test-stage-read-pixels.c: (update_snapshot):
Overwrite the alpha data when using clutter_stage_read_pixels; fixes
this test on non-nvidia drivers
* clutter/glx/clutter-stage-glx.c:
* clutter/x11/clutter-backend-x11.c:
* clutter/x11/clutter-backend-x11.h:
* clutter/x11/clutter-event-x11.c:
* clutter/x11/clutter-x11.h:
* tests/test-devices.c:
Disable use of XInput and add an explicit clutter_x11_enable_xinput
to enable it.
Also fix up the x11 pre-init calls to not need g_type_init.
* clutter/clutter-event.c: (clutter_event_get_device_id): swap
arguments of g_return_val_if_fail around.
* clutter/clutter-event.h: added *device field to crossing events as
well.
* clutter/clutter-main.c: (emit_pointer_event): added a device
argument and check for per device grabs if this device is passed.
(clutter_do_event): pass the device if present for all pointer event
emissions.
(generate_enter_leave_events): copy the device from the motion events
when generating enter/leave events.
Correct documentation about accepted pixel formats
* tests/test-stage-read-pixels.c: (main):
Don't try to free a ClutterTexture after main, fixes segfault on quit
* clutter/clutter-behaviour-bspline.h:
* clutter/clutter-behaviour.h:
* clutter/clutter-event.h:
* clutter/clutter-texture.h: Add missing documentation and
change the copyright and licensing notice to use the FSF
website instead of its address. (#512)
* clutter/cogl/gl/cogl.c (set_clip_plane):
* clutter/clutter-alpha.c (sinc_func): Use G_PI instead of M_PI
because M_PI isn't defined in MSVC without a special
#define. Thanks to Haakon Sporsheim
Bug 1007 - Fix TFP fallback mechanism
* clutter/glx/clutter-glx-texture-pixmap.c:
* clutter/x11/clutter-x11-texture-pixmap.c:
Add some extra safety to glx pixmap creations and tidy up some notes.
Patch from Gwenole Beauchesne.