Commit Graph

1317 Commits

Author SHA1 Message Date
Neil Roberts
e11d08807d * clutter/clutter-entry.c (clutter_entry_paint): Set the clip
using COGL directly instead of setting the actor clip. Otherwise
	the clip stack will be unbalanced after the first draw. This also
	frees up the actor clip to be set by an application.
2008-06-23 20:55:24 +00:00
Matthew Allum
f6b7783440 2008-06-23 Matthew Allum <mallum@openedhand.com>
* NEWS:
        Add a quick note on fruity multiple deivce support.
        * README:
        Add multiple device support details and some tweaks on
        Clutter requirements (i.e GdkPixbuf).
2008-06-23 20:26:47 +00:00
Matthew Allum
20c384cab8 2008-06-23 Matthew Allum <mallum@openedhand.com>
Bug 987 - clutter-event.c c99 variable declaration

        * clutter/clutter-event.c:
        Remove c99ism.
2008-06-23 18:58:33 +00:00
Emmanuele Bassi
6b475cb409 2008-06-23 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Post release bump to 0.7.3.
2008-06-23 16:44:33 +00:00
Emmanuele Bassi
9006de848b 2008-06-23 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-texture.c:
	(clutter_texture_get_preferred_width),
	(clutter_texture_get_preferred_height),
	(clutter_texture_set_property),
	(clutter_texture_get_property),
	(clutter_texture_class_init),
	(clutter_texture_init): Add the new :keep-aspect-ratio property
	to ClutterTexture; when set to TRUE the texture will return a
	preferred width maintaining the aspect ratio with the given height
	and a preferred height maintaining the aspect ratio with the
	given width. This allows to set the width or the height and have
	the texture automatically request the height or the width respectively
	while maintaining the aspect ratio of the original image.

	* tests/test-script.json: Update to test the new :keep-aspect-ratio
	property.
2008-06-23 15:31:12 +00:00
Neil Roberts
dff84094ff Bug 918 - Group doesn't clip if it's children are clipped
* clutter/cogl/common/cogl-clip-stack.h: 
	* clutter/cogl/common/cogl-clip-stack.c: Added functions to
	maintain a stack of clipping rectangles.

	* clutter/cogl/gles/cogl.c: 
	* clutter/cogl/gl/cogl.c: The cogl_clip_set and unset functions
	have moved into cogl-clip-stack.c which calls back to cogl.c to
	set the actual rectangles. Multiple clip rectangles are combined
	by merging the stencil buffers.

	* clutter/cogl/gles/cogl-primitives.c (_cogl_path_fill_nodes): 
	* clutter/cogl/gl/cogl-primitives.c (_cogl_path_fill_nodes): Merge
	the stencil buffer with the contents of the clipping stack after
	drawing the path.

	* clutter/cogl/gles/cogl-context.h (CoglContext): 
	* clutter/cogl/gl/cogl-context.h (CoglContext): Store the number
	of available stencil bits.

	* clutter/cogl/common/Makefile.am
	(libclutter_cogl_common_la_SOURCES): Added cogl-clip-stack.c
2008-06-23 14:57:36 +00:00
Robert Bragg
030ac047d1 2008-06-23 Robert Bragg <bob@o-hand.com>
* clutter/eglx/clutter-stage-egl.c: Makes sure the eglx backend
	passes the EGL_OPENGL_ES2_BIT surface attrib when using
	GLES2.0 under cogl
2008-06-23 13:09:08 +00:00
Chris Lord
6ba7710224 * clutter/x11/clutter-event-x11.c: (convert_xdevicekey_to_xkey),
(translate_key_event), (event_translate):
        Change the xinput event handling to use translate_key (fixes modifier
        handling with xinput key events)
2008-06-23 12:45:20 +00:00
Emmanuele Bassi
d9b657bdfc 2008-06-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug 982 - __COGL_GET_CONTEXT MS compiler issue (Haakon Sporsheim)

	* clutter/cogl/common/cogl-handle.h:
	* clutter/cogl/common/cogl-primitives.c: Remove C99-isms.

	* clutter/cogl/gl/cogl-fbo.c:
	* clutter/cogl/gl/cogl-primitives.c:
	* clutter/cogl/gl/cogl-texture.c:
	* clutter/cogl/gl/cogl.c: Ditto as above.

	* clutter/cogl/gles/cogl-fbo.c:
	* clutter/cogl/gles/cogl-primitives.c:
	* clutter/cogl/gles/cogl-texture.c: Ditto as above.
2008-06-23 11:01:30 +00:00
Emmanuele Bassi
04e5b4a710 2008-06-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug 984 - pango_clutter_render_layout() declared void, but
	          returns (Haakon Sporsheim)

	* clutter/pango/pangoclutter-render.c:
	(pango_clutter_render_layout): Do not use a return statement.
2008-06-23 10:37:43 +00:00
Emmanuele Bassi
a843a5f90e 2008-06-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug 905 - Paint cursor directly (Xan López)

	* clutter/clutter-entry.c:
	(clutter_entry_paint_cursor),
	(clutter_entry_init),
	(clutter_entry_set_color): Directly paint the cursor on the
	entry instead of using an actor.
2008-06-23 10:32:43 +00:00
Emmanuele Bassi
1562347302 Fix emacs breaking the ChangeLog 2008-06-23 10:06:33 +00:00
Emmanuele Bassi
87d68544d0 2008-06-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug 981 - clutter_stage_read_pixels temprow fix (Haakon Sporsheim)

	* clutter/clutter-stage.c (clutter_stage_read_pixels): Allocate
	the temporary row data used to flip the buffer from glReadPixels()
	in order to fix compilation under MSVC. Also validate the input
	parameters to avoid random segfaults.
2008-06-23 10:06:02 +00:00
Matthew Allum
b241481586 2008-06-23 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-event.c:
        * clutter/clutter-event.h:
        * clutter/clutter-main.c:
        * clutter/clutter-main.h:
        * clutter/clutter-private.h:
        * clutter/eglx/clutter-stage-egl.c:
        * clutter/fruity/clutter-backend-fruity.c:
        * clutter/fruity/clutter-backend-fruity.h:
        * clutter/fruity/clutter-fruity.c:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/x11/clutter-backend-x11.c:
        * clutter/x11/clutter-backend-x11.h:
        * clutter/x11/clutter-event-x11.c:
        * clutter/x11/clutter-stage-x11.h:
        * clutter/x11/clutter-x11.h:
        * configure.ac:
        * tests/Makefile.am:
        * tests/test-devices.c:
        Merge of 'xinput' branch giving initial basic support of
        multiple input devices.
2008-06-23 09:55:42 +00:00
Matthew Allum
920687a470 2008-06-23 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-group.c:
        Remove uneeded (at least for now) paint_area method (#970)
2008-06-23 09:08:27 +00:00
Emmanuele Bassi
62cc9ec3c9 2008-06-19 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c: Be more explicit about the fact that
	the script id is not the name of an actor, and that it is retrieved
	by using clutter_get_script_id().
2008-06-19 20:45:28 +00:00
Emmanuele Bassi
e29ae614b5 2008-06-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.h:
	* clutter/clutter-actor.c:
	(clutter_actor_allocate_preferred_size): Add more documentation
	and notes on where it's appropriate to call this function.
2008-06-17 15:59:08 +00:00
Chris Lord
b592efcf99 * clutter/clutter-texture.c: (clutter_texture_get_preferred_width),
(clutter_texture_get_preferred_height):
        Maintain aspect ratio with natural width/height when for_width/height
        are specified
2008-06-17 14:45:33 +00:00
Matthew Allum
2dbbee28d5 2008-06-17 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        Clean up of parenting code (see #972)
        Doc updates to section intro.
        Add clutter_actor_allocate_preferred_size () utility call

        * clutter/clutter-group.c: (clutter_fixed_layout_allocate):
        Use clutter_actor_allocate_preferred_size ()

        * doc/clutter-actor-invariants.txt:
        Add some more notes
2008-06-17 13:49:40 +00:00
Emmanuele Bassi
988cac1dfb 2008-06-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_set_parent): Do not emit ::parent-set when
	reparenting.

	(clutter_actor_unparent): Ditto, as above.
	
	(clutter_actor_reparent): Emit ::parent-set with the old
	parent and set the IN_REPARENT flag unconditionally.
2008-06-17 12:39:37 +00:00
Emmanuele Bassi
431564dfbe 2008-06-17 Emmanuele Bassi <ebassi@openedhand.com>
* doc/clutter-actor-invariants.txt: Document the flags, the
	invariants, the state changes and the minimum requirements for
	actor implementations. Needs to be tweaked and fleshed out
	before 0.8.0, and we obviously need to enforce the invariants.
2008-06-17 10:47:37 +00:00
Emmanuele Bassi
ec91b3d253 2008-06-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_set_parent): Document and maintain the invariant
	that after setting a realized parent on an actor, the actor is
	also going to be realized.

	(clutter_actor_unparent): Change the invariant that an unparented
	actor is also unrealized: the paint is fast enough to avoid
	unrealizing, since it also causes more problems that what it's
	worth.

	* tests/test-invariants.c (test_show_on_set_parent): Update the
	invariants test because we changed the invariants.
