Commit Graph

147 Commits

Author SHA1 Message Date
Matthew Allum
8847bcd195 2008-03-28 Matthew Allum <mallum@openedhand.com>
* clutter/Makefile.am:
        * clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-backend.c:
        * clutter/clutter-backend.h:
        * clutter/clutter-debug.h:
        * clutter/clutter-event.c:
        * clutter/clutter-event.h:
        * clutter/clutter-feature.h:
        * clutter/clutter-group.h:
        * clutter/clutter-main.c:
        * clutter/clutter-main.h:
        * clutter/clutter-private.h:
        * clutter/clutter-stage.c:
        * clutter/clutter-stage.h:
        * clutter/clutter-stage-manager.c
        * clutter/clutter-stage-manager.h
        * clutter/clutter-types.h:
        * clutter/glx/clutter-backend-glx.c:
        * clutter/glx/clutter-backend-glx.h:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/glx/clutter-stage-glx.h:
        * clutter/x11/clutter-backend-x11.c:
        * clutter/x11/clutter-backend-x11.h:
        * clutter/x11/clutter-event-x11.c:
        * clutter/x11/clutter-stage-x11.c:
        * clutter/x11/clutter-x11.h:
        * tests/Makefile.am:
        * tests/test-multistage.c:
        Initial commit of multi stage support (mostly a merge from the
        clutter-multistage branch).
        Note, this commit will break all backends except glx.
2008-03-28 22:50:55 +00:00
Emmanuele Bassi
477db755b7 2008-03-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-score.[ch]: Remove all the API changes, and
	just add a clutter_score_append_at_marker(); the implementation
	remains the same, but the marker must be explicitly created by
	the developer. The ids are no longer used to create implicit
	markers, so they can return to be unsigned integers.

	* clutter/clutter-timeline.[ch]:
	(clutter_timeline_has_marker): Add a function to query a timeline
	for a marker being set.

	* tests/test-score.c (main): Update with the API changes.

	* clutter.symbols: Update exported symbols.
2008-03-18 22:07:17 +00:00
Emmanuele Bassi
b6b9dd7c65 2008-03-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter.symbols: Add new symbols

	* clutter/clutter-score.[ch]: Use the newly added marker API
	on the timelines to implement attaching timelines at specific
	points, using either milliseconds or frames.

	* tests/test-score.c (main): Test the new API.
