Commit Graph

1135 Commits

Author SHA1 Message Date
Emmanuele Bassi
101a3cac4e 2008-05-12 Emmanuele Bassi <ebassi@openedhand.com>
Rework the stage wrapper/implementation relation: remove
	duplicated code and all the bookkeeping from the backends into
	ClutterStage whenever possible, to reduce the amount of	work a
	backend must do (and possibly get wrong). Thanks to Tommi
	Komulainen.

	* clutter/clutter-main.c:
	(clutter_init_with_args), (clutter_init): Realize the default
	stage after creation. The default stage is special, because we
	use it in the initialization sequence. This removes the burden
	from the backends and reduces the things a backend can get
	wrong.

	* clutter/clutter-stage.c:
	(clutter_stage_show): Make sure to realize the implementation if
	it hasn't been realized yet.

	(clutter_stage_realize): Set the REALIZED flag and call
	clutter_stage_ensure_current() if the implementation was
	successfully realized.

	(clutter_stage_unrealized): Call clutter_stage_ensure_current()
	on unrealize.

	* clutter/glx/clutter-backend-glx.c:
	(clutter_backend_glx_create_stage): Do not realize the stage anymore
	when creating it, and let the normal realization sequence take
	place.

	(clutter_backend_glx_ensure_context): Trap for X11 errors.

	* clutter/glx/clutter-stage-glx.c:
	(clutter_stage_glx_realize): Chain up to the X11 implementation
	so that we can set up the window state (title, cursor visibility)
	when we actually have a X window. Also, do not call
	clutter_stage_ensure_current(), and rely on the wrapper to do
	it for us. This means we can drop setting the REALIZED flag on
	the wrapper.

	(clutter_stage_glx_unrealize): Do not call
	clutter_stage_ensure_current() ourselves, and rely on the wrapper
	to do it for us.

	* clutter/x11/clutter-stage-x11.c:
	(set_wm_title),	(set_cursor_visible): Move the WM title and
	cursor visibility code inside their own functions.

	(clutter_stage_x11_realize): Set the window title and whether the
	cursor is visible or not after realizing the stage.

	(clutter_stage_x11_set_cursor_visible),
	(clutter_stage_x11_set_title): Call set_wm_title() and
	set_cursor_visible().

	(clutter_stage_x11_finalize): Free the title string.

	* clutter/x11/clutter-stage-x11.h: Save more of the stage state,
	so that we can set it even when the stage hasn't been realized
	yet.

	* clutter/eglnative/clutter-backend-egl.c:
	(clutter_backend_egl_create_stage):
	* clutter/eglnative/clutter-stage-egl.c:
	(clutter_stage_egl_unrealize),
	(clutter_stage_egl_realize): Update the eglnative backend.

	* clutter/eglx/clutter-backend-egl.c:
	(clutter_backend_egl_ensure_context),
	(clutter_backend_egl_create_stage):
	* clutter/eglx/clutter-stage-egl.c:
	(clutter_stage_egl_unrealize),
	(clutter_stage_egl_realize): Update the eglx backend.

	* clutter/sdl/clutter-backend-sdl.c:
	(clutter_backend_sdl_create_stage):
	* clutter/sdl/clutter-stage-sdl.c:
	(clutter_stage_sdl_realize): Update the sdl backend.

	* clutter/fruity/clutter-backend-fruity.c:
	(clutter_backend_fruity_create_stage):
	* clutter/sdl/clutter-stage-fruity.c:
	(clutter_stage_fruity_realize): Update the fruity backend.

	* tests/test-multistage.c (on_button_press): Bail out if
	clutter_stage_new() returns NULL.

	* HACKING.backends: Update backend writing documentation.
2008-05-12 15:26:37 +00:00
Robert Bragg
c76e576141 2008-05-12 Robert Bragg <bob@openedhand.com>
* clutter/clutter-timeline.c:
	Adds clutter-timeline documentation RE: r2337, explaining
	the current timeline semantics.
2008-05-12 15:18:38 +00:00
Emmanuele Bassi
6fa7aeef85 2008-05-12 Emmanuele Bassi <ebassi@openedhand.com>
* HACKING.backends: Update documentation.

	* clutter/glx/clutter-stage-glx.c:
	(clutter_stage_glx_realize): Avoid setting more flags than
	necessary.
2008-05-12 10:17:55 +00:00
Neil Roberts
9144b3902e * clutter/clutter-frame-source.c (clutter_frame_source_add)
(clutter_frame_source_add_full): Add gtk-doc and rename the
	'function' parameter to 'func'.

	* clutter/clutter-frame-source.h: Rename the 'function' parameters
	to 'func'.

	* clutter/Makefile.am (source_h): Make clutter-frame-source.h a
	public header.

	* clutter/clutter-main.c (clutter_threads_add_frame_source_full):
	Improve gtk-doc

	* doc/reference/clutter/clutter-sections.txt: Added
	clutter_threads_add_frame_source,
	clutter_threads_add_frame_source_full,
	clutter_frame_source_add and clutter_frame_source_add_full.
2008-05-09 16:27:06 +00:00
Emmanuele Bassi
d7a8fa8b53 2008-05-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script-private.h: Add a flag for the
	default stage.

	* clutter/clutter-script.c:
	(json_object_end): If the "type" member is "ClutterStage"
	and we have a "is-default" member set to true then this
	is the default stage.

	(clutter_script_construct_object): Special case the default
	stage instead of each ClutterStage.
	
	(object_info_free): Ditto as above.

	* tests/test-script.json: Test the creation of a non-default
	stage and the ::destroy handler to quit.