2008-06-17 09:33:18 +00:00
Jussi Kukkonen
d03314cb84 * clutter/clutter-score.c (clutter_score_append):
initialize "marker" string and "complete_id" signal id when creating a
	ClutterScoreEntry.
2008-06-17 08:55:54 +00:00
Tomas Frydrych
2ccfd3c08f 2008-06-16 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	    (clutter_actor_move_anchor_point_from_gravity):
	    Fixed incorrect sign of position adjustment (revert of earlier
	    change).
2008-06-16 14:14:19 +00:00
Emmanuele Bassi
6ec5cc538c 2008-06-16 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c (clutter_actor_unparent): Reset the
	:show-on-set-parent property to TRUE when unparenting.

	* tests/Makefile.am: Add test-invariant to the build.

	* tests/test-invariants.c: Test the invariants that we are going
	to honour (and document, at some point).
2008-06-16 13:40:39 +00:00
Emmanuele Bassi
aef6fc5f61 2008-06-16 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglnative/clutter-stage-egl.c: Ignore any size allocation
	we receive from the user.

	* clutter/fruity/clutter-stage-fruity.c: Ditto as above.
2008-06-16 13:38:46 +00:00
Tomas Frydrych
1c4b1ce90e 2008-06-16 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	    (clutter_actor_move_anchor_point):
	    (clutter_actor_move_anchor_pointu):
	    (clutter_actor_move_anchor_point_from_gravity):
	    Fixed incorrect sign of position adjustment.
	    Fixed replace call to _move_by with move_byu in
	    _move_anchor_pointu.

	    Stripped trailing whitespace.
2008-06-16 09:27:44 +00:00
Emmanuele Bassi
8996406189 2008-06-15 Emmanuele Bassi <ebassi@openedhand.com>
Bug #967 - Mismatch of Timeline::marker-reached signal signature

	* clutter/clutter-marshal.list:
	* clutter/clutter-timeline.c:
	(clutter_timeline_class_init): Fix the type of the frame_num
	argument in the ::marker-reached signal creation to match the
	signal class handler. (Armin Burgmeier)
2008-06-15 12:50:05 +00:00
Emmanuele Bassi
000806c4c3 2008-06-14 Emmanuele Bassi <ebassi@openedhand.com>
* README: We depend on PangoCairo, now; also add all the missing
	release notes entries and the missing backends configuration notes.
2008-06-14 10:27:01 +00:00
Matthew Allum
04bf04db4d 2008-06-14 Matthew Allum <mallum@openedhand.com>
* README:
        Make needed GL version 1.4, note GLES2 support, add some notes
        for COGL.
2008-06-13 23:03:45 +00:00
Emmanuele Bassi
7726b26cd3 2008-06-13 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Post release bump to 0.7.1.
2008-06-13 16:57:17 +00:00
Emmanuele Bassi
4b97a02410 2008-06-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-actor.h:
	* tests/test-cogl-primitives.c:
	* tests/test-events.c:
	* tests/test-multistage.c:
	* tests/test-textures.c:
	* tests/test-timeline.c: Miscellaneous fixes for distcheck to
	pass.
2008-06-13 15:01:34 +00:00
Emmanuele Bassi
76b71f8cc4 2008-06-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-texture.c:
	(clutter_texture_unrealize), (clutter_texture_dispose): Add a
	guard against reading back memory during the unrealization on
	dispose.
2008-06-13 14:58:18 +00:00
Emmanuele Bassi
e3de3f196b 2008-06-13 Emmanuele Bassi <ebassi@openedhand.com>
Bug #953 - Actors are not hidden before unrealized or
	           disposed (Tommi Komulainen)

	* clutter/clutter-actor.c:
	(clutter_actor_unrealize): Hide a visible actor when unrealizing
	it.

	(clutter_actor_dispose): Make sure to unrealize an actor when
	disposing it.
2008-06-13 14:16:22 +00:00
Emmanuele Bassi
15d9581dce Fix attribution of last commit 2008-06-13 13:59:55 +00:00
Emmanuele Bassi
23c160886b 2008-06-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_dispose), (clutter_actor_destroy),
	(clutter_actor_unparent): Clean up the actor's destruction
	sequence, making sure that every operation is performed
	under the CLUTTER_ACTOR_IN_DESTRUCTION internal flag.
2008-06-13 13:59:07 +00:00
Emmanuele Bassi
be0711b88b 2008-06-13 Emmanuele Bassi <ebassi@openedhand.com>
Bug #960 - PangoContext creation code should not be duplicated

	* clutter/clutter-private.h:
	* clutter/clutter-main.c:
	(_clutter_context_create_pango_context): Abstract the creation
	of the PangoContext inside its own function, to avoid code and
	bugs duplication. (Tommi Komulainen)

	* clutter/clutter-entry.c (clutter_entry_init): Use the newly
	added PangoContext creation function.

	* clutter/clutter-label.c (clutter_label_init): Ditto as above.
2008-06-13 09:10:39 +00:00
Emmanuele Bassi
d1006ca506 2008-06-12 Emmanuele Bassi <ebassi@openedhand.com>
Bug #964 - "unrealized" signal of ClutterActor wrongly named

	* clutter/clutter-actor.c (clutter_actor_class_init): Fix typo
	in the ::unrealize signal name. (Armin Burgmeier)
2008-06-12 17:24:07 +00:00
Emmanuele Bassi
a4c4e3464d 2008-06-12 Emmanuele Bassi <ebassi@openedhand.com>
* doc/reference/cogl/Makefile.am: Ignore cogl/gl and cogl/gles
	when building the documentation.

	* clutter/cogl/cogl.h.in: Add sections in the header file.
2008-06-12 17:21:16 +00:00
Emmanuele Bassi
13df7d579d 2008-06-12 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Add more clarifications on the
	size and position accessors and the distinction between
	transformed and untransformed actor box inside the actor's
	description.
2008-06-12 16:34:50 +00:00
Emmanuele Bassi
da8eea1842 2008-06-12 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Clarify the documentation of the
	accessors of the width and height.
2008-06-12 16:20:08 +00:00
Neil Roberts
e4304e2d0a * clutter/win32/clutter-stage-win32.c: Updated to the new layout
API. All code to do with positioning the stage has been removed so
	the window is left where Windows wants to put it and it can not be
	moved with clutter_actor_set_position.

	* clutter/win32/clutter-stage-win32.h (ClutterStageWin32): Remove
	win_xpos and win_ypos.

	* clutter/win32/clutter-event-win32.c (message_translate): Remove
	the handler for WM_MOVE because the stage no longer cares where it
	is positioned.
2008-06-12 12:12:25 +00:00
Emmanuele Bassi
8ff6cec829 2008-06-12 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Documentation fixes.

	* clutter/clutter-backend.c: Documentation fixes.

	* clutter/clutter-container.h: Documentation fixes.

	* clutter/clutter-fixed.c (clutter_qdivx): Fix the return
	value to be after the description.

	* clutter/clutter-texture.[ch]: Documentation fixes.

	* clutter/clutter-timeline.c: Documentation fixes.
2008-06-12 11:43:25 +00:00
Emmanuele Bassi
895bbc59e5 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-layout.c: Take into account the origin of the
	parent, if it has changed, and queue a relayout if we are
	using the transformed box when computing the layout.
2008-06-11 17:34:35 +00:00
Emmanuele Bassi
00a1e0c3ee 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglnative/clutter-stage-egl.c: Remove a duplicate
	get_preferred_width() implementation. (thanks to Iain Holmes)
2008-06-11 17:32:22 +00:00
Neil Roberts
3d1d677902 * clutter/clutter-actor.c (clutter_actor_allocate): Fixed the
logic when detecting whether the actor has moved.
2008-06-11 17:12:29 +00:00
Iain Holmes
04df29dbd4 2008-06-11 Iain Holmes <iain@openedhand.com>
* configure.ac: Detect the GL headers in flavour=fruity

        * clutter/fruity/clutter-stage-fruity.c: Update the Fruity 
backend to 
        use the new size negotiation API.
2008-06-11 16:29:20 +00:00
Emmanuele Bassi
583ea401c3 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-label.c (clutter_label_allocate): Keep the
	layout if the size of the allocation is the same as the last
	allocation received by the label.
2008-06-11 16:12:52 +00:00
Emmanuele Bassi
c859a2f7fd 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Notify :x, :y, :width and :height
	properties using ClutterUnits, not pixels.
2008-06-11 15:08:03 +00:00
Emmanuele Bassi
d642636fd1 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglnative/clutter-stage-egl.c: Update the EGL native
	backend to use the new size negotiation API.
