Commit Graph

71 Commits

Author SHA1 Message Date
Emmanuele Bassi
454e493197 Fix various compiler warnings
Most of these fixes are simple symbol shadowing issues, like index and the
braindead y0 and y1 extern symbols exported by math.h on GNU libc systems.

There is a masking issue in ClutterTexture which should be checked; I ran
the tests and everything looked fine.

The rest are just unused variables.
2007-07-26 11:04:04 +00:00
Emmanuele Bassi
a37f537cd0 2007-07-24 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-box.h:
	* clutter/clutter-stage.c: Documentation fixes.
2007-07-24 17:34:06 +00:00
Matthew Allum
8fcfa9e2db 2007-07-12 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c: (clutter_actor_paint):
        * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos):
        * clutter/cogl/cogl.h:
        * clutter/cogl/gl/cogl.c: (cogl_get_viewport):
        * clutter/cogl/gles/cogl.c: (cogl_get_viewport):
        Based on patch from Pan Bohui, See;
        http://bugzilla.openedhand.com/show_bug.cgi?id=390

        * TODO:
        More misc updates.
2007-07-12 10:15:19 +00:00
Emmanuele Bassi
11775a16f0 2007-07-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Use the right get_type() function
	name for ClutterVertex, and add the CLUTTER_TYPE_VERTEX macro.
2007-07-04 09:17:10 +00:00
Tomas Frydrych
b9e486f587 use ClutterVertex to pass parameters into clutter_actor_apply_transform_to_point() 2007-07-02 09:21:58 +00:00
Emmanuele Bassi
500d7482b6 Documentation fixes
Various fixes in the API reference build and text.
2007-07-01 16:44:24 +00:00
Tomas Frydrych
4bb51a4787 renamed clutter_actor_project_* functions 2007-06-27 15:10:52 +00:00
Tomas Frydrych
e10a0ad025 clutter_actor_project_point(): separated input from output parameters 2007-06-27 15:10:42 +00:00
Tomas Frydrych
4fda40461e Fixed incorrect order of scaling and rotation in _clutter_actor_apply_modelview_transform() 2007-06-27 11:34:43 +00:00
Tomas Frydrych
4ed86c4bc1 fixed clutter_actor_scale_with_gravityx() 2007-06-27 09:41:49 +00:00
Tomas Frydrych
f4029ab77c added fixed version of clutter_actor_rotate_*() functions and accessors for rotation angles 2007-06-26 11:35:33 +00:00
Matthew Allum
ee6156cb01 2007-06-22 Matthew Allum <mallum@openedhand.com>
* NEWS:
        * README.in:
        * TODO:
        Update for 0.3 release.

        * clutter/clutter-actor.c:
        Minor doc fixups

        * clutter/clutter-texture.c:
        Various minor additions for handling non RGBA data.
        Fix a typo breaking clutter_texture_get_pixbuf() on tiled textures.

        * tests/test-actors.c:
        Disable scaling to avoid drifting (temporary till API is fixed)
2007-06-22 15:16:40 +00:00
Emmanuele Bassi
4172ce1fb2 2007-06-16 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Partially revert last commit, and fail
	with AC_MSG_ERROR() instead of disabling the manual build
	if no jw and xmlto were found.