2008-05-09 13:58:04 +00:00
Emmanuele Bassi
1abccbad21 2008-05-09 Emmanuele Bassi <ebassi@openedhand.com>
Bug #902 - Support transform from G_TYPE_INT to ClutterUnit

	* clutter/clutter-units.c:
	(clutter_value_transform_int_unit),
	(clutter_unit_get_type): Add GValue transformation function from
	integer values to ClutterUnit. (#902)

	(param_unit_validate): Fix validation for ClutterParamSpecUnit;
	this allows writable ClutterUnit properties.

	* clutter/clutter-fixed.c:
	(clutter_value_transform_int_fixed),
	(clutter_value_transform_double_fixed),
	(clutter_value_transform_float_fixed): Add GValue transformation
	functions from native types (int, double, float) to ClutterFixed.

	(clutter_fixed_get_type): Register the new transformation functions.

	(param_fixed_validate): Fix validation for ClutterParamSpecUnit;
	this allows writable ClutterFixed properties.
2008-05-09 10:58:26 +00:00
Ivan Leben
ef084cfa95 * clutter/cogl/cogl.h.in:
* clutter/cogl/gl(es)/cogl-texture.h:
	* clutter/cogl/gl(es)/cogl-texture.c:
	cogl_texture_new_* functions take a gboolean auto_mipmap argument.
	If TRUE automatic mipmap generation is enabled during the process
	of slice texture object creation.
	(cogl_texture_new_from_foreign:) now allows mipmap min filter
	flags.

	* clutter/clutter-texture.c:
	* clutter/glx/clutter-glx-texture-pixmap.c:
	* tests/test-cogl-offscreen.c:
	* tests/test-cogl-tex-tile.c:
	* tests/test-cogl-tex-convert.c:
	* tests/test-cogl-tex-polygon.c:
	* tests/test-cogl-tex-getset.c:
	Pass FALSE for auto_mipmap to cogl_texture_new_*.

	* clutter/pango/pangoclutter-render.c:
	(tc_get:) Pass TRUE to cogl_texture_new_with_size and use mipmap
	min filter for nicer glyphs at small scales. As a result test-text
	has gone all beautiful now.
2008-05-07 16:12:54 +00:00
Neil Roberts
046cebf4ac * clutter/clutter-frame-source.h: Added the missing G_BEGIN_DECLS
and G_END_DECLS
2008-05-07 15:16:48 +00:00
Emmanuele Bassi
fabed98362 2008-05-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/sdl/clutter-backend-sdl.c:
	(clutter_backend_sdl_dispose): Destroy the timer that we created...
	(clutter_backend_sdl_init): ... here.

	* clutter/sdl/clutter-backend-sdl.h: Add a GTimer for time-based
	operations, like the event time.

	* clutter/sdl/clutter-event-sdl.c:
	(get_backend_time): Get the elapsed milliseconds for the SDL
	backend.

	(_clutter_events_init): Start the timer provided by the backend...
	(_clutter_events_uninit): ... and the stop it.

	(key_event_translate), (event_translate): Use the backend time
	to fill out the time field of the event structures. This fixes
	the motion notification throttling on the SDL backend.
2008-05-07 15:03:59 +00:00
Matthew Allum
0782e7d635 2008-05-06 Matthew Allum <mallum@openedhand.com>
* clutter/glx/clutter-glx-texture-pixmap.c:
        * clutter/x11/clutter-x11-texture-pixmap.c:
        More cleanups, safety additions.
2008-05-06 19:57:05 +00:00
Øyvind Kolås
a1d0b30070 * clutter/cogl/gl/cogl-primitives.c:
* clutter/cogl/gles/cogl-primitives.c: 
* clutter/cogl/common/cogl-primitives.c: moved declaration of
gegl_rectangle and gegl_rectanglex here to satisfy linking
requirements when building the fruity backend.
2008-05-05 12:01:19 +00:00
Øyvind Kolås
0e6ad06db4 * clutter/cogl/cogl.h.in: api review touch ups.
* clutter/cogl/common/cogl-primitives.c: api review touch ups.
* clutter/cogl/gl/cogl-primitives.c: (cogl_path_fill),
(cogl_path_stroke): indentation.
* clutter/cogl/gles/cogl-primitives.c:
(_cogl_path_fill_nodes): free allocated resources.
* tests/test-cogl-primitives.c: updated to new API, added rotation to
test to show that cogl renders paths correct under perspective
distortion.
2008-05-05 10:25:11 +00:00
Emmanuele Bassi
a231418c9d 2008-05-02 Emmanuele Bassi <ebassi@openedhand.com>
Bug #900 - clutter_actor_lower() and friends do not queue redraw

	* clutter/clutter-actor.c:
	(clutter_actor_raise),
	(clutter_actor_lower): Queue a redraw after raising and lowering
	and actor in the paint order stack. (#900)
2008-05-02 11:48:43 +00:00
Emmanuele Bassi
f6cfee60a9 2008-05-01 Emmanuele Bassi <ebassi@openedhand.com>
Build fixes for the SDL flavour.

	* clutter/sdl/clutter-backend-sdl.c: Remove an unused function.

	* clutter/sdl/clutter-event-sdl.c:
	(clutter_event_dispatch): Properly cast the stage pointer.

	* clutter/sdl/clutter-stage-sdl.c:
	(clutter_stage_window_iface_init): Remove the draw_to_pixbuf()
	stub and assignment.
2008-05-01 15:49:57 +00:00
Øyvind Kolås
a628a7cf5c * clutter/cogl/gles/cogl-primitives.c: (_cogl_path_fill_nodes): draw
the rasterized scanlines as an array of triangles.
2008-05-01 11:27:58 +00:00
Emmanuele Bassi
21c0c41e51 2008-05-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour.c:
	(clutter_behaviour_remove_all): Disconnect the ::destroy
	handler when removing all actors, to match the behaviour
	of clutter_behaviour_remove().
2008-05-01 09:28:41 +00:00
Matthew Allum
f72af9926d 2008-05-01 Matthew Allum <mallum@openedhand.com>
* clutter/glx/clutter-glx-texture-pixmap.c:
        * tests/test-pixmap.c:
        Fix up texture-pixmap, now works.
        Thanks to Neil for spotting we were actually using
        wrong texture type in fbconfig (COGL change).
2008-04-30 23:07:23 +00:00
Øyvind Kolås
98f5b6a0c9 * clutter/cogl/gles/cogl-primitives.c: (_cogl_path_fill_nodes):
keep track of direction we are drawing in and make sure we leave
two intersection points when we have changed direction.
2008-04-30 21:48:47 +00:00
Øyvind Kolås
6562d30ab0 * clutter/cogl/gles/cogl-primitives.c: (_cogl_path_fill_nodes):
scanline rasterizer fallback for GLES without working stencil
buffer (would benefit from optimization/smarter choice of
datastructures).
2008-04-30 16:57:21 +00:00
Emmanuele Bassi
15af14d933 2008-04-30 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-effect.c:
	(clutter_effect_closure_destroy): Do not remove the actor
	from the behaviour; the behaviour is an internal detail of the
	effect, and it will remove the actors anyway when finalized
	when g_object_unref() is called. This should guard against
	actors being destroyed while an effect is running.
2008-04-30 16:27:18 +00:00
Øyvind Kolås
11a14de9f1 * clutter/cogl/common/Makefile.am:
* clutter/cogl/common/cogl-primitives.c:
* clutter/cogl/common/cogl-primitives.h:
* clutter/cogl/gl/Makefile.am:
* clutter/cogl/gl/cogl-primitives.c:
* clutter/cogl/gl/cogl-primitives.h:
* clutter/cogl/gles/Makefile.am:
* clutter/cogl/gles/cogl-primitives.c:
* clutter/cogl/gles/cogl-primitives.h: moved duplicated code to the
common directory.
2008-04-30 15:05:17 +00:00
Robert Bragg
108bbe7474 2008-04-30 Robert Bragg <bob@openedhand.com>
* clutter/clutter/x11/clutter-x11-texture-pixmap.c:
	In _update_area_real with depth=16 we weren't setting up the alpha
	channel.
2008-04-30 14:58:25 +00:00
Matthew Allum
f9c43cd640 2008-04-29 Matthew Allum <mallum@openedhand.com>
* clutter/glx/Makefile.am:
        * clutter/x11/Makefile.am:
        Revert header install locations (Mistake in previous commit,
        fixes #898)
2008-04-29 22:02:10 +00:00
Neil Roberts
a5cd811a9c * clutter/clutter-actor.c (clutter_actor_move_anchor_point): The
actor position was being moved in the wrong direction. Perhaps
	this was a cut-and-paste bug from move_anchor_point_from_gravity
	because in that function ax and ay represent the old anchor
	position, but in this function they represent the new.
2008-04-29 21:27:52 +00:00
Matthew Allum
ca3074f772 2008-04-29 Matthew Allum <mallum@openedhand.com>
* clutter/glx/Makefile.am:
        * clutter/glx/clutter-glx-texture-pixmap.c:
        * clutter/glx/clutter-glx-texture-pixmap.h:
        * clutter/x11/Makefile.am:
        * clutter/x11/clutter-x11-texture-pixmap.c:
        * tests/test-pixmap.c:
        Commit newer x11 texture pixmap stuff (optionally using SHM).
        Also seemingly still broken overhauled glx-texture-pixmap
        (code by Robert and myself)

* configure.ac:
        Minor formatting change.
2008-04-29 16:30:47 +00:00
Neil Roberts
19058afe82 Removed COGLhandle and changed shader and program functions to be
wrapped in reference-counted CoglHandles instead.

	* clutter/cogl/gl/cogl-shader.c: 
	* clutter/cogl/gl/cogl-shader.h: 
	* clutter/cogl/gl/cogl-program.c: 
	* clutter/cogl/gl/cogl-program.h: 
	New files to hold the shader and program functions.

	* clutter/cogl/gl/cogl.c: Removed shader and program functions.

	* clutter/cogl/common/cogl-handle.h: New header to define
	COGL_HANDLE_DEFINE which helps build functions to create
	reference-counted handles. This reduces the amount of duplicated
	code.

	* clutter/cogl/gl/cogl-texture.c: 
	* clutter/cogl/gles/cogl-texture.c: 
	* clutter/cogl/gl/cogl-fbo.c: Converted to use COGL_HANDLE_DEFINE
	from cogl-handle.h to avoid duplicating some of the common code.

	* clutter/cogl/gles/cogl-defines.h.in: 
	* clutter/cogl/gl/cogl-defines.h.in: Removed COGLhandle

	* clutter/cogl/gl/cogl-context.h: Added handle arrays for programs
	and shaders.

	* clutter/cogl/gl/cogl-context.c (cogl_create_context): Added
	initialisers for shader_handles and program_handles.
	(cogl_destroy_context): Added calls to g_array_free for all handle
	arrays.

	* clutter/cogl/gl/Makefile.am (libclutter_cogl_la_SOURCES): Added
	cogl-{program,shader}.{c,h}

	* clutter/cogl/common/Makefile.am
	(libclutter_cogl_common_la_SOURCES): Added cogl-handle.h

	* clutter/cogl/gles/cogl.c:
	* clutter/cogl/cogl.h.in: Programs and shaders are now wrapped in
	CoglHandles instead of COGLhandles. cogl_program_destroy and
	cogl_shader_destroy is now replaced with cogl_program_unref and
	cogl_shader_unref. cogl_program_ref and cogl_shader_ref are also
	added.

	* clutter/clutter-shader.c: Converted to use CoglHandles for the
	programs and shaders instead of COGLhandles.

	* cogl/cogl-sections.txt: Added cogl_shader_ref,
	cogl_shader_unref, cogl_is_shader, cogl_program_ref,
	cogl_program_unref, cogl_is_program and cogl_is_offscreen.
2008-04-29 16:10:37 +00:00
Øyvind Kolås
83e2861614 * clutter/cogl/cogl.h.in: renaming of API's in cogl to make the
primitives and path API a bit smaller and more resembling cairo.
* clutter/cogl/gl/cogl-primitives.c:
* clutter/cogl/gles/cogl-primitives.c:
* clutter/cogl/gles/cogl.c:
* clutter/clutter-actor.c:
* clutter/clutter-rectangle.c:
* tests/test-cogl-offscreen.c:
* tests/test-cogl-primitives.c:
* tests/test-cogl-tex-convert.c:
* tests/test-cogl-tex-foreign.c:
* tests/test-cogl-tex-getset.c:
* tests/test-cogl-tex-tile.c: updated according to changes in cogl.
2008-04-29 15:41:34 +00:00
Robert Bragg
c90df4d4a0 2008-04-29 Robert Bragg <bob@o-hand.com>
* clutter/x11/clutter-x11-texture-pixmap.c:
	In clutter_x11_texture_pixmap_set_pixmap, dont assume that the actor
	size should be changed to match the size of the pixmap.
2008-04-29 13:51:25 +00:00
Robert Bragg
3bcd5d3f98 2008-04-29 Robert Bragg <bob@o-hand.com>
* clutter/cogl/gles/cogl-texture.c:
	Replaces an malloc call with g_malloc.
2008-04-29 12:44:41 +00:00
Neil Roberts
122e1dafd1 Fixed 'make dist'
* clutter/cogl/Makefile.am (EXTRA_DIST): Distribute cogl.h.in
	instead of cogl.h
	(DIST_SUBDIRS): Added common folder

	* clutter/cogl/gl/Makefile.am (libclutter_cogl_la_SOURCES): Remove
	cogl-defines.h and use the right location for cogl-defines.gl.h
	(EXTRA_DIST): Distribute cogl-defines.h.in

	* clutter/cogl/gles/Makefile.am (libclutter_cogl_la_SOURCES):
	Remove cogl-defines.h and use the right location for
	cogl-defines.gles.h
	(EXTRA_DIST): Distribute cogl-defines.h.in

	* clutter/Makefile.am (DIST_SUBDIRS): Add fruity
2008-04-28 16:57:44 +00:00
Neil Roberts
18826f3b04 * clutter/cogl/cogl.h.in (COGL_A_BIT): Added the missing comma after
COGL_PIXEL_FORMAT_G_8
2008-04-28 16:03:06 +00:00
Øyvind Kolås
35e0ae7fa9 * clutter/cogl/cogl.h.in: reindented. 2008-04-28 15:36:11 +00:00
Emmanuele Bassi
90c815efb8 2008-04-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(parse_rotation_array),
	(clutter_actor_set_custom_property): Use the internal, unit based
	rotation setter when parsing the rotation from a ClutterScript
	file.
	
	(clutter_geometry_copy),
	(clutter_vertex_copy),
	(clutter_actor_box_copy): Use the more efficient g_slice_dup().

	(clutter_actor_get_stage): Add documentation.

	* clutter/clutter-group.c: Documentation fix.
2008-04-28 15:32:42 +00:00
Øyvind Kolås
de5f1e78fb * clutter/cogl/cogl.h.in: moved the documentation of the cogl
primitives to the main public header.
* clutter/cogl/gl/cogl-primitives.c: from here ..
* clutter/cogl/gles/cogl-primitives.c: .. _and_ here.
2008-04-28 14:18:29 +00:00
Øyvind Kolås
aae4c7d0f6 * clutter/cogl/cogl.h.in: added documentation. 2008-04-28 14:00:46 +00:00
Emmanuele Bassi
a7f4767ecb 2008-04-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-units.c (param_unit_init): Use the right
	macros to set the default minimum and maximum values.

	* clutter/clutter-fixed.c (param_fixed_init): Ditto as above.
2008-04-28 13:37:28 +00:00
Emmanuele Bassi
b8827ea095 2008-04-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglnative/clutter-backend-egl.c:
	(clutter_backend_egl_redraw): Whitespace fixes.

	* clutter/eglnative/clutter-stage-egl.c:
	(clutter_stage_egl_hide): Indentation fixes.

	(clutter_stage_egl_realize): Use g_critical() to report failure,
	unset the flags and bail out instead of continuing the realization
	of the stage.
2008-04-28 09:33:38 +00:00
Neil Roberts
6409b1adeb Merged clutter-ivan branch into trunk.
svn merge \
 https://svn.o-hand.com/repos/clutter/trunk/clutter@2509 \
 https://svn.o-hand.com/repos/clutter/branches/clutter-ivan@HEAD
2008-04-25 13:37:36 +00:00
Emmanuele Bassi
7c3cf35eec 2008-04-25 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/sdl/clutter-stage-sdl.[ch]: Port the SDL stage to
	the new stage implementation API.

	* clutter/sdl/clutter-backend-sdl.[ch]: Port the SDL backend
	to the new backend API.

	* clutter/sdl/clutter-event-sdl.c:
	(clutter_event_dispatch): Assign the default stage as the
	origin of the event.
2008-04-25 12:17:01 +00:00
Emmanuele Bassi
b09e6ce55b 2008-04-24 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglnative/clutter-backend-egl.c:
	(clutter_backend_egl_create_stage): Fix checks using a
	non assigned member of the ClutterBackendEGL structure.
2008-04-24 13:10:45 +00:00
Emmanuele Bassi
6ac86b939b 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglnative/clutter-backend-egl.[ch]:
	* clutter/eglnative/clutter-stage-egl.[ch]:
	* clutter/eglnative/clutter-event-egl.c: Port to the new stage
	and backend APIs. *WARNING* untested and not compiled.

	* clutter/eglx/clutter-backend-egl.c:
	(clutter_backend_egl_init): Set some defaults.
2008-04-23 17:20:59 +00:00
Emmanuele Bassi
389e1470a5 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac:
	* clutter/Makefile.am: Do not build the internal JSON-GLib
	copy if there is a system installed one.

	* clutter/clutter-json.h: Remove.

	* clutter/clutter-json.h.in: Template for the clutter-json.h
	header file, used to opaquely include the JSON-GLib types.
2008-04-23 13:58:58 +00:00
Emmanuele Bassi
43992d9964 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Document :show-on-set-parent and
	the fact that calling clutter_actor_show() and hide() on an
	unparented actor will change that property as well as a side
	effect.
2008-04-23 13:54:13 +00:00
Emmanuele Bassi
7d103daed4 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c (clutter_actor_set_property): Use the
	internal setter for the rotation center.
2008-04-23 13:21:33 +00:00
Emmanuele Bassi
b450363370 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Add units based variant of the
	rotation accessors.
2008-04-23 12:53:25 +00:00
Emmanuele Bassi
e1dfbec336 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug 892 - Incorrect results using rotation-[center|angle] properties

	* clutter/clutter-actor.c:
	(clutter_actor_set_rotation_internal): Inline function for setting
	the rotation using fixed point for the angle and units for the
	center of rotation.

	(clutter_actor_set_property),
	(clutter_actor_set_rotationx): Use the internal setter to avoid
	loss of precision and too many conversions to and from units.
2008-04-23 12:39:50 +00:00
Emmanuele Bassi
4b0a15c468 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug 891 - assertion failed when test-behave exits

	* clutter/clutter-behaviour.c:
	(remove_actor_on_destroy),
	(clutter_behaviour_apply),
	(clutter_behaviour_remove): Remove the actor if it gets
	destroyed before the behaviour.
2008-04-23 09:46:16 +00:00
Emmanuele Bassi
9655f4d58c 2008-04-18 Emmanuele Bassi <ebassi@openedhand.com>
Bug #884 - Add clutter_alpha_set_closure

	* clutter/clutter-alpha.[ch]: Add clutter_alpha_set_closure(),
	a GClosure variant of clutter_alpha_set_func(), and reimplement
	the latter as a special case of the former. (#884, Xan López)
2008-04-18 15:03:30 +00:00
Neil Roberts
e97cba0162 * clutter/clutter-timeline.c (clutter_timeline_get_progressx):
Changed to use clutter_qdiv instead of CLUTTER_FIXED_DIV otherwise
	it can't cope with timelines with more than 255 frames.
2008-04-18 13:51:16 +00:00
Emmanuele Bassi
816aa93135 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-frame-source.c: Small coding style fixes.
2008-04-17 20:53:37 +00:00
Emmanuele Bassi
af562ad59a Add clutter-frame-source to the repository to fix the build 2008-04-17 20:50:49 +00:00
Neil Roberts
827c26757e Applied patch from bug #881
* clutter/clutter-frame-source.h: 
	* clutter/clutter-frame-source.c:
	New files that contain a replacement for g_timeout that try to
	cope with system delays.

	* clutter/Makefile.am: Added clutter-frame-source.{c,h}

	* clutter/clutter-timeline.c (timeout_add): Use a frame source
	instead of a g_timeout.

	* clutter/clutter-main.c (clutter_threads_add_frame_source_full)
	(clutter_threads_add_frame_source): New public functions to wrap a
	frame source and grab the Clutter mutex.

	* clutter/clutter-timeout-pool.c: Now calculates the timeout
	expiration times in the same way as a frame source does so that it
	counts time in frame intervals instead of setting the next
	expiration time as an offset from the current time.
2008-04-17 16:50:23 +00:00
Emmanuele Bassi
fd70c7df49 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-fixed.c:
	(clutter_value_transform_fixed_int),
	(clutter_value_transform_fixed_double),
	(clutter_value_transform_fixed_float),
	(clutter_fixed_get_type): Add GValue transformation functions
	for ClutterFixed; copying a CLUTTER_TYPE_FIXED GValue into
	a G_TYPE_FLOAT/G_TYPE_DOUBLE one will automatically transform
	the fixed point representation into a floating point one. Also
	add the G_TYPE_INT transformation function to do a plain
	fixed->int copy.

	* clutter/clutter-units.c:
	(clutter_value_transform_unit_int),
	(clutter_unit_get_type): Add a unit->int transformation function.
2008-04-17 14:08:26 +00:00
Emmanuele Bassi
fa3b3e7f55 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-fixed.c (clutter_value_get_fixed): Fix typo
	in the function name.
2008-04-17 11:42:08 +00:00
Emmanuele Bassi
3d30622d96 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-units.c (clutter_value_get_unit): Fix typo
	in the function name.
2008-04-17 11:40:46 +00:00
Emmanuele Bassi
6d73c5e452 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-units.h:
	* clutter/clutter-fixed.h: Add boundaries for fixed point
	and units values.

	* doc/reference/clutter-sections.txt: Update the documentation.
2008-04-17 11:09:27 +00:00
Emmanuele Bassi
0ecfa9701f 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-fixed.[ch]: Add a ClutterFixed fundamental
	type, and wrappers for storing it into GValues; also add a
	GParamSpec subclass for defining parameters holding
	ClutterFixed values. This allows creating GObject properties
	using fixed point values.

	* doc/reference/clutter-sections.txt: Document the newly
	added API.
2008-04-17 10:08:17 +00:00
Emmanuele Bassi
d1ba07d0e7 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/Makefile.am: Add clutter-units.c

	* clutter/clutter-units.[ch]: Add a ClutterUnit fundamental
	type, and wrappers for storing it into GValues; also add a
	GParamSpec subclass for defining parameters holding ClutterUnit
	values. This allows creating GObject properties using units.

	* doc/reference/clutter-sections.txt: Document the newly
	added API.
2008-04-17 09:13:12 +00:00
Matthew Allum
c2cb5bf64a 2008-04-15 Matthew Allum <mallum@openedhand.com>
Work related to #873;

        * clutter/glx/clutter-backend-glx.c:
        * clutter/glx/clutter-backend-glx.h:
        * clutter/x11/clutter-x11-texture-pixmap.c:
        * clutter/x11/clutter-x11-texture-pixmap.h:
        General cleanup of texture pixmap code, adding;
          - Pixmap dimentions and depth now auto probed, read only props.
          - More X safety traps
          - Add support for optionally tracking damage and automatically
            updating texture.

        * clutter/glx/clutter-glx-texture-pixmap.c:
        * clutter/glx/clutter-glx-texture-pixmap.h:
        General cleanup and some safety additions. Needs more work so
        'proper' subclass - dependent on new COGL.

        * clutter/x11/clutter-backend-x11.c: (clutter_x11_remove_filter):
        Invert g_return_if check.

        * configure.ac:
        Pull in XComposite and XDamage (at least for now)

        * tests/Makefile.am:
        * tests/test-pixmap.c:
        Add a modified test from Johan for above.
2008-04-15 21:18:13 +00:00
Neil Roberts
3d1f2a0859 Added support for foreign windows to the Win32 backend.
* clutter/win32/clutter-stage-win32.c
	(clutter_stage_win32_request_coords): Don't resize foreign
	windows.
	(clutter_stage_win32_unrealize): Don't destroy foreign windows.
	(clutter_stage_win32_init): Added initialiser for is_foreign_win.
	(clutter_win32_get_stage_from_window): Resort to looking in the
	stage list if the window isn't the right window class so that it
	can still find stages with foreign windows.
	(clutter_win32_set_stage_foreign): New public function to set a
	foreign window for a stage.

	* clutter/win32/clutter-event-win32.c
	(clutter_win32_disable_event_retrieval): New public function to
	disable event retrieval.
	(message_translate): Don't handle WM_SIZE or WM_MOVE for foreign
	windows.

	* clutter/win32/clutter-backend-win32.h (struct
	_ClutterBackendWin32): Added a flag to disable event retrieval

	* clutter/win32/clutter-backend-win32.c
	(clutter_backend_win32_ensure_context): Update debug note to
	include whether the stage is foreign or not.
2008-04-15 16:12:37 +00:00
Øyvind Kolås
429f7e64ca * clutter/clutter-actor.c: (clutter_actor_set_shader_param): queue a
redraw when a shader_param is set. Normalized some gtk-doc syntax in
some of the api documentation.
2008-04-15 13:55:36 +00:00
Øyvind Kolås
e3c2b27d1d * clutter/clutter-group.c: fixed typo in docs. 2008-04-15 11:31:53 +00:00
Matthew Allum
a435ec43ec 2008-04-14 Matthew Allum <mallum@openedhand.com>
* clutter/eglx/clutter-stage-egl.c:
        Actually set wm protocols on eglx stage windows. Fixes issues with
        cloising stages and cleanup.
2008-04-14 17:01:14 +00:00
Matthew Allum
77a7eaeed5 2008-04-14 Matthew Allum <mallum@openedhand.com>
* clutter/cogl/gles/cogl.c: (cogl_color):
        Disable use of color4ub, issues with latest MBX SDL (#857)

        * clutter/eglx/clutter-backend-egl.c:
        * clutter/eglx/clutter-stage-egl.c:
        * configure.ac:
        Fixup for the eglx backend to work with new backend/multistage code.
        Some issues remain in destroying stages.
2008-04-14 15:10:22 +00:00
Neil Roberts
f7b53e6004 Bug #853
* clutter/clutter-timeline.c (clutter_timeline_get_progressx): Fix
	arithmetic for calculating the reverse progress when the timeline
	is backward. (Should subtract from one instead of taking the
	reciprocal).
2008-04-14 11:07:34 +00:00
Neil Roberts
0b8a500fca Upgraded the Win32 backend to work with the multi-stage
subclassing code.

	* clutter/win32/clutter-stage-win32.h: 
	* clutter/win32/clutter-stage-win32.c: Now inherits from
	ClutterGroup and implements ClutterStageWindow instead of
	inheriting directly from ClutterStage.

	* clutter/win32/clutter-event-win32.c (message_translate): Now
	takes an extra parameter to return whether DefWindowProc should be
	called. This is needed to prevent the default WM_CLOSE handler
	from destroying the window.

	* clutter/win32/clutter-backend-win32.c
	(clutter_backend_win32_dispose): Destroy all of the stages using
	g_slist_foreach as per bug #871. Now also destroys the GL context.
	(clutter_backend_win32_get_features): Added assertions to ensure
	there is a valid GL context.
	(clutter_backend_win32_ensure_context): Accepts NULL stage. Gets
	implementation pointer from the stage.
2008-04-13 08:43:32 +00:00
Emmanuele Bassi
bf48bd1f55 2008-04-11 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-container.c:
	(clutter_container_get_type): Relax the precondition on the
	implementations of ClutterContainer from ClutterActor to
	GObject.
2008-04-11 15:40:08 +00:00
Emmanuele Bassi
8867c1bae5 2008-04-11 Emmanuele Bassi <ebassi@openedhand.com>
* README: Add a note about the Shader API changes.

	* clutter/clutter-deprecated.h: Add deprecation symbols.

	* clutter/clutter-shader.[ch]: Rename the :bound read-only
	property to :compiled. Also rename clutter_shader_bind()
	and clutter_shader_is_bound() to clutter_shader_compil() and
	clutter_shader_is_compiled(), respectively.

	* clutter/glx/clutter-stage-glx.c:
	(clutter_stage_glx_unrealize): Update after
	clutter_shader_release_all() rename.

	* tests/test-shader.c (button_release_cb), (main): Update.
2008-04-11 12:00:50 +00:00
Emmanuele Bassi
0535283b77 2008-04-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglx/clutter-backend-egl.c:
	(clutter_backend_egl_ensure_context): Sync up with the GLX
	backend.

	(clutter_backend_egl_create_stage): Dumb compilation fix.

	* clutter/glx/clutter-backend-glx.c:
	(clutter_backend_glx_create_stage): Unref the stage if we are
	erroring out.
2008-04-10 19:58:47 +00:00
Emmanuele Bassi
c97bcb37ba 2008-04-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglx/clutter-stage-egl.c:
	(clutter_stage_egl_realize): Sync up with the GLX backend.
2008-04-10 19:54:08 +00:00
Emmanuele Bassi
497734062c 2008-04-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/Makefile.am: Update the regular expression to match
	all the namespaces we actually use. Thanks to Neil Roberts for
	spotting this. A make distclean is needed.

	* clutter/cogl/gl/Makefile.am:
	* clutter/cogl/gles/Makefile.am:
	* clutter/json/Makefile.am:
	* clutter/pango/Makefile.am: Revert previous commit.
2008-04-09 14:18:42 +00:00
Emmanuele Bassi
05b2e6bc1c 2008-04-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/cogl/Makefile.am:
	* clutter/cogl/gl/Makefile.am:
	* clutter/cogl/gles/Makefile.am:
	* clutter/json/Makefile.am:
	* clutter/pango/Makefile.am: Fix the visibility of all the
	symbols, for the main library and the statically linked ones.
2008-04-09 13:27:00 +00:00
Emmanuele Bassi
cf4ba6c512 2008-04-09 Emmanuele Bassi <ebassi@openedhand.com>
* autogen.sh: Clean up a bit

	* clutter/clutter-fixed.[ch]:
	(clutter_double_to_fixed),
	(clutter_double_to_int),
	(clutter_double_to_uint): Make these functions public, as they
	are expanded by their respective macros. This fixes the errors
	from the linker trying to resolve their name.
2008-04-09 10:51:15 +00:00
Neil Roberts
b4ab8b63a1 Applied patch from bug #871
* clutter/x11/clutter-backend-x11.c (clutter_backend_x11_dispose):
	Call g_slist_foreach instead of iterating over the stage_manager
	list manually when deleting stages. Otherwise the 'next' pointer
	of the list node can get corrupted when the actor removes itself
	from the list.

	* clutter/clutter-stage.c (clutter_stage_dispose): Call
	clutter_actor_unrealize in the dispose handler. This fixes
	problems where the dispose handler for the ClutterStageWrapper
	can't deselect the GL context until the stage is unrealized.
2008-04-09 09:33:32 +00:00
Emmanuele Bassi
7fd5d5d10d 2008-04-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-backend.c: Add more debug messages

	* clutter/clutter-stage.h:
	* clutter/clutter-stage.c:
	(clutter_stage_is_default): Add a function to check if the
	stage is the default one.

	* clutter/glx/clutter-backend-glx.c:
	* clutter/glx/clutter-stage-glx.c:
	* clutter/x11/clutter-stage-x11.c: Keep the stage wrapper
	and implementation flags in sync, to ensure that the GL
	context is always set.
2008-04-04 17:26:26 +00:00
Emmanuele Bassi
f859135082 2008-04-04 Emmanuele Bassi <ebassi@openedhand.com>
Bug #864 - Allow instantiating and subclassing of ClutterStage

	* clutter/Makefile.am: Add clutter-stage-window.[ch]

	* clutter/clutter-stage-manager.c:
	(_clutter_stage_manager_remove_stage): Do not warn if removing
	a stage we don't manage, as we might be invoked multiple times
	during a ClutterState dispose sequence.

	* clutter/clutter-actor.c:
	* clutter/clutter-backend.[ch]:
	* clutter/clutter-main.c:
	* clutter/clutter-private.h:
	* clutter/clutter-stage.[ch]: Make ClutterStage a proxy actor,
	with a private actor implementing the ClutterStageWindow
	interface for handling the per-backend realization, painting
	and unrealization, plus all the windowing system abstraction.

	* clutter/x11/clutter-event-x11.c:
	* clutter/x11/clutter-stage-x11.[ch]: Port the X11 backend
	to the new backend and stage API and semantics.

	* clutter/glx/clutter-backend-glx.c:
	* clutter/glx/clutter-stage-glx.c: Port the GLX backend to
	the new backend and stage API and semantics.

	* clutter/eglx/clutter-backend-egl.[ch]:
	* clutter/eglx/clutter-stage-egl.[ch]: Port the EGLX backend
	to the new backend and stage API and semantics (untested).

	* tests/test-multistage.c (on_button_press): Rename
	clutter_stage_create_new() to clutter_stage_new().
2008-04-04 15:02:11 +00:00
Neil Roberts
f126822b5c 2008-04-04 Neil Roberts <neil@o-hand.com>
Applied patch from bug #810.

	* clutter/x11/clutter-event-x11.c (event_translate): Set a flag
	when resizing the stage from a ConfigureNotify event.

	* clutter/x11/clutter-stage-x11.c
	(clutter_stage_x11_request_coords): Don't try to resize the window
	again if the flag is set.
	(clutter_stage_x11_init): Added initialiser for the flag.

	* clutter/x11/clutter-stage-x11.h (struct _ClutterStageX11): Added
	the flag.
2008-04-04 13:46:50 +00:00
Matthew Allum
e44ac14ef7 2008-04-04 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        Remove uneeded stage private member.
        Add show-on-set-parent prop and make so by default Actors are
        now automatically shown when reparented (#791)

        * clutter/eglx/clutter-backend-egl.c:
        * clutter/cogl/gles/cogl.c:
        A couple of minor comments.

        * clutter/eglnative/Makefile.am:
        Add missing clutter-egl.h header (back port from trunk)

        * tests/test-actors.c:
        Modify to take advantage of new show-on-set-parent functionality.
2008-04-04 13:20:02 +00:00
Emmanuele Bassi
509d2ad395 2008-04-03 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/Makefile.am: Only export symbols matching "^clutter.*",
	to avoid exposing the library-private symbols starting with
	an underscore.
2008-04-03 03:26:00 +00:00
Emmanuele Bassi
653afecc11 2008-04-03 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-alpha.c: ClutterAlpha is an InitiallyUnowned
	subclass. This should fix a lot of leakage. (#860, Neil Roberts)
2008-04-03 03:09:28 +00:00
Emmanuele Bassi
6fa02d3aa0 2008-04-03 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/glx/clutter-backend-glx.c:
	(clutter_backend_glx_get_features): Assert if we don't have a
	GL context here or if it's not matched to a drawable. Asserting
	might seem too drastic, but if we don't have a valid GL context
	here then Clutter will segfault anyway, and I'll take an assert()
	over a hard to read, deep in GLX guts backtrace any day (and
	twice on a monday).

	* clutter/x11/clutter-backend-x11.c:
	(clutter_backend_x11_get_features): No need for a variable here.
2008-04-03 03:04:41 +00:00
Matthew Allum
c158a93a84 2008-04-01 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-backend.c:
        * clutter/glx/clutter-backend-glx.c:
        * clutter/glx/clutter-stage-glx.c:
        Allow NULL to be passed to _clutter_backend_ensure_context
        which essentially clears GL context. This is hooked into stage
        unrealisation.  Isn't yet quite bulletproof.
        Fixes issues with gtk-embed crasher (thanks to Neil).
2008-04-01 14:04:46 +00:00
Robert Bragg
d04fd6d620 2008-04-1 Robert Bragg <bob@o-hand.com>
* clutter/glx/clutter-glx-texture-pixmap.c:
	In clutter_glx_texture_pixmap_dispose; trap X errors around
	glXDestroyGLXPixmap so we can't die due to BadDrawable errors.
2008-04-01 13:36:19 +00:00
Matthew Allum
244eedb5bd 2008-03-31 Matthew Allum <mallum@openedhand.com>
* README:
        Add notes on new multistage feature.

        * clutter/clutter-stage-manager.c:
        Dont ref contained stages.

        * clutter/clutter-stage.c:
        Automatically remove stage from stage manager on finalisation.
        Cleans up warnings when a stage is destroyed.

        * clutter/clutter-backend.h:
        * clutter/glx/clutter-backend-glx.c:
        Minor formatting cleanups.

        * clutter/glx/clutter-stage-glx.c:
        * configure.ac:
        * clutter/clutter-version.h.in:
        Add a general CLUTTER_STAGE_TYPE define, should be useful for
        evntual stage subclassing and creating with g_object_new()
2008-03-31 17:15:02 +00:00
Neil Roberts
e88c8b4ce1 2008-03-30 Neil Roberts <neil@o-hand.com>
* clutter/win32/clutter-backend-win32.c
	(clutter_backend_win32_init): Added a call to
	timeBeginPeriod. Without this the frame rates are terrible because
	the glib timeouts are not accurate enough. However this requires
	Glib >= 2.16.0 to take any effect because of a change in the way
	g_poll is implemented. See revision 6597 of glib.
	(clutter_backend_win32_finalize): Added a call to timeEndPeriod.

	* configure.ac: Added -lwinmm to the library dependencies for the
	Win32 backend.
2008-03-30 22:27:27 +00:00
Neil Roberts
1a263dca5c 2008-03-30 Neil Roberts <neil@o-hand.com>
* clutter/win32/clutter-win32.h: 
	* clutter/win32/clutter-stage-win32.h: 
	* clutter/win32/clutter-stage-win32.c: 
	* clutter/win32/clutter-event-win32.c: 
	* clutter/win32/clutter-backend-win32.h: 
	* clutter/win32/clutter-backend-win32.c:
	Upgraded for multi-stage support.

	* clutter/win32/clutter-stage-win32.c
	(clutter_stage_win32_request_coords): Fixed so that it doesn't set
	the position or size if it hasn't changed. This was causing
	problems when the window was resized using the top left corner. In
	that case the window receives resize and move messages separately
	which caused the window to flash at a different size or position
	while one message was handled before the other.
	(clutter_stage_win32_realize): Added PFD_GENERIC_ACCELERATED to
	the list of pixel format flags to force it to use hardware
	acceleration.

2008-03-30  Neil Roberts  <neil@o-hand.com>

	* clutter-sections.txt: Added clutter_win32_get_stage_from_window
2008-03-30 16:51:01 +00:00
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
Neil Roberts
dd7ff3e829 2008-03-26 Neil Roberts <neil@o-hand.com>
* clutter/win32/clutter-win32.h: Added gtk-doc documentation for
	the Win32 backend section.

	* clutter/win32/clutter-stage-win32.c
	(clutter_win32_get_stage_window): Fixed punctuation in the
	documentation.

	* README: Added notes about the Win32 backend.

2008-03-26  Neil Roberts  <neil@o-hand.com>

	* clutter-sections.txt: Added a section for the Win32 specific
	API.

	* clutter-docs.sgml: Added comments about the Win32 backend.

	* Makefile.am: Added bits to ignore the headers for the Win32
	backend.
2008-03-26 22:22:32 +00:00
Neil Roberts
9b52136be4 2008-03-26 Neil Roberts <neil@o-hand.com>
* clutter/win32/clutter-event-win32.c (clutter_event_check):
	Removed the pointless parameter in the call to check_msg_pending.
	(check_msg_pending): Fixed to use PeekMessageW instead of
	PeekMessage.
2008-03-26 10:58:12 +00:00
Neil Roberts
051ed6b43b 2008-03-25 Neil Roberts <neil@o-hand.com>
Added a native Win32 WGL backend.

	* configure.ac: Added the 'win32' flavour.

	* clutter/cogl/gl/cogl.c (cogl_get_proc_address): Added an ifdef
	to use wglGetProcAddress with the Win32 backend.

	* clutter/Makefile.am (DIST_SUBDIRS): Added the win32 directory.

	* clutter/win32/clutter-win32.pc.in:
	* clutter/win32/clutter-win32.h: 
	* clutter/win32/clutter-stage-win32.h: 
	* clutter/win32/clutter-stage-win32.c: 
	* clutter/win32/clutter-event-win32.c: 
	* clutter/win32/clutter-backend-win32.h: 
	* clutter/win32/Makefile.am:
	* clutter/win32/clutter-backend-win32.c: New files.
2008-03-25 15:42:50 +00:00
Emmanuele Bassi
7c05499865 2008-03-19 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model.[ch]: Add a ::copy() virtual function
	for copying iterators.

	* clutter/clutter-list-model.c:
	(clutter_list_model_iter_copy),
	(clutter_list_model_iter_class_init): Implement the ::copy()
	function inside the ListModel iterator subclass.
2008-03-19 18:33:33 +00:00
Emmanuele Bassi
8efb98edae 2008-03-19 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-group.c:
	* clutter/clutter-texture.c: Use CLUTTER_ACTOR_IS_VISIBLE()
	and not CLUTTER_ACTOR_IS_MAPPED().
2008-03-19 15:05:16 +00:00
Emmanuele Bassi
57f9439031 2008-03-19 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-score.[ch]: Small clean ups and refactoring.
	Use gulong instead of guint, so we have a bigger id space for
	the timelines inside a Score.
2008-03-19 11:46:57 +00:00
Chris Lord
b961d5484c * clutter/clutter-actor.c:
(_clutter_actor_apply_modelview_transform), (clutter_actor_paint):
        Apply clip inside paint function instead of transform function
2008-03-19 11:38:53 +00:00
Emmanuele Bassi
c1e45f7ee7 2008-03-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-score.c: Update documentation.
2008-03-18 22:10:05 +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
0ca514a35f 2008-03-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-texture.c: Small clean ups in the coding style.
2008-03-18 17:56:50 +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
Matthew Allum
74c8271db6 2008-03-09 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-id-pool.c: (clutter_id_pool_free):
        Use g_slice_free not g_free.
        * clutter/clutter-main.c: (_clutter_do_pick):
        Dont 'over read' the framebuffer when picking (#839, Neil Roberts)
2008-03-09 19:07:17 +00:00
Øyvind Kolås
cdf8bb0739 Refactored the integer id->ClutterActor mapping code to be a self
contained data structure.
* clutter/clutter-id-pool.[ch]: new files.
* clutter/Makefile.am: added clutter-id-pool.[ch]
* clutter/clutter-private.h: use a ClutterIDPool instead of GArray and
GSList to keep track of the reusable ids.
* clutter/clutter-actor.c: moved id pool logic away.
* clutter/clutter-main.c: simplified id pool creation/finalization.
2008-03-07 17:34:40 +00:00
Robert Bragg
d628513f9d 2008-03-07 Robert Bragg <bob@o-hand.com>
* clutter/clutter-timeline.c:
	Timeline changes to fix the issues identified in bugzilla #439
	
	Notably, this includes some tweaks to timeline semantics. So e.g. for a   
	10 frame timeline here are some points about the new timeline code:
	- When you create a timeline it starts with current_frame_num == 0
	- After starting a timeline, the first timeout is for
	  current_frame_num == 1 (Notably it isn't 0 since there is a delay
	  before the first timeout signals so re-asserting the starting point
	  would give a longer than average first frame.)
	- For a non looping timeline the last timeout would be for
	  current_frame_num == 10
	- For a looping timeline the timeout for current_frame_num == 10 would      
	  be followed by a timeout for current_frame_num == 1 and frame 0 is
	  considered == frame 10.
	- Asking for a timeline of N frames might better be described as asking    
	  for a timeline of _length_ N.

	Warning: Although I tried to test things, I guess it's quite likely that
	this breaks somthing depending on a specific quirk of the previous
	timeline code.
2008-03-07 01:00:00 +00:00
Emmanuele Bassi
abc29d4407 2008-03-06 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_set_anchor_point_from_gravity): Fix a stupid
	conversion from pixels to units that should I not have made.
2008-03-06 18:12:40 +00:00
Emmanuele Bassi
0563b9cfaf 2008-02-28 Gwenole Beauchesne <gbeauchesne@splitted-desktop.org>
Signed off by: Emmanuele Bassi <ebassi@openedhand.com>

	* clutter/clutter-group.c (clutter_group_real_lower): Fix to
	actually lower the actor under the 'above' actor. (#822)
2008-03-06 13:39:56 +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
Chris Lord
781661e9c3 * clutter/clutter-model.c: (clutter_model_set_sorting_column):
Don't disable sorting on column 0
2008-03-06 11:44:37 +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
Emmanuele Bassi
57a954b1eb 2008-03-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-main.c (clutter_do_event): Do not throttle the
	motion events if the per-actor delivery has been disabled.
2008-03-04 16:23:13 +00:00
Øyvind Kolås
9a6dfbdbaa * clutter/pango/pangoclutter-render.c: (draw_glyph): use g_slice_new0
instead of g_slice_new when allocating the glyph_info, avoiding a
branch based on uninitialized memory.
2008-03-04 11:16:05 +00:00
Øyvind Kolås
bb6f3c6a4f Reuse the numeric id's used for picking actors to avoid the potential
of overflowing the id numbers when continusly creating and destroying
actors on long running applications for 16bpp.
* clutter/clutter-private.h: replaced hashtable with GArray and a
GSList for available slots in the array.
* clutter/clutter-actor.c: (create_actor_id): function to create an
actor->id mapping, (release_actor_id): function to mark an existing id
as available for reuse.
* clutter/clutter-main.c: (clutter_context_free): added utility
function for cleaning up the context, 
(clutter_get_actor_by_gid): use the GArray for looking up actors.
2008-02-29 14:54:28 +00:00
Emmanuele Bassi
1bef7d3a1a 2008-02-26 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-alpha.c:
	(clutter_exp_inc_func),	(clutter_exp_dec_func): Clamp the value
	of the alpha function between [0, MAX_ALPHA]. (#800)
2008-02-26 13:57:53 +00:00
Emmanuele Bassi
b5bcee6c6c 2008-02-25 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-main.c (emit_event): Fix the last commit
	which inverted a condition.
2008-02-25 16:50:50 +00:00
Emmanuele Bassi
bcd9a6dcec 2008-02-25 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Remove the usage of g_return_if_fail()
	from static functions: either assert or use g_warning() to check
	internal state, as g_return_if_fail() can be compiled out.

	* clutter/clutter-main.c: Ditto as above.
2008-02-25 12:24:56 +00:00
Tomas Frydrych
db5b80465a 2008-02-25 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-texture.c:
	(texture_update_data):
	Set alignment based on actual data rowstride, not the texture
	width.
2008-02-25 11:34:51 +00:00
Tomas Frydrych
a9ff224ba1 2008-02-21 Tomas Frydrych <tf@openedhand.com>
* clutter/x11/clutter-backend-x11.h:
	* clutter/x11/clutter-event-x11.c:
	* clutter/x11/clutter-x11.h:
	(clutter_x11_handle_event):
	(clutter_x11_disable_event_retrieval):
	Functions to allow to hook into external XEvent retrieval (for
	example when using clutter with gtk); NB: this API is tentative.
2008-02-21 15:18:14 +00:00
Emmanuele Bassi
4dfe577fba 2008-02-21 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/x11/clutter-event-x11.c (event_translate): Ignore
	PropertyNotify events if they don't match our window.

	* clutter/x11/clutter-stage-x11.c:
	(clutter_stage_x11_request_coords): Chain up to the parent's
	request coords.
2008-02-21 12:45:48 +00:00
Emmanuele Bassi
cbf1b90895 2008-02-21 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/x11/clutter-event-x11.c (event_translate): Ignore
	ConfigureNotify events if we are painting on a foreign window.

	* clutter/x11/clutter-stage-x11.c:
	(clutter_stage_x11_request_coords): Reliquish control of the
	window size, if we are painting on a foreign window. This fixes
	the GtkClutterEmbed widget.
2008-02-21 12:17:01 +00:00
Emmanuele Bassi
6e9c4de9ad 2008-02-20 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-timeline.c (clutter_timeline_set_delay): Relax
	the condition to allow 0 msecs of delay (meaning: no delay).
2008-02-20 17:20:36 +00:00
Tomas Frydrych
1cec9a01f6 2008-02-20 Tomas Frydrych <tf@openedhand.com>
* clutter/Makefile.am:
	Added libclutter_ ... _la_DEPENDENCIES to fix dependency tracking.
2008-02-20 16:00:33 +00:00
Tomas Frydrych
9aba9710c1 2008-02-20 Tomas Frydrych <tf@openedhand.com>
* clutter/x11/clutter-x11.h:
	* clutter/x11/clutter-backend-x11.c:
	(clutter_x11_set_display):
	Function to set X display connection prior to calling
	clutter_init(); stripped loads of trailing space.
2008-02-20 14:16:54 +00:00
Tomas Frydrych
0864743fd1 2008-02-20 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-marshal.list:
	* clutter/glx/Makefile.am:
	* clutter/glx/clutter-backend-glx.c:
	* clutter/glx/clutter-backend-glx.h:
	* clutter/glx/clutter-glx.h:
	* clutter/x11/Makefile.am:
	ClutterX11TexturePixmap and ClutterGLXTexturePixmap actors (#713;
	patch by Johan Bilien).
2008-02-20 12:43:54 +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
Chris Lord
015eba286f * clutter/clutter-model.c: (clutter_model_resort):
Don't return when there's no sort function set, leave that to the
        model sub-class
2008-02-19 12:31:50 +00:00
Emmanuele Bassi
68f618ce0b 2008-02-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-list-model.c:
	(clutter_list_model_iter_set_value): Fix a typo in the conversion
	code.
2008-02-18 14:32:57 +00:00
Emmanuele Bassi
117b00e0f9 2008-02-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_get_box_from_vertices): Avoid a masking warning
	caused by math.h utter braindamage.
2008-02-18 09:56:37 +00:00
Emmanuele Bassi
cbbab92b78 2008-02-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Document the fact that ancestor can
	be NULL in the relative transformation API, and what are the
	effects.
2008-02-18 09:43:01 +00:00
Matthew Allum
41fb7b6a30 2008-02-15 Matthew Allum <mallum@openedhand.com>
* clutter/pango/pangoclutter-render.c: (draw_glyph):
        More safety checks (#796, Tero Saarni)
2008-02-15 20:22:08 +00:00
Chris Lord
9b780c2716 * clutter/clutter-entry.c:
* clutter/clutter-group.c:
        * clutter/clutter-label.c:
        * clutter/clutter-rectangle.c:
        * clutter/clutter-texture.c:
        More documentation fixes
2008-02-15 17:11:50 +00:00
Chris Lord
ecd62417d2 * clutter/clutter-entry.c: (clutter_entry_class_init):
More documentation fixes
2008-02-15 16:40:26 +00:00
Chris Lord
2c4bdc7636 * clutter/clutter-label.c: (clutter_label_class_init):
More documentation fixes
2008-02-15 16:26:00 +00:00
Chris Lord
94f884f2ef * clutter/clutter-clone-texture.c:
* clutter/clutter-texture.c: (clutter_texture_class_init):
        More documentation fixes
2008-02-15 15:49:44 +00:00
Chris Lord
d722fb9220 * clutter/clutter-actor.c:
* clutter/clutter-container.c:
        * clutter/clutter-media.c:
        * clutter/clutter-rectangle.c:
        * clutter/clutter-stage.c: (clutter_stage_class_init):
        * clutter/clutter-stage.h:
        * clutter/clutter-texture.c:
        * doc/reference/clutter-docs.sgml:
        Fix more documentation
2008-02-15 15:18:02 +00:00
Emmanuele Bassi
66f244b1cc 2008-02-15 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]:
	* clutter/clutter-types.h:
	* doc/reference/clutter-docs.sgml: Fix a lot of documentation.

2008-02-15  Matthew Allum  <mallum@openedhand.com>
2008-02-15 14:39:25 +00:00
Matthew Allum
97b9cd92f0 2008-02-15 Matthew Allum <mallum@openedhand.com>
* clutter/cogl/gles/cogl.c: (cogl_paint_init):
        Remove depth test getting turned on by default (unlike GL backend)
2008-02-15 14:30:45 +00:00
Tomas Frydrych
fa7a114ce8 2008-02-15 Tomas Frydrych <tf@openedhand.com>
* configure.ac:
	* clutter/clutter-version.h.in:
	* build/msvc_2k5/clutter-version.h:
	Removed unused --without-fpu configure option and CLUTTER_NO_FPU
	macro
2008-02-15 13:04:33 +00:00
Emmanuele Bassi
d76f7e42ea 2008-02-15 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Rename
	clutter_actor_get_box_from_vertices() to
	clutter_actor_box_get_from_vertices().

	* clutter/clutter-group.c (clutter_group_query_coords): Fix the
	query_coords() implementation.
2008-02-15 10:46:38 +00:00
Tomas Frydrych
78341d2e28 2008-02-15 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-actor.h:
	(clutter_group_query_coords):
	Added function to translate vertex array to a bounding box.

	(clutter_actor_is_scaled):
	(clutter_actor_is_rotated):
	Fixed documentation.
2008-02-15 09:40:41 +00:00
Tomas Frydrych
4d53cb1037 2008-02-15 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-group.c: (clutter_group_query_coords):
	Disabled new code taking into account actor scale and rotation.
2008-02-15 09:13:58 +00:00
Tomas Frydrych
ea9b7b6550 2008-02-14 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-actor.h:
	(clutter_actor_is_scaled):
	(clutter_actor_is_rotated):
	Convenience functions to test whether actor is scaled or rotated.

	(clutter_actor_apply_relative_transform_to_point):
	Removed unused variable.

	* clutter/clutter-group.c:
	(clutter_group_query_coords):
	Use clutter_actor_get_relative_vertices() to calculate bounding
	boxes of children that are scaled or rotated.
2008-02-15 09:13:50 +00:00
Tomas Frydrych
02ae0fcd9e 2008-02-14 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-actor.h:
	(clutter_actor_get_relative_vertices):
	(clutter_actor_apply_relative_transform_to_point):
	Functions to calculate actor vertices in the plane of a given
	ancestor.
2008-02-14 15:59:38 +00:00
Chris Lord
aa9e91e261 * clutter/clutter-texture.c: (texture_get_tile_pixbuf),
(clutter_texture_get_pixbuf):
        Fix copying textures to pixbufs for tiled textures and correct #ifndef
        typo

        * clutter/clutter-util.c:
        Amend documentation
2008-02-12 17:17:52 +00:00
Matthew Allum
9c625d187d 2008-02-12 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c: (texture_get_tile_pixbuf):
        ifdef out 'leaked' GL only API call.
2008-02-12 15:17:28 +00:00
Tomas Frydrych
14de7190d2 2008-02-12 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-texture.c (texture_update_data):
	Fixed incorrect calculation of offset into texture data (needs to
	use width of the texture, not of the updated area).
2008-02-12 13:41:44 +00:00
Tomas Frydrych
161163cf14 2008-02-12 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-texture.c (texture_update_data):
	Fixed incorrect aligment of texture data.
2008-02-12 13:12:31 +00:00
Tomas Frydrych
b40643b86e 2008-02-12 Tomas Frydrych <tf@openedhand.com>
* clutter/x11/clutter-event-x11.c (event_translate):
	Ignore events directed at the stage window once they have been
	passed to the filter functions.
2008-02-12 12:39:22 +00:00
Matthew Allum
3ef9e235ef 2008-02-11 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        Minor documentation tweak to class description.

        * clutter/clutter-behaviour-scale.c:
        'Force' start + end vals of scale behaviour
        (#779, Havoc Pennington)
2008-02-11 20:31:16 +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
3c1792bc86 2008-02-11 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c (clutter_actor_transform_stage_point):
	Moved part of the calculation to floating point to avoid overflow
	of ClutterFixed range for large actors (bug 613).
2008-02-11 10:56:57 +00:00
Matthew Allum
2bc7289aee 2008-20-10 Matthew Allum <mallum@o-hand.com>
* clutter/osx/clutter-stage-osx.c
        Fix up a couple of typos breaking build.
2008-02-10 13:05:08 +00:00
Emmanuele Bassi
d192f73b78 2008-02-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Add actor box diagram and notes.
2008-02-08 16:13:15 +00:00
Emmanuele Bassi
143be77205 2008-02-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour-path.c: Move the nice graph and
	description from the Path behaviour...

	* clutter/clutter-behaviour.c: ... to the main Behaviour class.
2008-02-08 15:39:41 +00:00
Emmanuele Bassi
3c307796a3 2008-02-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour-path.c: Add a paragraph describing
	the effects of different alpha functions on the path behaviour.
2008-02-08 14:34:58 +00:00
Emmanuele Bassi
9a05ab16e6 2008-02-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Reference the newly added event-flow.png

	* clutter/clutter-alpha.c: Ditto, with alpha-func.png

	* clutter/clutter-texture.c: Fix the XML.
2008-02-08 13:52:11 +00:00
Emmanuele Bassi
bcf968bc77 2008-02-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour-path.c: Reference the newly
	added image showing the effects of different alpha functions
	on the same path behaviour.

	* configure.ac: Find out the prefix of some of the libraries
	we depend upon, so that gtk-doc can fix the references for us.
2008-02-08 13:40:50 +00:00
Matthew Allum
9f6d7aa483 2008-02-08 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c:
        Tidy up offscreen code, adding into realize/unrealize.
        Add more safety code.
        Improve documentation.
2008-02-08 10:37:38 +00:00
Emmanuele Bassi
07eb790188 2008-02-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c:
	(resolve_alpha_func): Use a whitelist containing the alpha function
	provided by Clutter, as a fallback in case g_module_open() does not
	work.

	(clutter_script_parse_alpha): Add an explicit warning in case we
	cannot find the alpha function used inside a UI definition.
2008-02-08 10:19:53 +00:00
Tomas Frydrych
60f162b7bf 2008-02-07 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-group.c:
	(clutter_group_query_coords):
	Take into account the anchor point when calculating the box size.
2008-02-07 18:37:11 +00:00
Emmanuele Bassi
d3e15f20eb 2008-02-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Add a note on clutter_actor_set_size()
	reguarding groups.

	* clutter/clutter-group.c: Clarify group sizing.
2008-02-07 17:08:29 +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
Emmanuele Bassi
6b4a9c4df5 2008-02-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script-parser.c:
	(clutter_script_get_type_from_symbol),
	(clutter_script_get_type_from_class): Use BIND_LAZY flag
	when looking at the symbols, so we don't load them all up.

	* clutter/clutter-script.c (resolve_alpha_func): Ditto as above.
2008-02-07 14:17:53 +00:00
Øyvind Kolås
56a34b724f * clutter/clutter-actor.c:
(_clutter_actor_apply_modelview_transform): perform translation as
well as anchor point adjustment based on self not being stage (and
not by self not being an orphan).
2008-02-07 13:05:18 +00:00
Matthew Allum
a3c79e567c 2008-02-07 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-stage.c:
        * clutter/clutter-stage.h:
        * clutter/eglnative/clutter-stage-egl.c:
        * clutter/eglx/clutter-stage-egl.c:
        * clutter/osx/clutter-stage-osx.c:
        * clutter/sdl/clutter-stage-sdl.c:
        * clutter/x11/clutter-stage-x11.c:
        Add at least somne basic offscreen handling into all backends.
        Remove unused clutter_stage_set_offscreen vfunc. (#549)

        * clutter/clutter-texture.c:
        Minor API doc tweak, noting rowstride source in set_area
2008-02-07 12:55:51 +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
b1615f01a4 2008-02-07 Matthew Allum <mallum@openedhand.com>
* clutter/pango/pangoclutter-render.c:
        Warn if requested glyph is too big for underlying texture cache.
        (see #666)
2008-02-07 10:42:22 +00:00
Matthew Allum
3185947520 2008-02-07 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c: (texture_upload_data):
        Remove random appearing 'priv->filter_quality =1' (#643)
2008-02-07 10:19:20 +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
Matthew Allum
ccc58efad4 2008-02-06 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c:
        Initial attempt at handling resizing/tranformed source textures.

        * clutter/pango/pangoclutter-render.c: (draw_glyph):
        Guards against freetype returning NULL bitmaps and
        thus causing device by zeros on NVIDIA drivers. (see ml)
2008-02-06 14:39:04 +00:00
Matthew Allum
49b189ecbb 2008-02-05 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c: (clutter_actor_get_vertices):
        Make sure GL related Matrices are initialised. Fixes #756

        * clutter/clutter-texture.c:
        Fix up code from Norways answer to Jean-Michel Basquiat.
        (warning on tile_get_pixbuf)
2008-02-05 16:40:46 +00:00
Øyvind Kolås
19e64c65d5 * clutter/clutter-texture.c: removed spurious left over debug printf. 2008-02-05 15:37:52 +00:00
Øyvind Kolås
17f54fd7b8 * clutter/clutter-texture.c: applied modified patch from Gwenole
Beuchesne adressing bug #635. Adressing a buffer overflow in
clutter_texture_get_pixbuf() when tiling is forced.
2008-02-05 14:49:29 +00:00
Emmanuele Bassi
b884bc4dd5 2008-02-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-shader.c (clutter_shader_constructor): Keep the
	constructor line under the 80 columns using a variable.
2008-02-04 22:38:27 +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
Chris Lord
3878e6730a * clutter/clutter-actor.c: (clutter_actor_transform_stage_point):
Check that x_out and y_out != NULL before setting their contents
2008-02-04 15:11:29 +00:00
Øyvind Kolås
5eb9bbc1f3 * clutter/clutter-timeline.c: (clutter_timeline_rewind): updated
documentation to take direction into account.
2008-02-04 14:35:47 +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
f6602ad265 2008-02-02 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-timeline.c:
        Document frame number limits in new-frame signal.

        * clutter/x11/clutter-event-x11.c:
        Remove uneeded error trap (#751)
2008-02-02 23:39:53 +00:00
Matthew Allum
d83442476f 2008-02-01 Matthew Allum <mallum@openedhand.com>
* clutter/cogl/cogl.h:
        * clutter/cogl/gl/cogl.c:
        * clutter/cogl/gles/cogl.c:
       Disable the depth test and buffer as has some strange side
       effects, mainly on x/y axis rotation with multiple layers at
       same depth (eg rotating text on a bg has very strange
       effect). Seems no clean 100% effective way to fix without other
       odd issues.. So for now move to application to handle and add
       cogl_enable_depth_test() as for custom actors (i.e groups) to
       enable if need be.
2008-02-01 18:14:54 +00:00
Matthew Allum
b14da429e0 2008-02-01 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c: (clutter_texture_new_from_actor):
        Fix typo breaking FBO rendering on anything other than a cloned
        texture.
2008-02-01 16:54:48 +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
6bb998f25f * clutter/cogl/gles/cogl.c: (cogl_rectangle_internal): increase size
of GLfixed[] array to make contents fit.
2008-02-01 12:07:23 +00:00
Emmanuele Bassi
f0145e7f83 2008-02-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.h: Clean up a bit the flag-related macros.
2008-02-01 11:53:10 +00:00
Emmanuele Bassi
ecc673d9cd 2008-02-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_get_property): Use clutter_actor_get_reactive()
	instead of the IS_REACTIVE() macro.

	(clutter_actor_set_reactive): Emit the notify signal for the
	reactive property.

	* clutter/clutter-timeline.c:
	(timeline_timeout_func),
	(clutter_timeline_get_delta): Coding style fixes.
2008-02-01 11:22:59 +00:00
Robert Bradford
756d2223da 2008-01-31 Rob Bradford <rob@openedhand.com>
* clutter/glx/clutter-stage-glx.c:
	* clutter/glx/clutter-backend-glx.c:
	* clutter/glx/clutter-backend-glx.h:
	Fix formatting.
2008-01-31 23:10:30 +00:00
Emmanuele Bassi
adf89a2e17 2008-01-31 Emmanuele Bassi <ebassi@sprite>
* clutter/clutter-timeline.c (clutter_timeline_skip): Don't
	add the frames outside the direction check. (thanks to benoar
	on clutter-list for spotting it)
2008-01-31 21:15:54 +00:00
Tomas Frydrych
81612d44e7 2007-01-31 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_transform_vertices):
	Call clutter_actor_query_coords() instead of accessing the actor
	box, so that actors that calculate their bounding box on the fly
	(like ClutterGroup) work.

	* (_clutter_actor_apply_modelview_transform_recursive):
	Made to work for parentless actors.
2008-01-31 17:30:46 +00:00
Emmanuele Bassi
d0b0e1bcd4 2008-01-31 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-entry.h:
	* clutter/clutter-entry.c:
	(clutter_entry_set_cursor_position),
	(clutter_entry_get_cursor_position): Rename [gs]et_position()
	to [gs]set_cursor_position(), and avoid method name collisions
	with bindings for high-level languages.

	* clutter/clutter-deprecated.h: Add replacement warnings for the
	renamed methods.
2008-01-31 14:24:04 +00:00
Emmanuele Bassi
d7e01ee396 2008-01-31 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c (clutter_actor_init): Explicitly
	memset() to 0 the clip container, so if you get the clip without
	having set it, you won't get garbage.

2008-01-31  Rob Bradford  <rob@openedhand.com>
2008-01-31 14:21:36 +00:00
Robert Bradford
e40ba6e9b7 2008-01-31 Rob Bradford <rob@openedhand.com>
* clutter/x11/clutter-backend-x11-private.h:
	Add missing start to comment

	* clutter/x11/clutter-backend-x11.c:
	* clutter/x11/clutter-event-x11.c:
	* clutter/x11/clutter-stage-x11.c:
	* clutter/x11/clutter-x11.h:
	Remove tabs.
2008-01-31 11:24:11 +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
27dfc4e1ec 2008-01-25 Emmanuele Bassi <ebassi@sprite>
* clutter/clutter-group.c (sort_z_order): Invert condition to
	return to the same as in revision 1976.
2008-01-25 21:48:20 +00:00
Emmanuele Bassi
45c040f5c4 2008-01-25 Emmanuele Bassi <ebassi@sprite>
* clutter/clutter-label.c (clutter_label_query_coords): Check
	if the layout logical rectangle size is bigger than the bounding
	box; this usually means that the bounding box changed in one
	point and the label private allocation needs to be
	updated. (#724)
2008-01-25 21:41:50 +00:00
Emmanuele Bassi
985fa0c6b3 2008-01-25 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/x11/Makefile.am: Add the generated clutter-x11 pkg-config
	file to CLEANFILES, to pass distcheck.

	* Makefile.am:
	* clutter/Makefile.am: Tweak up the Makefiles.

	* README:
	* NEWS: Release 0.5.4

	* configure.ac: Post-release bump to 0.5.5
2008-01-25 19:48:26 +00:00
Emmanuele Bassi
21e55bf635 2008-01-25 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-group.c: Use a shorter Z order sorting function,
	avoiding the checks.
2008-01-25 18:06:11 +00:00
Øyvind Kolås
8f6fad06ee * clutter/clutter-shader.c: added documentation strings for
ClutterShader.
2008-01-25 17:20:33 +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
25b0e6df23 2008-01-21 Emmanuele Bassi,,, <ebassi@sprite>
* clutter/clutter-behaviour-scale.c:
	(clutter_behaviour_scale_set_property),
	(clutter_behaviour_scale_class_init): Fix stupid typo in the
	y-scale-end property declaration. (#720)
2008-01-21 21:54:37 +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
Emmanuele Bassi
689f026cb5 2008-01-21 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour-scale.c: Use separate variables for
	storing the scale boundaries; apparently, using arrays broke
	the python bindings. (#720)
2008-01-21 15:06:12 +00:00
Matthew Allum
b9d1cb9612 2008-01-21 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-group.c:
        Make sure unrealizing a group also unrealizes children.

        * clutter/glx/clutter-stage-glx.c:
        Chain up to group unrealize to make sure textures get unrealized
        when changing context (see #718)

        * clutter/clutter-texture.c:
        Formatting cleanups
2008-01-21 11:39:23 +00:00
Emmanuele Bassi
92954a76a7 2008-01-19 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-main.c (generate_enter_leave_events): Do not
	take the explicit reference, and let clutter_event_copy() do it
	for us. (#714, Neil Roberts)
2008-01-19 10:33:31 +00:00
Emmanuele Bassi
5b40709270 2008-01-19 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-event.c (clutter_event_copy): Take an extra
	reference on the related actor in ClutterEventCrossing that we
	explicitly unref in clutter_event_free(). (#714, Neil Roberts)
2008-01-19 10:30:29 +00:00
Emmanuele Bassi
94fb3f0c6a 2008-01-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-main.c (clutter_do_event): Check the
	return value of the ::event signal for the CLUTTER_DELETE
	event type.

	* clutter/clutter-stage.c (clutter_stage_event): Emit the
	::event signal when receiving the CLUTTER_DELETE event; this
	allows to intercept the user's closing of the stage window.
2008-01-18 18:08:37 +00:00
Tomas Frydrych
c9aa5f1b1a 2007-01-18 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-fixed.h:
	Added missing proto for clutter_fixed_qdivx().
2008-01-18 12:21:40 +00:00
Tomas Frydrych
e833356561 2007-01-18 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-fixed.h:
	* clutter/clutter-fixed.c:
	Added CLUTTER_QDIV() for 64-bit division (bug 564, patch by
	Gwenole Beauchesne).
2008-01-18 12:17:41 +00:00
Emmanuele Bassi
a68067b06c 2008-01-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-event.h: Add a gunichar field for the Unicode
	representation of the key. (#555)
2008-01-18 11:58:16 +00:00
Emmanuele Bassi
cbddf6aa1a 2008-01-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.h:
	* clutter/clutter-script.h:
	* clutter/clutter-stage.h:
	* clutter/clutter-units.h: Documentation fixes and additions.
2008-01-18 11:25:47 +00:00
Emmanuele Bassi
683cdf4cc1 2008-01-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter.symbols: Add ClutterBehaviourOpacity accessors.

	* clutter/clutter-behaviour-opacity.h:
	* clutter/clutter-behaviour-opacity.c:
	(clutter_behaviour_opacity_set_bounds),
	(clutter_behaviour_opacity_get_bounds): Add accessors for the
	opacity-start and opacity-end properties.

	* clutter/clutter-behaviour-scale.h: Fix the argument name to
	avoid complaints by gtk-doc.
2008-01-18 11:02:34 +00:00
Emmanuele Bassi
02e542eb9f 2008-01-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour-scale.c:
	(clutter_behaviour_scale_set_gravity): Notify on the right property
	name.
2008-01-17 14:44:43 +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
e2f72ae557 2008-01-16 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/cogl/cogl.h: Rename COGLhandleARB to COGLhandle.

	* clutter/cogl/gl/cogl-defines.h.in:
	* clutter/cogl/gl/cogl.c: Update GL implementation of COGL.

	* clutter/cogl/gles/cogl-defines.h:
	* clutter/cogl/gles/cogl.c: Update GLES implementation of COGL.

	* clutter/clutter-shader.c: Fix ClutterShader to use the new
	COGLhandle type instead of COGLhandlerARB.
2008-01-16 10:38:05 +00:00
Emmanuele Bassi
454b6011b6 2008-01-16 Emmanuele Bassi <ebassi@openedhand.com>
Define COGLhandleARB. (patch by Johan Bilien)

	* clutter/cogl/gles/cogl-defines.h: Define COGLhandleARB on
	GLES as well (using GLuint)

	* clutter/cogl/gles/cogl.c: Use COGLhandleARB.
2008-01-16 10:02:56 +00:00
Emmanuele Bassi
756ea6693f 2008-01-14 Tommi Komulainen <tommi.komulainen@iki.fi>
reviewed by: Emmanuele Bassi  <ebassi@openedhand.com>

	* clutter/osx/clutter-event-osx.c (_clutter_event_osx_put):
	Initialize ClutterEvent structure with zeroes (#672)

	The 'source' member was uninitialized and being referenced in
	clutter_do_event leading to crash.
2008-01-14 13:59:27 +00:00
Emmanuele Bassi
eba7612388 2008-01-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-timeline.c (timeline_timeout_func): Fix
	check if the last frame was reached by skipping a frame (#654,
	Johan Bilien)
2008-01-14 12:02:28 +00:00
Emmanuele Bassi
dd5bad99d2 2008-01-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-shader.c: Use correct format string for
	gssize. (#695, Tommi Komulainen)
2008-01-14 11:56:35 +00:00
Emmanuele Bassi
db990ccac8 2008-01-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/cogl/gl/cogl.c (cogl_get_proc_address): Implement non-GLX
	version using GModule and looking up the symbol from the running
	process. It should work when linked to library providing the
	requested function. (#696, Tommi Komulainen)
2008-01-14 11:52:04 +00:00
Emmanuele Bassi
ccc4ad400b 2008-01-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter.symbols: Add clutter_model_insertv()

	* clutter/clutter-model.[ch] (clutter_model_insertv): Add a vector
	based insertion API, for language bindings
2008-01-14 10:13:35 +00:00
Emmanuele Bassi
3b0c46dd28 2008-01-12 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-effect.c (clutter_effect_rotate): Make the
	rotate effect work on the passed axis, instead of hardcoding
	the X axis. (#700, Neil Roberts)
2008-01-12 11:05:05 +00:00
Øyvind Kolås
063386c1e2 Added COGLhandleARB since the underlying type on OSX is void*,
patch from Tommi Komulainen <tommi.komulainen@iki.fi>, (#694)
* clutter/cogl/gl/cogl-defines.h.in: Added COGLhandleARB typedef.
* clutter/cogl/cogl.h:
* clutter/cogl/gl/cogl.c:
* clutter/clutter-shader.c: Use COGLhandleARB instead of COGLint when
referring to program or shader handles.
2008-01-10 09:55:44 +00:00
Emmanuele Bassi
f32911c519 2008-01-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/Makefile.am:
	* clutter/clutter.h:
	* clutter/clutter-list-model.[ch]: Complete the ClutterModelDefault
	to ClutterListModel rename by renaming the source files
2008-01-09 14:40:31 +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
e85d5eab84 2008-01-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model-default.c:
	(clutter_model_default_new),
	(clutter_model_default_newv): Move the constructors in the
	right file

	* clutter/clutter-model-private.h: Add a private header for
	the ClutterModel implementations

	* clutter/clutter-model.c:
	(clutter_model_check_type),
	(clutter_model_set_n_columns),
	(clutter_model_set_column_type): Mark as private to Clutter,
	not static to ClutterModel

	* clutter/Makefile.am: Add clutter-model-private.h
2008-01-09 14:18:53 +00:00
Emmanuele Bassi
a6c7ce7117 2008-01-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-label.c:
	(clutter_label_ensure_layout): Fix the ClutterUnits to Pango
	scale conversion.
2008-01-09 11:00:54 +00:00
Emmanuele Bassi
6fdeda0e8f 2008-01-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model.c:
	(clutter_model_appendv),
	(clutter_model_prependv): Fix the columns length pre-condition
2008-01-08 14:12:11 +00:00
Emmanuele Bassi
164cb1d18a 2008-01-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model-default.[ch]: Remove the ClutterModelDefault
	iterator symbols from the public API; the iterator implementation
	is a detail of the default ClutterModel class

	* clutter.symbols: Update
2008-01-07 17:35:07 +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
28ef76edfa 2008-01-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter.symbols: Add clutter_actor_move_byu()
	
	* clutter/clutter-actor.h:
	* clutter/clutter-actor.c:
	(clutter_actor_move_by),
	(clutter_actor_move_byu): Add a units-based variant of the
	clutter_actor_move_by() function
2008-01-04 18:30:25 +00:00
Emmanuele Bassi
7649df9632 2008-01-02 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model-default.c:
	(clutter_model_default_get_iter_at_row),
	(clutter_model_default_insert_row): Fix off-by-one errors

	(clutter_model_default_class_init):
	(clutter_model_default_remove_row): Move the actual removal of the
	row to...

	(clutter_model_default_row_removed): ... the signal class handler
	of ::row-removed; this way, signal handlers connected to
	::row-removed will get a valid iterator, while signal handlers
	connected to ::row-removed with the AFTER flag will get an updated
	model
2008-01-02 12:15:10 +00:00
Tomas Frydrych
6ffd3b42d5 2007-12-31 Tomas Frydrych <tf@openedhand.com>
* configure.ac:
	* clutter/Makefile.am:
	Added -no-undefined to libtool LDFLAGS for mingw/SDL backend, to
	allow building of shared libraries for win32.
2007-12-31 14:52:17 +00:00
Emmanuele Bassi
2db2de021f 2007-12-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-texture.c:
	(clutter_texture_unrealize): Do not read the pixels back if the
	texture is being destroyed
2007-12-28 15:34:24 +00:00
Emmanuele Bassi
9becd34a37 2007-12-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-model.c:
	(clutter_model_real_get_n_rows), (clutter_model_class_init),
	(clutter_model_get_n_rows): Provide a default implementation of
	the get_n_rows() method, so that subclasses do not strictly need
	to override it
2007-12-28 15:33:20 +00:00
Emmanuele Bassi
ac9f2fb1c5 2007-12-25 Emmanuele Bassi <ebassi@openedhand.com>
reviewed by: <delete if not using a buddy>

	* clutter/clutter-actor.c:
	(parse_rotation_array): Inline, and get the JsonArray as a parameter

	(parse_rotation): Update

	* clutter/clutter-script.c:
	(warn_missing_attribute): Fix for emacs-style warnings
	
	(clutter_script_parse_node): Remove an ifdeffed out section

	(clutter_script_construct_parameters),
	(clutter_script_construct_object): Rename get_parameters, so
	it's obvious what it does
2007-12-25 22:31:11 +00:00
Emmanuele Bassi
60e14ae728 2007-12-25 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-enum-types.c.in: Fix the template
2007-12-25 11:41:10 +00:00
Emmanuele Bassi
09a2f0733a 2007-12-24 16:24:26 +00:00
Emmanuele Bassi
87a9232d8a 2007-12-24 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-color.c:
	* clutter/clutter-event.c:
	* clutter/clutter-stage.c: Intern more strings using the I_() macro

	* clutter/clutter-enum-types.c.in: Call g_intern_static_string()
	in the enum types template
2007-12-24 14:52:41 +00:00
Emmanuele Bassi
53aee5ffb4 2007-12-24 Emmanuele Bassi <ebassi@openedhand.com>
* clutter.symbols: Add clutter_actor_set_clipu() and
	clutter_actor_get_clipu()

	* clutter/clutter-actor.h:
	* clutter/clutter-actor.c:
	(clutter_actor_set_clipu), (clutter_actor_get_clipu): Add the
	new units-based versions of the clip accessors

	(clutter_actor_set_clip), (clutter_actor_get_clip): Reimplement
	the pixels-based clip accessors as proxies for the units-based
	ones
2007-12-24 14:21:19 +00:00
Emmanuele Bassi
97dd890ae1 2007-12-24 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/cogl/cogl.h: Update cogl_clip_set() to accept the
	clip components as ClutterFixed values

	* clutter/cogl/gl/cogl.c (cogl_clip_set): Update the GL implementation
	of cogl_clip_set()

	* clutter/cogl/gles/cogl.c:
	(cogl_rectangle_internal): Provide an internal, inlined rectangle
	drawing	function using fixed point values, to be shared by
	cogl_clip_set() and cogl_rectangle()

	(cogl_clip_set), (cogl_rectangle): Update the GLES implementation
	of cogl_clip_set() and cogl_rectangle() to use the new internal
	rectangle drawing function

	* clutter/clutter-actor.c: Make the clip an array of ClutterUnit
	values instead of pixel-based; this allows higher precision and
	device independence

	(_clutter_actor_apply_modelview_transform): Pass the clip
	components converting from units to fixed point values, using
	the new cogl_clip_set() signature

	(clutter_actor_get_property), (clutter_actor_set_clip),
	(clutter_actor_get_clip): Update the accessors of the clip
	property
2007-12-24 12:53:04 +00:00
Emmanuele Bassi
24b24f0d53 2007-12-21 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.h: Remove the unused ::set_depth() and
	::get_depth() virtual functions. (#674, Murray Cumming)
2007-12-21 17:18:49 +00:00
Emmanuele Bassi
e3ebfdb14b 2007-12-21 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-group.c:
	* clutter/clutter-group.h: Add the clutter_group_add() convenience
	function; it's now "undeprecated" and implemented as a macro

	* clutter/clutter-stage.h: Add clutter_stage_add() as a convenience
	macro

	* clutter/cogl/cogl.h: Include just the needed headers instead
	of the whole clutter.h; this avoids rebuild cogl when not needed
2007-12-21 16:04:39 +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
935e3c1b4e 2007-12-21 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-label.c:
	(clutter_label_ensure_layout): Avoid rounding errors in the layout
	computing when switching between Clutter units and Pango units.
2007-12-21 13:18:19 +00:00
Øyvind Kolås
06fe42dde9 * clutter/clutter-texture.[ch]: (bug #675) added
clutter_texture_set_area_from_rgb_data, sharing some of the
initialization infrastructure with clutter_texture_set_from_rgb_data.
2007-12-20 14:26:07 +00:00
Emmanuele Bassi
41c9528b4d 2007-12-20 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-container.c:
	(clutter_container_lower_child): Fix interface method call
	to actually call ClutterContainer::lower. (#670, Gwenole
	Beauchesne)
2007-12-20 10:44:28 +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
Tomas Frydrych
263d8ea5a0 2007-12-19 Tomas Frydrych <tf@openedhand.com>
* clutter/Makefile.am:
	* clutter/cogl/gl/cogl-defines.h.in:
	* clutter/pango/pangoclutter-render.c:
	* configure.ac:
	Fixes to allow cross-compilation with mingw (patch by Neil
	Roberts).
	Removed trailing whitespace.
2007-12-19 16:16:10 +00:00
Øyvind Kolås
bf66f7a3ec * clutter/clutter-main.c: (generate_enter_leave_events): synthesize
enter event (without related) and corresponding leave event when the
actor the cursor is over has been destroyed.
* clutter/clutter-event.c: (clutter_event_free): only unref the
related_actor when it actually is set.
2007-12-18 13:03:45 +00:00
Emmanuele Bassi
b14bdfe2bb 2007-12-18 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-main.c:
	(unset_motion_last_actor),
	(generate_enter_leave_events): Attach a callback to the destroy
	signal on the last motion actor, so if it goes away while the
	pointer is in the middle of it we can unset the pointer.

	* clutter/clutter-private.h: Store the last motion actor inside
	the global context.
2007-12-18 10:49:29 +00:00
Emmanuele Bassi
98c537365c 2007-12-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_should_pick_paint),
	(clutter_actor_apply_transform_to_point): Fix the whitespace.

	(clutter_actor_set_rotation): Clarify that the coordinates of
	the centre of rotation are relative to the anchor point or,
	if not set, to the upper left corner of the bounding box.
2007-12-17 17:45:49 +00:00
Tomas Frydrych
967710c836 2007-12-17 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-behaviour-ellipse.c:
	* clutter/clutter-behaviour-rotate.c:
	Clamping of start and end angles to <0, 360).
2007-12-17 17:16:49 +00:00