2008-06-11 10:19:02 +00:00
Emmanuele Bassi
bae4bd0796 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/sdl/clutter-stage-sdl.c: Update the SDL backend to
	use the new size negotiation API.
2008-06-11 10:12:44 +00:00
Emmanuele Bassi
df86cb1ae3 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
Bug #961 - Fails to build on OSX

	* clutter/osx/clutter-stage-osx.c: Update the OSX backend to
	use the new size negotiation API.
2008-06-11 09:45:22 +00:00
Emmanuele Bassi
1db672f29f 2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
* autogen.sh: Force overwriting when glib-gettextize is
	invoked by autogen.sh.
2008-06-11 09:26:55 +00:00
Neil Roberts
1aa77985f4 * clutter/clutter-main.c: Include <locale.h> for setlocale() 2008-06-10 21:25:23 +00:00
Emmanuele Bassi
4a788a6df7 2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-child-meta.c: Fix section name

	* clutter/clutter-container.c:
	(clutter_container_child_set_property),
	(clutter_container_child_get_property): Fix gtk-doc parameter
	name.

	* clutter/clutter-container.h: Fix documentation of the
	interface vfuncs.

	* clutter/clutter-event.h: Fix documentation.

	* clutter/clutter-feature.h: Fix documentation.

	* clutter/clutter-types.h: Add ClutterRequestMode.

	* clutter/x11/clutter-event-x11.c: Fix documentation.

	* tests/test-fullscreen.c: Verify that the stage size has been
	changed by clutter_stage_fullscreen().
2008-06-10 17:11:14 +00:00
Emmanuele Bassi
473d0e9fc3 2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
Bug #815 - Split up request, allocation, and paint box

	* clutter/clutter-actor.[ch]: Rework the size allocation,
	request and paint area. Now ::request_coords() is called
	::allocate(), and ::query_coords() has been split into
	::get_preferred_width() and ::get_preferred_height(). See
	the documentation and the layout test on how to implement
	a container and layout manager with the new API. (#915,
	based on a patch by Havoc Pennington, Lucas Rocha and Johan
	Bilien)

	* clutter/clutter-clone-texture.c: Port CloneTexture to
	the new size negotiation API; it just means forwarding
	the requests to the parent texture.

	* clutter/clutter-deprecated.h: Add deprecated and replaced
	API.

	* clutter/clutter-entry.c: Port Entry to the new size
	negotiation API.

	* clutter/clutter-group.c: Port Group to the new size
	negotiation API; the semantics of the Group actor do not
	change.

	* clutter/clutter-label.c: Port Label to the new size
	negotiation API, and vastly simplify the code.

	* clutter/clutter-main.[ch]: Add API for executing a
	relayout when needed.

	* clutter/clutter-private.h: Add new Stage private API.

	* clutter/clutter-rectangle.c: Update the get_abs_opacity()
	call to get_paint_opacity().

	* clutter/clutter-stage.c:
	(clutter_stage_get_preferred_width),
	(clutter_stage_get_preferred_height),
	(clutter_stage_allocate),
	(clutter_stage_class_init): Port Stage to the new size
	negotiation API.

	* clutter/clutter-texture.c: Port Texture to the new size
	negotiation API.

	* clutter/clutter-types.h: Add ClutterRequestMode enumeration.

	* clutter/x11/clutter-stage-x11.c: Port the X11 stage
	implementation to the new size negotiation API.

	* tests/Makefile.am: Add the layout manager test case.

	* tests/test-opacity.c: Update.

	* tests/test-project.c: Update.

	* tests/test-layout.c: Test case for a layout manager implemented
	using the new size negotiation API; the layout manager handles
	both transformed and untransformed children.
2008-06-10 17:07:52 +00:00
Emmanuele Bassi
fb613411c8 2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
* Makefile.am: Add the po/ directory to the build.
2008-06-10 16:51:11 +00:00
Emmanuele Bassi
a930370b81 2008-06-10 Emmanuele Bassi <ebassi@openedhand.com>
* autogen.sh: Check for, and run glib-gettextize.

	* configure.ac: Set up the localization support.

	* clutter/clutter-main.c: Do not define the GETTEXT_PACKAGE,
	but use the one from the configure script.

	* po/POTFILES.in: Template for the translatable files.
2008-06-10 16:47:38 +00:00
Chris Lord
878b353568 * clutter/clutter-main.c: (pre_parse_hook):
Call setlocale on init
        
        * clutter/x11/clutter-event-x11.c: (translate_key_event):
        Fix typo and use the same buffer size as xev
2008-06-10 14:01:43 +00:00
Øyvind Kolås
8fcfd8ff21 * clutter/clutter-texture.c: improved documentation for
clutter_texture_set_filter_quality.
2008-06-10 11:18:19 +00:00
Chris Lord
67fbfebd6d Bug #916 - ClutterKeyEvent:unicode_value is ignored
Bug #950 - AltGr not handled 

        * clutter/osx/clutter-event-osx.c: (clutter_event_osx_translate):
        * clutter/x11/clutter-event-x11.c: (translate_key_event):
        * tests/test-events.c: (fill_keybuf), (input_cb):
        Apply patch from Tommi Komulainen, fill the unicode_value attribute of
        the ClutterKeyEvent struct. Also use XKeycodeToKeysym, as suggested in
        bug #950, comment #2
2008-06-10 10:57:50 +00:00
Matthew Allum
5d9e1bbbb0 2008-06-10 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c:
        Minor reformatting cleanups. Emit filter-quality prop on change.
        * clutter/glx/clutter-glx-texture-pixmap.c:
        Support mipmaps via filter quality prop.
2008-06-10 10:49:21 +00:00
Chris Lord
cf73a8db77 * tests/Makefile.am:
* tests/test-entry-auto.c:
        Add automatic test for ClutterEntry, by Tommi Komulainen
2008-06-10 10:17:12 +00:00
Chris Lord
db518c8736 * clutter/cogl/common/cogl-primitives.c: (_cogl_path_arc):
Draw as expected when end angle is lower than start angle (i.e. do not
        swap the angles). This aligns with cairo behaviour.
2008-06-10 10:05:12 +00:00
Tommi Komulainen
863837baec 7 small miscellaneous fixes
Bug#959 - Multiple minor improvements

	* configure.ac: pick up GDKPIXBUF_PREFIX from gdk-pixbuf-2.0
	module, not pango

	* clutter/clutter-keysyms-table.h: cosmetic fix for ifdef guard
	name in the comment (leftover from earlier commit)

	* tests/test-textures.c: don't depend on GdkPixbuf as we're not
	using any actual features from it, just plain pixel buffer
	manipulation

	* clutter/clutter-timeline.c
	* clutter/clutter-timeline.h (clutter_timeline_list_markers): Use
	gsize* to return number of items, not guint*
	* tests/test-paint-wrapper.c: use correct type (guint*) in call
	to clutter_actor_get_size()

	* tests/test-depth.c (janus_group): properly take height2 into
	account when calculating needed height for the rectangle

	* tests/test-cogl-tex-getset.c: use rowstride, not width*4, when
	calculating pixel offsets

	* tests/test-cogl-tex-getset.c: Don't assume/force RGBA format,
	also support ARGB format (needed with quartz imageloader.)
2008-06-10 06:37:46 +00:00
Tommi Komulainen
45ff3cb00c OSX: print GL_VENDOR, GL_RENDERER, GL_VERSION and GL_EXTENSIONS
* clutter/osx/clutter-backend-osx.c (clutter_backend_osx_post_parse):
	Print GL_VENDOR, GL_RENDERER, GL_VERSION and GL_EXTENSIONS to aid
	debugging.
2008-06-09 23:00:31 +00:00
Tommi Komulainen
78e1f63fcd cogl: add support for quartz imagebackend
Bug #930 - add support for quartz imagebackend

	* clutter/cogl/common/cogl-bitmap-pixbuf.c
	(_cogl_bitmap_from_file): When USE_QUARTZ is defined implement
	using Core Graphics.
	* configure.ac: support --with-imagebackend=quartz and print
	which imagebackend is selected. Make quartz default on OSX
2008-06-09 21:15:12 +00:00
Øyvind Kolås
a28e51d752 * clutter/cogl/common/cogl-primitives.c: (cogl_path_rel_curve_to):
fixed naming of implementation of cogl_path_rel_curve_to (it was
called just cogl_rel_curve_to).
2008-06-09 16:14:06 +00:00
Emmanuele Bassi
40b62c7b67 2008-06-09 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Clean up a bit the X11 and X extensions
	checks with PKG_CHECK_EXISTS(). Since we are filling up the
	X11_CFLAGS and X11_LIBS variables ourselves there is no
	point in polluting the Makefiles with unused variables.

	* clutter/Makefile.am: Remove the pkg-config variable
	evaluation and use the values retrieved from the configure
	script.
