2007-10-25 Emmanuele Bassi * clutter/clutter-texture.c (clutter_texture_set_property): Do not try to set NULL pixbufs. 2007-10-25 Emmanuele Bassi * clutter/clutter-actor.c: Implement part of the ClutterScriptable interface, using the ClutterActor API to set and get the name of an actor. (clutter_geometry_copy), (clutter_geometry_free): Use the slice allocator to avoid fragmentation when setting properties and emitting signals (that is: when packing boxed types into GValues). (clutter_actor_box_copy), (clutter_actor_box_free), (clutter_vertex_copy), (clutter_vertex_free): Ditto. * clutter/clutter-actor.h: * clutter/clutter-actor.c: (clutter_actor_push_transform_child), (clutter_actor_pop_transfomr_child): Simple wrappers around COGL API, which avoid including clutter/cogl.h when writing container actors outside Clutter. 2007-10-25 Emmanuele Bassi * clutter/Makefile.am: * clutter/clutter.h: * clutter/clutter-scriptable.[ch]: Add the ClutterScriptable interface; by implementing this interface, a class can override the UI definition parsing and transform complex data types into GObject properties, or allow custom properties. * clutter/clutter-script.c: * clutter/clutter-script-parser.c: * clutter/clutter-script-private.h: Rearrange the code and use the ClutterScriptable interface to parse and build the custom properties. This cleans up the code and also it makes it more reliable (the complex type parsing is now done using the target type and not just the name of the property). 2007-10-25 Emmanuele Bassi * clutter/clutter-json.h: Header for including the JSON parsing and data types. * clutter/json/json-types.h: Add JSON_NODE_VALUE_TYPE() macro. * clutter/json/Makefile.am: Install the JSON headers into a private location. This might change in the future, and might also cause collisions if you're using JSON-GLib and Clutter at the same time, so be warned. 2007-10-22 Emmanuele Bassi * clutter/clutter-label.c (clutter_label_request_coords): If we get a size requisition, and we have ellipsization active, check if we are getting less space than what the layout needs and recompute the width. 2007-10-22 Emmanuele Bassi * clutter/clutter-color.c (clutter_color_to_string): Change the print format to "%02x%02x%02x%02x" because we use guint8 for each component, not guint16. 2007-10-19 Emmanuele Bassi * clutter/clutter-entry.c (clutter_entry_paint): Fixed off by one error. (#566, Gwenole Beauchesne) 2007-10-18 Øyvind Kolås * clutter/clutter-timeline.c: (clutter_timeline_set_duration): rearranged arithemetic to allow specifying duration with sub second precision (also enables durations smaller than one second). 2007-10-18 Emmanuele Bassi * clutter/clutter-script-private.h: * clutter/clutter-script.h: * clutter/clutter-script.c: Allow id-less objects: as long as they have a "type" member, a unique id will be provided. (json_object_end): Add merge id to the object information structure. (apply_behaviours), (add_children): Keep the unresolved objects around. (construct_stage), (clutter_script_construct_object): If an object has unresolved children or behaviours try resolving them when we ask for it. (json_parse_end), (clutter_script_ensure_objects): Ensure that the objects are fully constructed as best as we can when finished parsing. (object_info_free), (remove_by_merge_id): (clutter_script_unmerge_objects): Remove objects under the same merge id returned by the loading functions. (Fixes bug #558) * test/test-script.c: * test/test-script.json: Test unresolved merging and unmerging in ClutterScript. 2007-10-18 Matthew Allum * clutter/clutter-score.c: * clutter/clutter-score.h: * tests/test-score.c: Implement more ClutterScore functionality. 2007-10-17 Emmanuele Bassi * clutter/clutter-actor.c: (clutter_actor_set_property), (clutter_actor_get_property), (clutter_actor_class_init): Add the :reactive property, to control reactiveness using the UI definition files. (clutter_actor_reparent): Do not assume the parent is a ClutterContainer, and call the container API only if needed. (clutter_actor_destroy): Remove from the parent if needed, just like the documentation says. 2007-10-16 Øyvind Kolås * clutter/pango/pangoclutter-render.c: (tc_get): Provide for blank rows/columns of pixels between adjecant glyphs in the texture cache to avoid bilinear interpolation spillage at edges of glyphs. 2007-10-16 Øyvind Kolås * clutter/clutter-main.c: (clutter_do_event): allow motion events only delivered to stage to be caught in the capture phase as well as the bubbling phase. 2007-10-16 Emmanuele Bassi * clutter/json/json-object.c: Automatically transform every delimiter into an underscore. * clutter/clutter-script.c: Implement the "parent_texture" property translation for ClutterCloneTextures, using the passed id of the parent texture. 2007-10-16 Emmanuele Bassi * clutter/clutter-timeline.[ch]: Added ClutterTimeline:duration, a property for setting the duration of a timeline in milliseconds. The property comes with accessors and a new constructor. The frame rate used is the default value. * clutter/clutter-private.h: * clutter/clutter-main.[ch]: Add clutter_get_default_frame_rate() and clutter_set_default_frame_rate(); these two functions control the default frame rate to be used when creating timelines. Currently is set to 60 frames-per-second. 2007-10-16 Tomas Frydrych * build/msvc_2k5: Added MSVC project files. 2007-10-16 Emmanuele bassi * clutter/clutter-color.c: Copy the alpha when shading. 2007-10-16 Tomas Frydrych * clutter.symbols: Added a bunch of missing symbols. * clutter/clutter-script.c: * json/json-node.c: Use g_slice_new0 instead of g_slice_new to avoid passing garbage to functions. * tests/test-threads.c: Replaced non-portable sleep() with g_usleep(). 2007-10-15 Tomas Frydrych * clutter/cogl/gl/cogl-defines.h: * clutter/cogl/gl/cogl.c: Fixup GL include for windows. 2007-10-15 Matthew Allum * clutter/clutter-actor.c: More events documentation. * clutter/clutter-event.c: * clutter/clutter-event.h: Add synthetic flag and make put_event use it (via modded patch from pippin) * clutter/clutter-main.c: (clutter_do_event): dont use put event anymore when pushing enter/leave events. 2007-10-15 Emmanuele Bassi * clutter/pango/Makefile.am: Compile with the debug flags, if set. 2007-10-12 Emmanuele Bassi * clutter.symbols: Remove non-public symbols. 2007-10-12 Tomas Frydrych * clutter.symbols: A list of public symbols, one per line; semi-autogenerated, so might not be complete -- PLEASE when adding new public APIs, add the function name to this file. 2007-10-12 Emmanuele Bassi * clutter/clutter-actor.c: Add a :depth property, so we can set the initial depth of an actor inside the UI definition files. 2007-10-12 Tomas Frydrych * tests/test-actors.c: When using MSVC, define _USE_MATH_DEFINES before including math.h, otherwise constants like M_PI will not be defined. 2007-10-12 Emmanuele Bassi * clutter/clutter-script.c (construct_timline), (parse_member_to_property): Transfer ownership of the implicit timelines to the behaviour, so that they get unreferenced when the behaviour is destroyed. (parse_member_to_property): Reverse the list of children and behaviours. 2007-10-12 Tomas Frydrych Portability fixes: * clutter/clutter-private.h: Bracket #include "unistd.h" with #ifdef HAVE_UNISTD_H * clutter/clutter-fixed.c: Use "", not <> for inclusion of local files. (clutter_sqrtx): forward declare local variables. * clutter/clutter-debug.h: Added non-gcc (c99) implementation of variadic debug macros for when not compiling with gcc. * clutter/pango/pangoclutter-render.c: Fixed some strange uses of CLUTTER_NOTE() + stripped trailing whitespace. 2007-10-12 Tomas Frydrych * clutter/clutter-actor.c: * clutter/clutter-backend.c: * clutter/clutter-behaviour-depth.c: * clutter/clutter-box.c: * clutter/clutter-clone-texture.c: * clutter/clutter-container.c: * clutter/clutter-entry.c: * clutter/clutter-feature.c: * clutter/clutter-fixed.c: * clutter/clutter-group.c: * clutter/clutter-hbox.c: * clutter/clutter-label.c: * clutter/clutter-layout.c: * clutter/clutter-media.c: * clutter/clutter-rectangle.c: * clutter/clutter-score.c: * clutter/clutter-script.c: * clutter/clutter-stage.c: * clutter/clutter-texture.c: * clutter/clutter-timeline.c: * clutter/clutter-timeout-pool.c: * clutter/clutter-vbox.c: * clutter/cogl/gl/cogl.c: * clutter/cogl/gles/cogl.c: * clutter/eglnative/clutter-backend-egl.c: * clutter/eglnative/clutter-event-egl.c: * clutter/eglnative/clutter-stage-egl.c: * clutter/eglx/clutter-backend-egl.c: * clutter/eglx/clutter-event-egl.c: * clutter/eglx/clutter-stage-egl.c: * clutter/glx/clutter-event-glx.c: * clutter/json/json-array.c: * clutter/json/json-generator.c: * clutter/json/json-node.c: * clutter/json/json-object.c: * clutter/json/json-parser.c: * clutter/sdl/clutter-backend-sdl.c: * clutter/sdl/clutter-event-sdl.c: * clutter/sdl/clutter-stage-sdl.c: Fixedup config.h inclusion (must always be bracketed with #ifdef HAVE_CONFIG_H). 2007-10-11 Tomas Frydrych * clutter/clutter-entry.c: Avoid using C++ reserverd words to name variables. 2007-10-11 Øyvind Kolås Improve the quality of text when the scale it is shown at screen is smaller than the original, seems to work well down to about a scale of 50%. * clutter/pango/pangoclutter-fontmap.c: (pango_clutter_font_map_default_substitute): turn off hinting. * clutter/pango/pangoclutter-render.c: request linear filtering instead of nearest neighbour when scaling down. * tests/test-text.c: replaced test with a a test that renders a sample grid with various pixel sizes and scales for visual inspection of text rendering quality. 2007-10-10 Emmanuele Bassi * clutter/glx/clutter-backend-glx.c: Fix documentation of the filter function API. * clutter/clutter-score.c: * clutter/clutter-effect.c: * clutter/clutter-actor.c: Documentation fixes. * clutter/clutter-actor.h: Automatically typecast to ClutterActor when setting/checking flags. 2007-10-10 Emmanuele Bassi * clutter/clutter-actor.c: Beautify the ClutterActor documentation. 2007-10-10 Emmanuele Bassi * clutter/clutter-actor.c: Remove the ::event-after signal: three event layers to connect to seems a bit overkill. (clutter_actor_event): Return FALSE, not TRUE by default, as g_signal_emit() will change the return value if no handlers are connected * clutter/clutter-stage.c: Emit ::notify when we change the fullscreen property. * clutter/clutter-script.c: Add more documentation for the definition format and keywords. (translate_property): Collapse the G_TYPE_ENUM and G_TYPE_FLAGS cases into one, to simplify the code. * tests/test-script.c: Test enumeration conversion by using a value different from the default. 2007-10-10 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-actor.h: * clutter/clutter-event.c: * clutter/clutter-main.c: * tests/test-events.c: Add basic W3 DOM event 'capture' like functionality. 2007-10-10 Emmanuele Bassi * clutter/clutter-script-private.h: * clutter/clutter-script.c: Parse flags like we parse enums. 2007-10-10 Emmanuele Bassi * clutter/json/json-types.h: * clutter/json/json-array.c: * clutter/json/json-object.c: Resync with the upstream copy of JSON-GLib; add json_object_remove_member() and json_array_remove_element() and fix the g_hash_table_get_keys() replacement for GLib 2.12. * clutter/clutter-script.c: Clean up the complex properties parsing code. 2007-10-10 Emmanuele Bassi * clutter/clutter-script.c (json_object_end): Add "type_func" to the list of attributes we skip. 2007-10-10 Emmanuele Bassi * clutter/json/json-parser.c: Use the commodity JsonNode API and accept bare values as root nodes. * clutter/clutter-script-private.h: * clutter/clutter-script.c: Unreference the created objects only if they are top-levels, like ClutterBehaviour and ClutterTimelines. Actors have floating references, so we just transfer ownership to their containers, and the stage is owned by the backend. Add the "type_func" key to the object definition, so the user can supply its own GType function if the class name doesn't follow the GObject rules. Document the ClutterScript public API. 2007-10-10 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-actor.h: Add missing enter/leave event signals * clutter/clutter-main.c: (clutter_do_event): Set time in crossing events. Protect against do_pick() failing. 2007-10-09 Emmanuele Bassi * clutter/clutter-script.c (resolve_alpha_func): Fix the ClutterAlphaFunc resolution function. 2007-10-09 Emmanuele Bassi * tests/Makefile.am: * tests/test-script.c: * tests/test-script.json: Move part of the UI definition into its own file and exercise clutter_script_load_from_file(). 2007-10-09 Emmanuele Bassi * clutter/clutter-script.c (clutter_script_get_object): Construct the requested object if it hasn't been already. This allows referencing objects within the same snippet. * tests/test-script.c: Declare a timeline and use it inside multiple behaviours; apply multiple behaviours to various actors, then retrieve the timeline to start it when the test runs. 2007-10-09 Emmanuele Bassi * clutter/clutter-script-private.h: * clutter/clutter-script.c: Allow applying behaviours directly inside the UI definition data. * tests/test-script.c: Test the "behaviours" member. 2007-10-09 Rob Bradford * clutter/eglnative/clutter-backend-egl.c: (clutter_backend_egl_dispose): Call eglTerminate() on the display when the backend is disposed of. * clutter/eglnative/clutter-stage-egl.c: (clutter_stage_egl_realize): Don't use the createNativeWindow() call, it's not generic EGL. 2007-10-09 Emmanuele Bassi * clutter/clutter-script-private.h: * clutter/clutter-script.h: * clutter/clutter-script.c: Add licensing information to the newly added files. * clutter/clutter-script.c: Support creating behaviours with ClutterScript. ClutterAlpha objects are implicit, but timelines can be both explicit objects using their id or implicit objects. Make the property resolution and translation more robust. Support the pixbuf property. * tests/test-script.c: Test the newly added features. * docs/reference/clutter-docs.sgml: * docs/reference/clutter-sections.txt: Add ClutterScript. 2007-10-09 Emmanuele Bassi * clutter/clutter-fixed.h: Add deprecation guards around CLUTTER_FIXED_INT(). 2007-10-08 Emmanuele Bassi * clutter/clutter-script.c: Parse ClutterMargin and ClutterPadding properties from arrays or integers (assume pixels). 2007-10-08 Emmanuele Bassi * clutter/clutter-script-private.h: * clutter/clutter-script.c: Allow defining childrens for every container actor inside the UI definition files. 2007-10-08 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-actor.h: * clutter/clutter-private.h: * clutter/clutter-main.c: Add a hash to global clutter context mapping all parented actor id's to actors. Add clutter_get_actor_by_id() call. Convert picking machinery to use above. (performance/simpler composite actor creation) * clutter/clutter-stage.c: (clutter_stage_fullscreen), (clutter_stage_unfullscreen), (clutter_stage_event): Only set the fullscreen property on stage state fullscreen event(#545) Experimental as could be painful to implement on non X backends. 2007-10-08 Emmanuele Bassi * clutter/clutter-script.c (json_parse_end): * clutter/json/json-object.c (json_object_get_members): Replace the GLib 2.14 API with the equivalent code for GLib < 2.14. * configure.ac: Revert the dependency bump. 2007-10-08 Emmanuele Bassi Initial implementation of the UI definition files. (#424) * clutter/json/Makefile.am: * clutter/json/*.[ch]: In-tree copy of JSON-GLib, a GLib-based JSON parser/generator library. We use it in-tree because we might need to change the API. Ideally, we'd depend on it. * clutter/clutter.h: * clutter/clutter-script-private.h: * clutter/clutter-script.[ch]: ClutterScript, the scenegraph generator class. It parses JSON streams in form of buffers and files and builds the scene. * clutter/clutter-debug.h: * clutter/clutter-main.c: Add a "script" debug flag * clutter/Makefile.am: Build glue. * tests/Makefile.am: * tests/test-script.c: Add a test case for the ClutterScript. * configure.ac: Depend on GLib 2.14, so we can use the g_hash_table_get_key() and g_hash_table_get_values() functions for the time being; we can probably reimplement those, but we are going to need 2.14 anyway if we are going to implement a list model using GSequence. 2007-10-08 Emmanuele Bassi * tests/test-behave.c: Use the right return type for the event callbacks. 2007-10-03 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-event.c: * clutter/clutter-event.h: * clutter/clutter-main.c: * clutter/clutter-private.h: * clutter/eglnative/clutter-event-egl.c: * clutter/eglx/clutter-event-egl.c: * clutter/glx/clutter-event-glx.c: * clutter/sdl/clutter-event-sdl.c: Remove seperate double/triple click events and replace with a click_count member. Move calculating click counts from backend to do_event() Initial implementation of ENTER/LEAVE events. * tests/test-events.c: Add code to test above. * tests/test-behave.c: Sync with newer API. * clutter/clutter-score.c: Silence a warning. 2007-10-01 Emmanuele Bassi * clutter/clutter-fixed.h: Add CLUTTER_FIXED_TO_INT() and deprecate CLUTTER_FIXED_INT(), for symmetry with CLUTTER_FIXED_FROM_INT(). * clutter/clutter-alpha.c: * clutter/clutter-behaviour-depth.c: * clutter/clutter-behaviour-ellipse.c: * clutter/clutter-behaviour-path.c: * clutter/clutter-fixed.h: Use CLUTTER_FIXED_TO_INT(). 2007-10-01 Emmanuele Bassi * clutter/clutter-actor.c (clutter_actor_get_size): Implement get_size() as a wrapper around clutter_actor_query_coords() instead of calling g_object_get() twice. (clutter_actor_init): Initialise the box in one call. 2007-10-01 Emmanuele Bassi * clutter/clutter-actor.[ch]: Remove the ::event-after signal class handler, as it's not meant to be overridden by sub-classes. (clutter_actor_class_init): Make every event-related signal return a boolean: return TRUE in a signal handler to block the emission. The value is accumulated automatically by the signal API. (clutter_actor_event): If ::event returns TRUE, skip to emitting ::event-after. Return the value accumulated by the signal emission chain. * clutter/clutter-private.h: Rename _clutter_boolean_accumlator(). * clutter/clutter-main.c (clutter_do_event): If clutter_actor_event() returns TRUE then stop the event emission chain from child to parent. * clutter/clutter-stage.c (clutter_stage_event): Behave like clutter_actor_event(). (clutter_stage_get_key_focus), (clutter_stage_set_key_focus): Avoid a nasty circular reference issue: if the actor passed to set_key_focus is NULL then the stage has the key focus. * tests/test-events.c: Update the events test with the API changes. 2007-10-01 Tomas Frydrych * clutter/clutter-actor.c: (clutter_actor_set_scale_with_gravityx): Use CLUTTER_QMUL for better precission (#532, patch by Gwenole Beauchesne). * clutter/clutter-color.c: (clutter_color_to_hlsx): Added missing CLUTTER_INT_TO_FIXED conversion (#544, patch by Neil Roberts). 2007-10-01 Neil J. Patel Patch by: Tommi Komulainen * clutter/clutter-entry.c: (clutter_entry_delete_text): Fix characters vs. bytes inconsistency (#520). 2007-09-30 Matthew Allum * clutter/clutter-event.h: Removed unused POINTER_ENTER and POINTER_LEAVE states. (#546) * clutter/clutter-stage.c: (clutter_stage_fullscreen), (clutter_stage_unfullscreen): Only Change fullscreen prop if the backend implements fullscreen methods. (#545) 2007-09-28 Øyvind Kolås * clutter/clutter-container.[ch]: added clutter_container_find_child_by_name. 2007-09-28 Øyvind Kolås * clutter/glx/clutter-stage-glx.c: (clutter_stage_glx_realize): removed unused variable perspective. * tests/test-events.c: (main): added CLUTTER_STAGE() cast. * tests/test-threads.c: include unistd.h for sleep(). 2007-09-28 Øyvind Kolås * clutter/clutter-label.c: (clutter_label_ensure_layout): avoid calling pango_layout_set_text|markup before we've got any text. 2007-09-27 Matthew Allum * tests/test-scale.c: Fix out of about array addressing (#522, Tommi Komulainen) 2007-09-27 Matthew Allum * clutter/clutter-clone-texture.c: * clutter/clutter-rectangle.c: Include "config.h" in all c files (#524, Tommi Komulainen) 2007-09-27 Matthew Allum Merge from stable. * clutter/clutter-behaviour-path.c: (path_alpha_to_position) Fix uninitialized variable (#480, Gwenole Beauchesne) 2007-09-27 Matthew Allum * clutter/clutter-event.c: * clutter/clutter-event.h: * clutter/clutter-main.c: Further event tweaks; - Ref the event actor source - Protect against off stage events (button releases) (#511) - Move more into ClutterEventAny - Add a click count to button event (as yet unused) - Minor cleanups * clutter/clutter-actor.c: Make scale x/y a property. * clutter/clutter-private.h: Remove _clutter_actor_apply_modelview* * clutter/eglx/clutter-backend-egl.c: Warning cleanup * clutter/eglx/clutter-stage-egl.c: * clutter/glx/clutter-stage-glx.c: * clutter/sdl/clutter-stage-sdl.c: Avoid setting viewport directly, but set sync flag. * clutter/pango/pangoclutter-render.c: (draw_glyph): Minor cleanups. * clutter/Makefile.am: * tests/Makefile.am: * tests/test-score.c * clutter/clutter.h: * clutter/clutter-score.h: * clutter/clutter-score.c: Add very initial (broken) ClutterScore implementation. 2007-09-25 Ross Burton Merge from stable. * clutter/clutter-group.c: Optimise sort_z_order. 2007-09-17 Emmanuele Bassi Merge from stable * clutter/eglnative/clutter-event-egl.c: Flag every device click after the first as motion events instead of button presses. (#505, Shreyas Srinivasan) 2007-09-10 Matthew Allum Port from stable branch. * clutter/eglnative/clutter-event-egl.c: (clutter_event_dispatch): Only declare tsevent if we have tslib (#498, Robert Bragg) 2007-09-06 Emmanuele Bassi * clutter/clutter-stage.c: Remove stray include in ClutterStage: the code requesting it was moved in the backends. 2007-08-31 Emmanuele Bassi * clutter/clutter-rectangle.c: Fix the border drawing: do not overdraw the rectangle on the border and fix the check for different border colour. (#488, Neil Roberts) 2007-08-29 Matthew Allum * clutter/clutter-effect.c: (clutter_effect_template_set_property): Add missing break statement. Whoops. 2007-08-29 Matthew Allum * clutter/clutter-main.c: (_clutter_do_pick): Call glFinish before reading pixels * clutter/eglx/clutter-stage-egl.c: (clutter_stage_egl_realize): Add missing read surface in making context current. Above fixes via Kate Alhola. * clutter/glx/clutter-glx.h: Add missing filter funcs so there actually exported 2007-08-24 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-event.h: * clutter/clutter-main.c: * clutter/clutter-stage.c: * clutter/clutter-stage.h: * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-backend-glx.h: * clutter/glx/clutter-event-glx.c: * clutter/glx/clutter-stage-glx.c: * clutter/glx/clutter-stage-glx.h: Add initial support for stage state events. Fix fullscreening for an already mapped stage. * tests/test-events.c: Print out info from the above. Blue button now toggles fullscreen. * clutter/clutter-effect.c: * clutter/clutter-effect.h: Add a setting for templates to ref or clone underlying timelines. (As to improve sync issues like those in foofone) * tests/test-timeline.c: Also add completed signals. * clutter/cogl/gles/cogl.c: (cogl_texture_image_2d): * configure.ac: Forward port from stable branch. RGB Image fixes gles and check for lower case libgles_cm. 2007-08-24 Tomas Frydrych * clutter/clutter-actor.c: (_clutter_actor_apply_modelview_transform): Fixed rotation around x axis (bug 486). 2007-08-23 Emmanuele Bassi * clutter/clutter-private.h: * clutter/clutter-event.c: Revert the event queue ordering commit. * clutter/eglx/clutter-event-egl.c: * clutter/glx/clutter-event-glx.c: * clutter/sdl/clutter-event-sdl.c: Update backends. 2007-08-22 Tomas Frydrych * clutter/clutter-behaviour-rotate.c: * clutter/clutter-behaviour-ellipse.c: Fixed CCW rotation in rotate behaviour (bug 483); fixed overall path length calculation for angles > 360 in rotate and ellipse. 2007-08-22 Emmanuele Bassi * clutter/clutter-main.c (clutter_threads_dispatch_free): Remove the main threads locking calls: the main loop might remove the source while dispatching it, so whether or not we are already holding the lock is unpredictable for the library. Leave a comment with the relevant bug number in GNOME's Bugzilla and wait for a fix in GLib. 2007-08-21 Emmanuele Bassi * clutter/clutter-event.c: Correctly initialise the state variables used to detect multiple clicks. (clutter_event_get_coords): Return the coordinates for CLUTTER_3BUTTON_PRESS events. (clutter_events_pending): Check from the tail of the queue backward, like we do in clutter_event_get() and clutter_event_peek(). 2007-08-21 Emmanuele Bassi Preserve the ordering of the events in the queue when sythesising new events in the event translation sequence. (#481) * clutter/clutter-event.c: * clutter/clutter-private.h: Allow flagging new events on the events queue without breaking ClutterEvent using a masked type. (clutter_event_get), (clutter_event_put), (clutter_event_pending): Ignore events with the CLUTTER_EVENT_PENDING flag set when walking the events queue. * clutter/eglx/clutter-event-egl.c: * clutter/glx/clutter-event-glx.c: * clutter/sdl/clutter-event-sdl.c: Push the new events straight on the queue, with the CLUTTER_EVENT_PENDING flag set; remove the flag if the event translation was succesful, or remove the event altogether. 2007-08-21 Emmanuele Bassi * clutter/clutter-stage.c: Add missing documentation for the ClutterStage properties. 2007-08-21 Tomas Frydrych * clutter/clutter-fixed.c: (clutter_sqrti): Fixes for 64-bit platforms; use of SSE builtin when available (bugs 478, 479, patches by Gwenole Beauchesne). 2007-08-20 Emmanuele Bassi * clutter/Makefile.am: * clutter/clutter-enum-types.h.in: * clutter/clutter-enum-types.c.in: Use template files for glib-mkenums; this makes the Makefile template a bit more clean and the enum types generation more customisable (e.g. when GLib 2.14 has been released, we can use g_once_init_enter() and g_once_init_leave() to have thread-safe GType functions for the enum types as well). 2007-08-20 Emmanuele Bassi * clutter/clutter-version.h.in: Fix CLUTTER_CHECK_VERSION() macro to accept micro versions. (#477, Neil Roberts) 2007-08-19 Emmanuele Bassi Various timeline related changes. * clutter/clutter-timeout-pool.c: Use g_list_insert_sorted() to fix a timeout pool reversal happening with our homegrown sorted insertion function. (see #470) * tests/Makefile.am: * tests/test-timeline.c: Add a ClutterTimeline test suite, for finding regressions in the behaviour of the timelines. (#470, Rob Bradford) * clutter/clutter-main.c (clutter_do_event): Use an EVENT note, not a SCHEDULER one; SCHEDULER is for timelines and idle sources only. * clutter/clutter-version.h.in: Protect the bare numbers of the version components. * clutter/clutter-effect.c: Do not unref the ClutterAlpha, as the ownership is already of the behaviour used by the effect closure. * clutter/clutter-timeline.c: Emit the ::new-frame signal only if the timeline is still active Always advance at least of one frame. (#471, Rob Bradford) Do not rewind the timeline if the user paused it in the ::new-frame signal handler: either the user has already done it with clutter_timeline_stop() or it's not what he's expecting if he called clutter_timeline_pause(). (#372, Johan Bilien) If we skipped the last frame before emitting the ::complete signal, emit ::new-frame with the last frame. Do not call clutter_timeline_stop() at the end of a non-looping timeline, as it emits the ::pause signal as well. Also, rewind the timeline *after* emitting ::complete, so that calling clutter_timeline_get_current_frame() in a signal handler still works. 2007-08-19 Matthew Allum * clutter/eglx/clutter-event-egl.c: (clutter_event_dispatch): Fix clutter_thread typo (Kate Alhola) 2007-08-18 Emmanuele Bassi * clutter/clutter-effect.c: * clutter/clutter-main.c: Update the Since: tag for the backported API. * clutter/clutter-behaviour-rotate.c: Fix a typo in the get_center() method. (#468, Neil Roberts) Freeze and thaw the notification queue when changing multiple properties in the same method. Fix some coding style issues. 2007-08-15 Emmanuele Bassi * clutter/clutter-actor.c: Add checks for the "reactive" flag accessors. 2007-08-15 Emmanuele Bassi * clutter/clutter-effect.[ch]: Add clutter_effect_depth(), a simple wrapper around ClutterBehaviourDepth. (#464, Ali Sabil) 2007-08-15 Emmanuele Bassi * clutter/clutter-alpha.c (clutter_smoothstep_inc): Use the correct type for parameters, to avoid overflow (Ali Sabil). * clutter/clutter-behaviour-opacity.c: Use the right format when printing the unsigned alpha value and opacity to the debug output. 2007-08-14 Emmanuele Bassi * clutter/clutter-container.[ch]: * clutter/clutter-actor.c: * clutter/clutter-group.c: Rename clutter_container_raise() to clutter_container_raise_child(), and clutter_container_lower() to clutter_container_lower_child() to avoid clashing with ClutterActor raise() and lower() respectively. 2007-08-13 Matthew Allum * 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/clutter-stage.c: * clutter/clutter-stage.h: * clutter/clutter-types.h: Initial implementation of actors emmitting event signals (423); - Actors set_reactive() to receive mouse events. (call clutter_enable_motion_events() for per action motion events) - clutter_stage_set_key_focus () to direct key events. - Events bubble up to parents (ending at stage) (original source identified by clutter_event_get_source()) TODO: - enter/leave notifys for actors. - stage specific events - fullscreen - grabs * tests/test-events.c: Extend a little to use new API * clutter/cogl/gl/cogl.c: * clutter/glx/clutter-backend-glx.c: Move get_proc_address into cogl and out of backend. (shaders will need it) * clutter/clutter-group.c: (clutter_group_real_lower): Fix a minor compile warning. * TODO: Sync up. 2007-08-13 Emmanuele Bassi * clutter/clutter-container.[ch]: Add find_child_by_id(), raise(), lower() and sort_depth_order() virtual functions to ClutterContainer. * clutter/clutter-group.[ch]: Deprecate the redundant calls from ClutterGroup, and make ClutterGroup implement them as part of the ClutterContainer interface implementation. * clutter/clutter-box.c: Implement the newly added ClutterContainer methods; now clutter_stage_get_actor_at_pos() works with boxes as well as groups. * clutter/clutter-stage.c: * clutter/clutter-actor.c: Replace calls to ClutterGroup functions with ClutterContainer ones. 2007-08-12 Emmanuele Bassi * clutter/clutter-timeout-pool.c: Fix removing and adding timeouts to the timeout pool during a dispatch of a timeout source already inside the pool. (#456, based on a patch by Neil Roberts) (clutter_timeout_dispatch), (clutter_timeout_pool_dispatch): Hold the main Clutter lock in the pool dispatch function, instead of the per-timeout dispatch; this guarantees that the ref+unref of the single timeouts are done under the main lock. 2007-08-12 Matthew Allum * clutter/clutter-texture.c: (texture_upload_data): Align texture data correctly for edge tiles. (#422 - Neil Roberts) 2007-08-11 Matthew Allum * clutter/clutter-texture.c: Fix typo in clutter_texture_get_pixbuf (#458, Neil Roberts). Use take_object when getting pixbuf prop to avoid ref leak. (Neil Roberts) 2007-08-09 Emmanuele Bassi * clutter/clutter-box.c: Rename a variable to fix a compiler warning. 2007-08-08 Emmanuele Bassi * clutter/clutter-behaviour-ellipse: (clutter_behaviour_ellipse_get_tiltx): Remove useless "Return" in the API documentation. 2007-08-08 Emmanuele Bassi * clutter/clutter-timeout-pool.c: Fix sorting of the pool when inserting and removing timeout sources. (#449, Neil Roberts) 2007-08-08 Emmanuele Bassi * clutter/clutter-main.c (clutter_get_timestamp): Remove the microseconds remainder, which is mostly useless. (#447) 2007-08-08 Emmanuele Bassi * clutter/clutter-main.c (clutter_get_timestamp): Return the correct number of microseconds (#447, Neil Roberts) 2007-08-08 Emmanuele Bassi Merge the clutter.git/threading branch. * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-private.h: Add threading locking and unlocking functions, to mark a critical section and access the Clutter API from differen threads. Add an initialisation function and a function to override the default lock aquisition and release functions, for bindings and application-specific locking handling. Add MT-safe versions of g_idle_add() and g_timeout_add() which will call the functions under the main Clutter lock and without races. The Clutter thread-safe implementation is basically the same used by GDK, so the same caveats apply. * clutter/clutter-actor.c: * clutter/clutter-timeline.c: * clutter/clutter-timeout-pool.c: Use the new threading API when invoking idle and timeouts. * clutter/eglnative/clutter-event-egl.c: * clutter/eglx/clutter-event-egl.c: * clutter/glx/clutter-event-glx.c: * clutter/sdl/clutter-event-sdl.c: Acquire and release the main Clutter lock when preparing, checking and dispatching the events on the queue in every backend. * tests/Makefile.am: * tests/test-threads.c: Add a test case, showing how to use the threading API and write thread-safe Clutter applications. 2007-08-08 Emmanuele Bassi * configure.ac: Bump up to 0.5.0 and start the new development branch. 2007-08-07 Emmanuele Bassi * configure.ac: Bump up to 0.4.0. 2007-08-07 Emmanuele Bassi * clutter/clutter-entry.c: * clutter/clutter-fixed.c: * clutter/pango/pangoclutter.h: Small fixes for passing the distcheck phase with extra-strict compiler flags. 2007-08-07 Emmanuele Bassi * clutter/clutter-actor.h: * clutter/clutter-alpha.h: * clutter/clutter-behaviour-ellipse.[ch]: * clutter/clutter-behaviour-path.h: * clutter/clutter-behaviour-rotate.c: * clutter/clutter-behaviour.h: * clutter/clutter-box.h: * clutter/clutter-color.h: * clutter/clutter-container.h: * clutter/clutter-effect.h: * clutter/clutter-entry.h: * clutter/clutter-fixed.h: * clutter/clutter-layout.h: * clutter/clutter-main.h: * clutter/clutter-stage.h: * clutter/clutter-texture.h: * clutter/clutter-units.h: * clutter/clutter-version.h.in: * clutter/glx/clutter-glx.h: Documentation additions and various fixes. 2007-08-07 Matthew Allum * clutter/clutter-behaviour-ellipse.c: Add a documentation note regarding ellipse setting the applied actors position. 2007-08-07 Matthew Allum * NEWS: * README: More updates ready for 0.4.0 2007-08-07 Matthew Allum * clutter/clutter-fixed.c: * clutter/clutter-fixed.h: Add documentation. * clutter/cogl/gl/cogl.c: (cogl_perspective): Remove CFX_* shortened macros 2007-08-06 Emmanuele Bassi * clutter/clutter-main.[ch]: Remove clutter_threads_enter() and clutter_threads_leave(); both are no-ops and they just confuse things. The thread-awareness in Clutter is planned for 0.4.1/0.5.0. * README: * NEWS: Update. 2007-08-06 Emmanuele Bassi * clutter/clutter-box.[ch]: Implement margin, color and default padding for ClutterBox. Provide API to pack a child by specifying every packing detail or just pack with the defaults. ClutterBox works like the HTML boxing model, API-wise: a box with margins and padding around each child. Needs work, still. * clutter/clutter-hbox.c: * clutter/clutter-vbox.c: Update with the new API and new attributes. * clutter/clutter-types.h: Add ClutterMargin and ClutterPadding. * test/test-boxes.c: Exercise the new API. 2007-08-06 Matthew Allum * clutter/clutter-texture.c: Correct set pixbuf property as GDK_TYPE_PIXBUF (fix via Neil Roberts) 2007-08-06 Matthew Allum * clutter/clutter-behaviour-depth.c: Modify to work like all other behvaiours in not forcing increasing order in behaviour 'limits'. (#436) Rename limit min/max props to start/end. * tests/test-depth.c: Simplify test-case to work with above change and without multiple ramps * clutter/clutter-behaviour-rotate.c: Handle CW rotation when end > start and similar for CCW just like ellipse behaviour. 2007-08-05 Matthew Allum * README: * clutter/clutter-actor.c: Document show/hide_all behaviour correctly. 2007-08-05 Emmanuele Bassi * clutter/clutter-behaviour-depth.c: Fix typo in the description. 2007-08-04 Emmanuele Bassi * clutter/clutter-behaviour-depth.c: Clarify the depth behaviour even more in the description used by the API reference. 2007-08-04 Emmanuele Bassi * clutter/clutter-behaviour-depth.[ch]: Clarify that what drives the movement along the Z axis is the ClutterAlpha object (we don't have the luxury of a rollover like the opacity does); so, if you want to go from 0 to -100 you have to use a decreasing function, just as well if you want to go from 100 to 0. Using a min-depth of 100 and a max-depth of 0 and an increasing function is undefined behaviour. * tests/Makefile.am: * tests/test-depth.c: Add a test case for the depth behaviour. 2007-08-04 Emmanuele Bassi * clutter/clutter-actor.c (clutter_actor_set_opacity): Queue a redraw when setting the opacity of an actor. 2007-08-03 Emmanuele Bassi * clutter/clutter-behaviour-ellipse.c: (clutter_behaviour_ellipse_get_angle_tilt): Avoid recursion by fixing a typo. (clutter_behaviour_ellipse_get_angle_begin), (clutter_behaviour_ellipse_get_angle_end): Correct the angles here too. 2007-08-03 Emmanuele Bassi * clutter/clutter-behaviour-ellipse.c: (clutter_behaviour_ellipse_get_property): Do not forget to correct the angles when returning them. 2007-08-03 Tomas Frydrych * clutter/clutter-behaviour-ellipse.c: * clutter/clutter-behaviour-ellipse.h: (clutter_behaviour_ellipse_new): (clutter_behaviour_ellipse_newx): Added direction parameter; made behaviour to respect direction parameter; unclumped angle_begin and angle_end values. 2007-08-02 Matthew Allum * NEWS: * README: Initial updating ready for release. 2007-08-02 Emmanuele Bassi * clutter/eglnative/clutter-backend-egl.c: * clutter/eglx/clutter-backend-egl.c: * clutter/sdl/clutter-backend-sdl.c: Set the default resolution as 96.0 dpi for every backend (we already were under this assumption anyway, and this makes it easier to change this setting per-backend). * clutter/pango/pangoclutter-fontmap.c: * clutter/pango/pangoclutter.h: Allow setting the resolution for the PangoClutterFontMap object and provide the implementation for the PangoFcFontMap::get_resolution() virtual function. This allows to set the resolution of the PangoContext when retrieving it. * clutter/clutter-label.c (clutter_label_init): Set the resolution of the font map with the one the backend gives us. * clutter/clutter-entry.c (clutter_entry_init): Ditto. 2007-08-02 Emmanuele Bassi * clutter/clutter-color.c (clutter_color_subtract): Invert the operands and match what the function says it does. (#435) 2007-08-01 Matthew Allum * clutter/clutter-color.c: (clutter_color_from_pixel): Fix typo in alpha channel extraction (#434) 2007-08-01 Emmanuele Bassi * clutter/clutter-actor.[ch]: Add floating-point variant of the clutter_actor_get_r[xyz]angx() functions. 2007-07-31 Emmanuele Bassi * clutter/clutter-stage.[ch]: Fix clutter_stage_set_user_resizable() name, and add a getter for the property. * clutter/glx/clutter-stage-glx.c: Use the accessor, not g_object_get() to retrieve the value of the resizable property. 2007-07-31 Emmanuele Bassi * clutter/clutter-backend.[ch]: Add clutter_backend_set_resolution() and clutter_backend_get_resolution(); backends should use the former to set the resolution of the display when initialising, while actors should use the latter when sizing themselves depending on the resolution or the font size. * clutter/glx/clutter-backend-glx.c: Set the resolution as 96 dpi as a default and query the X server when opening the display. * clutter/clutter-entry.c: Drop the hardcoded dpi value and use clutter_backend_get_resolution() to compute the default size. 2007-07-31 Emmanuele Bassi * clutter/clutter-entry.c (clutter_entry_init): Set the default size of the entry based on the size of the default font. (#414). 2007-07-31 Emmanuele Bassi * clutter/sdl/clutter-backend-sdl.c: Fix a typo in clutter_backend_sdl_get_features() (#426, Pan Bohui) 2007-07-30 Matthew Allum * AUTHORS: * HACKING: * README: Various updates and improvements. * configure.ac: Remove --disable-fast-fp-conversions 2007-07-30 Tomas Frydrych * clutter/clutter-behaviour-ellipse: (clutter_behaviour_ellipse_advance): Fixed invalid assumption about z cooordiance in calculation of tilt in y axis. 2007-07-30 Tomas Frydrych * clutter/clutter-actor.c: Fixed incorrect order of modelview matrix stack in calculating actor vertices. 2007-07-30 Matthew Allum * clutter/clutter-backend.h: Remove #if 0's old backend_api (generating uneeded documentation) 2007-07-30 Matthew Allum * clutter/clutter-texture.c: Fix re-relisation for large tiled textures. * tests/test-textures.c: (main): Add a show/hide to trigger above (see #442) 2007-07-29 Emmanuele Bassi * clutter/clutter-types.h: Document ClutterGravity enumeration and remove the only incomplete symbol of the api reference. Now we are up to 79% documented symbols. 2007-07-29 Emmanuele Bassi * clutter/clutter-media.c: Document ClutterMedia signals; replace the implementation of clutter_media_set_filename() with something a wee bit more robust (and portable) than a sprintf(). 2007-07-29 Emmanuele Bassi * clutter/clutter-behaviour-ellipse.c: Documentation fixes; kill some indirections; freeze the notification queue when (potentially) emitting multiple notify signals. * clutter/clutter-alpha.h: Remove the unused macro CLUTTER_TYPE_SMOOTHSTEP. 2007-07-28 Emmanuele Bassi * clutter/clutter-actor.[ch]: Use GInitiallyUnowned as the parent structure in the ClutterActor structure definition; somehow, this has escaped everyone attention in one year and a half. Luckily, GInitiallyUnowned is as big as GObject. (clutter_actor_get_abs_position_units), (clutter_actor_get_abs_position): Check parameters. * clutter/clutter-texture.h: Unmangle the flags enum type declaration, so that dumb parsers like h2defs.py are not fooled. * clutter/clutter-behaviour-ellipse.[ch]: * clutter/clutter-effect.c: Fix some documentation issues and make gtk-doc happy. 2007-07-27 Tomas Frydrych * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: * tests/test-behave.c: (clutter_behaviour_ellipse_get_angle_tilt): (clutter_behaviour_ellipse_set_angle_tilt): Pruned ClutterBehaviourEllipse api. 2007-07-27 Tomas Frydrych * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: (clutter_behaviour_ellipse_set_angle_tilt_x): (clutter_behaviour_ellipse_set_angle_tilt_xx): (clutter_behaviour_ellipse_get_angle_tilt_x): (clutter_behaviour_ellipse_get_angle_tilt_xx): (clutter_behaviour_ellipse_set_angle_tilt_y): (clutter_behaviour_ellipse_set_angle_tilt_yx): (clutter_behaviour_ellipse_get_angle_tilt_y): (clutter_behaviour_ellipse_get_angle_tilt_yx): (clutter_behaviour_ellipse_set_angle_tilt_z): (clutter_behaviour_ellipse_set_angle_tilt_zx): (clutter_behaviour_ellipse_get_angle_tilt_z): (clutter_behaviour_ellipse_get_angle_tilt_zx): (clutter_behaviour_ellipse_set_tilt): (clutter_behaviour_ellipse_set_tiltx): (clutter_behaviour_ellipse_get_tilt): (clutter_behaviour_ellipse_get_tiltx): * tests/test-behave.c: Allow tilting ClutterBehaviourEllipse in all three axis; affects any code using the previous tilt api. 2007-07-26 Matthew Allum * clutter/clutter-feature.h: Add new stage feature flags and document. * clutter/eglnative/clutter-backend-egl.c: * clutter/eglx/clutter-backend-egl.c: * clutter/sdl/clutter-backend-sdl.c: Set new feature flags. * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-stage-glx.c: * clutter/clutter-stage.c: * clutter/clutter-stage.h: Add a 'user_resizeable' setting to the backend and implement for glx backend. 2007-07-26 Emmanuele Bassi * clutter/clutter-behaviour-ellipse.c: * clutter/clutter-behaviour.h: * clutter/clutter-event.c: * clutter/clutter-texture.h: * clutter/clutter-types.h: Add missing documentation and fix parameters names to make gtk-doc happy. 2007-07-26 Tomas Frydrych * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: * tests/test-behave.c: Removed tilt paramter from ClutterBehaviourEllipse constructors; Made angles to be relative to 12 o'clock; Added direction property; 2007-07-26 Emmanuele Bassi * clutter/clutter-types.h: * clutter/Makefile.am: Add a header for common types, to avoid inclusion hell. * clutter/clutter-actor.h: * clutter/clutter-behaviour.h: * clutter/clutter-behaviour-rotate.h: * clutter/clutter-behaviour-scale.h: Move some boxed types and som enums to clutter-types.h. 2007-07-26 Neil J. Patel * clutter/clutter-entry.c: (offset_to_bytes), (clutter_entry_ensure_cursor_position), (clutter_entry_new_with_text), (clutter_entry_new), (clutter_entry_insert_unichar), (clutter_entry_delete_chars): Fixed utf8 support so it actually works now, for both inserting and deleting chars. Fixed positioning of cursor for utf8 chars. Both GString and Pnago need bytes (not documented!) for string manipulation, so making sure all values were bytes and not char positions fixed the issue. Set a default size of 50x50 for the entry, otherwise no chars can be seen if the size is not set after creation (which confuses the developer). 2007-07-26 Emmanuele Bassi * clutter/clutter-timeline.c: Do not accept zero as a value for the num-frames and fps properties in both the constructor and the setter functions. 2007-07-26 Emmanuele Bassi * clutter/clutter-actor.[ch]: * clutter/clutter-behaviour-bspline.c: * clutter/clutter-behaviour.c: * clutter/clutter-box.[ch]: * clutter/clutter-clone-texture.c: * clutter/clutter-entry.c: * clutter/clutter-group.[ch]: * clutter/clutter-texture.c: * clutter/pango/pangoclutter-render.c: * tests/test-actors.c: * tests/test-behave.c: * tests/test-entry.c: * tests/test-events.c: * tests/test-project.c: * tests/test-rotate.c: * tests/test-scale.c: * tests/test-text.c: * tests/test-textures.c: Miscellaneous compiler warning fixes. 2007-07-26 Emmanuele Bassi * configure.ac: * Makefile.am: Add a configure switch to enable strict compiler flags, and turn it on when we are doing a distcheck. 2007-07-25 Matthew Allum * Makefile.am: * HACKING: Add with initial notes on coding bits and bobs. * clutter/clutter-behaviour-scale.c: Doc fixes. * clutter/clutter-event.c: (clutter_event_put): Doc fixes. * clutter/glx/clutter-stage-glx.c: Disable wm user resizing of stage (At least for now) Doc fixes. 2007-07-25 Tomas Frydrych * clutter/clutter-fixed.c: Fixed endianness issue in fast fp conversions. 2007-07-25 Tomas Frydrych * configure.ac: * clutter/clutter-fixed.c: Added --disable-fast-fp-conversion option. 2007-07-25 Emmanuele Bassi * clutter/clutter-label.[ch]: Ouch, clutter_label_get_alignment() returns a PangoAlignment, not a boolean. 2007-07-25 Emmanuele Bassi * clutter/clutter-behaviour.h: * clutter/clutter-behaviour.c: Rename clutter_behaviour_clear() to clutter_behaviour_remove_all() to avoid method clashes in bindings. 2007-07-25 Tomas Frydrych * tests/test-rotate.c: * tests/Makefile.am: Added test-rotate. 2007-07-25 Emmanuele Bassi * clutter/clutter-behaviour-bspline.c: Kill off some deep pointer indirections; use CLUTTER_NOTE() instead of ifdeffed out g_debug(); add checks in every public entry point; move some initialisations of private data structures out of the constructor and into the init function, where they belong. 2007-07-25 Matthew Allum * clutter/clutter-behaviour-rotate.c: * clutter/clutter-behaviour-rotate.h: Split 'center' prop into 3 seperate props for each axis. Use clutter_behaviour_actors_foreach() rather than clutter_behaviour_get_actors() to avoid copying list. Call fixed point rotation funcs internally. * clutter/clutter-effect.c: * clutter/clutter-effect.h: Add new simple rotation based effect funcs. 2007-07-25 Emmanuele Bassi * clutter/clutter.h: Include clutter-behaviour-depth.h 2007-07-24 Emmanuele Bassi * clutter/clutter-behaviour-rotate.[ch]: Add a center property for the center or rotation; implement the set_bounds() methods. 2007-07-24 Emmanuele Bassi * clutter/eglx/clutter-backend-egl.c: * clutter/eglnative/clutter-backend-egl.c: * clutter/sdl/clutter-backend-sdl.c: Destroy the stage in every backend. 2007-07-24 Emmanuele Bassi * clutter/glx/clutter-backend-glx.c: Destroy the stage, don't just unref it. 2007-07-24 Emmanuele Bassi * clutter/clutter-main.c: Add debug markers. 2007-07-24 Emmanuele Bassi * clutter/clutter-texture.[ch]: Add a ClutterTextureError to be returned by the loader functions; use the GObject API to allocate the private data structure instead of managing it ourselves; add documentation. 2007-07-24 Emmanuele Bassi * clutter/clutter-actor.c: * clutter/clutter-box.h: * clutter/clutter-stage.c: Documentation fixes. 2007-07-24 Matthew Allum * clutter/cogl/gl/cogl-defines.h: Add CGL_UNSIGNED_INT_8_8_8_8_REV (for big endian machines) 2007-07-24 Matthew Allum * clutter/cogl/gl/cogl-defines.h: Another GL_TEXTURE_RECTANGLE_ARB related fix (#404) 2007-07-24 Matthew Allum * clutter/clutter-backend.c: Minor build fixes (#413) 2007-07-24 Emmanuele Bassi * clutter/clutter-effect.h: * clutter/clutter-effect.c: Add a secondary constructor for ClutterEffectTemplate, for use of the bindings. 2007-07-24 Matthew Allum * clutter/cogl/gles/cogl.c: (cogl_get_bitmasks): Fix typo calling glGetIntegerv rather than glGetInteger 2007-07-24 Matthew Allum * clutter/cogl/gl/cogl.c: (cogl_get_features): learn to use cpp properly. 2007-07-24 Matthew Allum * clutter/clutter-media.c: (clutter_media_base_init): Remove #if 0! signal - assume causing issues with binding generation. (#407) * clutter/cogl/gl/cogl.c: Check GL_TEXTURE_RECTANGLE_ARB and GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB are defined in gl.h (#404) 2007-07-24 Matthew Allum * clutter/glx/clutter-stage-glx.c: (clutter_stage_glx_realize): Create stage window with correct depth/visual. Via patch from Robert Bragg (#409). 2007-07-23 Matthew Allum * clutter/clutter-texture.c: (texture_render_to_gl_quad), (clutter_texture_paint): Dont be over aggressive in throwing criticals for unrealized textures. Doesn't make sense for sub classes. (#403) 2007-07-22 Emmanuele Bassi Two small fixes for correctly debugging the deinitialisation phase of the backend: * clutter/glx/clutter-backend-glx.c: Remove the event source after we unref the main stage. * clutter/glx/clutter-stage-glx.c: Add a mark at the end of the unrealize call (the perl bindings seem to crash before we reach this point). 2007-07-22 Emmanuele Bassi * clutter/clutter-behaviour-ellipse.c: Remove pointer indirections; add sanity checks on the public entry points; make all the public properties floating point (where needed) andconvert them to fixed point internally. (Partial fix for #389) 2007-07-22 Emmanuele Bassi * clutter/clutter-behaviour.[ch]: Rename ClutterBehaviour::apply and ClutterBehaviour::remove to ClutterBehaviour::applied and ClutterBehaviour::removed respectively, and emit them when the behaviour has been applied (or does no longer apply) to an actor. (clutter_behaviour_dispose), (clutter_behaviour_finalize), (clutter_behaviour_class_init): Move the actor removal to the ::dispose virtual function, and remove the ::finalize one; document the missing properties and signals. (clutter_behaviour_clear): Add function to clear a behaviour: every actor will be unreffed and the ClutterBehaviour::removed signal will be emitted. 2007-07-21 Matthew Allum * clutter/clutter-event.c: Correct clutter_event_get_state () return type. Fixes #398 * clutter/glx/clutter-stage-glx.c: Disable use XFixes cursor visibility funcs. Appears to have issues on feisty X Server at least. Fallback should work generally better. Fix non offscreen clutter_stage_snapshot to also rotate read pixel data to correct orientation. 2007-07-12 Matthew Allum * clutter/eglnative/clutter-event-egl.c: (clutter_event_dispatch): Avoid sending too many events which are just pressure changes. 2007-07-12 Matthew Allum * 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): Hopefully fix clutter_actor_at_pos on !32bpp displays. Based on patch from Pan Bohui, See; http://bugzilla.openedhand.com/show_bug.cgi?id=390 * TODO: More misc updates. 2007-07-11 Emmanuele Bassi * clutter/clutter-behaviour-opacity.c: Don't check direction in opacity. 2007-07-11 Tomas Frydrych * clutter/clutter-fixed.h: Fixed CLUTTER_ANGLE_ macros. * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: Implemented "apply" signal closer to position actor on the start of the elliptic path. (clutter_behaviour_ellipse_get_angle_begin): (clutter_behaviour_ellipse_set_angle_begin): (clutter_behaviour_ellipse_get_angle_end): (clutter_behaviour_ellipse_set_angle_end): (clutter_behaviour_ellipse_get_angle_tilt): (clutter_behaviour_ellipse_set_angle_tilt): Renamed with an x suffix; added versions for angles in degrees. 2007-07-09 Matthew Allum * TODO: Updates. * clutter/clutter-stage.c: * clutter/glx/clutter-stage-glx.c: Fix cursor visibility property. Force a repaint before mapping to attempt to avoid flicker. 2007-07-09 Richard Purdie * clutter/eglnative/clutter-event-egl.c: * configure.ac: Add tslib support to eglnative backend. 2007-07-09 Richard Purdie * clutter/eglnative/clutter-backend-egl.c: Tweaks to the eglnative backend. 2007-07-09 Richard Purdie * clutter/clutter-backend.c: Make the backend add_option function optional. 2007-07-09 Emmanuele Bassi * clutter/clutter-behaviour-depth.h: * clutter/clutter-behaviour-depth.c: * clutter/Makefile.am: Add ClutterBehaviourDepth, a simple behaviour controlling the depth of a set of actors. * clutter/clutter-behaviour-opacity.c: Always make sure that the opacity applied to the actors is a positive integer, even in case where the start and end opacity are reversed; use the correct cast macros for passing the opacity as a pointer. 2007-07-06 ====================== 0.3.1 Release ======================== 2007-07-06 Matthew Allum * NEWS: * configure.ac: Update for 0.3.1 2007-07-06 Matthew Allum * clutter/eglx/Makefile.am: * clutter/eglx/clutter-egl.h: * clutter/eglx/clutter-event-egl.c: * clutter/eglx/clutter-stage-egl.c: Rename clutter-egl.h -> clutter-eglx.h * NEWS: * README: Add info re EGL split. 2007-07-06 Matthew Allum * clutter/Makefile.am: * clutter/eglnative/Makefile.am: * clutter/eglnative/clutter-backend-egl.c: * clutter/eglnative/clutter-backend-egl.h: * clutter/eglnative/clutter-egl.h: * clutter/eglnative/clutter-event-egl.c: * clutter/eglnative/clutter-stage-egl.c: * clutter/eglnative/clutter-stage-egl.h: * clutter/eglx/Makefile.am: * clutter/eglx/clutter-backend-egl.c: * clutter/eglx/clutter-egl.h: * clutter/eglx/clutter-event-egl.c: * clutter/eglx/clutter-stage-egl.c: * configure.ac: Add a new 'native' EGL backend for non X based EGL's (i.e on framebuffer). Rename old backend to 'eglx' and namespace public funcs with this. * clutter/pango/pangoclutter-private.h: Add extra checks for expected defines. 2007-07-06 Matthew Allum * NEWS: * README: Updates for upcoming 0.3.1 release. * clutter/egl/Makefile.am: * clutter/egl/clutter-backend-egl.c: * clutter/egl/clutter-backend-egl.h: * clutter/egl/clutter-egl.h: * clutter/egl/clutter-event-egl.c: * clutter/egl/clutter-stage-egl.c: * clutter/egl/clutter-stage-egl.h: * configure.ac: Move egl -> eglx 2007-07-06 Matthew Allum * clutter/clutter-box.c: (clutter_box_pick): Call clutter_box_paint rather than actor paint method avoiding infinte loop (Fixes test-boxes crasher). * clutter/glx/clutter-stage-glx.c: (clutter_stage_glx_unrealize): Trap the X calls to avoid potential X errors. 2007-07-06 Ross Burton * tests/Makefile.am: Dist redhand.png. 2007-07-05 Tomas Frydrych * cluter/clutter-group.c: (clutter_group_query_coords:) Reset box size to zero width and height to report correct size if the contents of the group shrink. 2007-07-05 Emmanuele Bassi * clutter/clutter-rectangle.c: Fix off-by-border-width bug in the border creation of a ClutterRectangle. 2007-07-05 Tomas Frydrych * clutter/clutter-fixed.h: * clutter/clutter-fixed.c: Added CLUTTER_FLOAT_TO_UINT macro; (clutter_pow2x): Fixed sign issue. 2007-07-04 Emmanuele Bassi * clutter/*: Loads of fixes for the API reference. 2007-07-04 Emmanuele Bassi Merge from clutter/work * clutter/clutter-alpha.[ch]: Fix the argument names for the smoothstep alpha functions, for gtk-doc. * clutter/clutter-group.c (clutter_group_remove_all): Fix the iteration on the children list. 2007-07-04 Emmanuele Bassi * clutter/clutter-main.c (clutter_redraw): Move the stage paint init call from the main redraw function... * clutter/clutter-stage.c (clutter_stage_paint): ... to the ClutterActor::paint() overridden method in ClutterStage. 2007-07-04 Emmanuele Bassi * clutter/clutter.h: * clutter/Makefile.am: ClutterBackend is marked as public API, so install the clutter-backend.h header and include it when including clutter.h. 2007-07-04 Emmanuele Bassi * clutter/clutter-entry.[ch]: Various fixes to ClutterEntry: fix code style issues; add documentation for the various properties; add ClutterEntry:entry-padding property, for controlling the text padding (until we have style properties separated from the object properties); notify property changes; free resources in the ::finalize method; rename clutter_entry_add() to clutter_entry_insert_unichar(), and clutter_entry_remove() to clutter_entry_delete_chars() - for bindings and for matching the insert_text() and delete_text() existing methods; add a getter method for the max-length property. 2007-07-04 Emmanuele Bassi * clutter/clutter-actor.[ch]: Use the right get_type() function name for ClutterVertex, and add the CLUTTER_TYPE_VERTEX macro. 2007-07-03 Ross Burton * configure.ac: Check for XFixes 4 and above. 2007-07-02 Tomas Frydrych * clutter/clutter-actor.h: * clutter/clutter-actor.c: * tests/test-project.c: (clutter_actor_apply_transform_to_point): Use ClutterVertex for input and output parameters. 2007-07-01 Emmanuele Bassi Merge from clutter.git/work branch * clutter/clutter-effect.[ch]: Clean up ClutterEffect; use a pointer to access the private data structure, instead of doing a type check every time. Add description for the API reference. * docs/reference/clutter-sections.txt: * clutter/*.[ch]: Add various documentation fixes. * clutter/clutter-entry.c: Remove a stray g_print() call. 2007-06-29 Neil J. Patel * clutter/clutter-entry.c: (clutter_entry_handle_key_event), (clutter_entry_add), (clutter_entry_remove): Check if unichar == 0, and if so, return, as it will cause a delete in the GString. 2007-06-20 ============== 0.3 Release ==================================== 2007-06-29 Matthew Allum * clutter/clutter-texture.c: (texture_upload_data): Fix a SEGV for GL ES textures. * clutter/cogl/gles/cogl.c: (cogl_setup_viewport): Tweak default z_camera for 60 degrees like GL. * clutter/egl/clutter-backend-egl.c:: * clutter/egl/clutter-stage-egl.c: Fix edpy usage (thanks to Kaj Gronholm). 2007-06-29 Tomas Frydrych * clutter/clutter-group.c: (clutter_group_query_coords): Fixed box calculation. 2007-06-28 Tomas Frydrych * clutter/clutter-group.c: (clutter_group_raise): (clutter_group_lower): Fixed SIGSEGV when attempting to raise / lower an only child. 2007-06-28 Matthew Allum * clutter/cogl/gl/cogl.c: (cogl_setup_viewport): Improve fixed z_camera value for defualt perspective. Appears pixel perfect on ATI and Intel at least 2007-06-28 Tomas Frydrych * tests/test-perspective.c: Moved red dots to be positioned 1px off each corner. 2007-06-28 Matthew Allum * tests/Makefile.am: * tests/test-perspective.c: Add simple perspective test 2007-06-27 Tomas Frydrych * clutter/clutter-actor.h: * clutter/clutter-actor.c: * tests/test-project.c: Renamed clutter_actor_project_point() to clutter_actor_apply_trasform_to_point() and clutter_actor_project_vertices() to clutter_actor_get_vertices(). 2007-06-27 Tomas Frydrych * clutter/clutter-actor.h: * clutter/clutter-actor.c: * tests/test-project.c: (clutter_actor_project_point): Separated input from output parameters. 2007-06-27 Matthew Allum * Makefile.am: Dont remove README on make clean 2007-06-27 Tomas Frydrych * clutter/clutter-actor.c: (_clutter_actor_apply_modelview_transform): Fixed incorrect order of scaling an rotation that was causing objects that were both rotated and scaled to change position. 2007-06-27 Tomas Frydrych * clutter/clutter-actor.c: (clutter_actor_scale_with_gravityx): Made to work after changes to the behavivour of clutter_actor_get_absolute_size() for rotated actors. 2007-06-26 Tomas Frydrych * clutter/cogl/gl/cogl.c: * clutter/cogl/gles/cogl.c: (cogl_setup_viewport): For default perspective angle of 60 degrees, use a hardcoded z_camera constant that provides minimal artefacts when rendering text; for other angles we calculate. 2007-06-26 Tomas Frydrych * clutter/clutter-actor.h: * clutter/clutter-actor.c: Added fixed point version of clutter_actor_rotate_*() functions and accessors for rotation angles. 2007-06-25 Matthew Allum * README: Update a little more. * clutter/clutter-effect.c: Add missing func documentation * clutter/clutter-rectangle.c: Fix border drawing. 2007-06-25 Tomas Frydrych * clutter/clutter-fixed.h: Fixed definition of clutter_cosx() macro. * clutter/clutter-stage.c: * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl.c: * clutter/cogl/gles/cogl.c: Changed ClutterPerspective.fovy from ClutterAngle to degrees to improve precission in Z-camera calculations. 2007-06-22 Matthew Allum * README: * README.in: * autogen.sh: * configure.ac: Move back to regular README naming at least for now. 2007-06-22 Matthew Allum * 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-21 Emmanuele Bassi * clutter/clutter-timeline.c: Allow disabling the timeline pool by using the CLUTTER_TIMELINE environment variable set to "no-pool". 2007-06-19 Emmanuele Bassi * README.in: Update release notes. 2007-06-19 Matthew Allum * clutter/clutter-main.c: (clutter_init_with_args), (clutter_init): Safer checks for setting progname if NULL is passed in init. 2007-06-19 Emmanuele Bassi * autogen.sh: autoreconf needs a README. 2007-06-19 Matthew Allum * TODO: Sync up a little. * clutter/clutter-main.c: Set a default window title based on g_prgname(). * clutter/clutter-stage.c: * clutter/clutter-stage.h: * clutter/egl/clutter-stage-egl.c: * clutter/glx/clutter-stage-glx.c: * clutter/sdl/clutter-stage-sdl.c: Alter draw_to_pixbuf to return a pixbuf * configure.ac: Only full in gdk-pixbuf-xlib as a GLX backend dep. * tests/test-entry.c: Fix a couple of warnings. 2007-06-19 Emmanuele Bassi * Makefile.am: Add README.in to the EXTRA_DIST. 2007-06-19 Emmanuele Bassi * configure.ac: * README.in: Use a template for the README file, so that it gets the right version number. 2007-06-19 Matthew Allum * clutter/clutter-stage.c: * clutter/clutter-stage.h: * clutter/glx/clutter-stage-glx.c: * clutter/sdl/clutter-stage-sdl.c: Add window title setting/getting functionality. * clutter/clutter-event.c: (clutter_key_event_unicode): Remove uneeded convert case call. * clutter/cogl/gl/cogl.c: (cogl_rectangle) Use parameters correctly for underlying GL rect call. * tests/test-entry.c: Add a window title. 2007-06-18 Matthew Allum * clutter/sdl/clutter-event-sdl.c: Seemingly fix SDL Event source. Add some very basic SDL keysym translation. (Thanks to Thomas Van Machelen for initial translation code) * tests/test-events.c: Dump some info on keysyms pressed. 2007-06-16 Emmanuele Bassi * clutter/clutter-actor.h: * clutter/clutter-stage.h: Add 32 padding slots; when we reach 1.0 it'll be a long road until the following ABI break. * tests/test-behave.c: Don't forget to include headers. 2007-06-16 Emmanuele Bassi * clutter/clutter-container.h: * clutter/clutter-layout.h: Interfaces are not checked at compile-time, so there's not need to add padding to avoid ABI breaks. 2007-06-16 Emmanuele Bassi * 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 Emmanuele Bassi * configure.ac: If the programs required to build the manual are not found and --enable-manual was passed, then just print a warning and disable the manual build instead of aborting the configure. * doc/manual/Makefile.am: Use the full path gathered by the configure script when invoking jw and xmlto. 2007-06-16 Matthew Allum * 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 Tomas Frydrych * clutter/clutter-actor.c: Added some comments; renamed MTX_GL_SCALE to MTX_GL_SCALE_X for consistency; removed some debug output. 2007-06-14 Tomas Frydrych * clutter/clutter-vbox.c: * clutter/clutter-hbox.c: (clutter_vbox_pack_child): (clutter_hbox_pack_child): Fixed child coords. 2007-06-14 Emmanuele Bassi * 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 Matthew Allum * clutter/cogl/gl/cogl.c: (cogl_check_extension): Actually populate this func and remove the static alternate named one. Means GLX actually checks for available extensions. Other minor tidy ups. * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-backend-glx.h: Add support for GLX_SGI_swap_control to do vblanking prefering over glXGetVideoSyncSGI. Should fix issues on Intel chips with very slow frame rates due to vblank problems. Thanks to Michel Danzer for tips, see; http://bugs.freedesktop.org/show_bug.cgi?id=10542 * test/test-actors.c: Change FPS to 60. 2007-06-14 Emmanuele Bassi * clutter/clutter-timeout-pool.c: Make ClutterTimeoutPool more thread-safe, using a static lock. (clutter_timeout_pool_dispatch), (clutter_timeout_pool_remove): Fix a race condition-turned-in-memory corruption bug, triggered by removing a timeout from the pool while still spinning the pool source. 2007-06-14 Emmanuele Bassi * configure.ac: * doc/manual/Makefile.am: Find xmlto and jw in the path and use the symbolic names when building the manual. 2007-06-14 Tomas Frydrych * clutter/clutter-actor.c: (clutter_actor_get_abs_position): (clutter_actor_get_abs_size): Reimplement using clutter_actor_project_point() and clutter_actor_project_vertices(). * tests/test-project.c: Rename clutter_actor_allocate_coords -> clutter_actor_query_coords 2007-06-14 Matthew Allum * 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 Tomas Frydrych * clutter/clutter-actor.c: (clutter_actor_project_vertices): (clutter_actor_project_proint): Fixed translation of Y coords to match the windowing system. * clutter/egl/clutter-stage-egl.c: * clutter/glx/clutter-stage-glx.c: * clutter/sdl/clutter-stage-sdl.c: (clutter_stage_*_request_size): Initialize viewport when setting/resetting stage side. * tests/Makefile.am * tests/test-project.c: An interactive test of the projection stuff. 2007-06-12 Tomas Frydrych * clutter/clutter-main.c: (clutter_redraw): Clear CLUTTER_ACTOR_SYNC_MATRICES flag after setting up viewport. 2007-06-12 Matthew Allum * doc/manual/Makefile.am: Fix typo in Makefile so PDF's actually get built. * doc/manual/clutter-manual.xml.in: Add an FAQ section with initial entry. 2007-06-12 Tomas Frydrych * clutter/clutter-fixed.h: Added shorthand CFX_QMUL macro. * clutter/clutter-private.h: * clutter/clutter-actor.h: * clutter/clutter-actor.c: Replaced ClutterVertices with ClutterVertex; (clutter_actor_get_transformed_vertices): (clutter_actor_get_transformed_point): Replaced with clutter_actor_projected_vertices and clutter_actor_projected_point. (_clutter_actor_apply_modelview_transform): (_clutter_actor_apply_modelview_transform_recursive): Private functions to push actor modelview transforms on OpenGL stack. * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl.c: * clutter/cogl/gles/cogl.c: (cogl_get_viewport): (cogl_get_modelview_matrix): (cogl_get_projection_matrix): Functions to access OpenGL transforms. 2007-06-12 Matthew Allum * clutter/clutter-alpha.c: Remove stray g_debug. * clutter/clutter-behaviour-rotate.c: Register private class member. * clutter/clutter-behaviour.c: * clutter/clutter-behaviour.h: Add applied and removed signals. * Makefile.am: * configure.ac: * examples/Makefile.am: * examples/README: * examples/behave.c: * examples/slider.c: * examples/super-oh.c: * examples/test-entry.c: * examples/test-text.c: * examples/test.c: * tests/Makefile.am: Remove examples, moving applicable code into tests. 2007-06-11 Tomas Frydrych * clutter/clutter-alpha.c: (clutter_alpha_sine_inc): (clutter_alpha_sine_dec): (clutter_alpha_sine_half): Fixed unsigned overflow. 2007-06-11 Emmanuele Bassi * clutter/clutter-event.h: Add full modifier masks enums. * clutter/glx/clutter-event-glx.c: Copy the modifier masks from the native X event structure. * clutter/clutter-event.c: Convert to upper case if the shift or the lock masks are applied. 2007-06-09 Emmanuele Bassi * clutter/clutter.h: * clutter/clutter-timeout-pool.[ch]: Add a timeout pool source; every timeout added to this pool will use a single slice of the main loop. * clutter/clutter-timelince.c: Use a per-class timeout pool for every timeline. 2007-06-08 Matthew Allum * clutter/clutter-texture.c: (clutter_texture_get_pixbuf): Remove stray printf. 2007-06-08 Matthew Allum * 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 Neil J. Patel * clutter/clutter-entry.c: (clutter_entry_class_init), (clutter_entry_handle_key_event): * clutter/clutter-entry.h: Added an 'activated' signal, which is emitted when the 'Enter' key is pressed. * examples/test-entry.c: (on_entry_activated), (main): Added a test handler for the activated signal. 2007-06-07 Emmanuele Bassi * clutter/*: Move documentation from the templates into the source code. 2007-06-07 Emmanuele Bassi * 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 Emmanuele Bassi * clutter/clutter-timeline.[ch]: Add a "delay" property, which delays the real start of the timeline by a number of milliseconds. (clutter_timeline_clone): Rename clutter_timeline_copy() to clutter_timeline_clone(), for consistency. 2007-06-01 Neil J. Patel * clutter/clutter-entry.c: (clutter_entry_set_property), (clutter_entry_get_property), (clutter_entry_class_init), (clutter_entry_init), (clutter_entry_set_text), (clutter_entry_set_max_length): * clutter/clutter-entry.h: * examples/test-entry.c: (main): Added a max-length property whihc limits the length of the text in the entry. 2007-06-01 Neil J. Patel * clutter/clutter-entry.c: (clutter_entry_ensure_cursor_position), (clutter_entry_paint), (clutter_entry_init), (clutter_entry_handle_key_event): Clipping within the entry class to stop it over-slipping its boundries. Text will move within the clip region to keep the cursor always visible. Added some padding to the left and right to make sure cursor is always show. 2007-06-01 Tomas Frydrych * clutter/clutter-actor.c: * clutter/clutter-stage.c: * clutter/clutter-private.h: Removed perspective matrix caching from ClutterStage. 2007-06-01 Neil J. Patel * clutter/clutter-entry.c: (clutter_entry_set_property), (clutter_entry_get_property), (clutter_entry_ensure_layout), (clutter_entry_class_init), (clutter_entry_init), (clutter_entry_set_visibility), (clutter_entry_get_visibility), (clutter_entry_set_invisible_char), (clutter_entry_get_invisible_char): * clutter/clutter-entry.h: Added text-visibility, which will allow you to show all entered text as a nominated charaecter ('*' is default). * examples/test-entry.c: (main): 2007-06-01 Neil J. Patel * clutter/clutter-entry.c: (clutter_entry_ensure_cursor_position), (clutter_entry_clear_cursor_position), (clutter_entry_paint_cursor), (clutter_entry_paint), (clutter_entry_class_init), (clutter_entry_set_text), (clutter_entry_set_position): * clutter/clutter-entry.h: Added a signla to track cursor movements. Moved the sursor painting function so it can be subclassed. 2007-06-01 Tomas Frydrych * clutter/clutter-actor.c: (clutter_actor_get_transformed_point): Make input again relative to the actor; feed depth into transform. 2007-06-01 Neil J. Patel * clutter/clutter-entry.c: (clutter_entry_class_init), (clutter_entry_set_text): * clutter/clutter-entry.h: * examples/test-entry.c: (on_entry_text_changed), (main): Added a text-changed signal to the entry. 2007-06-01 Neil J. Patel * clutter/clutter-effect.h: Removed extra G_END_DECLS outside the #endif * clutter/clutter-entry.c: (clutter_entry_handle_key_event), (clutter_entry_add): * clutter/clutter-entry.h: * examples/test-entry.c: (on_key_release_cb): Added a function to deal with ClutterKeyEvents. Handles the majority of entry-related keyboard keys. However modifiers still need to be implemented. 2007-06-01 Tomas Frydrych * clutter/clutter-actor.c: (mtx_create): Apply perspective transform before all other transforms. 2007-06-01 Tomas Frydrych * clutter/clutter-stage.c: (clutter_stage_init): Call _clutter_stage_refresh_perspective_matrix to initialize the matrix for default values. 2007-06-01 Tomas Frydrych * clutter/clutter-fixed.h: * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: * clutter/clutter-behaviour-bspline.h: * clutter/clutter-behaviour-bspline.c: Documentation fixes. 2007-05-31 Tomas Frydrych * clutter/clutter-stage.c: * clutter/clutter-private.h: (_clutter_stage_get_perspective_matrix): New function. * clutter/clutter-actor.c: (clutter_actor_get_tranformed_vertices): (clutter_actor_get_tranformed_point): Apply perspective matrix on the top of actor transform matrix. 2007-05-31 Neil J Patel * clutter/Makefile.am: * clutter/clutter-entry.c: (clutter_entry_set_property), (clutter_entry_get_property), (clutter_entry_ensure_layout), (clutter_entry_clear_layout), (clutter_entry_ensure_cursor_position), (clutter_entry_paint), (clutter_entry_request_coords), (clutter_entry_dispose), (clutter_entry_finalize), (clutter_entry_class_init), (clutter_entry_init), (clutter_entry_new_with_text), (clutter_entry_new_full), (clutter_entry_new), (clutter_entry_get_text), (clutter_entry_set_text), (clutter_entry_get_font_name), (clutter_entry_set_font_name), (clutter_entry_set_color), (clutter_entry_get_color), (clutter_entry_get_layout), (clutter_entry_set_alignment), (clutter_entry_get_alignment), (clutter_entry_set_position), (clutter_entry_get_position), (clutter_entry_add), (clutter_entry_remove), (clutter_entry_insert_text), (clutter_entry_delete_text), (clutter_entry_set_visible_cursor), (clutter_entry_get_visible_cursor): * clutter/clutter-entry.h: * clutter/clutter.h: * examples/Makefile.am: Initial import of ClutterEntry actor. * examples/test-entry.c: (on_key_release_cb), (main): A basic test for ClutterEntry 2007-05-31 Tomas Frydrych * clutter/clutter-actor.c: (clutter_actor_get_transformed_point): Fixed coordinance translation. 2007-05-31 Matthew Allum * 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 Matthew Allum * clutter/egl/clutter-backend-egl.c: * clutter/egl/clutter-backend-egl.h: * clutter/egl/clutter-event-egl.c: * clutter/egl/clutter-stage-egl.c: * clutter/egl/clutter-stage-egl.h: Rename Egl -> EGL 2007-05-31 Matthew Allum * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-backend-glx.h: * clutter/glx/clutter-event-glx.c: * clutter/glx/clutter-glx.h: * clutter/glx/clutter-stage-glx.c: * clutter/glx/clutter-stage-glx.h: Change type nameing from Glx -> GLX. Add basic event filtering functionality 2007-05-31 Tomas Frydrych * clutter/clutter-behaviour-ellipse.c: Changed behaviour so that a beginning angle of 0 would correspond to 12 o'clock. 2007-05-31 Tomas Frydrych * clutter/clutter-fixed.h: * clutter/clutter-fixed.c: (_clutter_double_to_int): Fixed return value to gint; added missing cast that broke negative number conversions. (CLUTTER_ANGLE_FROM_DEGX): Swapped division and multiplication around to avoid overflows. * clutter/clutter-behaviour-ellipse.c: Fixed incorrectly set lower bounds for angle properties. * clutter/clutter-actor.h: * clutter/clutter-actor.c: Added ClutterVertices type. (clutter_actor_get_transformed_vertices): New function. 2007-05-31 Matthew Allum * TODO: Sync up for whats left for 0.4 release (and 0.6 ideas) 2007-05-31 Matthew Allum * clutter/clutter-behaviour-ellipse.c: Remove uneeded knot signal * clutter/clutter-behaviour-path.c: Fix so knot signal is emitted only when a knot is reached. * clutter/clutter-effect.c: * clutter/clutter-effect.h: Add a scale effect. * configure.ac: * doc/manual/Makefile.am: * doc/manual/clutter-manual.xml.in: * doc/manual/manual.xsl: * doc/manual/style.css: Add various bits for application developers manual. 2007-05-30 Tomas Frydrych * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: Removed ClutterSmoothstep struct (clutter_smoothstep_inc_func): Renamed to clutter_smoothstep_func. (clutter_smoothstep_added_func): Added. 2007-05-29 Tomas Frydrych * clutter/clutter-fixed.h: (clutter_cosx): (clutter_cosi): Fixed wrong sign in cos -> sin tranformation. * clutter/clutter-behaviour-ellipse.c: (clutter_behaviour_ellipse_advance): Replaced coordinace calculation for tilted ellipse with a sane algorithm. * examples/behave.c: Added tilt parameter to the example ellptic path. 2007-05-29 Tomas Frydrych * clutter/cogl/gles/cogl.c: (cogl_setup_viewport): Fixed z_camera calculation. 2007-05-28 Matthew Allum * clutter/clutter-texture.c: (clutter_texture_unrealize): Dont even try to move texture pixels from video -> system ram on unrealisation for GL/ES 2007-05-28 Matthew Allum * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos): Fix for GL/ES. Barring texture reads this means all clutter functionality now works on GL/ES! (no doubt with a few yet to be discovered bugs) 2007-05-28 Matthew Allum * 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-25 Matthew Allum * clutter/clutter-color.c: (clutter_color_parse): Handle #rrggbbaa color setting strings (i.e with alpha). Set alpha to 0xff if it is not specified. * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos) Increase select buffer. * examples/super-oh.c: Fix up use of clutter_group_show_all() 2007-05-25 Tomas Frydrych * clutter/clutter-actor.c: * clutter/clutter-actor.h: Renamed clutter_actor_scalex() to clutter_actor_set_scale_with_gravityx Added floating point version clutter_actor_set_scale_with_gravity. * clutter/clutter-units.h: * clutter/clutter-actor.h: typedef ClutterUnit * clutter/clutter-fixed.h: * clutter/clutter-stage.c: CLUTTER_ANGLE_FROM_DEG(), CLUTTER_ANGLE_FROM_DEGX() renamed CLUTTER_DEGF_TO_CLUTTER_ANGLE to CLUTTER_ANGLE_FROM_DEGF * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: * examples/behave.c: (clutter_behaviour_ellipse_new): Changed signature to take angles in degrees, and x,y offsets. (clutter_behaviour_ellipse_newx): Fixed version clutter_behaviour_ellipse_new. (clutter_behaviour_ellipse_set_center): (clutter_behaviour_ellipse_get_center): Changed signature to take x,y coords instead of ClutterKnot. clutter/cogl/gl/cogl.c: clutter/cogl/gles/cogl.c: (cogl_setup_viewport): Added z_camera calculation. 2007-05-25 Matthew Allum * 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-23 Tomas Frydrych * clutter/clutter-actor.c: * clutter/clutter-actor.h: (clutter_actor_get_abs_size_units): (clutter_actor_get_abs_position_units): removed from public api 2007-05-22 Tomas Frydrych * configure.ac: * Makefile.am: * clutter.pc.in: * clutter/Makefile.am: * clutter/clutter-actor.c: * clutter/clutter-actor.h: * clutter/clutter-group.c: * clutter/clutter-label.c: * clutter/clutter-real.h: * clutter/clutter-units.h: * clutter/clutter.h: * clutter/egl/clutter-stage-egl.c: * clutter/glx/clutter-stage-glx.c: * clutter/sdl/clutter-stage-sdl.c: * examples/Makefile.am: * tests/Makefile.am: Removed ClutterReal; added clutter-units. 2007-05-18 Tomas Frydrych * configure.ac: * Makefile.am: * clutter.pc.in: * clutter/Makefile.am: * clutter/clutter-actor.c: * clutter/clutter-actor.h: * clutter/clutter-behaviour-scale.c: * clutter/clutter-behaviour-scale.h: * clutter/clutter-group.c: * clutter/clutter-label.c: * clutter/clutter-real.h: * clutter/egl/clutter-stage-egl.c: * clutter/glx/clutter-stage-glx.c: * examples/Makefile.am: * tests/Makefile.am: ClutterReal type. 2007-05-17 Emmanuele Bassi * clutter/clutter-main.c: Use clutter_base_init() inside the initialisation process, instead of calling g_type_init() directly. * clutter/clutter-alpha.c: * clutter/clutter-behaviour-bspline.c: * clutter/clutter-behaviour-ellipse.c: Fix API documentation. 2007-05-17 Matthew Allum * configure.ac: Fix CLUTTER_NO_FPU typo. 2007-05-17 Tomas Frydrych * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: * doc/reference/clutter-sections.txt: Added clutter_exp_inc_func() and clutter_exp_dec_func(). 2007-05-16 Emmanuele Bassi * clutter/clutter-main.[ch]: Add clutter_base_init(), semi-private function to initialise just the base Clutter functionalities; it's only used by gtk-doc to introspect the classes. * clutter/clutter-feature.c: Do not access the private features data structure unless it has been initialised. 2007-05-16 Tomas Frydrych * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: * doc/reference/clutter-sections.txt: Added clutter_sine_half(). 2007-05-16 Tomas Frydrych * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: * doc/reference/clutter-sections.txt: Fixed clutter_sine_inc(), added clutter_sine_dec(). 2007-05-16 Tomas Frydrych * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: * doc/reference/clutter-sections.txt: * doc/rererence/clutter.types: * doc/reference/tmpl/clutter-alpha.sgml: clutter_smoothstep_func alpha function, ClutterSmoothstep struct for smoothstep function data. 2007-05-16 Matthew Allum * clutter/clutter-backend.c: * clutter/clutter-backend.h: * clutter/clutter-feature.c: * clutter/clutter-feature.h: * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter-stage.c: * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl.c: * clutter/cogl/gles/cogl.c: * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-backend-glx.h: * clutter/glx/clutter-glx.h: * clutter/glx/clutter-stage-glx.c: * clutter/glx/clutter-stage-glx.h: Rejig the features() foo, moving mostly into backends/cogl. 2007-05-15 Tomas Frydrych * clutter/clutter-actor.c: (clutter_actor_get_abs_position): Removed unnecessary CFX_MUL(). 2007-05-15 Tomas Frydrych * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: (clutter_behaviour_ellipse_new): Added a tilt parameter. 2007-05-14 Matthew Allum * clutter/clutter-behaviour-path.c: Fix bug where last knot position wouldn't get reached. * clutter/clutter-group.c: Add some docs * clutter/clutter-timeline.h: * clutter/clutter-timeline.c: Add clutter_timeline_copy (needed for ClutterEffect) * clutter/clutter-version.h.in: Export windowing system / GL backend etc defines. * clutter/Makefile.am: * clutter/clutter-effect.c: * clutter/clutter-effect.h: * clutter/clutter.h: * clutter/glx/clutter-backend-glx.c: Minor clean ups. * clutter/clutter-alpha.h: Add a fixme. * configure.ac: Add FPU define. * examples/Makefile.am: * examples/slider.c: Add Robs slider game. 2007-05-10 Matthew Allum * clutter/egl/clutter-backend-egl.c: * clutter/egl/clutter-event-egl.c: * clutter/sdl/clutter-backend-sdl.c: * clutter/sdl/clutter-event-sdl.c: Fix SDL & EGL backends to work with newer backend code. 2007-05-10 Tomas Frydrych * clutter/clutter-color.h: * clutter/clutter-color.c: Added clutter_color_to/from_hlsx() (clutter_color_to/from_hls): Clobber hue to 0 .. 250 2007-05-10 Matthew Allum * clutter/clutter-backend.c: * clutter/clutter-backend.h: * clutter/clutter-event.c: * clutter/clutter-main.c: * clutter/clutter-private.h: * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-backend-glx.h: * clutter/glx/clutter-event-glx.c: Rejig backend event code as to simplify a little. NOTE: This breaks non glx backends. * tests/Makefile.am: * tests/test-events.c: Add a very simple event test. * tests/test-textures.c: (main): Add some more sizes to the test. 2007-05-05 Matthew Allum * clutter/clutter-texture.c: Fix typos with new cogl using texture code. Fixes tiled textures. Add a check for max npots size. * configure.ac: * Makefile.am: * tests/Makefile.am: * tests/test-textures.c: Add a simple texture test. 2007-05-02 Matthew Allum * clutter/Makefile.am: * clutter/clutter-stage.c: * clutter/sdl/Makefile.am: * clutter/sdl/clutter-backend-sdl.c: * clutter/sdl/clutter-backend-sdl.h: * clutter/sdl/clutter-event-sdl.c: * clutter/sdl/clutter-sdl.h: * clutter/sdl/clutter-stage-sdl.c: * clutter/sdl/clutter-stage-sdl.h: * configure.ac: Add a basic SDL based backend. Lacks real input event handling (translation) as yet. Also allows for clutter to be built against dgles. 2007-05-02 Matthew Allum * 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-01 Matthew Allum * clutter/clutter-rectangle.c: Comment out color match check for now as appears to be causing borders to always get pained. * clutter/clutter-texture.h: Add some format defines (unused as yet) * clutter/cogl/gles/cogl.c: * clutter/egl/clutter-stage-egl.c: * configure.ac: Various OpenGL ES backend related fixes and tweaks. 2007-04-30 Tomas Frydrych * clutter/clutter-fixed.c (clutter_sini): Fixed bug in reducing angle to 0-2pi. * clutter/clutter-behaviour-ellipse.h: * clutter/clutter-behaviour-ellipse.c: * clutter/clutter.h: * clutter/Makefile.am: * doc/clutter.types: * doc/clutter-docs.sgml: Added ClutterBehaviourEllipse for movement along elliptic paths. * examples/bspline.c: * examples/behave.c: * examples/Makefile.am: Added --path commandline option to behave to choose different path types (poly, ellipse, bspline) and dropped bspline example. 2007-04-28 Matthew Allum * clutter/Makefile.am: * clutter/clutter-debug.h: * clutter/clutter-fixed.h: * clutter/clutter-main.c: * clutter/cogl/gles/Makefile.am: * clutter/cogl/gles/cogl-defines.h: * clutter/cogl/gles/cogl.c: * clutter/egl/clutter-backend-egl.c: * clutter/egl/clutter-backend-egl.h: * clutter/egl/clutter-stage-egl.c: * configure.ac: Populate most stubs for cogl GL/ES implementation. (against vincent - see http://svn.o-hand.com/repos/misc/ogles) Add various fixups to EGL backend. Code builds and runs (on 16bpp) but yet displays much (is close!) * clutter/pango/pangoclutter-render.c: comment out some rouge glBegin/end calls. 2007-04-27 Matthew Allum * 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-26 Emmanuele Bassi Merge from clutter-0-2 * clutter/clutter-label.c: Unbreak the "use-markup" property by actually passing the markup to pango_layout_set_markup(). 2007-04-25 Emmanuele Bassi Merge from clutter.git/master * clutter/glx/clutter-event-glx.c: * clutter/glx/clutter-stage-glx.c: Implement the _NET_WM_PING protocol handling on the main stage window. * clutter/clutter-stage.h: * clutter/clutter-stage.c: * clutter/clutter-main.c: Handle CLUTTER_DELETE events internally, by calling clutter_main_quit(), and remove the ::delete-event signal from ClutterStage; clean up the signal emission sequence for the events: emit the ::event signal before emitting any signal and the ::event-after signal after the signal has been emitted; move the signal emission calls inside ClutterStage so we can call g_signal_emit() instead of g_signal_emit_by_name(), thus sparing us a lookup for each event. * examples/test.c: Remove ::delete-event signal handling. 2007-04-19 Emmanuele Bassi Merge from clutter.git/master * clutter/clutter-backend.h: * clutter/clutter-backend.c: Add API for getting screen/display properties from the backend. * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-backend-egl.c: Retrieve screen/display properties inside the backends init function. * clutter/glx/clutter-event-glx.c: Handle the WM_PROTOCOLS ClientMessage events. * clutter/glx/clutter-stage-glx.c: Use XSetWMProtocols to enable the WM_PROTOCOLS ClientMessage events on the stage window. * clutter/glx/clutter-glx.h: Return the Screen pointer and not the screen number in clutter_glx_get_default_screen(). The screen number is returned by clutter_backend_get_screen_number(), or by calling XScreenNumberOfScreen on the returned pointer. * clutter/clutter-event.h: Add CLUTTER_DELETE to the event types. * clutter/clutter-main.c: Emit the ClutterStage::delete-event when receiving a CLUTTER_DELETE event; if the signal handlers return FALSE, call clutter_main_quit(). * clutter/clutter-marshal.list: * clutter/clutter-stage.c: Use the right marshaller function for the delete-event closure. * examples/test.c: Test the "delete-event" signal handler. 2007-04-16 Emmanuele Bassi Merge from clutter.git/merge-from-stable * clutter/clutter-event.h: * clutter/glx/clutter-event-glx.c: Add the XEMBED protocol support in the GLX backend, for embedding the stage window into another X window. This allows cross-toolkit inclusion and makes clutter-gtk possible. * clutter/clutter-behaviour-scale.c: Implement every ClutterGravity value inside the scale behaviour and make the actors anchor to a gravity when scaling up and down. * clutter/clutter-texture.c: Revert to copying GdkPixbuf areas to correctly implement the texture tiling. This fixes segmentation faults occurring with cards with a small texture memory area. * clutter/clutter-actor.c: 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 Emmanuele Bassi Merge from clutter.git/work * clutter/clutter-behaviour-bspline.[ch]: Return a ClutterBehaviour when splicing the b-spline; fix the header and the API documentation; hush the compiler warnings; kill of some pointer indirections. * clutter/clutter-behaviour-rotate.[ch]: Add a rotate behaviour, with user defined axis, direction and sweep angle. * clutter/clutter-behaviour.c (clutter_behaviour_is_applied): Add a parameter ISA check and return FALSE if it fails. 2007-04-12 Tomas Frydrych * clutter/clutter-behaviour.h: * clutter/clutter-behaviour.c: * clutter/clutter-behaviour-path.h: * clutter/clutter-behaviour-path.c: Moved declaration of ClutterKnot from clutter-behaviour path into clutter-behaviour. * clutter/clutter-fixed.h * clutter/clutter-fixed.c Added myself as an author. * clutter/Makefile.am: * clutter/clutter.h: * clutter/clutter-behaviour-bspline.h: * clutter/clutter-behaviour-bspline.c: Added new bezier spline behaviour. * examples/bspline.c: * examples/Makefile.am: An example of using bspline path. 2007-04-07 Matthew Allum * clutter/glx/clutter-backend-glx.c: Fix version check. 2007-03-29 Tomas Frydrych * clutter/clutter-stage.c: (perspective): fixed degree -> rad conversion for fovy angle (perspectivex): fixed degree -> rad conversion for fovy angle, added code for gle glMultMatrixx(). 2007-03-29 Tomas Frydrych * configure.ac: fixed typo * clutter/clutter-fixed.c: * clutter/clutter-fixed.h: (clutter_tani): fast implementation of tan() (clutter_qmulx): improved-precission fixed point multiply * clutter/clutter-stage.c: (perspectivex): fixed point implementaiton of perspective() (_clutter_stage_sync_viewport): (clutter_stage_get_actor_at_pos): use perspectivex() instead of perspective() 2007-03-27 Matthew Allum * clutter/cogl/Makefile.am: * clutter/cogl/cogl.h: * clutter/cogl/gles/Makefile.am: * clutter/cogl/gles/cogl.c: Begin poplulating cogl GLES code. * configure.ac: * clutter/egl/clutter-event-egl.c: * clutter/egl/clutter-stage-egl.c: * clutter/egl/clutter-stage-egl.h: * clutter/egl/clutter-backend-egl.c: * clutter/egl/clutter-backend-egl.h: * clutter/egl/clutter-egl.h: Add initial EGL/X backend work mostly ported from backend branch. Builds but untested as yet. * clutter/glx/clutter-stage-glx.c: Only include XFixes Header if we have have it. * clutter/clutter-behaviour.c: (clutter_behaviour_apply): * clutter/clutter-behaviour.h: Add clutter_behaviour_is_applied() 2007-03-27 Emmanuele Bassi * clutter/clutter-stage.h: Remove unused clutter_stage_flush() declaration. 2007-03-27 Emmanuele Bassi * clutter/glx/clutter-glx.h: * clutter/glx/clutter-stage-glx.c: (Re-)Implement the foreign window setting function for the stage in the GLX backend. 2007-03-27 Emmanuele Bassi * clutter/clutter-stage.h: Declare the clutter_perspective_get_type() function in the header. 2007-03-27 Emmanuele Bassi * clutter/cogl/cogl.h: Add header and compiler guards. 2007-03-27 Emmanuele Bassi * clutter/glx/clutter-stage-glx.c: Remove the check in the paint chain up: we know for sure that the parent's paint vfunc is present. 2007-03-27 Matthew Allum * clutter/clutter-feature.c: Rejig ifdef's a little. Make drm vblanking Linux only. * clutter/clutter-stage.c: * clutter/clutter-stage.h: Add a perspective boxed type. * clutter/glx/clutter-stage-glx.c: Add some FIXMEs * clutter/Makefile.am: * clutter/cogl/Makefile.am: * clutter/cogl/cogl.h: * clutter/cogl/gl/Makefile.am: * clutter/cogl/gl/cogl.c: * configure.ac: Very initial work on 'cogl' GL/GLES abstraction/utility code. 2007-03-26 Emmanuele Bassi * clutter/clutter-behaviour-scale.[ch]: Add API for getting the scale bounds and the gravity from a scale behaviour instance. 2007-03-26 Emmanuele Bassi * clutter/clutter-timeline.c: Fix last commit. 2007-03-25 Emmanuele Bassi * clutter/clutter-timeline.c: Slightly lower the proiority of the ClutterTimeline tick, so that events get a higher priority in the main loop. 2007-03-25 Emmanuele Bassi * clutter/clutter-event.[ch]: Remove the flags member from the ClutterEvent structure; remove the ClutterEventFlags enum. 2007-03-25 Emmanuele Bassi * clutter/clutter-stage.h: Remove the ::get_actor_at_pos() and ::flush() vfuncs. * clutter/glx/clutter-stage-glx.c: Remove the implementations of those vfuncs from the backend specific code, as they are pure GL calls. * clutter/clutter-stage.c: Add back the actor hit detection code in the base stage class, along with the viewport synchronisation function. * clutter/clutter-private.h: Declare the private function _clutter_stage_sync_viewport(). 2007-03-23 Emmanuele Bassi * clutter/clutter-backend.c: Clear the event queue when disposing the backend object; remove the initialisation of the backend structure members... * clutter/glx/clutter-backend-glx.c: ... and keep it here in the backends where it belongs. 2007-03-23 Emmanuele Bassi * clutter/clutter-private.h: * clutter/clutter-backend.h: Move the backend functions into the private header. * clutter/glx/clutter-stage-glx.c: * clutter/glx/clutter-event-glx.c: * clutter/clutter-main.c: * clutter/clutter-stage.c: Update the calls to the private backend functions. * clutter/clutter-backend.[ch]: Add an ::init_features vfunc to ClutterBackend. 2007-03-23 Emmanuele Bassi * clutter/glx/clutter-stage-glx.c: Make sure the top-left corner of the box is our origin, when returning the allocation. * clutter/clutter-stage.c: * clutter/clutter-group.c: Add tracing for the paint method. 2007-03-23 Matthew Allum * clutter/glx/clutter-stage-glx.c: (clutter_stage_glx_allocate_coords): Make new stage return correct width & height. 2007-03-23 Emmanuele Bassi Assorted build fixes to pass distcheck. * clutter/glx/Makefile.am: Install the clutter-glx.h header. * clutter/Makefile.am: Actually apply linker flags. * configure.ac: Use a more readable CLUTTER_API_VERSION instead of CLUTTER_MAJORMINOR; require gobject-2.0 with glib-2.0 >= 2.10, as we are using GObject and the slice allocator from glib 2.10. * clutter.pc.in: Add the apiversion variable. 2007-03-23 Emmanuele Bassi * clutter/clutter-event.c: Pop and peek the event queue from the tail - it's a queue, not a stack. * clutter/clutter-private.h: * clutter/clutter-main.c: Add a boolean signal accumulator. * clutter/clutter-stage.[ch]: Add an event argument to the 'delete-event' signal; rename the 'input-event' signal to 'event'; add the static scope flag to all the stage events. * examples/*.c: Update. 2007-03-22 Emmanuele Bassi * clutter.pc.in: Require gobject-2.0 too. * ChangeLog: Fix the previous commit log. 2007-03-22 Emmanuele Bassi * 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. * configure.ac: Check for the XFixes X extension; add a configure switch for choosing the backend; show the backend we are building in the summary. * clutter.pc.in: Add the backend to the exported variables. * clutter/Makefile.am: Install the headers in the clutter-$api_version/clutter directory, as usual; call the shared object libclutter-$backend-$api_version; build glue for the backend static library. 2007-03-19 Matthew Allum * clutter/clutter-label.c: Simple doc fix. * clutter/clutter-texture.c: (clutter_texture_get_pixbuf): Backport of fix to get_pixbuf on non alpha textures from 0_2 branch. 2007-03-19 Emmanuele Bassi * clutter/clutter-texture.c: Clean up code; add checks in public API. 2007-02-18 Matthew Allum * 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-15 Matthew Allum * clutter/clutter-group.h: Add missing clutter_group_remove_all declaration. 2007-02-14 Matthew Allum * clutter/Makefile.am: * clutter/clutter-main.c: * clutter/clutter-stage.c: * clutter/clutter-version.h.in: * configure.ac: * examples/super-oh.c: Add CLUTTER_FLAVOUR define. 2007-02-13 Matthew Allum * examples/super-oh.c: (screensaver_setup): Fix example to build with new glx api 2007-02-07 Emmanuele Bassi * clutter/clutter-debug.h: Define the CLUTTER_MARK() macro even when CLUTTER_ENABLE_DEBUG is not defined. (#215) 2007-01-30 Tomas Frydrych * clutter/clutter-alpha.c: (sincx1024_func): (clutter_sine_func): (clutter_sine_inc_func): fixed the fixed point math. 2007-01-30 Emmanuele Bassi * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: Add the square waveform function clutter_square_func() to the precooked alpha functions. 2007-01-23 Matthew Allum * Makefile.am: * clutter.pc.in: * clutter/Makefile.am: * clutter/clutter-backend-glx.c: * clutter/clutter-backend-glx.h: * clutter/clutter-event.c: * clutter/clutter-feature.c: * clutter/clutter-group.c: * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter-stage-glx.c: * clutter/clutter-stage-glx.h: * clutter/clutter-stage.c: * clutter/clutter-stage.h: * clutter/clutter-util.c: * clutter/clutter-util.h: * clutter/pango/pangoclutter-render.c: * configure.ac: * examples/Makefile.am: Initial work in supporting different GL backends (ie. GLX/EGL/DirectFB etc). Currently just GLX supported and now mostly self contained. * TODO: Add a note about caching glenables 2007-01-23 Tomas Frydrych * clutter/clutter-fixed.c: (_clutter_double_to_fixed): (_clutter_double_to_int): Fixed to avoid problems with punned pointers and gcc optimatisation. * clutter/pango/pangoclutter-private.h: Simplified PANGO_PIXELS_26_6 macro. * clutter/pango/pangoclutter-font.c: (_pango_clutter_font_new): Replace floating with fixed point math. 2007-01-19 Tomas Frydrych * clutter/clutter-fixed.c: (clutter_sqrti): Use union instead of casting int <-> float to get rid of punned-pointer warning and avoid gcc optimatisation breaking the function on arm. 2007-01-19 Emmanuele Bassi Allow the ClutterGroup subclasses to override the add and remove operations. * clutter/clutter-group.c: Move the add and remove code from clutter_group_add() and clutter_group_remove() to the signal class closures; make the "add" and "remove" signals as RUN_FIRST. 2007-01-19 Tomas Frydrych * clutter/clutter-fixed.h.: * clutter/clutter-fixed.c: Added fast double to int and double to fixed point conversion routines; changed CLUTTER_FLOAT_TO_FIXED to use it. Replaced clutter_sqrti with fixed point implementation of the QIII algorithm. * clutter/clutter-behavior-path.c: use clutter_sqrti always * clutter/clutter-alpha.c: (sinc_func): replaced double -> int cast with CLUTTER_FLOAT_TO_INT 2007-01-18 Emmanuele Bassi * configure.ac: Post release bump to 0.3.0. 2007-01-18 =============== 0.2 Release ================================ 2007-01-18 Matthew Allum * clutter.doap: Update for 0.2 release 2007-01-18 Emmanuele Bassi * clutter/clutter-group.h: Add public functions clutter_group_get_n_children() and clutter_group_get_nth_child(). * clutter/clutter-behaviour.h: * clutter/clutter-behaviour.c: Fix header alignment; fix argument name for apidoc. 2007-01-18 Emmanuele Bassi * clutter/Makefile.am: Use the build dir when linking to the internal pango clutter renderer. 2007-01-18 Tomas Frydrych * clutter/clutter-fixed.h: fixed a typo in comment 2007-01-18 Emmanuele Bassi * clutter/clutter-fixed.h: Remove some inline documentation to make the header more readable. * clutter/clutter-behaviour.c: The actors are store inside a GSList and not in a GList, so change the list operations to use the right API. 2007-01-18 Tomas Frydrych * clutter/clutter-color.c: (clutter_color_darken): (clutter_color_lighten): Changed calls to clutter_color_shade calls to clutter_color_shadex 2007-01-17 Matthew Allum * configure.ac: Bump up version to 0.2.0 2007-01-17 Tomas Frydrych * configure.ac: * clutter/clutter-behavior-path.c: Added --without-fpu option. * doc/refrence/tmpl/clutter-fixed.sgml: * clutter/clutter-fixed.c: * clutter/clutter-fixed.h: Documentation for fixed point API. * AUTHORS: added self. 2007-01-17 Emmanuele Bassi * clutter/clutter-feature.h: * clutter/clutter-feature.c: Move the GL headers from the header file to the body. * clutter/clutter-fixed.h: * clutter/clutter-fixed.c: Fix apidoc. * clutter/clutter-color.h: * clutter/clutter-color.c: Ditto. 2007-01-17 Tomas Frydrych * clutter/clutter-fixed.h: * clutter/clutter-fixed.c: * clutter/clutter-alpha.c: Renamed clutter_fixed_sin() to clutter_sinx() and clutter_angle_sin() to clutter_sini(); added clutter_sqrtx() and clutter_sqrti(); added missing copyright. * clutter/clutter-behavior.c: replaced call to sqrt() with clutter_sqrti() * clutter/clutter-behavior-scale.c: (clutter_behaviour_scale_alpha_notify): Replaced floating point math with fixed point. 2007-01-16 Emmanuele Bassi * clutter/clutter-feature.c: Use clutter_vblank_method() to get the VBlank method name from the environment variable OR the command line switch. (clutter_feature_do_init): Move the check on the features state here, to avoid an expensive function call, and inline the function. * clutter/clutter-fixed.c: Fix gtk-doc. * clutter/clutter-main.c: Add a --clutter-vblank command line switch controlling the VBlank method to be used: it overrides the CLUTTER_VBLANK environment variable. (pre_parse_hook), (clutter_init), (clutter_init_with_args): Move thread initialisation before type init, to avoid the warning that comes with newer GLib versions. * clutter/clutter-group.h: * clutter/clutter-group.c: Mark clutter_group_show_all() and clutter_group_hide_all() as deprecated. 2007-01-16 Matthew Allum * NEWS: Minor tweaks * TODO: Sync up, mainly with 0.3 todo items * clutter/clutter-behaviour.c: * clutter/clutter-behaviour.h: clutter_behaviour_get_n_actors() / clutter_behaviour_get_nth_actor() Additions. * clutter/clutter-stage.c: (clutter_stage_realize): Experimental (disabled) visual setting code. * clutter/clutter-feature.c: Check for GL_EXT_texture_rectangle (#198 - Frederick Riss) * clutter/clutter-group.c: (clutter_group_allocate_coords): Fix for group size allocation (#199 - Frederick Riss) * clutter/clutter-texture.c: (texture_upload_data): Fix texture unpacking row length (#197 Frederick Riss) * examples/Makefile.am: Fix LDADD in build (#196 - Frederick Riss) 2007-01-16 Tomas Frydrych * clutter/clutter-fixed.h: Added integer ClutterAngle type, protype of clutter_angle_sin, convenience macros clutter_fixed_cos and clutter_angle_cos, plus other convenience macros for commonly used constants and ops. * clutter/clutter-fixed.c: (clutter_fixed_sin): Fixed to work for negative angles. (clutter_angle_sin): Fast fixed point sin function for ClutterAngle angles. * clutter/clutter-alpha.c: (clutter_sin_func, clutter_sin_inc_func): Changed to use clutter_angle_sin function. * clutter-behavior-path.c: replaced floating point with fixed point operations * clutter/clutter-color.c: * clutter/clutter-color.h: Added (clutter_color_shadex), replaced floating point operations with fixed point 2007-01-15 Tomas Frydrych * clutter/clutter-fixed.h: (CLUTTER_FIXED_TO_DOUBLE/FLOAT): Fixed macro so it works for negative values. * clutter/clutter-fixed.c: (clutter_fixed_sin): Implemented fixed point sin function. * clutter/clutter-alpha.c: (clutter_sin_func, clutter_sin_inc_func): Pluged in fixed point sin function. 2007-01-07 Matthew Allum * 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-04 Matthew Allum * 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. 2006-12-27 Emmanuele Bassi * clutter/clutter-stage.[ch]: * clutter/clutter-event.[ch]: Revert changes; this is what happens when you keep old tree around. 2006-12-27 Emmanuele Bassi * clutter/clutter-color.h: * clutter/clutter-color.c: Add clutter_color_to_string(), which creates a hex-encoded color string from a ClutterColor. 2006-12-20 Matthew Allum * NEWS: Add some missing improvements. 2006-12-17 Emmanuele Bassi * clutter/clutter-label.c: Remove some gtk-isms; always take a reference before calling g_object_notify(), as the object might get disposed while calling the closures inside the notify queue; notify the changes of the ellipsize property. 2006-12-14 Emmanuele Bassi * clutter/clutter-color.h: * clutter/clutter-color.c: Expose clutter_color_copy() and clutter_color_free() for the python bindings, so that they can manager the conversion automatically; use the slice allocator when copying/freeing a ClutterColor. 2006-12-13 Emmanuele Bassi * clutter/clutter-color.h: * clutter/clutter-color.c: Add clutter_color_equal(), a function for comparing two colors. * clutter/clutter-rectangle.c: (clutter_rectangle_set_color), (clutter_rectangle_set_border_color): Unset the border if the color of the rectangle and the color of the border are the same. 2006-12-13 Emmanuele Bassi * 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 Matthew Allum * clutter/clutter-actor.c: (clutter_actor_class_init): Allow actor x,y props to be negative. 2006-12-12 Emmanuele Bassi 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-08 Matthew Allum * clutter.doap: Put release date in correct format. 2006-12-08 Emmanuele Bassi * clutter/clutter-behaviour.h: Add a function prototype for the foreach function: we need something more specific than GFunc; add clutter_behaviour_get_actors(), used to get a list of the actors. * clutter/clutter-behaviour.c: Add debugging notes; add a warning for behaviour implementations missing the alpha_notify vfunc; add api documentation * clutter/clutter-behaviour-opacity.c: * clutter/clutter-behaviour-path.c: * clutter/clutter-behaviour-scale.c: Reimplement the alpha_notify functions using the new foreach function and, where possible, by directly iterating on the actors: this shaves off the number of recalculations of the property/alpha values, and the number of functions. 2006-12-05 Emmanuele Bassi * clutter/clutter-rectangle.c: Forgot to set the pencil color. 2006-12-05 Emmanuele Bassi * behave.c: Add test for clutter_color_parse(). 2006-12-05 Emmanuele Bassi * clutter/clutter-event.c: Move the apidoc out. 2006-12-05 Emmanuele Bassi * clutter/clutter-color.h: * clutter/clutter-color.c: Add clutter_color_parse(), which parses a string containing a color definition as understood by XParseColor() (or pango_color_parse()). 2006-12-04 Emmanuele Bassi Avoid clutter segfaulting when used without invoking clutter_init(). This is needed when using api documentation tools and every other tool relying on the GObject introspection API (esp. on a headless box). see the note in clutter/clutter-feature.c:clutter_feature_init for a full explanation. * clutter/clutter-feature.c: Call clutter_feature_init() when needed by one of the accessors of the features structure. * clutter/clutter-main.c: * clutter/clutter-private.h: Remove clutter_feature_init() public declaration: the features support check is done the first time a feature is needed. * clutter/clutter-main.c: Do not ever access the clutter main context pointer directly; instead, obtain a pointer to it via clutter_context_get_default(), which will always return something valid. 2006-12-04 Emmanuele Bassi * 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-03 Emmanuele Bassi * clutter/clutter-texture.h: Clean up. * clutter/clutter-texture.c: Typo fix in the name of ClutterTextureTileDimension. * clutter/clutter-behaviour.c: Allow passing NULL to clutter_behaviour_set_alpha() (as we pass NULL in the finalize process). 2006-12-02 Emmanuele Bassi * clutter/clutter-version.h.in: Fix a stupid logic error in the CHECK_VERSION macro. 2006-11-30 Matthew Allum * clutter.doap: Updates 2006-11-30 Emmanuele Bassi * clutter/clutter-stage.h: * clutter/clutter-stage.c: (clutter_stage_swap_buffers): Remove, as the same is done via clutter_redraw() and clutter_actor_queue_redraw(). (clutter_stage_unrealize), (clutter_stage_init), (clutter_stage_set_xwindow_foreign): Do not call XDestroyWindow() on the stage Window if we are using a foreign Window, as we don't control its lifetime. 2006-11-30 Emmanuele Bassi * Makefile.am: Remove the gtk directory from the SUBDIRS. * clutter/clutter-stage.h: * clutter/clutter-stage.c: Add clutter_stage_swap_buffers(), which swaps the GL buffers. This fixes the redraw in the GTK widget. 2006-11-29 Emmanuele Bassi * clutter/clutter-stage.c: (clutter_stage_set_xwindow_foreign): Add checks; remove an indirection to the private data. 2006-11-29 Emmanuele Bassi * gtk/* * configure.ac: * Makfile.am: Remove the GTK+ widget from the main tree; now Clutter depends just on GLib, XLibs, GdkPixbuf and OpenGL. 2006-11-29 Matthew Allum * clutter/clutter-stage.c: (clutter_stage_realize): Set colormap on stage window - should fix issues with indirect rendering. 2006-11-23 Matthew Allum * clutter/clutter-debug.h: Fix small macro typo. 2006-11-22 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-alpha.c: * clutter/clutter-behaviour-opacity.c: * clutter/clutter-behaviour-scale.c: * clutter/clutter-clone-texture.c: * clutter/clutter-feature.c: * clutter/clutter-label.c: * clutter/clutter-main.c: * clutter/clutter-stage.c: * clutter/clutter-texture.c * clutter/clutter-timeline.c: * clutter/clutter-debug.h: Make CLUTTER_NOTE() just take a string rather than a func. Add more default context to output. * configure.ac: Fix flag and add more help docs for --ebable-debug option. 2006-11-21 Emmanuele Bassi * clutter/clutter-main.c: Add a --g-fatal-warnings switch for abort()-ing on warnings and criticals. 2006-11-21 Emmanuele Bassi * configure.ac: Enable debug messages also when --enable-debug is set to "minimum". * clutter/Makefile.am: * clutter/clutter-debug.h: Move all debugging macros inside this private header; make all debug macros depend on the CLUTTER_ENABLE_DEBUG compile time define, controlled by the --enable-debug configure switch; add G_LOG_DOMAIN define. * clutter/clutter-main.c: Clean up the debug stuff; add command line argument parsing using GOption; the debug messages now are triggered like this: CLUTTER_DEBUG=section:section:... clutter-app or like this: clutter-app --clutter-debug=section:section:... where "section" is one of the sections listed in clutter-main.c, or "all", for all sections; each section is bound to a flag, which can be used to define a domain when adding a debug note using the CLUTTER_NOTE() macro; the old CLUTTER_DBG() macro is just a wrapper around that, under the CLUTTER_DEBUG_MISC domain; CLUTTER_NOTE() is used like this: CLUTTER_NOTE (DOMAIN, log-function); where log function is g_printerr(), g_message(), g_warning(), g_critical() or directly g_log() - for instance: CLUTTER_NOTE (PANGO, g_warning ("Cache miss: %d", glyph)); will print the warning only if the "pango" flag has been set to the CLUTTER_DEBUG envvar or passed to the --clutter-debug command line argument. similar to CLUTTER_SHOW_FPS, there's also the --clutter-show-fps command line switch; also, the --display and --screen command line switches have been added: the first overrides the DISPLAY envvar and the second controls the X screen used by Clutter to get the root window on the display. * clutter/clutter-main.h: * clutter/clutter-main.c: Add extended support for GOption in Clutter; use clutter_init_with_args() to let Clutter parse your own command line arguments; use instead clutter_get_option_group() to get the GOptionGroup used by Clutter if you want to do the parsing yourself with g_option_context_parse(). The init sequence has been verified, updated and moved into common functions where possible. * clutter/pango/pangoclutter-render.c: * clutter/*.c: Include "clutter-debug.h" where needed; use CLUTTER_NOTE() instead of CLUTTER_DBG(). * examples/super-oh.c: Use the new clutter_init_with_args() function, and add a --num-hands command line switch to the SuperOH example code controlling the number of hands at runtime. 2006-11-21 Emmanuele Bassi * configure.ac: Rename G_ENABLE_DEBUG to CLUTTER_ENABLE_DEBUG. 2006-11-20 Emmanuele Bassi * clutter/clutter-rectangle.h: * clutter/clutter-rectangle.c: Add border to the ClutterRectangle actor; add "border-width", "border-color" and "has-border" properties, plus their accessors. The border generation code is pretty lame, at the moment. * examples/behave.c: Add code to test the new rectangle properties. 2006-11-20 Matthew Allum * clutter.doap: Add an initial DOAP file to project 2006-11-20 Emmanuele Bassi * clutter/Makefile.am: * clutter/clutter.h: * clutter/clutter-version.h.in: Auto-generated versioning macros. * clutter/clutter-actor.h: * clutter/clutter-actor.c: Add a ClutterActor::parent-set signal, for notificating changes of an actor's parent; add api-doc for the actor's properties; add the ClutterActor "name" property; clean up a bit some functions; emit the "parent-set" signal when setting te parent and when unparenting; better warnings when lowering and raising an actor. * configure.ac: * clutter/Makefile.am: Add a --enable-debug configure option, with three levels of debugging: no, minimum and yes; default for development releases (odd minor version) is "yes"; update the version m4 defines; update the libtool macros: now just changed the clutter_interface_age when releasing will update everything else. 2006-11-17 Emmanuele Bassi * clutter/clutter-behaviour-path.h: * clutter/clutter-behaviour-path.c: Add "since" strings; add a "knot" property which can be used to append a knot to the path; fix apidoc. * clutter/clutter-alpha.c: Add "since" strings. * clutter/clutter-feature.c: Add apidoc. * clutter/clutter-behaviour-opacity.c: Add the "opacity-start" and "opacity-end" properties; rewrite constructor to use them. 2006-11-17 Emmanuele Bassi * clutter/clutter-behaviour-path.h: * clutter/clutter-behaviour-path.c: Add a "knot-reached" signal, which is emitted when the path reaches a node in the nodes list; flesh out the documentation a bit; sync the parameters names so that gtk-doc doesn't complain about missing stuff. * clutter/clutter-behaviour.h: * clutter/clutter-behaviour.c: Add the alpha value to the ClutterBehaviour::alpha_notify vfunc, so you don't have to get the value from the alpha inside the behaviour implementations; add more documentation. * clutter/clutter-alpha.c: Flesh out the description. * clutter/clutter-actor.h: Update the header. * clutter/clutter-behaviour-opacity.c: * clutter/clutter-behaviour-scale.c: Update docs. 2006-11-17 Matthew Allum * clutter/clutter-alpha.c: * clutter/clutter-behaviour-opacity.c: More docs. * clutter/clutter-behaviour-path.h: * clutter/clutter-behaviour-path.c: More docs, add clutter_behaviour_path_insert_knot(), clutter_behaviour_path_remove_knot() * clutter/clutter-behaviour-scale.h: * clutter/clutter-behaviour-scale.c: More docs, add clutter_behaviour_scale_newx() taking fixed values. * clutter/Makefile.am: * clutter/pango/Makefile.am: Fix linking warning. 2006-11-15 Matthew Allum * clutter/clutter-actor.h: * clutter/clutter-actor.c: Add new API clutter_actor_move_by(), clutter_actor_get_size() * clutter/clutter-alpha.c: * clutter/clutter-alpha.h: Add clutter alpha sine func * clutter/clutter-behaviours.h: * clutter/clutter-behaviours.c: Add a basic scale behaviour (needs work) * examples/behave.c: (main): More playing with new behaviour functionality * clutter/clutter-feature.c: * clutter/clutter-feature.h: * clutter/clutter-main.c: Add new experimental sync to vblank code Set env CLUTTER_VBLANK=none to disable. 2006-11-16 Emmanuele Bassi * clutter/clutter-private.h: * clutter/clutter-actor.c: Implement the defined clutter_actor_reparent() method; call unrealize when unparenting an actor. 2006-11-15 Emmanuele Bassi * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: Add a data parameter to the ClutterAlphaFunc; add a data+destroy parameter to clutter_alpha_set_func() and to clutter_alpha_new(), and turned the latter into clutter_alpha_new_full(); add a simple, empty constructor clutter_alpha_new(). These changes makes writing bindings a tad more easy, as bindings require passing their own functions in order to call the real alpha function. * clutter/clutter-behaviour.h: Clean up the header. * clutter/clutter-behaviours.[ch]: * clutter/clutter-behaviour-opacity.[ch]: * clutter/clutter-behaviour-path.[ch]: * clutter/clutter-behaviour-scale.[ch]: Split the ClutterBehaviourPath, ClutterBehaviourOpacity and ClutterBehaviourScale into their own files as they have been growing a bit. Fix ClutterBehaviourPath API. * clutter/clutter-media.h: Remove the commented "metadata_available" signal: gtk-doc chokes up on that. * clutter/clutter-timeline.h: * clutter/clutter-timeline.c: Remove the useless ClutterTimelineAlphaFunc signature; add missing accessor methods for the properties; clean up a bit. * clutter/clutter-util.h: * clutter/clutter-util.c: Remove unneeded function clutter_util_can_create_texture(). * clutter/clutter-feature.h: Sync the name of clutter_feature_get_all() with the name declared in clutter-feature.h. * clutter/Makefile.am: * clutter/clutter.h: Update. * examples/behave.c: Update to the new ClutterAlpha constructor. * examples/super-oh.c: Use the right pointer and avoid the compiler making a fuss about it. 2006-11-15 Matthew Allum * clutter/clutter-actor.h: * clutter/clutter-actor.c: Add new API clutter_actor_move_by(), clutter_actor_get_size() * clutter/clutter-alpha.c: * clutter/clutter-alpha.h: Add clutter alpha sine func * clutter/clutter-behaviours.h: * clutter/clutter-behaviours.c: Add a basic scale behaviour (needs work) * examples/behave.c: (main): More playing with new behaviour functionality * clutter/clutter-feature.c: * clutter/clutter-feature.h: * clutter/clutter-main.c: Add new experimental sync to vblank code Set env CLUTTER_VBLANK=none to disable. 2006-11-15 Emmanuele Bassi * clutter/clutter-alpha.h: * clutter/clutter-alpha.c: ClutterAlpha is an initially floating object, as it makes sense only when bound to a ClutterBehaviour; add checks for public API. * clutter/clutter-behaviour.h: * clutter/clutter-behaviour.c: Remove the ClutterBehaviour constructor: ClutterBehaviour is an abstract class which must be implemented by subclassing; add checks for public API; unref the actors on finalize; sink the ClutterAlpha object. * clutter/clutter-behaviours.h: ClutterKnot is a boxed type: add the _get_type() function declaration and the type macro. 2006-10-23 Matthew Allum * clutter/clutter-alpha.h: * clutter/clutter-behaviour.c: * clutter/clutter-behaviour.h: * clutter/clutter-behaviours.c: * clutter/clutter-behaviours.h: * examples/behave.c: Behaviours now only 'driven' by ClutterAlpha, not any object/prop. Add simple Clutter path behaviour. 2006-10-03 Matthew Allum * configure.ac: * clutter/Makefile.am: * clutter/clutter-actor.c: * clutter/clutter-label.c: * clutter/clutter-label.h: * clutter/pango/Makefile.am: * clutter/pango/pangoclutter-font.c: * clutter/pango/pangoclutter-fontmap.c: * clutter/pango/pangoclutter-private.h: * clutter/pango/pangoclutter-render.c: * clutter/pango/pangoclutter.h: Add initial rough new pango renderer and clutter-label. * examples/super-oh.c: * examples/test.c: Minor fixups 2006-09-20 Matthew Allum * clutter/clutter-actor.c: (clutter_actor_paint): * clutter/clutter-clone-texture.c: (clutter_clone_texture_paint): * clutter/clutter-group.c: (clutter_group_paint): * clutter/clutter-rectangle.c: (clutter_rectangle_paint): * clutter/clutter-texture.c: (clutter_texture_paint): Fix for #156. clutter_actor_paint() now translates to actor position as to not fix scaled groups positioning. Sub classes now paint at 0,0. 2006-09-19 Matthew Allum * clutter/clutter-actor.c: (redraw_update_idle), (clutter_actor_queue_redraw): * clutter/clutter-main.c: (clutter_redraw): Remove now uneeded locks ( new gst and texture code makes redundant ) * clutter/clutter-texture.c: * clutter/clutter-texture.h: Redo clutter texture as to not keep a reference to underlying texture. 2006-09-15 Matthew Allum More fixes from Bastien Nocera (#155): * clutter/clutter-main.c: (clutter_init): * clutter/clutter-main.h: Add an enum for clutter init to return an error code. * configure.ac: Dont check for XInitThreads, there is no need, its part of xlib. 2006-09-14 Matthew Allum Various fixes from Bastien Nocera: * clutter/clutter-event.h: * clutter/clutter-stage.c: (clutter_stage_unrealize), (clutter_stage_realize), (clutter_stage_request_coords), (clutter_stage_dispose), (clutter_stage_init): * clutter/clutter-stage.h: * gtk/gtk-clutter-test.c: (input_cb), (frame_cb), (main): * gtk/gtk-clutter.c: (realize): Misc fixes (#152) * clutter/clutter-group.c: (clutter_group_remove): Remove uneeded ref count (#143) * examples/super-oh.c: (input_cb): Handle key release rather than presses (#154) * configure.ac: Add old style X libs check when x11.pc unavailable (#101) 2006-09-01 Matthew Allum * clutter/Makefile.am: * clutter/clutter-media.c: * clutter/clutter-media.h: * clutter/clutter.h: Re-add clutter media. 2006-08-31 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-group.c: (clutter_group_paint), (clutter_group_request_coords), (clutter_group_allocate_coords), (clutter_group_add): Fix some group sizing/positioning issues. 2006-08-30 Jorn Baayen * clutter.pc.in: Remove gstreamer deps. 2006-08-30 Jorn Baayen * README: * clutter/Makefile.am: * clutter/clutter-audio.c: * clutter/clutter-audio.h: * clutter/clutter-main.c: (clutter_init): * clutter/clutter-media.c: * clutter/clutter-media.h: * clutter/clutter-video-texture.c: * clutter/clutter-video-texture.h: * clutter/clutter.h: * configure.ac: * examples/Makefile.am: * examples/README: * examples/video-cube.c: * examples/video-player.c: * gst/Makefile.am: * gst/clutterimagesink.: * gst/clutterimagesink.c: * gst/clutterimagesink.h: * gtk/Makefile.am: Remove gstreamer bits. There live in clutter-gst now. 2006-08-30 Jorn Baayen * clutter/Makefile.am: * clutter/clutter-audio.c: * clutter/clutter-audio.h: * clutter/clutter.h: Added ClutterAudio audio playback object. 2006-08-29 Matthew Allum * clutter/clutter-fixed.h: Add basic fixed point utility defines and type. * clutter/Makefile.am: * clutter/clutter-actor.c: * clutter/clutter-actor.h: * clutter/clutter-group.c: * clutter/clutter-stage.c: * examples/super-oh.c: (main): Add scale API and functionality. Rework group sizing. Now group size requests have no effect but can be scaled. 2006-08-29 Jorn Baayen * clutter/clutter-behaviour.c: (_clutter_behaviour_finalize), (_clutter_behaviour_set_property), (_clutter_behaviour_get_property), (clutter_behaviour_class_init), (clutter_behaviour_init), (clutter_behaviour_apply), (clutter_behaviour_remove), (clutter_behaviour_remove_all), (clutter_behaviour_actors_foreach): * clutter/clutter-behaviour.h: * clutter/clutter-behaviours.c: (clutter_behaviour_property_change), (clutter_behaviour_opacity_dispose), (clutter_behaviour_opacity_finalize), (clutter_behaviour_opacity_class_init), (clutter_behaviour_opacity_init): * clutter/clutter-behaviours.h: * clutter/clutter-marshal.list: * examples/behave.c: (main): Behaviours track generic GObject properties. * clutter/clutter-video-texture.h: Remove signal prototypes - they are already specified in clutter-media.h. 2006-08-28 Jorn Baayen * clutter/Makefile.am: * clutter/clutter-alpha.c: * clutter/clutter-alpha.h: * clutter/clutter-behaviours.c: (clutter_behaviour_opacity_dispose), (clutter_behaviour_opacity_init), (clutter_behaviour_opacity_frame_foreach), (clutter_behaviour_opacity_frame): * clutter/clutter-behaviours.h: * clutter/clutter-timeline.c: (clutter_timeline_class_init): * clutter/clutter-timeline.h: * clutter/clutter.h: * examples/behave.c: (main): Separate alpha calculation into its own class. * clutter/clutter-behaviour.c: (clutter_behaviour_set_timelime): Correct NULL check. 2006-08-15 Matthew Allum * clutter/clutter-behaviour.h: Behaviours shouldn't subclass timelines. 2006-08-15 Matthew Allum * clutter/clutter-behaviour.c: * clutter/clutter-behaviour.h: * clutter/clutter-behaviours.c: * clutter/clutter-timeline.c: * clutter/clutter-timeline.h: * clutter/clutter.h: Make basic behaviour infrastructure actually work. * examples/Makefile.am: * examples/behave.c: Add a simple behaviour demo/test * clutter/clutter-media.c: (clutter_media_set_volume): Actuall set volume rather than position.. (Fixes #141) 2006-08-14 Matthew Allum * clutter/Makefile.am: * clutter/clutter-behaviour.c: * clutter/clutter-behaviour.h: * clutter/clutter-behaviours.c: * clutter/clutter-behaviours.h: * clutter/clutter-timeline.c: * clutter/clutter-timeline.h: Add very initial new behaviour functionality. * clutter/clutter-stage.c: * clutter/clutter-main.c: * clutter/clutter-actor.c: Improve clipping using stencil test rather than scissor check. ( Should now handle rotated clips etc ). * clutter/clutter-group.c: (clutter_group_paint): Fix typo on position check. 2006-08-07 Matthew Allum * clutter/clutter-video-texture.c: (lay_pipeline): Set quality of service prop on fakesink to TRUE. 2006-08-07 Matthew Allum * clutter/clutter-actor.c: (clutter_actor_paint): Remove relic from old stage behaviour - dont unref it during a clip. 2006-07-27 Emmanuele Bassi * clutter/clutter-feature.c: No need to call clutter_feature_init() each time: it's private and should never be seen from the outside; add a warning, just in case something screws up and calls it more than once. 2006-07-27 Emmanuele Bassi * clutter/clutter-private.h: Move clutter_feature_init() declaration here: you shouldn't even need to initialise features yourself. * clutter/clutter-feature.c: call clutter_feature_init() each time you try to access the feature list; add a static lock around the feature flags container; add api documentation. * clutter/clutter-feature.h: Add a type for the feature flags to make bindings happy. 2006-07-24 Matthew Allum * clutter/Makefile.am: * clutter/clutter-feature.c: * clutter/clutter-feature.h: Add new funcs for checking for available runtime GL extensions. * clutter/clutter-clone-texture.c: * clutter/clutter-texture.c: Add support for non power of two textures if GL_TEXTURE_RECTANGLE_ARB extension available ( at runtime ). Should lower texture memory needs a little. 2006-07-17 Emmanuele Bassi * clutter/clutter-stage.c (clutter_stage_get_default): Fix api documentation. 2006-07-15 Emmanuele Bassi * clutter/clutter-main.c: (clutter_main): Destroy the main stage, instead of unreffing it. (clutter_init): Ref and sink the main stage, as it is a top level actor. * clutter/clutter-stage.c (clutter_stage_unrealize): Access the Window private member directly, instead of calling the get_xwindow method. * examples/test.c (main): Quit on button press. 2006-07-09 Emmanuele Bassi * clutter/clutter-event.h: Change the name of the ClutterEvent union members to something a little shorter. 2006-07-06 Emmanuele Bassi * configure.ac: Remove the python stuff, now that the bindings are out of tree. 2006-07-06 Emmanuele Bassi * configure.ac: Mark this as 0.1.1, and change the version info of the library. * clutter/clutter-actor.c: * clutter/clutter-group.c: Fix documentation. 2006-07-06 Emmanuele Bassi * clutter/clutter-actor.h: * clutter/clutter-actor.c: (clutter_actor_class_init), (clutter_actor_set_property), (clutter_actor_get_property): Add the "clip" and "has-clip" properties. (clutter_actor_set_clip), (clutter_actor_remove_clip): Emit the notification for the changed properties. (clutter_actor_has_clip): Simple accessor to the "has-clip" property. 2006-07-06 Emmanuele Bassi Big rework of the actor management semantics: now ClutterActor objects behave like GtkObjects - that is they have an initial "floating" reference that gets "sunk" when they are added to a ClutterGroup. This makes a group responsible of de-allocating each actor inside it, so you just have to destroy the group to get every child actor destroyed. Also, now you can do: clutter_group_add (group, clutter_video_texture_new ()); without having to care about reference counting and explicit unreffing. * clutter/clutter-private.h: Add private flags setter and getter macros. * clutter/clutter-actor.h: * clutter/clutter-actor.c: Clean up; inherit from GInitiallyUnowned; add a "visible" property; add the "destroy", "show" and "hide" signals to ClutterActorClass. (clutter_actor_show), (clutter_actor_hide): Refactor a bit; emit the "show" and "hide" signals. (clutter_actor_set_property), (clutter_actor_get_property), (clutter_actor_class_init): Implement the "visible" property; add signals. (clutter_actor_finalize): Do not leak the actor's name, if it is set. (clutter_actor_dispose): Emit the "destroy" signal here. (clutter_actor_init): Sink the initial floating flag if needed. (clutter_actor_destroy): Add a function to explicitely destroy a ClutterActor. (clutter_actor_set_parent), (clutter_actor_get_parent), (clutter_actor_unparent): Make set_parent require a valid parent; add unparent; check on get_parent; ref_sink the actor when setting its parent and unref it when unsetting it. Probably we'll need a function that does reparenting as unparent+set_parent in a single shot. * clutter/clutter-group.h: * clutter/clutter-group.c (clutter_group_dispose), (clutter_group_finalize), (clutter_group_add), (clutter_group_remove): Make the group destroy its children when disposing it; clean up, and use the newly-available clutter_actor_unparent(). * clutter/clutter-stage.h: * clutter/clutter-stage.c (clutter_stage_init): ClutterStage is a top-level actor; clean up. * clutter/clutter-video-texture.h: * clutter/clutter-video-texture.c: Clean up. * examples/super-oh.c: * examples/test.c: * examples/video-player.c: * examples/test-text.c: * examples/video-cube.c: Remove the g_object_unref() call, as the ClutterStage object is destroyed on clutter_main_quit(). 2006-06-23 Matthew Allum * examples/super-oh.c: Remove random stage unref fixing trails. Fixes #98 2006-06-23 Matthew Allum * examples/video-player.c: (size_change): cast stage height to gint avoiding wierdness for when video height greater than half display height. Fixed #99 2006-06-23 Matthew Allum * clutter/clutter-video-texture.c: (clutter_video_texture_new): Small fix for video playback on Big Endian. See #97 2006-06-23 Iain Holmes * clutter/clutter-texture.h: Add space :) Sorry. 2006-06-23 Iain Holmes * clutter/clutter-label.h: * clutter/clutter-group.h: * clutter/clutter-rectangle.h: * clutter/clutter-video-texture.h: * clutter/clutter-event.h: * clutter/clutter-texture.h: Fix the header layout so that C# parser can understand everything. 2006-06-23 Ross Burton * configure.ac: * Makefile.am: Remove references to bindings/, it's moved. 2006-06-23 Emmanuele Bassi * clutter/clutter-group.c (clutter_group_get_children): Mention that you must free the returned list otherwise you'll leak stuff all around. 2006-06-23 Ross Burton * examples/super-oh.c: Fix build with trails enabled. Still crashes. 2006-06-23 Ross Burton * configure.ac: Disable static libraries. 2006-06-22 Matthew Allum * web/index.html: Make OpeneHand link 2006-06-22 Matthew Allum * web/index.html: Add Pango ref, authors info. ========== 2006-06-22 0.1 Release ===================== 2006-06-22 Matthew Allum * configure.ac: * web/index.html: Correct Bugzilla link. Add debs link Bump up version to 0.1 ! 2006-06-22 Matthew Allum * NEWS: Add an entry for 0.1 release * web/index.html: * web/style.css: Add basic website. 2006-06-22 Iain Holmes * clutter/clutter-main.c: Guess what...more docs 2006-06-22 Iain Holmes * clutter/clutter-event.c: Add docs 2006-06-22 Iain Holmes * clutter/clutter-media.c: Add docs 2006-06-22 Iain Holmes * clutter/clutter-texture.c: Fix typos. * clutter/clutter-timeline.c: Fix typos. 2006-06-22 Iain Holmes * clutter/clutter-video-texture.c: Docs. 2006-06-22 Iain Holmes * clutter/clutter-group.c: More typo fixes * clutter/clutter-event.c: Documentation 2006-06-22 Emmanuele Bassi * clutter/clutter-timeline.h: * clutter/clutter-timeline.c: Add a "started" and a "paused" signals; add more sanity checks on the public functions. (clutter_timeline_get_loop): Add a getter function for the loop property. * clutter/clutter-marshal.list: Add marshallers. * clutter/clutter-timeline.h: * clutter/clutter-actor.h: Add padding for future expansion without breaking ABI. 2006-06-22 Iain Holmes * clutter/clutter-actor.c: Fix some typos in the docs. 2006-06-22 Iain Holmes * clutter/clutter-util.c: And more 2006-06-22 Ross Burton * clutter/clutter-label.c: * clutter/clutter-video-texture.c: * clutter/clutter-texture.c: * clutter/clutter-timeline.c: * clutter/clutter-group.c: Fix gtk-doc problems. 2006-06-22 Iain Holmes * clutter/clutter-main.c: More documentation 2006-06-22 Matthew Allum * clutter/clutter-main.h: Remove bogus xvisual call. 2006-06-22 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-actor.h: Remove mirroring related calls ( unimplemented ) * gtk/gtk-clutter-test.c: 0 -> NULL 2006-06-22 Iain Holmes * clutter/clutter-actor.c: * clutter/clutter-stage.c: * gtk/gtk-clutter.c: More docs 2006-06-22 Iain Holmes * clutter/clutter-actor.c: Added some more docs. 2006-06-22 Matthew Allum * clutter/clutter-actor.c: * clutter/clutter-clone-texture.c: * clutter/clutter-color.c: * clutter/clutter-event.c: * clutter/clutter-group.c: * clutter/clutter-label.c: * clutter/clutter-main.c: * clutter/clutter-media.c: * clutter/clutter-rectangle.c: * clutter/clutter-stage.c: * clutter/clutter-texture.c: * clutter/clutter-timeline.c: * clutter/clutter-util.c: * clutter/clutter-video-texture.c: * configure.ac: Documentation updates - add section headers. 2006-06-22 Iain Holmes * gtk/gtk-clutter-test.c (main): Don't show the stage. 2006-06-22 Iain Holmes * gtk/gtk-clutter.[ch]: Rewrite to use clutter_stage_set_xwindow_foreign rather than GtkSocket. * gtk/gtk-clutter-test.c: Add fading!1!!!!11! OMGWTFBBQ!!! 2006-06-21 Emmanuele Bassi * examples/video-cube.c (main): Quit on key press. 2006-06-21 Emmanuele Bassi * clutter/Makefile.am: Re-fix distcheck after last commit. 2006-06-21 Matthew Allum * clutter/Makefile.am: Make sure clutter.h included. * clutter/clutter-stage.c: (clutter_stage_realize), (clutter_stage_get_actor_at_pos): Select for motion events on X window. Return highest rather than lowest found actor for actor_at_pos. * examples/Makefile.am: Remove test-text, remane test video. * examples/README: Add info about the included examples. * examples/test-video.c: * examples/video-player.c: Redo test-video a little nicer and rename. * examples/video-cube.c: Fix so it at least 'works' again. * examples/test.c: Clean up a little. 2006-06-21 Ross Burton * Makefile.am: * gtk/Makefile.am: Add gtk widget to distcheck and fix. 2006-06-21 Emmanuele Bassi * clutter/Makefile.am: * bindings/python/Makefile.am: * Makefile.am: Fix distcheck 2006-06-21 Ross Burton * clutter/Makefile.am: * examples/Makefile.am: Fix dist. 2006-06-20 Matthew Allum * TODO: Update. * clutter/clutter-group.c: Attempt better group sizing code. * clutter/clutter-label.c: Minor tweaks. * clutter/clutter-texture.c: More debug info, make sure texture is realised for base_size() * clutter/clutter-video-texture.c: Seeking fixes * examples/test.c: (main): Populate with more randomness. 2006-06-15 Matthew Allum * clutter/clutter-stage.c: * clutter/clutter-stage.h: Add clutter_stage_set_xwindow_foreign() call * clutter/clutter-util.c: * clutter/clutter-util.h: Add some X error traps * examples/super-oh.c: Toy with us of new clutter_stage_set_xwindow_foreign() for optional screensaver functionality. 2006-06-14 Matthew Allum * configure.ac: Add checks for GL/gl.h and GL/glx.h 2006-06-14 Matthew Allum * AUTHORS: * README: * TODO: Update all. 2006-06-13 Matthew Allum * clutter/clutter-video-texture.c: Add missing license. 2006-06-13 Matthew Allum * clutter/Makefile.am: * clutter/clutter-actor.c: * clutter/clutter-actor.h: * clutter/clutter-clone-texture.c: * clutter/clutter-clone-texture.h: * clutter/clutter-element.c: * clutter/clutter-element.h: * clutter/clutter-group.c: * clutter/clutter-group.h: * clutter/clutter-label.c: * clutter/clutter-label.h: * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-rectangle.c: * clutter/clutter-rectangle.h: * clutter/clutter-stage.c: * clutter/clutter-stage.h: * clutter/clutter-texture.c: * clutter/clutter-texture.h: * clutter/clutter-video-texture.c: * clutter/clutter-video-texture.h: * clutter/clutter.h: * examples/super-oh.c: * examples/test-text.c: * examples/test-video.c: * examples/test.c: * examples/video-cube.c: * gtk/gtk-clutter-test.c: * gtk/gtk-clutter.c: * gtk/gtk-clutter.h: Element to Actor Renaming. 2006-06-12 Matthew Allum * clutter/Makefile.am: * clutter/clutter-media.c: * clutter/clutter-media.h: * clutter/clutter-video-texture.c: * clutter/clutter-video-texture.h: * clutter/clutter.h: * examples/test-video.c: (main): * examples/video-cube.c: (main): Add new 'media' interface. Drop Totem based video playback code replace with newly rewritten supper Jorn based code. Clutter is now fully LGPL. * clutter/clutter-texture.c: (tile_dimension): Remove uneeded overlap code. 2006-06-08 Iain Holmes * clutter/clutter-texture.c: Opps, undo change I didn't mean to commit 2006-06-08 Iain Holmes * configure.ac: Add gdk-pixbuf-xlib cflags/libs to clutter libs Build the gtk-clutter.pc file. * clutter.pc.in: Add the gdk-pixbuf-xlib depends. * gtk/gtk-clutter.pc.in: pkg-config stuff for gtk-clutter * gtk/Makefile.am: Install gtk-clutter.pc 2006-06-08 Matthew Allum * clutter/clutter-main.c: * clutter/clutter-private.h: * clutter/clutter-stage.c: Rework and fix offscreen rendering, also rejig GLX context handling, moving mostly into stage. Require at least OpenGL 1.2 ( CLAMP_TO_EDGE ) * clutter/clutter-texture.c: Explicity set props on _init() as to avoid nasty can_create bug failing miserably in certain situations. Switch to CLAMP_TO_EDGE for textures to avoid tile seams. Add some more GL error checks. * clutter/clutter-label.c: Extra debug info * configure.ac: Require gdk-pixbuf-xlib-2.0 2006-06-06 Matthew Allum * configure.ac: Use pkg-config to check for X. Really Check for GL libs. Make gtk binding optional. Cleanup a little. * Makefile.am: * gtk/Makefile.am: Make gtk binding optional * clutter/clutter-element.c: Cleanup a little, notify on size change. * clutter/clutter-texture.c: Lots of cleanups. Add waste prop. Add filter quality prop. * clutter/clutter-clone-texture.c: Make object construction simpler to work better with bindings. * clutter/clutter-stage.c: * clutter/clutter-timeline.c: Minor reformating, cleanups. * examples/test-text.c: (main): Random experimentation 2006-06-06 Iain Holmes * gtk/gtk-clutter.c (size_request): Take the size of the widget from the ClutterStage. (gtk_clutter_class_init): Hook up size-request 2006-06-06 Iain Holmes * gtk/: Add a gtk widget for clutter. * configure.ac: Add GTK checks * Makefile.am: Go into gtk/ 2006-06-05 Matthew Allum * clutter/clutter-group.c: (clutter_group_remove): Fix parent check. 2006-06-05 Matthew Allum * clutter/clutter-event.h: Remove send_event field. Clutter shouldn't need it. * clutter/clutter-main.c: (clutter_dispatch_x_event): Dont malloc a new clutter event for each xevent. * clutter/clutter-stage.h: * clutter/clutter-stage.c: (clutter_stage_class_init), (clutter_stage_get_default): Dont ref stage from clutter_stage_get_default. * examples/super-oh.c: (main): Remove some now uneeded debug g_prints 2006-06-05 Emmanuele Bassi * clutter-color.h: * clutter-color.c: Reimplement ClutterColor as a boxed type; add convenience API for color handling, like: add, subtract, shade, HSL color-space conversion, packing and unpacking. * clutter-private.h: Update ClutterMainContext, and export the main context pointer here. * clutter-rectangle.h: * clutter-rectangle.c: Update the color-related code; make clutter_rectangle_new() and empty constructor and provide clutter_rectangle_new_with_color(); provide color setter and getter API. * clutter-label.h: * clutter-label.c: Rename the "font" property to "font-name"; update the color-related code to the new ClutterColor object; rename clutter_label_new() to clutter_label_new_with_text(), and add setters and getters for the properties. * clutter-marshal.list: Add VOID:OBJECT and VOID:BOXED marshallers generators. * clutter-stage.h: * clutter-stage.c: Rework the API: provide a default constructor for a singleton object, named clutter_stage_get_default(), which supercedes the clutter_stage() function in clutter-main; provide new events: button-press-event, button-release-event, key-press-event and key-release-event; update the color-related code; (clutter_stage_snapshot): Allow negative width and height when taking a snapshot (meaning: use full width/height). (clutter_stage_get_element_at_pos): Rename clutter_stage_pick(). * clutter-element.c (clutter_element_paint): Clean up the stage and color related code. * clutter-event.h: * clutter-event.c: Add generic ClutterAnyEvent type; add clutter_event_new(), clutter_event_copy() and clutter_event_free(); make ClutterEvent a boxed type. * clutter-main.h: * clutter-main.c: Remove clutter_stage(); add clutter_main_quit(), for cleanly quitting from clutter_main(); add multiple mainloops support; allocate the ClutterCntx instead of adding it to the stack; re-work the ClutterEvent dispatching. * clutter-group.c (clutter_group_add), (clutter_group_remove): Keep a reference on the element when added to a ClutterGroup. * examples/rects.py * examples/test.c: * examples/test-text.c: * examples/video-cube.c: * examples/super-oh.c: * examples/test-video.c: Update. 2006-06-04 Matthew Allum * clutter/clutter-element.c: * clutter/clutter-group.c: * clutter/clutter-group.h: Work more on depth ( Z ) setting with sorting. * clutter/clutter-main.c: (clutter_redraw): Experiment with glXWaitVideoSyncSGI. Currently disabled. 2006-06-02 Matthew Allum * clutter/clutter-element.h: Add missing _depth() declarations * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter-stage.c: * clutter/clutter-stage.h: Rejig GL setup as for stage to support an offscreen property. Offscreen support is however a little borked. 2006-06-01 Matthew Allum * clutter/clutter-element.c: Fix a snafu in clutter_element_raise () * clutter/clutter-timeline.c: * clutter/clutter-timeline.h: Add new clutter_timeline_is_playing() method 2006-05-29 Matthew Allum * clutter/clutter-color.c: (clutter_color_set): Fix bit shifts in clutter color setters. 2006-05-29 Matthew Allum * clutter/clutter-element.c: * clutter/clutter-element.h: Add initial new element depth() getter and setter. * clutter/clutter-group.c: * clutter/clutter-group.h: Add 2 new methods for listing a groups children externally. 2006-05-27 Emmanuele Bassi * clutter/clutter-clone-texture.c (set_parent_texture), (clutter_clone_texture_set_property), (clutter_clone_texture_get_property), (clutter_clone_texture_class_init), (clutter_clone_texture_new): Add a "parent-texture" constructor-only property to simplify the constructor code. * clutter/clutter-rectangle.c (clutter_rectangle_new): * clutter/clutter-timeline.c (clutter_timeline_new): Simplify the constructor code. * examples/rect.py: Use the new method names for clutter.main() and clutter.stage(). 2006-05-26 Emmanuele Bassi * clutter/clutter-element.c: Fix gtk-doc annotations for public functions; add sanity checks for public API; factor out some pointer dereferences. 2006-05-26 Emmanuele Bassi Big entry, small changes. * clutter/clutter-rectangle.c: * clutter/clutter-clone-texture.c: * clutter/clutter-group.c: * clutter/clutter-element.c: * clutter/clutter-label.c: Use the GObject built-in definition of a private data structure; it removes the need for managing the allocation/de-allocation of a private structure ourselves. * clutter/clutter-group.h: * clutter/clutter-label.h: Add padding, for adding signals and other class-wide definitions without breaking ABI. * clutter/clutter-element.h: * clutter/clutter-element.c (clutter_element_box_get_type), (clutter_element_box_copy): Make ClutterElementBox a GBoxed type; clean up declarations of the enums and flags. * clutter/clutter-group.h: * clutter/clutter-group.c (clutter_group_add_many_valist), (clutter_group_add_many): Add a _valist version of clutter_group_add_many() function, and re-implement the latter as a proxy for the former; language bindings do not cope well with variable argument functions. * clutter/clutter-video-texture.h: * clutter/clutter-video-texture.c: Use the right prefix for the error and for the ratio enumerations. * clutter/*.c: * clutter/*.h: * clutter/Makefile.am: Use the include path for parallel installations. * clutter/Makefile.am: * clutter/clutter-enum-types.h: * clutter/clutter-enum-types.c: Register the enumeration types inside the GObject type system in order to use them as properties and bindings automagically pick them up. * bindings/python/ChangeLog: Add a changelog for the bindings... * doc/reference/ChangeLog: ... and a changelog for the reference. * examples/test.c: * examples/video-cube.c: * examples/test-video.c: Use the header. 2006-05-25 Matthew Allum * clutter/clutter-clone-texture.c: (clone_texture_render_to_gl_quad): Remove uneeded bogus warning. Fix a typo causing large texture to get incorrectly rendered. * clutter/clutter-texture.c: (init_tiles), (texture_render_to_gl_quad), (clutter_texture_sync_pixbuf), (clutter_texture_realize): Add some new debug info. * clutter/clutter-video-texture.c: (fakesink_handoff_cb): Set the pixbuf from GST_BUFFER_DATA() a little safer. 2006-05-25 Matthew Allum * clutter.pc.in: Fix prefix snafu via Ross. 2006-05-24 Matthew Allum * clutter/clutter-element.c: (clutter_element_paint), (clutter_element_class_init): * clutter/clutter-label.c: (clutter_label_make_pixbuf): * clutter/clutter-main.c: (clutter_main): * clutter/clutter-stage.c: (sync_fullscreen), (sync_gl_viewport): * clutter/clutter-stage.h: Various minor tweaks / fixes needed by o.p.t * clutter/clutter-texture.c: (texture_render_to_gl_quad), (clutter_texture_sync_pixbuf), (clutter_texture_set_property), (clutter_texture_get_property), (clutter_texture_class_init): Experiment adding currently borked repreating textures, * clutter/clutter-timeline.c: (timeline_timeout_func), (clutter_timeline_skip): Fix timeline callback frame counting. * examples/test-video.c: (main): Experiment with repeated textures. 2006-05-23 Matthew Allum * clutter/clutter-clone-texture.h: Fix Include. * clutter/clutter-element.c: (clutter_element_set_parent): Only unref if parent non NULL * clutter/clutter-label.c: (clutter_label_class_init), (clutter_label_set_text), (clutter_label_set_font): * clutter/clutter-stage.h: Add some utility defines * clutter/clutter-texture.c: (init_tiles): * clutter/clutter-timeline.c: (clutter_timeline_class_init), (timeline_timeout_func), (clutter_timeline_get_current_frame): * clutter/clutter-timeline.h: Add a 'completed' signal Dont free priv when g_type_class_private used. * clutter/clutter.h: Add missing clutter-rectangle.h * examples/Makefile.am: * examples/super-oh.c: (main): * examples/test.c: * examples/video-cube.c: Fix includes 2006-05-22 Matthew Allum * clutter/clutter-element.c: * clutter/clutter-element.h: * clutter/clutter-event.c: * clutter/clutter-group.c: (clutter_group_remove_all): * clutter/clutter-group.h: * clutter/clutter-main.c: (translate_button_event), (translate_motion_event): Improve mouse event handling. Add code to map arbituary ( i.e cursor ) position to a clutter element using OpenGL 'picking'. * clutter/clutter-texture.c: * clutter/clutter-clone-texture.c: re-realize parent texture if it gets hidden. * clutter/clutter-stage.c: * clutter/clutter-stage.h: Make sure stage sets gl viewport up even if just default size. (clutter_texture_hide), (clutter_texture_paint): * doc/reference/Makefile.am: * examples/super-oh.c: (input_cb), (frame_cb), (main): Add test for mouse events, click to remove. 2006-05-21 Matthew Allum * clutter/clutter-element.c: * clutter/clutter-element.h: Add new core sizing methods and more documentation. * clutter/clutter-group.c: * clutter/clutter-group.h: Use the sizing bits and documentation. * clutter/clutter-main.c: * clutter/clutter-event.h: Add FPS display when CLUTTER_SHOW_FPS env var set. Add initial support for mouse events. * clutter/clutter-stage.c: Add 'snapshot' method. * clutter/clutter-texture.c: (clutter_texture_new_from_pixbuf): * clutter/clutter-texture.h: Documentation. * clutter/clutter-timeline.c: Add support for changing FPS setting on the fly. Document. * examples/super-oh.c: (frame_cb), (main): Add an optional motion trails effect. 2006-05-17 Matthew Allum * README: Add a tiny bit of info * TODO: Sync up a little * clutter/clutter-clone-texture.c: (clone_texture_render_to_gl_quad): * clutter/clutter-element.c: (clutter_element_show), (clutter_element_realize), (clutter_element_unrealize), (clutter_element_paint), (clutter_element_set_id), (clutter_element_get_id): * clutter/clutter-element.h: Rename REALISE() to REALIZE() * clutter/clutter-texture.c: (texture_render_to_gl_quad), (clutter_texture_sync_pixbuf), (clutter_texture_set_pixbuf): * clutter/clutter-video-texture.c: (query_timeout), (got_video_size), (caps_set), (parse_stream_info), (handle_element_message), (bus_message_cb), (poll_for_state_change_full), (clutter_video_texture_get_property), (clutter_video_texture_class_init), (clutter_video_texture_init), (clutter_video_texture_open), (clutter_video_texture_seek_time), (stop_play_pipeline): * clutter/clutter-video-texture.h: Move over using fakesink and handoff instead of custom element Support 3 channel pixbufs as textures and thus increase efficiency of video texture ( also avoids byte swapping. ) Clean up video texture code somemore. Add some metadata support. * Makefile.am: * configure.ac: Disable old custom clutter gst element from build. * examples/test-video.c: (foo), (size_change), (tick), (main): * examples/video-cube.c: (clutter_video_texture_cube_paint): Sink with new API. Pause on key press. 2006-05-13 Matthew Allum * clutter/clutter-element.c: (redraw_update_idle), (clutter_element_show), (clutter_element_hide), (clutter_element_realize), (clutter_element_unrealize), (clutter_element_class_init), (clutter_element_init), (clutter_element_queue_redraw), (clutter_element_set_geometry), (clutter_element_get_geometry), (clutter_element_get_coords), (clutter_element_set_position), (clutter_element_set_size), (clutter_element_get_abs_position), (clutter_element_get_width), (clutter_element_get_height), (clutter_element_get_x), (clutter_element_get_y), (clutter_element_set_opacity): * clutter/clutter-texture.c: (clutter_texture_get_base_size), (clutter_texture_bind_tile), (clutter_texture_get_n_tiles), (clutter_texture_get_x_tile_detail), (clutter_texture_get_y_tile_detail): * doc/reference/Makefile.am: * doc/reference/clutter.types: Documentation updates. 2006-05-13 Matthew Allum * clutter.pc.in: Add @MAJORMINOR@ to installed dirs. * clutter/clutter-main.c: (clutter_xscreen), (clutter_init): * clutter/clutter-main.h: * clutter/clutter-private.h: Quick fix for debug statements so now only appear if CLUTTER_DBBUG env var set. 2006-05-12 Matthew Allum * configure.ac: * Makefile.am: * clutter/Makefile.am: * bindings/python/Makefile.am: * examples/Makefile.am: * gst/Makefile.am: Clean up autofoo a bit fixing versioning. * bootstrap-autotools.sh: * clutter-1.0.pc.in: Rename. 2006-05-12 Matthew Allum * bindings/python/Makefile.am: * bindings/python/clutter.override: * clutter/Makefile.am: * clutter/clutter-bin.c: * clutter/clutter-bin.h: * clutter/clutter-element.c: (clutter_element_dispose), (clutter_element_raise), (clutter_element_lower): * clutter/clutter-group.c: * clutter/clutter-group.h: * clutter/clutter-main.c: (clutter_threads_leave): * clutter/clutter-main.h: * clutter/clutter-stage.c: (clutter_stage_class_init): * clutter/clutter-stage.h: * clutter/clutter.h: * examples/super-oh.c: (frame_cb), (main): * examples/test-text.c: (main): * examples/test-video.c: (main): * examples/test.c: (main): * examples/video-cube.c: (main): Rename clutter-bin to clutter-group 2006-05-11 Matthew Allum * clutter/clutter-clone-texture.c: (clone_texture_render_to_gl_quad), (clutter_clone_texture_paint), (clutter_clone_texture_class_init), (clutter_clone_texture_new): Fix cloning. * clutter/clutter-element.c: (clutter_element_rotate_z), (clutter_element_rotate_x), (clutter_element_rotate_y): Minor tweaks * examples/Makefile.am: * examples/super-oh.c: Add a new demo - unsing rotations and clones. 2006-05-11 Matthew Allum * bindings/python/Makefile.am: * bindings/python/clutter-base-types.defs: * bindings/python/clutter-base.defs: * bindings/python/clutter.override: Python goodiness from ebassi. - Element geometry handled nicely. - get_coords(), get_abs_position() added. * clutter/clutter-element.c: (clutter_element_rotate_x), (clutter_element_rotate_y), (clutter_element_mirror), * clutter/clutter-element.h: Add initial rotation API. Make Geometry boxed ( ebassi ) * clutter/clutter-stage.c: (sync_gl_viewport): Set depth in main world transform. * clutter/clutter-timeline.h: Add missing new() api call. * examples/test.c: (timeout_text_cb), (frame_cb), (main): Tou with some rotation 2006-05-11 Matthew Allum reviewed by: * bindings/python/Makefile.am: * bindings/python/clutter-base-types.defs: * bindings/python/clutter-base.defs: * bindings/python/clutter.override: * clutter/clutter-bin.c: (clutter_bin_paint): * clutter/clutter-element.c: (clutter_element_paint), (clutter_element_get_height), (clutter_element_get_x), (clutter_element_get_y), (clutter_element_set_opacity), (clutter_element_get_opacity), (clutter_element_set_id), (clutter_element_get_id), (clutter_element_rotate_x), (clutter_element_rotate_y), (clutter_element_mirror), (clutter_element_set_clip), (clutter_element_remove_clip), (clutter_element_set_parent), (clutter_element_get_parent), (clutter_element_raise), (clutter_element_lower), (clutter_element_raise_top), (clutter_element_lower_bottom): * clutter/clutter-element.h: * clutter/clutter-main.c: (clutter_redraw): * clutter/clutter-stage.c: (sync_gl_viewport): * clutter/clutter-timeline.h: * examples/test.c: (timeout_text_cb), (frame_cb), (main): 2006-05-09 Matthew Allum * COPYING: * clutter/clutter-bin.c: * clutter/clutter-bin.h: * clutter/clutter-clone-texture.c: * clutter/clutter-clone-texture.h: * clutter/clutter-color.c: * clutter/clutter-color.h: * clutter/clutter-element.c: * clutter/clutter-element.h: * clutter/clutter-event.c: * clutter/clutter-event.h: * clutter/clutter-keysyms.h: * clutter/clutter-label.c: * clutter/clutter-label.h: * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter-rectangle.c: * clutter/clutter-rectangle.h: * clutter/clutter-stage.c: * clutter/clutter-stage.h: * clutter/clutter-texture.c: * clutter/clutter-texture.h: * clutter/clutter-timeline.c: * clutter/clutter-timeline.h: * clutter/clutter-util.c: * clutter/clutter-util.h: Add license info. 2006-05-08 Matthew Allum * clutter/Makefile.am: * clutter/clutter-event.c: * clutter/clutter-event.h: * clutter/clutter-keysyms.h: * clutter/clutter-main.c: (clutter_dispatch_x_event): * clutter/clutter-stage.c: (clutter_stage_class_init): * clutter/clutter-stage.h: * clutter/clutter.h: * bindings/python/Makefile.am: * bindings/python/clutter.override: Add basic input event handling. Keys only atm. 2006-05-08 Matthew Allum * TODO: Sync a little. * bindings/python/Makefile.am: * bindings/python/clutter.override: Fix up so pixbufs now work ( thanks ebassi! ) Add some missing newer headers. * clutter/clutter-main.h: Remove unused clutter_queue_redraw(); 2006-05-07 Matthew Allum * clutter/clutter-element.c: (clutter_element_class_init), (clutter_element_init), (clutter_element_queue_redraw), (clutter_element_set_geometry), (clutter_element_get_geometry), (clutter_element_get_coords), (clutter_element_set_position), (clutter_element_set_size), (clutter_element_get_abs_position), (clutter_element_get_width), (clutter_element_get_height), (clutter_element_get_x), (clutter_element_get_y), (clutter_element_set_opacity): * clutter/clutter-main.c: (clutter_dispatch_x_event): * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter-stage.c: (clutter_stage_set_color): * clutter/clutter-texture.c: (clutter_texture_set_pixbuf): Rename clutter_queue_redraw -> clutter_element_queue_redraw * clutter/clutter-label.c: (clutter_label_make_pixbuf), (clutter_label_set_property), (clutter_label_set_text_extents): * clutter/clutter-label.h: Fixes to extents * examples/Makefile.am: * examples/test-text.c: Add sime test text example. 2006-05-07 Matthew Allum * clutter/clutter-label.c: (clutter_label_make_pixbuf), (clutter_label_get_property), (clutter_label_dispose), (clutter_label_class_init), (clutter_label_init), (clutter_label_new_with_text), (clutter_label_new), (clutter_label_set_text), (clutter_label_set_font), (clutter_label_set_text_extents), (clutter_label_set_fg_color): * examples/test.c: (main): Slight efficiency improvements. Add initial extents API. 2006-05-07 Matthew Allum * TODO: resync. * clutter/Makefile.am: * clutter/clutter-clone-texture.c: * clutter/clutter-clone-texture.h: Add new texture clone element. * clutter/clutter-color.c: * clutter/clutter-color.h: Add simple color API. * clutter/clutter-util.c: * clutter/clutter-util.h: Move shared texture funcs into shared util code. * clutter/clutter-texture.c: (can_create), (tile_dimension), (init_tiles), (texture_render_to_gl_quad), (clutter_texture_unrealize), (clutter_texture_sync_pixbuf), (clutter_texture_realize), (clutter_texture_show), (clutter_texture_hide), (clutter_texture_paint), (clutter_texture_finalize), (clutter_texture_set_property), (clutter_texture_get_property), (clutter_texture_class_init), (clutter_texture_init), (clutter_texture_set_pixbuf), (clutter_texture_new_from_pixbuf), (clutter_texture_get_base_size), (clutter_texture_bind_tile): Changes for clones to work. * clutter/clutter-element.c: (clutter_element_paint), (clutter_element_set_property), (clutter_element_get_property), (clutter_element_set_position), (clutter_element_set_size), (clutter_element_get_abs_position), (clutter_element_get_width), (clutter_element_get_height), (clutter_element_get_x), (clutter_element_get_y), (clutter_element_set_opacity), (clutter_element_get_opacity), (clutter_element_set_id), (clutter_element_get_id), (clutter_element_set_clip): * clutter/clutter-element.h: Add clipping and other tweaks. * clutter/clutter-stage.c: (sync_gl_viewport), (clutter_stage_paint), (clutter_stage_init): Add psuedo 3D desktop like GL setup. * clutter/clutter-label.c: (clutter_label_make_pixbuf): * clutter/clutter-label.h: * clutter/clutter-main.c: (clutter_redraw): * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter-rectangle.c: (clutter_rectangle_paint): * clutter/clutter-stage.h: * clutter/clutter-texture.h: * clutter/clutter-timeline.c: (clutter_timeline_class_init): * clutter/clutter-video-texture.c: * clutter/clutter.h: * examples/test-video.c: (foo), (size_change), (tick), (main): * examples/test.c: (main): * examples/video-cube.c: (clutter_video_texture_cube_paint), (clutter_video_texture_cube_class_init), (clutter_video_texture_cube_init): Various minor tweaks for API changes, new features etc. 2006-05-03 Matthew Allum * clutter/clutter-bin.c: (clutter_bin_paint): * clutter/clutter-bin.h: * clutter/clutter-element.c: (clutter_element_unrealize), (clutter_element_paint), (clutter_element_set_property), (clutter_element_get_property), (clutter_element_dispose), (clutter_element_finalize), (clutter_element_class_init), (clutter_element_init), (clutter_element_queue_redraw), (clutter_element_set_geometry), (clutter_element_get_geometry), (clutter_element_get_coords), (clutter_element_set_position), (clutter_element_set_size), (clutter_element_get_abs_position), (clutter_element_set_opacity), (clutter_element_get_opacity), (clutter_element_set_clip), (clutter_element_remove_clip), (clutter_element_set_parent), (clutter_element_get_parent), (clutter_element_raise), (clutter_element_lower), (clutter_element_raise_top), (clutter_element_lower_bottom): * clutter/clutter-element.h: * clutter/clutter-label.c: (clutter_label_set_fg_color): * clutter/clutter-rectangle.c: (clutter_rectangle_paint), (clutter_rectangle_set_property), (clutter_rectangle_init): * clutter/clutter-stage.c: (sync_xwindow_size): * clutter/clutter-texture.c: (clutter_texture_paint), (clutter_texture_set_pixbuf): Clean up ClutterElement, removing globals, improving sizing and initial clipping code. * clutter/clutter.h: * clutter/clutter-timeline.c: (clutter_timeline_class_init), (timeline_timeout_func), (clutter_timeline_start), (clutter_timeline_pause), (clutter_timeline_rewind), (clutter_timeline_skip), (clutter_timeline_advance), (clutter_timeline_get_current_frame), (clutter_timeline_new): * clutter/clutter-timeline.h: Various fixes to timelines. Implement frame skipping. * examples/test.c: (timeout_text_cb), (main): Update to use timeline. 2006-05-02 Matthew Allum * TODO: Update * clutter/clutter-element.h: * clutter/clutter-rectangle.h: Minor formatting cleanups 2006-05-02 Matthew Allum * clutter/Makefile.am: * clutter/clutter-timeline.c: * clutter/clutter-timeline.h: Add initial timeline implementation 2006-05-02 Matthew Allum * bindings/python/Makefile.am: * bindings/python/cluttermodule.c: (initclutter): Fix python build with new -1.0 naming. Use of GdkPixbufs still causing crashes. 2006-04-30 Matthew Allum * clutter/clutter-main.c: (events_init), (redraw_update_idle), (clutter_queue_redraw), (clutter_redraw): Fix repaint queueing, using idle handler now. Clean up some minor compiler warnings. * clutter/clutter-main.h: * clutter/clutter-texture.c: (clutter_texture_unrealize), (clutter_texture_set_pixbuf): Rename gl_lock/unlock to threads_enter/leaver 2006-04-30 Matthew Allum * Makefile.am: * clutter-1.0.pc.in: * clutter/Makefile.am: * clutter/clutter-bin.h: * clutter/clutter-label.h: * clutter/clutter-rectangle.h: * clutter/clutter-stage.h: * clutter/clutter-texture.h: * clutter/clutter-video-texture.h: * clutter/clutter.h: * configure.ac: * examples/Makefile.am: Add .pc file, tag -1.0 onto lib, includes dir naming. 2006-04-29 Matthew Allum * clutter/clutter-main.c: (clutter_dispatch_x_event), (clutter_queue_redraw), (clutter_redraw): Simplify paint event queueing. Does not actually queue anymore (broken), needs wrong to reduce high number of uneeded paints. * clutter/clutter-texture.c: (clutter_texture_set_pixbuf): Remove visible check which broke paints of resized texture pixmaps. 2006-04-19 Matthew Allum * clutter/clutter-bin.c: (clutter_bin_paint), (clutter_bin_add): * clutter/clutter-element.c: (clutter_element_paint): * clutter/clutter-element.h: * clutter/clutter-label.c: (clutter_label_set_property), (clutter_label_get_property), (clutter_label_class_init): * clutter/clutter-marshal.list: * clutter/clutter-rectangle.c: (clutter_rectangle_set_property), (clutter_rectangle_get_property), (clutter_rectangle_class_init): * clutter/clutter-stage.c: (clutter_stage_dispose), (clutter_stage_get_property), (clutter_stage_class_init): * clutter/clutter-texture.c: (clutter_texture_realize), (clutter_texture_class_init), (clutter_texture_set_pixbuf): * clutter/clutter-texture.h: More object cleanups. Add signal to texture size changes. Fix color props. Adjust element realise flags workings ( broken ). * examples/test-video.c: (main): Broken due to realize flag changes. 2006-04-18 Matthew Allum * clutter/clutter-bin.c: (clutter_bin_get_property), (clutter_bin_finalize), (clutter_bin_class_init), (clutter_bin_new), (clutter_bin_show_all), (clutter_bin_hide_all), (clutter_bin_add): * clutter/clutter-bin.h: * clutter/clutter-element.c: (clutter_element_get_property), (clutter_element_finalize), (clutter_element_class_init), (clutter_element_set_parent), (clutter_element_get_parent), (clutter_element_raise), (clutter_element_lower): * clutter/clutter-element.h: * clutter/clutter-label.c: (clutter_label_make_pixbuf), (clutter_label_get_property), (clutter_label_dispose), (clutter_label_finalize), (clutter_label_class_init), (clutter_label_init), (clutter_label_new_with_text), (clutter_label_new), (clutter_label_set_text), (clutter_label_set_font), (clutter_label_set_fg_color): * clutter/clutter-label.h: * clutter/clutter-rectangle.c: (clutter_rectangle_paint), (clutter_rectangle_set_property), (clutter_rectangle_get_property), (clutter_rectangle_finalize), (clutter_rectangle_dispose), (clutter_rectangle_class_init), (clutter_rectangle_init), (clutter_rectangle_new): * clutter/clutter-texture.c: (clutter_texture_paint), (clutter_texture_dispose), (clutter_texture_finalize), (clutter_texture_set_property), (clutter_texture_get_property), (clutter_texture_class_init), (clutter_texture_init), (clutter_texture_set_pixbuf), (clutter_texture_new_from_pixbuf): Various GObject usages cleanups, adding properties and finalize/dispose functions properly. 2006-04-18 Matthew Allum * bindings/python/Makefile.am: * bindings/python/clutter.override: * bindings/python/cluttermodule.c: (initclutter): * clutter/clutter-label.h: * clutter/clutter-rectangle.h: * clutter/clutter-video-texture.h: More fixups to now less broken python bindings * examples/rects.py: A simple python script using bindings 2006-04-18 Matthew Allum * clutter/clutter-marshal.list: Add missing. 2006-04-17 Matthew Allum * Makefile.am: * bindings/Makefile.am: * bindings/python/Makefile.am: * bindings/python/clutter.override: * bindings/python/cluttermodule.c: * configure.ac: First shot at some python bindings ( broken atm ) * clutter/clutter-bin.h: * clutter/clutter-element.h: * clutter/clutter-stage.h: * clutter/clutter-texture.h: * clutter/clutter.h: Rejig headers a little so h2def.py happier 2006-04-17 Matthew Allum * TODO: * doc/clutter.types: * doc/reference/Makefile.am: Move gtk-doc gubbins to doc/reference 2006-04-16 Matthew Allum * TODO: More updates * clutter/clutter-bin.c: (clutter_bin_paint): Add translate call * clutter/clutter-texture.c: (clutter_texture_dispose), (clutter_texture_class_init), (clutter_texture_set_pixbuf): Fixup object finalization a little. * bootstrap-autotools.sh: * configure.ac: * doc/Makefile.am: * doc/clutter.types: Add gtk-doc infrastructure 2006-04-15 Matthew Allum * TODO: More ideas. * clutter/Makefile.am: * clutter/clutter-rectangle.c: (clutter_rectangle_new): Sync passed color alpha chan to element opacity, * clutter/clutter-video-texture.c: (clutter_video_texture_error_quark), (signal_eos_delayed), (query_timeout), (got_video_size), (caps_set), (parse_stream_info), (handle_element_message) * clutter/clutter-video-texture.h: Port more of bacon video widget API. * examples/test-video.c: (foo), (tick), (main): Add a simple overlay displaying playback time. 2006-04-15 Matthew Allum * clutter/clutter-element.c: * clutter/clutter-label.c: (clutter_label_init), (clutter_label_new_with_text): * clutter/clutter-label.h: * clutter/clutter-main.c: (clutter_redraw), (clutter_gl_unlock): * clutter/clutter-main.h: * clutter/clutter-rectangle.c: (clutter_rectangle_init), (clutter_rectangle_new): * clutter/clutter-rectangle.h: * clutter/clutter-texture.c: (clutter_texture_class_init), (clutter_texture_set_pixbuf), (clutter_texture_new_from_pixbuf): * clutter/clutter-texture.h: * clutter/clutter-video-texture.c: (clutter_video_texture_init): * clutter/clutter-video-texture.h: * examples/test-video.c: (main): * examples/test.c: (main): * examples/video-cube.c: (clutter_video_texture_cube_init), (main): Make xxx_new() return there type as ClutterElement* 2006-04-15 Matthew Allum * TODO: Update * clutter/clutter-main.c: * clutter/clutter-stage.c: * clutter/clutter-texture.c: * clutter/clutter-texture.h: * gst/clutterimagesink.c: (gst_clutterimagesink_clutterimage_put), (gst_clutterimagesink_context_get): Various experiments with textures and 3D views. * clutter/clutter-video-texture.c: (clutter_video_texture_class_init), (clutter_video_texture_init): * examples/Makefile.am: * examples/test-video.c: (main): * examples/video-cube.c: Add video-cube example 2006-04-13 Matthew Allum * TODO: Update * clutter/clutter-bin.c: * clutter/clutter-bin.h: New container element * clutter/clutter-stage.c: * clutter/clutter-stage.h: Make stage a proper element * clutter/Makefile.am: * clutter/clutter.h: * clutter/clutter-element.c: (clutter_element_show), (clutter_element_set_opacity): * clutter/clutter-element.h: * clutter/clutter-label.c: (clutter_label_make_pixbuf), (clutter_label_set_text), (clutter_label_set_font): * clutter/clutter-private.h: Various tweaks new api calls. * clutter/clutter-main.c: (events_init): * clutter/clutter-main.h: Make ClutterContex Private to main * clutter/clutter-texture.c: * clutter/clutter-texture.h: * clutter/clutter-video-texture.c: (clutter_video_texture_finalize): Fix video crash * examples/test-video.c: (main): * examples/test.c: (main): Fix for API changes. 2006-04-11 Matthew Allum * TODO: Add * clutter/clutter-video-texture.c: (clutter_video_texture_finalize): * clutter/clutter-video-texture.h: Remove bogus pixbuf attribute 2006-04-10 Matthew Allum * clutter/clutter-main.c: (clutter_dispatch_x_event), (clutter_queue_redraw), (clutter_main), (clutter_set_stage_params), (clutter_init): * clutter/clutter-main.h: * clutter/clutter-private.h: Make Stage non fullscreen ( for now ). Change event loop to work better with video. * clutter/Makefile.am: * clutter/clutter-label.c: (clutter_label_make_pixbuf), (clutter_label_class_init), (clutter_label_new_with_text), (clutter_label_set_text), (clutter_label_set_font): * clutter/clutter-texture.c: (texture_render_to_gl_quad), (clutter_texture_unrealize), (clutter_texture_sync_pixbuf), (clutter_texture_realize), (clutter_texture_show), (clutter_texture_hide), (clutter_texture_paint), (clutter_texture_finalize), (clutter_texture_set_property), (clutter_texture_get_property), (clutter_texture_class_init), (clutter_texture_init), (clutter_texture_get_pixbuf), (clutter_texture_set_pixbuf), (clutter_texture_new_from_pixbuf): * clutter/clutter-texture.h: * clutter/clutter.h: Fix leakage. Improve performance. Add support for non tiled textures. * examples/Makefile.am: * examples/test.c: (timeout_text_cb), (main): Experiments * examples/test-video.c: * configure.ac: * gst/Makefile.am: * gst/clutterimagesink.c: * gst/clutterimagesink.h: * clutter/clutter-video-texture.c: * clutter/clutter-video-texture.h: Add initial support for video textures with gst-0.10 * gst/cltrimagesink.c: * gst/cltrimagesink.h: Remove old gst-0.8 sink 2006-04-05 Matthew Allum * clutter/Makefile.am: * clutter/clutter-element.c: (clutter_element_show), (clutter_element_hide), (clutter_element_realize), (clutter_element_unrealize), (clutter_element_paint), (clutter_element_finalize), (clutter_element_class_init), (clutter_element_init), (clutter_element_new): * clutter/clutter-element.h: * clutter/clutter.h: * clutter/clutter-main.c: (clutter_dispatch_x_event), (events_init), (clutter_redraw), (clutter_main), (clutter_init), (clutter_show_stage): * clutter/clutter-main.h: Various minor tweaks. * clutter/clutter-private.h: * clutter/clutter-texture.c: (can_create), (init_tiles), (clutter_texture_unrealize), (clutter_texture_realize), (clutter_texture_finalize), (clutter_texture_class_init), (clutter_texture_init): * clutter/clutter-texture.h: Much improve texture class. * clutter/clutter-label.c: * clutter/clutter-label.h: Add new text rendering class * clutter/clutter-rectangle.c: * clutter/clutter-rectangle.h: Add basic rectangle drawing class * examples/test.c: Add text rendering and animation to test. 2006-04-04 Matthew Allum * clutter/Makefile.am: * clutter/clutter-element.c: (clutter_element_realize): * clutter/clutter-element.h: * clutter/clutter-image.c: * clutter/clutter-image.h: * clutter/clutter-main.c: (clutter_dispatch_x_event), (clutter_main), (clutter_set_stage_params), (clutter_init): * clutter/clutter-texture.c: (next_p2), (can_create), (tile_dimension), (init_tiles), (texture_render_to_gl_quad), (clutter_texture_unrealize), (clutter_texture_realize), (clutter_texture_get_pixbuf), (clutter_texture_paint), (clutter_texture_finalize), (clutter_texture_class_init): * clutter/clutter-texture.h: * clutter/clutter.h: * configure.ac: * examples/test.c: Implement basic tiled texture painting. 2006-04-03 Matthew Allum reviewed by: * clutter/Makefile.am: * clutter/clutter-element.c: * clutter/clutter-element.h: * clutter/clutter-image.c: * clutter/clutter-image.h: * clutter/clutter-main.c: (events_init), (stage_realize), (clutter_queue_redraw), (clutter_redraw), (clutter_add_to_stage), (clutter_remove_from_stage), (clutter_main), (clutter_set_stage_params), (clutter_init): * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter.h: * examples/test.c: 2006-04-02 Matthew Allum * clutter/Makefile.am: * clutter/cltr-animator.c: * clutter/cltr-animator.h: * clutter/cltr-button.c: * clutter/cltr-button.h: * clutter/cltr-core.c: * clutter/cltr-core.h: * clutter/cltr-events.c: * clutter/cltr-events.h: * clutter/cltr-glu.c: * clutter/cltr-glu.h: * clutter/cltr-label.c: * clutter/cltr-label.h: * clutter/cltr-list.c: * clutter/cltr-list.h: * clutter/cltr-overlay.c: * clutter/cltr-overlay.h: * clutter/cltr-photo-grid.c: * clutter/cltr-photo-grid.h: * clutter/cltr-private.h: * clutter/cltr-scratch.c: * clutter/cltr-scratch.h: * clutter/cltr-texture.c: * clutter/cltr-texture.h: * clutter/cltr-video.c: * clutter/cltr-video.h: * clutter/cltr-widget.c: * clutter/cltr-widget.h: * clutter/cltr-window.c: * clutter/cltr-window.h: * clutter/cltr.h: * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-private.h: * clutter/clutter.h: * clutter/fonts.c: * clutter/fonts.h: * clutter/pixbuf.c: * clutter/pixbuf.h: * clutter/util.c: * clutter/util.h: * configure.ac: * examples/Makefile.am: * examples/photos.c: * examples/player.c: * examples/scratch.c: * examples/select.c: * examples/test.c: Remove old cltr files replacing with beginnings of rejigged 'clutter' ones. 2005-05-27 mallum,,, * clutter/cltr-animator.c: (cltr_animator_zoom_new), (cltr_animator_move_new), (cltr_animator_fullzoom_new), (cltr_animator_new), (cltr_animator_set_args), (cltr_animator_wrapped_zoom_paint), (cltr_animator_reset), (cltr_animator_timeout_cb), (cltr_animator_run): * clutter/cltr-animator.h: * clutter/cltr-button.c: (cltr_button_set_label), (cltr_button_paint): * clutter/cltr-label.c: (cltr_label_new), (cltr_label_set_text), (cltr_label_get_text), (cltr_label_show), (cltr_label_handle_xevent), (cltr_label_paint): * clutter/cltr-label.h: * clutter/cltr-list.c: (cltr_list_paint): * clutter/cltr-widget.c: * examples/select.c: (usage), (video_ctrl_hide), (video_ctrl_stop_cb), (video_ctrl_play_cb), (video_ctrl_seek_begin_cb), (init_video_ctrl), (show_video_ctrl), (populate), (cell_to_item), (zoom_video_out), (init_show_controls), (handle_xevent), (zoom_out_complete), (zoom_in_complete): More select hacking ... 2005-05-23 mallum,,, * clutter/cltr-button.c: (cltr_button_new_with_label), (cltr_button_handle_xevent), (cltr_button_paint): * clutter/cltr-button.h: * clutter/cltr-events.c: (cltr_main_loop): * clutter/cltr-list.c: (cltr_list_cell_new), (cltr_list_append_cell), (cltr_list_update_layout), (cltr_list_paint): * clutter/cltr-list.h: * clutter/cltr-overlay.c: (cltr_overlay_paint): * clutter/cltr-private.h: * clutter/cltr-widget.c: (cltr_widget_show), (cltr_widget_show_all), (cltr_widget_add_child): * clutter/cltr-widget.h: * clutter/cltr-window.c: (cltr_window_show), (cltr_window_paint), (cltr_window_handle_xevent), (cltr_window_post_paint), (cltr_window_set_paint_funcs), (cltr_window_xwin), (cltr_window_hide_cursor), (cltr_window_set_fullscreen): * clutter/cltr-window.h: * examples/select.c: (usage), (init_video_ctrl), (show_video_ctrl), (populate), (cell_to_item), (handle_xevent), (zoom_out_complete), (zoom_in_complete), (cell_activated), (main): Much Select hacking 2005-05-17 mallum,,, * clutter/cltr-video.c: (cltr_video_get_pixbuf): * gst/cltrimagesink.c: (gst_cltrimagesink_change_state), (gst_cltrimagesink_chain): Fix thread related segv's on grabbing video image. Also pop any unplayed data from sink on stop 2005-05-16 mallum,,, * clutter/cltr-animator.c: (cltr_animator_zoom_new), (cltr_animator_fullzoom_new), (cltr_animator_new), (cltr_animator_set_args), (cltr_animator_wrapped_paint): * clutter/cltr-animator.h: * clutter/cltr-list.c: (cltr_list_cell_new), (cltr_list_get_active_cell_co_ords), (cltr_list_show), (cltr_list_on_activate_cell), (cltr_list_update_layout), (cltr_list_paint): * clutter/cltr-list.h: * clutter/cltr-texture.c: (cltr_texture_realize), (cltr_texture_unref), (cltr_texture_sync_pixbuf), (cltr_texture_force_rgb_data): * clutter/cltr-video.c: (got_stream_length), (got_time_tick), (got_state_change), (parse_stream_info), (cb_iterate), (cltr_video_play), (cltr_video_set_volume), (cltr_video_get_volume), (cltr_video_get_pixbuf), (cltr_video_idler), (cltr_video_set_source), (cltr_video_handle_xevent), (cltr_video_paint): * clutter/cltr-video.h: * clutter/cltr-widget.c: * clutter/pixbuf.c: (pixbuf_write_png), (load_png_file), (pixbuf_copy), (pixbuf_fill_rect), (pixbuf_scale_down), (pixbuf_clone): * examples/select.c: (usage), (populate), (cell_to_item), (handle_xevent), (zoom_out_complete), (zoom_in_complete), (cell_activated), (main): * gst/cltrimagesink.c: (gst_cltrimagesink_getcaps), (gst_cltrimagesink_chain): Far too much hacking. Fix many endian image issues. Greatly improve select demo 2005-05-16 mallum,,, * clutter/Makefile.am: * clutter/cltr-animator.c: * clutter/cltr-animator.h: * clutter/cltr-list.c: (distfunc), (cltr_list_new), (cltr_list_get_active_cell_co_ords), (cltr_list_show), (cltr_list_on_activate_cell), (cltr_list_handle_xevent), (cltr_list_animate), (cltr_list_timeout_cb), (cltr_list_update_layout), (cltr_list_paint): * clutter/cltr-list.h: * clutter/cltr-private.h: * clutter/cltr.h: * clutter/pixbuf.c: (load_png_file): * examples/player.c: * examples/select.c: (usage), (populate), (cell_activated), (main): Work on animator zooming. Also build up select.c much 2005-05-14 mallum,,, * clutter/cltr-animator.c: Add initial outline * clutter/cltr-button.c: (cltr_button_new_with_pixbuf), (cltr_button_handle_xkeyevent), (cltr_button_handle_xevent), (cltr_button_paint): various tweaks/experimentation * clutter/cltr-core.c: (cltr_init), (cltr_display_height): * clutter/cltr-glu.c: (cltr_glu_set_color): * clutter/cltr-glu.h: Add unfilled rect call. * clutter/cltr-label.c: (cltr_label_new), (cltr_label_paint): * clutter/cltr-list.c: (distfunc), (cltr_list_cell_new), (cltr_list_show), (cltr_list_animate), (cltr_list_paint): update list a little. * clutter/cltr-overlay.c: (cltr_overlay_handle_xevent), (cltr_overlay_paint): * clutter/cltr-private.h: * clutter/cltr-texture.c: (cltr_texture_realize): * clutter/cltr-video.c: (cltr_video_paint): * clutter/cltr.h: * clutter/fonts.c: (draw_layout_on_pixbuf): Fix font alpha blending * examples/Makefile.am: * examples/player.c: (main): * examples/scratch.c: (main): tweaks. * examples/select.c: new example 2005-05-11 mallum,,, * clutter/cltr-video.c: (got_buffering), (cltr_video_new), (cltr_video_play), (cltr_video_idler): * examples/photos.c: (main): * examples/player.c: (handle_xevent), (main): * gst/cltrimagesink.c: (gst_cltrimagesink_chain): Fix Gl thread related crash on video playback Make examples less bound to my laptop ;) 2005-05-06 mallum,,, * clutter/cltr-button.c: (cltr_button_new_with_label): * clutter/cltr-overlay.c: * clutter/cltr-photo-grid.c: (cltr_photo_grid_cell_new), (cltr_photo_grid_paint), (cltr_photo_grid_new): * clutter/cltr-video.c: (cltr_video_print_tag), (got_buffering), (got_error), (caps_set), (parse_stream_info), (cb_iterate), (cltr_video_new), (cltr_video_play), (cltr_video_seek), (cltr_video_seek_time), (cltr_video_stop), (cltr_video_close), (cltr_video_pause), (cltr_video_can_set_volume), (cltr_video_set_volume), (cltr_video_get_volume), (cltr_video_idler), (cltr_video_set_source), (cltr_video_show), (cltr_video_hide), (cltr_video_handle_xevent), (cltr_video_paint): * clutter/cltr-video.h: * clutter/cltr-widget.h: * clutter/cltr-window.c: (cltr_window_show), (cltr_window_paint), (cltr_window_handle_xevent), (cltr_window_set_fullscreen), (cltr_window_focus_widget): * clutter/cltr-window.h: * clutter/cltr.h: * clutter/fonts.c: (get_layout_bitmap), (font_draw), (font_get_pixel_size): * configure.ac: * examples/photos.c: (photo_grid_populate): * examples/player.c: (handle_xevent), (main): * examples/scratch.c: (main): Lots more tweaks, mainly updating video widget. 2005-04-29 mallum,,, * clutter/cltr-button.c: (cltr_button_new), (cltr_button_on_activate), (cltr_button_new_with_label), (cltr_button_show): * clutter/cltr-button.h: * clutter/cltr-label.c: (cltr_label_new), (cltr_label_paint): * clutter/cltr-private.h: * clutter/cltr-video.c: (cltr_video_play): * clutter/cltr-widget.c: (cltr_widget_new), (cltr_widget_abs_x), (cltr_widget_abs_y), (cltr_widget_abs_x2), (cltr_widget_abs_y2), (cltr_widget_width), (cltr_widget_height), (cltr_widget_show), (cltr_widget_focus), (cltr_widget_unfocus), (cltr_widget_set_focus_next), (cltr_widget_get_focus_next), (cltr_widget_show_all): * clutter/cltr-widget.h: * clutter/cltr-window.c: (cltr_window_new), (cltr_window_focus_widget): * clutter/cltr.h: * clutter/fonts.c: (draw_layout_on_pixbuf), (font_get_pixel_size): * examples/scratch.c: (main): Hack buttons some more 2005-04-27 mallum,,, * clutter/Makefile.am: * clutter/cltr-button.c: (cltr_button_new): * clutter/cltr-label.c: * clutter/cltr-label.h: * clutter/cltr-photo-grid.c: (cltr_photo_grid_paint): * clutter/cltr-texture.c: (cltr_texture_realize), (cltr_texture_new), (cltr_texture_unref), (cltr_texture_no_tile_new): * clutter/cltr-texture.h: * clutter/cltr-video.c: (cltr_video_got_time_tick), (caps_set), (cltr_video_new), (cltr_video_idler), (cltr_video_set_source), (cltr_video_play), (cltr_video_pause), (cltr_video_show), (cltr_video_hide), (cltr_video_handle_xevent), (cltr_video_paint): * clutter/cltr.h: * clutter/fonts.c: (font_new), (draw_layout_on_pixbuf), (font_draw): * clutter/fonts.h: * clutter/pixbuf.c: (pixbuf_set_pixel), (pixbuf_get_pixel): * examples/photos.c: (photo_grid_populate), (main): * examples/player.c: (main): Improve video widget, use playbin rather than gst_play Lots of misc tweaks. 2005-04-26 mallum,,, * clutter/Makefile.am: * clutter/cltr-core.c: (cltr_init): * clutter/cltr-events.c: (cltr_events_init), (cltr_main_loop): * clutter/cltr-photo-grid.c: * clutter/cltr-private.h: * clutter/cltr-scratch.c: (cltr_scratch_handle_xevent), (cltr_scratch_paint): * clutter/cltr-texture.c: (cltr_texture_render_to_gl_quad), (init_tiles), (cltr_texture_unrealize), (cltr_texture_realize), (cltr_texture_new), (cltr_texture_no_tile_new), (cltr_texture_get_pixbuf): * clutter/cltr-texture.h: * clutter/cltr-video.c: * clutter/cltr-video.h: * clutter/cltr-widget.c: (cltr_widget_queue_paint): * clutter/cltr.h: * examples/Makefile.am: * examples/player.c: * gst/cltrimagesink.c: (gst_cltrimagesink_fixate), (gst_cltrimagesink_getcaps), (gst_cltrimagesink_sink_link), (gst_cltrimagesink_change_state), (gst_cltrimagesink_chain), (gst_cltrimagesink_set_property), (gst_cltrimagesink_get_property), (gst_cltrimagesink_finalize), (gst_cltrimagesink_class_init): * gst/cltrimagesink.h: Initial go at very hacky gst video widget 2005-04-22 mallum,,, * clutter/Makefile.am: * clutter/cltr-button.c: * clutter/cltr-button.h: * clutter/cltr-core.c: (cltr_init): * clutter/cltr-overlay.c: * clutter/cltr-overlay.h: * clutter/cltr-photo-grid.c: (cltr_photo_grid_handle_xevent), (cltr_photo_grid_cell_new), (ctrl_photo_grid_get_zoomed_coords), (cell_is_offscreen), (cltr_photo_grid_idle_cb), (cltr_photo_grid_navigate), (cltr_photo_grid_activate_cell), (cltr_photo_grid_populate), (cltr_photo_grid_update_visual_state), (cltr_photo_grid_paint), (cltr_photo_grid_show), (cltr_photo_grid_set_fps), (cltr_photo_grid_get_fps), (cltr_photo_grid_set_anim_steps), (cltr_photo_grid_get_anim_steps), (cltr_photo_grid_new): Fix up grid so external prog can load images. * clutter/cltr-photo-grid.h: * clutter/cltr-texture.c: (cltr_texture_realize), (cltr_texture_new): * clutter/cltr-texture.h: * clutter/cltr-window.c: (cltr_window_set_fullscreen): * clutter/cltr.h: * clutter/pixbuf.c: (pixbuf_scale_down), (ConvolveImage), (GaussianBlurImage): * clutter/pixbuf.h: New experimental Methods * configure.ac: * examples/Makefile.am: * examples/photos.c: * examples/player.c: Add new examples * gst/Makefile.am: * gst/cltrimagesink.c: * gst/cltrimagesink.h: Add initial crusty ( broken ) gst stuff 2005-04-13 mallum,,, * bootstrap-autotools.sh: * clutter/Makefile.am: * clutter/cltr.c: * configure.ac: * examples/Makefile.am: * examples/scratch.c: Initial autotooling of everything. 2005-04-07 mallum,,, * Makefile: * cltr-events.c: (cltr_main_loop): * cltr-list.c: * cltr-list.h: Add list widget * cltr-photo-grid.c: (cltr_photo_grid_cell_new), (cltr_photo_grid_append_cell), (ctrl_photo_grid_cell_to_coords), (ctrl_photo_grid_get_zoomed_coords), (cltr_photo_grid_idle_cb), (cltr_photo_grid_navigate), (cltr_photo_grid_activate_cell), (cltr_photo_grid_update_visual_state), (cltr_photo_grid_paint), (cltr_photo_grid_show), (cltr_photo_grid_new): * cltr-texture.c: * cltr-widget.c: * cltr-window.c: (cltr_window_new), (cltr_window_show), (cltr_window_handle_xevent): * cltr-window.h: * cltr.c: (main): * cltr.h: * pixbuf.c: (pixbuf_copy): * pixbuf.h: Cleanups 2005-04-03 mallum,,, * Makefile: * cltr-core.c: * cltr-core.h: * cltr-events.c: * cltr-events.h: * cltr-photo-grid.c: (cltr_photo_grid_handle_xkeyevent), (cltr_photo_grid_handle_xevent), (cltr_photo_grid_cell_new), (cltr_photo_grid_append_cell), (ctrl_photo_grid_cell_to_coords), (ctrl_photo_grid_get_zoomed_coords), (cell_is_offscreen), (cltr_photo_grid_idle_cb), (cltr_photo_grid_navigate), (cltr_photo_grid_activate_cell), (cltr_photo_grid_populate), (cltr_photo_grid_paint), (cltr_photo_grid_show), (cltr_photo_grid_new): * cltr-photo-grid.h: * cltr-private.h: * cltr-texture.c: * cltr-texture.h: * cltr-widget.c: * cltr-widget.h: * cltr-window.c: * cltr-window.h: * cltr.c: * cltr.h: Add very basic initial toolkit infrastructure 2005-03-31 mallum,,, * cltr-photo-grid.c: (cltr_photo_grid_append_cell), (ctrl_photo_grid_cell_to_coords), (ctrl_photo_grid_get_zoomed_coords), (cell_is_offscreen), (cltr_photo_grid_idle_cb), (cltr_photo_grid_navigate), (cltr_photo_grid_activate_cell), (cltr_photo_grid_populate), (cltr_photo_grid_redraw), (cltr_photo_grid_new): * cltr-photo-grid.h: * cltr-texture.c: (cltr_texture_render_to_gl_quad), (init_tiles), (cltr_texture_realize): * cltr-texture.h: * cltr.c: (main): Implemented scrolling. Very rough around the edges, needs tidying. 2005-03-30 mallum,,, * Makefile: * cltr-photo-grid.c: (cltr_photo_grid_redraw), (cltr_photo_grid_new): * cltr-tex.c: * cltr-tex.h: * cltr-texture.c: (cltr_texture_new): More renaming 2005-03-30 mallum,,, * cltr-photo-grid.c: (cltr_photo_grid_populate), (cltr_photo_grid_redraw), (cltr_photo_grid_new): * cltr-photo-grid.h: * cltr-tex.c: (next_p2), (cltr_texture_render_to_gl_quad), (tile_dimension), (init_tiles), (cltr_texture_new): * cltr-tex.h: * cltr.h: Rename CltrImage -> CltrTexture 2005-03-30 mallum,,, * Makefile: * cltr-photo-grid.c: (cltr_photo_grid_populate), (cltr_photo_grid_redraw): * cltr-photo-grid.h: * cltr-tex.c: * cltr-tex.h: * cltr.c: (main): * cltr.h: * pixbuf.c: (pixbuf_unref), (pixbuf_copy): * pixbuf.h: Add intial new texture tiling code. 2005-03-27 mallum,,, * Makefile: * cltr-photo-grid.c: (cltr_photo_grid_cell_new), (ctrl_photo_grid_get_zoomed_coords), (cltr_photo_grid_navigate), (cltr_photo_grid_activate_cell), (cltr_photo_grid_populate), (cltr_photo_grid_redraw), (cltr_photo_grid_new): * cltr-photo-grid.h: * cltr.c: (cltr_dispatch_x_event), (cltr_init), (test_idle_cb), (main): * cltr.h: Add a very hacky threaded image loader. Make event handling a little more efficient, though still hacky * pixbuf.c: (pixel_set_vals), pixbuf.h: Add copy func ( unused as yet ) 2005-03-25 mallum,,, * cltr-photo-grid.c: (cltr_photo_grid_cell_new), (ctrl_photo_grid_get_zoomed_coords), (cltr_photo_grid_redraw), (cltr_photo_grid_new): * cltr-photo-grid.h: * cltr.c: (cltr_window_new), (idle_cb), (main): Use GL matrices in a saner way. Add random rotation to picts Random minor tweaks 2005-03-24 mallum,,, * Makefile: * cltr-photo-grid.c: * cltr-photo-grid.h: * cltr.c: (cltr_window_new), (cltr_main_loop): * cltr.h: Split up cltr.c a bit. start refactoring a bit. 2005-03-23 mallum,,, * cltr.c: (cltr_photo_grid_populate), (cltr_photo_grid_redraw), (cltr_photo_grid_new), (main): * cltr.h: Various minor tweaks * pixbuf.c: (pixbuf_set_pixel), (pixbuf_get_pixel): Fix RGBA ordering in set/get pixel 2005-03-23 mallum,,, * cltr.c: (ctrl_photo_grid_get_trans_coords), Fix grid co-ords -> translation vals converter (cltr_photo_grid_navigate), (cltr_photo_grid_redraw), (cltr_photo_grid_new), (idle_cb): Fix moving between pictures when zoomed 2005-03-23 mallum,,, * cltr.c: (cltr_dispatch_x_event), (cltr_window_new), (cltr_main_loop), (cltr_photo_grid_navigate), (cltr_photo_grid_activate_cell), (cltr_photo_grid_populate), (cltr_photo_grid_redraw), (cltr_photo_grid_new), (idle_cb), (main): * cltr.h: Lots, make the grid roughly work. * fonts.c: (get_layout_bitmap), (font_draw): remove debug printfs 2005-03-22 mallum,,, * cltr.c: (x_event_prepare), (x_event_check), (x_event_dispatch), (cltr_dispatch_x_event), (cltr_init), (cltr_window_new), (cltr_photo_grid_append_cell), (cltr_photo_grid_populate), (cltr_photo_grid_redraw), (cltr_photo_grid_new), (idle_cb), (main): * cltr.h: Add glib event loop