2007-06-16 20:58:00 +00:00
Matthew Allum
53301e1bba 2007-06-16 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        Fix typo in x rotation transform (Thanks to Johan Billen #138)

        * configure.ac:
        * doc/manual/Makefile.am:
        Fix manual build and required program check.

        * tests/Makefile.am:
        Another typo fix.
2007-06-15 23:15:34 +00:00
Tomas Frydrych
0c5546007c removal of debug stuff, addition of comments 2007-06-15 09:53:07 +00:00
Emmanuele Bassi
a1958da910 2007-06-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-box.[ch]: Base class for layout containers.

	* clutter/clutter-hbox.[ch]: Horizontal box actor.
	
	* clutter/clutter-vbox.[ch]: Vertical box actor.

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

	* tests/Makefile.am:
	* tests/test-boxes.c: Test suite for ClutterBox API and
	implementations.
2007-06-14 15:29:52 +00:00
Tomas Frydrych
1391ee7306 use clutter_actor_project_point/vertices in clutter_actor_get_abs_position/size 2007-06-14 08:17:13 +00:00
Matthew Allum
61e3252ff1 2007-06-14 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-group.c:
        * clutter/clutter-label.c:
        * clutter/egl/clutter-stage-egl.c:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/sdl/clutter-stage-sdl.c:
        Rename clutter_actor_allocate_coords -> clutter_actor_query_coords

        Change repaints to G_PRIORITY_DEFAULT + 10.
        (timelines are G_PRIORITY_DEFAULT + 30, events G_PRIORITY_DEFAULT)

        * clutter/glx/clutter-event-glx.c:
        Handle shift modifier in keycode -> keysym translation.

        * tests/test-actors.c:
        Remove (broken) screen saver code.
        Add scaling behaviour, clean code a little
2007-06-13 23:24:59 +00:00
Tomas Frydrych
14e00cb904 more of projection work 2007-06-13 11:20:10 +00:00
Tomas Frydrych
70a3c9fbe6 clutter_actor_project_point/vertices 2007-06-12 11:42:29 +00:00
Matthew Allum
2c40b4b53d 2007-06-08 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-debug.h:
        * clutter/clutter-main.c:
        * clutter/clutter-main.h:
        * clutter/clutter-private.h:
        * clutter/clutter-timeline.c:
        Add 'schedule' debug flag and new CLUTTER_TIMESTAMP macro.

        * clutter/clutter-texture.c:
        * clutter/clutter-texture.h:
        * clutter/cogl/cogl.h:
        * clutter/cogl/gl/cogl-defines.h:
        * clutter/cogl/gles/cogl-defines.h:
        * clutter/cogl/gl/cogl.c:
        * clutter/cogl/gles/cogl.c:
        Add initial experiemental YUV texture support.
        Move texture rect size checks into cogl.
        Better handle moving texture data from video -> system memory
        (if support available).
2007-06-07 23:51:53 +00:00
Emmanuele Bassi
3c2defee9d 2007-06-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-container.[ch]: Add a generic actor container
	interface, for actors to implement without subclassing ClutterGroup.

	* clutter/clutter-group.[ch]: Make ClutterGroup implement the
	ClutterContainer interface, and deprecate the colliding methods.

	* clutter/clutter-layout.[ch]: Add extended layout interface.
	Actors and containers requiring or honouring complex layout
	management should implement this interface and provide at least
	one of the available layout types: width for height, height for
	width, natural size, iterative size request.

	* clutter/clutter-label.c: A ClutterLabel requires height for
	width layout management, so it implements the ClutterLayout
	interface.

	* clutter/Makefile.am: Add new files to the build.

	* tests/*.c:
	* examples/*.c: Update tests and examples code to use the
	new ClutterContainer API instead of ClutterGroup.
2007-06-07 14:41:35 +00:00
Tomas Frydrych
479fe01b5a removed perspective matrix caching from ClutterStage 2007-06-01 16:20:57 +00:00
Tomas Frydrych
d82c068faf make clutter_actor_get_transformed_point input relative to actor; feed actor depth into transform 2007-06-01 15:15:13 +00:00
Tomas Frydrych
d53497d92f when calculating vertices, apply perspective before all other tranforms 2007-06-01 11:43:53 +00:00
Tomas Frydrych
e2cc64faa2 include perspective transfore in calculation of vertices 2007-05-31 19:14:28 +00:00
Tomas Frydrych
984ce646a5 fixed coordinance translation in clutter_actor_get_transformed_point 2007-05-31 18:22:41 +00:00
Matthew Allum
fb6d22f95d 2007-05-31 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        Add clutter_actor_get_transformed_point()

        * clutter/clutter-main.c:
        Plug in perspective setup to redraw

        * clutter/clutter-stage.c:
        * clutter/clutter-stage.h:
        Remove audience code for now.
2007-05-31 17:11:09 +00:00
Tomas Frydrych
8697bfa53d added missing clutter_actor_get_transformed_vertices prototype; removed related debug code 2007-05-31 09:38:57 +00:00
Tomas Frydrych
733de46f3b Fixed ellipse behaviour for negative angles; fixed double to int conversion for negative numbers; fixed CLUTTER_ANGLE_FROM_DEGX; added ClutterVertices and clutter_actor_get_transformed_vertices() 2007-05-31 09:29:12 +00:00
Matthew Allum
a2bd6de736 2007-05-28 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-backend.c:
        * clutter/clutter-backend.h:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/glx/clutter-backend-glx.c:
        Fix up rendering pipeline removing clutter_backend_XXX_stage_paint
        and adding clutter_backend_XXX_redraw instead. Duplicates less
        code in backends, avoids clutter_actor_paint() getting called
        before stage is set up (viewport wise) and unbreaks things like
        picking.

        * clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-main.c:
        * clutter/clutter-private.h:
        * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos):
        Redo picking functionality a different way (via color indexing)
        as to provide more flexibility, possibly speed and more likely
        work with GL/ES (doesn't currently however - not sure why).

        * clutter/clutter-group.c:
        Add groups own 'pick' method.

        * clutter/cogl/cogl.h:
        * clutter/cogl/gl/cogl.c:
        * clutter/cogl/gles/cogl.c:
        Move clipping funtionality into cogl.

        * clutter/cogl/gles/cogl-defines.h:
        Hack around missing BGR format in GL/ES.

        * clutter/egl/clutter-backend-egl.c:
        * clutter/egl/clutter-backend-egl.h:
        * clutter/egl/clutter-stage-egl.c:
        * clutter/sdl/clutter-backend-sdl.c:
        * clutter/sdl/clutter-backend-sdl.h:
        * clutter/sdl/clutter-event-sdl.c:
        * clutter/sdl/clutter-stage-sdl.c:
        Update backends to newer API.
        Add basic mouse event translation to SDL.
2007-05-28 18:49:34 +00:00
Tomas Frydrych
bf8996215e ClutterBehaviourEllipse api changes; z_camera calculation 2007-05-25 12:07:24 +00:00
Matthew Allum
d2efd34eb5 2007-05-25 Matthew Allum <mallum@openedhand.com>
* Makefile.am:
        Install a default flavour .pc file.

        * clutter/clutter-actor.c:
        Translate units correctly for translate()

        * clutter/clutter-feature.h:
        Add new texture features.

        * clutter/clutter-fixed.h:
        Add clutter angle conversion defines.

        * clutter/clutter-group.c:
        Use cogl not GL. Dont recurse on show all.

        * clutter/clutter-private.h:
        Remove sync_viewport.

        * clutter/clutter-rectangle.c:
        Fix cogl typo.

        * clutter/clutter-stage.c:
        * clutter/clutter-stage.h:
        Add perspective settings. Remove viewport_sync.
        Add audience stubs. Fix up actor_at_pos a little (still broken)

        * clutter/clutter-texture.h:
        * clutter/clutter-texture.c:
        Redo pixel uploading. Add initial (disabled) YUV support.

        * clutter/clutter-timeline.c:
        Fire 'completed' signal when looping.

        * clutter/cogl/gl/cogl.c:
        Move some backend checks here.

        * clutter/glx/clutter-backend-glx.c:
        Actually check target display has GLX ext.

        * clutter/glx/clutter-stage-glx.c:
        Handle offscreen failing more gracefully.

        * examples/Makefile.am:
        Use AM_LDFLAGS.

        * clutter/clutter-main.c:
        * clutter/clutter-feature.c:
        * clutter/clutter-backend.c:
        * clutter/clutter-alpha.c:
        Fix a compile warnings.

        * tests/Makefile.am:
        * tests/test-offscreen.c:
        * tests/test-scale.c:
        More tests.
2007-05-25 10:56:09 +00:00
Tomas Frydrych
361cc36aaa removed clutter_actor_get_abs_position_units() and clutter_actor_get_abs_size_units() from public api 2007-05-23 10:47:35 +00:00
Tomas Frydrych
a338a95796 removed ClutterReal; added clutter-units 2007-05-22 09:31:40 +00:00
Tomas Frydrych
47b3d6db56 ClutterReal type 2007-05-18 07:30:06 +00:00
Tomas Frydrych
aab511d319 removed unnecessary CFX_MUL from clutter_actor_get_abs_position 2007-05-15 15:41:30 +00:00
Matthew Allum
2845bb5b74 2007-05-02 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/cogl/gles/cogl.c:
        Fix rotation + other fixed point cleanups.

        * clutter/clutter-texture.h:
        Sketch out an updated API.
2007-05-02 09:01:11 +00:00
Matthew Allum
79469940bc 2007-04-27 Matthew Allum <mallum@openedhand.com>
* clutter/Makefile.am:
        * clutter/clutter-actor.c:
        * clutter/clutter-clone-texture.c:
        * clutter/clutter-rectangle.c:
        * clutter/clutter-stage.c:
        * clutter/clutter-texture.c:
        * clutter/cogl/cogl.h:
        * clutter/cogl/gl/Makefile.am:
        * clutter/cogl/gl/cogl-defines.h:
        * clutter/cogl/gl/cogl.c:
        * clutter/cogl/gles/Makefile.am:
        * clutter/cogl/gles/cogl-defines.h:
        * clutter/cogl/gles/cogl.c:
        * clutter/glx/Makefile.am:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/pango/Makefile.am:
        * clutter/pango/pangoclutter-render.c:
        * configure.ac:
        Add initial 'cogl' implementation. 'cogl' is a simple abstration
        layer over GL and GL/ES used by clutter internally. It should
        eventually allow clutter applications to be run on both GL and GL/ES
        with just a recompile as well as provide more debugging and potentially
        profiling information for GL and GL/ES usage.

        This commit contains the initial GL implementation.
2007-04-27 21:13:06 +00:00
Emmanuele Bassi
09487c904a Freeze notification queue when changing multiple properties.
Call g_object_freeze_notify() (and take a reference on the actor) inside
clutter_actor_request_size() so that the notifications get unqueued at the
end of the size request.
2007-04-19 15:24:04 +00:00
Emmanuele Bassi
1722c6fec4 Add missing template files. 2007-04-19 15:22:49 +00:00
Emmanuele Bassi
7359668c3d Freeze notification queue when changing multiple properties.
Call g_object_freeze_notify() (and take a reference on the actor) inside
clutter_actor_request_size() so that the notifications get unqueued at the
end of the size request.
2007-04-16 16:50:23 +00:00
Emmanuele Bassi
4bd3fa583e 2007-03-22 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-private.h: Remove inclusion of backend-specific
	headers; update the main context object; add the declarations for
	the event queue functions.

	* clutter/clutter-backend.[ch]: Add the abstract ClutterBackend
	object, which holds backend-specific settings, the main stage,
	and the event queue. Every backend must implement a subclass of
	ClutterBackend and ClutterStage.

	* clutter/clutter-feature.c: Protect the GLX specific calls
	behing #ifdef HAVE_CLUTTER_GLX.

	* clutter/clutter-actor.c:
	* clutter/clutter-group.c:
	* clutter/clutter-clone-texture.c: Include GL/gl.h

	* clutter/clutter-event.[ch]: Update public API and implement the
	event queue private API; hold a reference on the event objects;
	move out the keysym-to-unicode table; add the new event types.

	* clutter/clutter-color.h: Include clutter-fixed.h

	* clutter/clutter-main.c: Update API; get the main stage
	from the backend object; process the event received from the
	queue; lock/unlock the main mutex if we have one; move the
	initialisation process sooner in the init sequence, in order to
	have the backend object when we check for options; call the
	backed vfuncs in the pre/post parse hooks.

	* clutter/clutter-stage.c: Make ClutterStage and abstract class,
	implemented by the backends.

	* clutter/clutter/glx/clutter-glx.h:
	* clutter/clutter/glx/clutter-backend-glx.[ch]:
	* clutter/clutter/glx/clutter-event-glx.c:
	* clutter/clutter/glx/clutter-stage-glx.[ch]:
	* clutter/clutter/glx/Makefile.am: Add the GLX backend.

	* clutter/clutter/egl/clutter-backend-egl.[ch]:
	* clutter/clutter/egl/clutter-event-egl.c:
	* clutter/clutter/egl/clutter-stage-egl.[ch]:
	* clutter/clutter/egl/Makefile.am: Add the stub for a EGL backend.

	* examples/*.c: Update for the new API.
2007-03-22 18:21:59 +00:00
Matthew Allum
02d1f56310 2007-02-18 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c: (clutter_actor_reparent):
        Add a FIXME re calling clutter_group here.
        * clutter/clutter-group.c:
        Fix clutter_group_remove_all
2007-02-18 00:14:19 +00:00
Matthew Allum
097bb235db 2007-01-07 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c: (clutter_actor_allocate_coords):
        Fix an amazingly not noticed until now typo.
        Minor doc tweaks.

        * clutter/clutter-behaviour-opacity.c:
        (clutter_behaviour_alpha_notify):
        Take into account initial opacity value when calculating from alpha.

        * clutter/clutter-group.c:
        Add new get_nth_child() and get_n_children() api calls.
2007-01-07 00:36:41 +00:00
Matthew Allum
83700e97c7 2007-01-04 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        Add new set_width/height API calls.
        Tweak scaling by reseting matrix.
        Make set_opactiy() take parent opacity into account.
        Fix clipping.

        * clutter/clutter-alpha.c:
        Add more sine functionality.

        * clutter/clutter-behaviour-opacity.c:
        Dont make a copy of all applied actors but use a foreach()

        * clutter/clutter-behaviour-scale.c:
        Give correct limits to propertys.
        Tweak gravity a little more.
        Update docs.
:
        * clutter/clutter-behaviour.c: (clutter_behaviour_remove):
        Minor warning text change.

        * clutter/clutter-feature.c: (clutter_feature_wait_for_vblank):
        Minor dri ioctl tweak.

        * clutter/clutter-label.c:
        * clutter/clutter-label.h:
        Add new label_full api call.
2007-01-04 19:56:01 +00:00
Emmanuele Bassi
4d168e81fa 2006-12-13 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-clone-texture.c:
	* clutter/clutter-event.h:
	* clutter/clutter-stage.c:
	* clutter/clutter-texture.c:
	* clutter/clutter-timeline.c: Update the inline apidoc.
2006-12-13 18:12:09 +00:00
Matthew Allum
77f421a294 2006-12-13 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c: (clutter_actor_class_init):
        Allow actor x,y props to be negative.
2006-12-13 09:44:05 +00:00
Emmanuele Bassi
10fbfb1659 2006-12-12 Emmanuele Bassi <ebassi@openedhand.com>
Rework part of the show/hide machinery.  Allow groups sub-classes
	and composite actors to override show_all/hide_all in order to
	decide which children they wish to show/hide.  This means that
	if an actor overrides the default show/hide virtual methods, it'll
	have to chain up to the parent class show/hide.  While we're at it,
	provide the fully recursive clutter_actor_show_all() and
	clutter_actor_hide_all() methods.

	* clutter/clutter-behaviour-path.c: Add apidoc for the ClutterKnot
	functions; add pathological equality case for clutter_knot_equal().

	* clutter/clutter-event.h:
	* clutter/clutter-feature.h:
	* clutter/clutter-behaviour.c:
	* clutter/clutter-behaviour-scale.c:Fix parameters name so that
	gtk-doc doesn't complain.

	* clutter/clutter-actor.c:
	* clutter/clutter-event.c: Add apidoc

	* clutter/clutter-actor.h:
	* clutter/clutter-actor.c: Add a clutter_actor_show_all() and a
	clutter_actor_hide_all() functions; provide a mechanism for
	groups and composited actors to programmatically select what to
	show/hide when clutter_actor_show_all() and clutter_actor_hide_all()
	are called.  If you are overriding the ClutterActor::show or
	the ClutterActor::hide virtual methods you should chain up with
	the parent class.

	* clutter/clutter-group.c: Override show_all and hide_all and
	recursively show/hide every child inside the group;
	clutter_group_show_all() and clutter_group_hide_all() remain as non
	recursive versions of clutter_actor_show_all() and
	clutter_actor_hide_all() (maybe we should rename them in order
	to avoid name clashes with the bindings).

	* clutter/clutter-stage.c:
	* clutter/clutter-texture.c: Chain up with parent class show
	and hide vfuncs.

	* clutter/clutter-clone-texture.h:
	* clutter/clutter-clone-texture.c: Provide API for changing the
	parent texture of a clone texture actor.

	* examples/behave.c:
	* examples/super-oh.c:
	* examples/test.c: Use clutter_actor_show_all() instead of
	clutter_group_show_all().
2006-12-12 20:20:04 +00:00
Emmanuele Bassi
f83ffa3520 2006-12-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-private.h: Add our own READABLE,
	WRITABLE and READWRITE paramspec flags, declaring the
	string components of the properties GParamSpec as static;
	this should shave off some bytes in the memory footprint
	and avoid relocations.

	* clutter/clutter-actor.c:
	* clutter/clutter-behaviour.c:
	* clutter/clutter-behaviour-opacity.c:
	* clutter/clutter-behaviour-path.c:
	* clutter/clutter-behavuour-scale.c:
	* clutter/clutter-clone-texture.c:
	* clutter/clutter-label.c:
	* clutter/clutter-rectangle.c:
	* clutter/clutter-stage.c:
	* clutter/clutter-texture.c:
	* clutter/clutter-timeline.c: Use the CLUTTER_PARAM_*
	macros we just added.

	* clutter/clutter-behaviour-scale.c: Add properties for
	the scale begin, scale end and gravity parameters.

	* clutter/clutter-behaviour-path.h: Mark the ClutterKnot
	memory management functions as public (for the bindings),
	since we use the slice allocator for copying knots around;
	add a clutter_knot_equal() function.

	* clutter/clutter-behaviour-path.c:
	(node_distance): Use clutter_knot_equal() as a fast path
	to avoid the sqrt() in case the nodes we are using are
	at the same position.
	(path_total_length): Additional check on the existence
	of the next node.

	* examples/behave.c: Do not leak the ClutterBehaviour
	objects around.
2006-12-04 16:26:35 +00:00