commit 339a6805521c04fd9e0d43689b6f380a45404078 Author: Emmanuele Bassi Date: Fri Dec 17 14:40:17 2010 +0000 Release Clutter 1.5.10 (snapshot) NEWS | 11 +++++++++-- configure.ac | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) commit 987a50be91f67a64cca32e7403b98c69b5aedb4c Author: Emmanuele Bassi Date: Fri Dec 17 15:43:24 2010 +0000 build: Fix release-check for cogl2 reference configure.ac | 10 ++++++++-- doc/reference/Makefile.am | 7 ++----- 2 files changed, 10 insertions(+), 7 deletions(-) commit cab4a5b4846d2e6e1800ac545020bce930a9132e Author: Emmanuele Bassi Date: Fri Dec 17 14:41:33 2010 +0000 build: Remove stringify.sh from Makefile.am build/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 894c0527dffc4d0c01ef87880d33b02fcfab923e Author: Elliot Smith Date: Wed Dec 15 13:31:12 2010 +0000 cookbook: Proofing for "box layout" recipe General improvements to readability, formatting, fixing typos etc. doc/cookbook/layouts.xml | 67 ++++++++++++++++++++++++--------------------- 1 files changed, 36 insertions(+), 31 deletions(-) commit accdd92110baffe886ab9bcc9dc263058d159ecc Author: Elliot Smith Date: Wed Dec 15 13:13:28 2010 +0000 cookbook: Add examples and more text for "box layout" recipe Added 3 examples for the box layout recipe: 1) Simple box layout demonstrating how to set actor properties 2) Trivial menu implementation using box layout 3) Demonstration app which enables tweaking and testing of layout property interactions Also inlined example 1 in the solution section and added more explanatory text in the discussion. doc/cookbook/examples/Makefile.am | 6 + doc/cookbook/examples/layouts-box-menu.c | 151 +++++++ .../examples/layouts-box-property-effects.c | 465 ++++++++++++++++++++ doc/cookbook/examples/layouts-box.c | 95 ++++ doc/cookbook/images/layouts-box.png | Bin 0 -> 1515 bytes doc/cookbook/layouts.xml | 134 ++++++- 6 files changed, 841 insertions(+), 10 deletions(-) commit 77aacd185dcdd1673e1c3fb058d93a5803febe6a Author: Elliot Smith Date: Tue Dec 14 18:08:28 2010 +0000 cookbook: Add initial skeleton for box layout recipe Created recipe and first draft content for recipe about ClutterBoxLayout. doc/cookbook/layouts.xml | 264 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 264 insertions(+), 0 deletions(-) commit 6c244c05497237ee2640d3d4cf7cd3d00baf469f Author: Emmanuele Bassi Date: Fri Dec 17 13:53:28 2010 +0000 geometry: Avoid sign issues when interpolating Width and height in ClutterGeometry are unsigned, and this might lead to overflow and wrap around issues. clutter/clutter-actor.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) commit c3313726f0c6911eee8709a15fe51ec0421d7422 Author: Alexandre Quessy Date: Tue Dec 14 17:45:45 2010 -0500 Fixed a typo in a doc string http://bugzilla.clutter-project.org/show_bug.cgi?id=2485 clutter/clutter-deform-effect.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 140f818fb14181135891b06bde54649564f0bc07 Author: Emmanuele Bassi Date: Fri Dec 17 12:07:06 2010 +0000 Update NEWS NEWS | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) commit c444447cd3712153127f4fdd2ac03262ec7689d2 Author: Emmanuele Bassi Date: Fri Dec 17 12:04:11 2010 +0000 timeline: Rename the reverse property to auto-reverse Other frameworks expose the same functionality as "auto-reverse", probably to match the cassette tape player. It actually makes sense for Clutter to follow suit. clutter/clutter-timeline.c | 57 ++++++++++---------- clutter/clutter-timeline.h | 4 +- doc/cookbook/animations.xml | 4 +- .../examples/animations-looping-implicit.c | 2 +- doc/reference/clutter/clutter-sections.txt | 4 +- .../clutter/migrating-ClutterBehaviour.xml | 2 +- tests/interactive/test-behave.c | 2 +- tests/interactive/test-layout.c | 2 +- tests/interactive/test-threads.c | 1 + 9 files changed, 39 insertions(+), 39 deletions(-) commit 397e0ddb166097ae9a281c70bbff49196e513c5b Author: Emmanuele Bassi Date: Thu Dec 16 15:30:53 2010 +0000 interactive: Rename test-rotate The rotation test is now really testing the shader-based effects we ship with Clutter. The name should be changed to reflect that. tests/interactive/Makefile.am | 2 +- tests/interactive/test-rotate.c | 82 ------------------------------- tests/interactive/test-shader-effects.c | 82 +++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 83 deletions(-) commit c2365c63cfd2d9e0c6116a39c7a50defc193c482 Author: Emmanuele Bassi Date: Thu Dec 16 15:25:29 2010 +0000 interactive: Remove test-viewport The test-viewport interactive test is exercising the clip code - a job better done by the conformance test suite and by the test-clip interactive test. tests/interactive/Makefile.am | 1 - tests/interactive/test-viewport.c | 69 ------------------------------------- 2 files changed, 0 insertions(+), 70 deletions(-) commit 1515a9f98971c813d50a4c0004eb49c597fc3144 Author: Emmanuele Bassi Date: Thu Dec 16 15:10:27 2010 +0000 interactive: Remove test-project The test-project test case was an old test that was barely working after landing the size allocation API in Clutter 0.8. It has never been fixed, and it's been of relative use ever since. tests/interactive/Makefile.am | 1 - tests/interactive/test-project.c | 229 -------------------------------------- 2 files changed, 0 insertions(+), 230 deletions(-) commit 8ae47eb79c0c67faaf8c594aa7e8e2560abc358e Author: Emmanuele Bassi Date: Thu Dec 16 15:08:11 2010 +0000 interactive: Remove test-offscreen The test-offscreen interactive test was a dummy test for the ClutterStage:offscreen property, which has been deprecated and not implemented since Clutter 1.0, and never really worked except briefly in Clutter 0.2 or something. tests/interactive/Makefile.am | 1 - tests/interactive/test-offscreen.c | 32 -------------------------------- 2 files changed, 0 insertions(+), 33 deletions(-) commit faaff037306be31b69fa255b8d3dae91b341256b Author: Neil Roberts Date: Mon Dec 13 17:21:58 2010 +0000 clutter-stage: Don't always set the projection and viewport matrix The stage has a dirty flag to record whenever the viewport and projection matrices need to be flushed. However after flushing these the flags were never cleared so it would always redundantly update the state. http://bugzilla.clutter-project.org/show_bug.cgi?id=2480 clutter/clutter-stage.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) commit f5954339427f19e3c7332ec10d8cfd43c073d724 Author: Neil Roberts Date: Tue Dec 14 13:02:47 2010 +0000 cogl-pipeline-fragend-arbfp: Generate ARBfp if user vertex shader The ARBfp fragend was bypassing generating a shader if the pipeline contains a user program. However it shouldn't do this if the pipeline only contains a vertex shader. This was breaking test-cogl-just-vertex-shader. clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) commit 52442414d953e90930d3928e81216e0f3ac194fe Author: Emmanuele Bassi Date: Fri Dec 10 17:46:58 2010 +0000 cally: Allow memory management for actions Adding an action should allow passing a user data pointer, and have a notification action that gets called when removing the action. This allows introspection and language bindings to attach custom data to the action - for instance, the real callable object that should be invoked. http://bugzilla.clutter-project.org/show_bug.cgi?id=2479 clutter/cally/cally-actor.c | 94 +++++++++++++++++++++++++++++-------------- clutter/cally/cally-actor.h | 47 +++++++++++++++------ 2 files changed, 97 insertions(+), 44 deletions(-) commit def14e80cbb898c6c198a5caf3a2a3ad15d5e8e1 Author: Mike Owens Date: Thu Dec 9 09:39:23 2010 -0500 ClutterText: Only grab keyboard focus if keyboard-interactive. Previously, ClutterText took keyboard focus on mouse-down, regardless if it were editable or selectable. Now it checks these properties, and behaves like other actors if it can't do anything useful with the focus. http://bugzilla.clutter-project.org/show_bug.cgi?id=2462 clutter/clutter-text.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) commit 7b985f034fae95862f0c080a6311ccf0ac4f3966 Author: Neil Roberts Date: Sat Nov 27 13:15:02 2010 +0000 Allow multiple CoglAtlases for textures Previously Cogl would only ever use one atlas for textures and if it reached the maximum texture size then all other new textures would get their own GL texture. This patch makes it so that we create as many atlases as needed. This should avoid breaking up some batches and it will be particularly good if we switch to always using multi-texturing with a default shader that selects between multiple atlases using a vertex attribute. Whenever a new atlas is created it is stored in a GSList on the context. A weak weference is taken on the atlas using cogl_object_set_user_data so that it can be removed from the list when the atlas is destroyed. The atlas textures themselves take a reference to the atlas and this is the only thing that keeps the atlas alive. This means that once the atlas becomes empty it will automatically be destroyed. All of the COGL_NOTEs pertaining to atlases are now prefixed with the atlas pointer to make it clearer which atlas is changing. clutter/cogl/cogl/cogl-atlas-texture-private.h | 10 +-- clutter/cogl/cogl/cogl-atlas-texture.c | 105 ++++++++++++++++------- clutter/cogl/cogl/cogl-atlas.c | 19 +++-- clutter/cogl/cogl/cogl-atlas.h | 3 - clutter/cogl/cogl/cogl-context.c | 5 +- clutter/cogl/cogl/cogl-context.h | 2 +- clutter/cogl/pango/cogl-pango-glyph-cache.c | 1 + 7 files changed, 93 insertions(+), 52 deletions(-) commit d01a70762395d7ff353df1fb77397b4dfab284cf Author: Neil Roberts Date: Sat Nov 27 13:06:38 2010 +0000 cogl-atlas: Convert to be a CoglObject subclass To implement multiple atlases it will be useful to have ref-counting on the CoglAtlas so it makes sense to convert it to be a CoglObject. clutter/cogl/cogl/cogl-atlas.c | 10 ++++++++-- clutter/cogl/cogl/cogl-atlas.h | 8 +++++--- clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/pango/cogl-pango-glyph-cache.c | 4 ++-- 4 files changed, 16 insertions(+), 8 deletions(-) commit d03c3a646ae4d26358ad5a48fe320845f7f099ed Author: Neil Roberts Date: Tue Dec 7 13:58:46 2010 +0000 test-cogl-just-vertex-shader: Update to use the portable cogl_* names The vertex shader in this test now uses the cogl_* names for the GL builtin so that it will work on GLES2 as well. tests/conform/test-cogl-just-vertex-shader.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) commit d1ddca4eeecf26df9c5a707ef5f88175d90feb34 Author: Neil Roberts Date: Tue Dec 7 13:44:45 2010 +0000 cogl-shader-boilerplate: Add the 3D texture extension on GLES2 To use the 3D texture extension on GLES2 it has to be enabled with the following line in GLSL: #extension GL_OES_texture_3D : enable clutter/cogl/cogl/cogl-shader.c | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) commit e0a02b2b5bc4ef88e8829d271380148a966e8494 Author: Neil Roberts Date: Tue Dec 7 12:49:00 2010 +0000 test-cogl-multitexture: Don't test the alpha component On EGL we don't request a context with any alpha bits so testing alpha component of cogl_read_pixels isn't reliable. tests/conform/test-cogl-multitexture.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) commit afe39296180e3839c42c5327f55ff8a773ba7000 Author: Neil Roberts Date: Tue Dec 7 11:39:37 2010 +0000 test-cogl-materials: Use GL_MAX_VERTEX_ATTRIBS on GLES2 When determining the maximum number of layers we also need to take into account GL_MAX_VERTEX_ATTRIBS on GLES2. Cogl needs one vertex attrib for each texture unit plus two for the position and color. tests/conform/test-cogl-materials.c | 22 +++++++++++++++------- 1 files changed, 15 insertions(+), 7 deletions(-) commit bdeb555ae1e440de0453cd8fd4a024ba8381016f Author: Neil Roberts Date: Tue Dec 7 10:38:51 2010 +0000 cogl2-path: Don't flush the enable flags All of the drawing needed in _cogl_add_path_to_stencil_buffer is done with the vertex attribute API so there should be no need to flush the enable flags to enable the vertex array. This was causing problems on GLES2 where the vertex array isn't available. clutter/cogl/cogl/cogl2-path.c | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-) commit 7dc4b3c8947de12ca111edba52a9387287f97a82 Author: Neil Roberts Date: Sun Dec 5 18:02:05 2010 +0000 Remove the GLES2 wrapper The GLES2 wrapper is no longer needed because the shader generation is done within the GLSL fragend and vertend and any functions that are different for GLES2 are now guarded by #ifdefs. build/stringify.sh | 94 -- clutter/cogl/cogl/Makefile.am | 20 - clutter/cogl/cogl/cogl-atlas.c | 6 +- clutter/cogl/cogl/cogl-buffer.c | 4 - clutter/cogl/cogl/cogl-clip-stack.c | 13 +- clutter/cogl/cogl/cogl-context.c | 6 +- clutter/cogl/cogl/cogl-framebuffer.c | 6 +- clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 4 - clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 4 - clutter/cogl/cogl/cogl-pipeline-opengl.c | 16 +- clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 34 +- clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 24 + clutter/cogl/cogl/cogl-pixel-array.c | 4 - clutter/cogl/cogl/cogl-texture-2d.c | 2 + clutter/cogl/cogl/cogl-texture-3d.c | 2 + clutter/cogl/cogl/cogl-vertex-attribute.c | 1 - clutter/cogl/cogl/cogl.c | 16 +- .../cogl/driver/gles/cogl-context-driver-gles.c | 6 - .../cogl/driver/gles/cogl-context-driver-gles.h | 4 - .../cogl/driver/gles/cogl-fixed-vertex-shader.glsl | 73 -- clutter/cogl/cogl/driver/gles/cogl-gles.c | 4 + clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 993 -------------------- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 388 -------- .../cogl/driver/gles/cogl-texture-driver-gles.c | 6 +- 24 files changed, 81 insertions(+), 1649 deletions(-) commit 1999bee5d2d5d14a97eacb84edb6ce364202b082 Author: Neil Roberts Date: Mon Dec 6 21:29:56 2010 +0000 cogl-pipeline: Use enums for the layer combine values Once the GLES2 wrapper is removed then we won't have the GLenums needed for setting up the layer combine state. This adds Cogl enums instead which have the same values as the corresponding GLenums. The enums are: CoglPipelineCombineFunc CoglPipelineCombineSource and CoglPipelineCombineOp clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 41 +++++---- clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 48 ++++++----- clutter/cogl/cogl/cogl-pipeline-private.h | 46 ++++++++-- clutter/cogl/cogl/cogl-pipeline.c | 107 +++++++++++++---------- 4 files changed, 148 insertions(+), 94 deletions(-) commit 271acaaae5d9e698ed1eefb201b2fa49b7bb3d2d Author: Neil Roberts Date: Mon Dec 6 12:31:51 2010 +0000 cogl: upload matrices with uniforms on GLES2 Once the GLES2 wrapper is removed we won't be able to upload the matrices with the fixed function API any more. The fixed function API gives a global state for setting the matrix but if a custom shader uniform is used for the matrices then the state is per program. _cogl_matrix_stack_flush_to_gl is called in a few places and it is assumed the current pipeline doesn't need to be flushed before it is called. To allow these semantics to continue to work, on GLES2 the matrix flush now just stores a reference to the matrix stack in the CoglContext. A pre_paint virtual is added to the progend which is called whenever a pipeline is flushed, even if the same pipeline was flushed already. This gives the GLSL progend a chance to upload the matrices to the uniforms. The combined modelview/projection matrix is only calculated if it is used. The generated programs end up never using the modelview or projection matrix so it usually only has to upload the combined matrix. When a matrix stack is flushed a reference is taked to it by the pipeline progend and the age is stored so that if the same state is used with the same program again then we don't need to reupload the uniform. clutter/cogl/cogl/cogl-context.c | 12 + clutter/cogl/cogl/cogl-context.h | 10 + clutter/cogl/cogl/cogl-matrix-stack.c | 127 ++++++++--- clutter/cogl/cogl/cogl-matrix-stack.h | 10 + clutter/cogl/cogl/cogl-pipeline-opengl.c | 7 + clutter/cogl/cogl/cogl-pipeline-private.h | 4 + clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 250 +++++++++++++++++++- clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 4 + clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 + 9 files changed, 396 insertions(+), 30 deletions(-) commit 67847260bca8ef313650497050e284a1971918aa Author: Neil Roberts Date: Fri Dec 10 17:42:39 2010 +0000 cogl-matrix-stack: Add _cogl_matrix_stack_has_identity_flag This adds an internal function to quickly determine whether the top of the matrix stack is known to be the identity matrix. clutter/cogl/cogl/cogl-matrix-stack.c | 6 ++++++ clutter/cogl/cogl/cogl-matrix-stack.h | 7 +++++++ 2 files changed, 13 insertions(+), 0 deletions(-) commit 016005591dfa765255b05d96f701497ed7a59d23 Author: Neil Roberts Date: Fri Dec 10 16:06:16 2010 +0000 cogl-matrix-stack: Convert to be a CoglObject We will want to use ref-counting on the CoglMatrixStack so it might as well be a CoglObject. clutter/cogl/cogl/cogl-framebuffer.c | 4 ++-- clutter/cogl/cogl/cogl-matrix-stack.c | 13 ++++++++++--- clutter/cogl/cogl/cogl-matrix-stack.h | 3 --- clutter/cogl/cogl/cogl-pipeline-opengl.c | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) commit 58a22613877fc041549eddeafbc364d369c5e445 Author: Robert Bragg Date: Fri Dec 10 11:34:02 2010 +0000 matrix-stack: Make header style consistent Cogl doesn't follow the Clutter/GTK+ columnized function prototype style so this updates cogl-matrix-stack.h to match the other Cogl headers. clutter/cogl/cogl/cogl-matrix-stack.c | 2 +- clutter/cogl/cogl/cogl-matrix-stack.h | 126 +++++++++++++++++++------------- 2 files changed, 76 insertions(+), 52 deletions(-) commit 4976d229405c7010a6ef1e621bcfb581b7eff99a Author: Robert Bragg Date: Fri Dec 10 11:13:09 2010 +0000 matrix-stack: Adds a stack age counter Sometimes it would be useful if we could efficiently track when a matrix stack has been modified. For example on GLES2 we have to upload the modelview as a uniform to our glsl programs but because the modelview state is part of the framebuffer state it becomes a bit more tricky to know when to re-sync the value of the uniform with the framebuffer state. This adds an "age" counter to CoglMatrixStack which is incremented for any operation that effectively modifies the top of the stack so now we can save the age of the stack inside the pipeline whenever we update modelview uniform and later compare that with the stack to determine if it has changed. clutter/cogl/cogl/cogl-matrix-stack.c | 18 ++++++++++++++++++ clutter/cogl/cogl/cogl-matrix-stack.h | 2 ++ 2 files changed, 20 insertions(+), 0 deletions(-) commit 856d43a27cd4090467de08cd5738f10ec7e06ebd Author: Neil Roberts Date: Mon Dec 6 12:31:16 2010 +0000 cogl-pipeline: Add internal API to get the layer matrix This returns the layer matrix given a pipeline and a layer index. The API is kept as internal because it directly returns a pointer into the layer private data to avoid a copy into an out-param. We might also want to add a public function which does the copy. clutter/cogl/cogl/cogl-pipeline-private.h | 4 ++++ clutter/cogl/cogl/cogl-pipeline.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 0 deletions(-) commit 4514d49dda70b9b5a1833c7809dc4d22b1bcd3cd Author: Neil Roberts Date: Fri Dec 3 17:46:16 2010 +0000 cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 When the GLES2 wrapper is removed we can't use the fixed function API such as glColorPointer to set the builtin attributes. Instead the GLSL progend now maintains a cache of attribute locations that are queried with glGetAttribLocation. The code that previously maintained a cache of the enabled texture coord arrays has been modified to also cache the enabled vertex attributes under GLES2. The vertex attribute API is now the only place that is using this cache so it has been moved into cogl-vertex-attribute.c clutter/cogl/cogl/cogl-bitmask.c | 16 +- clutter/cogl/cogl/cogl-bitmask.h | 10 +- clutter/cogl/cogl/cogl-context.c | 8 +- clutter/cogl/cogl/cogl-context.h | 8 +- clutter/cogl/cogl/cogl-internal.h | 6 - clutter/cogl/cogl/cogl-pipeline-opengl.c | 30 ++- .../cogl/cogl/cogl-pipeline-progend-glsl-private.h | 18 ++ clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 139 +++++++++ clutter/cogl/cogl/cogl-vertex-attribute-private.h | 3 + clutter/cogl/cogl/cogl-vertex-attribute.c | 311 +++++++++++++++----- clutter/cogl/cogl/cogl.c | 36 +-- 11 files changed, 451 insertions(+), 134 deletions(-) commit 1515a8d73a0ea3ad6f6f8719e833bc17bb7c0001 Author: Neil Roberts Date: Fri Dec 3 11:31:09 2010 +0000 cogl-path: Stroke using the vertex attribute API Previously when stroking a path it was flushing a pipeline and then directly calling glDrawArrays to draw the line strip from the path nodes array. This patch changes it to build a CoglVertexArray and a series of attributes to paint with instead. The vertex array and attributes are attached to the CoglPath so it can be reused later. The old vertex array for filling has been renamed to fill_vbo. clutter/cogl/cogl/cogl-path-private.h | 12 ++- clutter/cogl/cogl/cogl2-path.c | 201 ++++++++++++++++++++++----------- 2 files changed, 143 insertions(+), 70 deletions(-) commit 3c5fa0cf9042827d205f90ac98c2eac9494707e9 Author: Neil Roberts Date: Thu Dec 2 22:19:44 2010 +0000 cogl: Move COGL_DEBUG=show-source into cogl-shader.c The code to display the source when the show-source debug option is given has been moved to _cogl_shader_set_source_with_boilerplate so that it will show both user shaders and generated shaders. It also shows the code with the full boilerplate. To make it the same for ARBfp, cogl_shader_compile_real now also dumps user ARBfp shaders. clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 5 ----- clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 5 ----- clutter/cogl/cogl/cogl-shader.c | 23 +++++++++++++++++++++++ 3 files changed, 23 insertions(+), 10 deletions(-) commit 8764a0d4874949c12d6c0e6af863d81a39bc4991 Author: Neil Roberts Date: Thu Dec 2 20:48:45 2010 +0000 cogl: Add a vertend to generate GLSL The GLSL vertend is mostly only useful for GLES2. The fixed function vertend is kept at higher priority than the GLSL vertend so it is unlikely to be used in any other circumstances. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-context.c | 3 +- clutter/cogl/cogl/cogl-context.h | 3 +- clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 3 +- clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 10 +- clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 13 +- clutter/cogl/cogl/cogl-pipeline-opengl.c | 130 +++++-- clutter/cogl/cogl/cogl-pipeline-private.h | 30 ++- clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 83 +++-- clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c | 28 ++ .../cogl/cogl/cogl-pipeline-vertend-glsl-private.h | 39 ++ clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 396 ++++++++++++++++++++ clutter/cogl/cogl/cogl-pipeline.c | 7 + clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 19 +- 14 files changed, 679 insertions(+), 87 deletions(-) commit 6c34fb7232f3d82a6f5720fc9e07a41d997e643b Author: Neil Roberts Date: Tue Dec 7 12:33:39 2010 +0000 cogl-shader-boilerplate: Don't put the color attrib in location 0 Due to Mesa bug 28585 calling glVertexAttrib with attrib location 0 doesn't appear to work. This patch just reorders the vertex and color attributes in the shader in the hope that Mesa will assign the color attribute to a different location. clutter/cogl/cogl/cogl-shader-boilerplate.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit cf0ded1361bd639f7143aef02f37f17f01bdcf04 Author: Neil Roberts Date: Thu Dec 2 22:08:51 2010 +0000 cogl-shader-boilerplate: Add more builtins for GLES2 Some builtin attributes such as the matrix uniforms and some varyings were missing from the boilerplate for GLES2. This also moves the texture matrix and texture coord attribute declarations to cogl-shader.c so that they can be dynamically defined depending on the number of texture coord arrays enabled. clutter/cogl/cogl/cogl-shader-boilerplate.h | 23 ++++++++++++++++++-- clutter/cogl/cogl/cogl-shader.c | 30 +++++++++++++++++++++----- 2 files changed, 44 insertions(+), 9 deletions(-) commit 17d689f79480f9d08c1ef8e62b990db0cdb6a36d Author: Neil Roberts Date: Thu Dec 2 18:05:22 2010 +0000 cogl-pipeline: Rename the fragment_{source,header}_buffer to codegen We want to reuse the same buffers for vertends so calling them fragment_* doesn't make sense. clutter/cogl/cogl/cogl-context.c | 4 ++-- clutter/cogl/cogl/cogl-context.h | 4 ++-- clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 4 ++-- clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 8 ++++---- clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 12 ++++++------ 5 files changed, 16 insertions(+), 16 deletions(-) commit a3e53dd029632166a51333249baa49b5e97644c9 Author: Neil Roberts Date: Mon Nov 29 18:32:21 2010 +0000 cogl: Add a fixed function vertend The vertends are intended to flush state that would be represented in a vertex program. Code to handle the layer matrix, lighting and point size has now been moved from the common cogl-pipeline-opengl backend to the fixed vertend. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-pipeline-opengl.c | 109 ++++++++++++++----- clutter/cogl/cogl/cogl-pipeline-private.h | 34 ++++++- .../cogl/cogl-pipeline-vertend-fixed-private.h | 36 ++++++ clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c | 114 ++++++++++++++++++++ clutter/cogl/cogl/cogl-pipeline.c | 80 +++++++++++++- 6 files changed, 342 insertions(+), 33 deletions(-) commit 313adc7bdf9c8a0d61cedf7e34d1cd3e961a7ea2 Author: Neil Roberts Date: Thu Dec 2 14:00:46 2010 +0000 cogl: Add a GLSL 'progend' 'progend' is short for 'program backend'. The progend is intended to operate on combined state from a fragment backend and a vertex backend. The progend has an 'end' function which is run whenever the pipeline is flushed and the two pipeline change notification functions. All of the progends are run whenever the pipeline is flushed instead of selecting a single one because it is possible that multiple progends may be in use for example if the vertends and fragends are different. The GLSL progend will take the shaders generated by the fragend and vertend and link them into a single program. The fragend code has been changed to only generate the shader and not the program. The idea is that pipelines can share fragment shader objects even if their vertex state is different. The authority for the progend needs to be the combined authority on the vertend and fragend state. clutter/cogl/cogl/Makefile.am | 2 + .../cogl/cogl/cogl-pipeline-fragend-glsl-private.h | 3 + clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 725 +++++--------------- clutter/cogl/cogl/cogl-pipeline-opengl.c | 5 + clutter/cogl/cogl/cogl-pipeline-private.h | 29 + .../cogl/cogl/cogl-pipeline-progend-glsl-private.h | 36 + clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 542 +++++++++++++++ clutter/cogl/cogl/cogl-pipeline.c | 39 +- 8 files changed, 839 insertions(+), 542 deletions(-) commit 1e3cdb60d6a6ad67c4e693687c5c9c64a25d7cec Author: Neil Roberts Date: Thu Dec 2 13:54:15 2010 +0000 cogl-program: Add private functions to check if have each shader type This adds two internal functions: gboolean _cogl_program_has_fragment_shader (CoglHandle handle); gboolean _cogl_program_has_vertex_shader (CoglHandle handle); They just check whether any of the contained shaders are of that type. clutter/cogl/cogl/cogl-program-private.h | 6 ++++++ clutter/cogl/cogl/cogl-program.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 0 deletions(-) commit 31f0eb4f715a3622260965b0b0a3be132cde8d23 Author: Neil Roberts Date: Wed Dec 1 17:06:18 2010 +0000 cogl-pipeline: Make find codegen authority more general The pipeline function _cogl_pipeline_find_codegen_authority has been renamed to _cogl_pipeline_find_equivalent_parent and it now takes a set of flags for the pipeline and layer state that affects the authority. This is needed so that we can reuse the same code in the vertend and progends. clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 47 ++------ clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 9 +- clutter/cogl/cogl/cogl-pipeline-private.h | 39 ++++++- clutter/cogl/cogl/cogl-pipeline.c | 137 ++++++++++------------ 4 files changed, 116 insertions(+), 116 deletions(-) commit a1996706a293458221bce7a4126f82f64e4ca3c3 Author: Neil Roberts Date: Tue Nov 30 12:48:27 2010 +0000 cogl-pipeline: Move texture enabling/disabling to fixed fragend Previously enabling and disabling textures was done whatever the backend in cogl-pipeline-opengl. However enabling and disabling texture targets only has any meaning if no fragment shaders are being used so this patch moves the code to cogl-pipeline-fragend-fixed. The GLES2 wrapper has also been changed to ignore enabledness when deciding whether to update texture coordinate attribute pointers. clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 7 -- clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 107 +++++++++++++++++++- clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 7 -- clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 16 ++-- clutter/cogl/cogl/cogl-pipeline-opengl.c | 95 +++--------------- clutter/cogl/cogl/cogl-pipeline-private.h | 2 - clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 67 ++++++------- 7 files changed, 157 insertions(+), 144 deletions(-) commit 952878aab1d0610b09d048495295fd84499b70e9 Author: Neil Roberts Date: Mon Nov 29 16:56:41 2010 +0000 Rename CoglPipelineBackend to CoglPipelineFragend The current Cogl pipeline backends are entirely concerned with the fragment processing state. We also want to eventually have separate backends to generate shaders for the vertex processing state so we need to rename the fragment backends. 'Fragend' is a somewhat weird name but we wanted to avoid ending up with illegible symbols like CoglPipelineFragmentBackendGlslPrivate. clutter/cogl/cogl/Makefile.am | 12 +- clutter/cogl/cogl/cogl-context.c | 6 +- clutter/cogl/cogl/cogl-pipeline-arbfp-private.h | 42 - clutter/cogl/cogl/cogl-pipeline-arbfp.c | 1133 ------------------ clutter/cogl/cogl/cogl-pipeline-fixed-private.h | 36 - clutter/cogl/cogl/cogl-pipeline-fixed.c | 260 ---- .../cogl/cogl-pipeline-fragend-arbfp-private.h | 43 + clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 1133 ++++++++++++++++++ .../cogl/cogl-pipeline-fragend-fixed-private.h | 36 + clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 260 ++++ .../cogl/cogl/cogl-pipeline-fragend-glsl-private.h | 36 + clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 1263 ++++++++++++++++++++ clutter/cogl/cogl/cogl-pipeline-glsl-private.h | 36 - clutter/cogl/cogl/cogl-pipeline-glsl.c | 1263 -------------------- clutter/cogl/cogl/cogl-pipeline-opengl.c | 66 +- clutter/cogl/cogl/cogl-pipeline-private.h | 48 +- clutter/cogl/cogl/cogl-pipeline.c | 100 +- 17 files changed, 2887 insertions(+), 2886 deletions(-) commit dc61d58c0df9dde51472bae17b1997c82cfcddb1 Author: Neil Roberts Date: Thu Dec 2 15:37:53 2010 +0000 cogl-pipeline-opengl: Remove the includes for the various backends Nothing in cogl-pipeline-opengl needs to know about the actual backend implementations, instead it just accesses then through the vtables. clutter/cogl/cogl/cogl-pipeline-opengl.c | 10 ---------- 1 files changed, 0 insertions(+), 10 deletions(-) commit 54db48dfd1e1b151a3b92e160181f44305e21089 Author: Emmanuele Bassi Date: Sat Dec 11 17:40:52 2010 +0000 animation: Allow transforming values in bind() While we do check for compatibility and transformability of a GValue with the GParamSpec value type, we are actually failing really badly at it. First of all, we bail out on the wrong conditions. Then we use the type of the value passed instead of using the type of the property itself. This makes it impossible to actually use transformation functions for GValue types - even those that have been registered by GLib itself - when using the Animation API directly, instead of going through the clutter_actor_animate() wrappers. clutter/clutter-animation.c | 28 +++++++++++++++++++++++----- 1 files changed, 23 insertions(+), 5 deletions(-) commit ae4e06d8c4ca2bd93a12e4ace38c0c888edcddf1 Author: Emmanuele Bassi Date: Fri Dec 10 17:15:39 2010 +0000 introspection: Skip some C-only structures The ParamSpec sub-classes we define are meant to be used only from the C API, as high-level languages completely ignore them. The ClutterStageWindow interface is an internal type that escaped into the public headers; all its methods are private, but we cannot remove the type until we break for 2.0. clutter/clutter-color.h | 16 ++++++++-------- clutter/clutter-fixed.h | 2 +- clutter/clutter-stage-window.h | 4 ++-- clutter/clutter-units.h | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) commit d5a418304712e38c7055114fa5b13a904fae9883 Author: Emmanuele Bassi Date: Fri Dec 10 17:15:23 2010 +0000 introspection: Add cairo-1.0 to the dependencies clutter/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 49a43a0772d749d280a7fc6ceb561c6452dc859f Author: Emmanuele Bassi Date: Fri Dec 10 16:03:10 2010 +0000 Remove unnecessary duplicate name for private enumerations clutter/clutter-actor-private.h | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) commit b91c1ec21c80e99949a19865be2c44c53063d09e Author: Emmanuele Bassi Date: Thu Dec 9 16:05:55 2010 +0000 docs: Update NEWS NEWS | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) commit bc58de4658a206f07d51ddbb9b8c06f37c4cf841 Author: Emmanuele Bassi Date: Thu Dec 9 15:52:04 2010 +0000 docs: Add 1.6 index to the API references doc/reference/cally/cally-docs.xml.in | 5 +++++ doc/reference/clutter/clutter-docs.xml.in | 5 +++++ doc/reference/cogl/cogl-docs.xml.in | 5 +++++ 3 files changed, 15 insertions(+), 0 deletions(-) commit 36c3fc82c5c3eee50878f964f09939b9b169fd82 Author: Emmanuele Bassi Date: Thu Dec 9 15:42:19 2010 +0000 Use G_STRFUNC correctly It cannot be chained up via the pre-processor. clutter/egl/clutter-backend-egl.c | 2 +- clutter/fruity/clutter-backend-fruity.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 24133ddadcd71af74f52b009b178e0ffa9e51374 Author: Emmanuele Bassi Date: Thu Dec 9 15:11:37 2010 +0000 Rename the EGLDisplay accessors The accessor for the EGL display should be namespaced for the correct backend-specific API. clutter/egl/clutter-backend-egl.c | 19 ++++++++++++---- clutter/egl/clutter-egl.h | 28 ++++++++++++++++++------ clutter/fruity/clutter-backend-fruity.c | 32 ++++++++++++++++++++++++++++ clutter/fruity/clutter-fruity.h | 9 ++++++- clutter/fruity/clutter-stage-fruity.c | 3 +- clutter/wayland/clutter-backend-wayland.c | 24 +++++++++----------- clutter/wayland/clutter-stage-wayland.c | 4 +- clutter/wayland/clutter-wayland.h | 7 +++-- doc/reference/clutter/clutter-sections.txt | 3 +- 9 files changed, 95 insertions(+), 34 deletions(-) commit f5b51a2428cb3575ca4cfba98926f4906e6aba8e Author: Emmanuele Bassi Date: Thu Dec 9 15:06:12 2010 +0000 docs: Documentation fixes clutter/clutter-actor-private.h | 30 ++++++++++++++++-------------- doc/reference/clutter/Makefile.am | 1 + 2 files changed, 17 insertions(+), 14 deletions(-) commit ab0eb0a12b9cc05c417b49832b50b88a7cdb0958 Author: Emmanuele Bassi Date: Thu Dec 9 13:59:08 2010 +0000 docs: Documentation fixes clutter/cally/cally-group.c | 2 +- clutter/clutter-main.c | 2 +- clutter/clutter-units.c | 4 ++-- .../clutter/clutter-animation-tutorial.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit 8c7298b0c11df3690a8eb5afdd9226af87b4d76f Author: Emmanuele Bassi Date: Thu Dec 9 13:49:01 2010 +0000 build: Check NEWS file during release, not distcheck The check-news option in configure.ac conflicts with the idea of using a buildbot to do a distcheck. Since we're doing some validation on the state of the build during the release-check phase we should add the NEWS file check there. http://bugzilla.clutter-project.org/show_bug.cgi?id=2468 build/autotools/Makefile.am.release | 11 ++++++++++- configure.ac | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) commit 88f7579a9d4dd7b290216b5943d87c8143cceb04 Author: Elliot Smith Date: Thu Dec 9 11:40:27 2010 +0000 cookbook: Remove bold on emphasis inside programlisting If an element is placed inside a in a cookbook recipe, the result is bold italic text in the HTML output. This isn't particularly readable. Fix is to style emphasis elements inside programlistings so the font weight is not bold but is still italicised. http://bugzilla.clutter-project.org/show_bug.cgi?id=2475 doc/common/style.css | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit ca42ec1a7a3a7b219477d6c16a0aff30d64efb1a Author: Jussi Kukkonen Date: Thu Dec 2 16:08:10 2010 +0200 tests: Add test for clutter_model_get_iter_at_row() http://bugzilla.clutter-project.org/show_bug.cgi?id=2460 tests/conform/test-model.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) commit d8515bf4290bfece33fd41d356e86e74c0728067 Author: Jussi Kukkonen Date: Thu Dec 2 16:27:36 2010 +0200 Fix clutter_list_model_get_iter_at_row() when filtered Currently clutter_list_model_get_iter_at_row() always returns an iterator to the last non-filtered row when asking for row [1-N]. Patch makes the function return an iterator to the Nth non-filtered row or NULL. http://bugzilla.clutter-project.org/show_bug.cgi?id=2460 clutter/clutter-list-model.c | 58 ++++++++++++----------------------------- 1 files changed, 17 insertions(+), 41 deletions(-) commit e7f62bc936995c5d998f7c8dc4b2b1b7254ea97d Author: nobled Date: Tue Dec 7 07:10:59 2010 +0000 wayland: Update to current api Adapt to changes from these wayland commits: 35fd2a8cc68c42d90756330535de04cbbb4d2613 2bb3ebe1e437acf836449f0a63f3264ad29566f2 f8fc08f77187f6a5723281dab66841e5f3c24320 http://bugzilla.clutter-project.org/show_bug.cgi?id=2474 clutter/wayland/clutter-backend-wayland.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) commit d8a544c0f17f5d6550578a426c1ef1c4060ca411 Author: nobled Date: Tue Dec 7 07:07:40 2010 +0000 wayland: fix typo Fixes the build error: clutter-input-device-wayland.c:154:69: error: too few arguments to function call http://bugzilla.clutter-project.org/show_bug.cgi?id=2473 clutter/wayland/clutter-input-device-wayland.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 3795c9b975d43305c64ed24306736f764ef165bc Author: Emmanuele Bassi Date: Thu Dec 9 12:37:41 2010 +0000 build: Do not hardcode --warn-all for g-ir-scanner It's possible to use --warn-all through the introspection scanner options from outside the build environment. clutter/Makefile.am | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) commit d229036441b3f0a4f7ab5205de46b5dbc9d9d7a9 Author: Emmanuele Bassi Date: Thu Dec 9 12:36:50 2010 +0000 Reduce the amount of g-ir-scanner warnings As much as we can; the remaining warnings are mostly valid things that the introspection scanner still flags as potential issues. clutter/clutter-actor.h | 26 +++++++++++++------------- clutter/clutter-container.c | 16 ++++++++++++---- clutter/clutter-device-manager.h | 10 +++++----- clutter/clutter-layout-manager.h | 8 ++++---- clutter/clutter-offscreen-effect.h | 6 +++--- clutter/clutter-scriptable.h | 2 +- clutter/x11/clutter-backend-x11.c | 10 +++++----- clutter/x11/clutter-stage-x11.c | 7 ++++--- 8 files changed, 47 insertions(+), 38 deletions(-) commit e1f48b15ee92f60f2a84c808ba0d505f38a1bf61 Author: Emmanuele Bassi Date: Thu Dec 9 12:00:29 2010 +0000 docs: Use :reverse in the Behaviour migration guide Instead of the ::completed signal flip. .../clutter/migrating-ClutterBehaviour.xml | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) commit b16ea099882accbb489d20ef1ea03dc3cb0d2846 Merge: b6318bd 50849ac Author: Emmanuele Bassi Date: Thu Dec 9 11:58:10 2010 +0000 Merge remote branch 'elliot/cookbook-animations-looping-new-api' * elliot/cookbook-animations-looping-new-api: cookbook: Use new API to reverse timeline commit b6318bd8218c021270370d6e8093d38bdabe791d Author: Tomeu Vizoso Date: Tue Dec 7 15:29:05 2010 +0100 Make clutter_shader_effect_set_uniform_value accept G_TYPE_DOUBLE For users of gobject-introspection that cannot know which non-integer type to pass. http://bugzilla.clutter-project.org/show_bug.cgi?id=2471 clutter/clutter-shader-effect.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) commit cf1fced88507e0ccc2fa704d14b3141168a48360 Author: Robert Bragg Date: Wed Dec 8 18:57:42 2010 +0000 pipeline: don't dereference NULL program state This avoid dereferencing a NULL arbfp program state in _cogl_pipeline_backend_arbfp_layer_pre_change_notify for _STATE_COMBINE_CONSTANT changes. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) commit 46295a0dd1c0dcbc130ed9dd3aed900e597c8d42 Author: Robert Bragg Date: Wed Dec 8 16:29:37 2010 +0000 arbfp: Copy pipelines used as cache keys We are currently using a pipeline as a key into our arbfp program cache but because we weren't making a copy of the pipelines used as keys there were times when doing a lookup in the cache would end up trying to compare a lookup key with an entry key that would point to invalid memory. Note: the current approach isn't ideal from the pov that that key pipeline may reference some arbitrarily large user textures will now be kept alive indefinitely. The plan to improve on this is that we will have a mechanism to create a special "key pipeline" which will derive from the default Cogl pipeline (to avoid affecting the lifetime of other pipelines) and only copy state from the original pipeline that affects the arbfp program and will reference small dummy textures instead of potentially large user textures. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 34 ++++++++++++++++++++++++++++++- 1 files changed, 33 insertions(+), 1 deletions(-) commit 87b2300f98727525267a6849c36c74849ea993fd Author: Robert Bragg Date: Wed Dec 8 16:27:57 2010 +0000 arbfp: initialize arbfp_program_state->next_constant_id When allocating a new ArbfpProgramState struct when starting code generation we weren't initializing arbfp_program_state->next_constant_id to 0. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit bac600b21bcbe13d3259fb7cee9e2b378f807d74 Author: Robert Bragg Date: Wed Dec 8 16:23:10 2010 +0000 pipeline: Clarify stages for finding an arbfp program In the arbfp backend there is a seqential approach to finding a suitable arbfp program to use for a given pipeline; first we see if there's already a program associated with the pipeline, 2nd we try and find a program associated with the "arbfp-authority" 3rd we try and lookup a program in a cache and finally we resort to starting code-generation for a new program. This patch slightly reworks the code of these steps to hopefully make them a bit clearer. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 104 ++++++++++++++++++------------- 1 files changed, 61 insertions(+), 43 deletions(-) commit 9606c42c559fefbf397047dad6da3f4f8958b459 Author: Neil Roberts Date: Mon Dec 6 21:14:33 2010 +0000 cogl-pipeline: Fix the layer_has_alpha_cb _cogl_pipeline_needs_blending_enabled tries to determine whether each layer is using the default combine state. However it was using argument 0 for both checks so the if-statement would never be true. clutter/cogl/cogl/cogl-pipeline.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit ab5f394e5aea5a79a0e5d6647e86402ca2ba5e4f Author: Robert Bragg Date: Wed Dec 8 11:38:56 2010 +0000 pipeline: remove unused HashState member There was an unused pipeline_differences member as part of the HashState struct which this patch remove to avoid confusion. clutter/cogl/cogl/cogl-pipeline.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) commit 5fd8e9c6083ff17202ceb2cfd2d1c56df0d1da14 Author: Robert Bragg Date: Wed Dec 8 11:35:16 2010 +0000 pipeline: initialize HashState flags member There are a set of "EvalFlags" that get passed to _cogl_pipeline_hash that can tweak the semantics of what state is evaluated for hashing but these flags weren't getting passed via the HashState state structure so it would be undefined if you would get the correct semantics. clutter/cogl/cogl/cogl-pipeline.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit ea66156c83dded1536009bbdd02032e5e3114c3a Author: Robert Bragg Date: Wed Dec 8 11:30:00 2010 +0000 pipeline: don't use near/far symbols According to 9cc90333473e3 the windows headers #define near as nothing, and presumable the same is true for 'far' too. Apparently this define is to improve compatibility with code written for Windows 3.1, so it's good that people will be able to incorporate such code into their Clutter applications. clutter/cogl/cogl/cogl-pipeline.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) commit acd3d615686f8b10589ac57b7fb16b4f968ae3fb Author: Emmanuele Bassi Date: Wed Dec 8 14:26:27 2010 +0000 docs: Fix listitem tag clutter/clutter-color.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit c454526bbbd91224ab3fa580d80bf937b912d2cc Author: Emmanuele Bassi Date: Wed Dec 8 13:59:53 2010 +0000 docs: Clean up clutter_color_from_string() Add hsl() and hsla() formats, and clean up the wording. clutter/clutter-color.c | 54 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 37 insertions(+), 17 deletions(-) commit ca7dc2f951f1d5cc59c364a186aa065449c2b85f Author: Neil Roberts Date: Tue Dec 7 23:32:47 2010 +0000 cogl-backend-egl: Chain up to the X11 backend init_events Since c6493885c3f18 when building the EGL backend for eglx there was no fallback in the init_events implementation so the X11 backend init function would never get called. This was stopping it from receiving any X events so a lot of things broke. It now just chains up. clutter/egl/clutter-backend-egl.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) commit b0751d234240aa5e7899dedba22c607e75f5ad81 Author: Damien Lespiau Date: Tue Dec 7 22:06:07 2010 +0000 input-device: Downgrade over-zealous warning to note This warning is really harmless, we just discard the event anyway, let's demote it to a CLUTTER_NOTE() so event backend implementers can see it. clutter/clutter-input-device.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit f8fc194b3b3529bf4f3230cef00d5d0b042673bf Author: Neil Roberts Date: Tue Dec 7 11:02:21 2010 +0000 clutter-score: Initialize ClutterScoreEntry::complete_id When clutter_score_append_at_marker is called instead of clutter_score_append the complete_id field of ClutterScoreEntry was being left uninitialised. When the entry is eventually freed it would sometimes try to disconnect an invalid signal id. This was causing conformance test failures for me on GLES2. clutter/clutter-score.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 9d836d8ce5d95749e1b3562f1cab77d9ac27cb1e Author: Robert Bragg Date: Tue Dec 7 16:44:36 2010 +0000 context: only declare arbfp cache for GL We were trying to declare and initializing an arbfp program cache for GLES but since the prototypes for the _hash and _equal functions were only available for GL this broke the GLES builds. By #ifdefing the code to conditionally declare/initialize for GL only this should hopefully fix GLES builds. clutter/cogl/cogl/cogl-context.c | 4 ++++ clutter/cogl/cogl/cogl-context.h | 2 ++ 2 files changed, 6 insertions(+), 0 deletions(-) commit 67c2a1b29fa679f3a86b8ee4cae682de8391397b Author: Robert Bragg Date: Tue Dec 7 16:36:44 2010 +0000 pipeline: remove spurious use of True instead of TRUE The constant 'True' is defined by Xlib which isn't used for all clutter builds so this replaces occurrences of True with TRUE which is defined by glib. This should hopefully fix the win32 builds. clutter/cogl/cogl/cogl-pipeline.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 464ed7e6b7c35248c03fd0a03a8e8087e7b5e274 Author: Robert Bragg Date: Fri Dec 3 12:01:18 2010 +0000 arbfp: Adds an ARBfp program cache This adds a cache (A GHashTable) of ARBfp programs and before ever starting to code-generate a new program we will always first try and find an existing program in the cache. This uses _cogl_pipeline_hash and _cogl_pipeline_equal to hash and compare the keys for the cache. There is a new COGL_DEBUG=disable-program-caches option that can disable the cache for debugging purposes. clutter/cogl/cogl/cogl-context.c | 6 ++ clutter/cogl/cogl/cogl-context.h | 2 + clutter/cogl/cogl/cogl-debug-options.h | 5 + clutter/cogl/cogl/cogl-debug.c | 8 +- clutter/cogl/cogl/cogl-debug.h | 3 +- clutter/cogl/cogl/cogl-pipeline-arbfp-private.h | 6 ++ clutter/cogl/cogl/cogl-pipeline-arbfp.c | 111 +++++++++++++++++++---- 7 files changed, 118 insertions(+), 23 deletions(-) commit e87c3820ee729930d4a7b84f4737b99eb26ad03d Author: Robert Bragg Date: Thu Nov 4 13:57:36 2010 +0000 pipeline: Implements _cogl_pipeline_hash function This allows us to get a hash for a set of state groups for a given pipeline. This can be used for example to get a hash of the fragment processing state of a pipeline so we can implement a cache for compiled arbfp/glsl programs. clutter/cogl/cogl/cogl-color-private.h | 5 + clutter/cogl/cogl/cogl-context.c | 2 + clutter/cogl/cogl/cogl-pipeline-private.h | 18 +- clutter/cogl/cogl/cogl-pipeline.c | 520 +++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-util.c | 9 + clutter/cogl/cogl/cogl-util.h | 27 ++ 6 files changed, 580 insertions(+), 1 deletions(-) commit cc36e49ec5f06f608380fba24682a69e9b0d0a1a Author: Robert Bragg Date: Fri Dec 3 11:36:49 2010 +0000 pipeline: generalize _cogl_pipeline_equal _cogl_pipeline_equal now accepts a mask of pipeline differences and layer differences to constrain what state will be compared. In addition a set of flags are passed that can tweak the comparison semantics for some state groups. For example when comparing layer textures we sometimes only need to compare the texture target and can ignore the data itself. In updating the code this patch also changes it so all required pipeline authorities are resolved in one step up-front instead of resolving the authority for each state group in turn and repeatedly having to traverse the pipeline's ancestry. This adds two new functions _cogl_pipeline_resolve_authorities and _cogl_pipeline_layer_resolve_authorities to handle resolving a set of authorities. clutter/cogl/cogl/cogl-journal.c | 9 +- clutter/cogl/cogl/cogl-pipeline-private.h | 155 +++++++++++----- clutter/cogl/cogl/cogl-pipeline.c | 287 ++++++++++++++++++++--------- 3 files changed, 312 insertions(+), 139 deletions(-) commit 62b051951c80c31ee6874a1d156ce889350ce8be Author: Robert Bragg Date: Tue Dec 7 12:13:10 2010 +0000 docs: don't dist cogl-2.0 manual if not built If not configured with --enable-cogl2-reference then don't try and dist the doc/references/cogl-2.0 manual. Although this means a tarball built this way will not be able to build the experimental cogl-2.0 manual this isn't considered a big problem since anyone interested in this would hopefully be tracking git for now or we can simply be careful to configure with --enable-cogl2-reference for our tarball releases. doc/reference/Makefile.am | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) commit ff646b7fc3e4528836f415e4087ee30c6547ad7d Author: Robert Bragg Date: Wed Dec 1 16:53:08 2010 +0000 pipeline: remove layer->backend_priv[] array This removes the unused array of per-packend priv data pointers associated with every CoglPipelineLayer. This reduces the size of all layer allocations and avoids having to zero an array for each _cogl_pipeline_layer_copy. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 1 - clutter/cogl/cogl/cogl-pipeline-glsl.c | 3 +-- clutter/cogl/cogl/cogl-pipeline-private.h | 9 --------- clutter/cogl/cogl/cogl-pipeline.c | 24 ------------------------ 4 files changed, 1 insertions(+), 36 deletions(-) commit 1180fd159edea9b3907c186d45013348c041b216 Author: Robert Bragg Date: Wed Dec 1 16:37:25 2010 +0000 cogl-object: remove un-used cogl_object_get_type A non-static function named cogl_object_get_type was inadvertently added during the addition of the CoglObject base type, but there is no public prototype in the headers and it's only referenced inside cogl-object.c to implement cogl_handle_get_type() for compatibility. This removes the function since we don't want to commit to CoglObject always simply being a boxed type. In the future we may want to register hierarchical GTypeInstance based types. clutter/cogl/cogl/cogl-object.c | 8 +------- 1 files changed, 1 insertions(+), 7 deletions(-) commit ef02cb7ff203b12932697823fbcc59a7bd04ad4d Author: Robert Bragg Date: Mon Nov 29 21:42:06 2010 +0000 matrix gtype: registers a boxed type for CoglMatrix To allow us to have gobject properties that accept a CoglMatrix value we need to register a GType. This adds a cogl_gtype_matrix_get_type function that will register a static boxed type called "CoglMatrix". This adds a new section to the reference manual for GType integration functions. clutter/cogl/cogl/Makefile.am | 1 + clutter/cogl/cogl/cogl-gtype-private.h | 48 ++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-matrix.c | 7 ++++ clutter/cogl/cogl/cogl-matrix.h | 16 ++++++++++ clutter/cogl/cogl/cogl.h | 6 ++++ doc/reference/cogl-2.0/cogl-docs.xml.in | 6 ++++ doc/reference/cogl-2.0/cogl-sections.txt | 6 +++- doc/reference/cogl/cogl-docs.xml.in | 1 + doc/reference/cogl/cogl-sections.txt | 6 ++++ 9 files changed, 96 insertions(+), 1 deletions(-) commit c29a7526c040209a5ca0bb327f1df6a98c4d88aa Author: Robert Bragg Date: Mon Nov 29 18:47:10 2010 +0000 matrix: Adds matrix_copy and _free functions As a pre-requisite for being able to register a boxed GType for CoglMatrix (enabling us to define gobject properties that accept a CoglMatrix) this adds cogl_matrix_copy and _free functions. clutter/cogl/cogl/cogl-matrix.c | 15 +++++++++++++++ clutter/cogl/cogl/cogl-matrix.h | 27 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 0 deletions(-) commit 3edd02841b5748bbad0977ba9ccd91d65651f819 Author: Robert Bragg Date: Fri Dec 3 16:59:52 2010 +0000 pipeline simple optimization for _needs_blending_enabled In _cogl_pipeline_needs_blending_enabled after first checking whether the property most recently changed requires blending we would then resort to checking all other properties too in case some other state also requires blending. We now avoid checking all other properties in the case that blending was previously disabled and checking the property recently changed doesn't require blending. Note: the plan is to improve this further by explicitly keeping track of the properties that currently cause blending to be enabled so that we never have to resort to checking all other properties we can constrain the checks to those masked properties. clutter/cogl/cogl/cogl-pipeline.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) commit 9ff191bd3bfba0000547c3082e7fe6c57152bbe5 Author: Robert Bragg Date: Fri Dec 3 16:56:54 2010 +0000 pipeline: inline _get_parent and _get_authority This moves _cogl_pipeline_get_parent and _cogl_pipeline_get_authority into cogl-pipeline-private.h so they can be inlined since they have been seen to get quite high in profiles. Given that they both contain such small amounts of code the function call overhead is significant. clutter/cogl/cogl/cogl-pipeline-private.h | 17 +++++++++++++++++ clutter/cogl/cogl/cogl-pipeline.c | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) commit 3fa91efea84c2c442fcc92e8ed0df711d7e67988 Author: Neil Roberts Date: Wed Nov 10 14:02:31 2010 +0000 Add a COGL_DEBUG option to disable software clipping This adds a debug option called disable-software-clipping which causes the journal to always log the clip stack state rather than trying to manually clip rectangles. clutter/cogl/cogl/cogl-debug-options.h | 5 +++++ clutter/cogl/cogl/cogl-debug.c | 3 ++- clutter/cogl/cogl/cogl-debug.h | 3 ++- clutter/cogl/cogl/cogl-journal.c | 23 +++++++++++++---------- 4 files changed, 22 insertions(+), 12 deletions(-) commit 62c893feee386223aebbab781171028db547d7f9 Author: Neil Roberts Date: Tue Nov 9 19:18:37 2010 +0000 cogl-journal: Attempt to clip manually to avoid breaking up batches Before flushing the journal there is now a separate iteration that will try to determine if the matrix of the clip stack and the matrix of the rectangle in each entry are on the same plane. If they are it can completely avoid the clip stack and instead manually modify the vertex and texture coordinates to implement the clip. The has the advantage that it won't break up batching if a single clipped rectangle is used in a scene. The software clip is only used if there is no user program and no texture matrices. There is a threshold to the size of the batch where it is assumed that it is worth the cost to break up a batch and program the GPU to do the clipping. Currently this is set to 8 although this figure is plucked out of thin air. To check whether the two matrices are on the same plane it tries to determine if one of the matrices is just a simple translation of the other. In the process of this it also works out what the translation would be. These values can be used to translate the clip rectangle into the coordinate space of the rectangle to be logged. Then we can do the clip directly in the rectangle's coordinate space. clutter/cogl/cogl/cogl-context.c | 3 + clutter/cogl/cogl/cogl-context.h | 1 + clutter/cogl/cogl/cogl-journal-private.h | 2 + clutter/cogl/cogl/cogl-journal.c | 363 +++++++++++++++++++++++++++++- 4 files changed, 363 insertions(+), 6 deletions(-) commit be63fcee7ff2ef33d25efd873f9a9b79856e1577 Author: Neil Roberts Date: Tue Nov 9 19:09:25 2010 +0000 cogl-clip-stack: Move the struct definitions to the header It will be useful to be able to directly examine the contents of the clip stack within the journal code. clutter/cogl/cogl/cogl-clip-stack.c | 112 ---------------------------------- clutter/cogl/cogl/cogl-clip-stack.h | 114 +++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 112 deletions(-) commit dc0506a1649bcea4997a68013927529451131712 Author: Neil Roberts Date: Tue Nov 9 12:01:04 2010 +0000 cogl-clip-stack: Don't convert rect clips to window clips Previously in cogl-clip-state.c when it detected that the current modelview matrix is screen-aligned it would convert the clip entry to a window clip. Instead of doing this cogl-clip-stack.c now contains the detection and keeps the entry as a rectangle clip but marks that it is entirely described by its scissor rect. When flusing the clip stack it doesn't do anything extra for entries that have this mark (because the clip will already been setup by the scissor). This is needed so that we can still track the original rectangle coordinates and modelview matrix to help detect when it would be faster to modify the rectangle when adding it to the journal rather than having to break up the batch to set the clip state. clutter/cogl/cogl/cogl-clip-stack.c | 109 ++++++++++++++++++++++++++-------- clutter/cogl/cogl/cogl-clip-state.c | 55 ------------------ 2 files changed, 83 insertions(+), 81 deletions(-) commit 22be07c3b5ec7d8d5e5e0447599425026cbb7bd8 Author: Neil Roberts Date: Thu Nov 25 21:08:45 2010 +0000 cogl-journal: Defer expanding the vertices until uploading When logging a quad we now only store the 2 vertices representing the top left and bottom right of the quad. The color is only stored once per entry. Once we come to upload the data we expand the 2 vertices into four and copy the color to each vertex. We do this by mapping the buffer and directly expanding into it. We have to copy the data before we can render it anyway so it doesn't make much sense to expand the vertices before uploading and this way should save some space in the size of the journal. It also makes it slightly easier if we later want to do pre-processing on the journal entries before uploading such as doing software clipping. The modelview matrix is now always copied to the journal entry whereas before it would only be copied if we aren't doing software transform. The journal entry struct always has the space for the modelview matrix so hopefully it's only a small cost to copy the matrix. The transform for the four entries is now done using cogl_matrix_transform_points which may be slightly faster than transforming them each individually with a call to cogl_matrix_transfom. clutter/cogl/cogl/cogl-context.h | 1 + clutter/cogl/cogl/cogl-journal.c | 273 ++++++++++++++++++++++++-------------- 2 files changed, 173 insertions(+), 101 deletions(-) commit a7d88e15270e73025b19f745f21473b832fb1754 Author: Neil Roberts Date: Thu Dec 2 21:08:30 2010 +0000 Revert "cogl: Remove the generated array size for cogl_tex_coord_in" This reverts commit 4cfe90bde275dbb952645397aa2ba2d6f6e2f3ba. GLSL 1.00 on GLES doesn't support unsized arrays so the whole idea can't work. Conflicts: clutter/cogl/cogl/cogl-pipeline-glsl.c clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-pipeline-arbfp.c | 3 +- clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +- clutter/cogl/cogl/cogl-pipeline-glsl.c | 52 +++++- clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 3 +- clutter/cogl/cogl/cogl-pipeline-opengl.c | 6 +- clutter/cogl/cogl/cogl-pipeline-private.h | 3 +- clutter/cogl/cogl/cogl-shader-boilerplate.h | 1 - clutter/cogl/cogl/cogl-shader-private.h | 6 + clutter/cogl/cogl/cogl-shader.c | 229 ++++++++++++++++------ clutter/cogl/cogl/cogl-vertex-attribute.c | 4 +- clutter/cogl/cogl/cogl.c | 9 +- clutter/cogl/cogl/cogl2-path.c | 4 +- 13 files changed, 250 insertions(+), 75 deletions(-) commit e0ce4cee8c6fb8d40d565cf3890942a0bc898bc0 Author: Damien Lespiau Date: Thu Dec 2 15:46:40 2010 +0000 win32: export TARGET and ROOT_DIR in env.sh So children of the shell sourcing it can use them (eg. buildbot slaves) build/mingw/mingw-cross-compile.sh | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit c1878316e02dce0ff10c8e81ee3fa3b6ea9bb9cb Author: Damien Lespiau Date: Thu Dec 2 15:41:43 2010 +0000 win32: Detect the mingw32 cross compiler on Fedora Fedora mingw32 cross compiler is prefix with i686-pc-mingw32-. build/mingw/mingw-cross-compile.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e73d5b30bbb927eae5ae2cd270df9d79c821c109 Author: Damien Lespiau Date: Thu Dec 2 14:03:01 2010 +0000 win32: Update glib and cairo version in mingw-cross-compile.sh Clutter has moved on and now depends on glib 2.26 and cairo 1.10 (for cairo-gobject). build/mingw/mingw-cross-compile.sh | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit dd5431ef382a59337cfda04bc31cebc28085f17f Author: Neil Roberts Date: Thu Dec 2 16:30:55 2010 +0000 cogl-pipeline-glsl: Fix reusing shaders for shared ancestors The check for whether we can reuse a program we've already generated was only being done if the pipeline already had a glsl_program_state. When there is no glsl_program_state it then looks for the nearest ancestor it can share the program with. It then wasn't checking whether that ancestor already had a GL program so it would start generating the source again. It wouldn't however compile that source again because _cogl_pipeline_backend_glsl_end does check whether there is already a program. This patch moves the check until after it has found the glsl_program_state, whether or not it was found from an ancestor or as its own state. clutter/cogl/cogl/cogl-pipeline-glsl.c | 32 +++++++++++++++----------------- 1 files changed, 15 insertions(+), 17 deletions(-) commit 4cfe90bde275dbb952645397aa2ba2d6f6e2f3ba Author: Neil Roberts Date: Thu Dec 2 12:27:29 2010 +0000 cogl: Remove the generated array size for cogl_tex_coord_in Under GLES2 we were defining the cogl_tex_coord_in varying as an array with a size determined by the number of texture coordinate arrays enabled whenever the program is used. This meant that we may have to regenerate the shader with a different size if the shader is used with more texture coord arrays later. However in OpenGL the equivalent builtin varying gl_TexCoord is simply defined as: varying vec4 gl_TexCoord[]; /* <-- no size */ GLSL is documented that if you declare an array with no size then you can only access it with a constant index and the size of the array will be determined by the highest index used. If you want to access it with a non-constant expression you need to redeclare the array yourself with a size. We can replicate the same behaviour in our Cogl shaders by instead declaring the cogl_tex_coord_in with no size. That way we don't have to pass around the number of tex coord attributes enabled when we flush a material. It also means that CoglShader can go back to directly uploading the source string to GL when cogl_shader_source is called so that we don't have to keep a copy of it around. If the user wants to access cogl_tex_coord_in with a non-constant index then they can simply redeclare the array themself. Hopefully developers will expect to have to do this if they are accustomed to the gl_TexCoord array. clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-pipeline-arbfp.c | 3 +- clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +- clutter/cogl/cogl/cogl-pipeline-glsl.c | 46 +---- clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 3 +- clutter/cogl/cogl/cogl-pipeline-opengl.c | 6 +- clutter/cogl/cogl/cogl-pipeline-private.h | 3 +- clutter/cogl/cogl/cogl-shader-boilerplate.h | 1 + clutter/cogl/cogl/cogl-shader-private.h | 6 - clutter/cogl/cogl/cogl-shader.c | 229 ++++++---------------- clutter/cogl/cogl/cogl-vertex-attribute.c | 4 +- clutter/cogl/cogl/cogl.c | 9 +- clutter/cogl/cogl/cogl2-path.c | 4 +- 13 files changed, 73 insertions(+), 246 deletions(-) commit 50849ac1fdc7840cced9aa1730b5d3f7fd4d5d02 Author: Elliot Smith Date: Tue Nov 30 16:52:01 2010 +0000 cookbook: Use new API to reverse timeline clutter_timeline_set_reverse() can be used to automatically reverse a timeline's direction each time it completes, so use that in looping animation recipe and examples. doc/cookbook/animations.xml | 25 ++++++++++++++----- .../examples/animations-looping-implicit.c | 24 +------------------ 2 files changed, 19 insertions(+), 30 deletions(-) commit 4f17bf3bcc5c017ef14a876f172ba3b1c3590317 Author: Emmanuele Bassi Date: Tue Nov 30 18:55:38 2010 +0000 keysyms: Update the list Add TouchpadOn and TouchpadOff from the X11 key symbols. clutter/clutter-keysyms-compat.h | 2 ++ clutter/clutter-keysyms.h | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) commit 87a72d188e7d986686106859a4d4f229b20dfe7a Author: Neil Roberts Date: Wed Dec 1 15:48:37 2010 +0000 cogl-pipeline: Fix comparing layer states for finding codgen authority When compiling for GLES2, the codegen is affected by state other than the layers. That means when we find an authority for the codegen state we can't directly look at authority->n_layers to determine the number of layers because it isn't necessarily the layer state authority. This patch changes it to use cogl_pipeline_get_n_layers instead. Once we have two authorities that differ in codegen state we then compare all of the layers to decide if they would affect codegen. However it was ignoring the fact that the authorities might also differ by the other codegen state. This path also adds an extra check for whether _cogl_pipeline_compare_differences contains any codegen bits other than COGL_PIPELINE_STATE_LAYERS. clutter/cogl/cogl/cogl-pipeline.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) commit f620d53054e50e4ddcf656794a38d13c21d0dbf6 Author: Neil Roberts Date: Wed Dec 1 14:39:28 2010 +0000 cogl-pipeline: Fix the codgen authority for texture target changes When determining if a layer would require a different shader to be generated it needs to check a certain set of state changes and it needs to check whether the texture target is different. However it was checking whether texture texture was different only if the other state was also different which doesn't make any sense. It also only checked the texture difference if that was the only state change which meant that effectively the code was impossible to reach. Now it does the texture target check indepent of the other state changes. clutter/cogl/cogl/cogl-pipeline.c | 29 ++++++++++++++--------------- 1 files changed, 14 insertions(+), 15 deletions(-) commit a38fa7a2dfc3a169777ba172d145178b9b068d73 Author: Neil Roberts Date: Tue Nov 30 22:28:38 2010 +0000 cogl-pipeline-fixed: Use the correct state flag for combine constant The fixed pipeline backend wasn't correctly flushing the combine constant because it was using the wrong flag to determine if the combine constant has changed since the last flushed material. clutter/cogl/cogl/cogl-pipeline-fixed.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 499a370ee326ea24fd0fff55466877a6f286d9fd Author: Neil Roberts Date: Tue Nov 30 22:17:17 2010 +0000 cogl-pipeline-opengl: Fix enabling previously disabled units When enabling a unit that was disabled from a previous flush pipeline it was forgetting to rebind the right texture unit so it wouldn't work. This was causing the redhand to disappear when using the fixed function backend in test-cogl-multitexture if anything else is added to the scene. clutter/cogl/cogl/cogl-pipeline-opengl.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 17a98875d33c872800c04c26338427970b88b308 Author: Neil Roberts Date: Tue Nov 30 22:15:40 2010 +0000 cogl-pipeline: Add more ignored state changes for program generation For shader generation backends we don't need to worry about changes to the texture object and changing the user matrix. The missing user matrix flag was causing test-cogl-multitexture to regenerate the shader every frame. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 5 ++++- clutter/cogl/cogl/cogl-pipeline-glsl.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) commit 1564418b3feb9ab010c225129bc1b79b7c882318 Author: Damien Lespiau Date: Tue Nov 30 16:36:56 2010 +0000 cogl: Revert "build: Remove unused variable" Having ctx here produces a warning on GLES. However it's needed for Big GL as we have at the top of the file: #ifdef HAVE_COGL_GL #define glClientActiveTexture ctx->drv.pf_glClientActiveTexture #endif This reverts commit 27a3a2056a245aca64b8e3a7d82b7976c13e897a. clutter/cogl/cogl/cogl.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 8ee91794477c82171e0b165fb9e10655798682a0 Author: Damien Lespiau Date: Tue Nov 30 16:22:49 2010 +0000 egl: Fix compilation with EGLX That what happens when you test things only with 2 configure options instead of 3. The 2 tested compile, the third one breaks. Another good catch for the eglx bot! clutter/egl/clutter-backend-egl.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit bbbd91e581ca6d7408c1f6fa2f1b6d50d2c4db2b Author: Damien Lespiau Date: Tue Nov 30 16:03:26 2010 +0000 cogl: Fix unused variable warning with GLES2 This shader variable is only used with big GL. clutter/cogl/cogl/cogl-shader.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 9ad55edf24f74353c095153e370d6f648f4e5593 Author: Damien Lespiau Date: Tue Nov 30 10:06:12 2010 -0500 egl: Don't try to use stage_x11 with non-X winsys The access to stage_x11 has to be protected by COGL_HAS_X11_SUPPORT. clutter/egl/clutter-stage-egl.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) commit 4ceb95d2ca5f5a52a77bfcada47d5befc6ab1fd1 Author: Damien Lespiau Date: Tue Nov 30 14:50:13 2010 +0000 evdev: Add a comment to revisit the GSource management with glib 2.28 With glib 2.28, we'll be able to have one GSource per device manager with child sources for earch device. Make a note to update the code in a few months. clutter/evdev/clutter-device-manager-evdev.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) commit 27a3a2056a245aca64b8e3a7d82b7976c13e897a Author: Damien Lespiau Date: Fri Nov 19 14:51:39 2010 -0500 build: Remove unused variable and be 100% warning free again. clutter/cogl/cogl/cogl.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) commit 9ba5447c9bbbd93808a56d9968b2e60f20bbd328 Author: Damien Lespiau Date: Fri Nov 19 14:31:51 2010 -0500 evdev: Enable the compilation of the evdev backend for eglnative Not tested (but checked that it compiles). There's no reason to only enable the check for the cex100. Hopefully should work. We make sure not to enable both the evdev and the tslib backend at the same time as the DeviceManager is a singleton and we can't have both subclasses at the same time for now. configure.ac | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-) commit bce4c87232bea82560725fa44e079088d75a367f Author: Damien Lespiau Date: Fri Nov 19 14:19:52 2010 -0500 evdev: Don't oveflow when translating buttons to masks An array is used to translate the button to its mask. Clutter defines the masks for button 1 to 5 but we report BTN_LEFT..BTN_TASK ie 0x110..0x117. We need to pad the array for the translation not to access random data for buttons between 0x115 and 0x117. clutter/evdev/clutter-device-manager-evdev.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit ac431ac21db043d42fa5b0be604a155503846012 Author: Damien Lespiau Date: Thu Nov 11 19:11:27 2010 -0500 input-device: Warn if the device has no associated stage Discarding the event without any warning when the device has no associated stage makes it hard to find the bug for people implementing new event backends. We should really warn for that abnormal condition in _clutter_input_device_update(). clutter/clutter-input-device.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) commit c20beabf93a97c3e0d58d8512aa5459ca670d3bf Author: Damien Lespiau Date: Thu Nov 11 19:07:35 2010 -0500 evdev: Add mouse support We know support EV_REL events comming from evdev devices. This addition is pretty straigthforward, it adds a x,y per GSource listening to a evdev device, updates from EL_REL (relative) events and craft new ClutterMotionEvents. As for buttons, BTN_LEFT..BTN_TASK are translated to ClutterButtonEvents with 1..8 as button number. clutter/evdev/clutter-device-manager-evdev.c | 223 +++++++++++++++++++++++--- tests/interactive/test-events.c | 8 +- 2 files changed, 204 insertions(+), 27 deletions(-) commit 94c2812d720bbdd3db3d779f1f96438b65ae383d Author: Damien Lespiau Date: Tue Nov 9 13:14:37 2010 -0500 evdev: Only create a xkbcommon mapping for keyboard devices clutter/evdev/clutter-device-manager-evdev.c | 44 ++++++++++++++++---------- 1 files changed, 27 insertions(+), 17 deletions(-) commit 7cd6ba282865491d1e60e830676a363c72f21c25 Author: Damien Lespiau Date: Tue Nov 9 13:02:53 2010 -0500 evdev: Close the device gracefully in case of a read() error Even with udev, the read fails before udev has a chance to signal the change. Hence (and to handle errors gracefully anyway), let's remove the device from the device manager in case of a read() error. clutter/evdev/clutter-device-manager-evdev.c | 20 +++++++++++++++++++- 1 files changed, 19 insertions(+), 1 deletions(-) commit afd279dd7684bfd28b07cf668a1aaf213239cfd4 Author: Damien Lespiau Date: Tue Nov 9 12:50:23 2010 -0500 evdev: Merge clutter-event-evdev.[ch] into the device manager The device manager now fully owns the GSources corresponding to the devices it manages. This will allow not only to remove the source when udev signals a device removal but also handle read() errors gracefully by removing the faulty device from the manager. clutter/Makefile.am | 2 - clutter/egl/clutter-backend-egl.c | 1 - clutter/evdev/clutter-device-manager-evdev.c | 320 ++++++++++++++++++++++- clutter/evdev/clutter-device-manager-evdev.h | 3 + clutter/evdev/clutter-event-evdev.c | 367 -------------------------- clutter/evdev/clutter-event-evdev.h | 36 --- 6 files changed, 321 insertions(+), 408 deletions(-) commit afee3b009cff5149a1a97aadb3d8009c7b4a26f8 Author: Damien Lespiau Date: Tue Nov 9 11:56:26 2010 -0500 evdev: Support hotplug (addition/removal) of evdev devices Just connect to the GUdevClient "uevent" signal and deals with "add"/"remove" commands. This drives the installation/removal of GSource to listen to the device. clutter/evdev/clutter-device-manager-evdev.c | 59 ++++++++++++++++++++++++++ clutter/evdev/clutter-event-evdev.c | 49 +++++++++++++++++++++ 2 files changed, 108 insertions(+), 0 deletions(-) commit b83a4813a4fbf6818bed9f15d8fcf1d7c3717c9a Author: Damien Lespiau Date: Mon Nov 8 11:38:16 2010 -0500 evdev: Make sure we only add evdev devices Let's use the sysfs path of the device to make sure we only load evdev device, not legacy mousedev ones for instance. We rely on the sysfs API/ABI guarantees and look for devices finishing by /input%d/event%d. clutter/evdev/clutter-device-manager-evdev.c | 35 ++++++++++++++++++++----- 1 files changed, 28 insertions(+), 7 deletions(-) commit c6493885c3f18042f39273a2efa4fc3616d932b2 Author: Damien Lespiau Date: Thu Nov 4 10:38:32 2010 -0400 evdev: First stab at an evdev backend This backend is a event backend that can be enabled for EGL (for now). It uses udev (gudev) to query input devices on a linux system, listens to keyboard events from input devices and xkbcommon to translate raw key codes into key keysyms. This commit only supports key events, more to follow. clutter/Makefile.am | 20 ++ clutter/clutter-device-manager-private.h | 1 + clutter/clutter-input-device.h | 8 + clutter/egl/clutter-backend-egl.c | 49 +++- clutter/egl/clutter-backend-egl.h | 6 + clutter/evdev/clutter-device-manager-evdev.c | 276 ++++++++++++++++++++++ clutter/evdev/clutter-device-manager-evdev.h | 58 +++++ clutter/evdev/clutter-event-evdev.c | 318 ++++++++++++++++++++++++++ clutter/evdev/clutter-event-evdev.h | 36 +++ clutter/evdev/clutter-input-device-evdev.c | 197 ++++++++++++++++ clutter/evdev/clutter-input-device-evdev.h | 66 ++++++ configure.ac | 12 +- 12 files changed, 1034 insertions(+), 13 deletions(-) commit 9f5f62b4b53da3354b35789a8c04b83272252b3b Author: Damien Lespiau Date: Thu Nov 4 10:09:28 2010 -0400 evdev: Fix the unicode_value for new ClutterEvents Looking at what the X11 backend does: the unicode value is being translated to the unicode codepoint of the symbol if possible. Let's do the same then. Before that, key events for say KEY_Right (0xff53) had the unicode_value set to the keysym, which meant "This key event is actually printable and is Unicode codepoint is 0xff53", which lead to interesting results. clutter/evdev/clutter-xkb-utils.c | 71 ++++++++++++++++++++++++++++++++++++- 1 files changed, 70 insertions(+), 1 deletions(-) commit ef5256ec25e6261947e107256ce36ead42fcab88 Author: Damien Lespiau Date: Thu Nov 4 06:59:22 2010 -0400 evdev: Factor out the xkbcommon code from the wayland client backend The wayland client code has support for translating raw linux input device key codes coming from the wayland compositor into key symbols thanks to libxkbcommon. A backend directly listening to linux input devices (called evdev, just like the Xorg one) could use exactly the same code for the translation, so abstract it a bit in a separate file. clutter/Makefile.am | 11 ++- clutter/evdev/clutter-xkb-utils.c | 111 ++++++++++++++++++++++++ clutter/evdev/clutter-xkb-utils.h | 41 +++++++++ clutter/wayland/clutter-input-device-wayland.c | 46 ++-------- 4 files changed, 169 insertions(+), 40 deletions(-) commit b5a9de1a23a58c1d52f5a394696a8532dc42befe Author: Emmanuele Bassi Date: Tue Nov 30 10:35:17 2010 +0000 moduleset: Add gstreamer and gst-plugins-good build/clutter.modules | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) commit 1d153fa860850e4d24df16a64b499a5690fbfeab Author: Emmanuele Bassi Date: Tue Nov 30 10:34:59 2010 +0000 moduleset: Disable stand-alone Cally build/clutter.modules | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 085962a361d1150f3f59a1e4925e89814a86c931 Author: Emmanuele Bassi Date: Tue Nov 30 10:34:38 2010 +0000 moduleset: Switch gtk2 to the 2.24 branch build/clutter.modules | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 5e085e8d7f26e5191d67657ae4eacf3dab2e9906 Author: Emmanuele Bassi Date: Mon Nov 29 14:21:21 2010 +0000 Post-release version bump to 1.5.9 configure.ac | 2 +- po/clutter-1.0.pot | 408 ++++++++++++++++++++++++++-------------------------- po/de.po | 406 ++++++++++++++++++++++++++-------------------------- po/fr.po | 406 ++++++++++++++++++++++++++-------------------------- po/id.po | 406 ++++++++++++++++++++++++++-------------------------- po/it.po | 406 ++++++++++++++++++++++++++-------------------------- po/pl.po | 406 ++++++++++++++++++++++++++-------------------------- po/zh_CN.po | 406 ++++++++++++++++++++++++++-------------------------- 8 files changed, 1423 insertions(+), 1423 deletions(-)