2008-03-18 17:54:40 +00:00
Emmanuele Bassi
be97c496b6 2008-03-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-marshal.list: Add signature for the
	::marker-reached signal marshaller.

	* clutter/clutter-timeline.[ch]: Add timeline marker API;
	using markers it is possible to add a unique identifier to
	a particular frame of the timeline, and receive a signal
	notification when reaching that particular marker while
	playing the timeline. (#641)

	* tests/test-timeline.c: Update the test case to check for
	the marker-reached signal emission.

	* clutter.symbols: Add new symbols.
2008-03-18 17:50:45 +00:00
Øyvind Kolås
b6cc7c1249 rearrange to be less than 80col 2008-03-10 23:09:28 +00:00
Øyvind Kolås
aa1e89cc92 * tests/test-shader.c: improved readability of fragment shader
examples by factoring out common bits into FRAGMENT_SHADER_BEGIN and
FRAGMENT_SHADER_END macros.
2008-03-10 23:07:22 +00:00
Robert Bragg
59699b1bdd removes test-timeline-frame-count references 2008-03-06 13:47:06 +00:00
Emmanuele Bassi
daea8af85e 2008-03-06 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-entry.h:
	* clutter/clutter-entry.c:
	(clutter_entry_handle_key_event_internal),
	(clutter_entry_key_press), (clutter_entry_class_init),
	(clutter_entry_handle_key_event): Handle a default class handler
	for the key-press-event, so that giving key focus to an entry will
	automatically make it work. This deprecates the
	clutter_entry_handle_key_event() function. (#824)

	* tests/test-entry.c (main): Remove the handle_key_event()
	machinery, and just give focus to the entry.
2008-03-06 12:39:24 +00:00
Emmanuele Bassi
7fc0bd0dd5 2008-03-06 Emmanuele Bassi <ebassi@openedhand.com>
Add support for the anchor point inside ClutterScript (#834,
	David Stanczak)

	* clutter/clutter-actor.c:
	(clutter_actor_set_property),
	(clutter_actor_get_property),
	(clutter_actor_class_init): Add the :anchor-x and :anchor-y
	properties to the ClutterActor class.

	(clutter_actor_set_anchor_point),
	(clutter_actor_set_anchor_pointu),
	(clutter_actor_set_anchor_point_from_gravity): Reimplement
	the pixel based and gravity based API using the units based
	one. Emit the ::notify signal for the :anchor-x and :anchor-y
	properties.
	
	(parse_units),
	(clutter_actor_parse_custom_node): Parse the :anchor-x and
	:anchor-y properties using the custom units format (mm, px,
	pt and %).

	* tests/test-script.json: Test the newly added properties.
2008-03-06 04:37:00 +00:00
Robert Bragg
37e9d94f4b Adds some new timeline unit-tests (#439) with actual timeline
fixes to follow.
2008-03-05 16:04:06 +00:00
Emmanuele Bassi
8c451b8a67 2008-02-20 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.h:
	* clutter/clutter-actor.c:
	(clutter_actor_get_abs_opacity): Add function that does what
	get_opacity() does now...

	(clutter_actor_get_opacity): ... and make get_opacity() do what
	it's supposed to be doing. The original get_opacity() returned
	a composited value, and there's no way to actually extract the
	real opacity value set with set_opacity().

	* clutter/clutter-clone-texture.c:
	* clutter/clutter-rectangle.c:
	* clutter/clutter-texture.c: Update to use get_abs_opacity().

	* clutter/clutter-entry.c:
	* clutter/clutter-label.c: Ditto. Also, never change the stored
	alpha value. (#804)

	* tests/Makefile.am:
	* tests/test-opacity.c: Test suite for the get_opacity() and
	get_abs_opacity() API, and correct opacity handling.

	* README: Add note about the change in get_opacity().
2008-02-20 10:59:47 +00:00
Emmanuele Bassi
bab8b24aed 2008-02-11 Emmanuele Bassi <ebassi@openedhand.com>
* README:
	* NEWS: Release 0.5.6

	* configure.ac: Post release bump to 0.5.7.

	* clutter/clutter-behaviour-scale.c:
	* tests/test-fbo.c: Fix compilation warnings.
2008-02-11 16:29:31 +00:00
Tomas Frydrych
18eef53cfc 2008-02-07 Tomas Frydrych <tf@openedhand.com>
* tests/test-actors.c:
	Reverted previous change.
2008-02-07 17:04:43 +00:00
Øyvind Kolås
2994de63ef * tests/test-shader.c: (button_release_cb): added simplified
implementation of a box-blur shader from Gwenole Beauchesne that
should work on GLSL implementing low-end IGPs not implementing
dynamic branching. The original code used crashed some of these
due to bugs in drivers or similar. Resolves bug #710.
2008-02-07 16:52:12 +00:00
Tomas Frydrych
1f5e879e2f 2008-02-07 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_set_property):
	Fixed handling of PROP_ROTATE_CENTER_Y, ROTATE_CENTER_Z

	* tests/test-actors.c:
	Adjusted to use anchor point for both group and hands.
2008-02-07 15:06:31 +00:00
Neil J. Patel
384c7048e3 2008-02-07 Neil J. Patel <njp@o-hand.com>
* tests/test-actors.c: (frame_cb), (main):
	Changed set_anchor to move_anchor.
	Changed clutter_actor_rotate x & y values to 0,0.
	Switched on scaling because it seems to work without drifting.
2008-02-07 15:01:03 +00:00
Emmanuele Bassi
c8499a7619 2008-02-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-score.c (traverse_children): Actually implement
	clutter_score_list_timelines().

	* tests/test-score.c (main): Test clutter_score_list_timelines().
2008-02-07 11:53:52 +00:00
Matthew Allum
3d802b172c 2008-02-06 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c:
        Minor clean up from last commit.

        * tests/test-fbo.c:
        Swall tweak (rotate offscreen, rather than resize
2008-02-06 14:50:15 +00:00
Emmanuele Bassi
2764fa2f87 2008-02-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-shader.c: Small documentation and style fixes

	* tests/test-scale.c: Constify the gravities array.
2008-02-04 22:35:38 +00:00
Øyvind Kolås
545e323ec1 * tests/test-fbo.c: (make_shader):
* tests/test-shader.c: (main): multiply the resulting gl_FragColor
with gl_Color before being done to take opacity into account in the
GLSL fragments.
2008-02-04 13:05:16 +00:00
Øyvind Kolås
1fe08217b7 * clutter/clutter-actor.[ch]: added clutter_actor_get_shader and
renamed clutter_actor_apply_shader to be clutter_actor_set_shader.
Reindented/aligned header.
* clutter/clutter-texture.c: (clutter_texture_paint): temporarily
disable the shader on top of the clutter context's shader stack while
rendering into the FBO.
* tests/test-fbo.c: (main): s/apply_shader/set_shader/
* tests/test-shader.c: (button_release_cb), (main):
s/apply_shader/set_shader/
2008-02-04 11:45:12 +00:00
Matthew Allum
680cd23b43 2008-02-03 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c: (clutter_actor_set_rotationx):
        Add notify signal for set_rotate

        * clutter/clutter-texture.c:
        Add basic cleanup code for fbo's

        * tests/test-fbo.c: (main):
        Minor notes.

        * clutter/osx/clutter-stage-osx.c: (clutter_stage_osx_realize):
        Turn on vblanking.
2008-02-03 23:25:12 +00:00
Matthew Allum
9026b8f976 2008-02-03 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-shader.c:
        Minor formatting cleanups to fit in 80 cols.

        * clutter/clutter-texture.c:
        More safety checks, clean ups in clutter_texture_new_from_actor()

        * clutter/cogl/gl/cogl.c:
        Always clear the FBO initially when rendering

        * tests/test-fbo.c:
        Overhall the test as to be more useful (and show current issues)
2008-02-03 01:53:10 +00:00
Matthew Allum
8366a906e2 2008-02-01 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-feature.h:
        * clutter/clutter-texture.c:
        * clutter/clutter-texture.h:
        * clutter/cogl/cogl.h:
        * clutter/cogl/gl/cogl.c:
        * clutter/cogl/gles/cogl.c:
        * tests/Makefile.am:
        * tests/test.fbo.c:
        Add initial support for FBO's in Clutter (OpenGL only so far).
        See new clutter_texture_new_from_actor()
        Initial implementation, needs work.

        * clutter/x11/clutter-stage-x11.c:
        (clutter_stage_x11_set_cursor_visible):
        Fall back to again not relying on xfixes to hide cursor. *sigh*

        * clutter/clutter-deprecated.h:
        Add clutter_group_find_child_by_id
2008-02-01 15:29:00 +00:00
Øyvind Kolås
1c05c60e99 * tests/test-depth.c: added a box of cloned hands to further expand
the scope of depth testing scenarios exercised by test-depth.
2008-01-31 16:55:34 +00:00
Øyvind Kolås
70601b469b * tests/test-depth.c: (timeline_completed): make use of
clutter_timeline_set_direction instead of static state.
(raise_top): made rectangle remain at fixed depth and raise
above each other.
(janus_group): added a rectangle with two faces, one red and
one green, that spins around.
2008-01-31 14:42:49 +00:00
Tomas Frydrych
4a1e765e19 2007-01-30 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
	Added new clutter_actor_move_anchor_point_ API.

        * clutter/clutter-behaviour-scale.c:
        * clutter/clutter-behaviour-scale.h:
        * clutter/clutter-effect.c:
        * clutter/clutter-effect.h:
        * tests/test-actors.c:
        * tests/test-effects.c:
        * tests/test-scale.c:
	Removed gravity from ClutterBehaviourScale.
2008-01-30 12:13:26 +00:00
Emmanuele Bassi
5bf265fbae 2008-01-27 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-depth.c (main): Use a group instead of pushing
	the actors on the stage.
2008-01-27 23:39:23 +00:00
Emmanuele Bassi
97a23161f6 2008-01-23 Emmanuele Bassi <ebassi@openedhand.com>
* Makefile.am: Use variables, instead of substitutions.

	* clutter/clutter-private.h:
	* clutter/clutter-main.h: Make clutter_do_event() public again,
	as we need it in clutter-gtk.

	* configure.ac:
	* clutter/x11/Makefile.am:
	* clutter/x11/clutter-x11.pc.in: Add a clutter-x11 pkg-config
	file for clutter-gtk, as it depends on the X11 backend API, as
	implemented by the GLX and EGLX backends.

	* clutter/x11/clutter-event-x11.c (event_translate): Do not
	propagate DestroyNotify events if the stage doesn't own the
	window.

	* tests/test-scale.c (main): Set values different from the default.
2008-01-23 11:08:39 +00:00
Emmanuele Bassi
e0fc055dd2 2008-01-21 Emmanuele Bassi,,, <ebassi@sprite>
* clutter/clutter-behaviour-depth.h:
	* clutter/clutter-behaviour-depth.c:
	(clutter_behaviour_depth_set_bounds),
	(clutter_behaviour_depth_get_bounds): Add the depth-start and
	depth-end accessors.

	* tests/test-depth.c (timeline_completed): Use set_bounds()
	instead of g_object_set().

	* clutter.symbols: Add clutter_behaviour_depth_set_bounds()
	and clutter_behaviour_opacity_get_bounds() to the list of
	public symbols.
2008-01-21 16:07:28 +00:00
Øyvind Kolås
e58d0d7f34 * tests/test-shader.c: fix incompatible types in shader programs
Apparently floats can't be multiplied or divided with ints without
explicit type casts. Use 2.0 or float(var) where appropriate. Patch
from Tommi Komulainen (#715).
2008-01-21 11:27:53 +00:00
Emmanuele Bassi
86c2e6e734 2008-01-18 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-actors.c (input_cb): Fix the callback signature;
	hide the clicked actor only if it's a hand.
2008-01-18 18:11:33 +00:00
Emmanuele Bassi
fe2379a810 2008-01-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter.symbols: Add new ClutterBehaviourScale setters.

	* clutter/clutter-behaviour-scale.[ch]: Split the scaling factors
	on both axis. Add setters for all the behaviour properties.

	* clutter/clutter-effect.h:
	* clutter/clutter-effect.c (clutter_effect_scale): Split the
	final scale factor to match the ClutterBehaviourScale changes. (#709)
	
	* tests/test-actors.c:
	* tests/test-effects.c:
	* tests/test-rotate.c:
	* tests/test-scale.c: Update after API change.
2008-01-17 14:31:14 +00:00
Emmanuele Bassi
71127caa65 2008-01-14 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-scale.c: Improve test case for scaling (#684,
	Jaap A. Haitsma)
2008-01-14 13:13:23 +00:00
Emmanuele Bassi
6b3b6c5afe 2008-01-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model-default.[ch]: Rename ClutterModelDefault
	into ClutterListModel, to make it clear that the default
	ClutterModel implementation is list-based

	* tests/test-model.c: Update call
2008-01-09 14:34:24 +00:00
Emmanuele Bassi
09263f94b0 2008-01-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model.h:
	* clutter/clutter-model.c:
	(clutter_model_appendv),
	(clutter_model_prependv): Add vector based API for bindings.
	
	(clutter_model_get_column_name),
	(clutter_model_get_column_type),
	(clutter_model_set_sorting_column): Fix the check in the condition
	on the column index.

	* tests/test-scale.c (on_timeline_completed), (main): Fix spelling

	* clutter.symbols: Update public symbols
2008-01-07 17:17:43 +00:00
Emmanuele Bassi
0bfe32314a 2007-12-25 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-script.json: Fix the JSON syntax
2007-12-25 20:09:20 +00:00
Emmanuele Bassi
ee4bcf6465 2007-12-21 Emmanuele Bassi <ebassi@openedhand.com>
* Makefile.am: Move tests build before docs, to cut down the
	distcheck failure discovery

	* clutter.symbols: Add clutter_texture_set_area_from_rgb_data()

	* clutter/clutter-actor.c:
	* clutter/clutter-script.c:
	* clutter/clutter-texture.c:
	* clutter/json/json-generator.c:
	* clutter/json/json-parser.c: Compilation fixes for passing distcheck

	* tests/test-grab.c:
	* tests/test-score.c:
	* tests/test-script.c:
	* tests/test-shader.c:
	* tests/test-unproject.c: Ditto as above
2007-12-21 15:25:00 +00:00
Emmanuele Bassi
ecded5cb7c 2007-12-20 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-label.c:
	(clutter_label_query_coords): Return the bounding box set inside
	request_coords(), if any; otherwise, return the natural allocation
	of the label. (#678, reported by Gwenole Beauchesne)

	* tests/test-rotate.c: Align the label
2007-12-20 09:22:05 +00:00
Emmanuele Bassi
afaa4fe26f 2007-12-15 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model-default.c:
	(clutter_model_default_iter_next),
	(clutter_model_default_iter_prev): Do not instantiate a new
	iterator, and update the passed one instead, as we say we do
	in the documentation. This avoid leaking tons of iterators.

	* clutter/clutter-model.[ch]: Update the documentation.

	* tests/test-model.c: Prettify some output.
2007-12-15 13:02:06 +00:00
Emmanuele Bassi
6193beb8be 2007-12-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour.c:
	(clutter_knot_get_type): Use the I_() macro.

	* clutter/clutter-model.[ch]: Make ClutterModel and ClutterModelIter
	abstract classes; also, provide more virtual functions inside the
	ClutterModel vtable, to allow subclasses and language bindings to
	override the entire ClutterModel using other/native data types
	to store the rows.
	
	* clutter/clutter-model-default.[ch]: ClutterModelDefault is a
	default implementation of ClutterModel and ClutterModelIter using
	GSequence.

	* clutter/Makefile.am:
	* clutter/clutter.h: Build glue for ClutterModelDefault.

	* tests/test-model.c: Update for constructor changes.

	* tests/test-shader.c: Fix a typo.
2007-12-14 17:25:55 +00:00
Øyvind Kolås
5220f68e17 Refined the ClutterShader API based on a patch from Emmanuele Bassi.
* clutter/clutter-actor.c: (clutter_actor_paint),
(clutter_actor_apply_shader): queue a redraw of actor when shader is
set.
* clutter/clutter-actor.h: indentation.
* clutter/clutter-shader.[ch]: made the fragment and vertex shader
sources properties. Report error through GError when binding shaders.
* tests/test-shader.c: modified to use newer API.
2007-12-11 14:49:41 +00:00
Emmanuele Bassi
0f535537c2 2007-12-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_set_property),
	(clutter_actor_get_property),
	(clutter_actor_class_init): Add the rotation-* properties,
	controlling the rotation angle and center on each axis. (#614)

	(parse_rotation_array), (parse_rotation),
	(clutter_actor_parse_custom_node),
	(clutter_actor_set_custom_property),
	(clutter_scriptable_iface_init): Add a new "rotation" custom
	property for expressing the rotation along each axis in a
	compact way:

	  "rotation" : [
	    { "x-axis" : [ <angle>, [ <y>, <z> ] ] },
	    { "y-axis" : [ <angle>, [ <x>, <z> ] ] },
	    { "z-axis" : [ <angle>, [ <x>, <y> ] ] }
	  ]

	(clutter_geometry_get_type),(clutter_vertex_get_type),
	(clutter_actor_box_get_type): Use the I_() macro instead of
	directly calling g_intern_static_string().
	
	* clutter/clutter-entry.c (clutter_entry_request_coords):
	* clutter/clutter-label.c (clutter_label_ensure_layout),
	(clutter_label_request_coords): Use CLUTTER_UNITS_FROM_DEVICE()
	instead of CLUTTER_UNITS_FROM_INT(), as "device" means "pixels".

	* clutter/clutter-private.h: Add the I_() macro for intern
	static strings.

	* tests/test-script.json: Test the newly added "rotation"
	custom property.
2007-12-10 11:01:10 +00:00
Tomas Frydrych
aed212384a 2007-12-10 Tomas Frydrych <tf@openedhand.com>
* tests/Makefile.am:
	Fixed a typo.
2007-12-10 10:16:55 +00:00
Tomas Frydrych
54b752c869 2007-12-10 Tomas Frydrych <tf@openedhand.com>
* tests/test-viewport.c:
	* tests/Makefile.am:
	Added a simple viewport test.
2007-12-10 10:13:31 +00:00
Emmanuele Bassi
e1b1bc289c 2007-12-09 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-events.c (input_cb):
	* tests/test-text.c (main): Fix compiler errors. (#592,
	Gwenole Beauchesne)
2007-12-09 08:53:06 +00:00
Emmanuele Bassi
6e25c4ef96 Rever accidental commit 2007-12-06 10:58:42 +00:00
Emmanuele Bassi
b1eca511d6 Update the svn:ignore property 2007-12-06 10:57:29 +00:00
Emmanuele Bassi
2a5a4f598f 2007-12-06 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-unproject.c: Fix type comparison.

	* tests/test-score.c: Save the returned ids.
2007-12-06 09:07:12 +00:00
Tomas Frydrych
e9d9715dcf 2007-12-05 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-actor.h:
	* tests/Makefile.am:
	* tests/test-unproject:
	(clutter_actor_transform_stage_point):
	Added new function for translating stage coordinates into local
	actor coordinates.
2007-12-05 14:54:15 +00:00