2008-06-09 13:29:17 +00:00
Chris Lord
db232dd5e7 Bug #914 - ClutterEntry is confused about characters vs. bytes
* clutter/clutter-entry.c: (clutter_entry_ensure_layout),
        (clutter_entry_handle_key_event_internal),
        (clutter_entry_set_text):
        Fix mix-up of character and byte counts, handle unicode correctly.
        Use clutter_key_event_unicode() instead of
        clutter_keysym_to_unicode().

        * clutter/clutter-event.c: (clutter_key_event_unicode):
        Don't ignore ClutterKeyEvent.unicode_value

        * clutter/clutter-keysyms-table.h:
        Rename header define so as not to conflict with clutter-keysyms.h

        Patch originally by Emmanuele Bassi, with input from Tommi Komulainen.
2008-06-09 10:13:20 +00:00
Øyvind Kolås
374022bc3d amended email address in ChangeLog 2008-06-07 15:08:36 +00:00
Øyvind Kolås
4582ab12b8 * clutter/clutter-texture.c: made the filter-quality proeprty also
control the use of mipmapping.
* clutter/clutter-texture.h: added ClutterTextureQuality enum.
* tests/test-texture-quality.c: new test.
* tests/Makefile.am: added test-texture-quality
2008-06-07 15:08:05 +00:00
Emmanuele Bassi
eb990a853a 2008-06-06 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-texture.c:
	(clutter_texture_class_init): Do not unrealize on hide(), and
	do not realize() on show. By default, clutter_actor_show() will
	realize ourselves, and we don't want to unrealize when hidden
	to avoid paying the penalty of reading back the texture data
	from the video memory.

	* tests/test-actors.c: Show all textures again when pressing
	the 'r' key.
2008-06-06 16:22:55 +00:00
Neil Roberts
d66fe947a0 * tests/test-shader.c: Use the special wrapper vars when building
for GLES 2 and automatically cycle the shaders because it's
	difficult to right-click.
2008-06-06 15:41:52 +00:00
Neil Roberts
b2bebe0586 * tests/test-shader.c: Fixed to use sampler2D instead of
sampler2DRect now that GL_TEXTURE_RECTANGLE support is disabled in
	revision 2834. The ClutterTexture actor now has the
	'disable-slicing' property set. The distance in texture
	coordinates between pixels is passed in as a uniform so that the
	box-blur shader can still work.
