commit a534ef65b1bfbc8dbedd9158a36a8895cab3649e Author: Emmanuele Bassi Date: Wed Jun 30 11:18:36 2010 +0100 Release 1.3.6 NEWS | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- 2 files changed, 103 insertions(+), 1 deletions(-) commit b9c5405c29b41c9cf5100255a225b4b3c8bccb8f Author: Emmanuele Bassi Date: Wed Jun 30 12:40:38 2010 +0100 Revert "build: Enable the cookbook on distcheck" The cookbook fails the distcheck phase, so we'll need to investigate this a little bit more. This reverts commit f2361a65de090dfe8aa05534cb9bc1c760555084. Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e9b16923bf77a748d561dca0da58e53e4cbfea72 Author: Emmanuele Bassi Date: Wed Jun 30 11:55:52 2010 +0100 build: Distcheck fixes doc/cookbook/Makefile.am | 28 ++++++++++++++-------------- doc/manual/Makefile.am | 8 ++++---- 2 files changed, 18 insertions(+), 18 deletions(-) commit 65b11a305db0c34808f293e3d1795aef361008c4 Author: Emmanuele Bassi Date: Wed Jun 30 11:55:16 2010 +0100 docs: Disable manual The manual never really took off, so we just ship it in the tarballs but we don't build it. doc/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 286f307c10db82ccdeb4c98e632073c7ed8a512c Author: Emmanuele Bassi Date: Wed Jun 30 11:30:45 2010 +0100 docs: Various fixes clutter/clutter-align-constraint.h | 14 +++++++------- clutter/clutter-bind-constraint.h | 2 +- clutter/clutter-settings.c | 8 ++++++++ doc/reference/clutter/clutter-sections.txt | 12 ++++++++++++ 4 files changed, 28 insertions(+), 8 deletions(-) commit 6341ba98f966ab08827a92c19eefe733fd02933b Author: Neil Roberts Date: Wed Jun 23 17:17:40 2010 +0100 test-cogl-path: Add tests for changing the fill rule This creates a path with an outer clockwise and two internal sub paths, one clockwise and one counter-clockwise. The path is then painted twice, once with each fill rule. tests/conform/test-cogl-path.c | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) commit 3a1456f34e17161b54ecd8ec55692e8a40c46456 Author: Neil Roberts Date: Wed Jun 23 13:40:43 2010 +0100 cogl-path: Allow changing the fill rule This adds two new API calls- cogl_path_set_fill_rule and cogl_path_get_fill_rule. This allows modifying the fill rule of the current path. In addition to the previous default fill rule of 'even-odd' it now supports the 'non-zero' rule. The fill rule is a property of the path (not the Cogl context) so creating a new path or preserving a path with cogl_path_get_handle affects the fill rule. clutter/cogl/cogl/cogl-path-private.h | 3 + clutter/cogl/cogl/cogl-path.c | 38 ++++++++++++ clutter/cogl/cogl/cogl-path.h | 88 +++++++++++++++++++++++----- doc/reference/cogl/Makefile.am | 6 +- doc/reference/cogl/cogl-sections.txt | 3 + doc/reference/cogl/fill-rule-even-odd.png | Bin 0 -> 3121 bytes doc/reference/cogl/fill-rule-non-zero.png | Bin 0 -> 3143 bytes doc/reference/cogl/fill-rule.png | Bin 3121 -> 0 bytes 8 files changed, 120 insertions(+), 18 deletions(-) commit 95317b9623efc5768d74098cc963de7854ca0805 Author: Neil Roberts Date: Mon Apr 19 11:24:24 2010 +0100 cogl-debug: Remove the force-scanline-paths option The scanline path rasterizer has been removed because the paths can be drawn with the tesselator instead. The option therefore no longer does anything. clutter/cogl/cogl/cogl-debug.c | 2 -- clutter/cogl/cogl/cogl-debug.h | 1 - 2 files changed, 0 insertions(+), 3 deletions(-) commit 0cdbe7e0981da7715451d10c9463491fcad1903e Author: Neil Roberts Date: Thu Apr 15 23:56:46 2010 +0100 cogl-path: Use the GLU tesselator to draw paths Instead of drawing paths using the stencil buffer trick, it now tesselates the path into triangles using the GLU tesselator and renders them directly. A vbo is created with one vertex for each node on the path. The tesselator is used to generate a series of indices into the vbo as triangles. The tesselator's output of strips and fans is converted into GL_TRIANGLES so that it can be rendered with a single draw call (but the vertices are still shared via the indices). The vbo is stored with the path so that if the application uses retained paths then Cogl won't have to tessellate again. The vertices also have texture coordinates associated with them so that it can replicate the old behaviour of drawing a material with a texture by fitting the texture to the bounding box of the path and then clipping it. However if the texture contains waste or is sliced then the vertex buffer code will refuse to draw it. In this case it will revert back to drawing the path into the stencil buffer and then drawing the material as a clipped quad. The VBO is used even when setting up the stencil buffer for clipping to a path because the tessellated geometry may cover less area. The old scanline rasterizer has been removed because the tesselator should work equally well on drivers with no stencil buffer. clutter/cogl/cogl/cogl-path-private.h | 5 + clutter/cogl/cogl/cogl-path.c | 737 ++++++++++++++++++++------------- 2 files changed, 463 insertions(+), 279 deletions(-) commit fae4d6010639705b4a33367ce3850335e15e46ee Author: Neil Roberts Date: Fri Apr 16 00:28:15 2010 +0100 cogl: Pull in the code for GLU tesselator from Mesa/SGI This copies the files for the GLU tesselator from Mesa. The Mesa code is based on the original SGI code and is released under a BSD license. The memalloc.h header has been replaced with one that forces the code to use g_malloc and friends. The rest of the files are not altered from the original so it should be possible to later upgrade the files by simply overwriting them. There is a tesselator.h header which is expected to be included by rest of Cogl to use the tesselator. This contains a trimmed down version of glu.h that only includes parts that pertain to the tesselator. There is also a stub glu.h in the GL directory which is just provided so that the tesselator code can include without depending on the system header. It just redirects to tesselator.h clutter/cogl/cogl/Makefile.am | 7 +- clutter/cogl/cogl/tesselator/GL/glu.h | 26 + clutter/cogl/cogl/tesselator/Makefile.am | 41 + clutter/cogl/cogl/tesselator/README | 446 ++++++++ clutter/cogl/cogl/tesselator/dict-list.h | 100 ++ clutter/cogl/cogl/tesselator/dict.c | 111 ++ clutter/cogl/cogl/tesselator/dict.h | 100 ++ clutter/cogl/cogl/tesselator/geom.c | 264 +++++ clutter/cogl/cogl/tesselator/geom.h | 84 ++ clutter/cogl/cogl/tesselator/gluos.h | 1 + clutter/cogl/cogl/tesselator/memalloc.h | 42 + clutter/cogl/cogl/tesselator/mesh.c | 794 +++++++++++++++ clutter/cogl/cogl/tesselator/mesh.h | 266 +++++ clutter/cogl/cogl/tesselator/normal.c | 253 +++++ clutter/cogl/cogl/tesselator/normal.h | 45 + clutter/cogl/cogl/tesselator/priorityq-heap.c | 252 +++++ clutter/cogl/cogl/tesselator/priorityq-heap.h | 107 ++ clutter/cogl/cogl/tesselator/priorityq-sort.h | 117 +++ clutter/cogl/cogl/tesselator/priorityq.c | 260 +++++ clutter/cogl/cogl/tesselator/priorityq.h | 117 +++ clutter/cogl/cogl/tesselator/render.c | 498 +++++++++ clutter/cogl/cogl/tesselator/render.h | 52 + clutter/cogl/cogl/tesselator/sweep.c | 1357 +++++++++++++++++++++++++ clutter/cogl/cogl/tesselator/sweep.h | 77 ++ clutter/cogl/cogl/tesselator/tess.c | 628 ++++++++++++ clutter/cogl/cogl/tesselator/tess.h | 165 +++ clutter/cogl/cogl/tesselator/tesselator.h | 121 +++ clutter/cogl/cogl/tesselator/tessmono.c | 201 ++++ clutter/cogl/cogl/tesselator/tessmono.h | 71 ++ configure.ac | 1 + 30 files changed, 6602 insertions(+), 2 deletions(-) commit 347f3b614dc542318065cefce7a4b6db56bc55e0 Author: Elliot Smith Date: Tue Jun 29 15:49:40 2010 +0100 cookbook: Add a recipe for image loading http://bugzilla.clutter-project.org/show_bug.cgi?id=2165 Signed-off-by: Emmanuele Bassi doc/cookbook/clutter-cookbook.xml.in | 208 ++++++++++++++++++++++++++++++++++ 1 files changed, 208 insertions(+), 0 deletions(-) commit f2361a65de090dfe8aa05534cb9bc1c760555084 Author: Emmanuele Bassi Date: Tue Jun 29 18:05:12 2010 +0100 build: Enable the cookbook on distcheck We want to start distributing the cookbook along with the documentation. Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e50893f674cfa40ea62e93bfd4fc83fda55131a9 Author: Emmanuele Bassi Date: Tue Jun 29 18:04:52 2010 +0100 cookbook: Add acknowledgment section And fix the URLs. doc/cookbook/clutter-cookbook.xml.in | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) commit fc49dceae305d1c59b5d1540785dd1bd4df8e026 Author: Emmanuele Bassi Date: Tue Jun 29 17:57:29 2010 +0100 cookbook: Add introduction to the events section doc/cookbook/clutter-cookbook.xml.in | 43 ++++++++++++++++++++++++++++++--- 1 files changed, 39 insertions(+), 4 deletions(-) commit 566f75d97f7580495181835ef0545278f34fc000 Author: Elliot Smith Date: Tue Jun 29 17:27:54 2010 +0100 cookbook: Add recipe for key event handling Attached patch contains a cookbook recipe about key press event handling. It covers both a simple approach (connecting a callback to a key-press-event signal which manually analyses the key and modifiers), and a more complicated one based on a binding pool. There's also some discussion of the two approaches. http://bugzilla.clutter-project.org/show_bug.cgi?id=2162 Signed-off-by: Emmanuele Bassi doc/cookbook/clutter-cookbook.xml.in | 294 ++++++++++++++++++++++++++++++++++ 1 files changed, 294 insertions(+), 0 deletions(-) commit 30ca03de1dfb0d92664c8ffd289004c3dc0676b1 Author: Elliot Smith Date: Tue Jun 29 17:26:55 2010 +0100 cookbook: Add recipe for scaling images with :keep-aspect-ratio The cookbook contains a commented-out recipe covering scaling images inside a texture while retaining their aspect ratio; the attached patch fleshes out this recipe. http://bugzilla.clutter-project.org/show_bug.cgi?id=2163 Signed-off-by: Emmanuele Bassi doc/cookbook/clutter-cookbook.xml.in | 101 ++++++++++++++++++++++++++++++++-- 1 files changed, 95 insertions(+), 6 deletions(-) commit f64c66ede8c3edea31931bae4edcb4c10f53d93a Author: Colin Walters Date: Tue Jun 29 16:25:18 2010 +0100 autogen.sh: Support NOCONFIGURE, like gnome-common Signed-off-by: Emmanuele Bassi autogen.sh | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit 8801c947d556e81b39691d819898e377092d6f59 Author: Chris Lord Date: Tue Jun 29 15:30:25 2010 +0100 event: Typos in event code could cause crashes A typo in clutter-event.c meant that the wrong struct location could be used for the input device of key events. Also, a typo in the X11 event code meant that key-presses would come from the pointer device (releases would still come from the keyboard device). clutter/clutter-event.c | 2 +- clutter/x11/clutter-event-x11.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 32ad63efef8ee92b0bc361b9dea3fd46ba72fbd1 Author: Emmanuele Bassi Date: Mon Jun 28 17:18:35 2010 +0100 bind-constraint: Add width and height binding Allow using the BindConstraint to bind width and height of a source actor. Also, add a test for the BindConstraint showing all types of usages for this constraint class. clutter/clutter-bind-constraint.c | 105 ++++++++++++++++++++++++++++------- clutter/clutter-bind-constraint.h | 8 ++- tests/interactive/.gitignore | 1 + tests/interactive/Makefile.am | 3 +- tests/interactive/test-bind.c | 110 +++++++++++++++++++++++++++++++++++++ 5 files changed, 204 insertions(+), 23 deletions(-) commit b3ffe602a207edf14c69f05f6d1e0b892eb706b4 Author: Neil Roberts Date: Mon Jun 28 15:25:19 2010 +0100 cogl: Add const to some pointer arguments Some of the arguments to the material and path functions were taking a pointer to a CoglColor or an array of floats that was not intended to be written to but were not marked with const. clutter/cogl/cogl/cogl-material.c | 6 +++--- clutter/cogl/cogl/cogl-material.h | 14 +++++++------- clutter/cogl/cogl/cogl-path.c | 4 ++-- clutter/cogl/cogl/cogl-path.h | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) commit a20def9df6463ba923859aac31532ff1ccdb488b Author: Emmanuele Bassi Date: Mon Jun 28 10:43:13 2010 +0100 text: Use the ::settings-changed signal Instead of the ::font-changed one. clutter/clutter-text.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit c81ef75942cac24627a88eda21ad5e4e4e32efcf Author: Emmanuele Bassi Date: Mon Jun 28 10:32:54 2010 +0100 x11: Add XSETTINGS watcher If we want to be able to get live notification of system settings changes, we need watch the window that the XSETTINGS client conjures up for us. clutter/x11/clutter-backend-x11.c | 49 ++++++++++++++++++++++++++++++++++-- clutter/x11/clutter-backend-x11.h | 1 + 2 files changed, 47 insertions(+), 3 deletions(-) commit 31fc8e9664f235d3375bacd9de8d9c614f31b884 Author: Emmanuele Bassi Date: Sat Jun 26 23:05:36 2010 +0100 text: Document and annotate :font-name for NULL values Update the documentation of :font-name, to make it clear that by setting it to NULL the Text actor will use the default font. Also, set the annotation for the @font_name argument of the setter to be allow-none, and allow passing NULL through bindings. clutter/clutter-text.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit 809211588d7a34af7aa02c1559badef7a2619b16 Author: Emmanuele Bassi Date: Sat Jun 26 15:49:15 2010 +0100 text: Update actors using the default font If a ClutterText actor is using the default font from the backend then we should track font name changes and update it accordingly. This only applies to ClutterText actors with the :font-name property unset or explicitly set to NULL. clutter/clutter-text.c | 105 +++++++++++++++++++++++++++++------------------- 1 files changed, 64 insertions(+), 41 deletions(-) commit 8e4d221821b633442d374e89053474183f57cccb Author: Emmanuele Bassi Date: Sat Jun 26 15:42:31 2010 +0100 clutter.modules: Update with the gdk-pixbuf split Gdk-Pixbuf has been split back into its own module once again. This means that Clutter doesn't have a build requirement on gtk+ any more. build/clutter.modules | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) commit 26fb0960953069006e781cf59a005bfdfa5d6d5b Author: Emmanuele Bassi Date: Sat Jun 26 13:51:06 2010 +0100 settings: Emit Backend::font-changed When the :font-name property changes, to maintain the invariant. clutter/clutter-settings.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) commit 98613382a4b897012e78fff60b0cb7cf7ef97ad2 Author: Emmanuele Bassi Date: Fri Jun 25 11:41:05 2010 +0100 test-text-field: Use the system font instead of using Sans tests/interactive/test-text-field.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) commit 2e4e321dadb8249860c7ae5b853573a5d94f8d7d Author: Emmanuele Bassi Date: Fri Jun 25 11:40:32 2010 +0100 Detail the font-name value in the font settings debug note clutter/clutter-settings.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) commit 527ad961ab039c55f7cc0cc3066aedcf183db857 Author: Neil Roberts Date: Thu Jun 24 18:14:04 2010 +0100 clutter-event-win32: Emit multiple events for WM_MOUSEWHEEL Messages It's possible that a single WM_MOUSEWHEEL event can arrive with a scroll amount greater than WHEEL_DELTA. Previously it would accumulate these amounts but it would still only emit a single event per message. For example, if a message arrived that is worth two WHEEL_DELTAs then it would emit one event and leave scroll_pos as +WHEEL_DELTA. If the wheel is then scrolled in the opposite direction then wheel delta would end up as zero and the scroll event would get lost. This patch fixes it so that it always emits enough events to put scroll_pos back to less than WHEEL_DELTA. http://bugzilla.clutter-project.org/show_bug.cgi?id=2135 clutter/win32/clutter-event-win32.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 2c8d73f0472798896a6528359f82f8ea6f7589e2 Author: Neil Roberts Date: Thu Jun 24 18:07:20 2010 +0100 clutter-event-win32: Directly enqueue events in message_translate Previously the window procedure for the stage window would always create a ClutterEvent struct for every message and then pass that on to message_translate to fill in the details. message_translate could return FALSE to abandon the event. Instead of this, message_translate now creates and queues the event itself whenever it sees a message that could translate to an event. The function now returns void. This has a number of advantages: * It saves redundantly allocating events for messages that Clutter doesn't care about. * A single message can now easily be translated into multiple events. * There were some messages that were handled and did not fill in the event struct but did not cause the function to return FALSE. I think this would end up with a CLUTTER_NOTHING event being emitted. http://bugzilla.clutter-project.org/show_bug.cgi?id=2135 clutter/win32/clutter-event-win32.c | 297 +++++++++++++++++++---------------- 1 files changed, 162 insertions(+), 135 deletions(-) commit b4607f7a37597f6d45d356d8a85ce3f8f40def1e Author: Øyvind Kolås Date: Fri Jun 25 02:02:48 2010 +0100 state: avoid g_str_equal if a string might be NULL clutter/clutter-state.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit fbeab378289a0e9f9470aa9f532003cf66529970 Author: Neil Roberts Date: Thu Jun 24 17:33:43 2010 +0100 test-conformance: Use -export-dynamic instead of -rdynamic The -rdynamic linker option is specific to ELF so it was breaking builds on systems with other object formats such as Windows and Solaris. This patch replaces that option with -export-dynamic which is a portable libtool option which should do the right thing on each platform. http://bugzilla.clutter-project.org/show_bug.cgi?id=1930 tests/conform/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit a950388bc68a0fbdb76bf83cc0673bdca2f1d1d5 Author: Emmanuele Bassi Date: Thu Jun 24 17:21:26 2010 +0100 actor: Top-levels should always report a 255 opacity The paint opacity should always assume a fully opaque top-level at the end, otherwise the scene would be rendered fully transparent. http://bugzilla.clutter-project.org/show_bug.cgi?id=2050 clutter/clutter-actor.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) commit 42df1a150b8ecb49f02a5780b9f9c983221c97ea Author: Emmanuele Bassi Date: Thu Jun 24 17:19:36 2010 +0100 actor: Ignore the NOP paint at 0 opacity for top-levels A top-level actor could still have 0 opacity (e.g. a Stage with the :use-alpha property set to TRUE), but we want its children to still be painted. http://bugzilla.clutter-project.org/show_bug.cgi?id=2050 clutter/clutter-actor.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit 1b153971208185bbbc152c315e0ab6ca063af603 Author: Robert Bragg Date: Wed Jun 23 17:10:03 2010 +0100 material: Avoid possibly reading invalid memory in _cogl_material_prune_empty_layer_difference we sometimes unref the given layer before dereferencing it to get a pointer to its parent. This defers the unref until after we have fetched the parent pointer. clutter/cogl/cogl/cogl-material.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 1ad7eb969cbc5be9a22d18e1a7d76b4bc62f814f Author: Øyvind Kolås Date: Thu Jun 24 16:52:23 2010 +0100 state: added more documentation clutter/clutter-state.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) commit 2a29cd2aeebf7369a3c93cbaf3321962df304536 Author: Øyvind Kolås Date: Thu Jun 24 02:26:46 2010 +0100 state: removed special handling of state named "default" The "default" state used for unspecified source transitions is NULL. Small update and some other fixes to documentation. clutter/clutter-state.c | 44 ++++++++++++++++---------------------------- tests/conform/test-state.c | 5 +++++ 2 files changed, 21 insertions(+), 28 deletions(-) commit d37dee8258ec2a10f5825694376cc27bc43b8f93 Author: Alejandro Piñeiro Date: Wed Apr 14 18:07:21 2010 +0200 Improve clutter_text_get_chars doc Explicitly explain that end_pos is not included with the resulting string http://bugzilla.clutter-project.org/show_bug.cgi?id=2081 clutter/clutter-text.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 213cd30cebfb58df1298a13adf528755aad6cdfa Author: Elliot Smith Date: Thu Jun 24 11:23:50 2010 +0100 docs: Fix example code in BindingPool The code sample in the gtk-doc annotations for ClutterBindingPool shows the arguments in the wrong order. http://bugzilla.clutter-project.org/show_bug.cgi?id=2133 Signed-off-by: Emmanuele Bassi clutter/clutter-binding-pool.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) commit 4e5c84ebc5fba38afdf0593f830dc2ea08098a30 Author: Emmanuele Bassi Date: Wed Jun 23 18:46:52 2010 +0100 doap: Update after the infrastructure changes clutter.doap | 64 ++++----------------------------------------------------- 1 files changed, 5 insertions(+), 59 deletions(-) commit f60999becfc40af940eba23cd2dbdd8dd2455b1a Author: Emmanuele Bassi Date: Wed Jun 23 18:46:38 2010 +0100 Change the Bugzilla link in the configure script configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 6ff5d105e52c300b4b06d08f966500b344e0aeca Author: Emmanuele Bassi Date: Wed Jun 23 18:43:18 2010 +0100 docs: Change the mailing list link README | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-) commit d17ea2c021a9ba19580c013743224d2d40ac1f76 Author: Neil Roberts Date: Wed Jun 23 17:29:08 2010 +0100 cogl: Remove cogl-defines.h.in from the driver make files Commit 7fae8ac051292 changed cogl-defines.h.in so there is only a single copy in clutter/cogl/ instead of one for each driver. However the old files were still mentioned in the EXTRA_DIST of the Makefile.am so make distcheck was failing. clutter/cogl/cogl/Makefile.am | 2 ++ clutter/cogl/cogl/driver/gl/Makefile.am | 2 +- clutter/cogl/cogl/driver/gles/Makefile.am | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) commit 97e39228c524c5605e68e93b773ff05fc52d61ef Author: Chris Lord Date: Wed Jun 23 15:53:50 2010 +0100 cogl-path: Disable texture coord arrays before drawing It was possible that the texture co-ord arrays were left enabled during stroking, which could possibly cause a crash. clutter/cogl/cogl/cogl-path.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 8512423f22995dced954b9b5c5e6481af83ba5a0 Author: Neil Roberts Date: Fri Jun 18 11:12:51 2010 +0100 clutter-animation: Fix for using fixed:: from clutter_actor_animatev When using clutter_actor_animatev it would set a boolean whenever a property begins with "fixed::". However it would never clear the variable so it would end up marking all subsequent properties as fixed. http://bugzilla.openedhand.com/show_bug.cgi?id=2180 http://bugzilla.clutter-project.org/show_bug.cgi?id=2149 clutter/clutter-animation.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 66d9d481357e2e9f55a4b546104fbb1c5ff8167c Author: Emmanuele Bassi Date: Wed Jun 23 13:34:36 2010 +0100 Revert 7e6b60270d1951f0789868740b8df6acfe677d57 You should not commit patches based on the bugzilla description alone. You should not commit patches based on the bugzilla description alone. You should not commit patches based on the bugzilla description alone. ... clutter.pc.in | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit e28ea848e22b11490f653d655ddad3dc90726b09 Author: Emmanuele Bassi Date: Wed Jun 23 13:23:19 2010 +0100 Fix the libdir in the pkg-config file clutter.pc.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit f423d794ccd410368cef25af99fb7a6317655552 Author: Robert Bragg Date: Tue Jun 22 15:42:41 2010 +0100 texture-pixmap-x11: don't assume anything about the GLXFBConfig type A pedantic change to get_fbconfig_for_depth() so that we don't need to make any assumptions about the GLXFBConfig typedef or what values we can overload to indicate an invalid config. get_fbconfig_for_depth() now simply returns FALSE if it fails to find a config. clutter/cogl/cogl/winsys/cogl-context-winsys.h | 1 + clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 37 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) commit 62c08b4a0995467f54d8135e7c579e2f81debb20 Author: Emmanuele Bassi Date: Tue Jun 22 16:12:53 2010 +0100 drag-action: Disable picking during drag While dragging we don't need to perform picking to determine the actor underneath the pointer, for two reasons: • we use a capture on the stage to determine the motion delta. • we know the actor underneath the pointer because that's the actor we are dragging around. This change should make dragging actors in complex scenes a bit faster. clutter/clutter-drag-action.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) commit d89270d7c16aae0369ed80a8c69f2a58ebcaf7e4 Author: Emmanuele Bassi Date: Tue Jun 22 14:43:36 2010 +0100 Silence another compiler warning clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit db47e9082951a872fe1071241f35fc262a049926 Author: Neil Roberts Date: Tue Jun 22 14:10:44 2010 +0100 cogl-texture-pixmap-x11: Use NULL instead of None for invalid GLXFBConfig GLXFBConfigs are opaque pointers not XIDs so it doesn't make sense to return None from get_fbconfig_for_depth. Instead it now returns NULL. clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e9fa68fbdd74c37816693d95efb76974ae33906f Author: Emmanuele Bassi Date: Tue Jun 22 14:05:39 2010 +0100 Add test-cogl-texture-pixmap-x11 to the ignore file tests/conform/.gitignore | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit b2c87eaddf9ebe68daf5a458a0c7453e3c16d805 Author: Emmanuele Bassi Date: Tue Jun 22 13:48:53 2010 +0100 Silence some compiler warnings clutter/cogl/cogl/cogl-material.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) commit d52fd33d0f912009c15a13eac2af2e4ad5fb7209 Author: Emmanuele Bassi Date: Tue Jun 22 13:31:41 2010 +0100 docs: Fix release notes wording README | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit e12e6974a0f938ff32e94c1c0e9c4f9da7a0fc3b Author: Emmanuele Bassi Date: Tue Jun 22 13:31:31 2010 +0100 docs: Fix links in the README README | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) commit e3360f497e197ecbf80b96f88d2e952ca8454093 Author: Emmanuele Bassi Date: Tue Jun 22 13:29:03 2010 +0100 docs: Remove the 'copyright-waiver' section There is no need to toggle the copyright-waiver flag on Bugzilla any more. README | 9 --------- 1 files changed, 0 insertions(+), 9 deletions(-) commit 3734408962fbd36388811c67160ec0253df08e12 Author: Emmanuele Bassi Date: Tue Jun 22 12:13:31 2010 +0100 Use -Bsymbolic-functions The -Bsymbolic-functions linker flag allows to avoid intra-library PLT jumps on ELF platforms. It is similar to the aliasing hack in GLib and GTK+, but definitely less messy. The configure script should look for the flags, in order to support platforms/linkers that do not have it. clutter/Makefile.am | 5 ++--- configure.ac | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) commit c2b8a0272bc7e9d0baf0f0025c082c69f7c0584e Author: Emmanuele Bassi Date: Tue Jun 22 11:59:07 2010 +0100 conform: Do not use deprecated API in test-clutter-units Setting the DPI is done through the ClutterSettings:font-dpi property. tests/conform/test-clutter-units.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) commit 7e6b60270d1951f0789868740b8df6acfe677d57 Author: Emmanuele Bassi Date: Tue Jun 22 08:29:02 2010 +0100 Do not hardcode paths in pkgconfig file The pkgconfig file correctly sets $prefix to @prefix@, but the other paths should be relative to $prefix. clutter.pc.in | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) commit 05b6c283eb00df0b0be125418672531df3f46d62 Author: Neil Roberts Date: Fri Jun 18 18:51:15 2010 +0100 Add a test case for CoglTexturePixmapX11 tests/conform/Makefile.am | 1 + tests/conform/test-cogl-texture-pixmap-x11.c | 247 ++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 3 files changed, 249 insertions(+), 0 deletions(-) commit 5d860a99788f4e80711e40e2d1d5d6f636f4977f Author: Neil Roberts Date: Wed May 26 18:06:39 2010 +0100 clutter-{glx,x11}-texture-pixmap: Use CoglTexturePixmapX11 The pixmap handling of both of the texture pixmap actors in Clutter is now removed and instead it just creates a CoglTexturePixmapX11. Both actors are now equivalent so there is no need to choose between the two. clutter/glx/clutter-glx-texture-pixmap.c | 818 +----------------------------- clutter/x11/clutter-x11-texture-pixmap.c | 493 +++--------------- 2 files changed, 94 insertions(+), 1217 deletions(-) commit a197baa53325a99c3a355486bf43a2ccbc1a6220 Author: Neil Roberts Date: Tue May 25 18:56:14 2010 +0100 Add a CoglTexturePixmapX11 texture backend This is a publicly exposed texture backend to create a texture which contains the contents of an X11 pixmap. The API is currently marked as experimental. The backend internally holds a handle to another texture. All of the backend virtuals simply redirect to the internal texture. The texture can optionally be automatically updated if the automatic_updates parameter is TRUE. If set then Cogl will listen for damage events on the pixmap and update the texture accordingly. Alternatively a damage object can be created externally and passed down to Cogl. The updates can be performed with XGetImage, XShmGetImage or the GLX_EXT_texture_pixmap extension. If the TFP extension is used it will optionally try to create a rectangle texture if the driver does not support NPOTs or it is forced through the COGL_PIXMAP_TEXTURE_RECTANGLE or CLUTTER_PIXMAP_TEXTURE_RECTANGLE environment variables. If the GLXFBConfig does not support mipmapping then it will fallback to using X{Shm,}GetImage. It keeps a separate texture around for this so that it can later start using the TFP texture again if the texture is later drawn with mipmaps disabled. clutter/cogl/cogl/Makefile.am | 7 +- clutter/cogl/cogl/cogl-debug.c | 4 +- clutter/cogl/cogl/cogl-debug.h | 3 +- clutter/cogl/cogl/winsys/cogl-context-winsys.c | 26 +- clutter/cogl/cogl/winsys/cogl-context-winsys.h | 40 +- .../cogl/winsys/cogl-texture-pixmap-x11-private.h | 92 ++ clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 1397 ++++++++++++++++++++ clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.h | 176 +++ .../cogl/winsys/cogl-winsys-feature-functions.h | 20 + 9 files changed, 1758 insertions(+), 7 deletions(-) commit d42c3069d101d33cf12e2c836d610e906610846f Author: Neil Roberts Date: Mon Jun 14 17:36:24 2010 +0100 test-pixmap: Use the 'm' key to toggle texture quality When the 'm' key is pressed it will now recursively look for all ClutterTexture subclasses on the stage and toggle the texture quality between high and low. This is useful to test the mipmap fallback. tests/interactive/test-pixmap.c | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) commit c5b5a88d6d74242939ea9db67c8a8098ed74171d Author: Neil Roberts Date: Fri May 28 18:41:20 2010 +0100 test-pixmap: Draw something more interesting when the mouse is clicked When the mouse button is pressed it would previously draw a small 1-pixel wide fully transparent line to the pixmap. This is a useful feature to help test the automatic updates but the line is quite hard to see so it's to easy miss. This patch changes it to draw a thick black circle. The circle is drawn at a different position every time the button is clicked. tests/interactive/test-pixmap.c | 27 ++++++++++++++++++++------- 1 files changed, 20 insertions(+), 7 deletions(-) commit 02de8b9ad5f450952c7e60f0a9acab87b618d589 Author: Neil Roberts Date: Fri May 28 17:53:04 2010 +0100 test-pixmap: Add a --disable-animation option Sometimes the animation makes debugging awkward so this patch adds a --disable-animation option to simplify the test. tests/interactive/test-pixmap.c | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-) commit 75f48ad0ec52c4c9a99c1323916b5ec42dbf0b02 Author: Neil Roberts Date: Fri May 28 17:45:07 2010 +0100 test-pixmap: Enable automatic updates for the hand The hand actor has a feature that if you click on the stage it will draw a line to the actor. However it's not possible to see the results of this because automatic updates were disabled so the texture would never be updated. tests/interactive/test-pixmap.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit f7dfc8caa4cb69f67fc14cf73725a39d7940479d Author: Neil Roberts Date: Fri May 28 17:32:21 2010 +0100 test-pixmap: Implement the --disable-x11 option test-pixmap has long had a --disable-x11 option that didn't do anything. This patch adds the neccessary if (disable_x11) to disable adding the ClutterX11TexturePixmap actor when the option is given. tests/interactive/test-pixmap.c | 37 ++++++++++++++++++++++--------------- 1 files changed, 22 insertions(+), 15 deletions(-) commit 6ca13e54d880a727d7926fd66d6d0786c48c7622 Author: Neil Roberts Date: Mon Jun 21 12:48:02 2010 +0100 Add -DCOGL_ENABLE_EXPERIMENTAL_API to Makefiles for Cogl and x11/glx Cogl and Clutter should be able to use the experimental API so this adds the required define to the CPPFLAGS in the Makefiles. clutter/cogl/cogl/Makefile.am | 1 + clutter/glx/Makefile.am | 1 + clutter/x11/Makefile.am | 1 + 3 files changed, 3 insertions(+), 0 deletions(-) commit 7fae8ac05129285fefb470ff0b88d764a759d153 Author: Neil Roberts Date: Fri Jun 18 14:30:23 2010 +0100 cogl-defines.h: Add a COGL_HAS_X11 define This will be defined in cogl-defines.h whenever Cogl is built using a winsys that supports X11. This implies CoglTexturePixmapX11 will be available. To make this work the two separate cogl-defines.h.in files have been merged into one. The configure script now makes a @COGL_DEFINES@ substitution variable which contains the #define lines to put in rather than directly having them in the seperate files. clutter/cogl/cogl/Makefile.am | 3 -- clutter/cogl/cogl/cogl-defines.h.in | 36 ++++++++++++++++++++ clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 37 -------------------- clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 41 ----------------------- configure.ac | 36 +++++++++++++++++++- 5 files changed, 70 insertions(+), 83 deletions(-) commit a01b094630d748d4b0505852724b57b837e49d3a Author: Neil Roberts Date: Fri Jun 4 10:38:30 2010 +0100 cogl: Add _cogl_xlib_{,un}trap_errors This is similar to clutter_x11_{,un}trap_errors except that it stores the previous trap state in a caller-allocated struct so that it can be re-entrant. Make _cogl_xlib_trap_errors re-entrant (this will be squashed into an earlier commit) clutter/cogl/cogl/winsys/cogl-context-winsys.c | 2 + clutter/cogl/cogl/winsys/cogl-context-winsys.h | 23 ++++++++++++++ clutter/cogl/cogl/winsys/cogl-xlib.c | 39 ++++++++++++++++++++++++ clutter/cogl/cogl/winsys/cogl-xlib.h | 29 +++++++++++++++++ 4 files changed, 93 insertions(+), 0 deletions(-) commit 3abe26b913c895072d31fa5e88a8724ba311d174 Author: Neil Roberts Date: Tue Jun 1 13:32:57 2010 +0100 cogl-texture: Avoid premult conversion if the dst format has no alpha The _cogl_texture_needs_premult_conversion function was already checking whether the source format had an alpha channel before returning TRUE, but it also doesn't make sense to do the premult conversion if the destination format has no alpha. This patch adds that check in too. clutter/cogl/cogl/cogl-texture.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 279ad7b7e51572138d41bf5a078adab33a57c913 Author: Neil Roberts Date: Wed Jun 2 17:55:56 2010 +0100 cogl: Add the infrastructure for checking for winsys extensions This adds the framework needed to check for winsys specific extensions (such as GLX extensions) using a similar mechanism to the cogl-feature-functions header. There is a separate cogl-winsys-feature-functions header which will contain macros to list the extensions and functions. cogl_create_context_winsys now calls _cogl_feature_check for each of these functions. _cogl_feature_check has had to be changed to accept the driver prefix as the first parameter so that it can prepend "GLX" rather than "GL" in this case. clutter/cogl/cogl/Makefile.am | 1 + clutter/cogl/cogl/cogl-feature-private.c | 7 +- clutter/cogl/cogl/cogl-feature-private.h | 3 +- clutter/cogl/cogl/driver/gl/cogl.c | 2 +- clutter/cogl/cogl/driver/gles/cogl.c | 2 +- clutter/cogl/cogl/winsys/cogl-context-winsys.c | 64 ++++++++++++++++++++ clutter/cogl/cogl/winsys/cogl-context-winsys.h | 21 ++++++- .../cogl/winsys/cogl-winsys-feature-functions.h | 25 ++++++++ 8 files changed, 118 insertions(+), 7 deletions(-) commit 9cdcc155f37d2ed10a23c1b4f7261fb134e763c9 Author: Neil Roberts Date: Wed May 19 16:13:07 2010 +0100 Pass all Xlib events through Cogl The Clutter X11 backend now passes all events through _cogl_xlib_handle_event. This function can now internally be hooked with _cogl_xlib_add_filter. These are added to a list of callbacks which are all called in turn by _cogl_xlib_handle_event. This is intended to be used internally in Cogl by any parts that need to see Xlib events. Cogl now also has an internally exposed function to set a pointer to the Xlib display. This is stored in a global variable. The Clutter X11 backend sets this. _cogl_xlib_handle_event and _cogl_xlib_set_display can be removed once Cogl gains a proper window system abstraction. clutter/cogl/cogl/Makefile.am | 11 ++- clutter/cogl/cogl/cogl-internal.h | 52 ++++++++++++++++ clutter/cogl/cogl/winsys/cogl-context-winsys.c | 20 ++++++ clutter/cogl/cogl/winsys/cogl-context-winsys.h | 7 ++ clutter/cogl/cogl/winsys/cogl-xlib.c | 77 ++++++++++++++++++++++++ clutter/cogl/cogl/winsys/cogl-xlib.h | 37 +++++++++++ clutter/x11/clutter-backend-x11.c | 5 ++ clutter/x11/clutter-event-x11.c | 6 ++ 8 files changed, 211 insertions(+), 4 deletions(-) commit 811bbba0751d76f742c9db11d07a227ff4d21848 Author: Neil Roberts Date: Wed Jun 2 15:16:14 2010 +0100 cogl: Add a struct for winsys-specific data to CoglContext This creates a separate struct to store the fields of the context that are specific to the winsys. This is all stored in one file but ideally this could work more like the CoglContextDriver struct and have a different header for each winsys. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-context.c | 8 +++++ clutter/cogl/cogl/cogl-context.h | 2 + clutter/cogl/cogl/winsys/cogl-context-winsys.c | 38 ++++++++++++++++++++++++ clutter/cogl/cogl/winsys/cogl-context-winsys.h | 32 ++++++++++++++++++++ 5 files changed, 82 insertions(+), 0 deletions(-) commit 3a3d55cd88f347c8fbd307401f13f1453caa9b26 Author: Neil Roberts Date: Thu Jun 10 15:33:34 2010 +0100 cogl: Add an internal CoglTextureRectangle backend This adds an internal rectangle texture backend which is mostly based on the CoglTexture2D backend. It will throw assert failures if any operations are attempted that rectangle textures don't support, such as mipmapping or hardware repeating. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-texture-rectangle-private.h | 68 ++ clutter/cogl/cogl/cogl-texture-rectangle.c | 662 ++++++++++++++++++++ .../cogl/cogl/driver/gl/cogl-feature-functions.h | 7 + clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 41 +- 5 files changed, 763 insertions(+), 17 deletions(-) commit fd3a3e93bf000960afe740bf76d62ccbad385b8c Author: Neil Roberts Date: Wed Jun 9 17:39:59 2010 +0100 cogl-texture: Replace the ensure_mipmaps virtual with pre_paint Instead of the ensure_mipmaps virtual that is only called whenever the texture is about to be rendered with a min filter that needs the mipmap, there is now a pre_paint virtual that is always called when the texture is about to be painted in any way. It has a flags parameter which is used to specify whether the mipmap will be needed. This is useful for CoglTexturePixmapX11 because it needs to do stuff before painting that is unrelated to mipmapping. clutter/cogl/cogl/cogl-atlas-texture.c | 13 ++++++----- clutter/cogl/cogl/cogl-material-private.h | 7 +++-- clutter/cogl/cogl/cogl-material.c | 33 +++++++++++++-------------- clutter/cogl/cogl/cogl-primitives.c | 4 +- clutter/cogl/cogl/cogl-sub-texture.c | 7 +++-- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 9 ++++++- clutter/cogl/cogl/cogl-texture-2d.c | 27 +++++++++++----------- clutter/cogl/cogl/cogl-texture-private.h | 12 ++++++++- clutter/cogl/cogl/cogl-texture.c | 4 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +- 10 files changed, 67 insertions(+), 51 deletions(-) commit 87240cd764ad29d5789c0f72c71614f1b79fe29f Author: Neil Roberts Date: Fri Jun 11 13:50:36 2010 +0100 cogl-texture: List texture subclass types rather than hardcoding them Instead of having a hardcoded series of if-statements in cogl_is_texture to determine which types should appear as texture subclasses, they are now stored in a GSList attached to the Cogl context. The list is amended to using a new cogl_texture_register_type function. There is a convenience macro called COGL_TEXTURE_DEFINE which uses COGL_HANDLE_DEFINE_WITH_CODE to register the texture type when the _get_type() function is first called. clutter/cogl/cogl/cogl-atlas-texture.c | 2 +- clutter/cogl/cogl/cogl-context.c | 4 ++++ clutter/cogl/cogl/cogl-context.h | 4 ++++ clutter/cogl/cogl/cogl-sub-texture.c | 2 +- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +- clutter/cogl/cogl/cogl-texture-2d.c | 2 +- clutter/cogl/cogl/cogl-texture-private.h | 11 +++++++++++ clutter/cogl/cogl/cogl-texture.c | 21 +++++++++++++++++---- 8 files changed, 40 insertions(+), 8 deletions(-) commit 5ea8c5bd122a6d630b1aaebf7047e00346db6a39 Author: Neil Roberts Date: Fri Jun 11 13:44:27 2010 +0100 Add COGL_{OBJECT,HANDLE}_DEFINE_WITH_CODE This macro is similar to COGL_HANDLE_DEFINE_WITH_CODE except that it allows a snippet of code to be inserted into the _get_type() function. This is similar to how G_DEFINE_TYPE_WITH_CODE works. COGL_HANDLE_DEFINE is now just a wrapper around COGL_HANDLE_DEFINE_WITH_CODE. clutter/cogl/cogl/cogl-object-private.h | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) commit 97225a96a6f7032273c225e525678d3dc9433cc8 Author: Neil Roberts Date: Thu Jun 3 15:06:47 2010 +0100 Add _cogl_texture_2d_externally_modified _cogl_texture_2d_externally_modified is a function specific to the CoglTexture2D texture backend that should be called whenever the contents of the texture are modified without the backend knowing about it. It simply marks the mipmap tree as invalid. clutter/cogl/cogl/cogl-texture-2d-private.h | 11 +++++++++++ clutter/cogl/cogl/cogl-texture-2d.c | 9 +++++++++ 2 files changed, 20 insertions(+), 0 deletions(-) commit 7e149c5ca93e4de3194cc3344eba7fb183dfbeb3 Author: Neil Roberts Date: Wed Jun 2 15:01:18 2010 +0100 cogl: Fix the include path in driver/*/Makefile.am The include path for the winsys and driver folder was given relative to $(srcdir) so it would end up relative to the driver folder which is wrong. It is now specified as $(srcdir)/../../winsys to get the right location. The driver folder is removed because it is actually just $(srcdir) and that is already included. clutter/cogl/cogl/driver/gl/Makefile.am | 3 +-- clutter/cogl/cogl/driver/gles/Makefile.am | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) commit a871ac669f68c5932cf5af575e12b2660e1a335d Author: Robert Bragg Date: Tue Jun 8 22:54:26 2010 +0100 test-shader: guard GLES2 specific changes with COGL_HAS_GLES2 Previously we were using an internal only HAVE_COGL_GLES2 define to guard GLES 2 specific changes so for instance the precision modifiers weren't being emitted in the shader source. http://bugzilla.o-hand.com/show_bug.cgi?id=2178 tests/interactive/test-shader.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) commit 60cad4bf0b4a52d6727ce7986965e972db0b4f89 Author: Robert Bragg Date: Tue Jun 8 18:38:25 2010 +0100 gles2: don't disable clip planes for GLES2 GLES2 doesn't provide user clip planes (you would have to use a vertex + fragment shader to achieve the same kind of result) so we make sure not to call glEnable/Disable with any of the GL_CLIP_PLANE0..3 defines. http://bugzilla.o-hand.com/show_bug.cgi?id=2177 clutter/cogl/cogl/cogl-clip-stack.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 00bb189e71374ddcd1437fc5913f89ada9f39f23 Author: Robert Bragg Date: Tue Jun 22 11:21:09 2010 +0100 material: fix a typo in _cogl_material_journal_unref The function had a line like: CoglMaterial *material = material = _cogl_material_pointer_from_handle (material_handle); where the duplicate "material =" wasn't intended, so this patch removes it. clutter/cogl/cogl/cogl-material.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit db1434ab718f04c098afe9d60419a6b98805778e Author: Emmanuele Bassi Date: Tue Jun 22 08:00:40 2010 +0100 json: Bump up the requirement of json-glib We're actually using a symbol (the JSON_NODE_HOLDS macro) that was defined in json-glib 0.10, so we need to bump up the dependency. README | 2 +- configure.ac | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 8a9890e1387ccb1228384657bb8d889fe12accd3 Author: Emmanuele Bassi Date: Tue Jun 22 07:58:49 2010 +0100 json: Backport JSON_NODE_HOLDS macros Unbreak the compilation with the internal copy of json-glib. clutter/json/json-types.h | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) commit 1eb7f5758211aaac44efd159bafc44d6de8dd87d Author: Emmanuele Bassi Date: Mon Jun 21 18:56:16 2010 +0100 x11: Use the _clutter symbols for xsettings_* API Instead of using the bare xsettings_* API; this maintains consistency. clutter/x11/clutter-backend-x11.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit f3adc600fc7f11338b5e213b5ad049ca069531e4 Author: Emmanuele Bassi Date: Mon Jun 21 18:01:57 2010 +0100 backend: Undeprecated clutter_backend_get_resolution() Since the Settings:font-dpi property is exposed as 1024 * real_dpi in order to make the setting as neutral as possible (and allow XSETTINGS to use it natively) we need a simple API returning the DPI using a floating point value. clutter/clutter-backend.c | 14 +++++++++++--- clutter/clutter-backend.h | 3 ++- 2 files changed, 13 insertions(+), 4 deletions(-) commit 19de6d9e5d3acd29667960d35f1d58fdfa301055 Author: Emmanuele Bassi Date: Mon Jun 21 17:58:26 2010 +0100 Deprecate the Backend settings The Settings instance is the preferred way of accessing the settings. clutter/clutter-backend.h | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) commit e95a0c194f9cc7e3852ddff4b24006cc64231033 Author: Emmanuele Bassi Date: Mon Jun 21 17:57:57 2010 +0100 Remove default settings from backends The defaults are set in the Settings instance. clutter/egl/clutter-backend-egl.c | 4 ---- clutter/win32/clutter-backend-win32.c | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) commit cd8548fd6fd7807fea1dcbe3752d1b32bd998246 Author: Emmanuele Bassi Date: Mon Jun 21 17:57:11 2010 +0100 docs: Add Settings to the API reference And document properties. clutter/clutter-settings.c | 120 +++++++++++++++++++++++++++++ doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/clutter.types | 1 + 3 files changed, 122 insertions(+), 0 deletions(-) commit b470d6930d8995b2e5d1353486394c12fc55187e Author: Emmanuele Bassi Date: Mon Jun 21 16:10:49 2010 +0100 settings: freeze notification on XSETTINGS notify clutter/x11/clutter-backend-x11.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 98c3c84c004c65ca97f1b9118554bc8e694e0e5f Author: Emmanuele Bassi Date: Mon Jun 21 15:43:31 2010 +0100 x11: Add the XSETTINGS machinery Use the XSETTINGS machinery to get notification from foreign environments about settings that might interest Clutter itself - namely: the default font name, the font DPI, and the Xft font options that can be mapped on cairo_font_options_t. clutter/x11/Makefile.am | 6 + clutter/x11/clutter-backend-x11.c | 87 ++++- clutter/x11/clutter-backend-x11.h | 4 + clutter/x11/clutter-settings-x11.h | 24 ++ clutter/x11/xsettings/xsettings-client.c | 609 ++++++++++++++++++++++++++++++ clutter/x11/xsettings/xsettings-client.h | 79 ++++ clutter/x11/xsettings/xsettings-common.c | 265 +++++++++++++ clutter/x11/xsettings/xsettings-common.h | 132 +++++++ 8 files changed, 1199 insertions(+), 7 deletions(-) commit 437dcad86ae273d9b9a4b159cb8be42706733575 Author: Emmanuele Bassi Date: Mon Jun 21 15:42:20 2010 +0100 settings: Migrate Backend settings to a new object Instead of storing settings inside the Backend instance we should use a separate public object. clutter/Makefile.am | 2 + clutter/clutter-backend.c | 136 +++++++++------ clutter/clutter-backend.h | 1 + clutter/clutter-private.h | 3 + clutter/clutter-settings.c | 401 ++++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-settings.h | 24 +++ clutter/clutter.h | 1 + 7 files changed, 512 insertions(+), 56 deletions(-) commit e4e6a6dfe5c011c317ec882fab59b04feddb6eeb Author: Robert Bragg Date: Fri Jun 18 13:59:00 2010 +0100 configure.ac only explicitly add -lGL if no pkgconfig file When configuring the glx flavour we were always explicitly adding -lGL to the linker flags even when a pkg-config file was found which should take care of that option for us. configure.ac | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) commit c767feecbbe75dd1da20e93612dfbbfbc4ffdf33 Author: Robert Bragg Date: Fri Jun 18 13:35:09 2010 +0100 configure.ac: Use pkg-config for gles1/2 if available When building for gles1/2 we now always try and look for a libglesv1_cm or libglesv2 .pc file with details about where to find the library and headers. configure.ac | 153 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 83 insertions(+), 70 deletions(-) commit d45ac12628489f3adf2210a7ec9f08f7a2cb4cf9 Author: Robert Bragg Date: Fri Jun 18 04:38:43 2010 +0100 egl: Consolidates eglx and eglnative into one "egl" winsys This remove quite a lot of redundant code by consolidating the eglx and eglnative window system backends. clutter/Makefile.am | 2 +- clutter/cogl/cogl/Makefile.am | 4 +- clutter/cogl/cogl/winsys/cogl-egl.c | 41 ++ clutter/cogl/cogl/winsys/cogl-eglnative.c | 35 -- clutter/cogl/cogl/winsys/cogl-eglx.c | 41 -- clutter/egl/Makefile.am | 42 ++ clutter/egl/clutter-backend-egl.c | 807 +++++++++++++++++++++++++++ clutter/egl/clutter-backend-egl.h | 116 ++++ clutter/egl/clutter-egl-headers.h | 38 ++ clutter/egl/clutter-egl.h | 76 +++ clutter/egl/clutter-event-tslib.c | 297 ++++++++++ clutter/egl/clutter-stage-egl.c | 366 ++++++++++++ clutter/egl/clutter-stage-egl.h | 55 ++ clutter/eglnative/Makefile.am | 29 - clutter/eglnative/clutter-backend-egl.c | 817 --------------------------- clutter/eglnative/clutter-backend-egl.h | 110 ---- clutter/eglnative/clutter-egl-headers.h | 33 -- clutter/eglnative/clutter-egl.h | 48 -- clutter/eglnative/clutter-event-tslib.c | 297 ---------- clutter/eglnative/clutter-stage-egl.c | 366 ------------ clutter/eglnative/clutter-stage-egl.h | 41 -- clutter/eglx/Makefile.am | 30 - clutter/eglx/clutter-backend-egl.c | 823 ---------------------------- clutter/eglx/clutter-backend-egl.h | 116 ---- clutter/eglx/clutter-egl-headers.h | 38 -- clutter/eglx/clutter-eglx.h | 54 -- clutter/eglx/clutter-stage-egl.c | 366 ------------ clutter/eglx/clutter-stage-egl.h | 42 -- configure.ac | 9 +- doc/reference/clutter/Makefile.am | 12 +- doc/reference/clutter/clutter-docs.xml.in | 3 +- doc/reference/clutter/clutter-sections.txt | 7 +- 32 files changed, 1851 insertions(+), 3310 deletions(-) commit 46bed23302a56eec8cb873670396927d2739ce71 Author: Robert Bragg Date: Fri Jun 18 00:29:12 2010 +0100 tslib: Add USE_TSLIB conditional for clutter-event-tslib.c This adds an automake USE_TSLIB condition to decide when we should compile clutter-event-tslib.c. This is in preparation for consolidating the eglx and eglnative backends. clutter/eglnative/Makefile.am | 6 +++++- configure.ac | 2 ++ 2 files changed, 7 insertions(+), 1 deletions(-) commit 5b6800bf63043fa047357656179d8767c77dce0c Author: Robert Bragg Date: Fri Jun 18 00:25:57 2010 +0100 egl: rename clutter-event-egl.c -> clutter-event-tslib.c clutter-event-egl had nothing to do with EGL, it's code for opening tslib devices and creating a GSource for touch screen events. It just happens that this only ever gets used with the eglnative backend. clutter/eglnative/Makefile.am | 2 +- clutter/eglnative/clutter-event-egl.c | 297 ------------------------------- clutter/eglnative/clutter-event-tslib.c | 297 +++++++++++++++++++++++++++++++ 3 files changed, 298 insertions(+), 298 deletions(-) commit ad9006e561c399cf3b5045de7aaac5e6e9684c5c Author: Robert Bragg Date: Fri Jun 18 00:18:02 2010 +0100 clutter event egl: fixes lots of compiler warnings The way the #ifdef HAVE_TSLIB guards were spread around it meant there were lots of warnings about unused variables when building without tslib. clutter/eglnative/clutter-event-egl.c | 25 +++++++++++++++---------- 1 files changed, 15 insertions(+), 10 deletions(-) commit cd82b704e9e7b5b96cbdb470f933ae8e1edae46d Author: Robert Bragg Date: Thu Jun 17 23:12:34 2010 +0100 egl: support creating OpenGL contexts Right before we create the EGL context, we check if we were built with OpenGL or OpenGLES support and it was OpenGL then we call eglBindAPI (EGL_OPENGL_API); This also explicitly requests a EGL_RENDERABLE_TYPE supporting the EGL_OPENGL_BIT. This will let us add a new ./configure flavour that combines OpenGL and EGL instead of OpenGL and GLX. clutter/eglx/clutter-backend-egl.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) commit a84ecf3919cde7142de97c29a0f840c85491d84f Author: Robert Bragg Date: Thu Jun 17 22:26:12 2010 +0100 egl: Unify the eglx and eglnative backends Without actually consolidating the two backends this patch brings their code within a cats whisker of each other in preparation for consolidation. clutter/eglnative/clutter-backend-egl.c | 637 ++++++++++++++++++++++++------- clutter/eglnative/clutter-backend-egl.h | 41 ++- clutter/eglnative/clutter-stage-egl.c | 262 ++++++++++++- clutter/eglnative/clutter-stage-egl.h | 3 + clutter/eglx/clutter-backend-egl.c | 396 +++++++++++++++++--- clutter/eglx/clutter-backend-egl.h | 51 +++- clutter/eglx/clutter-stage-egl.c | 156 +++++++- 7 files changed, 1310 insertions(+), 236 deletions(-) commit 53bf95466b938951ccb47a67f4d74a1441fd4799 Author: Robert Bragg Date: Thu Jun 17 23:23:12 2010 +0100 build: Adds a new opengl-egl-xlib build flavour With this patch if you ./configure clutter using --with-flavour=opengl-egl-xlib then it will use EGL + OpenGL instead of the default GLX and OpenGL. These days upstream driver work is more focused on improving EGL than it is GLX so likewise we want to make sure Clutter has good support for EGL. configure.ac | 25 ++++++++++++++++++++++++- 1 files changed, 24 insertions(+), 1 deletions(-) commit bf9d5f394997c0ff9d7b4a3671ac04499d0c3fb2 Author: Robert Bragg Date: Fri Jun 18 01:25:46 2010 +0100 build: distinguish CLUTTER_WINSYS and CLUTTER_SONAME_INFIX This adds a separate variable name "CLUTTER_SONAME_INFIX" to define the infix for the clutter library that gets linked. Currently the WINSYS corresponds to the directory we enter when building to compile the window system and input support, but it is desirable to be able to define multiple flavours that use the same WINSYS but should result in different library names. For example we are planning to combine the eglx and eglnative window systems into one "egl" winsys but we will need to preserve the current library names for the eglx and eglnative flavours. Makefile.am | 4 ++-- clutter.pc.in | 3 ++- clutter/Makefile.am | 16 ++++++++-------- configure.ac | 9 ++++++++- doc/reference/clutter/Makefile.am | 2 +- tests/conform/Makefile.am | 2 +- tests/interactive/Makefile.am | 2 +- tests/micro-bench/Makefile.am | 2 +- 8 files changed, 24 insertions(+), 16 deletions(-) commit 4bd44738fd80cbd43c8e08b2a9da8dce4fec5bab Author: Robert Bragg Date: Fri Jun 18 01:56:23 2010 +0100 configure.ac: avoid some duplication When we check the flavour we now just set boolean variables for the following things: SUPPORT_X11=1 SUPPORT_XLIB=1 SUPPORT_GLX=1 SUPPORT_EGL=1 SUPPORT_EGL_POWERVR_X11=1 SUPPORT_EGL_POWERVR_NULL=1 This lets us avoid some duplication and also some error prone tests for lists of flavours used, for example, to determine when we need to check for x libraries. configure.ac | 108 ++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 64 insertions(+), 44 deletions(-) commit 25ed304567561bf95baab1c77cda8b06d01b97eb Author: Robert Bragg Date: Fri Jun 18 01:13:33 2010 +0100 configure.ac: distinguish CLUTTER_FLAVOUR and CLUTTER_WINSYS It's desirable to have a separation between the "flavour" and the "winsys". The flavour is a concept internal to the configure script and is a convenient name to represent the users choice of window system, opengl driver and input backend. The CLUTTER_WINSYS currently defines the subdirectory under clutter/ that should be compiled to handle the window system and input. With a separation we could add a flavour with no correspondence to which clutter/subdirectory needs to be built. configure.ac | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) commit c3e43a7e473023c327e91094cbe5b9d0a103ec21 Author: Robert Bragg Date: Fri Jun 18 01:07:59 2010 +0100 configure.ac: move the special handling of the fruity flavour After checking the flavour option the user gives we were checking for the fruity flavour to override the glesversion. Now that the glsl checking has been moved this can instead just wait until the AS_CASE that handles all the flavour configuration. configure.ac | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) commit e3293abcd473d8942acfce9eafb2877e2f44ee49 Author: Robert Bragg Date: Fri Jun 18 01:02:38 2010 +0100 configure.ac: move gles checks after the flavour checks The flavour AS_CASE should define whether a flavour uses the gl or gles COGL_DRIVER and so we shouldn't need to have an expanding list of tests to gate when we check for a gles driver because if we move the checks for gles after the flavour checks we can just look at $COGL_DRIVER. configure.ac | 177 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 89 insertions(+), 88 deletions(-) commit c151fa2efd8a794c0feab319d05d06796c6f4b3e Author: Robert Bragg Date: Fri Jun 18 01:02:38 2010 +0100 configure.ac: don't have so many XYX_{LIBS,CFLAGS} vars This removes EGL_{LIBS,CFLAGS}, GLX_{LIBS,CFLAGS}, OSX_{LIBS,CFLAGS}, WIN32_{LIBS,CFLAGS}, and GLES_{LIBS,CFLAGS} and instead we just append to FLAVOUR_{LIBS,CFLAGS}. This makes more of the file relocatable because there were previously dependencies on the order that some variables were setup in. configure.ac | 37 ++++++++++++++++++++----------------- 1 files changed, 20 insertions(+), 17 deletions(-) commit e2dcd7e852c2bda2a6bf72c7c3f777c16ff9c89b Author: Neil Roberts Date: Fri Jun 18 15:19:59 2010 +0100 clutter-stage: Use g_array_free instead of g_array_unref g_array_unref was only added in GLib 2.22 so we should really update the requirements in the configure script if we want to use that function. However the array doesn't appear to have any extra reference taken on it anywhere so it should be safe to use g_array_free instead. clutter/clutter-state.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 5a73e20a15ea0b84a1788a70e23d8814eb4519af Author: Neil Roberts Date: Fri Jun 18 15:25:51 2010 +0100 cogl-context: Use the function pointer for glActiveUnit Under WGL, any functions that were defined after GL 1.1 are not directly exported in the DLL so we need to reference them via the function pointers. A new call to glActiveUnit was missed in cogl-context.c clutter/cogl/cogl/cogl-context.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 9cc90333473e33d590242891a463165e5e80890f Author: Neil Roberts Date: Fri Jun 18 15:33:03 2010 +0100 cogl-material: Don't use the symbol 'near' The window headers contain the line #define near so it's not possible to use the symbol 'near' in code that's portable to Windows. This replaces it with 'near_val'. I think the define is meant to improve compatibility with code written for Windows 3.1 where near would be a keyword to make it a smaller pointer size. clutter/cogl/cogl/cogl-material.c | 20 ++++++++++---------- clutter/cogl/cogl/cogl-material.h | 16 ++++++++-------- 2 files changed, 18 insertions(+), 18 deletions(-) commit 0411ba7d3235508554035406dc747df19e8deffb Author: Emmanuele Bassi Date: Thu Jun 17 17:35:00 2010 +0100 actor: Parse actions, constraints and effects members ClutterActor should allow attaching actions, constraints and effects just like it allows behaviours, e.g.: { ... "constraints" : [ { "type" : "ClutterAlignConstraint", "source" : "stage", "align-axis" : "x-axis", "factor" : 0.5 }, { "type" : "ClutterAlignConstraint", "source" : "stage", "align-axis" : "y-axis", "factor" : 0.5 } ], ... } or: { ... "actions" : [ { "type" : "ClutterDragAction", "signals" : [ { "name" : "drag-end", "handler" : "on_drag_end" } ] } ], ... } In order to do so, we use the Scriptable interface implementation and add three new custom properties accepting an array; then we parse each member of the array as a new object. clutter/clutter-actor.c | 86 ++++++++++++++++++++++++++++-- tests/data/test-script-named-object.json | 36 ++++++++++--- 2 files changed, 111 insertions(+), 11 deletions(-) commit a75c02a5d688a85608b628a89bdd4949e3b53faa Author: Emmanuele Bassi Date: Thu Jun 17 17:33:10 2010 +0100 constraints: Allow Align and Bind sources to be NULL Since constructing AlignConstraint and BindConstraint instances could be deferred (think ClutterScript) we need to make their :source properties setters accept NULL. This does not break the constraints because they need to handle that condition in case they actor to which they are applied is destroyed and somebody is holding a reference on them anyway. clutter/clutter-align-constraint.c | 29 +++++++++++++++++------------ clutter/clutter-bind-constraint.c | 28 ++++++++++++++++------------ 2 files changed, 33 insertions(+), 24 deletions(-) commit a4dbcf0c32e8143dba4f7dbd4f1191c3225af413 Author: Emmanuele Bassi Date: Thu Jun 17 16:41:44 2010 +0100 script-parser: Expose extracting the id from a node The get_id_from_node() internal function should be exposed inside Clutter (as a private function) because it can be useful to other custom parsing code. The code is pretty trivial, but it would be pointless to re-implement it. clutter/clutter-script-parser.c | 10 +++++----- clutter/clutter-script-private.h | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) commit c85d535a090e1fbe5e6efe32036c4e13a04890cb Author: Emmanuele Bassi Date: Thu Jun 17 12:32:24 2010 +0100 actor: Disable the layout cycle warning with debug disabled If Clutter has been configured with --enable-debug set to 'no' then we hide most of the warnings. clutter/clutter-actor.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 77c63e0237efd6fe91f33aca6e3bd4903d57aee5 Author: Emmanuele Bassi Date: Thu Jun 17 12:02:28 2010 +0100 bind-constraint: Add accessor methods ClutterBindConstraint should have accessor methods for its properties, to allow direct manipulation instead of going through GObject's API. clutter/clutter-bind-constraint.c | 213 ++++++++++++++++++++-------- clutter/clutter-bind-constraint.h | 16 ++- doc/reference/clutter/clutter-sections.txt | 6 + 3 files changed, 172 insertions(+), 63 deletions(-) commit 52d2e7d25de2be9b8acd7dba800fafff690af1ab Author: Øyvind Kolås Date: Wed Jun 16 17:33:48 2010 +0100 state: add a duration property Adding a duration property to ClutterState allows the json parsing to parse the default transition duration with the generic code paths. clutter/clutter-state.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) commit 351b6c0543390a3e1289aec7cf14058ffc4eb6af Author: Øyvind Kolås Date: Wed Jun 16 17:44:06 2010 +0100 state: avoid walking off empty list When removing the last key in a list, the last part of the for statement could cause dereferencing (NULL)->next and thus segfaulting. clutter/clutter-state.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 35c6179a8e01ca02ee3239ec8e4a0379e41ada09 Author: Øyvind Kolås Date: Wed Jun 16 17:43:44 2010 +0100 animator: avoid walking off empty list When removing the last key in a list, the last part of the for statement could cause dereferencing (NULL)->next and thus segfaulting. clutter/clutter-animator.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 698cce8276eeff945980f16ebe3ac585bd71a9b7 Author: Emmanuele Bassi Date: Wed Jun 16 17:17:27 2010 +0100 shader-effect: Add a size check Similar to the one in commit 2a354d9650bb8215dd75a90b947fb82734c35b78 that went into clutter_value_set_shader_*. We end up in the same situation, but it's better to fail from within ClutterShaderEffect. clutter/clutter-shader-effect.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 2a354d9650bb8215dd75a90b947fb82734c35b78 Author: Richard Hughes Date: Wed Jun 16 16:19:48 2010 +0100 shader-types: Check the size of the values Emit a critical error if the user tries to send more data than the static shader GValues can hold. This fixes the random memory corruption you get when specifying size > 4. Signed-off-by: Emmanuele Bassi clutter/clutter-shader-types.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 2d99f77e3b0027c83b9b2068d65b39d18dbfdbd3 Author: Emmanuele Bassi Date: Wed Jun 16 13:58:41 2010 +0100 cairo-texture: Disable :sync-size The :sync-size property of ClutterTexture should be set to FALSE by default by ClutterCairoTexture. The preferred size of the ClutterCairoTexture is already the size of the internal Cairo surface, and we override the preferred width/height getters to that effect. The :sync-size property is also responsible of changing the size of the Texture actor when changing the texture handle - but since we encourage that to happen during the CairoTexture allocation, we get a queue_relayout() invocation (and a warning) when we change the size of the Cairo image surface. Since GObject doesn't make it easy to override the default value of the :sync-size property in sub-classes, we should simply call the setter function during the ClutterCairoTexture instance initialization. We should also change one of the interactive tests using a CairoTexture to rebuild the contents of the actor in response to an allocation. clutter/clutter-cairo-texture.c | 8 ++++ tests/interactive/test-bin-layout.c | 66 ++++++++++++++++++++++++++++++----- 2 files changed, 65 insertions(+), 9 deletions(-) commit 72fa820dbdc9edee264015146715d98d7728a8a5 Author: Emmanuele Bassi Date: Wed Jun 16 12:53:02 2010 +0100 cairo-texture: Clean up style clutter/clutter-cairo-texture.c | 34 ++++++++++++++++++---------------- 1 files changed, 18 insertions(+), 16 deletions(-) commit 859d1f0792177d8d5cc589e64d6dbad04074e0c4 Author: Emmanuele Bassi Date: Wed Jun 16 12:47:56 2010 +0100 align-constraint: Publish the properties accessors The accessor methods for the AlignConstraint properties should be public. clutter/clutter-align-constraint.c | 221 +++++++++++++++++++++------- clutter/clutter-align-constraint.h | 16 ++- doc/reference/clutter/clutter-sections.txt | 6 + 3 files changed, 183 insertions(+), 60 deletions(-) commit 72f8bb454a1dbaa4a3295d329bae4d69d9bf5281 Author: Richard Hughes Date: Tue Jun 15 22:36:19 2010 +0100 build: Fix a compiler warning when using make dist Signed-off-by: Emmanuele Bassi clutter/cogl/cogl/Makefile.am | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 56315d92bd9e961450746d9f9c973f937be20aa6 Author: Robert Bragg Date: Wed Jun 9 02:42:01 2010 +0100 stage-glx: Never promote clipped redraws to full redraws. When clipped redraws were first supported in Clutter a heuristic was added to promote tall clipped redraws into full redraws due to a concern that using glXCopySubBuffer for tall rectangles would block the GPU for too long waiting for the vtrace to be in a suitable position so that tearing isn't seen. We've so far been unable to measure any impact from this blocking even with full height windows so we are removing the arbitrary threshold of 300px that was originally "plucked out of thin air". http://bugzilla.o-hand.com/show_bug.cgi?id=2136 clutter/glx/clutter-stage-glx.c | 10 ++-------- 1 files changed, 2 insertions(+), 8 deletions(-) commit 5382e8722b8194320feb7c18065b2831e4ebe752 Author: Emmanuele Bassi Date: Tue Jun 15 16:51:55 2010 +0100 Split out the ignored test files .gitignore | 196 +----------------------------------------- tests/conform/.gitignore | 113 ++++++++++++++++++++++++ tests/interactive/.gitignore | 69 +++++++++++++++ tests/micro-bench/.gitignore | 4 + 4 files changed, 188 insertions(+), 194 deletions(-) commit 6d132e45ff05da2e5604d6cce59ff324617eaea4 Author: Emmanuele Bassi Date: Tue Jun 15 16:46:59 2010 +0100 Add cogl-depth-test to the Git ignore file .gitignore | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 7164da7467b0b2570d1e90c40844a322335f30ec Author: Emmanuele Bassi Date: Tue Jun 15 16:42:30 2010 +0100 Set the initial value of a variable Fixes a compiler warning. clutter/cogl/cogl/cogl-primitives.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e312f7ee4a6ee5a4ee1c95ada289746e2372fc45 Author: Robert Bragg Date: Mon Jun 14 23:14:15 2010 +0100 material: Adds arbfp compile counter This adds a uprof counter to track how many ARBfp programs get compiled by an application. clutter/cogl/cogl/cogl-material.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) commit 305721d0e8f2c2bad83787740628b2444f895a6f Author: Robert Bragg Date: Thu Jun 10 19:03:57 2010 +0100 material: Support sparse ARBfp program generation We don't need to generate a new ARBfp program for every material created if we can find an ancestor whos state will result in the same program being generated. The more code we can have adopt the coding pattern of deriving their materials from other similar materials using cogl_material_copy() the more likely this metric will be good enough on its own to minimize the set of arbfp programs necessary to support a given application. clutter/cogl/cogl/cogl-material-private.h | 21 ++- clutter/cogl/cogl/cogl-material.c | 356 ++++++++++++++++++++++++----- 2 files changed, 316 insertions(+), 61 deletions(-) commit 2fe58f5000fc36ed8c37481f85ab1ec975ed0a9a Author: Robert Bragg Date: Mon Jun 14 22:20:27 2010 +0100 material: free any layer cache in material_set_parent Previously in _cogl_material_pre_change_notify we manually freed the layer caches of a material if we caused a reparent, but it makes more sense to have _cogl_material_set_parent do this directly instead. clutter/cogl/cogl/cogl-material.c | 23 +++++------------------ 1 files changed, 5 insertions(+), 18 deletions(-) commit dc0cb7959885c0eaf43008c0065ed99bf10d5df2 Author: Robert Bragg Date: Thu May 27 20:04:49 2010 +0100 Adds an internal weak material mechanism This adds a _cogl_material_weak_copy() function that can be used to create materials that don't count as strong dependants on their parents. This means the parent can be modified without worrying about how it will affect weak materials. The material age of the parent can potentially be queried to determine if a weak material might need to be re-created. clutter/cogl/cogl/cogl-material-private.h | 6 + clutter/cogl/cogl/cogl-material.c | 167 ++++++++++++++++++++--------- 2 files changed, 123 insertions(+), 50 deletions(-) commit b5bd76cde176ef88efd3b4f3107e44f3aff2591a Author: Robert Bragg Date: Thu May 27 15:19:15 2010 +0100 material: Adds a simple material age getter When we add support for weak materials it's expected that Clutter will want to attach them as private data to other materials and it needs a mechanism to determine when a weak material should be re-created because its parent has changed somehow. This adds the concept of a material age (internal only currently) which increments whenever a material is modified. Clutter can then save the age of the material which its weak materials are derived from and later determine when the weak material may be invalid. clutter/cogl/cogl/cogl-material-private.h | 10 ++++++++++ clutter/cogl/cogl/cogl-material.c | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 0 deletions(-) commit 634bcb34f98725deadea7777f0ab41071d009ecb Author: Robert Bragg Date: Thu May 27 15:18:15 2010 +0100 primitives: we were memsetting the wrong wrap mode overrides pointer In _cogl_texture_quad_multiple_primitives we weren't memsetting the CoglMaterialWrapModeOverrides structure we were memsetting &state.wrap_mode_overrides where state.wrap_mode_overrides is just a pointer that might potentially later point to the CoglMaterialWrapModeOverrides structure. clutter/cogl/cogl/cogl-primitives.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 2d6925f243e9e9d8faa66aa63917a32db7293e3b Author: Robert Bragg Date: Wed May 26 14:13:37 2010 +0100 material: generalize how we compare simple material properties In _cogl_material_equal we were repeating the same code pattern to compare several of the state groups so this just adds simple_property_equal function that's now used instead. clutter/cogl/cogl/cogl-material.c | 134 +++++++++++++++++-------------------- 1 files changed, 62 insertions(+), 72 deletions(-) commit c434f1fc48390a6e2c963656b039ebc3df0991af Author: Robert Bragg Date: Wed May 26 11:33:32 2010 +0100 material: Make CoglMaterial responsible for depth state This redirects the legacy depth testing APIs through CoglMaterial and adds a new experimental cogl_material_ API for handling the depth testing state. This adds the following new functions: cogl_material_set_depth_test_enabled cogl_material_get_depth_test_enabled cogl_material_set_depth_writing_enabled cogl_material_get_depth_writing_enabled cogl_material_set_depth_test_function cogl_material_get_depth_test_function cogl_material_set_depth_range cogl_material_get_depth_range As with other experimental Cogl API you need to define COGL_ENABLE_EXPERIMENTAL_API to access them and their stability isn't yet guaranteed. clutter/cogl/cogl/cogl-context.c | 8 + clutter/cogl/cogl/cogl-context.h | 8 + clutter/cogl/cogl/cogl-material-private.h | 19 ++- clutter/cogl/cogl/cogl-material.c | 323 +++++++++++++++++++++++++-- clutter/cogl/cogl/cogl-material.h | 207 +++++++++++++++++ clutter/cogl/cogl/cogl-types.h | 25 ++- clutter/cogl/cogl/cogl.c | 28 ++- clutter/cogl/cogl/cogl.h | 6 + tests/conform/Makefile.am | 1 + tests/conform/test-cogl-depth-test.c | 354 +++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 11 files changed, 952 insertions(+), 28 deletions(-) commit ff4d3e048b11ed1fc609c53e5e00595602eaf373 Author: Robert Bragg Date: Wed May 26 03:07:17 2010 +0100 cogl docs: Improve documentation for cogl_ortho cogl_ortho is one of those APIs whos style was, for better or worse, copied from OpenGL and for some inexplicable reason the near and far arguments are inconsistent with the left, right, top, bottom arguments because they don't take z coordinates they take a "distance" which should be negative for a plane behind the viewer. This updates the documentation to explain this. clutter/cogl/cogl/cogl.h | 21 +++++++++++++++++---- doc/reference/cogl/Makefile.am | 6 ++++-- doc/reference/cogl/cogl_ortho.png | Bin 0 -> 12650 bytes 3 files changed, 21 insertions(+), 6 deletions(-) commit e8275538e5a06a267d7e7e062103736dfdc3ac53 Author: Robert Bragg Date: Wed May 19 01:02:16 2010 +0100 primitives: no longer assume _get_layers list remains valid The internal CoglMaterialLayer pointers associated with a material may change whenever layer properties are modified so it's no longer ok to assume that a list of layers returned by cogl_material_get_layers remains valid if the layers have been changed. clutter/cogl/cogl/cogl-primitives.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 487c0b1ae9f9378eb0419e44c1d96c92df687a2d Author: Robert Bragg Date: Wed May 19 00:36:31 2010 +0100 material: Adds simple breadcrumb debugging mechanism Since it can sometimes be awkward to figure out where a particular material came from when debugging, this adds a breadcrumb mechanism that lets you associate a const string with a material that may give a clue about its origin. clutter/cogl/cogl/cogl-material-private.h | 14 ++++++++++++++ clutter/cogl/cogl/cogl-material.c | 23 ++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletions(-) commit ad0aab939dd74592eef0a2882bd7457baed68151 Author: Robert Bragg Date: Tue May 18 23:38:33 2010 +0100 material: remove override options from _cogl_material_equal As a follow on to using cogl_material_copy instead of flush options this patch now removes the ability to pass flush options to _cogl_material_equal which is the final reference to the CoglMaterialFlushOptions mechanism. clutter/cogl/cogl/cogl-journal.c | 4 +- clutter/cogl/cogl/cogl-material-private.h | 2 - clutter/cogl/cogl/cogl-material.c | 60 ++++++---------------------- 3 files changed, 14 insertions(+), 52 deletions(-) commit 02b7f51e800661de4bf3e0daeb8d8c51e88dc153 Author: Robert Bragg Date: Tue May 18 22:42:49 2010 +0100 cogl: remove _cogl_material_flush_gl_state flush options Since cogl_material_copy should now be cheap to use we can simplify how we handle fallbacks and wrap mode overrides etc by simply copying the original material and making our override changes on the new material. This avoids the need for a sideband state structure that has been growing in size and makes flushing material state more complex. Note the plan is to eventually use weak materials for these override materials and attach these as private data to the original materials so we aren't making so many one-shot materials. clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-journal-private.h | 1 - clutter/cogl/cogl/cogl-journal.c | 68 ++++++++++++++++++----------- clutter/cogl/cogl/cogl-material-private.h | 6 ++- clutter/cogl/cogl/cogl-material.c | 38 +--------------- clutter/cogl/cogl/cogl-path.c | 24 +++++++--- clutter/cogl/cogl/cogl-primitives.c | 60 +++++++++++++++++-------- clutter/cogl/cogl/cogl-vertex-buffer.c | 45 ++++++++++++++++++- clutter/cogl/cogl/cogl.c | 4 +- 9 files changed, 153 insertions(+), 95 deletions(-) commit 365605cf42fca1beb9b70acd58d23ee4bc4cd208 Author: Robert Bragg Date: Thu Apr 8 12:21:04 2010 +0100 CoglMaterial: Implements sparse materials design This is a complete overhaul of the data structures used to manage CoglMaterial state. We have these requirements that were aiming to meet: (Note: the references to "renderlists" correspond to the effort to support scenegraph level shuffling of Clutter actor primitives so we can minimize GPU state changes) Sparse State: We wanted a design that allows sparse descriptions of state so it scales well as we make CoglMaterial responsible for more and more state. It needs to scale well in terms of memory usage and the cost of operations we need to apply to materials such as comparing, copying and flushing their state. I.e. we would rather have these things scale by the number of real changes a material represents not by how much overall state CoglMaterial becomes responsible for. Cheap Copies: As we add support for renderlists in Clutter we will need to be able to get an immutable handle for a given material's current state so that we can retain a record of a primitive with its associated material without worrying that changes to the original material will invalidate that record. No more flush override options: We want to get rid of the flush overrides mechanism we currently use to deal with texture fallbacks, wrap mode changes and to handle the use of highlevel CoglTextures that need to be resolved into lowlevel textures before flushing the material state. The flush options structure has been expanding in size and the structure is logged with every journal entry so it is not an approach that scales well at all. It also makes flushing material state that much more complex. Weak Materials: Again for renderlists we need a way to create materials derived from other materials but without the strict requirement that modifications to the original material wont affect the derived ("weak") material. The only requirement is that its possible to later check if the original material has been changed. A summary of the new design: A CoglMaterial now basically represents a diff against its parent. Each material has a single parent and a mask of state that it changes. Each group of state (such as the blending state) has an "authority" which is found by walking up from a given material through its ancestors checking the difference mask until a match for that group is found. There is only one root node to the graph of all materials, which is the default material first created when Cogl is being initialized. All the groups of state are divided into two types, such that infrequently changed state belongs in a separate "BigState" structure that is only allocated and attached to a material when necessary. CoglMaterialLayers are another sparse structure. Like CoglMaterials they represent a diff against their parent and all the layers are part of another graph with the "default_layer_0" layer being the root node that Cogl creates during initialization. Copying a material is now basically just a case of slice allocating a CoglMaterial, setting the parent to be the source being copied and zeroing the mask of changes. Flush overrides should now be handled by simply relying on the cheapness of copying a material and making changes to it. (This will be done in a follow on commit) Weak material support will be added in a follow on commit. clutter/cogl/cogl/cogl-atlas-texture.c | 10 + clutter/cogl/cogl/cogl-context.c | 23 +- clutter/cogl/cogl/cogl-context.h | 21 +- clutter/cogl/cogl/cogl-debug.c | 4 +- clutter/cogl/cogl/cogl-debug.h | 3 +- clutter/cogl/cogl/cogl-internal.h | 9 +- clutter/cogl/cogl/cogl-journal.c | 7 +- clutter/cogl/cogl/cogl-material-private.h | 606 ++- clutter/cogl/cogl/cogl-material.c | 6130 +++++++++++++++++++++-------- clutter/cogl/cogl/cogl-material.h | 6 +- clutter/cogl/cogl/cogl-path.c | 7 +- clutter/cogl/cogl/cogl-primitives.c | 29 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 21 +- clutter/cogl/cogl/cogl.c | 8 - 14 files changed, 4979 insertions(+), 1905 deletions(-) commit 5f9c7d36571219a2038fe9237847894e0b718bbc Author: Robert Bragg Date: Tue Jun 15 14:26:37 2010 +0100 material: fix #ifdef guard around use of _TEXTURE_RECTANGLE We were incorrectly guarding the use of GL_TEXTURE_RECTANGLE_ARB with ifdef ARB_texture_rectangle instead of ifdef GL_ARB_texture_rectangle which broke test-cogl-texture-rectangle. clutter/cogl/cogl/cogl-material.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit a1035389c00bc44b94358d33e9bebb555328b9ac Author: Robert Bragg Date: Thu Jun 10 14:39:20 2010 +0100 blend-strings: removes the AUTO_COMPOSITE function enum This was mistakenly added some time ago because at some point when we were discussing how to handle premultiplied alpha in Clutter/Cogl we were considering having a magic "just do the right thing" option which was later abandoned. clutter/cogl/cogl/cogl-blend-string.c | 2 -- clutter/cogl/cogl/cogl-blend-string.h | 1 - clutter/cogl/cogl/cogl-material.c | 3 --- 3 files changed, 0 insertions(+), 6 deletions(-) commit 249ad97c8fd55b05d4377dad4f9b5e072d161b2b Author: Robert Bragg Date: Thu Jun 10 14:17:42 2010 +0100 cogl-color: add cogl_color_init_from_xyz funcs This is to try and improve API consistency. Simple cogl structures that don't derive from CoglObject and which can be allocated on the stack, such as CoglColor and CoglMatrix should all have "_init" or "_init_from" functions to initialize all the structure members. (As opposed to a cogl_xyz_new() function for CoglObjects). CoglColor previously used the naming scheme "_set_from" for these initializers but "_set" is typically reserved for setting individual properties of a structure/object. This adds three _init functions: cogl_color_init_from_4ub cogl_color_init_from_4f cogl_color_init_from_4fv The _set_from functions are now deprecated but only with a gtk-doc annotation for now. This is because the cogl_color_set_from API is quite widely used already and so were giving a grace period before enabling a GCC deprecated warning just because otherwise the MX maintainers will complain to me that I've made their build logs look messy. clutter/cogl/cogl/cogl-color.c | 64 ++++++++++++++++++++++++++++++--------- clutter/cogl/cogl/cogl-color.h | 61 +++++++++++++++++++++++++++++++++++-- 2 files changed, 106 insertions(+), 19 deletions(-) commit 500baa415789ea0b6277070c67ece54d0e6418ff Author: Robert Bragg Date: Thu Jun 10 14:07:40 2010 +0100 cogl-color: add private _cogl_color_get_rgba_4ubv API The journal logs colors as 4bytes into a vertex array and since we are planning to make CoglMaterial track its color using a CoglColor instead of a byte array this convenience will be useful for re-implementing _cogl_material_get_colorubv. clutter/cogl/cogl/cogl-color-private.h | 40 ++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-color.c | 7 +++++ 2 files changed, 47 insertions(+), 0 deletions(-) commit 272cf6d943688453d19c5b695077903a5002fd17 Author: Johan Bilien Date: Mon Jun 14 19:34:24 2010 +0000 build: Do not include built sources in the distribution allows to run make distcheck without first running make http://bugzilla.openedhand.com/show_bug.cgi?id=2171 Signed-off-by: Emmanuele Bassi clutter/Makefile.am | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) commit 2cee8b648e82382b37595fd583cfd2dd16b5bb2f Author: Øyvind Kolås Date: Mon Jun 14 16:57:44 2010 +0100 state: consistently use clutter_state_get_state where possible The previous commit reimplemented logic for creating states, this - and other parts of the code should be using clutter_state_get_state. clutter/clutter-state.c | 45 +++++++++++++-------------------------------- 1 files changed, 13 insertions(+), 32 deletions(-) commit d5c93f6d550980f75534fdaa8f24db50f490e874 Author: Øyvind Kolås Date: Mon Jun 14 15:45:07 2010 +0100 state: make null source state encounterd in json treated as wildcard To be properly useful the state machine needs to be able to specify the default transitions to a target state with no specified source state. clutter/clutter-state.c | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-) commit 66de8656e99695c1afc0cf735b5fb6ade9300e37 Author: Øyvind Kolås Date: Tue May 25 11:54:15 2010 +0100 test-state: move press/release callbacks to stage avoiding grab tests/interactive/test-state.c | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) commit b8b10ef4db0e6a8e63865d4b358516addc5796e7 Author: Emmanuele Bassi Date: Mon Jun 14 14:05:49 2010 +0100 docs: Clarify the scope of Text:single-line-mode Only editable text actors can be in single-line mode. clutter/clutter-text.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) commit 21820d50ca1b8e4e4d8b6078d3d6ecb191e17c0e Author: Kristian Høgsberg Date: Mon Jun 14 12:59:42 2010 +0100 Don't add GL libs for EGL X11 backend Configure uses the GL .pc file to add GL includes and libs for the eglx backend. http://bugzilla.openedhand.com/show_bug.cgi?id=2104 Signed-off-by: Emmanuele Bassi configure.ac | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) commit 38da6b4a0eacbe0c7e40bc5d237bf31030fcc57d Author: Neil Roberts Date: Mon Jun 14 11:59:33 2010 +0100 clutter-text: Round the layout width to nearest integer not down When converting the floating point allocation width to an integer multiple of PANGO_SCALE to give to the PangoLayout it can sometimes end up slightly short of the allocated size due to rounding errors. This can cause some of the lines to be wrapped differently when a non-integer-aligned position is used (such as when animating text). It works better to round the number to the nearest integer by adding 0.5 instead of letting the default float cast truncate it downwards. http://bugzilla.openedhand.com/show_bug.cgi?id=2170 clutter/clutter-text.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit f97d16cd2d01c7f4d44f5b6ab719878d1a5989e2 Author: Emmanuele Bassi Date: Sat Jun 12 17:45:54 2010 +0100 drag-action: Remove the press event button Both ::drag-begin and ::drag-end have a "button" argument - even though we assume internally, and externally, that dragging can only be the result of a primary button operation. clutter/clutter-drag-action.c | 19 +++++++------------ clutter/clutter-drag-action.h | 2 -- clutter/clutter-marshal.list | 2 +- tests/interactive/test-drag.c | 2 -- tests/interactive/test-scrolling.c | 1 - 5 files changed, 8 insertions(+), 18 deletions(-) commit b8b2a51d444f2a90a9428e26ae4e293deb7fed0d Merge: b2c905f 7343c66 Author: Emmanuele Bassi Date: Fri Jun 11 18:12:54 2010 +0100 Merge branch 'wip/deform-effect' * wip/deform-effect: docs: Add DeformEffect and PageTurnEffect to the API reference effect: Add PageTurnEffect effect: Add DeformEffect offscreen-effect: Traslate the modelview with the offsets docs: Fix Effect subclassing section commit b2c905ff506b9be53e6c14c2d1bc909b97130e76 Author: Emmanuele Bassi Date: Fri Jun 11 15:49:46 2010 +0100 Hide the marshallers The marshallers we use for the signals are declared in a private header, and it stands to reason that they should also be hidden in the shared object by using the common '_' prefix. We are also using some direct g_cclosure_marshal_* symbol from GLib, instead of consistently use the clutter_marshal_* symbol. clutter/Makefile.am | 2 +- clutter/clutter-actor.c | 46 +++++++++++++++--------------- clutter/clutter-alpha.c | 2 +- clutter/clutter-animation.c | 5 ++- clutter/clutter-backend.c | 4 +- clutter/clutter-behaviour-path.c | 2 +- clutter/clutter-behaviour.c | 5 ++- clutter/clutter-binding-pool.c | 8 ++-- clutter/clutter-click-action.c | 2 +- clutter/clutter-container.c | 6 ++-- clutter/clutter-device-manager.c | 4 +- clutter/clutter-drag-action.c | 6 ++-- clutter/clutter-layout-manager.c | 2 +- clutter/clutter-media.c | 8 +++-- clutter/clutter-model.c | 10 +++--- clutter/clutter-score.c | 10 +++--- clutter/clutter-stage-manager.c | 4 +- clutter/clutter-stage.c | 10 +++--- clutter/clutter-state.c | 2 +- clutter/clutter-text.c | 10 +++--- clutter/clutter-texture.c | 6 ++-- clutter/clutter-timeline.c | 10 +++--- clutter/x11/clutter-x11-texture-pixmap.c | 4 +- 23 files changed, 86 insertions(+), 82 deletions(-) commit ded9322a7ab13dc0ab2d5470164909d764eaa436 Author: Neil Roberts Date: Fri Jun 11 14:47:30 2010 +0100 cogl/winsys/cogl-eglx: Use the right egl header on 1.1 Commit b0cc98fdceb introduced a #include for the egl header in cogl-eglx.c The header name is different under GLES 1.1 so it broke compilation. clutter/cogl/cogl/winsys/cogl-eglx.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 64e6cf69d74f9501914bf1f0a6738d897d83aaa5 Author: Neil Roberts Date: Fri Jun 11 14:37:56 2010 +0100 cogl-program: Add cogl_program_uniform_1i to GLES The GLES 1.1 backend was missing a stub for cogl_program_uniform_1i. clutter/cogl/cogl/driver/gles/cogl-program.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) commit 181b46933a16f7649d2c50b928d10e765ad0a522 Author: Neil Roberts Date: Fri Jun 11 14:36:38 2010 +0100 cogl-gles2: Prefix internal GLES 2 wrapper symbols with _ Some internal symbols used for the GLES 2 wrapper were accidentally being exported. This prepends an underscore to them so they won't appear in the shared library. .../cogl/cogl/driver/gles/cogl-context-driver.c | 2 +- .../driver/gles/cogl-fixed-fragment-shader.glsl | 30 ++-- .../cogl/driver/gles/cogl-fixed-vertex-shader.glsl | 24 ++-- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 201 ++++++++++---------- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 192 ++++++++++---------- .../cogl/cogl/driver/gles/cogl-texture-driver.c | 2 +- 6 files changed, 226 insertions(+), 225 deletions(-) commit e00ed20805c136fe63d0f7abc7602f1c9fe2b7bb Author: Emmanuele Bassi Date: Fri Jun 11 15:23:46 2010 +0100 click-action: Use clutter_actor_contains() Instead of an internal copy. clutter/clutter-click-action.c | 14 ++------------ 1 files changed, 2 insertions(+), 12 deletions(-) commit f3f3b5674293f76decc831f2e11b9efba654bb75 Author: Dan Winship Date: Thu Jun 10 08:24:55 2010 -0400 actor: add clutter_actor_contains() It is often useful to determine if one actor is an ancestor of another. Add a method to do that. http://bugzilla.openedhand.com/show_bug.cgi?id=2162 Signed-off-by: Emmanuele Bassi clutter/clutter-actor.c | 25 +++++++++++++++++++++++++ clutter/clutter-actor.h | 2 ++ doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 28 insertions(+), 0 deletions(-) commit d816acd8348a84bf3f0e9f065fab80688a76350d Author: Emmanuele Bassi Date: Fri Jun 11 14:47:48 2010 +0100 shader-effect: Allow creating vertex shaders By default, ShaderEffect creates a fragment shader; in order to be able to deprecate ClutterShader we need a way for ShaderEffect sub-classes to create a vertex shader if needed - By using a write-only, constructor only property. ClutterShader has, internally, a ClutterShaderType enumeration that can be used exactly for this. We just need to expose it and create a GObject property for ClutterShaderEffect. clutter/clutter-shader-effect.c | 70 ++++++++++++++++++++++++++- clutter/clutter-shader.c | 5 -- clutter/clutter-types.h | 14 ++++++ doc/reference/clutter/clutter-sections.txt | 1 + 4 files changed, 82 insertions(+), 8 deletions(-) commit 0f41948c8202215950ed636ac1d9ee663b4254fd Author: Neil Roberts Date: Thu Apr 22 14:33:47 2010 +0100 cogl-clip-stack: Always use the scissor when clipping Whenever a path or a rectangle is added to the clip stack it now also stores a screen space bounding box in the entry. Then when the clip stack is flushed the bounding box is first used to set up the scissor. That way when we eventually come to use the stencil buffer the clear will be affected by the scissor so we don't have to clear the entire buffer. clutter/cogl/cogl/cogl-clip-stack.c | 179 +++++++++++++++++++++++------------ clutter/cogl/cogl/cogl-path.c | 4 + 2 files changed, 124 insertions(+), 59 deletions(-) commit e74387f36ff7a8fa654ac37fa21fbbfbcc01689a Author: Neil Roberts Date: Thu Apr 22 14:13:52 2010 +0100 cogl-path: Export _cogl_path_get_bounds _cogl_path_get_bounds is no longer static and is exported in cogl-path-private.h so that it can be used in the clip stack code. The old version of the function returned x/y and width/height. However this was mostly used to call cogl_rectangle which takes x1/y1 x2/y2. The function has been changed to just directly return the second form because it is more useful. Anywhere that was previously using the function now just directly looks at path->path_nodes_min and path->path_nodes_max instead. clutter/cogl/cogl/cogl-path-private.h | 7 +++ clutter/cogl/cogl/cogl-path.c | 72 ++++++++++++++++++--------------- 2 files changed, 46 insertions(+), 33 deletions(-) commit 0bc16c90add35e79a9d564379cc4793ab47d9b76 Author: Neil Roberts Date: Thu Apr 22 13:48:49 2010 +0100 cogl-clip-state: Export transform_point internally to Cogl The transform_point function takes a modelview matrix, projection matrix and a viewport and performs all three transformations on a point to give a Cogl window coordinate. This is useful in a number of places in Cogl so this patch moves it to cogl.c and adds it to cogl-internal.h clutter/cogl/cogl/cogl-clip-state.c | 45 ++-------------------------------- clutter/cogl/cogl/cogl-internal.h | 7 +++++ clutter/cogl/cogl/cogl.c | 39 ++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 42 deletions(-) commit 67812d6649d27ec6a8f6a1c9277b686fc3b67475 Author: Sunil Sadasivan Date: Thu May 13 00:59:06 2010 -0700 cogl_texture_get_data() copies using wrong width size. For sliced 2D textures, _cogl_texture_2d_sliced_get_data() uses the bitmap width, instead of the rowstride, when memcpy()ing into the dest buffer. Signed-off-by: Robert Bragg clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e562ac20dffde1989c1c66d00e92a52e1d1d293f Author: Damien Lespiau Date: Sun Jun 6 23:03:26 2010 +0100 cogl-color: Provide setters for all the channels We only had getters for the red, green, blue and alpha channels of a color. This meant that, if you wanted to change, say, the alpha component of a color, one would need to query the red, green and blue channels and use set_from_4ub() or set_from_4f(). Instead of this, just provide some setters for CoglColor, using the same naming scheme than the existing getters. clutter/cogl/cogl/cogl-color.c | 84 ++++++++++++++++++ clutter/cogl/cogl/cogl-color.h | 156 ++++++++++++++++++++++++++++++++++ doc/reference/cogl/cogl-sections.txt | 18 ++++ 3 files changed, 258 insertions(+), 0 deletions(-) commit 55be1a23c30c1705dbbb1d8d6f7b24056ce57e48 Author: Damien Lespiau Date: Sun Jun 6 22:57:02 2010 +0100 cogl-color: Add cogl_color_unpremultiply() For some operations on pre-multiplied colors (say, replace the alpha value), you need to unpremultiply the color. This patch provides the counterpart to cogl_color_premultiply(). clutter/cogl/cogl/cogl-color.c | 11 +++++++++++ clutter/cogl/cogl/cogl-color.h | 13 +++++++++++++ doc/reference/cogl/cogl-sections.txt | 1 + 3 files changed, 25 insertions(+), 0 deletions(-) commit 396914176ff459ce09587ac75db7bc55a5de9910 Author: Emmanuele Bassi Date: Wed May 26 16:32:23 2010 +0100 cogl: Initialize the framebuffer bits on state flush The place where we actually change the framebuffer is _cogl_framebuffer_flush_state(), so if we changed to a new frame buffer we need to initialize the color bits there. http://bugzilla.openedhand.com/show_bug.cgi?id=2094 clutter/cogl/cogl/cogl-framebuffer.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) commit 15881e0f24294db68ba1c3ead63246fc46c1c418 Author: Emmanuele Bassi Date: Wed May 26 17:14:53 2010 +0100 cogl-framebuffer: Use the FBO extension for color sizes OpenGL 3.0 deprecated querying of the GL_{RED,GREEN,BLUE}_BITS constants, and the FBO extension provides a mechanism to query for the color buffer sizes which *should* work even with the default framebuffer. Unfortunately, this doesn't seem to hold for Mesa - so we just use this for the offscreen CoglFramebuffer type, and we fall back to glGetIntegerv() for the onscreen one. http://bugzilla.openedhand.com/show_bug.cgi?id=2094 clutter/cogl/cogl/cogl-debug.c | 4 +- clutter/cogl/cogl/cogl-framebuffer.c | 78 +++++++++++++++++++- .../cogl/cogl/driver/gl/cogl-feature-functions.h | 5 + .../cogl/cogl/driver/gles/cogl-feature-functions.h | 5 + 4 files changed, 87 insertions(+), 5 deletions(-) commit 3daafd4711416cf6f15376fcc97834b1e97fedc8 Author: Emmanuele Bassi Date: Wed May 26 16:31:18 2010 +0100 cogl: Hide cogl_framebuffer_get_*_bits() These accessors should be private, for the time being. http://bugzilla.openedhand.com/show_bug.cgi?id=2094 clutter/cogl/cogl/cogl-framebuffer.c | 8 ++++---- clutter/cogl/cogl/cogl.c | 8 ++++---- clutter/cogl/cogl/cogl.h | 24 ++++++++++++------------ 3 files changed, 20 insertions(+), 20 deletions(-) commit 7343c66482f2a7a94b442a640a16d5107be65fc2 Author: Emmanuele Bassi Date: Thu Jun 10 18:51:22 2010 +0100 docs: Add DeformEffect and PageTurnEffect to the API reference doc/reference/clutter/clutter-docs.xml.in | 2 + doc/reference/clutter/clutter-sections.txt | 40 ++++++++++++++++++++++++++++ doc/reference/clutter/clutter.types | 2 + 3 files changed, 44 insertions(+), 0 deletions(-) commit 44f300b3a242eb722cc1c82129e5e86daa3eb65d Author: Emmanuele Bassi Date: Thu Jun 10 16:56:16 2010 +0100 effect: Add PageTurnEffect A simple deformation effect that simulates a page curl. Ported from MxDeformPageTurn inside the Mx toolkit, written by Chris Lord. clutter/Makefile.am | 2 + clutter/clutter-page-turn-effect.c | 417 ++++++++++++++++++++++++++++++++++++ clutter/clutter-page-turn-effect.h | 71 ++++++ clutter/clutter.h | 1 + tests/interactive/test-drag.c | 25 +++ 5 files changed, 516 insertions(+), 0 deletions(-) commit c2081a076c3fdd376d2cd97c11f811e4a6549926 Author: Emmanuele Bassi Date: Wed Jun 9 17:52:06 2010 +0100 effect: Add DeformEffect DeformEffect is an abstract class that should be used to write effects that change the geometry of an actor before submitting it to the GPU. Just like the ShaderEffect class, DeformEffect renders the actor to which it has been applied into an FBO; then it creates a mesh and stores it inside a VBO. Sub-classes can control vertex attributes like position, texel coordinates and the color. clutter/Makefile.am | 2 + clutter/clutter-deform-effect.c | 739 +++++++++++++++++++++++++++++++++++++++ clutter/clutter-deform-effect.h | 111 ++++++ clutter/clutter.h | 1 + 4 files changed, 853 insertions(+), 0 deletions(-) commit fa381cc36194fbefd26717b1b3031018d5a1400e Author: Emmanuele Bassi Date: Thu Jun 10 17:35:56 2010 +0100 offscreen-effect: Traslate the modelview with the offsets Instead of using the stage offsets when painting we can simply traslate the current modelview. This allows sub-classes to fully override the paint_target() virtual function without chaining up. clutter/clutter-offscreen-effect.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-) commit 8d22fea31c1df87904a82112ef3e917b70d56120 Author: Emmanuele Bassi Date: Thu Jun 10 17:34:48 2010 +0100 docs: Fix Effect subclassing section It still mentions the long since removed "prepare" function. clutter/clutter-effect.c | 22 +++++----------------- 1 files changed, 5 insertions(+), 17 deletions(-) commit dc09fca2649d11d7c080b3c859b2996e1911f9f5 Author: Neil Roberts Date: Wed Jun 9 13:53:34 2010 +0100 cogl-material: Fix the function which sets the enable blend flag This function had two problems. Firstly it would clear the enable blend flag before calling pre_change_notify so that if blending was previously enabled the journal would end up being flushed while the flag was still cleared. Secondly it would call the pre change notify whenever blending is needed regardless of whether it was already needed previously. This was causing problems in test-depth. clutter/cogl/cogl/cogl-material.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) commit b1f7d2fea8835c7731d9b999ce080f740a6b4b9b Author: Robert Bragg Date: Mon Apr 26 10:01:43 2010 +0100 material: Avoid redundant glBindTexture calls This adds a _cogl_bind_gl_texture_transient function that should be used instead of glBindTexture so we can have a consistent cache of the textures bound to each texture unit so we can avoid some redundant binding. clutter/cogl/cogl/cogl-atlas-texture.c | 10 ++- clutter/cogl/cogl/cogl-material-private.h | 28 +++++ clutter/cogl/cogl/cogl-material.c | 112 ++++++++++++++++++-- clutter/cogl/cogl/cogl-sub-texture.c | 6 +- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 55 +++++++--- clutter/cogl/cogl/cogl-texture-2d.c | 32 ++++-- clutter/cogl/cogl/cogl-texture-driver.h | 2 + clutter/cogl/cogl/cogl-texture-private.h | 19 ++++ clutter/cogl/cogl/cogl-texture.c | 23 ++++ clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 11 ++- .../cogl/cogl/driver/gles/cogl-texture-driver.c | 9 +- clutter/glx/clutter-glx-texture-pixmap.c | 8 +- 12 files changed, 272 insertions(+), 43 deletions(-) commit ce6e80315e17f2e671e2709268f580add757f596 Author: Robert Bragg Date: Mon Apr 26 10:01:43 2010 +0100 material: Adds backend abstraction for fragment processing As part of an effort to improve the architecture of CoglMaterial internally this overhauls how we flush layer state to OpenGL by adding a formal backend abstraction for fragment processing and further formalizing the CoglTextureUnit abstraction. There are three backends: "glsl", "arbfp" and "fixed". The fixed backend uses the OpenGL fixed function APIs to setup the fragment processing, the arbfp backend uses code generation to handle fragment processing using an ARBfp program, and the GLSL backend is currently only there as a formality to handle user programs associated with a material. (i.e. the glsl backend doesn't yet support code generation) The GLSL backend has highest precedence, then arbfp and finally the fixed. If a backend can't support some particular CoglMaterial feature then it will fallback to the next backend. This adds three new COGL_DEBUG options: * "disable-texturing" as expected should disable all texturing * "disable-arbfp" always make the arbfp backend fallback * "disable-glsl" always make the glsl backend fallback * "show-source" show code generated by the arbfp/glsl backends clutter/cogl/cogl/cogl-buffer.c | 2 - clutter/cogl/cogl/cogl-context.c | 38 +- clutter/cogl/cogl/cogl-context.h | 22 +- clutter/cogl/cogl/cogl-debug.c | 10 +- clutter/cogl/cogl/cogl-debug.h | 6 +- clutter/cogl/cogl/cogl-internal.h | 15 - clutter/cogl/cogl/cogl-journal.c | 11 +- clutter/cogl/cogl/cogl-material-private.h | 234 ++- clutter/cogl/cogl/cogl-material.c | 2626 ++++++++++++++------ clutter/cogl/cogl/cogl-path.c | 27 +- clutter/cogl/cogl/cogl-pixel-buffer.c | 2 - clutter/cogl/cogl/cogl-primitives.c | 33 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 36 +- clutter/cogl/cogl/cogl.c | 109 +- clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 2 + .../cogl/cogl/driver/gl/cogl-feature-functions.h | 57 +- clutter/cogl/cogl/driver/gl/cogl-program.c | 106 +- clutter/cogl/cogl/driver/gl/cogl-program.h | 2 +- clutter/cogl/cogl/driver/gl/cogl-shader.c | 26 +- clutter/cogl/cogl/driver/gles/cogl-program.c | 15 +- 20 files changed, 2374 insertions(+), 1005 deletions(-) commit 8cee3c867095aacdec152842f01dc2fca1fc43aa Author: Neil Roberts Date: Wed Jun 9 14:42:18 2010 +0100 cogl-atlas-texture: Flush the journal before starting blit not after _cogl_atlas_texture_blit_begin binds a texture to use as the destination and it expects it to stay bound until _cogl_atlas_texture_end_blit is called. However there was a call to _cogl_journal_flush directly after setting up the blit state which could cause the wrong texture to be bound. This just moves the flush to before the call to _cogl_atlas_texture_blit_begin. This was breaking test-cogl-sub-texture. clutter/cogl/cogl/cogl-atlas-texture.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 413e631f488da0ec5ab44ac8d2314a89ff4a48a2 Author: Robert Bragg Date: Fri Jun 4 16:42:30 2010 +0100 atlas: fix some journal flushing issues 1) Always flush when migrating textures out of an atlas because although it's true that the original texture data will remain valid in the original texture we can't assume that journal entries have resolved the GL texture that will be used. This is only true if a layer0_override has been used. 2) Don't flush at the point of creating a new atlas simply flush immediately before reorganizing an atlas. This means we are now assuming that we will never see recursion due to atlas textures being modified during a journal flush. This means it's the responsibility of the primitives code to _ensure_mipmaps for example not the responsibility of _cogl_material_flush_gl_state. clutter/cogl/cogl/cogl-atlas-texture.c | 39 ++++++++++++++------------------ 1 files changed, 17 insertions(+), 22 deletions(-) commit d407bb520fe886742ace030d12a9d647b640069b Author: Robert Bragg Date: Fri Jun 4 17:06:32 2010 +0100 primitives: make sure to update texture storage before drawing We want to make sure that the material state flushing code will never result in changes to the texture storage for that material. So for example mipmaps need to be ensured by the primitives code. Changes to the texture storage will invalidate the texture coordinates in the journal and we want to avoid a recursion of journal flushing. clutter/cogl/cogl/cogl-material.c | 2 - clutter/cogl/cogl/cogl-primitives.c | 58 +++++++++++++++++++++++++++++--- clutter/cogl/cogl/cogl-vertex-buffer.c | 7 ++++ 3 files changed, 60 insertions(+), 7 deletions(-) commit 4f0a4b85213d1cbb0d3f6a4707449f788af94c47 Author: Robert Bragg Date: Mon Apr 26 16:30:25 2010 +0100 test-cogl-tex-foreign: save and restore GL state correctly This test breaks out into raw OpenGL to create a foreign texture so it needs to be careful not to trample on any state that may be cached by Cogl internally. tests/interactive/test-cogl-tex-foreign.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) commit 3907825d059407362023f7409a7c0e8992244ac3 Author: Robert Bragg Date: Mon Apr 26 16:27:59 2010 +0100 test-cogl-texture-rectangle: save restore GL state correctly This test breaks out into raw OpenGL to create a RECTANGLE texture so it needs to be careful not to trample on any state that may be cached by Cogl internally. tests/conform/test-cogl-texture-rectangle.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) commit 2f8d4fc180d2162d610fd8fffb8f66b18b0e8faf Author: Robert Bragg Date: Mon Apr 26 09:55:50 2010 +0100 matrix: add cogl_matrix_equal API This adds a way to compare two CoglMatrix structures to see if they represent the same transformations. memcmp can't be used because a CoglMatrix contains private flags and padding. clutter/cogl/cogl/cogl-matrix.c | 45 +++++++++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-matrix.h | 15 +++++++++++++ 2 files changed, 60 insertions(+), 0 deletions(-) commit 9815d75ebd38fdcb56bb618c46ef8822397b420d Author: Damien Lespiau Date: Wed Nov 18 00:26:09 2009 +0000 cogl-material: Use fragment programs instead of texture env combiners THIS IS A WORK IN PROGRESS Mesa is building a big shader when using ARB_texture_env_combine. The idea is to bypass that computation, do it ourselves and cache the compiled program in a CoglMaterial. For now that feature can be enabled by setting the COGL_PIPELINE environment variable to "arbfp". COGL_SHOW_FP_SOURCE can be set to a non empty string to dump the fragment program source too. TODO: * fog (really easy, using OPTION) * support tex env combiner operands, DOT3, ADD_SIGNED, INTERPOLATE combine modes (need refactoring the generation of temporary variables) (not too hard) * alpha testing for GLES 2.0? clutter/cogl/cogl/cogl-material-private.h | 11 + clutter/cogl/cogl/cogl-material.c | 354 ++++++++++++++++++++++++++++- 2 files changed, 363 insertions(+), 2 deletions(-) commit df44c2e9e499eff0e29148d4e46328621d5fde6a Author: Damien Lespiau Date: Sat Nov 14 14:59:59 2009 +0000 cogl: Introduce private feature flags and check for ARB_fp The Cogl context has now a feature_flags_private enum that will allow us to query and use OpenGL features without exposing them in the public API. The ARB_fragment_program extension is the first user of those flags. Looking for this extension only happens in the gl driver as the gles drivers will not expose them. One can use _cogl_features_available_private() to check for the availability of such private features. While at it, reindent cogl-internal.h as described in CODING_STYLE. clutter/cogl/cogl/cogl-context.c | 1 + clutter/cogl/cogl/cogl-context.h | 5 +- clutter/cogl/cogl/cogl-feature-private.h | 3 + clutter/cogl/cogl/cogl-internal.h | 8 ++++ clutter/cogl/cogl/cogl.c | 11 +++++ clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 2 +- clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 2 +- .../cogl/cogl/driver/gl/cogl-feature-functions.h | 42 +++++++++++++++++--- clutter/cogl/cogl/driver/gl/cogl.c | 25 +++++++---- .../cogl/cogl/driver/gles/cogl-context-driver.c | 2 +- .../cogl/cogl/driver/gles/cogl-context-driver.h | 2 +- .../cogl/cogl/driver/gles/cogl-feature-functions.h | 6 ++- clutter/cogl/cogl/driver/gles/cogl.c | 8 ++- 13 files changed, 91 insertions(+), 26 deletions(-) commit 037f7a29d160a60224799dccaf082b523f3f2634 Author: Neil Roberts Date: Wed Jun 9 12:18:53 2010 +0100 test-cogl-texture-rectangle: Fix the size allocated for reading data The test was only allocating enough space for 256 rows of pixels but it was then reading 384 so it would randomly fail. tests/conform/test-cogl-texture-rectangle.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 91a359c44e66eaeea8747748e949b6416a694d0d Author: Emmanuele Bassi Date: Wed Jun 9 11:53:58 2010 +0100 Always have a valid font map Every time we request a CoglPangoFontMap, either internally or externally, we should have one available. Reviewed-by: Neil Roberts clutter/clutter-main.c | 77 ++++++++++++++++++++++++++++-------------------- 1 files changed, 45 insertions(+), 32 deletions(-) commit 5929468599ce7a05b8e5cda6b500ce338465344e Author: Johan Bilien Date: Tue Jun 8 15:22:29 2010 -0400 Create the pango context in clutter_set_font_flags if it wasn't already. Allows honoring CLUTTER_FONT_MIPMAPPING. http://bugzilla.openedhand.com/show_bug.cgi?id=2161 Signed-off-by: Emmanuele Bassi clutter/clutter-main.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) commit 30296a3307b68ce64a2111a07abc9944547b8cdb Author: Robert Bragg Date: Thu Jun 3 20:03:20 2010 +0100 backend-glx: Avoid vblank waits/glFinish calls when throttling blits If we have the GLX_SGI_video_sync extension then it's possible to always keep track for the video sync counter each time we call glXSwapBuffers or do a sub stage blit. This then allows us to avoid waiting before issuing a blit if we can see that the counter has already progressed. Also since we expect that glXCopySubBuffer is synchronized to the vblank we don't need to use glFinish () in conjunction with the vblank wait since the vblank wait's only purpose is to add a delay. clutter/glx/clutter-backend-glx.c | 2 + clutter/glx/clutter-backend-glx.h | 2 + clutter/glx/clutter-stage-glx.c | 97 +++++++++++++++++++++++++++---------- 3 files changed, 75 insertions(+), 26 deletions(-) commit 1b31ac465dc63b2a2639c63267d2a351dd6ea8ea Author: Robert Bragg Date: Thu Jun 3 23:12:08 2010 +0100 backend-glx: only check for GLX_SGI_video_sync for direct contexts The GLX_SGI_video_sync spec explicitly says that it's only supported for direct contexts so we don't setup up the function pointers if glXIsDirect () returns GL_FALSE. clutter/glx/clutter-backend-glx.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) commit f37de23dec316e1d4ed616c890339bfd3b4cbfa4 Author: Robert Bragg Date: Thu Jun 3 20:03:20 2010 +0100 backend-glx: Make sure to throttle sub region blits Neither glXCopySubBuffer or glBlitFramebuffer are integrated with the swap interval of a framebuffer so that means when we do partial stage updates (as Mutter does in response to window damage) then the blits aren't throttled which means applications that throw lots of damage events at the compositor can effectively cause Clutter to run flat out taking up all the system resources issuing more blits than can even be seen. This patch now makes sure we use the GLX_SGI_video_sync or a DRM_VBLANK_RELATIVE ioctl to throttle blits to the vblank frequency as we do when using glXSwapBuffers. clutter/glx/clutter-backend-glx.c | 20 +++++++--- clutter/glx/clutter-stage-glx.c | 69 +++++++++++++++++-------------------- 2 files changed, 46 insertions(+), 43 deletions(-) commit 630a2c5edcd572ea77d0a52026115fc01e5ec14a Author: Adel Gadllah Date: Sat Jun 5 12:51:32 2010 +0200 backend-glx: Provide copy_sub_buffer fallback Currently glXCopySubBufferMESA is used for sub stage redraws, but in case a driver does not support GLX_MESA_copy_sub_buffer we fall back to redrawing the complete stage which isn't really optimal. So instead to directly fallback to complete redraws try using GL_EXT_framebuffer_blit to do the BACK to FRONT buffer copies. http://bugzilla.openedhand.com/show_bug.cgi?id=2128 clutter/glx/clutter-backend-glx.c | 35 +++++++++++++++++++++++++++++++++++ clutter/glx/clutter-backend-glx.h | 17 +++++++++++++++++ clutter/glx/clutter-stage-glx.c | 30 ++++++++++++++---------------- 3 files changed, 66 insertions(+), 16 deletions(-) commit ac3e0150edd8da7dceb2933309fc5e4f15f1e38a Author: Neil Roberts Date: Tue Jun 8 17:26:26 2010 +0100 cogl-gles2-wrapper: Fix some cases using the wrong texture unit At two places in cogl_wrap_prepare_for_draw it was trying to loop over the texture units to flush some state. However it was retrieving the texture unit pointer using w->active_texture_unit instead of the loop index so it would end up with the wrong state. Also in glEnableClientState it was using the active unit instead of the client active unit. clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) commit 00675f42aab932b2a2cb7d128d282625f681e449 Author: Emmanuele Bassi Date: Tue Jun 8 11:19:28 2010 +0100 texture-async: Fix path fallback code And error out in case of load failure. tests/interactive/test-texture-async.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) commit 759ea5ce45c84d7d3e9f1dca2a7a854adcb0384a Author: Emmanuele Bassi Date: Mon Jun 7 23:26:03 2010 +0100 Post-release bump to 1.3.5 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)