commit 3e05d2df8de5ded545393994aff29ef9a8f7a0c5 Author: Emmanuele Bassi Date: Mon Jan 24 10:23:36 2011 +0000 Release Clutter 1.5.14 (1.6.0rc1) NEWS | 42 ++++++++++++++++++++++++++++++++++-------- configure.ac | 2 +- 2 files changed, 35 insertions(+), 9 deletions(-) commit 79b936aa4a829ffd5b5677da228425c4e0c46623 Author: Emmanuele Bassi Date: Fri Jan 21 20:46:09 2011 +0000 Update the NEWS file NEWS | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) commit 6bffd407fd4f4d4d5b5c5f5ef6d9b43c44b7fe03 Author: Bastian Winkler Date: Fri Jan 21 14:50:44 2011 +0100 model: Add support to define rows in ClutterScript This adds a custom "rows" property, that allows to define the rows of a ClutterModel. A single row can either an array of all columns or an object with column-name : column-value pairs. http://bugzilla.clutter-project.org/show_bug.cgi?id=2528 clutter/clutter-model.c | 210 ++++++++++++++++++++++++++++++------ tests/conform/test-model.c | 35 ++++++ tests/data/test-script-model.json | 8 ++ 3 files changed, 218 insertions(+), 35 deletions(-) commit 95b3a718ef5c08f058e2bf0e3e56df390408821f Author: Bastian Winkler Date: Wed Jan 12 13:09:52 2011 +0100 script-parser: Allow initialized GValue arg in clutter_script_parse_node Allow to 'abuse' the clutter_script_parse_node function by calling it with an initialized GValue instead of a valid GParamSpec argument to obtain the correct typed value from the json node. http://bugzilla.clutter-project.org/show_bug.cgi?id=2528 clutter/clutter-script-parser.c | 23 +++++++++++++++-------- 1 files changed, 15 insertions(+), 8 deletions(-) commit 8e1c1909f80b4513154a3dfd8980160f94ec036f Author: Bastian Winkler Date: Wed Jan 12 12:54:43 2011 +0100 model: Change the column argument type to gint for clutter_model_set_sort Like in clutter_model_set_sorting_column this function should take a gint column, otherwise GObject-Introspection won't allow to pass a NULL sorting function. http://bugzilla.clutter-project.org/show_bug.cgi?id=2527 clutter/clutter-model.c | 2 +- clutter/clutter-model.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8a6986089b79f9d6cbb7012d12087d2d2e42526c Author: Bastian Winkler Date: Sat Jan 22 12:51:31 2011 +0100 model: Fix some GObject-Introspection annotations http://bugzilla.clutter-project.org/show_bug.cgi?id=2526 clutter/clutter-model.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 86c786aaad28e439146af4a93f787163e96bab6d Merge: 8a58677 b7d26b2 Author: Emmanuele Bassi Date: Fri Jan 21 20:22:32 2011 +0000 Merge branch 'xi2' * xi2: (41 commits) test-devices: Actually print the axis data device-manager/xi2: Sync the stage of source devices event: Clean up clutter_event_copy() device: unset the axes array pointer when resetting device-manager/xi2: Fix device hotplugging glx: Clean up GLX implementation device/x11: Store min/max keycode in the XI device class x11: Hide all private symbols docs: More documentation fixes for InputDevice */event: Never manipulate the event queue directly win32: Update DeviceManager device creation device: Allow enabling/disabling non-master devices backend/eglx: Add newly created stages to the translators device: Add more doc annotations device: Use a double for translate_axis() argument test-devices: Clean up and show axes data event: Fix up clutter_event_copy() device/xi2: Translate the axis data after setting devices device: Add more accessors for properties docs: Update API reference ... commit 8a5867799c5809854dfac9c2b7e704bcc6e9455b Author: Robert Bragg Date: Fri Jan 21 18:43:35 2011 +0000 cogl: call _cogl_texture_init for x11 tfp When we added the texture->framebuffers member a _cogl_texture_init funciton was added to initialize the list of framebuffers associated with a texture to NULL. All the backends were updated except the x11 tfp backend. This was causing crashes in test-pixmap. clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 1973168bbaa133215df73eaeeef25c6dcc0d6a07 Author: Robert Bragg Date: Fri Jan 21 17:38:14 2011 +0000 journal: start uprof flush timer after flushing fb deps This avoids us recursively starting the _cogl_journal_flush uprof timer by only starting it after flushing the journals of dependency framebuffers. clutter/cogl/cogl/cogl-journal.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) commit f9d4846d6acc493b9fd52d627a82a0302d507a17 Author: Robert Bragg Date: Fri Jan 21 17:28:34 2011 +0000 cogl: make sure to init ctx->framebuffers This makes sure to initialize ctx->framebuffers to NULL otherwise we can get apps crashing when they create their first framebuffer. clutter/cogl/cogl/cogl-context.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 326c51630492ab13a2e584f9efb0dc5673966c0e Author: Robert Bragg Date: Thu Jan 20 19:31:53 2011 +0000 cogl: rename CoglVertexAttribute CoglAttribute This is part of a broader cleanup of some of the experimental Cogl API. One of the reasons for this particular rename is to reduce the verbosity of using the API. Another reason is that CoglVertexArray is going to be renamed CoglAttributeBuffer and we want to help emphasize the relationship between CoglAttributes and CoglAttributeBuffers. clutter/cogl/cogl/Makefile.am | 6 +- clutter/cogl/cogl/cogl-attribute-private.h | 103 ++ clutter/cogl/cogl/cogl-attribute.c | 1272 ++++++++++++++++++++ clutter/cogl/cogl/cogl-attribute.h | 182 +++ clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-index-array.c | 4 +- clutter/cogl/cogl/cogl-journal.c | 117 +- clutter/cogl/cogl/cogl-path-private.h | 4 +- .../cogl/cogl/cogl-pipeline-progend-glsl-private.h | 2 +- clutter/cogl/cogl/cogl-primitive.c | 309 +++--- clutter/cogl/cogl/cogl-primitive.h | 26 +- clutter/cogl/cogl/cogl-primitives.c | 84 +- clutter/cogl/cogl/cogl-types.h | 22 + clutter/cogl/cogl/cogl-vertex-attribute-private.h | 103 -- clutter/cogl/cogl/cogl-vertex-attribute.c | 1272 -------------------- clutter/cogl/cogl/cogl-vertex-attribute.h | 205 ---- clutter/cogl/cogl/cogl-vertex-buffer-private.h | 4 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 18 +- clutter/cogl/cogl/cogl-vertex-buffer.h | 22 - clutter/cogl/cogl/cogl.c | 4 +- clutter/cogl/cogl/cogl.h | 2 +- clutter/cogl/cogl/cogl2-path.c | 28 +- doc/reference/cogl-2.0/cogl-docs.xml.in | 2 +- 23 files changed, 1873 insertions(+), 1920 deletions(-) commit c4bafb48b6e4a3b35a13252e5ade500c01c4a392 Author: Robert Bragg Date: Thu Jan 20 18:51:24 2011 +0000 docs: Adds bitmap section to cogl reference manual This adds an include for the cogl-bitmap section to cogl-docs.xml.in doc/reference/cogl/cogl-docs.xml.in | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit b3775a75640ae2be0cef489c69d7e4213f170cb9 Author: Robert Bragg Date: Thu Jan 20 12:29:49 2011 +0000 cogl: s/Cogl*Vertex/CoglVertex*/ We have a bunch of experimental convenience functions like cogl_primitive_p2/p2t2 that have corresponding vertex structures but it seemed a bit odd to have the vertex annotation e.g. "P2T2" be an infix of the type like CoglP2T2Vertex instead of be a postfix like CoglVertexP2T2. This switches them all to follow the postfix naming style. clutter/cogl/cogl/cogl-primitive.c | 96 ++++++++++++++-------------- clutter/cogl/cogl/cogl-primitive.h | 80 ++++++++++++------------ clutter/cogl/cogl/cogl-vertex-attribute.c | 20 +++--- tests/conform/test-cogl-primitive.c | 16 +++--- 4 files changed, 106 insertions(+), 106 deletions(-) commit 3f9e8591671d0c81d5d4034f0895bca3f98cb4c0 Author: Robert Bragg Date: Thu Jan 20 18:30:55 2011 +0000 test-picking: Don't manually paint the stage Instead of using an idle handler that synchonously paints the stage by manually calling clutter_actor_paint (stage) the test now uses an idle handler that repeatedly queues a redraw on the stage. do_events is now called from a "paint" signal handler for the stage, and instead of manually determining the fps the test now uses CLUTTER_SHOW_FPS=1 instead. tests/micro-bench/test-picking.c | 38 +++++++++++++++----------------------- 1 files changed, 15 insertions(+), 23 deletions(-) commit 9a663d8e4106e43f8f214b7fdded555ee408cf28 Author: Robert Bragg Date: Thu Jan 20 14:41:51 2011 +0000 debug: Adds a COGL_DEBUG=disable-fast-read-pixel option COGL_DEBUG=disable-fast-read-pixel can be used to disable the optimization for reading a single pixel colour back by looking at the geometry in the journal and not involving the GPU. With this disabled we will always flush the journal, rendering to the framebuffer and then use glReadPixels to get the result. clutter/cogl/cogl/cogl-debug-options.h | 7 +++- clutter/cogl/cogl/cogl-debug.c | 3 +- clutter/cogl/cogl/cogl-debug.h | 61 ++++++++++++++++--------------- clutter/cogl/cogl/cogl-framebuffer.c | 3 ++ clutter/cogl/cogl/cogl-journal.c | 3 ++ 5 files changed, 45 insertions(+), 32 deletions(-) commit 1bdb0e6e98db719c8652c85fc234c21437ad071a Author: Robert Bragg Date: Wed Jan 12 22:12:41 2011 +0000 cogl: Implements a software only read-pixel fast-path This adds a transparent optimization to cogl_read_pixels for when a single pixel is being read back and it happens that all the geometry of the current frame is still available in the framebuffer's associated journal. The intention is to indirectly optimize Clutter's render based picking mechanism in such a way that the 99% of cases where scenes are comprised of trivial quad primitives that can easily be intersected we can avoid the latency of kicking a GPU render and blocking for the result when we know we can calculate the result manually on the CPU probably faster than we could even kick a render. A nice property of this solution is that it maintains all the flexibility of the render based picking provided by Clutter and it can gracefully fall back to GPU rendering if actors are drawn using anything more complex than a quad for their geometry. It seems worth noting that there is a limitation to the extensibility of this approach in that it can only optimize picking a against geometry that passes through Cogl's journal which isn't something Clutter directly controls. For now though this really doesn't matter since basically all apps should end up hitting this fast-path. The current idea to address this longer term would be a pick2 vfunc for ClutterActor that can support geometry and render based input regions of actors and move this optimization up into Clutter instead. Note: currently we don't have a primitive count threshold to consider that there could be scenes with enough geometry for us to compensate for the cost of kicking a render and determine a result more efficiently by utilizing the GPU. We don't currently expect this to be common though. Note: in the future it could still be interesting to revive something like the wip/async-pbo-picking branch to provide an asynchronous read-pixels based optimization for Clutter picking in cases where more complex input regions that necessitate rendering are in use or if we do add a threshold for rendering as mentioned above. clutter/clutter-main.c | 3 - clutter/cogl/cogl/cogl-framebuffer-private.h | 27 + clutter/cogl/cogl/cogl-framebuffer.c | 196 +++++++- clutter/cogl/cogl/cogl-journal-private.h | 20 + clutter/cogl/cogl/cogl-journal.c | 710 +++++++++++++++++++------- clutter/cogl/cogl/cogl-vertex-attribute.c | 7 + clutter/cogl/cogl/cogl.c | 20 +- 7 files changed, 800 insertions(+), 183 deletions(-) commit e289e85397cb52f421e64e253e1af2628909f424 Author: Robert Bragg Date: Tue Jan 18 16:37:01 2011 +0000 matrix: fix transform/project_points() APIs Both cogl_matrix_transform_points and _project_points take points_in and points_out arguments and explicitly allow pointing to the same array (i.e. to transform in-place) The implementation of the various internal transform functions though were not handling this possability and so it was possible the reference partially transformed vertex values as if they were original input values leading to incorrect results. This patch ensures we take a temporary copy of the current input point when transforming. clutter/cogl/cogl/cogl-matrix.c | 136 +++++++++++++++++++------------------- 1 files changed, 68 insertions(+), 68 deletions(-) commit 23ed01d4e933da803bb7bbe4d0439de0824532c1 Author: Robert Bragg Date: Thu Jan 13 14:29:46 2011 +0000 cogl: Adds _cogl_util_point_in_polygon API This adds a utility function that can determine if a given point intersects an arbitrary polygon, by counting how many edges a "semi-infinite" horizontal ray crosses from that point. The plan is to use this for a software based read-pixel fast path that avoids using the GPU to rasterize journaled primitives and can instead intersect a point being read with quads in the journal to determine the correct color. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-point-in-poly-private.h | 40 ++++++++++++++ clutter/cogl/cogl/cogl-point-in-poly.c | 69 ++++++++++++++++++++++++ 3 files changed, 111 insertions(+), 0 deletions(-) commit 142b229c5c2684f94af32358d1401b61aa3019aa Author: Robert Bragg Date: Wed Jan 12 22:06:58 2011 +0000 cogl: Adds _cogl_swap_buffers_notify for clutter backends This adds a stop-gap mechanism for Cogl to know when the window system is requested to present the current backbuffer to the frontbuffer by adding a _cogl_swap_buffers_notify function that backends are now expected to call right after issuing the equivalent request to OpenGL vie the platforms OpenGL binding layer. This (blindly) updates all the backends to call this new function. For now Cogl doesn't do anything with the notification but the intention is to use it as part of a planned read-pixel optimization which will need to reset some state at the start of each new frame. clutter/cogl/cogl/cogl-framebuffer-private.h | 3 +++ clutter/cogl/cogl/cogl-framebuffer.c | 5 +++++ clutter/cogl/cogl/cogl.c | 10 ++++++++++ clutter/cogl/cogl/cogl.h | 3 +++ clutter/egl/clutter-stage-egl.c | 1 + clutter/fruity/clutter-backend-fruity.c | 1 + clutter/glx/clutter-stage-glx.c | 1 + clutter/osx/clutter-stage-osx.c | 1 + clutter/wayland/clutter-stage-wayland.c | 2 ++ clutter/win32/clutter-backend-win32.c | 5 ++++- 10 files changed, 31 insertions(+), 1 deletions(-) commit e150f474b3e9e58565dc894b4ae9234406d90675 Author: Robert Bragg Date: Wed Jan 12 19:30:30 2011 +0000 clip: rename get_clip_stack + add framebuffer_get_stack Instead of having _cogl_get/set_clip stack which reference the global CoglContext this instead makes those into CoglClipState method functions named _cogl_clip_state_get/set_stack that take an explicit pointer to a CoglClipState. This also adds _cogl_framebuffer_get/set_clip_stack convenience functions that avoid having to first get the ClipState from a framebuffer then the stack from that - so we can maintain the convenience of _cogl_get_clip_stack. clutter/cogl/cogl/cogl-clip-state.c | 21 +++------------------ clutter/cogl/cogl/cogl-clip-state.h | 21 +++------------------ clutter/cogl/cogl/cogl-framebuffer-private.h | 26 ++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-framebuffer.c | 17 +++++++++++++++++ clutter/cogl/cogl/cogl-journal.c | 5 ++++- 5 files changed, 53 insertions(+), 37 deletions(-) commit 179dc9b7d1d9d14227c7f4eef241faf2d1affda0 Author: Robert Bragg Date: Wed Jan 12 19:13:45 2011 +0000 clip-stack: Adds _cogl_clip_stack_get_bounds API This adds an internal function to be able to query the screen space bounding box of the current clip entries contained in a given CoglClipStack. This bounding box which is cheap to determine can be useful to know the largest extents that might be updated while drawing with this clip stack. For example the plan is to use this as part of an optimized read-pixel path handled on the CPU which will need to track the currently valid extents of the last call to cogl_clear() clutter/cogl/cogl/cogl-clip-stack.c | 45 ++++++++++++++++++++++++---------- clutter/cogl/cogl/cogl-clip-stack.h | 7 +++++ 2 files changed, 39 insertions(+), 13 deletions(-) commit f834596fd42b26d471a80cfec08c0d6e8c53f39a Author: Robert Bragg Date: Thu Jan 6 13:25:45 2011 +0000 journal: Support per-framebuffer journals Instead of having a single journal per context, we now have a CoglJournal object for each CoglFramebuffer. This means we now don't have to flush the journal when switching/pushing/popping between different framebuffers so for example a Clutter scene that involves some ClutterEffect actors that transiently redirect to an FBO can still be batched. This also allows us to track state in the journal that relates to the current frame of its associated framebuffer which we'll need for our optimization for using the CPU to handle reading a single pixel back from a framebuffer when we know the whole scene is currently comprised of simple rectangles in a journal. clutter/cogl/cogl/cogl-atlas-texture.c | 22 ++-- clutter/cogl/cogl/cogl-clip-state.c | 5 +- clutter/cogl/cogl/cogl-context.c | 6 - clutter/cogl/cogl/cogl-context.h | 12 +-- clutter/cogl/cogl/cogl-framebuffer-private.h | 23 ++++ clutter/cogl/cogl/cogl-framebuffer.c | 111 ++++++++++++++++++--- clutter/cogl/cogl/cogl-journal-private.h | 19 +++- clutter/cogl/cogl/cogl-journal.c | 140 +++++++++++++++++-------- clutter/cogl/cogl/cogl-pipeline-private.h | 3 + clutter/cogl/cogl/cogl-pipeline.c | 7 +- clutter/cogl/cogl/cogl-primitives.c | 9 ++- clutter/cogl/cogl/cogl-sub-texture.c | 3 +- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +- clutter/cogl/cogl/cogl-texture-2d.c | 2 +- clutter/cogl/cogl/cogl-texture-3d.c | 2 +- clutter/cogl/cogl/cogl-texture-private.h | 15 +++ clutter/cogl/cogl/cogl-texture-rectangle.c | 2 +- clutter/cogl/cogl/cogl-texture.c | 58 +++++++++++ clutter/cogl/cogl/cogl-vertex-attribute.c | 7 +- clutter/cogl/cogl/cogl.c | 20 +++- clutter/cogl/cogl/cogl2-path.c | 8 +- 21 files changed, 375 insertions(+), 101 deletions(-) commit 385e0f84c6179a30f9031aba974131e1cf3e6a4e Author: Robert Bragg Date: Wed Jan 12 20:37:53 2011 +0000 cogl-object: Adds an internal _cogl_object_set_user_data This adds an internal alternative to cogl_object_set_user_data that also passes an instance pointer to destroy notify callbacks. When setting private data on a CoglObject it's often desirable to know the instance being destroyed when we are being notified to free the private data due to the object being freed. The typical solution to this is to track a pointer to the instance in the private data itself so it can be identified but that usually requires an extra micro allocation for the private data that could have been avoided if only the callback were given an instance pointer. The new internal _cogl_object_set_user_data passes the instance pointer as a second argument which means it is ABI compatible for us to layer the public version on top of this internal function. clutter/cogl/cogl/cogl-object-private.h | 21 ++++++++++++++++++++- clutter/cogl/cogl/cogl-object.c | 24 +++++++++++++++++------- 2 files changed, 37 insertions(+), 8 deletions(-) commit 131578c13aeeb53d99d7c63a0b2ddaded23524fc Author: Robert Bragg Date: Wed Jan 5 15:30:04 2011 +0000 framebuffer: Move clear code to cogl-framebuffer.c This moves the implementation of cogl_clear into cogl-framebuffer.c as two new internal functions _cogl_framebuffer_clear and _cogl_framebuffer_clear4f. It's not clear if this is what the API will look like as we make more of the CoglFramebuffer API public due to the limitations of using flags to identify buffers when framebuffers may contain any number of ancillary buffers but conceptually it makes some sense to tie the operation of clearing a color buffer to a framebuffer. The short term intention is to enable tracking the current clear color as a property of the framebuffer as part of an optimization for reading back single pixels when the geometry is simple enough that we can compute the result quickly on the CPU. (If the point doesn't intersect any geometry we'll need to return the last clear color.) clutter/cogl/cogl/cogl-framebuffer-private.h | 20 +++++ clutter/cogl/cogl/cogl-framebuffer.c | 103 ++++++++++++++++++++++++++ clutter/cogl/cogl/cogl.c | 66 +--------------- clutter/cogl/cogl/cogl2-path.c | 4 +- 4 files changed, 129 insertions(+), 64 deletions(-) commit b7d26b2d02729b2d5eeb1650ca4e89a723afc1c7 Author: Emmanuele Bassi Date: Fri Jan 21 15:27:56 2011 +0000 test-devices: Actually print the axis data Returning in an if() block whose condition we assume to be true doesn't play nicely with having statements after the block. Let's fix that. tests/interactive/test-devices.c | 33 +++++++++++++++++---------------- 1 files changed, 17 insertions(+), 16 deletions(-) commit e46571d63911df23cb25fb0b3fcfe5e86f50d81b Author: Emmanuele Bassi Date: Fri Jan 21 15:26:52 2011 +0000 device-manager/xi2: Sync the stage of source devices Keep the slave devices in sync with their master, so that we don't ignore their events because they lack the stage pointer. clutter/x11/clutter-device-manager-xi2.c | 51 ++++++++++++++++++++---------- 1 files changed, 34 insertions(+), 17 deletions(-) commit 516366d7691128e9f2138781bcc144cd628b110f Author: Emmanuele Bassi Date: Fri Jan 21 15:14:11 2011 +0000 event: Clean up clutter_event_copy() Try to avoid duplication of variables and blocks. clutter/clutter-event.c | 46 +++++++++++++++++++++------------------------- 1 files changed, 21 insertions(+), 25 deletions(-) commit 7a339d1663b94e4cbc07ffa8a8c3bf0a47d84cae Author: Emmanuele Bassi Date: Fri Jan 21 14:12:19 2011 +0000 device: unset the axes array pointer when resetting Otherwise we'll get a nice realloc() error from glibc. clutter/clutter-input-device.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 4ab8a3f0c16b82d4f223de869e1b87279dcff272 Author: Emmanuele Bassi Date: Fri Jan 21 11:43:00 2011 +0000 stage: Do not create the default stage on stage.is_default() Use the stage manager to see if a default stage was effectively set, otherwise we end up creating a default stage when destroying a non-default one. clutter/clutter-stage.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-) commit 0e993469155516dde673292bafe72d1c8308e27f Author: Emmanuele Bassi Date: Fri Jan 21 11:41:36 2011 +0000 device-manager/xi2: Fix device hotplugging Hierarchy and Device changed events come through with the X window set to be the root window, not the stage window. We need to whitelist them so that we can actually support hotplugging and device changes. clutter/x11/clutter-device-manager-xi2.c | 32 ++++++++---- tests/interactive/test-devices.c | 83 ++++++++++++++++++++++++++--- 2 files changed, 95 insertions(+), 20 deletions(-) commit 7514f5fe92844a57d33a4811fd20687bbb391c8b Author: Emmanuele Bassi Date: Fri Jan 21 10:49:12 2011 +0000 glx: Clean up GLX implementation Like commit a277b4091a3fa09a39cf001809c3048eb27f3952, but targeted at the GLX backend. clutter/glx/clutter-backend-glx.c | 22 +++++++------- clutter/glx/clutter-stage-glx.c | 57 +++++++++++++++++-------------------- clutter/glx/clutter-stage-glx.h | 2 +- 3 files changed, 38 insertions(+), 43 deletions(-) commit 6da51f6ed379f531bee72b688366dc734082a573 Author: Emmanuele Bassi Date: Fri Jan 21 10:24:34 2011 +0000 device/x11: Store min/max keycode in the XI device class The generic device class shouldn't have the minimum and maximum keycode, since no other input backend provides those. clutter/clutter-device-manager-private.h | 8 ++------ clutter/clutter-input-device.c | 18 +++--------------- clutter/x11/clutter-device-manager-core-x11.c | 10 +++++++--- clutter/x11/clutter-device-manager-xi2.c | 6 ++---- clutter/x11/clutter-input-device-core-x11.c | 9 ++++++--- 5 files changed, 20 insertions(+), 31 deletions(-) commit a277b4091a3fa09a39cf001809c3048eb27f3952 Author: Emmanuele Bassi Date: Thu Jan 20 15:39:28 2011 +0000 x11: Hide all private symbols The x11 backend exposes a lot of symbols that are meant to only be used when implementing a subclassed backend, like the glx and eglx ones. The uninstalled headers are also filled with cruft declarations of functions long since removed. Let's try to clean up this mess. clutter/egl/clutter-backend-egl.c | 13 +++++++++---- clutter/glx/clutter-backend-glx.c | 19 ++++++++++++++----- clutter/x11/clutter-backend-x11.c | 28 ++++++++++------------------ clutter/x11/clutter-backend-x11.h | 31 +++---------------------------- clutter/x11/clutter-keymap-x11.c | 4 ++-- clutter/x11/clutter-keymap-x11.h | 4 ++-- clutter/x11/clutter-stage-x11.c | 12 +++++++----- clutter/x11/clutter-stage-x11.h | 13 ++----------- 8 files changed, 49 insertions(+), 75 deletions(-) commit 89467abae591fb07afed507323f086264d73e68d Author: Emmanuele Bassi Date: Wed Jan 19 17:03:27 2011 +0000 docs: More documentation fixes for InputDevice clutter/clutter-input-device.c | 107 +++++++++++++++++++++++----- doc/reference/clutter/clutter-sections.txt | 10 ++- 2 files changed, 95 insertions(+), 22 deletions(-) commit 0f56abf569d524bd42d4a3cdc6a5321a3de2b7f9 Author: Emmanuele Bassi Date: Wed Jan 19 16:34:49 2011 +0000 */event: Never manipulate the event queue directly Always use _clutter_event_push() instead. clutter/egl/clutter-event-tslib.c | 2 +- clutter/evdev/clutter-device-manager-evdev.c | 5 +--- clutter/wayland/clutter-input-device-wayland.c | 26 ++++++----------------- clutter/win32/clutter-event-win32.c | 6 +---- 4 files changed, 10 insertions(+), 29 deletions(-) commit 400ecdfc81d19ab27cbc7a4f416b6fc109556ebf Author: Emmanuele Bassi Date: Wed Jan 19 16:34:37 2011 +0000 win32: Update DeviceManager device creation clutter/win32/clutter-device-manager-win32.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) commit 73cf6bd52c282acc1cdb67724d2b55d3f822f7ef Author: Emmanuele Bassi Date: Wed Jan 19 16:23:45 2011 +0000 device: Allow enabling/disabling non-master devices Slave and floating devices should always be disabled, and not deliver events to the scene. It is up to the user to enable non-master devices and handle events coming from them. ClutterInputDevice gets a new :enabled property, defaulting to FALSE; when a device manager creates a new device it has to set it to TRUE if the :device-mode property is set to CLUTTER_INPUT_MODE_MASTER. The main event queue entry point, _clutter_event_push(), will automatically discard events coming from disabled devices. clutter/clutter-device-manager-private.h | 3 +- clutter/clutter-event.c | 9 +++ clutter/clutter-input-device.c | 66 +++++++++++++++++++++++++ clutter/clutter-input-device.h | 3 + clutter/x11/clutter-device-manager-core-x11.c | 3 + clutter/x11/clutter-device-manager-xi2.c | 10 +++- tests/interactive/test-devices.c | 10 +++- 7 files changed, 100 insertions(+), 4 deletions(-) commit 137f7d42a8db40a85ae95b10d9ed0fa895f48b0a Author: Emmanuele Bassi Date: Wed Jan 19 15:17:34 2011 +0000 backend/eglx: Add newly created stages to the translators The events directed to the stage should be translated by the stage. clutter/egl/clutter-backend-egl.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit d3ed3d3a7b3950160a3351d54e766628fd916ad8 Author: Emmanuele Bassi Date: Wed Jan 19 13:54:27 2011 +0000 device: Add more doc annotations Even for internal API. clutter/clutter-input-device.c | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) commit 50e52f550a14e86a689673ce898970337cc46e8b Author: Emmanuele Bassi Date: Wed Jan 19 13:53:20 2011 +0000 device: Use a double for translate_axis() argument While XI1 has axis data in events exposed as integers, XI2 uses double precision floating point values. clutter/clutter-device-manager-private.h | 2 +- clutter/clutter-input-device.c | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) commit f54044f7e45fe37538187ca06f7d378ae8d64800 Author: Emmanuele Bassi Date: Wed Jan 19 13:52:33 2011 +0000 test-devices: Clean up and show axes data tests/interactive/test-devices.c | 106 +++++++++++++++++++++++++++++++++----- 1 files changed, 92 insertions(+), 14 deletions(-) commit d078fe09301db384b7a465b86ad83dab860576b4 Author: Emmanuele Bassi Date: Tue Jan 18 22:31:14 2011 +0000 event: Fix up clutter_event_copy() We need to copy the scroll axis data, and we need to copy the private Event data from the source event to the target event structure. clutter/clutter-event.c | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) commit 405e611279321ebe293e02b4507899355f49cc64 Author: Emmanuele Bassi Date: Tue Jan 18 22:30:21 2011 +0000 device/xi2: Translate the axis data after setting devices We need the devices (source and virtual) to be set before translating the axis data from XI2 to the Clutter event. clutter/x11/clutter-device-manager-xi2.c | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-) commit dd5f6ca7e1b5042beca6363109424565a7d8223b Author: Emmanuele Bassi Date: Tue Jan 18 17:33:22 2011 +0000 device: Add more accessors for properties Allow using real accessor methods for getting the ClutterInputDevice properties set on construction. clutter/clutter-input-device.c | 38 ++++++++++++++++++++++++++++ clutter/clutter-input-device.h | 2 + doc/reference/clutter/clutter-sections.txt | 2 + 3 files changed, 42 insertions(+), 0 deletions(-) commit ad06f1b20fcac9167f456ba21674d8f7a2c0cd3b Author: Emmanuele Bassi Date: Tue Jan 18 16:57:14 2011 +0000 docs: Update API reference doc/reference/clutter/clutter-sections.txt | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 333ca35ceca739388be36cf48514fcb68f3b7aef Author: Emmanuele Bassi Date: Tue Jan 18 16:55:14 2011 +0000 device: Add get_axis_value() We need a convenience function for extracting the value of a specific axis type out of the array of axis values attached to events. clutter/clutter-input-device.c | 47 ++++++++++++++++++++++++++++++++++++++++ clutter/clutter-input-device.h | 4 +++ 2 files changed, 51 insertions(+), 0 deletions(-) commit d805237c313f5e2ce85b93fd167569c25b702163 Author: Emmanuele Bassi Date: Tue Jan 18 16:54:12 2011 +0000 event: Add accessor for the axes field CLUTTER_BUTTON_* and CLUTTER_MOTION event types have axes data attached to them, so we want to expose a common ClutterEvent method for extracting that data. clutter/clutter-event.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-event.h | 2 + 2 files changed, 59 insertions(+), 0 deletions(-) commit 431200f40dad93bcaeff76ad34f3fdd431d5a8f2 Author: Emmanuele Bassi Date: Tue Jan 18 16:13:26 2011 +0000 device: Add keys and axes accessors Allow retrieving the number of keys and axes, since we provide the API to iterate over them both. clutter/clutter-device-manager-private.h | 2 - clutter/clutter-input-device.c | 30 +++++++++++++++++++++----- clutter/clutter-input-device.h | 3 ++ clutter/x11/clutter-device-manager-xi2.c | 2 +- clutter/x11/clutter-input-device-core-x11.c | 3 +- doc/reference/clutter/clutter-sections.txt | 10 +++++++- 6 files changed, 37 insertions(+), 13 deletions(-) commit b662a070f2c5ebe2af479fd0290745ad923b3c42 Author: Emmanuele Bassi Date: Tue Jan 18 15:42:02 2011 +0000 docs: Update dependencies in README README | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 0a869e0718331737a1126da861222f7b0162fcce Author: Emmanuele Bassi Date: Tue Jan 18 14:16:11 2011 +0000 egl/x11: Defer X11-specific code to the X11 backend The ClutterStageX11 implementation does most of the heavy lifting, so subclasses like ClutterStageGLX and ClutterStageEGL do not need to handle things like creating the stage Window and selecting events; just chaining up and using the internal API will suffice. clutter/egl/clutter-stage-egl.c | 108 +++------------------------------------ 1 files changed, 8 insertions(+), 100 deletions(-) commit a3102a777ead15f7ba4b671bd25fd642762fec57 Author: Emmanuele Bassi Date: Tue Jan 18 14:09:04 2011 +0000 docs: Fill out documentation for new symbols clutter/clutter-event.c | 82 ++++++++++++++++++++++++++++ clutter/clutter-event.h | 1 + clutter/clutter-input-device.c | 37 +++++++++++++ clutter/clutter-input-device.h | 29 ++++++++++ clutter/clutter-private.h | 4 ++ clutter/x11/clutter-device-manager-xi2.c | 39 ++++++++++---- doc/reference/clutter/Makefile.am | 1 + doc/reference/clutter/clutter-sections.txt | 12 ++++- 8 files changed, 194 insertions(+), 11 deletions(-) commit fa3c5a28a7b82d817ae7b83a058158a101e1e4b0 Author: Emmanuele Bassi Date: Tue Jan 18 13:15:20 2011 +0000 backend/x11: Allow querying xinput support Undeprecate the XInput-related X11 API: since we don't enable XI support by default we still need to ask for it, and see if we have it after the backend initialization sequence. clutter/x11/clutter-backend-x11.c | 14 ++++++++------ clutter/x11/clutter-backend-x11.h | 5 +---- 2 files changed, 9 insertions(+), 10 deletions(-) commit c8cc03f8a7b13db01a71c4a597c05a7b94ba664c Author: Emmanuele Bassi Date: Tue Jan 18 13:08:09 2011 +0000 event/x11: Epic clean up Event translation is now done where it belongs: we don't need a massive switch in a file with direct access to private structure members. So long, event_translate(); and thanks for all the fish. clutter/x11/clutter-event-x11.c | 869 --------------------------------------- 1 files changed, 0 insertions(+), 869 deletions(-) commit c044e44dc798a4afede519abe430ff6a20bd745d Author: Emmanuele Bassi Date: Tue Jan 18 13:07:36 2011 +0000 device/x11: Use similar core for axis translation as XI2 clutter/x11/clutter-input-device-core-x11.c | 39 +++++++++++++-------------- 1 files changed, 19 insertions(+), 20 deletions(-) commit c9c6236d3786ed3f69f170b02523e08a91b7f644 Author: Emmanuele Bassi Date: Tue Jan 18 13:05:46 2011 +0000 stage/x11: Do not check a boolean for equality Booleans should only be used like direct conditions, never as comparisons with TRUE or FALSE. clutter/x11/clutter-stage-x11.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) commit ee15d0d2d01a02e426cbb8c340738e4f8411fc4f Author: Emmanuele Bassi Date: Tue Jan 18 13:05:17 2011 +0000 Add copyright and licensing blurbs clutter/x11/clutter-input-device-core-x11.h | 23 +++++++++++++++++++++++ clutter/x11/clutter-input-device-xi2.c | 23 +++++++++++++++++++++++ clutter/x11/clutter-input-device-xi2.h | 23 +++++++++++++++++++++++ 3 files changed, 69 insertions(+), 0 deletions(-) commit 2cb0077f7d7260109f0974d260cb4ed63ade6e9e Author: Emmanuele Bassi Date: Tue Jan 18 13:03:07 2011 +0000 device/xi2: Implement get_core_device() We ask XI2 to get the client pointer for CLUTTER_POINTER_DEVICE, and we use the attached keyboard device for CLUTTER_KEYBOARD_DEVICE. For everything else, we return NULL. clutter/x11/clutter-device-manager-xi2.c | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) commit 9c48486d7ac73aa55b69a70cf1ef7009a0af2a09 Author: Emmanuele Bassi Date: Tue Jan 18 13:02:15 2011 +0000 device/xi2: Remove the ::remove implementation Removing a device is only internal API, and we already have a function for that: we don't need to implement the DeviceManager virtual as well. clutter/x11/clutter-device-manager-xi2.c | 18 ++---------------- 1 files changed, 2 insertions(+), 16 deletions(-) commit 0075c45ca49569988fb6b8f1b4a60cd4e77be287 Author: Emmanuele Bassi Date: Tue Jan 18 13:01:27 2011 +0000 device/xi2: Blow the cached devices list Every time we add or remove a device we should clear the cached list that we return in get_devices(), so that it gets repopulated. clutter/x11/clutter-device-manager-xi2.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) commit de93f721c1314321bf78acec2f50d5a481210ec9 Author: Emmanuele Bassi Date: Tue Jan 18 12:59:49 2011 +0000 Clean up the copyright and licensing blurbs clutter/glx/clutter-stage-glx.c | 9 +++++---- clutter/x11/clutter-device-manager-core-x11.c | 2 +- clutter/x11/clutter-device-manager-core-x11.h | 2 +- clutter/x11/clutter-device-manager-xi2.c | 2 +- clutter/x11/clutter-device-manager-xi2.h | 2 +- clutter/x11/clutter-input-device-core-x11.c | 23 +++++++++++++++++++++++ 6 files changed, 32 insertions(+), 8 deletions(-) commit 7c25b063aafc21527413106dca6db3fcb50bd5ad Author: Emmanuele Bassi Date: Tue Jan 18 12:57:50 2011 +0000 x11: Use XI2 API only if we support it XIQueryVersion() is XI2 API. clutter/x11/clutter-backend-x11.c | 43 +++++++++++++++++++++++++++--------- 1 files changed, 32 insertions(+), 11 deletions(-) commit caf359d8c9a110797e9ad64a7cb3600b7b964275 Author: Emmanuele Bassi Date: Tue Jan 18 12:57:12 2011 +0000 input-device: Add documentation clutter/clutter-input-device.c | 48 +++++++++++++++++++++++++++++++++++++++- clutter/clutter-input-device.h | 2 +- 2 files changed, 48 insertions(+), 2 deletions(-) commit 342cdd25756b37745bfd1725d78f6f670f77bee0 Author: Emmanuele Bassi Date: Mon Jan 17 17:01:58 2011 +0000 input-device: Move select_stage_events() to a vfunc Don't use a signal, use a virtual function. clutter/clutter-device-manager-private.h | 4 +++ clutter/clutter-input-device.c | 28 ++++---------------------- clutter/x11/clutter-input-device-core-x11.c | 5 +-- clutter/x11/clutter-input-device-xi2.c | 5 +-- 4 files changed, 13 insertions(+), 29 deletions(-) commit 2777c52f2759513c8e4b66e474ed2da587bd5de5 Author: Emmanuele Bassi Date: Mon Jan 17 16:56:07 2011 +0000 input-device: Make ClutterInputDeviceClass private We keep the symbol in the public header, but the definition is now private. You could not sub-class InputDevice anyway, without the instance structure, and the lack of padding in the class made actually implementing devices in backends really hard. clutter/clutter-device-manager-private.h | 5 +++++ clutter/clutter-input-device.h | 14 -------------- 2 files changed, 5 insertions(+), 14 deletions(-) commit 001f84875aa5a0f0871b0f86a73d4c1972c12430 Author: Emmanuele Bassi Date: Mon Jan 17 16:42:18 2011 +0000 Enable XInput support by default Since we have a decent XI1 and XI2 implementation, now, we should turn the support for XInput on by default. The actual implementation to be used at run-time is still left to be decided by the user. configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 1b1e77b46989ba97bfff8abdfa61df0f514a7eae Author: Emmanuele Bassi Date: Tue Jan 4 12:32:04 2011 +0000 event/x11: Rework the way we translate X11 events This is a lump commit that is fairly difficult to break down without either breaking bisecting or breaking the test cases. The new design for handling X11 event translation works this way: - ClutterBackend::translate_event() has been added as the central point used by a ClutterBackend implementation to translate a native event into a ClutterEvent; - ClutterEventTranslator is a private interface that should be implemented by backend-specific objects, like stage implementations and ClutterDeviceManager sub-classes, and allows dealing with class-specific event translation; - ClutterStageX11 implements EventTranslator, and deals with the stage-relative X11 events coming from the X11 event source; - ClutterStageGLX overrides EventTranslator, in order to deal with the INTEL_GLX_swap_event extension, and it chains up to the X11 default implementation; - ClutterDeviceManagerX11 has been split into two separate classes, one that deals with core and (optionally) XI1 events, and the other that deals with XI2 events; the selection is done at run-time, since the core+XI1 and XI2 mechanisms are mutually exclusive. All the other backends we officially support still use their own custom event source and translation function, but the end goal is to migrate them to the translate_event() virtual function, and have the event source be a shared part of Clutter core. clutter/Makefile.am | 24 +- clutter/clutter-backend-private.h | 8 + clutter/clutter-backend.c | 12 + clutter/clutter-device-manager-private.h | 105 ++- clutter/clutter-device-manager.c | 29 + clutter/clutter-device-manager.h | 1 + clutter/clutter-event-translator.c | 38 + clutter/clutter-event-translator.h | 40 + clutter/clutter-event.c | 77 ++- clutter/clutter-event.h | 51 -- clutter/clutter-input-device.c | 476 ++++++++++- clutter/clutter-input-device.h | 57 +- clutter/clutter-marshal.list | 1 + clutter/clutter-private.h | 3 + clutter/clutter-types.h | 51 ++ clutter/glx/clutter-backend-glx.c | 11 +- clutter/glx/clutter-event-glx.c | 105 --- clutter/glx/clutter-event-glx.h | 38 - clutter/glx/clutter-stage-glx.c | 186 ++--- clutter/x11/clutter-backend-x11.c | 358 +++++++-- clutter/x11/clutter-backend-x11.h | 55 +- clutter/x11/clutter-device-manager-core-x11.c | 745 +++++++++++++++++ clutter/x11/clutter-device-manager-core-x11.h | 70 ++ clutter/x11/clutter-device-manager-x11.c | 354 --------- clutter/x11/clutter-device-manager-x11.h | 68 -- clutter/x11/clutter-device-manager-xi2.c | 1058 +++++++++++++++++++++++++ clutter/x11/clutter-device-manager-xi2.h | 66 ++ clutter/x11/clutter-event-x11.c | 116 +-- clutter/x11/clutter-input-device-core-x11.c | 414 ++++++++++ clutter/x11/clutter-input-device-core-x11.h | 26 + clutter/x11/clutter-input-device-x11.c | 228 ------ clutter/x11/clutter-input-device-x11.h | 25 - clutter/x11/clutter-input-device-xi2.c | 161 ++++ clutter/x11/clutter-input-device-xi2.h | 22 + clutter/x11/clutter-stage-x11.c | 552 +++++++++++++- clutter/x11/clutter-stage-x11.h | 9 + configure.ac | 50 +- tests/interactive/test-devices.c | 13 + 38 files changed, 4436 insertions(+), 1267 deletions(-) commit ca092477c2d3fcc74384c3f46216802db32ba0d9 Author: Emmanuele Bassi Date: Thu Jan 20 16:18:16 2011 +0000 Appease the gods in introspection Reduce the amount of bogus warnings g-ir-scanner prints out. clutter/clutter-align-constraint.c | 2 -- clutter/clutter-align-constraint.h | 3 ++- clutter/clutter-backend-private.h | 1 - clutter/clutter-backend.h | 9 +++++++++ clutter/clutter-bind-constraint.c | 2 -- clutter/clutter-bind-constraint.h | 3 ++- clutter/clutter-binding-pool.c | 1 - clutter/clutter-binding-pool.h | 1 + clutter/clutter-blur-effect.c | 2 -- clutter/clutter-blur-effect.h | 1 + clutter/clutter-colorize-effect.c | 2 -- clutter/clutter-colorize-effect.h | 3 ++- clutter/clutter-desaturate-effect.c | 2 -- clutter/clutter-desaturate-effect.h | 1 + clutter/clutter-page-turn-effect.c | 2 -- clutter/clutter-page-turn-effect.h | 1 + clutter/clutter-path-constraint.c | 2 -- clutter/clutter-path-constraint.h | 3 ++- clutter/clutter-settings.c | 2 -- clutter/clutter-settings.h | 1 + clutter/clutter-snap-constraint.c | 2 -- clutter/clutter-snap-constraint.h | 3 ++- doc/reference/clutter/clutter-sections.txt | 17 ++++++++++++++--- 23 files changed, 38 insertions(+), 28 deletions(-) commit 439553a1b7e7d6a1731df7124b74545881ce4fbf Author: Emmanuele Bassi Date: Thu Jan 20 13:44:16 2011 +0000 Update the NEWS file NEWS | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) commit ef7810422764f7297f295a7c8189204de1eb4c3f Author: Emmanuele Bassi Date: Thu Jan 20 13:29:37 2011 +0000 Expose deprecated symbols whilst building Clutter Don't use ugly "#undef CLUTTER_DISABLE_DEPRECATED" inside source code using deprecated symbols; we have the handy CLUTTER_COMPILATION define that we can use as part of the "disable deprecated" conditional. clutter/clutter-actor.c | 4 +--- clutter/clutter-behaviour-depth.c | 1 - clutter/clutter-behaviour-depth.h | 2 +- clutter/clutter-behaviour-ellipse.c | 1 - clutter/clutter-behaviour-ellipse.h | 2 +- clutter/clutter-behaviour-opacity.c | 1 - clutter/clutter-behaviour-opacity.h | 2 +- clutter/clutter-behaviour-path.c | 1 - clutter/clutter-behaviour-path.h | 2 +- clutter/clutter-behaviour-rotate.c | 1 - clutter/clutter-behaviour-rotate.h | 2 +- clutter/clutter-behaviour-scale.c | 1 - clutter/clutter-behaviour-scale.h | 2 +- clutter/clutter-behaviour.c | 1 - clutter/clutter-behaviour.h | 4 ++-- clutter/clutter-frame-source.h | 2 +- clutter/clutter-timeout-pool.c | 1 - clutter/clutter-timeout-pool.h | 2 +- 18 files changed, 11 insertions(+), 21 deletions(-) commit cd96e631f15ee623116cf3d330cc046e7855ee56 Author: Emmanuele Bassi Date: Thu Jan 20 13:19:03 2011 +0000 glx: Deprecate ClutterGLXTexturePixmap Since 1.4 the ClutterGLXTexturePixmap is just a wrapper around ClutterX11TexturePixmap, so we can safely deprecate it. All the functionality it provided is now effectively available from the superclass or directly from Cogl. clutter/glx/clutter-glx-texture-pixmap.c | 23 +++++++++++++++-------- clutter/glx/clutter-glx-texture-pixmap.h | 12 ++++++++---- 2 files changed, 23 insertions(+), 12 deletions(-) commit 770bcd5b4042818008e3fbbfab8e11722681a5fa Author: Emmanuele Bassi Date: Thu Jan 20 12:59:56 2011 +0000 test-pixmap: Remove the GLX code The ClutterGLXTexturePixmap actor is just a wrapper around ClutterX11TexturePixmap, since the relevant texture-from-pixmap code has been moved down to Cogl. tests/interactive/test-pixmap.c | 41 --------------------------------------- 1 files changed, 0 insertions(+), 41 deletions(-) commit a2d6edd4223fc18a9b3902e388ddd105db468f32 Author: Emmanuele Bassi Date: Wed Jan 19 18:51:01 2011 +0000 test-pixmap: Fix up compilation on EGLX We need to check for the GLX windowing system if we are to include clutter-glx.h. tests/interactive/test-pixmap.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 62a0584f115f4a1cc6138c2915d90e24c69c4002 Author: Emmanuele Bassi Date: Wed Jan 19 17:54:28 2011 +0000 docs: Ignore clutter-config.h when scanning headers doc/reference/clutter/Makefile.am | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit a43c5f10bb5f3273378fedecd618260b96499cff Author: Emmanuele Bassi Date: Wed Jan 19 14:36:30 2011 +0000 tests: Try to drop including config.h The config.h header should be considered a Clutter internal header, and the test cases (especially the interactive test cases) should strive to never rely on internal headers. tests/interactive/test-cogl-offscreen.c | 1 - tests/interactive/test-cogl-primitives.c | 6 ++-- tests/interactive/test-cogl-tex-convert.c | 1 - tests/interactive/test-cogl-tex-foreign.c | 1 - tests/interactive/test-cogl-tex-getset.c | 1 - tests/interactive/test-cogl-tex-polygon.c | 1 - tests/interactive/test-cogl-tex-tile.c | 1 - tests/interactive/test-cogl-vertex-buffer.c | 1 - tests/interactive/test-paint-wrapper.c | 8 +---- tests/interactive/test-pixmap.c | 34 ++++++++++++++++---------- tests/interactive/test-textures.c | 4 --- 11 files changed, 26 insertions(+), 33 deletions(-) commit 94b905b9e110c671698a0cd59fa827f6ddb0a84d Author: Emmanuele Bassi Date: Wed Jan 19 14:33:27 2011 +0000 build: Generate an instealled config header Clutter has some platform-specific API that is accessible only if the right backend has been compiled in. Third party applications that wish to be portable across backends might want to use defines and other pre-processor tricks to determine header inclusion and API usage. While Clutter has an internal set of symbols it can use, third party applications don't have the luxury of being able to access the config.h generated by Clutter's configure script. For this reason, Clutter should install a configuration header with a series of namespaced defines that can be picked up by applications and other third party code. .gitignore | 1 + clutter/Makefile.am | 5 +++++ clutter/clutter-config.h.in | 16 ++++++++++++++++ clutter/clutter.h | 2 ++ configure.ac | 30 ++++++++++++++++++++++++++++++ 5 files changed, 54 insertions(+), 0 deletions(-) commit 90a01b479c432310f9fcfb5fcd04e23d8fc1a92a Author: Emmanuele Bassi Date: Tue Jan 18 15:14:58 2011 +0000 Update the NEWS file NEWS | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) commit bb41cb54cbdbb21f3be26ac14c07fd1c804b4d31 Author: Chris Lord Date: Tue Jan 18 15:48:29 2011 +0000 timeline: Check if the timeline is playing in do_tick Check that the timeline is still playing before executing in _clutter_timeline_do_tick. This fixes the possibility of receiving a new-frame signal when stopping a timeline in response to a different timeline's signal emission. clutter/clutter-timeline.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) commit c61e22d06787effcd4c260a817ba4845d5eedfdb Author: Lucas Rocha Date: Mon Jan 17 18:28:49 2011 +0000 drag-action: fix case where motion events are indefinitely disabled When drag threshold is not reached, emit_drag_begin() is not called causing default value of priv->motion_events_enabled (false) to used to restore motion events enabled state in Clutter. This causes drag action to indefinitely disable motion events. The current value of motion events enabled state is now queried on button press which guarantees that the state will be restored with the correct value in emit_drag_end() http://bugzilla.clutter-project.org/show_bug.cgi?id=2522 clutter/clutter-drag-action.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit cecc7a4bfbae6dc4891f3cd1888e85fc1148dc1a Author: Emmanuele Bassi Date: Tue Jan 18 14:46:02 2011 +0000 stage: Fix gtk-doc annotation for set_accept_focus() clutter/clutter-stage.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 5d8b6aa6fa2c51b72079d52766e5013ff612af19 Author: Bastian Winkler Date: Fri Jan 14 14:53:05 2011 +0100 introspection: Add missing (out) annotations for get_color() Some actors are missing the (out) annotations for the get_color() methods. http://bugzilla.clutter-project.org/show_bug.cgi?id=2518 clutter/clutter-rectangle.c | 4 ++-- clutter/clutter-stage.c | 2 +- clutter/clutter-text.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 54d00ebaf0a0084c7b0580a7b234e214ce95dd16 Author: Emmanuele Bassi Date: Mon Jan 17 17:30:47 2011 +0000 docs: Add ClutterClickAction.get_state() doc/reference/clutter/clutter-sections.txt | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 6af7b76cb5959616ea828678e1fb0258a7a04d2d Author: Lucas Rocha Date: Mon Jan 17 00:38:04 2011 +0000 click-action: add API to get modifier type This is to allow implementing modified click such as ctrl+click, shift+click, and so on. http://bugzilla.clutter-project.org/show_bug.cgi?id=2520 clutter/clutter-click-action.c | 37 +++++++++++++++++++++++++++++++++++++ clutter/clutter-click-action.h | 6 ++++-- 2 files changed, 41 insertions(+), 2 deletions(-) commit 6100aee5bd8d1c11fcaf6f7b3ac9a9317fbe39af Author: Damien Lespiau Date: Mon Jan 17 15:22:48 2011 +0000 color: Mark the new static color API as being new from 1.6 The patch was written a while ago but only merged in the 1.5.x cycle. clutter/clutter-color.c | 2 +- clutter/clutter-color.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit ae9781e5266464314fda19ab8495e9824edbcdfb Author: Neil Roberts Date: Mon Jan 17 12:21:33 2011 +0000 cogl-program: Don't use separate definitions on GLES 1.1 Previously most of the code for cogl-program and cogl-shader was ifdef'd out for GLES 1.1 and alternate stub definitions were defined. This patch removes those and instead puts #ifdef's directly in the functions that need it. This should make it a little bit easier to maintain. http://bugzilla.clutter-project.org/show_bug.cgi?id=2516 clutter/cogl/cogl/cogl-program.c | 105 +++++--------------------------------- clutter/cogl/cogl/cogl-shader.c | 91 +++++++++++--------------------- 2 files changed, 44 insertions(+), 152 deletions(-) commit b7677d047df6b8c96605454717873bbcb1722763 Author: Neil Roberts Date: Mon Jan 17 12:20:06 2011 +0000 cogl-pipeline-opengl: #ifdef out set_glsl_program for GLES 1.1 glUseProgram is not available under GLES 1.1 so it was breaking the build. http://bugzilla.clutter-project.org/show_bug.cgi?id=2516 clutter/cogl/cogl/cogl-pipeline-opengl.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) commit 568d32acf3604a9c68556224844a839f0e014bcf Author: Neil Roberts Date: Mon Jan 17 12:06:13 2011 +0000 cogl-pipeline: Fix the enum names for the constant combine source When determining whether to hash the combine constant Cogl checks the arguments to the combine funcs to determine whether the combine constant is used. However is was using the GLenums GL_CONSTANT_COLOR and GL_CONSTANT_ALPHA but these are not valid values for the CoglPipelineCombineSource enum so presumably the constant would never get hashed. This patch makes it use Cogl's enum of COGL_PIPELINE_COMBINE_SOURCE_CONSTANT instead. http://bugzilla.clutter-project.org/show_bug.cgi?id=2516 clutter/cogl/cogl/cogl-pipeline.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) commit 0c070cdf91c2956ba057364eb63cc422a79b6c88 Author: Adel Gadllah Date: Sun Jan 16 23:19:28 2011 +0100 ClutterX11TexturePixmap: Fix doc comment The wrong signal name was used probably a copy & paste mistake, fix that. clutter/x11/clutter-x11-texture-pixmap.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 88fe56d1752ad64f404da2baa1bc74f2ebbae64c Author: Neil Roberts Date: Thu Jan 13 15:54:50 2011 +0000 cogl-buffer: Support mapping buffers for write on GLES GLES has an extension called GL_OES_mapbuffer to support mapping buffer objects but only for writing. Cogl now has two new feature flags to advertise whether mapping for reading and writing is supported. Under OpenGL, these features are always set if the VBO extension is advertised and under GLES only the write flag is set if the GL_OES_mapbuffer extension is advertised. clutter/cogl/cogl/cogl-buffer.c | 44 +++++++++----------- clutter/cogl/cogl/cogl-types.h | 8 +++- .../cogl/driver/gl/cogl-feature-functions-gl.h | 4 +- .../cogl/driver/gles/cogl-feature-functions-gles.h | 12 +++++ 4 files changed, 42 insertions(+), 26 deletions(-) commit 7e73f0d4232338741e2dc811cdb2039287f384bb Author: Neil Roberts Date: Thu Jan 13 15:36:08 2011 +0000 cogl: Enable the VBOs feature for GLES2 The GLES2 wrapper code has been removed so there are no longer any problems with enabling VBOs. clutter/cogl/cogl/driver/gles/cogl-gles.c | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-) commit 9bb74988d5b7c7df3678185ed4488c9957f00a9d Author: Neil Roberts Date: Thu Jan 13 15:35:30 2011 +0000 cogl: Fallback to set_data when mapping a buffer to fill it In the journal code and when generating the stroke path the vertices are generated on the fly and stored in a CoglBuffer using cogl_buffer_map. However cogl_buffer_map is allowed to fail but it wasn't checking for a NULL return value. In particular on GLES it will always fail because glMapBuffer is only provided by an extension. This adds a new pair of internal functions called _cogl_buffer_{un,}map_for_fill_or_fallback which wrap cogl_buffer_map. If the map fails then it will instead return a pointer into a GByteArray attached to the context. When the buffer is unmapped the array is copied into the buffer using cogl_buffer_set_data. clutter/cogl/cogl/cogl-buffer-private.h | 19 ++++++++++-- clutter/cogl/cogl/cogl-buffer.c | 51 +++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-context.c | 5 +++ clutter/cogl/cogl/cogl-context.h | 6 ++++ clutter/cogl/cogl/cogl-journal.c | 5 +-- clutter/cogl/cogl/cogl2-path.c | 7 ++-- 6 files changed, 83 insertions(+), 10 deletions(-) commit 77a486caf2c130341624ab56e588ab116c7e8e26 Author: Neil Roberts Date: Thu Jan 13 14:12:10 2011 +0000 cogl-context: Don't enable point sprites on GLES2 On GLES2 there's no builtin mechanism to replace texture coordinates with point sprite coordinates so calling glEnable(GL_POINT_SPRITE) isn't valid. Instead the point sprite coords are implemented by using a special builtin varying variable in GLSL. clutter/cogl/cogl/cogl-context.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) commit 88a085fdd86e3f1f285833f2f4df19af339c339c Author: Robert Bragg Date: Tue Jan 11 16:02:06 2011 +0000 pipeline: differentiate texture target and data state There are several places where we need to compare the texture state of a pipeline and sometimes we need to take into consideration if the underlying texture has changed but other times we may only care to know if the texture target has changed. For example the fragends typically generate programs that they want to share with all pipelines with equivalent fragment processing state, and in this case when comparing pipelines we only care about the texture targets since changes to the underlying texture won't affect the programs generated. Prior to this we had tried to handle this by passing around some special flags to various functions that evaluate pipeline state to say when we do/don't care about the texture data, but this wasn't working in all cases and was more awkward to manage than the new approach. Now we simply have two state bits: COGL_PIPELINE_LAYER_STATE_TEXTURE_TARGET and COGL_PIPELINE_LAYER_STATE_TEXTURE_DATA and CoglPipelineLayer has an additional target member. Since all the appropriate code takes masks of these state bits to determine what to evaluate we don't need any extra magic flags. clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 9 +- clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 25 +-- clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 3 +- clutter/cogl/cogl/cogl-pipeline-opengl.c | 9 +- clutter/cogl/cogl/cogl-pipeline-private.h | 28 +-- clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 3 +- clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 3 +- clutter/cogl/cogl/cogl-pipeline.c | 273 ++++++++++++++++------- 8 files changed, 223 insertions(+), 130 deletions(-) commit 8ab68d26a5c2e026bc422da13ab290ba3d432aa4 Author: Robert Bragg Date: Wed Jan 12 17:11:48 2011 +0000 pipeline: optimize state init if changing property When notifying that a pipeline property is going to change, then at times a pipeline will take over being the authority of the corresponding state group. Some state groups can contain multiple properties and so to maintain the integrity of all of the properties we have to initialize all the property values in the new authority. For state groups with only one property we don't have to initialize anything during the pre_change_notify() because we can assume the value will be initialized as part of the change being notified. This patch optimizes how we handle this initialization of state groups in a couple of ways; firstly we no longer do anything to initialize state-groups with only one property, secondly we no longer use _cogl_pipeline_copy_differences - (we have a new _cogl_pipeline_init_multi_property_sparse_state() func) so we can avoid lots calls to handle_automatic_blend_enable() which is sometimes seen high in sysprof profiles. clutter/cogl/cogl/cogl-pipeline-private.h | 161 ++++++++++++------- clutter/cogl/cogl/cogl-pipeline.c | 255 ++++++++++++++++++----------- 2 files changed, 266 insertions(+), 150 deletions(-) commit 5fc3122dadf948c5594478a3eae7deef391c62fe Author: Neil Roberts Date: Wed Jan 12 16:59:37 2011 +0000 test-cogl-shader-glsl: Disable the atlas for the hand texture Atlasing needs to be disabled for the hand texture so that it can work out the step value needed to fetch a neighbouring pixel in the blur shader. If the texture ends up in the atlas then the test can't know the actual size of the texture so it looks wrong. tests/interactive/test-cogl-shader-glsl.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit 3c9f72abbfcc7967aa399506adba0bfee4952bbc Author: Neil Roberts Date: Wed Jan 12 16:56:52 2011 +0000 cogl-atlas-texture: Don't disable atlas if can't read texture data Previously atlasing would be disabled if the GL driver does not support reading back texture data. This meant that atlasing would not happen on GLES. However we also require that the driver support FBOs and the texture data is only read back as a fallback if the FBO fails. Therefore the atlas should be ok on GLES 2 which has FBO support in core. clutter/cogl/cogl/cogl-atlas-texture.c | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) commit 12ceae548d441f0611542645a62f6c0cbf7a0c5f Author: Emmanuele Bassi Date: Tue Jan 11 21:34:37 2011 +0000 Post-release version bump to 1.5.13 configure.ac | 2 +- po/clutter-1.0.pot | 200 +++++++++++++++++++++++++++------------------------- po/de.po | 198 +++++++++++++++++++++++++++------------------------- po/fr.po | 199 +++++++++++++++++++++++++++------------------------- po/id.po | 199 +++++++++++++++++++++++++++------------------------- po/it.po | 200 +++++++++++++++++++++++++++------------------------- po/pl.po | 200 +++++++++++++++++++++++++++------------------------- po/zh_CN.po | 199 +++++++++++++++++++++++++++------------------------- 8 files changed, 730 insertions(+), 667 deletions(-)