2008-06-06 15:00:12 +00:00
Emmanuele Bassi
80cc7351b7 2008-06-06 Emmanuele Bassi <ebassi@openedhand.com>
Bug #952 - Fix test-textures in trunk

	* tests/test-textures.c: Use USE_GDKPIXBUF instead of
	USE_PIXBUF. (#952, Gwenole Beauchesne)
2008-06-06 14:56:08 +00:00
Emmanuele Bassi
c2d8773e69 Fix ChangeLog attribution 2008-06-06 14:49:08 +00:00
Emmanuele Bassi
66474e3aa5 2008-06-06 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-entry.c (clutter_entry_init): Remove a
	variable shadowing another one. (Tommi Komulainen)
2008-06-06 14:45:43 +00:00
Emmanuele Bassi
543b6971b4 2008-06-06 Emmanuele Bassi <ebassi@openedhand.com>
Bug #955 - ClutterLabel is missing fallback resolution handling

	* clutter/clutter-label.c (clutter_label_init): Handle
	clutter_backend_get_resolution() return value -1 similar to
	ClutterEntry (falling back to 96.0). (#955, Tommi Komulainen)
2008-06-06 14:44:49 +00:00
Neil Roberts
1bfeddaaee * clutter/eglnative/clutter-stage-egl.c
(clutter_stage_egl_realize): Use ES 2 renderable type when
	building for GLES 2.

	* clutter/eglnative/clutter-event-egl.c (get_backend_time): Added
	a NULL for the microseconds parameter of g_timer_elapsed.

	* clutter/eglnative/clutter-stage-egl.h: 
	* clutter/eglnative/clutter-egl.h: 
	* clutter/eglnative/clutter-backend-egl.h: Include
	clutter-egl-headers.h instead of including the GL headers directly
	so it can include gl2.h when building for GLES 2.

	* clutter/eglnative/clutter-egl-headers.h: 
	* clutter/eglnative/Makefile.am (libclutter_eglnative_la_SOURCES):
	Added clutter-egl-headers.h

	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: GLES 2
	doesn't provide a default precision for floats in the fragment
	shader and it will reject the shader if there isn't one.
2008-06-06 14:21:22 +00:00
Matthew Allum
9d8bfaf997 2008-06-06 Matthew Allum <mallum@openedhand.com>
Bug #948 - Remove texture rectangle support

        * clutter/clutter-feature.c:
        * clutter/clutter-feature.h:
        * clutter/clutter-texture.c:
        * clutter/cogl/gl/cogl.c:
* clutter/glx/clutter-glx-texture-pixmap.c:
        Remove support for GL_TEXTURE_RECTANGLE_ARB (now using just regular
        2D textures, with optional npots extension). Simplifys code, + makes
        mipmap & shader support much more sane.
2008-06-06 13:44:22 +00:00
Øyvind Kolås
986ea1cb8f amend changelog message 2008-06-06 13:00:48 +00:00
Øyvind Kolås
7804ce7d1a * clutter/cogl/common/cogl-bitmap-pixbuf.c:
(_cogl_bitmap_from_file): allocate height×rowstride and not duplicate
gdkpixbuf's strange optimization saving some bytes at the end of the
pixbuf.
2008-06-06 12:53:35 +00:00
Tommi Komulainen
3d034ff6aa cogl: define GL_READ/DRAW_FRAMEBUFFER_EXT if not available
Bug 913 - cogl fails to build on OSX

	* clutter/cogl/gl/cogl-fbo.c: define GL_READ_FRAMEBUFFER_EXT and
	GL_DRAW_FRAMEBUFFER_EXT if not defined in the build system. The
	#ifdef can fail if they're not #defines but variables or enums.
	As the values are supposed to be industry standard even then
	it shouldn't have ill effects.
2008-06-05 21:40:59 +00:00
Tommi Komulainen
b8e8a80a40 OSX: add multistage support
Bug #911 - OSX: add multistage support

	* clutter/osx/clutter-backend-osx.{c,h}
	(clutter_backend_osx_init_stage, clutter_backend_osx_get_stage,
	clutter_backend_osx_redraw, clutter_backend_osx_create_stage,
	clutter_backend_osx_ensure_context, clutter_backend_osx_class_init,
	clutter_backend_osx_dispose, ClutterGLView:drawRect:):
	* clutter/osx/clutter-stage-osx.{c,h} (clutter_stage_osx_realize,
	ClutterGLWindow:setFrameSize:):
	Adapt to new multistage backend API. Don't keep a pointer to
	default stage. Derive from ClutterActor instead of ClutterStage.
	Implement ClutterStageWindow interface. Paint, resize and
	otherwise manipulate the wrapper rather than self when necessary.

	(clutter_backend_post_parse): Create our singleton GL context
	here. We could probably create the context when the default
	stage is created, but I think this is more clean.

	* clutter/osx/clutter-event-osx.c (clutter_event_osx_translate)
	* clutter/osx/clutter-stage-osx.c (clutter_stage_osx_state_update,
	ClutterGLWindow:windowShouldClose:):
	* clutter/osx/clutter-stage-osx.h: Export ClutterGLWindow interface
	for clutter-event-osx.c to easily get the stage for NSWindow.
	Fill in ClutterEventAny::stage on our events.

	Consistently use 'stage_osx' and 'wrapper' as variable names
	when referring to ClutterStageOSX and ClutterStage objects
	respectively.
2008-06-05 21:27:58 +00:00
Tommi Komulainen
cba23c0b26 OSX: add missing memory pool wrapup
Bug #910 - OSX: missing memory pool

	* clutter/osx/clutter-backend-osx.c (clutter_backend_osx_redraw):
	Add missing memory pool wrapup.
2008-06-05 21:27:28 +00:00
Tommi Komulainen
e783591eab OSX: handle gracefully NULL title
Bug #909 - OSX: missing NULL pointer handling

	* clutter/osx/clutter-stage-osx.c (ClutterGLWindow,
	clutter_stage_osx_set_title): NSString:stringWithUTF8String:
	does not accept NULL values, use empty string ("") instead.
	Avoids potential crash.
2008-06-05 20:10:00 +00:00
Emmanuele Bassi
2d29f11cf6 2008-06-05 Emmanuele Bassi <ebassi@openedhand.com>
* tests/Makefile.am:
	* tests/test-paint-wrapper.c: Add a test case (merely, a copy
	of test-actors.c) that verifies that handlers to the ::paint
	signal are called in the right order.
2008-06-05 15:07:51 +00:00
Emmanuele Bassi
a06a79737b 2008-06-05 Emmanuele Bassi <ebassi@openedhand.com>
Bug #840 - Implement prepare-paint and finish-paint signals.

	* clutter/clutter-actor.c:
	(clutter_actor_class_init): Add the ::paint, ::realize and
	::unrealize signals to ClutterActor. It is possible to
	override the paint, realization and unrealization of an
	actor without subclassing it. The ::paint signal handlers
	have the same limitations of a ClutterActor::paint implementation
	inside a subclass.

	(clutter_actor_realize),
	(clutter_actor_unrealize),
	(clutter_actor_paint): Emit the signals instead of calling
	the functions from the class vtable.
2008-06-05 14:32:18 +00:00
Emmanuele Bassi
d63d928718 2008-06-05 Emmanuele Bassi <ebassi@openedhand.com>
* ChangeLog-ivan: Remove the ChangeLog of the clutter-ivan
	branch; the branch already contains it.
2008-06-05 13:23:29 +00:00
Matthew Allum
a7ce389052 2008-06-05 Matthew Allum <mallum@openedhand.com>
* clutter/glx/clutter-glx-texture-pixmap.h:
        Actually export clutter_glx_texture_pixmap_using_extension ()
2008-06-05 12:05:19 +00:00
Chris Lord
036c8393a6 * clutter/clutter-entry.c:
Correct the documentation for clutter_entry_set_max_length, fixes bug
        #915.
2008-06-05 10:05:01 +00:00
Robert Bragg
1be042189f 2008-06-04 Robert Bragg <bob@o-hand.com>
* tests/test-clip.c:
	Removes a spurious #include <gdk-pixbuf/gdk-pixbuf.h> which may not
	be found if using --with-imagebackend=internal
2008-06-04 16:02:40 +00:00
Robert Bragg
b2a3ce461d 2008-06-04 Robert Bragg <bob@o-hand.com>
* configure.ac:
	Checks that for pangocairo >= 1.18, since
	pangocairo-font.c uses pango_cairo_font_get_scaled_font which isn't
	otherwise available.
2008-06-04 15:20:07 +00:00
Neil Roberts
b887bddbb1 Applied patch from bug #947
* clutter/clutter-stage.c (clutter_stage_get_default): Don't grab
	the floating reference when creating the default stage. The stage
	manager will take a reference to it so it will behave as any other
	stage.
	(clutter_stage_new): Don't take the floating reference to the new
	stage but let the stage manager keep it instead.

	* clutter/clutter-stage-manager.c
	(_clutter_stage_manager_add_stage): Take a reference to the stage
	when it is added to the list.
	(_clutter_stage_manager_remove_stage): Unref the stage when it is
	removed from the list.
	(clutter_stage_manager_dispose): Keep track of the 'next' pointer
	as a separate variable so we can cope when the stage being
	destroyed removes itself from the list as the list is being
	iterated.

	* clutter/clutter-actor.c (clutter_actor_destroy): Take a
	reference at the beginning of the function even if there is no
	parent container so that overall the reference count is not
	changed when the actor is unref'd again at the bottom of the
	function. Previously it would have a net effect of leaving the
	reference count alone unless it is a top level actor in which case
	it would unref it.
2008-06-03 20:15:11 +00:00
Matthew Allum
437fa9239f 2008-06-03 Matthew Allum <mallum@openedhand.com>
* clutter/glx/clutter-glx-texture-pixmap.c:
        Dont always fallback to x11 (slow) updates for a single
        failed pixmap.
        Minor cleanups.
        * clutter/x11/clutter-x11-texture-pixmap.c:
        Move shm allocation to only area updates.
2008-06-03 16:25:17 +00:00
Øyvind Kolås
474ae2d17e * clutter/clutter-container.c: (container_get_child_property):
s/g_object_set_property/g_object_get_property/
2008-06-03 10:49:49 +00:00
Neil Roberts
dd1a669911 * clutter/pango/pangoclutter-glyph-cache.c
(pango_clutter_glyph_cache_set): When creating a new band, make
	sure the texture is wide enough for the glyph, not just tall
	enough.
2008-06-02 16:02:31 +00:00
Neil Roberts
8bdb98736d Applied 'final patch' from bug #874
* clutter/cogl/gles/cogl.c:
	* clutter/cogl/gl/cogl.c: The clip planes are now set using the
	inverse projection matrix as the modelview matrix so that they can
	be specified in screen coordinates.

	* clutter/cogl/gles/cogl-context.h (CoglContext):
	* clutter/cogl/gl/cogl-context.h (CoglContext): Added a member to
	cache the inverse projection matrix

	* clutter/clutter-fixed.h: Added a constant for converting from
	radians to degrees.

	* clutter/clutter-fixed.c (clutter_atani, clutter_atan2i): Added
	fixed-point versions of atan and atan2.

	* tests/test-clip.c: Added a test for clipping with various
	rotations and depths.

	* tests/Makefile.am (noinst_PROGRAMS): Added test-clip
2008-06-02 12:34:10 +00:00
Neil Roberts
42ed195f01 * clutter/cogl/gles/cogl-gles2-wrapper.h: The uniform numbers are
now stored in a separate struct so they can be stored for
	application program objects as well.

	* clutter/cogl/gles/cogl.c: Moved stub shader functions into
	separate files.
	(_cogl_features_init): Report support for the shaders feature on
	GLES 2

	* clutter/cogl/gles/cogl-shader.h:
	* clutter/cogl/gles/cogl-shader.c:
	* clutter/cogl/gles/cogl-program.h:
	* clutter/cogl/gles/cogl-program.c: Separate files to handle
	shaders on programs on GLES. If version 1.1 is being used then the
	stub functions which all fail are still used.

	* clutter/cogl/gles/cogl-gles2-wrapper.c
	(cogl_gles2_wrapper_init, cogl_gles2_wrapper_bind_attributes),
	(cogl_gles2_wrapper_get_uniforms): Move the uniforms and attribute
	bindings into a separate function so they can be used to bind on
	application shaders as well.
	(cogl_gles2_wrapper_update_matrix): Now takes a parameter and is
	no longer static so that it can be used to update all of the
	matrices when a new shader is bound.

	* clutter/cogl/gles/cogl-defines.h.in: Use GL_COMPILE_STATUS for
	CGL_OBJECT_COMPILE_STATUS if the latter isn't available (for
	example on GLES 2).

	* clutter/cogl/gles/cogl-context.h (CoglContext): Added handle
	arrays for programs and shaders.

	* clutter/cogl/gles/cogl-context.c (cogl_create_context)
	(cogl_destroy_context): Initialize and destroy program and shader
	handle array.

	* clutter/cogl/gles/Makefile.am (libclutter_cogl_la_SOURCES): Add
	cogl-{shader,program}.{c,h}
2008-06-02 10:58:57 +00:00
Neil Roberts
de49189c9f * clutter/cogl/gl/cogl-context.c (cogl_destroy_context): Fix
cut-and-paste error where the wrong arrays were being freed.
2008-06-02 09:35:43 +00:00
Emmanuele Bassi
3ab2ff9846 2008-06-01 Emmanuele Bassi <ebassi@openedhand.com>
Merge from clutter-0-6:

	* clutter/clutter-model.c:
	(clutter_model_iter_set_internal_valist): Add an internal function
	wrapping ClutterModelIter::set_value that does not emit the
	::row-changed signal. Emitting this signal before the ::row-added
	one is wrong: a row cannot change before being inserted.

	(clutter_model_append), (clutter_model_prepend),
	(clutter_model_insert): Use the non-signal emitting variant of
	clutter_model_iter_set_valist().

	(clutter_model_iter_set_valist): Use the internal version and emit
	the ::row-changed signal at the end.
2008-06-01 19:57:42 +00:00
Emmanuele Bassi
a4e4faff1d 2008-05-31 Emmanuele Bassi <ebassi@openedhand.com>
Bug #943 - Signals are only emitted within a certain area of
	           the stage

	* clutter/clutter-main.c (clutter_do_event): Use the proper
	API and not the macros for the default stage, in case we are
	using a backend supporting multiple stages. (Julian Aron Prenner)
2008-05-31 17:09:40 +00:00
Emmanuele Bassi
7b9a7b95ec 2008-05-30 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/pango/pangoclutter-fontmap.c:
	* clutter/pango/pangoclutter-renderer.c: 
	* clutter/pango/pangoclutter.h
	* clutter/pango/pangoclutter-private.h: Add a function retrieving
	the font mipmapping setting.
2008-05-30 16:48:32 +00:00
Neil Roberts
71133b3d0e * clutter/cogl/gles/cogl-gles2-wrapper.h (CoglGles2Wrapper): Added
uniforms for alpha testing.

	* clutter/cogl/gles/cogl-gles2-wrapper.c
	(cogl_gles2_wrapper_init): Get the uniforms for alpha testing
	settings.
	(cogl_wrap_glEnable, cogl_wrap_glDisable): Enable/disable alpha
	testing.
	(cogl_wrap_glAlphaFunc): Filled in the wrapper.

	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: Added alpha
	testing.

	* clutter/cogl/gles/cogl-gles2-wrapper.h:
	* clutter/cogl/gles/cogl-gles2-wrapper.c
	(cogl_wrap_glGetIntegerv): Added a wrapper for glGetIntegerv so
	that it can report zero clip planes.

	* clutter/cogl/gles/cogl.c:
	* clutter/cogl/gles/cogl-texture.c: Use the wrapped version of
	glGetIntegerv

	* clutter/cogl/gles/cogl-primitives.c (_cogl_path_fill_nodes): Use
	_cogl_features_available to check for the stencil buffer instead
	of an #ifdef. The stencil buffer is available in the default
	profile for the GLES 2 simulator.
2008-05-29 13:29:04 +00:00
Emmanuele Bassi
52b231b0b5 2008-05-29 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Check the --with switches as soon as we have them,
	to avoid further checks that will fail anyway.
2008-05-29 09:28:24 +00:00
Emmanuele Bassi
213953620b 2008-05-29 Emmanuele Bassi <ebassi@openedhand.com>
* README: Update the configure arguments list.
2008-05-29 09:27:21 +00:00
Neil Roberts
8d7bf93909 * clutter/cogl/gles/cogl-gles2-wrapper.c
(cogl_gles2_wrapper_init): Get uniforms for fog parameters and
    	initialise them.
    	(cogl_wrap_glDrawArrays): Store the modelview matrix in a uniform
    	as well so that it can be used for fogging calculations.
    	(cogl_wrap_glEnable, cogl_wrap_glDisable): Enable/disable fogging.
    	(cogl_wrap_glFogx, cogl_wrap_glFogxv): Fill in wrapper to set
    	fogging parameters.

    	* clutter/cogl/gles/cogl-fixed-vertex-shader.glsl: Calculate the
    	fog amount if fogging is enabled.

    	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: Mix with fog
    	color.

    	* clutter/cogl/gles/cogl-gles2-wrapper.h (CoglGles2Wrapper): Add
    	uniforms for fogging.
2008-05-28 17:14:17 +00:00
Emmanuele Bassi
a03ec45dff 2008-05-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/pango/pangoclutter-font.c: Remove unneeded file.

	* tests/Makefile.am:
	* tests/test-random-text.c: Add a test for checking the
	glyph cache.
2008-05-28 14:14:56 +00:00
Emmanuele Bassi
f20cfeadb4 2008-05-28 Emmanuele Bassi <ebassi@openedhand.com>
Bug #919 - Replacement pango renderer (Neil Roberts)

	* clutter/clutter-backend.h:
	* clutter/clutter-backend.c:
	(clutter_backend_set_font_options),
	(clutter_backend_get_font_options): Add the ability to set
	the cairo_font_options_t* for the backend at construction
	time, so that backend implementations can have their own
	options.

	* clutter/clutter-color.c: Include pango/pango-attributes.h
	for the pango_color_parse() function.

	* clutter/clutter-label.c:
	(clutter_label_ensure_layout),
	(clutter_label_init), (clutter_label_set_text),
	(clutter_label_set_font_name), (clutter_label_set_ellipsize),
	(clutter_label_set_use_markup): Ensure that the cache is
	always primed when the Label changes; this makes sure that
	the cache is rebuilt outside the paint run, which should
	make the painting perform better especially on embedded
	devices.

	* clutter/clutter-entry.c:
	(clutter_entry_ensure_layout),
	(clutter_entry_init), (clutter_entry_set_text),
	(clutter_entry_set_font_name): Ditto as above.

	* clutter/clutter-private.h:
	* clutter/clutter-main.[ch]: Create the font-map inside the
	main context; add two new functions:

	  clutter_clear_glyph_cache()
	  clutter_set_use_mipmapped_text()

	that control the glyphs cache.

	* clutter/pango/Makefile.am:
	* clutter/pango/pangoclutter-fontmap.c:
	* clutter/pango/pangoclutter-private.h:
	* clutter/pango/pangoclutter-render.c:
	* clutter/pango/pangoclutter.h: Rewrite the Pango renderer
	using a PangoCairo context and saving the glyphs inside a
	more efficient cache.

	* configure.ac: Depend on pangocairo instead of pangoft2.
2008-05-28 14:03:28 +00:00
Emmanuele Bassi
a0747e8c2d 2008-05-28 Emmanuele Bassi <ebassi@openedhand.com>
Bug 882 - Allow child properties for containers implementing the
	          ClutterContainer interface (Øyvind Kolås)

	* clutter/clutter-child-meta.[ch]: Base class for the metadata
	of a ClutterActor inside a ClutterContainer; the ChildMeta
	object implements a wrapper for storing data that is attached
	to a ClutterActor only when it's part of a ClutterContainer.
	The ChildMeta object is used to store the child properties
	accessible through the ClutterContainer API.

	* clutter/clutter-container.[ch]: Creates the ChildMeta for
	each actor, in case the Container specifies the ChildMeta
	type to use.

	* clutter/Makefile.am: Add clutter-child-meta.[ch] to the build.

	* clutter/clutter-marshal.list: Add the marshaller for the
	ClutterContainer::child-notify signal.

	* clutter/clutter-types.h: Declare ClutterContainer and
	ClutterChildMeta to avoid recursive inclusion.
2008-05-28 13:48:11 +00:00
Neil Roberts
717d9768ed * clutter/cogl/gles/Makefile.am: Use old-style Makefile rules for
the stringify script so that automake won't complain.
2008-05-28 13:17:03 +00:00
Emmanuele Bassi
28430b7c1b 2008-05-28 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-script.c:
	* tests/test-script.json: Test merging the same actor from two
	different sources.
2008-05-28 12:20:54 +00:00
Emmanuele Bassi
1b9ce112c4 Commit ChangeLog for the previous revision 2008-05-28 12:19:24 +00:00
Neil Roberts
1502d0690c * clutter/cogl/gles/cogl-gles2-wrapper.c (cogl_wrap_glGetFixedv):
Filled in the wrapper for glGetFixedv
2008-05-28 11:29:58 +00:00
Neil Roberts
29f7cbdfb7 * clutter/cogl/gles/cogl-texture.c: Use the wrapper for
glTexParameteri. Call glGenerateMipmap after every change to the
	texture image data.

	* clutter/cogl/gles/cogl-gles2-wrapper.h:
	* clutter/cogl/gles/cogl-gles2-wrapper.c: Added a wrapper for
	glTexParameteri so that it can ignore requests to set
	GL_GENERATE_MIPMAP. Added a wrapper for glGenerateMipmap that does
	nothing on GLES 1
2008-05-28 10:47:21 +00:00
Emmanuele Bassi
cb279f999a 2008-05-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c:
	(clutter_script_construct_object): Mark top-level objects,
	that is objects that don't have their ownership transferred
	when building up a ClutterScript.

	(object_info_free): Merge a fix from the stable branch, but
	do not check the type - check whether the object is a top
	level (we still need the ClutterActor type check in order to
	call clutter_actor_destroy()).
2008-05-28 09:03:49 +00:00
Emmanuele Bassi
d27ea0b4ac 2008-05-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-rectangle.c:
	(clutter_rectangle_paint): Remove commented out call to
	cogl_enable(); the call is not needed and the comment is
	in C99.
2008-05-28 08:58:44 +00:00
Neil Roberts
70dbc03734 GLES 2 backend
* clutter/eglx/clutter-stage-egl.h:
	* clutter/eglx/clutter-egl-headers.h:
	* clutter/eglx/clutter-backend-egl.h:
	* clutter/eglx/Makefile.am: Include the GLES and EGL headers via
	clutter-egl-headers.h so that the right version can be used
	depending on whether the GLES 2 wrapper is being used.

	* configure.ac: Added an automake conditional for whether the GLES
	2 wrapper should be used.

	* clutter/eglx/clutter-stage-egl.c (clutter_stage_egl_realize):
	Remove the call to glGetIntegerv to get the max texture size. It
	was being called before the GL context was bound so it didn't work
	anyway and it was causing trouble for the GLES 2 simulator.

	* clutter/cogl/gles/stringify.sh: Shell script to convert the
	shaders into a C string.

	* clutter/cogl/gles/cogl-gles2-wrapper.h:
	* clutter/cogl/gles/cogl-gles2-wrapper.c: Wrappers for most of the
	missing GL functions in GLES 2.

	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl:
	* clutter/cogl/gles/cogl-fixed-vertex-shader.glsl: New shaders for
	GLES 2

	* clutter/cogl/gles/cogl-defines.h.in: Use the @CLUTTER_GL_HEADER@
	macro instead of always using the GLES 1 header.

	* clutter/cogl/gles/cogl-context.h (CoglContext): Include a field
	for the state of the GLES 2 wrapper.

	* clutter/cogl/gles/cogl-texture.c:
	* clutter/cogl/gles/cogl-primitives.c:
	* clutter/cogl/gles/cogl.c: Use wrapped versions of the GL
	functions where neccessary.

	* clutter/cogl/gles/Makefile.am: Add sources for the GLES 2
	wrapper and an extra build step to put the GLSL files into a C
	string whenever the files change.
2008-05-27 17:42:50 +00:00
Matthew Allum
94b2d6f664 2008-05-26 Matthew Allum <mallum@openedhand.com>
* clutter/x11/clutter-stage-x11.c: (clutter_stage_x11_request_coords):
        Dont allow the window to be resize to 0 dimentions. (fixes #933)
2008-05-26 20:55:53 +00:00
Emmanuele Bassi
4ef8d3bb5f 2008-05-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug #912 - Invalid use of int* as parameter for glGetIntegerv

	* clutter/cogl/gl/cogl.c (_cogl_features_init): Use GLint
	instead of int. (#912, Tommi Komulainen)
2008-05-23 15:23:40 +00:00
Emmanuele Bassi
5cc8687e7e 2008-05-23 Emmanuele Bassi <ebassi@openedhand.com>
Bug #928 - Reparenting a child that itself is a container
	doesn't work

	* clutter/clutter-actor.c (clutter_actor_set_parent): Realize
	an actor when setting its parent, if the parent is realized.

	* clutter/clutter-group.c:
	(clutter_group_realize), (clutter_group_class_init): Add the
	missing implementation of the ::realize() virtual function; this
	makes sure that the children of a Group are realized if the Group
	is realized. (#928)
2008-05-23 09:42:32 +00:00
Neil Roberts
f9e43c440b * clutter/cogl/gl/cogl.c (error_string):
* clutter/cogl/gles/cogl.c (error_string): Rename to
	_cogl_error_string and remove the static scoping so that it can be
	called in cogl-texture etc.

	* clutter/cogl/gl/cogl-texture.c (cogl_texture_new_from_foreign):
	* clutter/cogl/gles/cogl-texture.c (cogl_texture_new_from_foreign):
	GE(*) can't be used to wrap around calls that use the return
	value.

	* clutter/cogl/gl/cogl-texture.c (_cogl_texture_quad_sw)
	(_cogl_texture_quad_hw, cogl_texture_polygon): Remove GE(*)
	wrapper around calls in the middle of a glBegin/glEnd pair which
	otherwise always generate an error because glGetError can only be
	called outside of the pair.

	* clutter/cogl/gl/cogl-internal.h: Include stdio.h when definig
	COGL_DEBUG and declare a prototype for _cogl_error_string.

	* clutter/cogl/gles/cogl-internal.h: Match GE(*) macro to GL
	version.
2008-05-21 13:20:33 +00:00
Ivan Leben
9f5a8edc64 * clutter/cogl/gles/cogl-texture.c:
(_cogl_texture_download_from_gl:) Only comment out the broken
	check for framebuffer alpha bits, not the check for alpha in
	texture format.
2008-05-21 10:00:08 +00:00
Øyvind Kolås
ecd5ba2bd2 Decouple actor opacity from fill opacity in ClutterRectangle (fixes
race when both are set from clutter script also makes it more
consistent with the behavior of other actors.)
* clutter/clutter-rectangle.c: (clutter_rectangle_set_color): stop
setting the opacity of the actor from the specified color.
(clutter_rectangle_paint): combine the absolute opacity of the actor
with the alpha of the color when painting.
2008-05-20 16:05:57 +00:00
Ivan Leben
2008a03a6b * clutter/cogl/gles/cogl-texture.c:
(cogl_texture_download_from_gl:) Implemented a workaround
	for missing alpha framebuffer channel. There are still
	some issues with detecting whether alpha is present in the
	framebuffer. See comments in code. Test-cogl-tex-getset now
	successfully retrieves a RGBA texture image data.
2008-05-20 10:37:36 +00:00
Ivan Leben
3d9f83019d * clutter/cogl/gles/cogl-texture.c:
(cogl_texture_download_from_gl:) Store old blending factors
	and restore them when done. The lack of ability to retrieve
	the alpha channel now more noticable in test-cogl-tex-getset
	since the edges of the hand are not antialiased.

	* clutter/cogl/gl(es)/cogl-internal.h: Declare
	cogl_blend_func to avoid "implicit implementation" compile
	warning.
2008-05-19 15:21:56 +00:00
Ivan Leben
f2d701c809 * clutter/cogl/gl(es)/cogl.c: New internal function
cogl_blend_func caches blending setup much like cogl_enable
	does with the enable flags. This separates blending factors
	setup from the enable/disable operation in preparation of
	the texture image retrieval fix for alpha channel on GLES.
	(cogl_enable:) Does not modify blending factors anymore.

	* clutter/cogl/gl(es)/cogl-context.h: CoglContext holds two
	new variables to cache blending src and dst factors.

	* clutter/cogl/gl(es)/cogl-context.c:
	(cogl_create_context:) Initialize blending factors.

	* clutter/cogl/gles/cogl-texture.c:
	(cogl_texture_download_from_gl:) Set blending factors to
	CGL_ONE, CGL_ZERO which fixes the slighlty improper behavior
	where source colour was actually multiplied with its alpha
	value in the result (not noticable on current tests).
2008-05-19 15:02:27 +00:00
Emmanuele Bassi
aec03912b8 2008-05-19 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/eglx/Makefile.am: Fix the INCLUDE directives to
	properly include the X11 backend headers.

	* clutter/glx/Makefile.am: Add the libclutter-x11.la static
	library to the LDADD directives.
2008-05-19 14:21:24 +00:00
Tomas Frydrych
460b05bd83 2008-05-19 Tomas Frydrych <tf@openedhand.com>
* clutter/x11/clutter-x11.h:
	    * clutter/glx/clutter-glx.h:
	    Include texture pixmap headers.
2008-05-19 12:27:26 +00:00
Neil Roberts
fbc68f2d26 * clutter/eglx/clutter-stage-egl.c (clutter_stage_egl_realize):
Fix name of parent class variable which otherwise breaks the
	build.
2008-05-16 15:40:49 +00:00
Neil Roberts
14a48008cd Use the Mesa headers instead of depending on GLee for Win32
builds.

	* configure.ac: No longer check for GLee

	* clutter/cogl/gl/cogl-defines.h.in: Don't bother including GLee.h

	* build/mingw/mingw-cross-compile.sh: No longer downloads libGLee
	but downloads the Mesa library instead and installs the headers
	from that. Fixed the libpng version.
2008-05-16 11:09:59 +00:00
Tomas Frydrych
889222f7d5 2008-05-16 Tomas Frydrych <tf@openedhand.com>
* clutter/glx/Makefile.am:
	    * clutter/x11/Makefile.am:
	    Install glx and x11 specific includes into clutter/glx and
	    clutter/x11 so that header files that include glx/*.h or x11/*.h
	    when installed.
2008-05-16 10:50:29 +00:00
Neil Roberts
bfaacb10bf * clutter/win32/clutter-event-win32.c (message_translate): Fix
signedness of old_xpos and old_ypos to get rid of compiler
	warnings.

	* clutter/win32/clutter-backend-win32.c
	(clutter_backend_win32_get_features): Cast the result of
	glGetString to a signed char pointer to avoid compiler warnings.
2008-05-16 09:47:37 +00:00
Neil Roberts
8ef653a9e8 * clutter/win32/clutter-stage-win32.c:
* clutter/win32/clutter-backend-win32.c: Reflect changes to the
	GLX/X11 backend in revisions 2708-2709 and 2713-2715 which
	simplify the backend a little.
2008-05-15 22:03:22 +00:00
Emmanuele Bassi
53e031210a Fix bug reference in the ChangeLog 2008-05-15 14:43:30 +00:00
Emmanuele Bassi
f6dce7f9e5 2008-05-15 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/x11/clutter-backend-x11.c:
	* clutter/clutter-event.h:
	* clutter/clutter-feature.h:
	* clutter/clutter-fixed.c:
	* clutter/clutter-model.h: Fix documentation.

	* clutter/eglnative/clutter-backend-egl.[ch]:
	* clutter/eglnative/clutter-event-egl.c: Add the same solution
	used for the SDL backend in order to get the time of an event.
	This should fix the motion event throttling and the click count
	on button press.

	* tests/test-pixmap.c (create_pixmap), (main): Fix preprocessor
	directives.
2008-05-15 14:31:43 +00:00
Emmanuele Bassi
3171062b3f 2008-05-14 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-threads.c: Add a "progress bar" actor and
	make the test take less amount of time to complete.
2008-05-14 17:26:59 +00:00
Emmanuele Bassi
99b303dbcc 2008-05-14 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-events.c: Clean up a bit, and print out more
	messages when pressing one of the rectangles.

	* tests/test-threads.c: Be more verbose in the console, and
	apply another behaviour on the rectangle, to show that we
	are not blocking.
2008-05-14 16:47:38 +00:00
Øyvind Kolås
677a202407 * clutter/cogl/gles/cogl.c: (_cogl_features_init): do not set
COGL_FEATURE_TEXTURE_READ_PIXELS, since it is not available.
2008-05-14 11:10:45 +00:00
Matthew Allum
092fdf1d79 2008-05-14 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-main.c:
        * clutter/clutter-private.h:
        Rejid Øyvind's previous commit a little moving more into
        clutter-main.c and using ClutterContext.
        Also Refactor clutter_init & clutter_init_with_args to share
        same core init code.
2008-05-13 23:02:45 +00:00
Øyvind Kolås
a1b240d31b Made it possible to do picking when the colors stored in the
framebuffer are only approximately the correct value.
* clutter/clutter-actor.c: 
(init_bits): initialize constants about how many bits are
available/will be used for r,g,b components.
(_clutter_pix_to_id): now own function, compute an id from a
pixel into its own function (used from _clutter_do_pick). 
(_clutter_id_to_col): now own function, computes the color to use for
a given id.
(clutter_actor_paint): use clutter_id_to_col.
* clutter/clutter-main.c:
(_clutter_do_pick): use _clutter_pix_to_id
(clutter_main): re-enable invocation of fruity app shell.
2008-05-13 18:40:14 +00:00
Emmanuele Bassi
04f3e42253 2008-05-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/fruity/clutter-stage-fruity.c:
	(clutter_stage_egl_show), (clutter_stage_egl_hide): Don't chain
	up and set flags, as it is not needed anymore.

	(clutter_stage_egl_realize): Set the REALIZED flag.

	* clutter/eglnative/clutter-stage-egl.c:
	(clutter_stage_egl_show), (clutter_stage_egl_hide): Don't chain
	up and set flags, as it is not needed anymore.
2008-05-13 16:09:42 +00:00
Emmanuele Bassi
d141f781ec 2008-05-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/glx/clutter-stage-glx.c:
	(clutter_stage_glx_unrealize): Move the shaders release from here...

	* clutter/glx/clutter-backend-glx.c:
	(clutter_backend_glx_dispose): ... to here. Shaders should be
	released when the GL context is being destroyed, and that only
	happens when the backend is being disposed, now that we support
	multiple stages.
2008-05-13 10:42:36 +00:00
Emmanuele Bassi
87ccdacdaf 2008-05-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-backend.c:
	(_clutter_backend_create_stage): Call _clutter_stage_set_window()
	ourselves, thus removing yet another action that backends must
	implement and might get wrong; also cuts a backend-agnostic piece
	of code duplication.

	* clutter/eglnative/clutter-backend-egl.c:
	(clutter_backend_egl_create_stage): Update the EGL native backend.

	* clutter/eglx/clutter-backend-egl.c:
	(clutter_backend_egl_create_stage): Update the EGLX backend.

	* clutter/fruity/clutter-backend-fruity.c:
	(clutter_backend_egl_create_stage): Update the fruity backend

	* clutter/glx/clutter-backend-glx.c:
	(clutter_backend_glx_create_stage): Update the GLX backend.

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

	* HACKING.backends: Update the ::create_stage() description.
2008-05-13 10:37:17 +00:00
Emmanuele Bassi
6022344a80 2008-05-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/x11/clutter-event-x11.c (event_translate): Remove the
	cheap Expose event compression, as it seems to play games when a
	composite manager is running. It's also not really needed, as
	the redraw queue will avoid redraws too close to each other
	anyway.

	* clutter/x11/clutter-stage-x11.c:
	(clutter_stage_x11_show), (clutter_stage_x11_hide): Do not chain
	up just to set the flags. This fixes a critical warning coming
	from ClutterActor::hide() default implementation.
2008-05-13 10:21:25 +00:00
Ivan Leben
54e2fd14ae * clutter/cogl/gl/cogl-defines.h.in:
Fix GL function prototypes on OS X by #definining APIENTRY and
	APIENTRYP if missing.
2008-05-13 04:56:06 +00:00
Ivan Leben
75b829f930 * clutter/cogl/gl/cogl-defines.h.in:
Defined GL extension functions used by Cogl inside the COGL_
	namespace.

	* clutter/cogl/gl/cogl-context.h:
	* clutter/cogl/gl/cogl.c:
	Use COGL_ extension function prototypes instead of relying
	on glext.h to define them. Should fix the mac compilability
	bug, but haven't tested it yet.
2008-05-12 17:20:22 +00:00
Matthew Allum
f360f81f22 2008-05-12 Matthew Allum <mallum@openedhand.com>
* clutter/x11/clutter-x11-texture-pixmap.c:
        * configure.ac:
        * tests/Makefile.am:
        Remove the XComposite dep from Clutter itself, just use
        in test-pixmap (if available)
2008-05-12 16:22:16 +00:00
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
4f9738d3a3 Fix bug reference in ChangeLog 2008-05-09 10:59:28 +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
Richard Purdie
af0843331a configure.ac: Set CLUTTER_COGL for fruity 2008-05-01 16:22:48 +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
Richard Purdie
24e1448c65 Fix up fruity flavour configure option. 2008-05-01 15:28:56 +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
Robert Bragg
cc24c99df2 2008-04-29 Robert Bragg <bob@o-hand.com>
* clutter/configure.ac:
	When looking for a GLES 1 library, also try the name "GLESv1_CM".

	This also reduces the xfixes version requirement to v3, since we dont
	need support for Show/HideCursor.
2008-04-29 12:22:39 +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
Emmanuele Bassi
451dce3600 2008-04-28 Emmanuele Bassi <ebassi@openedhand.com>
* autogen.sh: Do not just touch the gtk-doc.make file, if we
	could not find gtkdocize, but echo an empty EXTRA_DIST into it
	so that the automake won't complain later on.
2008-04-28 15:38:30 +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
Matthew Allum
2b80688cfe 2008-04-28 Matthew Allum <mallum@openedhand.com>
* autogen.sh:
        Dont display 'make' if configure fails.
        * configure.ac:
        Add new --with-gles version option for eventual GLES2 support
        Also minor tidyups.
2008-04-28 13:18:16 +00:00
Neil Roberts
ed9f2bc16f * tests/test-cogl-tex-polygon.c: Added buttons to toggle whether
slicing and linear filtering is enabled. By default slicing is
	disabled to help test on GL ES.
2008-04-28 11:23:27 +00:00
Neil Roberts
ae915f8ca4 * tests/Makefile.am (INCLUDES): Added $(top_srcdir)/clutter to the
include path. Otherwise the tests will fail to build trying to
	include "json/json-types.h" when building out-of-tree.
2008-04-28 10:11:14 +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
b1592629ca Updated the ChangeLog with a note about the clutter-ivan merge. 2008-04-25 15:03:24 +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
76735c0374 2008-04-24 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Add the --with-json configure switch to
	allow building Clutter with the external dependency on
	the system JSON-GLib; the default is to use the internal
	copy unless explicitly asked to check.
2008-04-24 18:53:43 +00:00
Emmanuele Bassi
e261affeea 2008-04-24 Emmanuele Bassi <ebassi@openedhand.com>
* Makefile.am: Add HACKING.backends to the EXTRA_DIST.
2008-04-24 17:43:26 +00:00
Emmanuele Bassi
16b92629a1 2008-04-24 Emmanuele Bassi <ebassi@openedhand.com>
* HACKING.backends: Add documentation on how to write a
	backend for Clutter.
2008-04-24 17:31:38 +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
f7d9c5eaa1 2008-04-23 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-script.json: Remove the explicit "visible"
	member to test that the visibility of actors is TRUE
	by default.
2008-04-23 14:01:09 +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
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
f9ce6576b4 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* HACKING: Amend coding style and tenets, as it is now possible
	to install and use unit based properties in a safe way.
2008-04-17 11:10:32 +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
6326daa9ae 2008-04-17 Emmanuele Bassi <ebassi@openedhand.com>
* autogen.sh: Try to continue even if we don't have gtk-doc
	installed; this will obviously won't work if you don't pass
	--disable-docs --disable-gtk-doc to autogen.sh as well.
2008-04-17 10:41:03 +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
Neil Roberts
0d622b780a 2008-04-04 Neil Roberts <neil@o-hand.com>
* README: Fixed typo
2008-04-04 17:05:34 +00:00
Matthew Allum
8dac049d2e 2008-04-04 Matthew Allum <mallum@openedhand.com>
* README:
        Add a note on new show-on-set-parent prop and stage subclassing.
2008-04-04 16:26:45 +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
Matthew Allum
560151c769 Fix ChangeLog - oops 2008-04-04 14:22:14 +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