commit 8cebec6bdcefe84c2c663fce380c24f5ac88cfa4 Author: Emmanuele Bassi Date: Mon Nov 29 14:09:09 2010 +0000 Release Clutter 1.5.8 (snapshot) configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit d046df8e6f1c1dfdf4144b1cbe2494d71ac3adc4 Author: Neil Roberts Date: Mon Nov 29 10:55:49 2010 +0000 cogl-shader.c: Don't add the common boilerplate twice In 6246c2bd6 I moved the code to add the boilerplate to a shader to a separate function and also made it so that the common boilerplate is added as a separate string to glShaderSource. However I didn't notice that the #define for the vertex and fragment shaders already includes the common part so it was being added twice. Mesa seems to accept this but it was causing problems on the IMG driver because COGL_VERSION was defined twice. clutter/cogl/cogl/cogl-shader.c | 8 ++------ 1 files changed, 2 insertions(+), 6 deletions(-) commit ae300dc8e08d28dad821f7c843fe2b01783efb5a Author: Neil Roberts Date: Mon Nov 29 10:51:40 2010 +0000 cogl-pipeline-glsl: Use char* instead of GLchar* It appears that some GLES2 headers don't define GLchar and it works just as well to use a regular char. clutter/cogl/cogl/cogl-pipeline-glsl.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 08308fd3978dff227b8e0c8e1388a590bde29f25 Author: Emmanuele Bassi Date: Mon Nov 29 12:23:14 2010 +0000 docs: Close a tag clutter/clutter-color.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 556c938b4d6d3cb4743e00d95c0347e483d847a2 Author: Emmanuele Bassi Date: Mon Nov 29 12:01:20 2010 +0000 Update NEWS NEWS | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit 038fe708f86efda95237915f8bce7fd1afb3a262 Merge: 67143bd c9d0f8b Author: Emmanuele Bassi Date: Mon Nov 29 11:56:36 2010 +0000 Merge remote branch 'elliot/cookbook-animations-scaling' * elliot/cookbook-animations-scaling: cookbook: Add recipe for animated scaling of an actor cookbook: Add example of scaling a texture cookbook: Added "animated scaling" recipe skeleton cookbook: Added animated scaling example commit 67143bd846c2b39ce94779d7ab2b5bd48e58d1cd Author: Chris Lord Date: Thu Nov 25 15:11:42 2010 +0000 text: Optimise get_preferred_height for single-line-mode Don't calculate an extra layout in clutter_text_get_preferred_height for single-line strings, when it's unnecessary. There's no need to set the width of a layout when in single-line mode, as wrapping will not happen. clutter/clutter-text.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) commit e1b58d9407845a249bc59cd270be50d43d34126b Author: Emmanuele Bassi Date: Mon Nov 29 11:19:16 2010 +0000 Update NEWS file NEWS | 32 ++++++++++++++++++++++++++++++-- 1 files changed, 30 insertions(+), 2 deletions(-) commit 850a35f069368b645ceb8e027b6b27863dba308b Author: Emmanuele Bassi Date: Mon Nov 29 10:59:16 2010 +0000 shader-effect: Remove unused function The reset_uniforms() internal function is not used any more because the CoglProgram cannot be reset post-creation - hence the uniforms cannot change. clutter/clutter-shader-effect.c | 50 ++++++++++++-------------------------- 1 files changed, 16 insertions(+), 34 deletions(-) commit 08087c965bf312513f98a53bf3220e92c372d131 Author: Neil Roberts Date: Sat Nov 27 16:26:20 2010 +0000 ClutterShaderEffect: Don't throw away the program for a new actor Previously when the shader effect is used with a new actor it would end up throwing away the old program. I don't think this is neccessary and it means if you use an effect to temporarily bind to an actor then it will recompile the shader whenever it is applied. http://bugzilla.clutter-project.org/show_bug.cgi?id=2454 clutter/clutter-shader-effect.c | 42 +++++++++++++++++--------------------- 1 files changed, 19 insertions(+), 23 deletions(-) commit 2dc9e0dc2941a1f805e71a656585037ced0ed721 Author: Neil Roberts Date: Sat Nov 27 16:27:59 2010 +0000 ClutterOffscreenEffect: Don't throw away the material for a new actor When a new actor is set for ClutterOffscreenEffect it would throw away the old material. I don't think there is anything specifically tied to the actor in the material so throwing away just loses Cogl's cached state about the material. This ends up relinking the shader every time a new actor is set in ClutterShaderEffect. http://bugzilla.clutter-project.org/show_bug.cgi?id=2454 clutter/clutter-offscreen-effect.c | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-) commit b63e9ee8f8717dbf73e15df1e9a9d115dcb45504 Author: Tomeu Vizoso Date: Sat Nov 27 16:07:01 2010 +0100 Don't bail out from creating the FBO if we don't have it yet. This happens when reattaching an effect to another actor. http://bugzilla.clutter-project.org/show_bug.cgi?id=2453 clutter/clutter-offscreen-effect.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 47d63c1c550776de52841f3d5508f20b48f5d722 Author: Tomeu Vizoso Date: Sat Nov 27 16:04:50 2010 +0100 Set the signal handler to 0 when disconnecting it. Otherwise we'll try to disconnect it again later. http://bugzilla.clutter-project.org/show_bug.cgi?id=2452 clutter/clutter-actor-meta.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) commit 215d87abe9ccfe98cbf0e5e73f5c8edf4106a7ce Author: Emmanuele Bassi Date: Mon Nov 29 08:55:13 2010 +0000 shader-effect: Zero out ShaderUniform Do not use the compiler to zero the first field of the GValue member, since it's apparently non-portable. As we're allocating memory anyway we can let the slice allocator do the zero-ing for us. Mentioned in: http://bugzilla.clutter-project.org/show_bug.cgi?id=2455 clutter/clutter-shader-effect.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) commit 21e47d4280e27393d7510e232a1b1ee19b426032 Author: Neil Roberts Date: Fri Nov 26 15:23:15 2010 +0000 cogl_pipeline_equal: Fix the comparison for layer texture equality Before commit 49898d43 CoglPipeline would compare whether a pipeline layer's texture is equal by fetching the underlying GL handle. I changed that so that it would only compare the CoglHandles because that commit removes the GL handle texture overrides and sliced textures instead log the underlying primitive texture. However I forgot that the primitives don't always use _cogl_texture_foreach_sub_texture_in_region when the quad fits within the single texture so it won't use a texture override. This meant that atlas textures and sub textures get logged with the atlas handle so the comparison still needs to be done using the GL handles. It might be nice to add a CoglTexture virtual to get the underlying primitive texture instead to avoid having the pipeline poke around with GL handles. clutter/cogl/cogl/cogl-pipeline.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) commit b424bd75124c4dc34510b056376a7f04f4620e53 Author: Robert Bragg Date: Mon Nov 1 13:53:16 2010 +0000 tests: Adds test-cogl-perf micro benchmark This is mostly a stub, starting point for a one-stop Cogl micro-benchmarking tool. The first test it adds is one that tries to hammer the Cogl journal, but no doubt there are lots of other things we should be regularly testing. Currently the aim is that the tool will be able to also generate reports which we can collect to keep track of performance changes over time. tests/micro-bench/Makefile.am | 4 +- tests/micro-bench/test-cogl-perf.c | 161 ++++++++++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 1 deletions(-) commit 58a467c9270ec325431fc963aa8a862ae69fcabf Author: Robert Bragg Date: Thu Nov 25 20:12:36 2010 +0000 primitives: avoid leaking polygon override materials If we have to make override changes to the user's source material to handle cogl_polygon then we need to make sure we unref the override material at the end. clutter/cogl/cogl/cogl-primitives.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 01b93537ab9743dfd6aa2f0c3d4499420ee860cd Author: Alexandre Quessy Date: Thu Nov 25 13:13:51 2010 -0500 Fixed "the the" repetitions in some doc strings http://bugzilla.clutter-project.org/show_bug.cgi?id=2450 clutter/clutter-actor.c | 6 +++--- clutter/clutter-stage.c | 2 +- clutter/clutter-text.c | 2 +- clutter/cogl/cogl/cogl-fixed.c | 2 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +- doc/cookbook/animations.xml | 2 +- doc/cookbook/events.xml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) commit 3729e47ef68dd0f4257563985d784b687acce5d2 Author: Robert Bragg Date: Thu Nov 25 13:19:59 2010 +0000 pipeline: Simplify layer change notifications to backend Previously we used the layers->backend_priv[] members to determine when to notify backends about layer changes, but it entirely up to the backends if they want to associate private state with layers, even though they may still be interested in layer change notifications (they may associate layer related state with the owner pipeline). We now make the observation that in _cogl_pipeline_backend_layer_change_notify we should be able to assume there can only be one backend currently associated with the layer because we wouldn't allow changes to a layer with multiple dependants. This means we can determine the backend to notify by looking at the owner pipeline instead. clutter/cogl/cogl/cogl-pipeline.c | 22 ++++++++++------------ 1 files changed, 10 insertions(+), 12 deletions(-) commit 6ddb8397110f6e6998e0262e5d3dd604cd93d670 Author: Neil Roberts Date: Thu Nov 25 10:56:50 2010 +0000 clutter-offscreen-effect: Don't recreate the material when FBO changes Previously whenever the size of the FBO changes it would create a new material and attach the texture to it. This is not good for Cogl because it throws away any cached state for the material. In test-rotate the size of the FBO changes constantly so it effectively uses a new material every paint. For shader effects this also ends up relinking the shader every paint because the linked programs are part of the material state. clutter/clutter-offscreen-effect.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-) commit 1b2a748d6c180454f0501859b4b02dc8c94d75e0 Author: Neil Roberts Date: Wed Nov 24 18:37:47 2010 +0000 cogl-context: Get rid of the features_cached member The features_cached member of CoglContext is intended to mark when we've calculated the features so that we know if they are ready in cogl_get_features. However we always intialize the features while creating the context so features_cached will never be FALSE so it's not useful. We also had the odd behaviour that the COGL_DEBUG feature overrides were only applied in the first call to cogl_get_features. However there are other functions that use the feature flags such as cogl_features_available that don't use this function so in some cases the feature flags will be interpreted before the overrides are applied. This patch makes it always initialize the features and apply the overrides immediately while creating the context. This fixes a problem with COGL_DEBUG=disable-arbfp where the first material flushed is done before any call to cogl_get_features so it may still use ARBfp. clutter/cogl/cogl/cogl-context.c | 24 +++++++++++++++++++++++- clutter/cogl/cogl/cogl-context.h | 1 - clutter/cogl/cogl/cogl.c | 24 ------------------------ clutter/cogl/cogl/driver/gl/cogl-gl.c | 1 - clutter/cogl/cogl/driver/gles/cogl-gles.c | 1 - 5 files changed, 23 insertions(+), 28 deletions(-) commit b9176e8672fa56cf627b3d47e06598338d32e5ea Author: Neil Roberts Date: Wed Nov 24 17:42:34 2010 +0000 Lower the priority of the GLSL pipeline backend Now that the GLSL backend can generate code it can effectively handle any pipeline unless there is an ARBfp program. However with current open source GL drivers the ARBfp compiler is more stable so it makes sense to prefer ARBfp when possible. The GLSL backend is also lower than the fixed function backend on the assumption that any driver that supports GLSL will also support ARBfp so it's quicker to try the fixed function backend next. clutter/cogl/cogl/cogl-pipeline-private.h | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) commit d19f6212ce84894a79554f183d001deb25464721 Author: Neil Roberts Date: Wed Nov 24 17:29:00 2010 +0000 Add a COGL_DEBUG option to disable the fixed function pipeline backend This adds COGL_DEBUG=disable-fixed to disable the fixed function pipeline backend. This is needed to test the GLSL shader generation because otherwise the fixed function backend would always override it. clutter/cogl/cogl/cogl-debug-options.h | 5 +++++ clutter/cogl/cogl/cogl-debug.c | 1 + clutter/cogl/cogl/cogl-debug.h | 15 ++++++++------- clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +++ 4 files changed, 17 insertions(+), 7 deletions(-) commit 577d65c2c964aba9046aa07ef76aaf1a99c32b70 Author: Neil Roberts Date: Wed Nov 24 17:33:07 2010 +0000 Don't use the fixed function backend if there is a user program The fixed function pipeline backend can't handle a user program so it should bail out if one is given. clutter/cogl/cogl/cogl-pipeline-fixed.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) commit aa498072e075cc1ef4a85a0d14fb7b78ba749e3a Author: Neil Roberts Date: Wed Nov 24 17:37:55 2010 +0000 Add a warning message when no usable Cogl pipeline backend is found If none of the pipeline backends can handle the state then it now displays a warning so the developer has a chance to work out what's going on. clutter/cogl/cogl/cogl-pipeline-opengl.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 289e880efd4b7e2434619cbbe18ae444d4c52fd8 Author: Neil Roberts Date: Wed Nov 24 15:30:56 2010 +0000 cogl-pipeline-glsl: Don't use gl_PointCoord on OpenGL We don't want to use gl_PointCoord to implement point sprites on big GL because in that case we already use glTexEnv(GL_COORD_REPLACE) to replace the texture coords with the point sprite coords. Although GL also supports the gl_PointCoord variable, it requires GLSL 1.2 which would mean we would have to declare the GLSL version and check for it. We continue to use gl_PointCoord for GLES2 because it has no glTexEnv function. clutter/cogl/cogl/cogl-pipeline-glsl.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) commit 9c32d07453fbc06c44e8c0fca6ef6e85f23ebf0b Author: Neil Roberts Date: Sat Jul 17 14:11:02 2010 +0100 Add a conformance test that uses a vertex shader with no frag shader This creates a material which users a layer to override the color of the rectangle. A simple vertex shader is then created which just emulates the fixed function pipeline. No fragment shader is added. This demonstrates a bug where the layer state is getting ignored when a vertex shader is in use. http://bugzilla.clutter-project.org/show_bug.cgi?id=2221 tests/conform/Makefile.am | 1 + tests/conform/test-cogl-just-vertex-shader.c | 135 ++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 2 + 3 files changed, 138 insertions(+), 0 deletions(-) commit a50010fb408294dce2d1205fe3a70aeead39c192 Author: Neil Roberts Date: Tue Nov 23 14:47:17 2010 +0000 Remove the fragment shader generation from the GLES2 wrapper The GLES2 wrapper no longer needs to generate any fragment shader state because the GLSL pipeline backend will always give the wrapper a custom fragment shader. This simplifies a lot of the state comparison done by the wrapper. The fog generation is also removed even though it's actually part of the vertex shader because only the fixed function pipeline backend actually calls the fog functions so it would be disabled when using any of the other backends anyway. We can fix this when the two shader backends also start generating vertex shaders. clutter/cogl/cogl/Makefile.am | 5 +- clutter/cogl/cogl/cogl-pipeline-opengl.c | 8 + .../driver/gles/cogl-fixed-fragment-shader.glsl | 64 -- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 737 +------------------- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 69 +-- 5 files changed, 22 insertions(+), 861 deletions(-) commit 987e3c32dc733b5f6942a10651750080730272e6 Author: Neil Roberts Date: Tue Nov 23 14:51:49 2010 +0000 Disable the fixed function backend for GLES2 GLES2 doesn't really support fixed function so if we disable it we can remove the fixed function wrappers from the GLES2 Cogl backend. clutter/cogl/cogl/cogl-pipeline-fixed.c | 11 ----------- clutter/cogl/cogl/cogl-pipeline-private.h | 4 +--- clutter/cogl/cogl/cogl-pipeline.c | 2 ++ 3 files changed, 3 insertions(+), 14 deletions(-) commit 3504491b46246ffe912939defa17d013f9a27b46 Author: Neil Roberts Date: Mon Nov 22 18:33:49 2010 +0000 cogl-pipeline-glsl: Generate the alpha test snippet under GLES2 GLES2 has no glAlphaFunc function so we need to simulate the behaviour in the fragment shader. The alpha test function is simulated with an if-statement and a discard statement. The reference value is stored as a uniform. clutter/cogl/cogl/cogl-pipeline-glsl.c | 144 +++++++++++++++++++++++++++++++- 1 files changed, 140 insertions(+), 4 deletions(-) commit c3582b77dfc553528e49a8f3a1373a787cf64648 Author: Neil Roberts Date: Mon Nov 22 18:32:43 2010 +0000 cogl-pipeline: Add getters for the alpha test state This adds two public functions: cogl_pipeline_get_alpha_test_function and cogl_pipeline_get_alpha_test_reference. clutter/cogl/cogl/cogl-pipeline.c | 25 +++++++++++++++++++++++++ clutter/cogl/cogl/cogl-pipeline.h | 22 ++++++++++++++++++++++ 2 files changed, 47 insertions(+), 0 deletions(-) commit 959846326fa138d9611212f0e1c6626e187984b8 Author: Neil Roberts Date: Mon Nov 22 18:29:50 2010 +0000 cogl: Separate out state flags for the alpha test func and ref Previously the flag to mark the differences for the alpha test function and reference value were conflated into one. However this is awkward when generating shader code to simulate the alpha testing for GLES 2 because in that case changing the function would need a different program but changing the reference value just requires updating a uniform. This patch makes the function and reference have their own state flags. clutter/cogl/cogl/cogl-pipeline-opengl.c | 3 +- clutter/cogl/cogl/cogl-pipeline-private.h | 25 ++++--- clutter/cogl/cogl/cogl-pipeline.c | 110 ++++++++++++++++++++++------ 3 files changed, 102 insertions(+), 36 deletions(-) commit 124441aade679834ce7e34f38f9e10bd829aa76b Author: Neil Roberts Date: Mon Nov 22 16:44:11 2010 +0000 Remove the disabling of layer constants for GLES2 The GLSL shader generation supports layer combine constants so there's no need to disable it for GLES2. It looks like there was also code for it in the GLES2 wrapper so I'm not sure why it was disabled in the first place. clutter/cogl/cogl/cogl-blend-string.c | 10 ---------- 1 files changed, 0 insertions(+), 10 deletions(-) commit 3fa73735c02e2e6471774f2a4253317e424564ee Author: Neil Roberts Date: Fri Nov 19 10:44:27 2010 +0000 Generate GLSL in the CoglPipeline GLSL backend The GLSL pipeline backend can now generate code to represent the pipeline state in a similar way to the ARBfp backend. Most of the code for this is taken from the GLES 2 wrapper. clutter/cogl/cogl/cogl-context.c | 1 + clutter/cogl/cogl/cogl-context.h | 1 + clutter/cogl/cogl/cogl-pipeline-glsl.c | 772 +++++++++++++++++++++++++++++--- 3 files changed, 702 insertions(+), 72 deletions(-) commit 6246c2bd6cc5174529f5a6c5efb7daf44c131b6b Author: Neil Roberts Date: Mon Nov 22 12:15:35 2010 +0000 Move the cogl shader boilerplate setting code to a separate function _cogl_shader_compile_real had some code to create a set of strings to combine the boilerplate code with a shader before calling glShaderSource. This has now been moved to its own internal function so that it could be used from the GLSL pipeline backend as well. clutter/cogl/cogl/cogl-shader-private.h | 8 +++ clutter/cogl/cogl/cogl-shader.c | 96 ++++++++++++++++++++++++------- 2 files changed, 82 insertions(+), 22 deletions(-) commit 339fc68bcbc15dbb212684be5cb4155cdaf4c836 Author: Neil Roberts Date: Fri Nov 19 15:42:26 2010 +0000 Move need_texture_combine_separate to cogl-pipeline need_texture_combine_separate is moved to cogl-pipeline.c and renamed to _cogl_pipeline_need_texture_combine_separate. The function is needed by both the ARBfp and GLSL codegen backends so it makes sense to share it. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 75 +---------------------------- clutter/cogl/cogl/cogl-pipeline-private.h | 4 ++ clutter/cogl/cogl/cogl-pipeline.c | 74 ++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 74 deletions(-) commit 9bbb088a2ad3e7758b65f83c181e0603350acfc1 Author: Neil Roberts Date: Fri Nov 19 10:43:52 2010 +0000 Move find_arbfp_authority to cogl-pipeline.c The code for finding the arbfp authority for a pipeline should be the same as finding the GLSL authority. So that the code can be shared the function has been moved to cogl-pipeline.c and renamed to _cogl_pipeline_find_codegen_authority. clutter/cogl/cogl/cogl-pipeline-arbfp.c | 145 +---------------------------- clutter/cogl/cogl/cogl-pipeline-private.h | 4 + clutter/cogl/cogl/cogl-pipeline.c | 142 ++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+), 144 deletions(-) commit e57a132f940d1b0f1c66720096c446e4f04bf4dc Author: Neil Roberts Date: Mon Nov 1 17:25:26 2010 +0000 cogl: Rename arbfp_source_buffer to fragment_source_buffer Only one of the material backends can be generating code at the same time so it seems to make sense to share the same source buffer between arbfp and glsl. The new name is fragment_source_buffer in case we later want to create a new buffer for the vertex shader. That probably couldn't share the same buffer because it will likely need to be generated at the same time. clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-context.h | 2 +- clutter/cogl/cogl/cogl-pipeline-arbfp.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit 9b5c90f441938c8044eecaf9c348c85708d45ce3 Author: Evan Nemerson Date: Fri Nov 19 23:27:46 2010 -0800 cogl: Include exported pacakges information in GIR http://bugzilla.clutter-project.org/show_bug.cgi?id=2438 clutter/cogl/cogl/Makefile.am | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit f687ec6a226fa3914c6cf81fbad6b43786a2e1dc Author: Chris Lord Date: Wed Nov 24 16:34:21 2010 +0000 docs: Update documentation to reflect automatic map/unmap/etc. Update the ClutterActor documentation to reflect the new automatic map/unmap/realize/unrealize implementations. clutter/clutter-actor.h | 6 ++++-- doc/reference/clutter/subclassing-ClutterActor.xml | 10 +--------- 2 files changed, 5 insertions(+), 11 deletions(-) commit 186d5698ceb32e3b99d52390e29c5609fa3a8ae2 Author: Chris Lord Date: Tue Oct 26 17:09:24 2010 +0100 actor: Use the internal child list for map/unmap Use the internal child list for the default map/unmap vfuncs. This removes the requirement for non-container composite actors to implement their own map/unmap functions. clutter/clutter-actor.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) commit 4752cc38b2000ba643fc9451769ebb2da9873280 Author: Robert Bragg Date: Wed Oct 20 18:26:01 2010 +0100 actor: re-work unrealize to work with composite actors Unrealizing an actor is a recursive process that needs to traverse the children of an actor to ensure they are also unrealized. This maintains the invariant that if any given actor is marked as unrealized then you know that all its children have also been unrealized. The previous implementation would use the container interface's foreach_with_internals vfunc to explicitly traverse the children of container actors but this didn't consider composite actors that aren't containers. Since clutter-actor now maintains an explicit list of children we can also handle composite actors that aren't containers using _clutter_actor_traverse. clutter/clutter-actor.c | 57 +++++++++++++++++++++++++++------------------- 1 files changed, 33 insertions(+), 24 deletions(-) commit 4bda67473283b9b10a21b72df01d54447c7d557f Author: Robert Bragg Date: Wed Oct 20 15:40:30 2010 +0100 actor: make _clutter_actor_traverse more flexible This makes it possible to choose the traversal order; either depth first or breadth first and when visiting actors in a depth first order there is now a callback called before children are traversed and one called after. Some tasks such as unrealizing actors need to explicitly control the traversal order to maintain the invariable that all children of an actor are unrealized before we actually mark the parent as unrealized. The callbacks are now passed the relative depth in the graph of the actor being visited and instead of only being able to return a boolean to bail out of further traversal it can now do one of: continue, skip_children or break. To implement something like unrealize it's desirable to skip children that you find have already been unrealized. clutter/clutter-actor-private.h | 47 ++++++++++++- clutter/clutter-actor.c | 146 +++++++++++++++++++++++++++++++------- 2 files changed, 163 insertions(+), 30 deletions(-) commit 9df6f0c52445ef9c3c5343c1f0aee63c67bffe06 Author: Owen W. Taylor Date: Tue Oct 5 13:05:45 2010 -0400 ClutterX11TexturePixmap: Optimize ConfigureEvent handling ClutterX11TexturePixmap watches for configure events to tell when it needs to name a new pixmap for the window. However, ConfigureEvents occur on moves in addition to resizes, and doing round trips and naming new pixmaps every time a window is moved is a real performance killer. Add clutter_x11_texture_pixmap_sync_window_internal() that takes the size/position of the window as arguments rather than always calling XGetWindowAttributes. This allows us to bypass all work other than notifying the window-x/window-y properties when we get a ConfigurEvent for a move. The last received width/height is saved to allow us to also omit XGetWindowAttributes on MapNotify events. The public clutter_x11_texture_pixmap_sync_window() becomes a bit less efficient since we no longer combine the roundtrips for XGetWindowAttributes() and XCompositeNameWindowPixmap(), but it appears to have no callers in current publicly available code. Several FIXME's are added for areas where there are still weird things going on in the code or improvements could be made. http://bugzilla.clutter-project.org/show_bug.cgi?id=2356 clutter/x11/clutter-x11-texture-pixmap.c | 189 +++++++++++++++++++++--------- 1 files changed, 132 insertions(+), 57 deletions(-) commit 1fdd82fcf1234a9b6c6fbcff05a62ce8f1eefcab Author: Neil Roberts Date: Wed Nov 17 17:31:23 2010 +0000 test-cogl-texture-get-set-data: Test the alpha component Previously the alpha component of the test texture data was always set to 255 and the data was read back as RGB so that the alpha component is ignored. Now the alpha component is set to a generated value and the data is read back a second time as RGBA to verify that Cogl is not doing any premult conversions when the internal texture and target data is the same. http://bugzilla.clutter-project.org/show_bug.cgi?id=2414 tests/conform/test-cogl-texture-get-set-data.c | 39 ++++++++++++++++++++++-- 1 files changed, 36 insertions(+), 3 deletions(-) commit 8b4034cd06035e49bbe709daf2977d828cb0f263 Author: Owen W. Taylor Date: Fri Nov 12 11:02:13 2010 -0500 Use FBOs and use cogl_read_pixels() to efficiently read partial textures * cogl_texture_get_data() is converted to use _cogl_texture_foreach_sub_texture_in_region() to iterate through the underlying textures. * When we need to read only a portion of the underlying texture, we set up a FBO and use _cogl_read_pixels() to read the portion we need. This is enormously more efficient for reading a small portion of a large atlas texture. * The CoglAtlasTexture, CoglSubTexture, and CoglTexture2dSliced implementation of get_texture() are removed. http://bugzilla.clutter-project.org/show_bug.cgi?id=2414 clutter/cogl/cogl/cogl-atlas-texture.c | 17 +--- clutter/cogl/cogl/cogl-sub-texture.c | 70 +---------- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 149 +--------------------- clutter/cogl/cogl/cogl-texture.c | 191 ++++++++++++++++++++++++++- 4 files changed, 186 insertions(+), 241 deletions(-) commit 519b6fe6f259762f05a638716691f626b3b54f12 Author: Neil Roberts Date: Wed Nov 17 17:57:17 2010 +0000 cogl-framebuffer: Try to track format of the framebuffer Previously in cogl_read_pixels we assume the format of the framebuffer is always premultiplied because that is the most likely format with the default Cogl blend mode. However when the framebuffer is bound to a texture we should be able to make a better guess at the format because we know the texture keeps track of the premult status. This patch adds an internal format member to CoglFramebuffer. For onscreen framebuffers we still assume it is RGBA_8888_PRE but for offscreen to textures we copy the texture format. cogl_read_pixels uses this to determine whether the data returned by glReadPixels will be premultiplied. http://bugzilla.clutter-project.org/show_bug.cgi?id=2414 clutter/cogl/cogl/cogl-framebuffer-private.h | 3 +++ clutter/cogl/cogl/cogl-framebuffer.c | 15 +++++++++++++++ clutter/cogl/cogl/cogl.c | 22 ++++++++++------------ 3 files changed, 28 insertions(+), 12 deletions(-) commit 08e1d7f57438fc563253906de735412329366b45 Author: Neil Roberts Date: Wed Nov 17 17:45:27 2010 +0000 cogl_read_pixels: Fix the format used in GLES2 When converting the data in cogl_read_pixels it was using bmp_format instead of the format passed in to the function. bmp_format is the same as the passed in format except that it always has the premult bit set. Therefore the conversion would not handle premultiply correctly. http://bugzilla.clutter-project.org/show_bug.cgi?id=2414 clutter/cogl/cogl/cogl.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 2bd054f886a1ecd18837e6be9e48b379b8628754 Author: Neil Roberts Date: Wed Nov 17 15:38:20 2010 +0000 Add an internal _cogl_read_pixels_with_rowstride This is the same as _cogl_read_pixels except that it takes a rowstride parameter for the destination buffer. Under OpenGL setting the rowstride this will end up calling GL_ROW_LENGTH so that the buffer region can be directly written to. Under GLES GL_ROW_LENGTH is not supported so it will use an intermediate buffer as it does if the format is not GL_RGBA. cogl_read_pixels now just calls the full version of the function with the rowstride set to width*bpp. http://bugzilla.clutter-project.org/show_bug.cgi?id=2414 clutter/cogl/cogl/cogl-private.h | 10 +++++++++ clutter/cogl/cogl/cogl.c | 39 +++++++++++++++++++++++++++---------- 2 files changed, 38 insertions(+), 11 deletions(-) commit b4016f64fa9c82266e4827fb06826319a418d9d9 Author: Neil Roberts Date: Thu Nov 11 15:28:44 2010 +0000 Add an internal _cogl_offscreen_new_to_texture_full function This function is the same as cogl_offscreen_new_to_texture but it takes a level parameter and a set of flags so that FBOs can be used to render to higher mipmap levels and to disable the depth and stencil buffers. cogl_offscreen_new_to_texture now just calls the new function with the level set to zero. This function could be useful in a few places in Cogl where we want to use FBOs as an implementation detail such as when copying between textures. http://bugzilla.clutter-project.org/show_bug.cgi?id=2414 clutter/cogl/cogl/cogl-framebuffer-private.h | 24 ++++++ clutter/cogl/cogl/cogl-framebuffer.c | 100 +++++++++++++++++++------ 2 files changed, 100 insertions(+), 24 deletions(-) commit d52bd995a6a5012fc363b607a9ac79b2748087db Author: Owen W. Taylor Date: Fri Nov 12 10:58:59 2010 -0500 Test slicing when getting data in both directions http://bugzilla.clutter-project.org/show_bug.cgi?id=2414 tests/conform/test-cogl-texture-get-set-data.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit a53b9febcdd60c322933e41e4ded6247da1f8bef Author: Robert Bragg Date: Tue Nov 23 16:48:59 2010 +0000 stage: if backend _ignoring_redraw_clips queue full redraw In clutter_stage_real_queue_redraw we were checking to see if the backend will ignore any subsequent redraw_clip so we can avoid the cost of projecting the paint-volume of an actor into stage coordinates, but we weren't ensuring that a full redraw would be queued instead we just bailed out immediately. This makes sure to call _clutter_stage_window_add_redraw_clip (stage_window, NULL) in this case to make sure the backend will do an un-clipped redraw. clutter/clutter-stage.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) commit 5f181f7265fe043025583e3a7747e9ce55bd65ba Author: Robert Bragg Date: Tue Nov 23 16:05:44 2010 +0000 stage-window: tweak has_redraw_clips semantics This tweaks the semantics of the has_redraw_clips vfunc so we can assume that at the start of a new frame there is an implied, initial, redraw_clip that clips everything (i.e. nothing would be redrawn) so in that case we would expect the has_redraw_clips vfunc to return True at the start of a new frame for backends that support clipping. Previously there was an ambiguity when this function returned False since it could either mean a full screen redraw had been queued or it could mean that the clip state wasn't yet initialized for that frame. This would result in _clutter_stage_has_full_redraw_queued() returning True at the start of a new frame even before any actors have been updated, which in turn meant we would incorrectly ignore queue_redraw requests for actors, believing them to be redundant. clutter/clutter-stage-window.c | 16 ++++++++++++++++ clutter/egl/clutter-stage-egl.c | 19 +++++++++++++------ clutter/glx/clutter-stage-glx.c | 21 ++++++++++++++------- 3 files changed, 43 insertions(+), 13 deletions(-) commit c9d0f8b26e8ca6e67b52a1cc2a54d247919d09a9 Author: Elliot Smith Date: Wed Nov 24 12:44:35 2010 +0000 cookbook: Add recipe for animated scaling of an actor Recipe explains how to animate scaling a single actor. Also covers scaling vs. resizing, scale center, and scaling within layouts and containers. The first example shows how animations around each scale gravity look, as well as tracking the transformed position and size of the actor and displaying those. The second example is a simple image viewer with zoom in/out using scaling. doc/cookbook/animations.xml | 305 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 257 insertions(+), 48 deletions(-) commit ee9a4d02bba8bb0cf6ea73c5cdcce49fb29f786e Author: Elliot Smith Date: Wed Nov 24 12:22:12 2010 +0000 cookbook: Add example of scaling a texture Added a simple application for scaling a texture while keeping the mouse pointer over the same coordinates on its surface. doc/cookbook/examples/Makefile.am | 2 + doc/cookbook/examples/animations-scaling-zoom.c | 155 +++++++++++++++++++++++ 2 files changed, 157 insertions(+), 0 deletions(-) commit c8f112876e69ca2aeb9eb202c504bcf24ecab921 Author: Elliot Smith Date: Fri Nov 19 14:52:44 2010 +0000 cookbook: Added "animated scaling" recipe skeleton doc/cookbook/animations.xml | 132 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 132 insertions(+), 0 deletions(-) commit b47b2f474910ead5b72eae88ebc53c2f667b93d7 Author: Elliot Smith Date: Fri Nov 19 14:29:39 2010 +0000 cookbook: Added animated scaling example Added an example showing scaling of an actor on each of the scaling gravity settings (NORTH_WEST, NORTH etc.), with a mark indicating the center being used. Displays the transformed size and position, updated on each paint of the actor. doc/cookbook/examples/Makefile.am | 2 + doc/cookbook/examples/animations-scaling.c | 183 ++++++++++++++++++++++++++++ 2 files changed, 185 insertions(+), 0 deletions(-) commit 446107f19d59ab95c918e566b5d8efdb8c0841c8 Author: Emmanuele Bassi Date: Wed Nov 24 12:02:38 2010 +0000 x11: Check for initialized context when enabling ARGB visuals Instead of using the backend singleton. This allows lazy initialization of Clutter. http://bugzilla.clutter-project.org/show_bug.cgi?id=2435 clutter/x11/clutter-backend-x11.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 6a552e27abfa2e0f0705ac935872e5393cdf1fdc Author: Tomeu Vizoso Date: Tue Nov 23 17:06:52 2010 +0100 Fix API docs for ClutterShaderEffects It can implement now both fragment and vertex shaders. http://bugzilla.clutter-project.org/show_bug.cgi?id=2442 clutter/clutter-shader-effect.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) commit 65d0ce607efe6cbc72e3f1f4518c8cf5d038ceee Author: Robert Bragg Date: Tue Nov 23 14:31:45 2010 +0000 stage: Report an unknown paint volume. Previously we were leaving it up to the default implementation of get_paint_volume in ClutterGroup to handle the stage by determining the bounding box of all contained children. This isn't the true bounding box of the stage though since the stage is responsible for clearing the entire framebuffer at the start of the frame. This adds a get_paint_volume implementation for ClutterStage which simply returns False which means Clutter has to assume it covers everything. clutter/clutter-stage.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) commit 52bf38c38c4b1d0c787cccf5e1ea2518a67ac1bf Author: Robert Bragg Date: Tue Nov 23 14:30:08 2010 +0000 x11: only queue clipped redraw for Expose When we handle Expose events we try and queue a clipped redraw of the stage, but for some reason we were also redundantly calling clutter_actor_queue_redraw for the stage which would negate the request to queue a clipped redraw. clutter/x11/clutter-event-x11.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) commit 1b7c895a2d041a36ad9279044e47542be8c0ba95 Author: Neil Roberts Date: Tue Nov 23 14:07:16 2010 +0000 cogl-texture-driver-gles: Fix image height for uploading 3D textures When uploading a 3D texture with an awkward rowstride, on GLES Cogl will copy the images to an intermediate buffer to pass to GL. However it was using the wrong height when copying the data so it would end up overflowing the buffer and crashing. .../cogl/driver/gles/cogl-texture-driver-gles.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 01c6ccfa1336216c74829386912806ca02e1ab12 Author: Emmanuele Bassi Date: Tue Nov 23 13:05:47 2010 +0000 pipeline: Use WrapModeInternal in the Layer struct Since we're using CoglPipelineWrapModeInternal in the internal API anyway, and the compiler complains loudly when comparing two enumeration types without casting, the PipelineLayer struct should store the wrap modes using the internal enumeration. clutter/cogl/cogl/cogl-pipeline-private.h | 44 ++++++++++++++-------------- 1 files changed, 22 insertions(+), 22 deletions(-) commit 8e6fac38fa73ec4c8a67835a1128e6b1a9889302 Author: Owen W. Taylor Date: Sat Nov 13 11:29:49 2010 -0500 Don't update or use last_paint_box when painting inside a clone The last_paint_box for an actor represents its "normal" position - we shouldn't update it or use it to cull drawing if we are painting a clone of the actor. Tracking whether we are painting a clone is done by adding _clutter_actor_push/pop_clone_paint() and a global "clone paint level". http://bugzilla.clutter-project.org/show_bug.cgi?id=2396 clutter/clutter-actor-private.h | 3 ++ clutter/clutter-actor.c | 42 ++++++++++++++++++++++++++++++++------ clutter/clutter-clone.c | 2 + 3 files changed, 40 insertions(+), 7 deletions(-) commit c68280556ee762c840bb8c73da16d505b6efe1ac Author: Robert Bragg Date: Mon Nov 22 15:51:15 2010 +0000 clip-stack: combine modelview-projection in set_clip_planes When using clip planes and we we have to project some vertices into screen coordinates we used to transform those by the modelview and then the projection matrix separately. Now we combine the modelview and projection matrix and then use that to transform the vertices in one step instead. clutter/cogl/cogl/cogl-clip-stack.c | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) commit 99f4832c28512e8b670b3681eeb228b4c8c08d14 Author: Robert Bragg Date: Mon Nov 22 12:44:36 2010 +0000 journal: remove possability of fallback layers When logging quads in the journal it used to be possible to specify a mask of fallback layers (layers where a default white texture should be used in-place of the corresponding texture in the current source pipeline). Since we now handle fallbacks for cogl_rectangle* primitives when validating the pipeline up-front before logging in the journal we no longer need the ability for the journal to apply fallbacks too. clutter/cogl/cogl/cogl-journal-private.h | 1 - clutter/cogl/cogl/cogl-journal.c | 6 ------ clutter/cogl/cogl/cogl-primitives.c | 2 -- 3 files changed, 0 insertions(+), 9 deletions(-) commit 305bb124b71b8fd531009f050cc83d89af1dfb93 Author: Robert Bragg Date: Fri Nov 12 16:08:25 2010 +0000 use cogl_matrix_transform_points in clutter When transforming a paint-volume or transforming allocation vertices we are transforming more than one point at a time so we can batch those together with cogl_matrix_transform_points instead of cogl_matrix_transform_point. Also in both of these cases we don't need to do a projective transform so using cogl_matrix_transform_points also lets us reduce the per-vertex computation. clutter/clutter-actor.c | 23 ++++++++--------------- clutter/clutter-paint-volume.c | 18 +++++++----------- 2 files changed, 15 insertions(+), 26 deletions(-) commit 2dba3e8cbf4d130701510768b5c766bb7ef070e8 Author: Robert Bragg Date: Fri Nov 12 13:35:24 2010 +0000 matrix: Adds experimental cogl_matrix_{transform,project}_points This add two new function that allows us to transform or project an array of points instead of only transforming one point at a time. Recent benchmarking has shown cogl_matrix_transform_point to be a bottleneck sometimes, so this should allow us to reduce the overhead when transforming lots of vertices at the same time, and also reduce the cost of 3 component, non-projective transforms. For now they are marked as experimental (you have to define COGL_ENABLE_EXPERIMENTAL_API) because there is some concern that it introduces some inconsistent naming. cogl_matrix_transform_point would have to be renamed cogl_matrix_project_point to be consistent, but that would be an API break. clutter/cogl/cogl/cogl-matrix.c | 346 ++++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-matrix.h | 123 ++++++++++++ doc/reference/cogl/cogl-sections.txt | 2 +- 3 files changed, 470 insertions(+), 1 deletions(-) commit 4307e65f937538a6251738a8450babce5ed9e8e6 Author: Robert Bragg Date: Thu Nov 11 16:28:45 2010 +0000 primitives: validate with _cogl_pipeline_foreach_layer Switch _cogl_rectangles_with_multitexture_coords to using _cogl_pipeline_foreach_layer to iterate the layers of a pipeline when validating instead of iterating the pipelines internal list, which is risky since any modifications to pipelines (even to an override pipeline derived from the original), could potentially corrupt the list as it is being iterated. clutter/cogl/cogl/cogl-pipeline-private.h | 3 +- clutter/cogl/cogl/cogl-pipeline.c | 6 +- clutter/cogl/cogl/cogl-primitives.c | 324 +++++++++++++++------------- 3 files changed, 180 insertions(+), 153 deletions(-) commit fb564cc2ca9579c3b444f5fd5c59ee4da040b7da Author: Robert Bragg Date: Thu Nov 11 15:08:38 2010 +0000 cogl: remove WrapModeOverrides from FlushOptions This removes the possibility to specify wrap mode overrides within a CoglPipelineFlushOptions struct since the right way to handle these overrides is by copying the user's material and making the changes to that copy before flushing. All primitives code has already switched away from using these wrap mode overrides so this patch just removes unused code and types. It also remove the wrap_mode_overrides argument for _cogl_journal_log_quad. clutter/cogl/cogl/cogl-journal-private.h | 2 - clutter/cogl/cogl/cogl-journal.c | 7 ---- clutter/cogl/cogl/cogl-pipeline-private.h | 32 +---------------- clutter/cogl/cogl/cogl-pipeline.c | 55 ----------------------------- clutter/cogl/cogl/cogl-primitives.c | 2 - 5 files changed, 1 insertions(+), 97 deletions(-) commit b8c9ee7e88ca6d1c2e9bc6380740dbf19096e71e Author: Emmanuele Bassi Date: Tue Nov 23 10:26:15 2010 +0000 x11: Ignore NULL settings Prevent a segfault when dealing with XSETTINGS_ACTION_DELETE. http://bugzilla.clutter-project.org/show_bug.cgi?id=2441 clutter/x11/clutter-backend-x11.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 1db8b8a70e9c198a04d7c3e3e6365513f5d6858d Author: Emmanuele Bassi Date: Mon Nov 22 17:01:17 2010 +0000 color: Do not shadow a variable Avoid a warning. clutter/clutter-color.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) commit 88049013702032895a9cb7ed60f661d58443130d Author: Emmanuele Bassi Date: Mon Nov 22 15:20:55 2010 +0000 Update NEWS NEWS | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) commit f4531aef4bea347f84b6ace38f6df7b34cdbe13c Author: Emmanuele Bassi Date: Mon Nov 22 15:07:01 2010 +0000 color: And finally, add hsla() support Missed it when reading the CSS spec. clutter/clutter-color.c | 35 ++++++++++++++++++++++++++++++++--- 1 files changed, 32 insertions(+), 3 deletions(-) commit e86db85cd2f0bbdbb65924a8f9ae2575e1212d14 Author: Emmanuele Bassi Date: Mon Nov 22 15:02:47 2010 +0000 color: Support the CSS hsl() notation Since we support the rgb() and rgba() notations we might as well also support the hsl() one. clutter/clutter-color.c | 70 ++++++++++++++++++++++++++++++++++++++++++++ tests/conform/test-color.c | 14 +++++++++ 2 files changed, 84 insertions(+), 0 deletions(-) commit ab6da347f61c0fb2249bbab9d03545121752d633 Author: Emmanuele Bassi Date: Mon Nov 22 14:22:56 2010 +0000 color: Support CSS color definitions The CSS Color Module 3, available at: http://www.w3.org/TR/css3-color/ allows defining colors as: rgb ( r, g, b ) rgba ( r, g, b, a) along with the usual hexadecimal and named notations. The r, g, and b channels can be: • integers between 0 and 255 • percentages, between 0% and 100% The alpha channel, if included using the rgba() modifier, can be a floating point value between 0.0 and 1.0. The ClutterColor parser should support this notation. clutter/clutter-color.c | 135 ++++++++++++++++++++++++++++++++++++++++++-- tests/conform/test-color.c | 54 ++++++++++++++++-- 2 files changed, 178 insertions(+), 11 deletions(-) commit ee0b8c439e0211e1af8ad55d17d2695e17879f0a Author: Emmanuele Bassi Date: Mon Nov 22 10:16:45 2010 +0000 docs: Update the release notes in the README Also updates the introductory blurb. README | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-) commit 3055cd1f4aec16a39e520da8d697d19c5beae711 Author: Emmanuele Bassi Date: Sat Nov 20 13:05:51 2010 +0000 docs: Include the Behaviour migration guide I forgot to add the xinclude directive in the main document. doc/reference/clutter/clutter-docs.xml.in | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 2fe8f864971f3fdfd27e1f2480aa48b0b9c4172e Author: Emmanuele Bassi Date: Sat Nov 20 11:07:45 2010 +0000 po: Post-release update po/clutter-1.0.pot | 490 ++++++++++++++++++++++---------------------- po/de.po | 488 ++++++++++++++++++++++---------------------- po/fr.po | 488 ++++++++++++++++++++++---------------------- po/id.po | 488 ++++++++++++++++++++++---------------------- po/it.po | 573 ++++++++++++++++++++++++++++------------------------ po/pl.po | 488 ++++++++++++++++++++++---------------------- po/zh_CN.po | 488 ++++++++++++++++++++++---------------------- 7 files changed, 1770 insertions(+), 1733 deletions(-) commit ac6a378177c37712b13fb25d09b7c5e2ce4f626f Author: Emmanuele Bassi Date: Sat Nov 20 11:07:29 2010 +0000 Post-release version bump to 1.5.7 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 7373cebd8d23fa88c74f680bca5d5c7445d46eb0 Author: Emmanuele Bassi Date: Sat Nov 20 10:17:51 2010 +0000 Release Clutter 1.5.6 (snapshot) configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit b674fcf3bb3acef61bb10a5726e020a4bc1310c7 Author: Emmanuele Bassi Date: Sat Nov 20 10:46:57 2010 +0000 build: Add missing cogl-shader-boilerplate.h clutter/cogl/cogl/Makefile.am | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit be3040fd2bca29d3d415d4baf062480f20471947 Author: Emmanuele Bassi Date: Fri Nov 19 18:29:43 2010 +0000 build: Add a missing file clutter/cogl/cogl/Makefile.am | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit e30b7b2d5a2f4468a9266085ce58b133734e3f9c Author: Emmanuele Bassi Date: Fri Nov 19 18:15:29 2010 +0000 build: Don't reference non-existing files clutter/cogl/cogl/Makefile.am | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) commit 60c6312b2d11f25c631cade6cc59b9680debc6c2 Author: Emmanuele Bassi Date: Fri Nov 19 18:07:27 2010 +0000 Update the NEWS file NEWS | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 63 insertions(+), 0 deletions(-) commit d39277d0cf96e2a4ac7b5cc3f587b5fba1f48610 Author: Emmanuele Bassi Date: Fri Nov 19 12:26:57 2010 +0000 actor: Reset the last paint box on unmap This allows hiding + moving + showing an actor without repainting the wrong area. http://bugzilla.clutter-project.org/show_bug.cgi?id=2395 clutter/clutter-actor.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) commit 346d3e40a37f2229b0a9314fd8a3c2b6c4313752 Author: Owen W. Taylor Date: Mon Nov 15 01:32:42 2010 -0500 Free state at the end of a journal flush At the end of flushing the journal, we need to free the vertex attributes and vertex array. http://bugzilla.clutter-project.org/show_bug.cgi?id=2423 clutter/cogl/cogl/cogl-journal.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) commit 1299672b5a53e004bfbc92fd89d2707c732e3586 Author: Owen W. Taylor Date: Sun Nov 14 22:59:24 2010 -0500 Actually free buffer objects With the refactoring to centralize code into CoglBuffer, _cogl_buffer_fini() was never actually implemented, so all GL vertex and index buffer objects were leaked. The duplicate call to glDeleteBuffers() in CoglPixelArray is removed (it wasn't paying attention to whether the buffer had been allocated as a PBO or not.) http://bugzilla.clutter-project.org/show_bug.cgi?id=2423 clutter/cogl/cogl/cogl-buffer.c | 7 +++++++ clutter/cogl/cogl/cogl-pixel-array.c | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) commit a5c30398df59f1aca8c0bf1e1f0a32ae51e990cd Author: Robert Bragg Date: Tue Nov 16 13:54:15 2010 +0000 egl: Adds support for clipped redraws This adds egl backend support for handling clipped redraws. This uses the EGL_NOK_swap_region extension to enable the EGL backend to present a subregion from the back buffer to the front so we don't always have to redraw the entire stage for small updates. clutter/egl/clutter-backend-egl.c | 81 ++++++++++++++ clutter/egl/clutter-backend-egl.h | 32 ++++++ clutter/egl/clutter-stage-egl.c | 215 ++++++++++++++++++++++++++++++++++++- clutter/egl/clutter-stage-egl.h | 8 ++ 4 files changed, 333 insertions(+), 3 deletions(-) commit a4d3208eb57ddb3cc7eea61534b5187663d7507c Author: Robert Bragg Date: Tue Nov 16 13:06:08 2010 +0000 debug: Adds a COGL_DEBUG=wireframe option This adds a COGL_DEBUG=wireframe option to visualize the underlying geometry of the primitives being drawn via Cogl. This works for triangle list, triangle fan, triangle strip and quad (internal only) primitives. It also works for indexed vertex arrays. 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-vertex-attribute.c | 243 +++++++++++++++++++++++++++++ 4 files changed, 252 insertions(+), 2 deletions(-) commit 78ac92f8e57acf8eccc20a1990bd7d619f5ebbdc Author: Robert Bragg Date: Tue Nov 16 08:52:49 2010 +0000 vertex-buffer: don't unref NULL object In cogl_vertex_buffer_indices_get_for_quads() we sometimes have to extend the length of an existing array, but when we came to unref the previous array we didn't first check that it wasn't simply NULL. clutter/cogl/cogl/cogl-vertex-buffer.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit f473c213fcc1b0095f32c909eb69a0c8172cba0e Author: Robert Bragg Date: Tue Nov 16 08:49:55 2010 +0000 vertex-array: Adds data arg for _vertex_array_new() This adds an optional data argument for cogl_vertex_array_new() since it seems that mostly every case where we use this API we follow up with a cogl_buffer_set_data() matching the size of the new array. This simplifies all those cases and whenever we want to delay uploading of data then NULL can simply be passed. clutter/cogl/cogl/cogl-journal.c | 2 +- clutter/cogl/cogl/cogl-primitive.c | 40 ++++++------------------------- clutter/cogl/cogl/cogl-primitives.c | 6 +--- clutter/cogl/cogl/cogl-vertex-array.c | 11 +++++++- clutter/cogl/cogl/cogl-vertex-array.h | 9 +++++- clutter/cogl/cogl/cogl-vertex-buffer.c | 3 +- clutter/cogl/cogl/cogl2-path.c | 12 +++------ 7 files changed, 33 insertions(+), 50 deletions(-) commit 804dd5d5fc2b68b64032cac30268372303be24bf Author: Robert Bragg Date: Tue Nov 16 08:41:29 2010 +0000 indices: Makes cogl_indices_get_array public This makes the previously internal only _cogl_indices_get_array API public as cogl_indices_get_array (Though marked as experimental) clutter/cogl/cogl/cogl-indices-private.h | 3 --- clutter/cogl/cogl/cogl-indices.c | 2 +- clutter/cogl/cogl/cogl-indices.h | 3 +++ clutter/cogl/cogl/cogl-vertex-attribute.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit dfc671da5960fccf478131aa3136c25341979e61 Author: Robert Bragg Date: Tue Nov 16 08:38:59 2010 +0000 build: cogl-clip-state.h depends on cogl-clip-stack.h This adds a #include "cogl-clip-stack.h" to cogl-clip-state.h which depends on the CoglClipStack typedef. clutter/cogl/cogl/cogl-clip-state.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 6f68bb365694bfd82737f6d1c577af38280d099b Author: Robert Bragg Date: Wed Nov 10 18:27:00 2010 +0000 debug: disable-culling was disabling clipped redraws there was a typo and the disable-culling option was actually disabling clipped redraws. clutter/clutter-main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 694632ce95bfc2c14791214acc435743dba4df2e Author: Emmanuele Bassi Date: Thu Nov 18 18:23:49 2010 +0000 build: Re-arrange headers Try to minimize the included headers, especially in clutter-actor.h. clutter/clutter-actor.c | 1 + clutter/clutter-actor.h | 6 ++---- clutter/clutter-color.h | 5 +---- clutter/clutter-deform-effect.h | 2 +- clutter/clutter-effect.h | 1 - clutter/clutter-offscreen-effect.h | 1 + clutter/clutter-shader.h | 1 - clutter/clutter-texture.c | 15 +++++++-------- clutter/clutter-texture.h | 2 +- clutter/clutter-types.h | 6 +++++- 10 files changed, 19 insertions(+), 21 deletions(-) commit 63cef64d17d3e5c22add99e8d736b6f69fac8f25 Author: Emmanuele Bassi Date: Thu Nov 18 14:14:37 2010 +0000 docs: Fix some wrong function/signal/property names clutter/clutter-behaviour-scale.c | 4 ++-- clutter/clutter-behaviour.h | 2 +- clutter/clutter-constraint.c | 4 ++-- clutter/clutter-drag-action.c | 2 +- clutter/clutter-script.c | 2 +- clutter/clutter-stage.c | 2 +- clutter/clutter-stage.h | 2 +- clutter/clutter-texture.c | 4 ++-- clutter/clutter-units.c | 2 +- doc/cookbook/animations.xml | 2 +- doc/reference/clutter/clutter-overview.xml | 2 +- doc/reference/clutter/migrating-ClutterPath.xml | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) commit b0f535037993a15e75525494c5dddecc96bbe0dd Author: Emmanuele Bassi Date: Wed Nov 17 15:51:35 2010 +0000 test-layout: Port away from Behaviour Use a simple animation with a looping+reversing timeline. tests/interactive/test-layout.c | 24 +++++++++++++++--------- 1 files changed, 15 insertions(+), 9 deletions(-) commit eade1ab19e90b6955ead726132503f13ac346356 Author: Emmanuele Bassi Date: Wed Nov 10 11:51:42 2010 +0000 test-rotate: Remove the behaviour code Use a looping animation with a shared timeline instead. tests/interactive/test-rotate.c | 57 +++++++++++++++++---------------------- 1 files changed, 25 insertions(+), 32 deletions(-) commit 74a770a976250d1d3cb887d9536fac1e9fc7cdf4 Author: Emmanuele Bassi Date: Wed Nov 10 13:15:06 2010 +0000 docs: Add Behaviour migration guide doc/reference/clutter/Makefile.am | 6 +- .../clutter/migrating-ClutterBehaviour.xml | 122 ++++++++++++++++++++ 2 files changed, 126 insertions(+), 2 deletions(-) commit a35708eb74dcc3ffd474e1c07725ece7b8a4fb1a Author: Emmanuele Bassi Date: Sat Nov 6 15:54:21 2010 +0000 Deprecate ClutterBehaviour and sub-classes The Behaviour class and its implementations have been replaced by the new animation framework API and by the constraints for layout-related animations. Currently, we need to make tests build, so we undef DISABLE_DEPRECATED in specific test cases while they get ported. clutter/clutter-actor.c | 4 ++- clutter/clutter-behaviour-depth.c | 15 ++++++++++++- clutter/clutter-behaviour-depth.h | 9 ++++++++ clutter/clutter-behaviour-ellipse.c | 6 +++- clutter/clutter-behaviour-ellipse.h | 8 +++++++ clutter/clutter-behaviour-opacity.c | 34 +++++++++++++++-------------- clutter/clutter-behaviour-opacity.h | 10 ++++++++- clutter/clutter-behaviour-path.c | 25 +++++++++++++++++---- clutter/clutter-behaviour-path.h | 9 ++++++++ clutter/clutter-behaviour-rotate.c | 13 +++++------ clutter/clutter-behaviour-rotate.h | 8 +++++++ clutter/clutter-behaviour-scale.c | 33 +++++++++++++++++++++-------- clutter/clutter-behaviour-scale.h | 9 ++++++++ clutter/clutter-behaviour.c | 7 ++++- clutter/clutter-behaviour.h | 12 +++++++++- tests/conform/test-behaviours.c | 2 + tests/conform/test-script-parser.c | 1 + tests/interactive/test-actor-clone.c | 1 + tests/interactive/test-actors.c | 1 + tests/interactive/test-behave.c | 1 + tests/interactive/test-depth.c | 2 + tests/interactive/test-layout.c | 2 + tests/interactive/test-multistage.c | 2 + tests/interactive/test-paint-wrapper.c | 2 + tests/interactive/test-pixmap.c | 4 ++- tests/interactive/test-rotate.c | 1 + tests/interactive/test-scale.c | 2 + tests/interactive/test-script.c | 1 + tests/interactive/test-texture-async.c | 2 + tests/interactive/test-texture-quality.c | 2 + tests/interactive/test-threads.c | 2 + tests/interactive/test-viewport.c | 1 + 32 files changed, 185 insertions(+), 46 deletions(-) commit 71a838815f4d3ea1d9e2054bbbaaf0449eae357e Author: Emmanuele Bassi Date: Wed Nov 17 15:27:42 2010 +0000 timeline: Add :reverse property The :reverse property removes the pattern of connecting to the ::completed signal of a Timeline to change the direction. http://bugzilla.clutter-project.org/show_bug.cgi?id=2408 clutter/clutter-timeline.c | 156 ++++++++++++++++++++++++---- clutter/clutter-timeline.h | 3 + doc/reference/clutter/clutter-sections.txt | 2 + tests/interactive/test-behave.c | 21 +---- 4 files changed, 144 insertions(+), 38 deletions(-) commit 1ce47bb562a227f4c3bb267e2e10b54b4ded475c Author: Emmanuele Bassi Date: Thu Nov 18 14:02:52 2010 +0000 docs: Remove unnecessary '#' The hash is confusing gtk-doc. clutter/clutter-color.h | 90 +++++++++++++++++++++++----------------------- 1 files changed, 45 insertions(+), 45 deletions(-) commit a94ea93bde8382691b8eea1f047b20c0c689c51f Author: Emmanuele Bassi Date: Thu Nov 18 10:53:01 2010 +0000 paint-volume: Do not take a reference on the actor The paint volume structure is cached in the Actor it references, and this causes a reference cycle. The paint volume is going to be used when painting, so the actor must still be valid - otherwise Clutter will bail out far before than accessing the actor pointer in ClutterPaintVolume. Otherwise, we could have used dispose() to check for a valid actor and remove a reference if the actor field is !NULL; it feels less clean, though, since we're effectively managing an extra reference on ourselves. http://bugzilla.clutter-project.org/show_bug.cgi?id=2431 clutter/clutter-actor.c | 8 +++----- clutter/clutter-paint-volume.c | 18 +++--------------- 2 files changed, 6 insertions(+), 20 deletions(-) commit 0371ba3976fafecc900123bb94822b95a1198d3a Author: Emmanuele Bassi Date: Thu Nov 18 11:00:08 2010 +0000 actor: Group bitfields together clutter/clutter-actor.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) commit b55346151c3122d356d1e0af5f73bba184fbaa81 Author: Emmanuele Bassi Date: Wed Nov 17 19:13:55 2010 +0000 build: Cogl-2.0 API reference should be conditionally built Building the API reference for Cogl 2.0 is fairly confusing: the API itself is experimental and for internal use only -- though we want feedback for it. Let's build the API reference only when Clutter is configured with a specific configure switch, so that people that wish to give feedback on the API and its documentation can do it. configure.ac | 8 ++++++++ doc/reference/Makefile.am | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletions(-) commit 8f60d5a3a2d6650bb27ebe6488fe56bf67d3d09c Author: Emmanuele Bassi Date: Sun Nov 7 16:20:51 2010 +0000 Start using the monotonic API in GLib ≥ 2.27 Starting from the 2.27 cycle, GLib is exposing a monotonic clock with microseconds granularity throughout the time-based API. We can start using it, given that the old, non-monotonic version is going to be deprecated by the same cycle. clutter/clutter-frame-source.c | 12 +++++++++--- clutter/clutter-master-clock.c | 27 ++++++++++++++++++++------- clutter/clutter-timeout-interval.c | 15 ++++++++++----- clutter/clutter-timeout-pool.c | 13 ++++++++++--- 4 files changed, 49 insertions(+), 18 deletions(-) commit 68d7a5e84721966686fb066c8b62041f0889a07a Author: Emmanuele Bassi Date: Sun Nov 7 15:57:33 2010 +0000 Move away from GTimeVal GLib 2.28 will deprecate GTimeVal and related API in favour of standardizing on microseconds granularity for all time-based API. Clutter should switch too. All of the current users of GTimeVal convert to milliseconds when doing time operations, and use GTimeVal only as storage. This can effectively be replaced by a gint64. The Master Clock uses a microsecond resolution, except when interacting with the main loop itself, since the main loop has a millisecond resolution - at least until Ryan Lortie manages to switch that too to microseconds on Linux. The clutter_timeline_do_tick() function was erroneously not privatized, but it was still assumed to be private; we should just remove it from the public symbols. clutter/clutter-frame-source.c | 8 +++-- clutter/clutter-master-clock.c | 51 ++++++++++++++++------------------- clutter/clutter-timeline.c | 17 +++++------ clutter/clutter-timeline.h | 4 +- clutter/clutter-timeout-interval.c | 33 ++++++++++++----------- clutter/clutter-timeout-interval.h | 28 ++++++++++--------- clutter/clutter-timeout-pool.c | 16 ++++++----- 7 files changed, 79 insertions(+), 78 deletions(-) commit 8b047d0bc963389109486388ce5051a6a06d0994 Author: Emmanuele Bassi Date: Wed Nov 17 12:49:10 2010 +0000 docs: Move the constraints example picture about the source code clutter/clutter-constraint.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit e5da5b0907264f822bf646ef7e1151bb69f1945a Author: Emmanuele Bassi Date: Wed Nov 17 12:47:46 2010 +0000 shaders: Fix the usage of the Cogl GLSL variables clutter/clutter-blur-effect.c | 4 ++-- clutter/clutter-colorize-effect.c | 2 +- clutter/clutter-desaturate-effect.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit f96113705d0154772e39a4782925d49b74d5ad09 Author: Emmanuele Bassi Date: Wed Nov 17 12:14:02 2010 +0000 docs: Fix closing tag clutter/clutter-constraint.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit a731682ac394d1b54b78dec1083d158a71e10f89 Author: Emmanuele Bassi Date: Mon Nov 15 16:30:12 2010 +0000 actor: Simple show/hide optimizations Showing a visible (and hiding an invisible) actor is far less cheap than it should be. http://bugzilla.clutter-project.org/show_bug.cgi?id=2422 clutter/clutter-actor.c | 65 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 45 insertions(+), 20 deletions(-) commit 66e7a38a3d9a8b2782969cf24db59909e0f99877 Author: muflone Date: Mon Nov 15 17:54:01 2010 +0000 po: Update Italian translation Signed-off-by: Emmanuele Bassi po/it.po | 839 ++++++++++++++++++++++++++++++------------------------------- 1 files changed, 413 insertions(+), 426 deletions(-) commit a32f7811447addd100bb5919ee5e0f3d1157097f Author: Emmanuele Bassi Date: Tue Nov 16 17:18:50 2010 +0000 docs: Break down the constraints example clutter/clutter-constraint.c | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) commit 3777e0b38267fd21539c8ec5e7f04d6179379a3d Author: Emmanuele Bassi Date: Mon Nov 15 17:27:46 2010 +0000 docs: Update the constraints example image doc/reference/clutter/constraints-example.png | Bin 2482 -> 5985 bytes 1 files changed, 0 insertions(+), 0 deletions(-) commit 2950cb3e78626b269555bc3a4813f9bfe17ea7fc Author: Emmanuele Bassi Date: Mon Nov 15 16:02:15 2010 +0000 docs: Fix Since tags for PaintVolume-related API clutter/clutter-paint-volume.c | 28 ++++++++++++++-------------- 1 files changed, 14 insertions(+), 14 deletions(-) commit b7fa13a52f6c7f13e81cefd774b7ac301261a673 Author: Emmanuele Bassi Date: Mon Nov 15 15:02:07 2010 +0000 docs: Add introductory section on Constraints Use the snap-constraint code for the example code and screenshot. clutter/clutter-constraint.c | 59 ++++++++++++++++++++++++- doc/reference/clutter/Makefile.am | 2 + doc/reference/clutter/constraints-example.png | Bin 0 -> 2482 bytes 3 files changed, 60 insertions(+), 1 deletions(-) commit 3c15c0c9bb6befff149b8be512d7342d820b591a Author: Emmanuele Bassi Date: Wed Nov 10 16:37:34 2010 +0000 Add SnapConstraint A SnapConstraint is a constraint that "snaps" the edges of two actors together. clutter/Makefile.am | 2 + clutter/clutter-snap-constraint.c | 589 ++++++++++++++++++++++++++++ clutter/clutter-snap-constraint.h | 90 +++++ clutter/clutter.h | 1 + doc/reference/clutter/clutter-docs.xml.in | 16 +- doc/reference/clutter/clutter-sections.txt | 19 + doc/reference/clutter/clutter.types | 1 + tests/interactive/Makefile.am | 6 +- tests/interactive/test-snap-constraint.c | 90 +++++ 9 files changed, 808 insertions(+), 6 deletions(-) commit b3f5a6e2ba29852f1f4a4d9b0f9efcdae1a61af0 Author: Emmanuele Bassi Date: Fri Nov 12 18:09:25 2010 +0000 actor: Do not queue relayouts on actors being destroyed Simple optimization is simple. clutter/clutter-actor.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) commit 0523d6db0815ed55e5e76f5d0cd879e394d9a0f6 Author: Emmanuele Bassi Date: Fri Nov 12 18:07:44 2010 +0000 actor: Add a get_debug_name() private Actor method For internal usage, writing: clutter_actor_get_name (actor) != NULL ? clutter_actor_get_name (actor) : G_OBJECT_TYPE_NAME (actor) is overly verbose and does two type checks. A simple, internal method for getting the same result without type checks would be much more appreciated. clutter/clutter-actor-private.h | 2 + clutter/clutter-actor.c | 63 ++++++++++++++++++++------------------- 2 files changed, 34 insertions(+), 31 deletions(-) commit f3295a3f36cb64e6976f3a1359e08ad680193665 Merge: 9f2c315 63721c5 Author: Emmanuele Bassi Date: Mon Nov 15 15:41:46 2010 +0000 Merge remote branch 'elliot/cookbook-opacity-values-fix' * elliot/cookbook-opacity-values-fix: cookbook: Fix opacity examples in recipe cookbook: Fix incorrect value for opacity commit 9f2c31547c7a3a36edbd5098eb51ce6c6b9b5ea1 Merge: 5f9df7e 8bdfa4d Author: Emmanuele Bassi Date: Mon Nov 15 15:37:42 2010 +0000 Merge remote branch 'elliot/cookbook-animations-looping' * elliot/cookbook-animations-looping: cookbook: Recipe for "looping animations" cookbook: Clarify how signals are emitted during looped animation cookbook: First draft for looping animations recipe cookbook: Recipe skeleton for "looping animations" cookbook: Looping animation examples commit 5f9df7e3a0a2646fe894987443869892de69c200 Author: Emmanuele Bassi Date: Mon Nov 15 15:36:41 2010 +0000 Fix compilation warning by using the correct type clutter/clutter-main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 92e21ae936a2bf796441db629cb1576b2ef8856d Merge: e800353 f9d2310 Author: Emmanuele Bassi Date: Mon Nov 15 15:26:07 2010 +0000 Merge remote branch 'elliot/c90-fix' commit 8bdfa4ddee3aed333796ef76fc650405f3d17689 Author: Elliot Smith Date: Mon Nov 15 11:18:26 2010 +0000 cookbook: Recipe for "looping animations" Added a recipe giving examples of how to loop animations for each part of the animation API (implicit, animator, state). The discussion covers looping a fixed number of times and inverting a single implicit animation to create a loop which goes back to its start on each iteration. doc/cookbook/animations.xml | 328 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 298 insertions(+), 30 deletions(-) commit e205bd0fdc42832d97bf022cf63faa6d5302478c Author: Elliot Smith Date: Thu Nov 11 12:04:20 2010 +0000 cookbook: Clarify how signals are emitted during looped animation Added a comment to the example code about how timeline emits "completed" during looped animation, while the animation itself doesn't. .../examples/animations-looping-implicit.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 7eb248b1f0ae05e2eb165a04f37bbf8eadaf77d6 Author: Elliot Smith Date: Thu Nov 11 11:44:28 2010 +0000 cookbook: First draft for looping animations recipe Includes video showing the looped animation and basic section headings, plus outline of content and notes. doc/cookbook/Makefile.am | 1 + doc/cookbook/animations.xml | 87 ++++++++++++++++++++++++++-- doc/cookbook/videos/animations-looping.ogv | Bin 0 -> 29011 bytes 3 files changed, 82 insertions(+), 6 deletions(-) commit 071029e373366b93a9f3b7c3b4ef5b8ec9eaf6a3 Author: Elliot Smith Date: Wed Nov 10 17:43:28 2010 +0000 cookbook: Recipe skeleton for "looping animations" doc/cookbook/animations.xml | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 deletions(-) commit 0d8c730558f2d4b4c04c3daa014cebd76b14c263 Author: Elliot Smith Date: Wed Nov 10 16:11:27 2010 +0000 cookbook: Looping animation examples Added code examples for creating a looped animation with each of the animation approaches (implicit, ClutterAnimation, ClutterState). doc/cookbook/examples/Makefile.am | 6 ++ .../examples/animations-looping-animator.c | 66 +++++++++++++++ .../examples/animations-looping-implicit.c | 87 ++++++++++++++++++++ doc/cookbook/examples/animations-looping-state.c | 83 +++++++++++++++++++ 4 files changed, 242 insertions(+), 0 deletions(-) commit e80035331b8adf6eec2549bf16f1027210c4233f Author: Emmanuele Bassi Date: Sun Nov 14 23:06:53 2010 +0000 Use the right string in the font settings debug blurb clutter/clutter-settings.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e6bc65b5c37c38dbf5a82dea724e2f389e2b481e Author: Emmanuele Bassi Date: Sun Nov 14 15:23:36 2010 +0000 text: Do not segfault with NULL :font-name Make sure that we have a fall back in place for the default font name string, and use g_strcmp0 to protect ourselves from NULL strings. http://bugzilla.clutter-project.org/show_bug.cgi?id=2417 clutter/clutter-text.c | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) commit 9249bd8411157c7610fd406e88ebc9ed9e089be4 Author: Owen W. Taylor Date: Fri Nov 12 18:53:51 2010 -0500 xsettings: don't use the xsettings watch function functionality The "watch" function functionality in xsettings-client.c is designed for setups like GDK where filters are per-window. If we are going to pass all events to _clutter_xsettings_client_process_event() anyways, we can just pass in NULL for watch. This avoids a nasty infinite loop where an event would get processed triggering removing a filter and adding a new filter, which would immediately run and remove a filter and add another and so on ad-infinitum. http://bugzilla.clutter-project.org/show_bug.cgi?id=2415 clutter/x11/clutter-backend-x11.c | 37 ++++--------------------------------- 1 files changed, 4 insertions(+), 33 deletions(-) commit f9d2310b724fbd6ff4e3d6b0d1bcdfc1dd8b4b7b Author: Elliot Smith Date: Fri Nov 12 09:32:04 2010 +0000 cookbook: Make example code C90 compliant Modified all cookbook example code to prevent ISO C90 compliance warnings occurring during compilation. doc/cookbook/examples/animations-moving-animator.c | 11 +++---- doc/cookbook/examples/animations-moving-implicit.c | 4 ++- doc/cookbook/examples/events-buttons-lasso.c | 6 ++-- doc/cookbook/examples/events-mouse-scroll.c | 13 +++++---- .../examples/events-pointer-motion-scribbler.c | 4 +- .../examples/events-pointer-motion-stacked.c | 5 ++- doc/cookbook/examples/events-pointer-motion.c | 3 +- .../examples/layouts-stacking-diff-sized-actors.c | 6 +++- doc/cookbook/examples/layouts-stacking.c | 10 +++--- doc/cookbook/examples/script-signals.c | 13 +++++--- doc/cookbook/examples/script-ui.c | 11 ++++--- doc/cookbook/examples/text-shadow.c | 14 +++++----- doc/cookbook/examples/textures-crossfade-cogl.c | 29 +++++++++++++------ .../examples/textures-crossfade-slideshow.c | 29 +++++++++++--------- doc/cookbook/examples/textures-crossfade.c | 18 ++++++------ doc/cookbook/examples/textures-reflection.c | 14 +++++----- 16 files changed, 107 insertions(+), 83 deletions(-) commit 63721c5db1bc1c4a53ee2af536ffbd19b015fdb9 Author: Elliot Smith Date: Fri Nov 12 09:54:12 2010 +0000 cookbook: Fix opacity examples in recipe The recipe had examples where opacity was set using fractional numbers. Fixed all examples to use integers only. doc/cookbook/actors.xml | 26 +++++++++++++------------- 1 files changed, 13 insertions(+), 13 deletions(-) commit f135f2e7d5b7c5304ae4ba91a26f4dc0d5b0c757 Author: Elliot Smith Date: Fri Nov 12 09:49:07 2010 +0000 cookbook: Fix incorrect value for opacity Opacity is a guint, so don't use floating point numbers to set its value. .../examples/events-pointer-motion-stacked.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 03a713e18e842d29a73f9cefb38e689ceefb35ed Author: Lucas Rocha Date: Thu Nov 11 22:23:09 2010 +0000 click-action: don't use pointer grabs The same behavior can be achieved by capturing events on stage while button is pressed. This fixes a problem when using click and drag actions on the same actor as there no grabs involved. http://bugzilla.clutter-project.org/show_bug.cgi?id=2409 clutter/clutter-click-action.c | 85 +++++++++++++++++++++++++++++++-------- 1 files changed, 67 insertions(+), 18 deletions(-) commit dfdd5914142d6c6fd36b52c186d8bfa92c704168 Merge: 47a6cd9 6ed6b2a Author: Emmanuele Bassi Date: Thu Nov 11 17:53:42 2010 +0000 Merge branch 'wip/static-colors' * wip/static-colors: Move tests to static colors where possible color: Add named, global colors commit 47a6cd95e76ef75a6c117424056c5359c5479283 Author: Emmanuele Bassi Date: Thu Nov 11 14:05:36 2010 +0000 Add cogl-2.0 reference in the ignore file .gitignore | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) commit 1bcf15e1b82a7f2842aa210f73dba5706d404484 Author: Neil Roberts Date: Thu Nov 11 16:24:54 2010 +0000 cogl-texture: Remove the gl_handle from CoglTextureSliceCallback There's no longer any need to use the GL handle in the callback for _cogl_texture_foreach_sub_texture_in_region because it can now work in terms of primitive cogl textures so it has now been removed. This would be helpful if we ever want to make the foreach function public so that apps could implement their own primitives using sliced textures. clutter/cogl/cogl/cogl-primitives.c | 2 -- clutter/cogl/cogl/cogl-sub-texture.c | 4 +--- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 4 ---- clutter/cogl/cogl/cogl-texture-2d.c | 2 -- clutter/cogl/cogl/cogl-texture-3d.c | 2 -- clutter/cogl/cogl/cogl-texture-private.h | 2 -- clutter/cogl/cogl/cogl-texture-rectangle.c | 2 -- 7 files changed, 1 insertions(+), 17 deletions(-) commit 49898d43ddc7905a612dad0954d472fb00e8a9c1 Author: Neil Roberts Date: Thu Nov 11 16:18:25 2010 +0000 cogl-pipeline: Use layer overrides as CoglHandles instead of GLuint Since d5634e37 the sliced texture backend now works in terms of CoglTexture2Ds so there's no need to have special casing for overriding the texture of a pipeline layer with a GL handle. Instead we can just use cogl_pipeline_set_layer_texture with the CoglHandle. The special _cogl_pipeline_set_layer_gl_texture_slice function has now been removed and parts of the code for comparing materials have been simplified. clutter/cogl/cogl/cogl-journal-private.h | 2 +- clutter/cogl/cogl/cogl-journal.c | 2 +- clutter/cogl/cogl/cogl-pipeline-opengl.c | 35 +++------- clutter/cogl/cogl/cogl-pipeline-private.h | 7 +-- clutter/cogl/cogl/cogl-pipeline.c | 105 +++------------------------- clutter/cogl/cogl/cogl-primitives.c | 15 ++++- 6 files changed, 38 insertions(+), 128 deletions(-) commit 1447ceb0deb081c85342fc3e74db3b278833cf76 Author: Neil Roberts Date: Thu Nov 11 15:42:12 2010 +0000 CoglTexture2DSliced: Pass slice tex to callback in foreach_sub_texture The cogl_texture_foreach_sub_texture_in_region virtual for the sliced texture backend was previously passing the CoglHandle of the sliced texture to the callback. Since d5634e37 the slice texture backend now works in terms of 2D textures so it's possible to pass the underlying slice texture as a handle too. This makes all of the foreach callbacks consistent in that they pass a CoglHandle of the primitive texture type that matches the GL handle. clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 21c74030119e5f3a6414d3ce161178799af4cdc4 Author: Robert Bragg Date: Thu Nov 4 00:43:48 2010 +0000 docs: Adds an initial cogl-2.0 reference manual So we can keep track of the experimental progress of Cogl 2.0 features this adds a standalone Cogl 2.0 Reference Manual which doesn't cover the deprecated 1.x symbols and removes the need for a "Cogl experimental API" chapter since those sections now make up the main table of contents. configure.ac | 2 + doc/reference/Makefile.am | 2 +- doc/reference/cogl-2.0/Makefile.am | 142 ++++++ doc/reference/cogl-2.0/blend-strings.xml | 129 ++++++ doc/reference/cogl-2.0/cogl-docs.xml.in | 188 ++++++++ doc/reference/cogl-2.0/cogl-sections.txt | 480 +++++++++++++++++++++ doc/reference/cogl-2.0/cogl_ortho.png | Bin 0 -> 12650 bytes doc/reference/cogl-2.0/fill-rule-even-odd.png | Bin 0 -> 3121 bytes doc/reference/cogl-2.0/fill-rule-non-zero.png | Bin 0 -> 3143 bytes doc/reference/cogl-2.0/quad-indices-order.png | Bin 0 -> 2620 bytes doc/reference/cogl-2.0/quad-indices-triangles.png | Bin 0 -> 8018 bytes 11 files changed, 942 insertions(+), 1 deletions(-) commit fb9d3a835071f94f06ae54945bd8059f9c34df5c Author: Robert Bragg Date: Thu Nov 4 00:27:47 2010 +0000 path 2.0: update path API for experimental 2.0 API When COGL_ENABLE_EXPERIMENTAL_2_0_API is defined cogl.h will now include cogl2-path.h which changes cogl_path_new() so it can directly return a CoglPath pointer; it no longer exposes a prototype for cogl_{get,set}_path and all the remaining cogl_path_ functions now take an explicit path as their first argument. The idea is that we want to encourage developers to retain path objects for as long as possible so they can take advantage of us uploading the path geometry to the GPU. Currently although it is possible to start a new path and query the current path, it is not convenient. The other thing is that we want to get Cogl to the point where nothing depends on a global, current context variable. This will allow us to one day define a sensible threading model if/when that is ever desired. clutter/cogl/cogl/Makefile.am | 15 +- clutter/cogl/cogl/cogl-clip-state.c | 8 +- clutter/cogl/cogl/cogl-context.c | 4 +- clutter/cogl/cogl/cogl-context.h | 2 +- clutter/cogl/cogl/cogl-path-private.h | 14 +- clutter/cogl/cogl/cogl-path.c | 1363 ++---------------------- clutter/cogl/cogl/cogl-path.h | 2 + clutter/cogl/cogl/cogl.h | 6 + clutter/cogl/cogl/cogl2-path.c | 1466 ++++++++++++++++++++++++++ clutter/cogl/cogl/cogl2-path.h | 506 +++++++++ clutter/cogl/pango/cogl-pango-display-list.c | 7 +- tests/interactive/test-cogl-primitives.c | 1 + 12 files changed, 2086 insertions(+), 1308 deletions(-) commit 8efb48ecf4c322bd870f97dc88968b19807c2493 Author: Robert Bragg Date: Thu Nov 4 14:22:24 2010 +0000 config.h: define COGL_ENABLE_EXPERIMENTAL_2_0_API By defining COGL_ENABLE_EXPERIMENTAL_2_0_API in config.h we can ensure that all internal clutter and cogl code can use the Cogl 2.0 API and by not using AM_CPPFLAGS we avoid having other tools such as glib-mkenums and the gir-scanner from inadvertently using the define also. configure.ac | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) commit b993195dc8f6e274a565d357de603bb1c9351596 Author: Robert Bragg Date: Wed Nov 3 20:26:20 2010 +0000 cogl: Adds COGL_ENABLE_EXPERIMENTAL_2_0_API define For now this new define is simply an alias for COGL_ENABLE_EXPERIMENTAL_API but the intention is that we will also use it to start experimenting with changes that need to break the existing Cogl API in incompatible ways. clutter/cogl/cogl/cogl.h | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 6ed6b2a54b5c8f44496399057ad5e58771bfc620 Author: Emmanuele Bassi Date: Mon Oct 11 17:45:30 2010 +0100 Move tests to static colors where possible tests/interactive/test-actors.c | 11 ++++++----- tests/interactive/test-behave.c | 18 ++++++------------ tests/interactive/test-binding-pool.c | 9 +++------ tests/interactive/test-box-layout.c | 8 ++++---- tests/interactive/test-depth.c | 26 ++++++++++++-------------- tests/interactive/test-drag.c | 11 ++++------- tests/interactive/test-layout.c | 4 ---- tests/interactive/test-multistage.c | 11 +++-------- tests/interactive/test-rotate.c | 13 +++++-------- tests/interactive/test-stage-sizing.c | 13 ++++--------- tests/interactive/test-threads.c | 14 +++++++------- 11 files changed, 54 insertions(+), 84 deletions(-) commit 985518c601c1a6e0d108d55fb0465a776ccae584 Author: Emmanuele Bassi Date: Tue Apr 6 10:54:20 2010 +0100 color: Add named, global colors Since EGA colors are apparently all the rage in other toolkits, Clutter should not be left out. On top of the usual CGA/EGA palette the static colors also include the Tango Icon palette, which at least is more pleasant to the eye. Static colors are accessed through an enumeration by using clutter_color_get_static(), or using the short-hand pre-processor macros. http://bugzilla.clutter-project.org/show_bug.cgi?id=2066 clutter/Makefile.am | 1 + clutter/clutter-color-static.h | 77 ++++++++++++++++++++ clutter/clutter-color.c | 77 ++++++++++++++++++++ clutter/clutter-color.h | 107 ++++++++++++++++++++++++++++ clutter/clutter.h | 1 + doc/reference/clutter/Makefile.am | 1 + doc/reference/clutter/clutter-sections.txt | 2 + 7 files changed, 266 insertions(+), 0 deletions(-) commit 6735f80b4b43b4c63dd0e3b982a5032509596a5d Author: Emmanuele Bassi Date: Thu Nov 11 12:03:24 2010 +0000 build: Sanitize the hack for ACLOCAL_FLAGS Move the ACLOCAL_FLAGS hack we have to use with jhbuild and autoreconf inside the ACLOCAL_AMFLAGS declaration in Makefile.am, and leave autogen.sh alone. Makefile.am | 5 ++++- autogen.sh | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) commit 6c53c9c84985aa8e83de1cf00e3feb9205e9f779 Author: Emmanuele Bassi Date: Wed Nov 10 16:37:44 2010 +0000 build: Hack build/autotools into autoreconf Since we require a version of gettext that might not match the version installed we need to hack the order of includes for autoreconf. This hack should go away, and we should just use the installed copy of gettext. autogen.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 5f30835eae218c8e80153101018c53862c03c353 Author: Robert Bragg Date: Fri Jul 23 17:46:41 2010 +0100 cogl-shader: Prepend boilerplate for portable shaders We now prepend a set of defines to any given GLSL shader so that we can define builtin uniforms/attributes within the "cogl" namespace that we can use to provide compatibility across a range of the earlier versions of GLSL. This updates test-cogl-shader-glsl.c and test-shader.c so they no longer needs to special case GLES vs GL when splicing together its shaders as well as the blur, colorize and desaturate effects. To get a feel for the new, portable uniform/attribute names here are the defines for OpenGL vertex shaders: #define cogl_position_in gl_Vertex #define cogl_color_in gl_Color #define cogl_tex_coord_in gl_MultiTexCoord0 #define cogl_tex_coord0_in gl_MultiTexCoord0 #define cogl_tex_coord1_in gl_MultiTexCoord1 #define cogl_tex_coord2_in gl_MultiTexCoord2 #define cogl_tex_coord3_in gl_MultiTexCoord3 #define cogl_tex_coord4_in gl_MultiTexCoord4 #define cogl_tex_coord5_in gl_MultiTexCoord5 #define cogl_tex_coord6_in gl_MultiTexCoord6 #define cogl_tex_coord7_in gl_MultiTexCoord7 #define cogl_normal_in gl_Normal #define cogl_position_out gl_Position #define cogl_point_size_out gl_PointSize #define cogl_color_out gl_FrontColor #define cogl_tex_coord_out gl_TexCoord #define cogl_modelview_matrix gl_ModelViewMatrix #define cogl_modelview_projection_matrix gl_ModelViewProjectionMatrix #define cogl_projection_matrix gl_ProjectionMatrix #define cogl_texture_matrix gl_TextureMatrix And for fragment shaders we have: #define cogl_color_in gl_Color #define cogl_tex_coord_in gl_TexCoord #define cogl_color_out gl_FragColor #define cogl_depth_out gl_FragDepth #define cogl_front_facing gl_FrontFacing clutter/clutter-blur-effect.c | 7 +- clutter/clutter-colorize-effect.c | 5 +- clutter/clutter-desaturate-effect.c | 5 +- clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-path.c | 4 +- clutter/cogl/cogl/cogl-pipeline-arbfp.c | 3 +- clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +- clutter/cogl/cogl/cogl-pipeline-glsl.c | 44 ++++- 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 | 107 ++++++++++ clutter/cogl/cogl/cogl-shader-private.h | 5 + clutter/cogl/cogl/cogl-shader.c | 206 +++++++++++++++----- clutter/cogl/cogl/cogl-vertex-attribute.c | 4 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 86 ++++++++- clutter/cogl/cogl/cogl.c | 16 ++- .../driver/gles/cogl-fixed-fragment-shader.glsl | 24 ++- .../cogl/driver/gles/cogl-fixed-vertex-shader.glsl | 40 ++-- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 62 +++--- tests/interactive/test-cogl-shader-glsl.c | 38 +--- tests/interactive/test-shader.c | 34 +--- 22 files changed, 517 insertions(+), 190 deletions(-) commit a4b984186ccd81879822ab7fad1af8b545b28e35 Author: Robert Bragg Date: Tue Nov 9 15:56:03 2010 +0000 tests: test-cogl-shader-arbfp wasn't compiling shader test-cogl-shader-arbfp was never calling cogl_shader_compile so it was a fluke that it used to run before. tests/interactive/test-cogl-shader-arbfp.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit fd43786170937ff66eddadf9736124b33684405f Author: Emmanuele Bassi Date: Wed Nov 10 13:59:09 2010 +0000 build: Honour ACLOCAL_FLAGS with autoreconf autogen.sh | 30 +++++++++++++++++++++++++++++- 1 files changed, 29 insertions(+), 1 deletions(-) commit 373140c830859f279c96d2605b6c4187a1fa7541 Author: Tomeu Vizoso Date: Wed Oct 27 19:02:47 2010 +0200 Discard the current pick buffer... if we are asked to pick with a different mode. http://bugzilla.clutter-project.org/show_bug.cgi?id=2385 clutter/clutter-main.c | 8 +++++--- clutter/clutter-stage-private.h | 8 +++++--- clutter/clutter-stage.c | 17 ++++++++++++----- tests/conform/test-pick.c | 9 +++++++++ 4 files changed, 31 insertions(+), 11 deletions(-) commit b4588b57dff691492d2d9fdd87c293ff95a278aa Author: Emmanuele Bassi Date: Mon Nov 8 16:15:23 2010 +0000 reference: Add a Wayland section doc/reference/clutter/Makefile.am | 1 + doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/clutter-sections.txt | 6 ++++++ 3 files changed, 8 insertions(+), 0 deletions(-) commit b783d77e6a730470656a9122755d10b50ac76e23 Author: Emmanuele Bassi Date: Mon Nov 8 16:03:44 2010 +0000 gtk-doc: Add PathConstraint to the Clutter API reference doc/reference/clutter/clutter-docs.xml.in | 9 +++++---- doc/reference/clutter/clutter.types | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) commit 4909ecc71e1c7ac2b2aab6bb5a7c874f9d5b4697 Author: Emmanuele Bassi Date: Mon Nov 8 16:01:19 2010 +0000 gtk-doc: Fixes for the API references clutter/clutter-cairo-texture.c | 2 +- clutter/clutter-cairo-texture.h | 2 ++ clutter/cogl/cogl/cogl-vertex-attribute.h | 2 +- doc/reference/clutter/Makefile.am | 7 +++++++ doc/reference/clutter/clutter-sections.txt | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) commit 993d3b3fe196903d020f954f2ccce51458b3dd3a Author: Emmanuele Bassi Date: Mon Nov 8 15:52:17 2010 +0000 timeout-pool: Deprecate the structure too Don't leave it lying around, since nothing can use it anyway. clutter/clutter-timeout-pool.c | 4 +++- clutter/clutter-timeout-pool.h | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 26a70707ab2286e188d9ccb63084acdd5cbeebc5 Author: Emmanuele Bassi Date: Sun Nov 7 21:35:40 2010 +0000 path-constraint: Add a ::node-reached signal Emit a signal whenever a node in the path has been reached. clutter/clutter-marshal.list | 1 + clutter/clutter-path-constraint.c | 43 ++++++++++++++++++ tests/interactive/test-path-constraint.c | 71 +++++++++++++++++++++++++++++- 3 files changed, 114 insertions(+), 1 deletions(-) commit ef7f729c6881950623cbbd8b82b68b3a15e26318 Author: Emmanuele Bassi Date: Sun Nov 7 15:27:17 2010 +0000 build: Re-instate profile builds The profiling support was broken - probably during the restructuring of the build environment, but I'm too lazy to bisect that. The fix is trivial, and everything works as it should. clutter/Makefile.am | 2 ++ configure.ac | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit 38912ee4d9d7c74aa78a9dffcfc9e687232d8302 Author: Emmanuele Bassi Date: Sat Nov 6 20:00:39 2010 +0000 Deprecate ClutterFrameSource The FrameSource API hasn't been used internally since 1.0; since it's not part of the paint clock, it is of limited use. clutter/clutter-frame-source.c | 89 ++++++++++++++++++++++++++++++++++ clutter/clutter-frame-source.h | 4 ++ clutter/clutter-main.c | 103 +++------------------------------------ clutter/clutter-main.h | 3 + clutter/clutter-private.h | 11 ++++ 5 files changed, 115 insertions(+), 95 deletions(-) commit 9ac2f5cba567114fd61446b9fa8991a663483fd5 Author: Emmanuele Bassi Date: Sat Nov 6 19:59:58 2010 +0000 Deprecate ClutterTimeoutPool Timelines have stopped using the pool since 1.0; there is no real reason to expose it as part of the active API. clutter/clutter-timeout-pool.c | 6 ++++++ clutter/clutter-timeout-pool.h | 6 ++++++ 2 files changed, 12 insertions(+), 0 deletions(-) commit a432d9973dc40658632eeb4060090b7c68aacf50 Author: Emmanuele Bassi Date: Sat Nov 6 18:12:41 2010 +0000 Remove a compiler warning clutter/cogl/cogl/cogl-vertex-attribute.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 6ec9c3247c5267c6c4a93e20d55d16415e4c1c9d Author: Maxim Ermilov Date: Fri Nov 5 20:20:14 2010 +0300 CoglContext: correct initialization order http://bugzilla.clutter-project.org/show_bug.cgi?id=2401 clutter/cogl/cogl/cogl-context.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit ee59c83e176f78fa9ff95eaebbeb66e807b9ac0c Author: Piotr Drąg Date: Tue Nov 2 12:22:55 2010 +0000 po: Update the Polish translation po/pl.po | 46 +++++++++++++--------------------------------- 1 files changed, 13 insertions(+), 33 deletions(-) commit 57633520d48eca5539381e3507847008470f27ed Author: Neil Roberts Date: Fri Nov 5 18:33:37 2010 +0000 Make test-cogl-npot-texture a bit more extensive The size of the texture used for test-cogl-npot-texture was only using 1 pixel of waste and the texture was scaled down so it would be quite likely that the test would still pass if only the top left slice was rendered. It also didn't test using non-default texture coordinates. These problems made it fail to pick up bug 2398. The texture is now using the maximum amount of waste and rendered in four parts at 1:1 scale. tests/conform/test-cogl-npot-texture.c | 17 ++++++++++++++--- 1 files changed, 14 insertions(+), 3 deletions(-) commit cc63c7dd8ffcb5076e072d46b264cd7668e3d48f Author: Neil Roberts Date: Fri Nov 5 14:38:19 2010 +0000 cogl-texture-2d-sliced: Fix the foreach callback for waste textures When converting the virtual coordinates of the underlying texture for a slice to virtual coordinates for the whole texture it was using the size and offset of the intersection as the size of the child texture. This would be incorrect if the texture contains waste or the texture coordinates are not the default. Instead the sliced foreach function now passes the CoglSpan to the callback instead of the intersection. http://bugzilla.clutter-project.org/show_bug.cgi?id=2398 clutter/cogl/cogl/cogl-texture-2d-sliced.c | 56 +++++++++++++--------------- 1 files changed, 26 insertions(+), 30 deletions(-) commit 8112bfc49fbdf4aa64ab06e0c2971cd3566ac08c Author: Neil Roberts Date: Fri Nov 5 14:55:46 2010 +0000 Replace the disable-npots tool with a COGL_DEBUG option Previously in the tests/tools directory we build a disable-npots library which was used as an LD_PRELOAD to trick Cogl in to thinking there is no NPOT texture extension. This is a little awkward to use so it seems much simpler to just define a COGL_DEBUG option to disable npot textures. clutter/cogl/cogl/cogl-debug-options.h | 6 ++ clutter/cogl/cogl/cogl-debug.c | 3 +- clutter/cogl/cogl/cogl-debug.h | 3 +- clutter/cogl/cogl/cogl.c | 6 ++ configure.ac | 5 - tests/Makefile.am | 4 +- tests/conform/Makefile.am | 2 +- tests/tools/Makefile.am | 43 --------- tests/tools/README | 2 - tests/tools/disable-npots.c | 156 -------------------------------- tests/tools/disable-npots.sh.in | 15 --- 11 files changed, 19 insertions(+), 226 deletions(-) commit 632412c9c8e2d62797c4333259e3c8a645479c61 Author: Robert Bragg Date: Tue Nov 2 12:20:32 2010 +0000 actor: Check "paint" handlers in _get_paint_volume Instead of waiting until clutter_actor_paint to check if there are any handlers connected to the "paint" signal, we now do the check whenever the paint-volume is requested in _actor_get_paint_volume_mutable(). Previously we checked in clutter_actor_paint(), but at that time we may already be using a stage clip that could be derived from an invalid paint-volume. We used to try and handle that by queuing a follow up, unclipped, redraw but anyway there was an additional problem with the previous approach because the checking wasn't enough to always catch invalid volumes involved in culling (considering that containers may derive their volume from children that haven't yet been painted) By moving the check to _get_paint_volume time not only do we now correctly check children in cases where a container derives its volume from its children's volumes but we no longer need to queue follow up redraws to cover up artefacts. Since we now never queue follow up redraws, this in turn means we should no longer clobber redraws queued with an explicit clip which was something affecting gnome-shell since it connects a handler to the paint signal of the stage. http://bugzilla.clutter-project.org/show_bug.cgi?id=2388 clutter/clutter-actor.c | 78 ++++++++++++++++++++++------------------------ 1 files changed, 37 insertions(+), 41 deletions(-) commit b9dbeac2c3ac8ded52118270914328fd57eeee6e Author: Damien Lespiau Date: Thu Oct 14 16:37:25 2010 +0100 gitignore: Update the path of generated GLES2 shaders The generation is not happening in the main Cogl directory, Update the .gitignore file accordingly. .gitignore | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 844b5781283560bb99e827c0cbc1d212f21be628 Author: Robert Bragg Date: Mon Nov 1 22:07:11 2010 +0000 matrix-stack: use GArray instead of GSList for stack In some micro-benchmarks testing journal throughput the list manipulation jumps pretty high in the profile. This replaces the GSList usage with a GArray instead which is effectively a grow only allocation that means we avoid ongoing allocations while manipulating the stack mid-scene. clutter/cogl/cogl/cogl-matrix-stack.c | 55 ++++++++++---------------------- 1 files changed, 17 insertions(+), 38 deletions(-) commit a6000533dca20639ec94bd2b0afe8de71382dc65 Author: Robert Bragg Date: Mon Nov 1 20:33:20 2010 +0000 pipeline: Avoid costly checking of lighting properties During _cogl_pipeline_needs_blending_enabled we were always checking the current lighting properties (ambient,diffuse,specular,emission) which had a notable impact during micro-benchmarks that exercise journal throughput of simple colored rectangles. This #if 0's the offending code considering that Cogl doesn't actually support lighting currently and when it actually does then we will be able to optimize this by avoiding the checks when lighting is disabled. clutter/cogl/cogl/cogl-pipeline.c | 42 +++++++++++++++++++++--------------- 1 files changed, 24 insertions(+), 18 deletions(-) commit eaee5dd604e94fd5b63e25be47b6300c12646aa6 Author: Robert Bragg Date: Mon Nov 1 20:27:32 2010 +0000 cogl: add separate material for blended source_colors When using cogl_set_source_color4ub there is a notable difference between colors that require blending and those that dont. When trying to modify the color of pipeline referenced by the journal we don't force a flush of the journal unless the color change will also change the blending state. By using two separate pipeline objects for handing opaque or transparent colors we can avoid ever flushing the journal when repeatedly using cogl_set_source_color and jumping between opaque and transparent colors. clutter/cogl/cogl/cogl-context.c | 13 ++++++++----- clutter/cogl/cogl/cogl-context.h | 5 +++-- clutter/cogl/cogl/cogl.c | 19 ++++++++++++++----- 3 files changed, 25 insertions(+), 12 deletions(-) commit d05ce7cd26253b94fb990b63e46b822febb616ab Author: Robert Bragg Date: Mon Nov 1 18:55:48 2010 +0000 texture_quad_multiple_primitives: rework wrap mode overrides This reworks _cogl_texture_quad_multiple_primitives so instead of using the CoglPipelineWrapModeOverrides mechanism to force the clamp to edge repeat mode we now derive an override pipeline using cogl_pipeline_copy instead. This avoids a relatively large, unconditional, memset. clutter/cogl/cogl/cogl-primitives.c | 84 +++++++++++++++++++++++------------ 1 files changed, 55 insertions(+), 29 deletions(-) commit 7bbe207b65f1684278470f95681e46d34a56fc18 Author: Robert Bragg Date: Mon Nov 1 18:33:17 2010 +0000 _multitexture_quad_single_primitive: avoid wrap overrides This avoids using the wrap mode overrides mechanism to implement _cogl_multitexture_quad_single_primitive which requires memsetting a fairly large array. This updates it to use cogl_pipeline_foreach_layer() and we now derive an override_material to handle changes to the wrap modes instead of using the CoglPipelineWrapModeOverrides. clutter/cogl/cogl/cogl-primitives.c | 265 ++++++++++++++++++++--------------- 1 files changed, 151 insertions(+), 114 deletions(-) commit e73b67e59bac1ac9a8b03bd776cf309151d9a1b0 Author: Neil Roberts Date: Wed Nov 3 16:02:27 2010 +0000 cogl-path: Don't bother filling the path if less than 3 nodes Previously there was a check to avoid filling the path if there are zero nodes. However the tesselator also won't generate any triangles if there are less than 3 nodes so we might as well bail out in that case too. If we don't emit any triangles then we would end up trying to create an empty VBO. Although I don't think this should necessarily be a problem, this seems to cause Mesa to segfault in version 7.8.1 when calling glBufferSubData (although not in master). test-cogl-primitives tries to fill a path with only two points so it's convenient to be able to avoid the crash in this case. clutter/cogl/cogl/cogl-path.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 25b48585d3cabac8040aa4cccd579a1952a93f6d Author: Neil Roberts Date: Tue Nov 2 17:35:17 2010 +0000 cogl-journal: Log the clip state in the journal When adding a new entry to the journal a reference is now taken on the current clip stack. Modifying the current clip state no longer causes a journal flush. The journal flushing code now has an extra stage to compare the clip state of each entry. The comparison can simply be done by comparing the pointers. Although different clip states will still end up with multiple draw calls this at leasts allows a scene comprising of multiple different clips to be upload with one vbo. It also lays the groundwork to do certain tricks when drawing clipped rectangles such as modifying the geometry instead of setting a clip state. clutter/cogl/cogl/cogl-clip-state.c | 24 ------- clutter/cogl/cogl/cogl-journal-private.h | 2 + clutter/cogl/cogl/cogl-journal.c | 106 +++++++++++++++++++++++------- 3 files changed, 83 insertions(+), 49 deletions(-) commit 4d5dc42dadac20da08e99340de9e828a805578ab Author: Neil Roberts Date: Tue Nov 2 17:34:51 2010 +0000 cogl-framebuffer: Add a flag to skip flushing the clip state This adds a flag to avoid flushing the clip state when flushing the framebuffer state. This will be used by the journal to manage its own clip state flushing. clutter/cogl/cogl/cogl-framebuffer-private.h | 3 +++ clutter/cogl/cogl/cogl-framebuffer.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletions(-) commit c5d909d0631dfeea5cd7f6beff900ed21762bf9d Author: Neil Roberts Date: Tue Nov 2 17:15:06 2010 +0000 cogl: Don't flush the journal when flushing clip state Flushing the clip state no longer does anything that would cause the journal to flush. The clip state is only flushed when flushing the framebuffer state and in all cases this ends up flushing the journal in one way or another anyway. Avoiding flushing the journal will make it easier to log the clip state in the journal. Previously when trying to set up a rectangle clip that can't be scissored or when using a path clip the code would use cogl_rectangle as part of the process to fill the stencil buffer. This is now changed to use a new internal _cogl_rectangle_immediate function which directly uses the vertex array API to draw a triangle strip without affecting the journal. This should be just as efficient as the previous journalled code because these places would end up flushing the journal immediately before and after submitting the single rectangle anyway and flushing the journal always creates a new vbo so it would effectively do the same thing. Similarly there is also a new internal _cogl_clear function that does not flush the journal. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-clip-stack.c | 47 +++++++--------- clutter/cogl/cogl/cogl-clip-state.c | 5 ++ clutter/cogl/cogl/cogl-path.c | 76 +++++++++++++------------- clutter/cogl/cogl/cogl-primitives-private.h | 43 +++++++++++++++ clutter/cogl/cogl/cogl-primitives.c | 40 ++++++++++++++ clutter/cogl/cogl/cogl-private.h | 34 ++++++++++++ clutter/cogl/cogl/cogl.c | 30 +++++++---- 8 files changed, 203 insertions(+), 74 deletions(-) commit a39b292d90c7511d0e7ab7ff484c9b75edc2880f Author: Neil Roberts Date: Wed Nov 3 15:48:56 2010 +0000 cogl-path: Use the vertex array API instead of CoglVertexBuffer The new vertex array is now implemented in terms of the CoglVertexBuffer anyway so it should be slightly faster to use a vertex array directly. clutter/cogl/cogl/cogl-path-private.h | 26 ++++++----- clutter/cogl/cogl/cogl-path.c | 81 +++++++++++++++++++-------------- 2 files changed, 60 insertions(+), 47 deletions(-) commit 60de7939ee8bf35d5b8b72564dcb342157716cb0 Author: Neil Roberts Date: Tue Nov 2 14:28:12 2010 +0000 cogl: Move the clip stack dirtiness to the context rather than the FB Previously we tracked whether the clip stack needs flushing as part of the CoglClipState which is part of the CoglFramebuffer state. This is a bit odd because most of the clipping state (such as the clip planes and the scissor) are part of the GL context's state rather than the framebuffer. We were marking the clip state on the framebuffer dirty every time we change the framebuffer anyway so it seems to make more sense to have the dirtiness be part of the global context. Instead of a just a single boolean to record whether the state needs flushing, the CoglContext now holds a reference to the clip stack that was flushed. That way we can flush arbitrary stack states and if it happens to be the same as the state already flushed then Cogl will do nothing. This will be useful if we log the clip stack in the journal because then we will need to flush unrelated clip stack states for each batch. clutter/cogl/cogl/cogl-clip-stack.c | 44 +++++++++++++++++++++++++++++---- clutter/cogl/cogl/cogl-clip-stack.h | 6 +++- clutter/cogl/cogl/cogl-clip-state.c | 40 ++---------------------------- clutter/cogl/cogl/cogl-clip-state.h | 6 ---- clutter/cogl/cogl/cogl-context.c | 5 ++++ clutter/cogl/cogl/cogl-context.h | 22 +++++++++++++++++ clutter/cogl/cogl/cogl-framebuffer.c | 2 +- clutter/cogl/cogl/cogl-path.c | 10 ++----- 8 files changed, 76 insertions(+), 59 deletions(-) commit 57574f399524c2eb46b095aa78b28ea5032a15ad Author: Neil Roberts Date: Mon Nov 1 19:52:45 2010 +0000 cogl-clip-stack: Don't allocate a separate struct for CoglClipStack Instead of having a separate CoglHandle for CoglClipStack the code is now expected to directly hold a pointer to the top entry on the stack. The empty stack is then the NULL pointer. This saves an allocation when we want to copy the stack because we can just take a reference on a stack entry. The idea is that this will make it possible to store the clip stack in the journal without any extra allocations. The _cogl_get_clip_stack and set functions now take a CoglClipStack pointer instead of a handle so it would no longer make sense to make them public. However I think the only reason we would have wanted that in the first place would be to save the clip state between switching FBOs and that is no longer necessary. clutter/cogl/cogl/cogl-clip-stack.c | 193 +++++++++++++--------------------- clutter/cogl/cogl/cogl-clip-stack.h | 38 +++---- clutter/cogl/cogl/cogl-clip-state.c | 55 ++++------- clutter/cogl/cogl/cogl-clip-state.h | 20 ++--- 4 files changed, 116 insertions(+), 190 deletions(-) commit 314e980a3b40f79f1cb96fa8a8fc53d24eecfa2a Author: Neil Roberts Date: Wed Nov 3 13:34:21 2010 +0000 cogl: Don't flush the framebuffer state for the internal draw CoglVertexAttribute has an internal draw function that is used by the CoglJournal to avoid the call to cogl_journal_flush which would otherwise end up recursively flushing the journal forever. The enable_gl_state function called by this was previously also calling _cogl_flush_framebuffer_state. However the journal code tries to handle this function specially by calling it with a flag to disable flushing the modelview matrix. This is useful because the journal handles flushing the modelview itself. Without this patch the journal state ends up getting flushed twice. This isn't a particularly big problem currently because the matrix stack has caching to recognise when it would push the same state twice and bails out. However if we later want to use the framebuffer flush flags to override a particular state of the framebuffer (such as the clip state) then we need to make sure the flush isn't called twice. clutter/cogl/cogl/cogl-vertex-attribute.c | 29 +++++++++++++++++++---------- 1 files changed, 19 insertions(+), 10 deletions(-) commit 738a669fc2987474d524e2f0e5d60a3a49832784 Author: Neil Roberts Date: Thu Nov 4 16:01:23 2010 +0000 cogl-buffer: Use void* instead of guint8* for map and set_data Unless the CoglBuffer is being used for texture data then it's relatively unlikely that the data will contain an array of bytes. For example if it's used as a vertex array then it's more likely to be floats or some vertex struct. In that case it's much more convenient if set_data and map use void* pointers so that we can avoid a cast. clutter/cogl/cogl/cogl-buffer-private.h | 8 ++++---- clutter/cogl/cogl/cogl-buffer.c | 12 ++++++------ clutter/cogl/cogl/cogl-buffer.h | 4 ++-- clutter/cogl/cogl/cogl-journal.c | 2 +- clutter/cogl/cogl/cogl-primitive.c | 16 ++++++++-------- clutter/cogl/cogl/cogl-primitives.c | 2 +- 6 files changed, 22 insertions(+), 22 deletions(-) commit a53c9dafb5fcd18ecd868c350441759196d614fc Author: Neil Roberts Date: Thu Nov 4 17:31:59 2010 +0000 Add a conformance test for the CoglPrimitive convenience constructors This adds a simple conformance test which calls all of the convenience constructors for CoglPrimitive. tests/conform/Makefile.am | 1 + tests/conform/test-cogl-primitive.c | 230 +++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 2 + 3 files changed, 233 insertions(+), 0 deletions(-) commit 390bdd2a275f9b3a242fc11725a92cca2c187797 Author: Neil Roberts Date: Thu Nov 4 17:21:56 2010 +0000 cogl-primitive: Fix the texture attribute offsets The offsets for the texture coordinate attributes in the convenience constructors were all wrong. clutter/cogl/cogl/cogl-primitive.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) commit 17aaaac3362768b1b882c5772b3c6f81afa7ce01 Author: Neil Roberts Date: Thu Nov 4 16:54:20 2010 +0000 cogl-primitive: Fix a typo in new_with_attributes_array A typo in the g_return_val_if_fail was causing it to segfault. clutter/cogl/cogl/cogl-primitive.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit b6eaab812be51ceeab023b4556f23e3b9e8a9ec5 Author: Neil Roberts Date: Thu Nov 4 16:42:11 2010 +0000 cogl-primitive: Add the missing cogl_primitive_new_p2 function There was a struct defined for CoglP2Vertex but there was no constructor function to use it. clutter/cogl/cogl/cogl-primitive.c | 27 ++++++++++++++++++++++ clutter/cogl/cogl/cogl-primitive.h | 44 ++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 0 deletions(-) commit 1935855cdd4476c1f55dcff76706dc56653d33de Author: Neil Roberts Date: Thu Nov 4 16:13:01 2010 +0000 cogl-primitive: Fix the ref-counting for the convenience constuctors The convenience constructors for the builtin vertex structs were creating the primitive and then immediately destroying it and returning the pointer. I think the intention was to unref the attributes instead. This adds an internal wrapper around the new_with_attributes_array constructor which unrefs the attributes instead of the primitive. The convenience constructors now use that. clutter/cogl/cogl/cogl-primitive.c | 89 ++++++++++++++++++++++-------------- 1 files changed, 55 insertions(+), 34 deletions(-) commit 3c35b95a84d410fdd9a9912c7c0d76f6ac05b562 Author: Robert Bragg Date: Thu Nov 4 13:23:23 2010 +0000 primitive: fix prototypes and start adding docs This fixes the prototypes for the cogl_primitive_new_xyz functions and also adds documentation with examples for each one. clutter/cogl/cogl/cogl-primitive.h | 329 +++++++++++++++++++++++++++++++++--- 1 files changed, 307 insertions(+), 22 deletions(-) commit 00397a313c955ba567d003d88dc64fb57d8346fb Author: Neil Roberts Date: Thu Nov 4 14:56:44 2010 +0000 cogl-gles2-wrapper: Fix a reference to the old name for CoglPipeline The GLES2 wrapper was referring to COGL_MATERIAL_PROGRAM_TYPE_GLSL but this has since been renamed to COGL_PIPELINE_PROGRAM_TYPE_GLSL so the GLES2 backend wouldn't compile. clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 5abdbd5f7a2b0c4884dfb8b9415eb7e6f3f15a3b Author: Robert Bragg Date: Fri Oct 29 15:49:25 2010 +0100 gles2: disable vbos until while we rework backend The gles2 wrapper functions don't understand about the CoglBuffer API so they don't support attributes stored in a CoglVertexArray. Instead of teaching the backend about buffers we are going to wait until we have overhauled the GLES 2 backend. We are currently making progress consolidating the GLES 2 backend with a new GLSL backend for CoglMaterial. This will hugely simplify the GLES 2 support and share code with the OpenGL backend. In the end it's hoped that this problem will simply go away so it doesn't make much sense to solve it with the current design. clutter/cogl/cogl/driver/gles/cogl-gles.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) commit 8034dc87d43c7e24324bacf42948fe96d1636176 Author: Robert Bragg Date: Wed Oct 27 18:54:57 2010 +0100 cogl: rename CoglMaterial -> CoglPipeline This applies an API naming change that's been deliberated over for a while now which is to rename CoglMaterial to CoglPipeline. For now the new pipeline API is marked as experimental and public headers continue to talk about materials not pipelines. The CoglMaterial API is now maintained in terms of the cogl_pipeline API internally. Currently this API is targeting Cogl 2.0 so we will have time to integrate it properly with other upcoming Cogl 2.0 work. The basic reasons for the rename are: - That the term "material" implies to many people that they are constrained to fragment processing; perhaps as some kind of high-level texture abstraction. - In Clutter they get exposed by ClutterTexture actors which may be re-inforcing this misconception. - When comparing how other frameworks use the term material, a material sometimes describes a multi-pass fragment processing technique which isn't the case in Cogl. - In code, "CoglPipeline" will hopefully be a much more self documenting summary of what these objects represent; a full GPU pipeline configuration including, for example, vertex processing, fragment processing and blending. - When considering the API documentation story, at some point we need a document introducing developers to how the "GPU pipeline" works so it should become intuitive that CoglPipeline maps back to that description of the GPU pipeline. - This is consistent in terminology and concept to OpenGL 4's new pipeline object which is a container for program objects. Note: The cogl-material.[ch] files have been renamed to cogl-material-compat.[ch] because otherwise git doesn't seem to treat the change as a moving the old cogl-material.c->cogl-pipeline.c and so we loose all our git-blame history. clutter/cogl/cogl/Makefile.am | 24 +- clutter/cogl/cogl/cogl-atlas-texture.c | 14 +- clutter/cogl/cogl/cogl-atlas.c | 2 +- clutter/cogl/cogl/cogl-buffer-private.h | 2 +- clutter/cogl/cogl/cogl-clip-stack.c | 6 +- clutter/cogl/cogl/cogl-context.c | 48 +- clutter/cogl/cogl/cogl-context.h | 28 +- clutter/cogl/cogl/cogl-framebuffer.c | 2 +- clutter/cogl/cogl/cogl-journal-private.h | 8 +- clutter/cogl/cogl/cogl-journal.c | 128 +- clutter/cogl/cogl/cogl-material-arbfp-private.h | 36 - clutter/cogl/cogl/cogl-material-arbfp.c | 1218 ----- clutter/cogl/cogl/cogl-material-compat.c | 495 ++ clutter/cogl/cogl/cogl-material-compat.h | 1396 +++++ clutter/cogl/cogl/cogl-material-fixed-private.h | 36 - clutter/cogl/cogl/cogl-material-fixed.c | 261 - clutter/cogl/cogl/cogl-material-glsl-private.h | 36 - clutter/cogl/cogl/cogl-material-glsl.c | 452 -- clutter/cogl/cogl/cogl-material-opengl-private.h | 155 - clutter/cogl/cogl/cogl-material-opengl.c | 1212 ----- clutter/cogl/cogl/cogl-material-private.h | 957 ---- clutter/cogl/cogl/cogl-material.c | 5743 -------------------- clutter/cogl/cogl/cogl-material.h | 1440 ----- clutter/cogl/cogl/cogl-path.c | 42 +- clutter/cogl/cogl/cogl-pipeline-arbfp-private.h | 36 + clutter/cogl/cogl/cogl-pipeline-arbfp.c | 1218 +++++ clutter/cogl/cogl/cogl-pipeline-fixed-private.h | 36 + clutter/cogl/cogl/cogl-pipeline-fixed.c | 261 + clutter/cogl/cogl/cogl-pipeline-glsl-private.h | 36 + clutter/cogl/cogl/cogl-pipeline-glsl.c | 452 ++ clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 156 + clutter/cogl/cogl/cogl-pipeline-opengl.c | 1212 +++++ clutter/cogl/cogl/cogl-pipeline-private.h | 993 ++++ clutter/cogl/cogl/cogl-pipeline.c | 5725 +++++++++++++++++++ clutter/cogl/cogl/cogl-pipeline.h | 1234 +++++ clutter/cogl/cogl/cogl-primitives.c | 212 +- clutter/cogl/cogl/cogl-texture-2d-private.h | 2 +- clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 2 +- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +- clutter/cogl/cogl/cogl-texture-2d.c | 2 +- clutter/cogl/cogl/cogl-texture-3d-private.h | 4 +- clutter/cogl/cogl/cogl-texture-3d.c | 4 +- clutter/cogl/cogl/cogl-texture-private.h | 4 +- clutter/cogl/cogl/cogl-texture-rectangle-private.h | 2 +- clutter/cogl/cogl/cogl-texture-rectangle.c | 2 +- clutter/cogl/cogl/cogl-texture.c | 26 +- clutter/cogl/cogl/cogl-types.h | 52 +- clutter/cogl/cogl/cogl-util.c | 2 +- clutter/cogl/cogl/cogl-vertex-attribute.c | 76 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 92 +- clutter/cogl/cogl/cogl.c | 68 +- clutter/cogl/cogl/cogl.h | 9 +- .../cogl/cogl/driver/gl/cogl-texture-driver-gl.c | 4 +- .../cogl/driver/gles/cogl-texture-driver-gles.c | 4 +- clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 6 +- 55 files changed, 13713 insertions(+), 11962 deletions(-) commit 959af183b171f9ee9bdc2ecf6cec3b37e6703a5f Author: Robert Bragg Date: Wed Oct 27 12:43:36 2010 +0100 pango: Use CoglMaterial type for materials Instead of using the CoglHandle type for material variables this updates the pango code to use CoglMaterial * instead. CoglHandle is the old typename which is being phased out of the API. clutter/cogl/pango/cogl-pango-display-list.c | 6 +++--- clutter/cogl/pango/cogl-pango-display-list.h | 4 ++-- clutter/cogl/pango/cogl-pango-render.c | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) commit 7ee99aaa838e5961c3ce15305679a6ea7a271113 Author: Robert Bragg Date: Wed Oct 27 12:36:24 2010 +0100 pango: push/pop source instead of trashing users source The pango-display-list code was calling cogl_set_source in numerous places and it didn't appear to be saving the users source to restore later. This could result in the user inadvertantly drawing a primitive with one of these internally managed materials instead of one that they chose. To rectify this the code now uses cogl_{push,pop}_source to save and restore the users source. clutter/cogl/pango/cogl-pango-display-list.c | 76 +++++++++++++++----------- 1 files changed, 45 insertions(+), 31 deletions(-) commit 4e69c730857835d0b2971b3fd6b00e285b82a66a Author: Robert Bragg Date: Mon Oct 18 17:17:22 2010 +0100 primitives: implements cogl_polygon on vertex_attributes This updates the implementation of cogl_polygon so it sits on the new CoglVertexArray and CoglVertexAttribute apis. This lets us minimize the number of different drawing paths we have to maintain in Cogl. Since the sliced texture support for cogl_polygon has been broken for a long time now and no one has complained this patch also greatly simplifies the code by not doing any special material validation so cogl_polygon will be restricted in the same way as cogl_draw_vertex_attributes. (i.e. sliced textures not supported). clutter/cogl/cogl/cogl-context.c | 5 + clutter/cogl/cogl/cogl-context.h | 3 +- clutter/cogl/cogl/cogl-primitives.c | 579 ++++++++++------------------------- 3 files changed, 167 insertions(+), 420 deletions(-) commit f9d9b1b1578e05a51bbf087aa2626e11d8e2c185 Author: Robert Bragg Date: Tue Oct 26 19:22:57 2010 +0100 journal: port to the vertex_attributes API Instead of using raw OpenGL in the journal we now use the vertex attributes API instead. This is part of an ongoing effort to reduce the number of drawing paths we maintain in Cogl. clutter/cogl/cogl/cogl-context.c | 4 + clutter/cogl/cogl/cogl-context.h | 1 + clutter/cogl/cogl/cogl-journal.c | 262 ++++++++++++++++++++------------------ 3 files changed, 145 insertions(+), 122 deletions(-) commit f82b32cb3b93001705a2581ff59293e1074de4bb Author: Robert Bragg Date: Tue Oct 26 18:56:57 2010 +0100 vertex-buffer: use cogl_get_rectangle_indices The functionality of cogl_vertex_buffer_indices_get_for_quads is now provided by cogl_get_rectangle_indices so this reworks the former to now work in terms of the latter so we don't have duplicated logic. clutter/cogl/cogl/cogl-context.c | 9 --- clutter/cogl/cogl/cogl-context.h | 6 -- clutter/cogl/cogl/cogl-vertex-buffer.c | 101 +++++++++++-------------------- 3 files changed, 36 insertions(+), 80 deletions(-) commit 670ea32dbdffea57008b5f5e315a879353cecdee Author: Robert Bragg Date: Tue Oct 12 12:55:23 2010 +0100 vertex-buffer: port to CoglVertexAttributes + CoglPrimitive As part of an ongoing effort to reduce the number of draw paths we have in Cogl this re-works CoglVertexBuffer to use the CoglVertexAttribute and CoglPrimitive APIs instead of using raw GL. clutter/cogl/cogl/cogl-vertex-buffer-private.h | 42 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 1140 ++++++++---------------- 2 files changed, 371 insertions(+), 811 deletions(-) commit 69b1f756d14237c60073f77ee048975a159148cb Author: Robert Bragg Date: Tue Oct 26 18:57:33 2010 +0100 primitive: adds immutable ref/unref mechanism This adds a way to mark that a primitive is in use so that modifications will generate a warning. The plan is to use this mechanism when batching primitives in the journal to warn users that mid-scene modifications of primitives is not allowed. clutter/cogl/cogl/cogl-primitive-private.h | 8 +++ clutter/cogl/cogl/cogl-primitive.c | 77 ++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 0 deletions(-) commit 2d58d3f1b6b728e3cca6e1bbeabd19fc03de05df Author: Robert Bragg Date: Tue Oct 12 15:48:31 2010 +0100 primitive: Adds convenience constructors This adds convenience primitive constructors named like: cogl_primitive_new_p3 or cogl_primitive_new_p3c4 or cogl_primitive_new_p3t2c4 where the letters correspond to the interleved vertex attributes layouts such as CoglP3Vertex which is a struct with 3 float x,y,z members for the [p]osition, or CoglP3T2C4Vertex which is a struct with 3 float x,y,z members for the [p]osition, 2 float s,t members for the [t]exture coordinates and 4 unsigned byte r,g,b,a members for the [c]olor. The hope is that people will find these convenient enough to replace cogl_polygon. clutter/cogl/cogl/cogl-primitive.c | 246 ++++++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-primitive.h | 66 ++++++++--- 2 files changed, 296 insertions(+), 16 deletions(-) commit 0cd077dc7efc5ed3cb982ffa6c7f4f5276867338 Author: Robert Bragg Date: Tue Oct 12 12:54:07 2010 +0100 cogl: Adds experimental CoglPrimitive API A CoglPrimitive is a retainable object for drawing a single primitive, such as a triangle strip, fan or list. CoglPrimitives build on CoglVertexAttributes and CoglIndices which themselves build on CoglVertexArrays and CoglIndexArrays respectively. A CoglPrimitive encapsulates enough information such that it can be retained in a queue (e.g. the Cogl Journal, or renderlists in the future) and drawn at some later time. clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-primitive-private.h | 46 ++++ clutter/cogl/cogl/cogl-primitive.c | 223 ++++++++++++++++++++ clutter/cogl/cogl/cogl-primitive.h | 311 ++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl.h | 1 + 5 files changed, 584 insertions(+), 0 deletions(-) commit dd63078bd3e4fae8fced0a2c8801bee145f9c24b Author: Robert Bragg Date: Tue Oct 12 12:53:10 2010 +0100 cogl: Adds experimental CoglVertexAttribute API A CoglVertexAttribute defines a single attribute contained in a CoglVertexArray. I.e. a CoglVertexArray is simply a buffer of N bytes intended for containing a collection of attributes (position, color, normals etc) and a CoglVertexAttribute defines one such attribute by specifying its start offset in the array, its type, the number of components and the stride etc. clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-vertex-attribute-private.h | 80 ++ clutter/cogl/cogl/cogl-vertex-attribute.c | 882 +++++++++++++++++++++ clutter/cogl/cogl/cogl-vertex-attribute.h | 205 +++++ clutter/cogl/cogl/cogl.h | 1 + 5 files changed, 1171 insertions(+), 0 deletions(-) commit 3d14fbc30881e7068c6724aef4ec3efbb4467186 Author: Robert Bragg Date: Tue Oct 12 12:48:58 2010 +0100 cogl: Adds experimental CoglIndices API CoglIndices define a range of indices inside a CoglIndexArray. I.e. a CoglIndexArray is simply a buffer of N bytes and you can then instantiate multiple CoglIndices collections that define a sub-region of a CoglIndexArray by specifying a start offset and an index data type. clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-context.c | 18 ++ clutter/cogl/cogl/cogl-context.h | 10 ++ clutter/cogl/cogl/cogl-indices-private.h | 57 +++++++ clutter/cogl/cogl/cogl-indices.c | 253 ++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-indices.h | 74 +++++++++ clutter/cogl/cogl/cogl.h | 1 + 7 files changed, 416 insertions(+), 0 deletions(-) commit 8ca80e47c40422b69d1e7b70850c7033ec71b1b8 Author: Robert Bragg Date: Tue Oct 12 12:34:27 2010 +0100 cogl: Adds experimental CoglVertexArray type This adds a new CoglVertexArray object which is a subclass of CoglBuffer used to hold vertex attributes. A later commit will add a CoglVertexAttribute API which will be used to describe the attributes inside a CoglVertexArray. clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-vertex-array-private.h | 39 +++++++++++++ clutter/cogl/cogl/cogl-vertex-array.c | 70 ++++++++++++++++++++++ clutter/cogl/cogl/cogl-vertex-array.h | 77 +++++++++++++++++++++++++ clutter/cogl/cogl/cogl.h | 1 + 5 files changed, 190 insertions(+), 0 deletions(-) commit 3aba41e20209d597c6fc49a6163b86eb71a2ff3a Author: Robert Bragg Date: Tue Oct 12 12:36:22 2010 +0100 cogl: Adds experimental CoglIndexArray type A CoglIndexArray is a subclass of CoglBuffer and will be used to hold vertex indices. A later commit will add a CoglIndices API which will allow describing a range of indices inside a CoglIndexArray. clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-index-array-private.h | 39 ++++++++ clutter/cogl/cogl/cogl-index-array.c | 131 ++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-index-array.h | 79 ++++++++++++++++ clutter/cogl/cogl/cogl.h | 1 + 5 files changed, 253 insertions(+), 0 deletions(-) commit eac167df1c6ce300d915249e696cc0dc2d6a8819 Author: Robert Bragg Date: Tue Oct 26 19:08:51 2010 +0100 buffer: adds immutable ref/unref mechanism This adds an internal mechanism to mark that a buffer is in-use so that a warning can be generated if the user attempts to modify the buffer. The plans is for the journal to use this mechanism so that we can warn users about mid-scene modifications of buffers. clutter/cogl/cogl/cogl-buffer-private.h | 8 ++++++ clutter/cogl/cogl/cogl-buffer.c | 42 +++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 2 deletions(-) commit efa11f8a8fd0400b3f6003d9f48292b0629d3698 Author: Robert Bragg Date: Tue Oct 12 13:14:17 2010 +0100 buffer: make _bind() return base pointer We now make _cogl_buffer_bind return a base pointer for the bound buffer which can be used with OpenGL. The pointer will be NULL for GPU based buffers or may point to an malloc'd buffer. Since OpenGL expects an offset instead of a pointer when dealing with buffer objects this means we can handle fallback malloc buffers and GPU buffers in a consistent way. clutter/cogl/cogl/cogl-bitmap.c | 28 ++++++++-------------------- clutter/cogl/cogl/cogl-buffer-private.h | 2 +- clutter/cogl/cogl/cogl-buffer.c | 17 ++++++++++------- 3 files changed, 19 insertions(+), 28 deletions(-) commit 35ddc5407efe0e2877d64e75a5d2e252f9aee8b9 Author: Robert Bragg Date: Tue Oct 26 19:02:04 2010 +0100 material: Bail out faster if re-flushing unchanged material This allows _cogl_material_flush_gl_state to bail out faster if repeatedly asked to flush the same material and we can see the material hasn't changed. Since we can rely on the material age incrementing when any material property changes or any associated layer property changes then we can track the age of the material after flushing so it can be compared with the age of the material if it is subsequently re-flushed. If the age is the same we only have to re-assert the texture object state. clutter/cogl/cogl/cogl-context.h | 1 + clutter/cogl/cogl/cogl-material-opengl.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit bbf27e6b285afca1261eaa448096667415d81219 Author: Robert Bragg Date: Tue Oct 26 17:43:16 2010 +0100 material-node: track if node owns reference on parent MaterialNodes are used for the sparse graph of material state and layer state. In the case of materials there is the idea of weak materials that don't take a reference on their parent and in that case we need to be careful not to unref our parent during _cogl_material_node_unparent_real. This adds a has_parent_reference member to the CoglMaterialNode struct so we now know when to skip the unref. clutter/cogl/cogl/cogl-material-private.h | 4 ++++ clutter/cogl/cogl/cogl-material.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletions(-) commit e5202d6a0da1d94f65ddbe381766d775e1047e26 Author: Robert Bragg Date: Tue Oct 26 17:38:58 2010 +0100 cogl-object: correctly free user_data_array in _unref If there is private data associated with a CoglObject then there may be a user_data_array that needs to be freed. The code was mistakenly freeing the array inside the loop that was actually iterating over the user data array notifying the objects destruction instead of waiting until all the data entries had been destroyed. clutter/cogl/cogl/cogl-object.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) commit 0b4b1ca1caad41785dadc7d2bd71af6c7b644ada Author: Owen W. Taylor Date: Sat Oct 30 18:11:03 2010 -0400 Don't leave stale invalidated queued redraws around Once an actor had _clutter_stage_queue_redraw_entry_invalidate() called on it once, then priv->queue_redraw_entry would point to an entry with entry->actor NULL. _clutter_stage_queue_actor_redraw() doesn't handle this case and no further redraws would be queued. To fix this, NULL out priv->queue_redraw_entry() and then make sure we free the invalidated entry in _clutter_stage_maybe_finish_queue_redraws() just as we do for still valid entries. http://bugzilla.clutter-project.org/show_bug.cgi?id=2389 clutter/clutter-actor.c | 5 ++++- clutter/clutter-stage.c | 12 +++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) commit 02a3670e880333536f0fb53b1044317a9f46ee15 Author: Neil Roberts Date: Mon Nov 1 15:21:04 2010 +0000 win32: Fix a couple of build warnings * clutter-backend-win32 had an unused variable * clutter-event-win32 was using the abs function without including stdlib.h clutter/win32/clutter-backend-win32.c | 2 -- clutter/win32/clutter-event-win32.c | 1 + 2 files changed, 1 insertions(+), 2 deletions(-) commit f13f545aa9824ed53ea5a78878c7f96d40239e48 Author: Neil Roberts Date: Mon Nov 1 15:13:12 2010 +0000 clutter-backend-win32: Use g_object_unref on the stage manager Previously when trying to destroy all of the stages in the backend dispose function it would poke directly in the ClutterStageManager struct to get the list. In 8613013ab08 the defintion of ClutterStageManager moved to a different header which isn't included by the Win32 backend so it wouldn't compile. In that commit the X11 backend was changed to unref the stage manager instead of poking in the internals so we should do the same for the win32 backend. clutter/win32/clutter-backend-win32.c | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-) commit 907490d795f4438e631679fce47cae7fc08830d6 Author: Damien Lespiau Date: Sun Oct 31 18:34:23 2010 +0000 clone: Remove checks in set_source_internal() One of the ideas behind _internal() functions is to be able to have a version of the original one without checks (among other things). As these functions are either static or private to the library, we control the arguments given to it, and thus no need for checking them again here. clutter/clutter-clone.c | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-) commit a318fe5ca50feca359abc15238c4ed0da3b41397 Author: Damien Lespiau Date: Sun Oct 31 16:49:40 2010 +0000 texture: Warn when the file loaded from a ClutterScript can't be found Telling the user about files not found when loading a ClutterScript with ClutterTextures in it is very useful and can save a few minutes (or hours) of frustation because it "does not work". clutter/clutter-texture.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) commit 2ee0e40848a1c70c5b9891dea60d0f25d08e2a47 Author: Neil Roberts Date: Fri Oct 15 18:00:29 2010 +0100 Merge cogl-program-{gl,gles}.c into one cogl-program.c This merges the two implementations of CoglProgram for the GLES2 and GL backends into one. The implementation is more like the GLES2 version which would track the uniform values and delay sending them to GL. CoglProgram is now effectively just a GList of CoglShaders along with an array of stored uniform values. CoglProgram never actually creates a GL program, instead this is left up to the GLSL material backend. This is necessary on GLES2 where we may need to relink the user's program with different generated shaders depending on the other emulated fixed function state. It will also be necessary in the future GLSL backends for regular OpenGL. The GLSL and ARBfp material backends are now the ones that create and link the GL program from the list of shaders. The linked program is attached to the private material state so that it can be reused if the CoglProgram is used again with the same material. This does mean the program will get relinked if the shader is used with multiple materials. This will be particularly bad if the legacy cogl_program_use function is used because that effectively always makes one-shot materials. This problem will hopefully be alleviated if we make a hash table with a cache of generated programs. The cogl program would then need to become part of the hash lookup. Each CoglProgram now has an age counter which is incremented every time a shader is added. This is used by the material backends to detect when we need to create a new GL program for the user program. The internal _cogl_use_program function now takes a GL program handle rather than a CoglProgram. It no longer needs any special differences for GLES2. The GLES2 wrapper function now also uses this function to bind its generated shaders. The ARBfp shaders no longer store a copy of the program source but instead just directly create a program object when cogl_shader_source is called. This avoids having to reupload the source if the same shader is used in multiple materials. There are currently a few gross hacks to get the GLES2 backend to work with this. The problem is that the GLSL material backend is now generating a complete GL program but the GLES2 wrapper still needs to add its fixed function emulation shaders if the program doesn't provide either a vertex or fragment shader. There is a new function in the GLES2 wrapper called _cogl_gles2_use_program which replaces the previous cogl_program_use implementation. It extracts the GL shaders from the GL program object and creates a new GL program containing all of the shaders plus its fixed function emulation. This new program is returned to the GLSL material backend so that it can still flush the custom uniforms using it. The user_program is attached to the GLES2 settings struct as before but its stored using a GL program handle rather than a CoglProgram pointer. This hack will go away once the GLSL material backend replaces the GLES2 wrapper by generating the code itself. Under Mesa this currently generates some GL errors when glClear is called in test-cogl-shader-glsl. I think this is due to a bug in Mesa however. When the user program on the material is changed the GLSL backend gets notified and deletes the GL program that it linked from the user shaders. The program will still be bound in GL however. Leaving a deleted shader bound exposes a bug in Mesa's glClear implementation. More details are here: https://bugs.freedesktop.org/show_bug.cgi?id=31194 clutter/cogl/cogl/Makefile.am | 6 +- clutter/cogl/cogl/cogl-internal.h | 4 +- clutter/cogl/cogl/cogl-material-arbfp.c | 36 +- clutter/cogl/cogl/cogl-material-fixed.c | 17 +- clutter/cogl/cogl/cogl-material-glsl.c | 355 ++++++++++- clutter/cogl/cogl/cogl-material-opengl.c | 158 ++--- clutter/cogl/cogl/cogl-material-private.h | 2 +- clutter/cogl/cogl/cogl-program-private.h | 78 +++ clutter/cogl/cogl/cogl-program.c | 683 ++++++++++++++++++++ clutter/cogl/cogl/cogl-shader-private.h | 1 - clutter/cogl/cogl/cogl-shader.c | 56 ++- .../cogl/driver/gl/cogl-feature-functions-gl.h | 11 + clutter/cogl/cogl/driver/gl/cogl-program-gl.c | 488 -------------- clutter/cogl/cogl/driver/gl/cogl-program-gl.h | 46 -- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 194 ++---- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 9 +- clutter/cogl/cogl/driver/gles/cogl-program-gles.c | 437 ------------- clutter/cogl/cogl/driver/gles/cogl-program-gles.h | 52 -- 18 files changed, 1308 insertions(+), 1325 deletions(-) commit 65d7a113eeb0de08ccb402fe4ade14fe82fcaff1 Author: Neil Roberts Date: Wed Oct 27 15:07:03 2010 +0100 cogl: Use separate materials for set_source_color and texture Previously cogl_set_source_color and cogl_set_source_texture modified a single global material. If an application then mixes using cogl_set_source_color and texture then the material will constantly need a new ARBfp program because the numbers of layers alternates between 0 and 1. This patch just adds a second global material that is only used for cogl_set_source_texture. I think it would still end up flushing the journal if cogl_set_source_texture is used with multiple different textures but at least it should avoid a recompile unless the texture target also changes. It might be nice to somehow attach a material to the CoglTexture for use with cogl_set_source_texture but it would be difficult to implement this without creating a circular reference. clutter/cogl/cogl/cogl-context.c | 3 +++ clutter/cogl/cogl/cogl-context.h | 3 ++- clutter/cogl/cogl/cogl.c | 11 ++--------- 3 files changed, 7 insertions(+), 10 deletions(-) commit 89cedc78009cee86ffe025cd7c2343d69b199928 Author: Robert Bragg Date: Tue Oct 12 12:53:44 2010 +0100 Move IndicesType and VerticesMode typedefs to cogl-types.h This moves the CoglIndicesType and CoglVerticesMode typedefs from cogl-vertex-buffer.h to cogl-types.h so they can be shared with the anticipated cogl vertex attribute API. clutter/cogl/cogl/cogl-types.h | 48 ++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-vertex-buffer.h | 47 ------------------------------- 2 files changed, 48 insertions(+), 47 deletions(-) commit e3bf83eab527d1dfbd697da1cc13dda2bb8b7d30 Author: Robert Bragg Date: Tue Oct 26 16:05:00 2010 +0100 buffer: BufferBindTarget + BufferUsageHint enum renaming This renames the BufferBindTarget + BufferUsageHint enums to match the anticipated new APIs for "index arrays" and "vertex arrays" as opposed to using the terms "vertices" or "indices". clutter/cogl/cogl/cogl-buffer-private.h | 5 +++-- clutter/cogl/cogl/cogl-buffer.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) commit 9efe7ca5bc66d2889c45ac998115d3df04bfebb4 Author: Robert Bragg Date: Mon Oct 18 18:50:02 2010 +0100 buffer: warn if (offset + size) > buffer->size previously we would silently bail out if the given offset + data size would overflow the buffer size. Now we use g_return_val_if_fail so we get a warning if we hit this case. clutter/cogl/cogl/cogl-buffer.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-) commit b2963b4eef2aba6b3b62983b1b23ff7abfa221e1 Author: Robert Bragg Date: Tue Oct 12 13:25:05 2010 +0100 pixel-array: Remove some benign variables There were some completely unused static global variables declared in cogl-pixel-array.c which this patch removes. clutter/cogl/cogl/cogl-pixel-array.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) commit 902c18ad874694b2f3f5fffa67d8f5aa576d79a2 Author: Robert Bragg Date: Tue Oct 12 13:23:44 2010 +0100 pixel-array: Remove flags member and flag macros There are no flags associated with pixel-arrays so we don't need the flags member or flag macros. clutter/cogl/cogl/cogl-pixel-array-private.h | 18 ------------------ clutter/cogl/cogl/cogl-pixel-array.c | 2 -- 2 files changed, 0 insertions(+), 20 deletions(-) commit 1c8b355bbb6f1aa466a8ca0b2a4732135413661b Author: Robert Bragg Date: Tue Oct 26 16:06:46 2010 +0100 buffer: Add a store_created bit field member This adds a store_created bit field to CoglBuffer so we know if the underlying buffer has been allocated yet. Previously the code was trying to do something really wrong by accidentally using the COGL_PIXEL_ARRAY_FLAG_IS_SET macro (note "PIXEL_ARRAY") and what is more odd was the declaration of a CoglPixelArray *pixel_array in cogl-buffer.c which the buffer was being cast too before calling using the macro. Probably this was the fall-out of some previous code re-factoring. clutter/cogl/cogl/cogl-buffer-private.h | 2 ++ clutter/cogl/cogl/cogl-buffer.c | 25 +++++++++++-------------- 2 files changed, 13 insertions(+), 14 deletions(-) commit d5188c26b6dc928639d0779ba4910ad5f4fa7fcc Author: Robert Bragg Date: Tue Oct 12 11:46:29 2010 +0100 buffer: remove flag macros All the macros get used for are to |= (a new flag bit), &= ~(a flag bit) or use the & operator to test if a flag bit is set. I haven't found the code more readable with these macros, but several times now I've felt the need to double check if these macros do anything else behind the hood or I've forgotten what flags are available so I've had to go to the macro definition to see what the full enum names are for the flags (the macros use symbol concatenation) so I can search for the definition of all the flags. It turns out they are defined next to the macro so you don't have to search far, but without the macro that wouldn't have been necessary. The more common use of the _IS_SET macro is actually more concise expanded and imho since it doesn't hide anything in a separate header file the code is more readable without the macro. clutter/cogl/cogl/cogl-bitmap.c | 4 ++-- clutter/cogl/cogl/cogl-buffer-private.h | 9 --------- clutter/cogl/cogl/cogl-buffer.c | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 21 deletions(-) commit bc3a26d03552273ddb61004364a6897057415732 Author: Robert Bragg Date: Tue Oct 12 12:35:47 2010 +0100 material: Adds _cogl_material_get_layer_texture This is a counter part for _cogl_material_layer_get_texture which takes a layer index instead of a direct CoglMaterialLayer pointer. The aim is to phase out code that directly iterates the internal layer pointers of a material since the layer pointers can change if any property of any layer is changed making direct layer pointers very fragile. clutter/cogl/cogl/cogl-material-private.h | 4 ++++ clutter/cogl/cogl/cogl-material.c | 9 +++++++++ 2 files changed, 13 insertions(+), 0 deletions(-) commit 0288ba39110b46a51be7d1efc2de0a5a64e0d1e0 Author: Robert Bragg Date: Mon Oct 18 19:00:50 2010 +0100 material: add internal layer filter getters This adds internal _cogl_material_get_layer_filters and _cogl_material_get_layer_{min,mag}_filter functions which can be used to query the filters associated with a layer using a layer_index, as opposed to a layer pointer. Accessing layer pointers is considered deprecated so we need to provide layer_index based replacements. clutter/cogl/cogl/cogl-material-private.h | 14 +++++++++ clutter/cogl/cogl/cogl-material.c | 45 +++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 0 deletions(-) commit 6fd26630bae6a30f97e523f4c2e6f21889111930 Author: Robert Bragg Date: Sun Aug 1 23:05:28 2010 +0100 material: Adds missing get_layer_wrap_mode_xyz prototypes This adds missing getter function prototypes for cogl_material_get_layer_wrap_mode_{s,t,p} clutter/cogl/cogl/cogl-material.h | 52 +++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) commit 32ae904d81684c1affd919fd1ccb024d18636bc8 Author: Robert Bragg Date: Sun Aug 1 16:07:38 2010 +0100 vertex-buffer: remove the unstrided CBO type When we come to submitting the users given attributes we sort them into different types of buffers. Previously we had three types; strided, unstrided and multi-pack. Really though unstrided was just a limited form of multi-pack buffer and didn't imply any hind of special optimization so this patch consolidates some code by reducing to just two types; strided and multi-pack. clutter/cogl/cogl/cogl-vertex-buffer-private.h | 5 +-- clutter/cogl/cogl/cogl-vertex-buffer.c | 33 ++++------------------- 2 files changed, 8 insertions(+), 30 deletions(-) commit 94e06197856c9959580c837985eb114150d402a3 Author: Robert Bragg Date: Wed Jul 28 13:59:34 2010 +0100 material: Adds _cogl_material_pre_paint_for_layer This is a counter part for _cogl_material_layer_pre_paint which takes a layer index instead of a direct CoglMaterialLayer pointer. The aim is to phase out code that directly iterates the internal layer pointers of a material since the layer pointers can change if any property of any layer is changed making direct layer pointers very fragile. clutter/cogl/cogl/cogl-material-private.h | 9 +++++++++ clutter/cogl/cogl/cogl-material.c | 8 ++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) commit 701a69366142f5c2389110daa0426abdb8691f6d Author: Robert Bragg Date: Mon Oct 25 13:25:21 2010 +0100 cogl: Adds {push,pop,get}_source functions This exposes the idea of a stack of source materials instead of just having a single current material. This allows the writing of orthogonal code that can change the current source material and restore it to its previous state. It also allows the implementation of new composite primitives that may want to validate the current source material and possibly make override changes in a derived material. clutter/cogl/cogl/cogl-clip-stack.c | 7 +-- clutter/cogl/cogl/cogl-context.c | 6 +- clutter/cogl/cogl/cogl-context.h | 2 +- clutter/cogl/cogl/cogl-material-private.h | 3 + clutter/cogl/cogl/cogl-path.c | 41 +++++------ clutter/cogl/cogl/cogl-primitives.c | 99 ++++++++++++-------------- clutter/cogl/cogl/cogl-texture.c | 7 +-- clutter/cogl/cogl/cogl-vertex-buffer.c | 38 ++++++---- clutter/cogl/cogl/cogl.c | 109 ++++++++++++++++++++++++++--- clutter/cogl/cogl/cogl.h | 58 +++++++++++++-- doc/reference/cogl/cogl-sections.txt | 3 + 11 files changed, 252 insertions(+), 121 deletions(-) commit bf6c635e9dfa28470fa31b6459c6636afe70c95e Merge: b16ff03 cf46c81 Author: Emmanuele Bassi Date: Mon Oct 25 23:44:53 2010 +0100 Merge branch 'private-cleanup' * private-cleanup: Add copyright notices Clean up clutter-private.h/6 Clean up clutter-private.h/5 Clean up clutter-private.h/4 Clean up clutter-private.h/3 Clean up clutter-private.h/2 Clean up clutter-private.h/1 commit b16ff0359ac53bfd6650256c874677e44b93a746 Author: Emmanuele Bassi Date: Mon Oct 25 17:44:27 2010 +0100 Post-release version bump to 1.5.5 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit cba230400a4d92f6c97f029326d68fa5798b1214 Author: Emmanuele Bassi Date: Mon Oct 25 17:30:52 2010 +0100 Release Clutter 1.5.4 configure.ac | 2 +- po/clutter-1.0.pot | 792 ++++++++++++++++++++++++------------------------ po/de.po | 822 +++++++++++++++++++++++++------------------------ po/fr.po | 860 ++++++++++++++++++++++++++-------------------------- po/id.po | 799 ++++++++++++++++++++++++------------------------ po/it.po | 790 ++++++++++++++++++++++++------------------------ po/pl.po | 812 +++++++++++++++++++++++++------------------------ po/zh_CN.po | 800 ++++++++++++++++++++++++------------------------ 8 files changed, 2867 insertions(+), 2810 deletions(-) commit cb7d2943eafd65a2526f7da0f9e5d8bf1a176f32 Author: Chris Lord Date: Fri Oct 22 17:41:06 2010 +0100 state: Correct the documentation Correct the argument order and replace all occurrences of clutter_state_change() with the appropriate clutter_state_set_state() or clutter_state_warp_to_state(). clutter/clutter-state.c | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) commit bfc1583d76548f9882a4d77df39d32733883814d Author: Chris Lord Date: Fri Oct 22 16:32:05 2010 +0100 state: Fix warping to the current state during transitions If you warp to a state, it should be immediately set. Check if the animation is in progress when warping to a state and don't short-circuit in the already-set check if we're not animating. clutter/clutter-state.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) commit 35c35de55c27ff212d819e202b6081859510ee3d Author: Chris Lord Date: Fri Oct 22 16:13:16 2010 +0100 state: Handle setting keys for the current target state Add special behaviour when you set the key of the current target state: - If the state is transitioning, add/modify the interval so that the new key transitions from the current time (taking into account pre-delay) to its target final property - If the state is set but has already finished animating/was warped to, set the property immediately clutter/clutter-state.c | 73 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 69 insertions(+), 4 deletions(-) commit 73dcbedc8067fac25e43d833036f8c76f7c01282 Author: Chris Lord Date: Fri Oct 22 15:24:49 2010 +0100 state: Fix crasher when removing the last key of a transitioning state If ClutterState is in the middle of a transition and you remove all the keys from the target state, the target state will be destroyed without stopping the animation/unsetting the target state. This caused an invalid memory access. clutter/clutter-state.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 5700b34b9cd894e6847dc8973e358104b47fdae5 Author: Chris Lord Date: Thu Oct 21 16:51:45 2010 +0100 state: Allow setting a NULL state Allow setting a %NULL state. This has the effect of unsetting the current state and stopping all animation. This allows you to, for example, start a state transition, set the state to NULL, alter the state transition and then resume it again, by just setting it. clutter/clutter-state.c | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) commit 9c5f09f32d291aac58fa7e7456302272e4c2a49e Author: Emmanuele Bassi Date: Mon Oct 25 17:16:24 2010 +0100 Update NEWS NEWS | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit ef6b46d8262cb9910dc70afa3cff2c2443f65d69 Merge: 0cb2ef4 f6ab7ec Author: Emmanuele Bassi Date: Mon Oct 25 17:09:46 2010 +0100 Merge branch 'wip/path-constraint' * wip/path-constraint: docs: Add PathConstraint tests: Add a PathConstraint interactive test Add ClutterPathConstraint actor-box: Add setters for origin and size commit f6ab7eccd9c946c75b5b4f4eba0c4a834f31804a Author: Emmanuele Bassi Date: Mon Oct 25 16:09:40 2010 +0100 docs: Add PathConstraint clutter/clutter-path-constraint.c | 68 ++++++++++++++++++++++++++++ clutter/clutter-path-constraint.h | 2 +- doc/reference/clutter/clutter-sections.txt | 16 +++++++ 3 files changed, 85 insertions(+), 1 deletions(-) commit 6f8e46e0b356ab5f367a1042be04392fe0775cba Author: Emmanuele Bassi Date: Mon Oct 25 15:47:15 2010 +0100 tests: Add a PathConstraint interactive test tests/interactive/Makefile.am | 3 +- tests/interactive/test-path-constraint.c | 63 ++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletions(-) commit 6b2cbb990835f366060e59344db9019d271b2a89 Author: Emmanuele Bassi Date: Mon Oct 25 15:46:04 2010 +0100 Add ClutterPathConstraint ClutterPathConstraint is a simple Constraint implementation that modifies the allocation of the Actor to which is has been applied using a progress value and a ClutterPath. clutter/Makefile.am | 2 + clutter/clutter-path-constraint.c | 287 +++++++++++++++++++++++++++++++++++++ clutter/clutter-path-constraint.h | 65 +++++++++ clutter/clutter.h | 1 + 4 files changed, 355 insertions(+), 0 deletions(-) commit 3f6ec0ba5a153f8185db8e481f823b49030bd8bc Author: Emmanuele Bassi Date: Mon Oct 25 15:45:35 2010 +0100 actor-box: Add setters for origin and size clutter/clutter-actor-box.c | 49 ++++++++++++++++++++++++++++ clutter/clutter-types.h | 7 ++++ doc/reference/clutter/clutter-sections.txt | 2 + 3 files changed, 58 insertions(+), 0 deletions(-) commit 0cb2ef434b371d5d372040e03ec6705f2991ad39 Author: Damien Lespiau Date: Thu Oct 14 11:48:00 2010 -0400 eglnative: Fix the type of stage for eglnative CLUTTER_TYPE_STAGE_EGLNATIVE does not exist any more, use CUTTER_TYPE_STAGE_EGL instead. configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 6da18b6e4f93bb1430698959d6280cb53f9e2ff2 Author: Neil Roberts Date: Thu Oct 21 17:20:44 2010 +0100 win32: Fix clutter_win32_disable_event_retrieval There was previously a flag that gets set when this function was called but nothing checked it so the function effectively did nothing. Also the flag was a member of the backend struct but this can't be used because the function should be called before clutter_init so the backend is not ready yet. This patch makes the event disabling work more like the X11 backend and set a global variable instead. clutter/win32/clutter-backend-win32.c | 30 ++++++++++++++++++++++++++++-- clutter/win32/clutter-backend-win32.h | 1 - clutter/win32/clutter-event-win32.c | 20 -------------------- 3 files changed, 28 insertions(+), 23 deletions(-) commit e6099cdd4bd08d81cab51ff4fc291c839d7f37e3 Author: Ole André Vadla Ravnås Date: Thu Oct 14 15:30:54 2010 +0200 win32: Use _clutter_actor_rerealize() like X11 backend does http://bugzilla.clutter-project.org/show_bug.cgi?id=1654 clutter/win32/clutter-stage-win32.c | 90 +++++++++++++++++++++++++--------- 1 files changed, 66 insertions(+), 24 deletions(-) commit e66c679e84fd604d714828dceba1a50105790181 Author: Neil Roberts Date: Fri Aug 27 15:54:21 2010 +0100 win32: Add a public clutter_win32_handle_event function This function handles a single windows message. The idea is that it could be used by clutter-gtk to forward on events from a GdkEventFilter. The function replaces the old message_translate() function. That function didn't translate the event anymore anyway and instead it could generate multiple events so clutter_win32_handle_event seems like a more appropriate name. The function returns TRUE or FALSE depending on whether the event was completely handled instead of setting call_window_proc. clutter/win32/clutter-event-win32.c | 70 +++++++++++++++++---------- clutter/win32/clutter-win32.h | 2 + doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 47 insertions(+), 26 deletions(-) commit 52744c0d9db6d7f9738d31b6d9f774c0912fcad0 Author: Neil Roberts Date: Thu Oct 21 16:27:17 2010 +0100 clutter-stage: Set the Cogl framebuffer size after allocating When handling an allocation on the stage, Clutter uses the oppurtunity to inform Cogl of the new size of the framebuffer so that it can handle the viewport correctly. It queries the size of the window implementation using a backend virtual function. However it was doing this before letting the backend handle the allocation so on Win32 it would end up using the previous framebuffer size. This wasn't affecting the X11 backend because in that case the resizes are asynchronous so setting the stage size causes one allocation which ends up sending a window size request. Eventually a ConfigureNotify is received which causes the size of the stage to be set again and another allocation is fired meaning the framebuffer size will be set again this time with the correct size. In Win32 the resizes are synchronous so we don't have this second allocation. clutter/clutter-stage.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) commit cc7977988c92ad7fa96f0a1dd0a8581432f090ca Author: Neil Roberts Date: Mon Oct 25 13:15:01 2010 +0100 cogl-context-winsys: Avoid zero-length arrays When compiling for non-glx platforms the winsys feature data array ends up empty. Empty arrays cause problems for MSVC so this patch adds a stub entry so that the array always has at least one entry. Based on a patch by Ole André Vadla Ravnås clutter/cogl/cogl/winsys/cogl-context-winsys.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) commit f1752ff3ba1828873f7f97f3842eadcc389e87a1 Author: Neil Roberts Date: Mon Oct 25 13:08:52 2010 +0100 Avoid mixing declarations and code Mixing declarations and code causes problems for MSVC as it is a C99 feature so we should try to avoid it. clutter/cally/cally-actor.c | 66 ++++++++++++++++------------- clutter/clutter-stage.c | 3 +- clutter/cogl/cogl/cogl-material-opengl.c | 9 ++++- clutter/cogl/cogl/cogl-material.c | 4 +- clutter/x11/clutter-event-x11.c | 5 +- tests/conform/test-cogl-blend-strings.c | 8 ++-- tests/conform/test-cogl-depth-test.c | 8 ++-- tests/conform/test-cogl-materials.c | 8 ++-- tests/conform/test-cogl-premult.c | 8 ++-- 9 files changed, 68 insertions(+), 51 deletions(-) commit 8e3674dcc12654e48e9c85e5aff2d56642512321 Author: Neil Roberts Date: Mon Oct 25 13:07:50 2010 +0100 Avoid variable length arrays in clutter-backend-x11 There was an array whose length was define by a static const int variable. GCC seems to consider this a variable-length array so it will cause warnings now that -Wvla is enabled. We might as well make this constant a #define instead to avoid the warning. clutter/x11/clutter-backend-x11.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit c3f47fa7d03ec3e7a5f963ced0457f27c3ec41ee Author: Neil Roberts Date: Mon Oct 25 13:03:39 2010 +0100 Add -Wdeclaration-after-statement and -Wvla to maintainer CFLAGS These warnings pick up C99 extensions that are commonly accidentally used and which cause problems when compiling with MSVC. configure.ac | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 164af55a6e52075afbc335a3ff15fe9b48ac9f31 Author: Giovanni Campagna Date: Sun Oct 24 14:45:16 2010 +0200 Avoid warnings on ClutterClone with a NULL source clutter_clone_apply_transform should check the source before calling methods on it, else criticals will be emitted. http://bugzilla.clutter-project.org/show_bug.cgi?id=2381 clutter/clutter-clone.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit c7bfe27e96ccc6295d0e774dacf3597ec7df146c Author: Emmanuele Bassi Date: Mon Oct 25 12:31:50 2010 +0100 Update NEWS NEWS | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) commit 276acf5854c0e589eae9a76c78ef1faa50c46caa Author: Ole André Vadla Ravnås Date: Sat Oct 9 23:07:26 2010 +0200 binding-pool: Use the correct marshaller clutter/clutter-binding-pool.c | 8 ++++---- clutter/clutter-marshal.list | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit c792431538e02c05f90f12bd4c36c72cf3f3eab4 Author: Ole André Vadla Ravnås Date: Thu Oct 14 13:11:46 2010 +0200 interval: Remember to chain up to parent in finalize() clutter/clutter-interval.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit d5634e37a262012f66022071d862ad9e5a8fbe53 Author: Neil Roberts Date: Mon Oct 4 14:34:24 2010 +0100 cogl-texture-2d-sliced: Use the other backends for the slices Instead of directly manipulating GL textures itself, CoglTexture2DSliced now works in terms of CoglHandles. It creates the texture slices using cogl_texture_new_with_size which should always end up creating a CoglTexture2D because the size should fit. This allows us to avoid replicating some code such as the first pixel mipmap tracking and it better enforces the separation that each texture backend is the only place that contains code dealing with each texture target. clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 20 +- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 1103 ++++++++------------ 2 files changed, 462 insertions(+), 661 deletions(-) commit 61f2f1c024a01368ff99e6639518463b175ff2c0 Author: Neil Roberts Date: Mon Oct 4 15:27:38 2010 +0100 Support foreign textures in the texture-2d and rectangle backends This adds two new internal functions to create a foreign texture for the texture 2d and rectangle backends. cogl_texture_new_from_foreign will now use one of these backends directly if there is no waste instead of always using the sliced texture backend. clutter/cogl/cogl/cogl-texture-2d-private.h | 7 + clutter/cogl/cogl/cogl-texture-2d.c | 135 +++++++++++++++++++- clutter/cogl/cogl/cogl-texture-rectangle-private.h | 7 + clutter/cogl/cogl/cogl-texture-rectangle.c | 118 ++++++++++++++++- clutter/cogl/cogl/cogl-texture.c | 42 +++++-- 5 files changed, 287 insertions(+), 22 deletions(-) commit 7b7b655e6ef45e5bdda25fe7b416ea632a0da25f Author: Damien Lespiau Date: Fri Oct 22 06:52:27 2010 +0100 build: Dist cookbook.xsl cookbook.xsl was not in EXTRA_DIST, so the cookbook was not buildable with released tarballs. doc/common/Makefile.am | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit cf46c8197e678bd53d3592307b326fa984c93eb9 Author: Emmanuele Bassi Date: Thu Oct 21 13:13:00 2010 +0100 Add copyright notices clutter/clutter-actor-meta-private.h | 24 ++++++++++++++++++++++++ clutter/clutter-actor-meta.c | 24 ++++++++++++++++++++++++ clutter/clutter-actor-meta.h | 24 ++++++++++++++++++++++++ clutter/clutter-actor-private.h | 21 +++++++++++++++++++++ clutter/clutter-backend-private.h | 21 +++++++++++++++++++++ clutter/clutter-device-manager-private.h | 24 ++++++++++++++++++++++++ clutter/clutter-paint-volume-private.h | 21 +++++++++++++++++++++ clutter/clutter-stage-manager-private.h | 24 ++++++++++++++++++++++++ clutter/clutter-stage-private.h | 21 +++++++++++++++++++++ 9 files changed, 204 insertions(+), 0 deletions(-) commit 46c597a1f674394d94ac9bdd61b3521d8bb0905a Author: Emmanuele Bassi Date: Thu Oct 21 12:16:05 2010 +0100 Clean up clutter-private.h/6 Move all Actor private API to a separate file. clutter/Makefile.am | 1 + clutter/clutter-actor-box.c | 2 + clutter/clutter-actor-private.h | 97 ++++++++++++++++++++++++++++ clutter/clutter-actor.c | 2 +- clutter/clutter-animator.c | 2 + clutter/clutter-behaviour-ellipse.c | 6 +- clutter/clutter-bind-constraint.c | 2 + clutter/clutter-cairo-texture.c | 1 + clutter/clutter-clone.c | 1 + clutter/clutter-desaturate-effect.c | 2 + clutter/clutter-input-device.c | 1 + clutter/clutter-master-clock.c | 1 + clutter/clutter-offscreen-effect.c | 1 + clutter/clutter-page-turn-effect.c | 2 + clutter/clutter-paint-volume.c | 1 + clutter/clutter-path.c | 3 +- clutter/clutter-private.h | 102 +----------------------------- clutter/clutter-rectangle.c | 1 + clutter/clutter-stage.c | 1 + clutter/clutter-text.c | 2 + clutter/clutter-texture.c | 1 + clutter/clutter-units.c | 2 + clutter/glx/clutter-stage-glx.c | 1 + clutter/wayland/clutter-stage-wayland.c | 7 +- clutter/win32/clutter-stage-win32.c | 1 + clutter/x11/clutter-event-x11.c | 3 +- clutter/x11/clutter-stage-x11.c | 1 + clutter/x11/clutter-x11-texture-pixmap.c | 1 + 28 files changed, 138 insertions(+), 110 deletions(-) commit cf3a29f224644b718458576191a6246883ba6485 Author: Emmanuele Bassi Date: Thu Oct 21 11:59:50 2010 +0100 Clean up clutter-private.h/5 Move PaintVolume private API to a separate header. clutter/Makefile.am | 1 + clutter/clutter-actor.c | 1 + clutter/clutter-clone.c | 2 +- clutter/clutter-paint-volume-private.h | 104 ++++++++++++++++++++++++++++++ clutter/clutter-paint-volume.c | 3 + clutter/clutter-private.h | 93 -------------------------- clutter/clutter-stage.c | 19 +++--- clutter/x11/clutter-event-x11.c | 1 + clutter/x11/clutter-x11-texture-pixmap.c | 4 +- 9 files changed, 124 insertions(+), 104 deletions(-) commit 43edfc940038f9582902d83e798b9985f8790f57 Author: Emmanuele Bassi Date: Thu Oct 21 11:49:37 2010 +0100 Clean up clutter-private.h/4 Move the private Backend API to a separate header. This also allows us to finally move the class vtable and instance structure to a separate file and plug the visibility hole that left the Backend class bare for everyone to poke into. clutter/Makefile.am | 1 + clutter/clutter-backend-private.h | 99 +++++++++++++++++++++++++++++ clutter/clutter-backend.c | 2 +- clutter/clutter-backend.h | 50 --------------- clutter/clutter-device-manager.c | 1 + clutter/clutter-event.c | 5 +- clutter/clutter-feature.c | 1 + clutter/clutter-main.c | 16 +++--- clutter/clutter-private.h | 37 ----------- clutter/clutter-stage.c | 2 +- clutter/clutter-units.c | 5 +- clutter/egl/clutter-backend-egl.h | 3 +- clutter/fruity/clutter-backend-fruity.h | 5 +- clutter/osx/clutter-backend-osx.h | 2 +- clutter/wayland/clutter-backend-wayland.h | 3 +- clutter/win32/clutter-backend-win32.h | 3 +- clutter/x11/clutter-backend-x11.h | 3 +- 17 files changed, 129 insertions(+), 109 deletions(-) commit 8613013ab086668360d4ce625fe7b896ca5ae0e0 Author: Emmanuele Bassi Date: Thu Oct 21 11:29:09 2010 +0100 Clean up clutter-private.h/3 Move Stage private API to a separate header. clutter/Makefile.am | 1 + clutter/clutter-actor.c | 2 +- clutter/clutter-backend.c | 2 + clutter/clutter-input-device.c | 1 + clutter/clutter-main.c | 2 +- clutter/clutter-master-clock.c | 1 + clutter/clutter-offscreen-effect.c | 1 + clutter/clutter-private.h | 69 ----------------------------- clutter/clutter-stage-manager-private.h | 7 +++ clutter/clutter-stage-private.h | 64 ++++++++++++++++++++++++++ clutter/clutter-stage.c | 2 +- clutter/clutter-texture.c | 1 + clutter/egl/clutter-backend-egl.c | 9 ++-- clutter/egl/clutter-stage-egl.c | 19 +++----- clutter/fruity/clutter-backend-fruity.c | 8 ++- clutter/glx/clutter-backend-glx.c | 11 +++-- clutter/glx/clutter-event-glx.c | 2 + clutter/glx/clutter-stage-glx.c | 21 +++------ clutter/osx/clutter-backend-osx.c | 7 ++- clutter/osx/clutter-stage-osx.c | 8 ++- clutter/wayland/clutter-backend-wayland.c | 11 +++-- clutter/wayland/clutter-stage-wayland.c | 20 +++----- clutter/win32/clutter-backend-win32.c | 13 +++--- clutter/win32/clutter-event-win32.c | 1 + clutter/win32/clutter-stage-win32.c | 19 +++----- clutter/x11/clutter-backend-x11.c | 6 +-- clutter/x11/clutter-event-x11.c | 1 + clutter/x11/clutter-stage-x11.c | 17 +++---- 28 files changed, 162 insertions(+), 164 deletions(-) commit 999c0637848bc36b2a668f52ff58125a1f298dd8 Author: Emmanuele Bassi Date: Thu Oct 21 10:59:49 2010 +0100 Clean up clutter-private.h/2 Move StageManager private API to a different header. clutter/Makefile.am | 1 + clutter/clutter-private.h | 8 -------- clutter/clutter-stage-manager-private.h | 18 ++++++++++++++++++ clutter/clutter-stage-manager.c | 13 ++----------- clutter/clutter-stage.c | 2 +- 5 files changed, 22 insertions(+), 20 deletions(-) commit c1771d152eaaa54017e80f370b2163eadc8c2fdc Author: Emmanuele Bassi Date: Thu Oct 21 10:54:14 2010 +0100 Clean up clutter-private.h/1 Move DeviceManager/InputDevice private API to a different header. clutter/Makefile.am | 23 ++++---- clutter/clutter-device-manager-private.h | 68 ++++++++++++++++++++++++ clutter/clutter-device-manager.c | 2 +- clutter/clutter-event.c | 4 +- clutter/clutter-input-device.c | 1 + clutter/clutter-main.c | 1 + clutter/clutter-private.h | 58 -------------------- clutter/clutter-stage.c | 2 +- clutter/wayland/clutter-input-device-wayland.c | 7 ++- clutter/win32/clutter-device-manager-win32.c | 2 +- clutter/win32/clutter-event-win32.c | 13 +++-- clutter/x11/clutter-device-manager-x11.c | 2 +- clutter/x11/clutter-event-x11.c | 11 ++-- clutter/x11/clutter-input-device-x11.c | 6 ++- 14 files changed, 109 insertions(+), 91 deletions(-) commit f709664f2338302f3ad09427d97847c21518cc1d Author: Emmanuele Bassi Date: Wed Oct 20 09:42:34 2010 +0100 build: Go back to autoreconf After testing and distchecking, I verified that autoreconf can still be used to rebuild the autotools setup. Thanks to Javier Jardón for the second pair of eyes. autogen.sh | 91 +++++------------------------------------------------------ 1 files changed, 8 insertions(+), 83 deletions(-) commit 68156c24c1e951f06a12feca4f13b9cd1627df61 Author: Emmanuele Bassi Date: Tue Oct 19 17:48:15 2010 +0100 build: Remove unused Makefile.am We switched to a non-recursive layout, hence we don't need Makefile.am in the osx/ and fruity/ sub-directories. clutter/fruity/Makefile.am | 24 ------------------------ clutter/osx/Makefile.am | 25 ------------------------- 2 files changed, 0 insertions(+), 49 deletions(-) commit ce3311df2683dae46b3b63a760ae87353f9f59b6 Author: Emmanuele Bassi Date: Tue Oct 19 12:32:02 2010 +0100 conform: Remove unnecessary destroy() calls Unparented actors are owned by the Script instance, and if that goes away then the actors go away with it. The fact that we needed an explicit destroy() before was a hint of a memory management issue that I blissfully - and regretfully - ignored for the sake of a passing test suite. tests/conform/test-script-parser.c | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-) commit b5bbdd6cecc47beb0d299fdcf92aa58f71aabb1e Author: Emmanuele Bassi Date: Tue Oct 19 11:03:13 2010 +0100 build: Add test wrappers to the main ignore file They are generated at configure time, so it's a good idea to have them in the main ignore file instead of adding them to the built ignore files under tests. .gitignore | 2 ++ tests/conform/Makefile.am | 1 - tests/interactive/Makefile.am | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) commit e80825535adf57db6d7faa16b81eddb7b5d6b065 Author: Emmanuele Bassi Date: Tue Oct 19 10:48:39 2010 +0100 build: Show whether we have XComposite Since we're doing it for other optional X11 extensions as well. configure.ac | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit dd2f55c6f6bbc2f0a12b70ccf90cf7840b6e2212 Author: Emmanuele Bassi Date: Tue Oct 19 10:40:57 2010 +0100 x11: Protect XComposite API calls Since we allow compiling Clutter without the XComposite extension available, we need to protect the calls to the XComposite API with the guards provided by the configure script. clutter/x11/clutter-backend-x11.c | 8 +++++++- clutter/x11/clutter-x11-texture-pixmap.c | 16 ++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) commit 21eb49098a7e90007b9043917a8dcf816db765b7 Author: Emmanuele Bassi Date: Mon Sep 13 23:29:52 2010 +0300 script: Fix the memory management Currently, the memory management in ClutterScript is overly complicated. The basic design tenet should be: - ClutterScript owns a reference on every object it creates This allows the Script instance to reliably handle the lifetime of the instances from creation to disposal. In case of unmerge, the Script instance should destroy any Actor instance, except for the Stage, and release the reference it owns. The Stage is special because it's really owned by Clutter itself, and it should be destroyed explicitly. When disposing the Script itself, it should just release the reference; any parented actor, or any InitiallyUnowned instance, will then be managed by the parent object, as they should, while every GObject instance will go away, as documented. This commit is based on a patch by: Henrik Hedberg http://bugzilla.clutter-project.org/show_bug.cgi?id=2316 clutter/clutter-script-parser.c | 30 ++++++++++++++++++++++-------- clutter/clutter-script-private.h | 3 ++- clutter/clutter-script.c | 20 +++++--------------- 3 files changed, 29 insertions(+), 24 deletions(-) commit 20a359cc530bac6a27bfa46839b49a88e1bec3d6 Author: Emmanuele Bassi Date: Tue Oct 19 01:41:05 2010 +0100 debug: Do not use '&' in the messages Use ':' as a separator between G_STRLOC and the debug message, like we do for warnings. clutter/clutter-debug.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 78d4073f8ebb115d4e02f5ffea11260ed286719f Author: Emmanuele Bassi Date: Tue Oct 19 01:40:44 2010 +0100 Remove unused variables clutter/clutter-script.c | 1 - clutter/clutter-shader-effect.c | 1 - 2 files changed, 0 insertions(+), 2 deletions(-) commit 1c9dcdaeb295867d86a447cfc3df44d4e74d3ae0 Author: Damien Lespiau Date: Thu Oct 14 15:33:17 2010 +0100 build: Fix CLUTTER_EGL_BACKEND definition for eglnative and cex100 CLUTTER_EGL_BACKEND is used to define a special EGL native backend to use and was introduced for the CEX100 EGL backend. Unfortunately CLUTTER_EGL_BACKEND was defined to "cex100" for eglnative, which is obviously wrong. The paches defines the right values for CLUTTER_EGL_BACKEND for the eglnative and cex100 flavours. configure.ac | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 32270730bdcc20d9ac19c5b66cfda08e8e839937 Author: Damien Lespiau Date: Thu Oct 14 16:32:13 2010 +0100 build: Fix EGL/CEX100 build with GLES2 Some headers files have been renamed or removed and the gles(2) did not compile anymore, fix that. clutter/cogl/cogl/driver/gles/cogl-gles.c | 2 +- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0f613ea134b7369a214e1bb0056e3a21233982f9 Author: Emmanuele Bassi Date: Fri Oct 15 17:35:41 2010 +0100 cairo-texture: Allow overriding the surface creation By using a new signal, ::create-surface (width, height), it should be possible for third party code and sub-classes to override the default surface creation code in CairoSurface. This commit takes a bit of the patch from: http://bugzilla.clutter-project.org/show_bug.cgi?id=1878 which cleans up CairoTexture; the idea, mutuated from that bug, is that the CairoTexture actor checks whether the surface it has it's an image one, and in that case it uses a Cogl texture as the backing store. In case the surface is not an image one we assume that the surface itself has some way of updating the GL state and flush the surface. clutter/clutter-cairo-texture.c | 303 ++++++++++++++---------- clutter/clutter-cairo-texture.h | 7 +- clutter/clutter-marshal.list | 1 + tests/interactive/Makefile.am | 2 +- tests/interactive/test-cairo-flowers.c | 223 +++++++++++++++++ tests/interactive/test-clutter-cairo-flowers.c | 224 ----------------- 6 files changed, 404 insertions(+), 356 deletions(-) commit 63e314b07e8212089c2c50aab015790fe8908e6a Author: Emmanuele Bassi Date: Fri Oct 15 16:09:19 2010 +0100 build: Depend on cairo-gobject Starting from version 1.10, Cairo ships GTypes for its data types. README | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8729c01377d11874107bdee5d53dbcb23874db20 Author: Emmanuele Bassi Date: Fri Oct 15 16:09:12 2010 +0100 build: Remove unnecessary g-i version check configure.ac | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) commit 050e775da27209c5720d5ba8bffde786add562cd Author: Emmanuele Bassi Date: Fri Oct 15 15:24:27 2010 +0100 Move more classes to install_properties() clutter/clutter-actor-meta.c | 51 +++++------ clutter/clutter-align-constraint.c | 56 ++++++------- clutter/clutter-alpha.c | 20 ++-- clutter/clutter-animation.c | 86 +++++++++--------- clutter/clutter-animator.c | 33 ++++---- clutter/clutter-behaviour.c | 18 ++-- clutter/clutter-bin-layout.c | 104 +++++++++++----------- clutter/clutter-bind-constraint.c | 51 +++++------ clutter/clutter-binding-pool.c | 20 +++-- clutter/clutter-cairo-texture.c | 39 ++++----- clutter/clutter-child-meta.c | 35 ++++---- clutter/clutter-click-action.c | 31 ++++--- clutter/clutter-clone.c | 20 +++-- clutter/clutter-colorize-effect.c | 18 ++-- clutter/clutter-deform-effect.c | 55 ++++++------ clutter/clutter-desaturate-effect.c | 28 +++--- clutter/clutter-device-manager.c | 20 ++-- clutter/clutter-flow-layout.c | 165 ++++++++++++++++++----------------- clutter/clutter-script.c | 36 ++++---- clutter/clutter-shader-effect.c | 25 +++--- clutter/clutter-timeline.c | 72 ++++++++-------- 21 files changed, 492 insertions(+), 491 deletions(-) commit 8429aa8d755b268975c2870978f8d8484f584542 Author: Emmanuele Bassi Date: Fri Oct 8 15:47:00 2010 +0100 Remove unnecessary GLib version checks We now depend on a newer version of GLib than those checks tested for. clutter/clutter-animation.c | 6 ------ clutter/clutter-animator.c | 5 ----- clutter/clutter-box.c | 5 ----- clutter/clutter-container.c | 5 ----- clutter/clutter-frame-source.c | 3 --- clutter/clutter-interval.c | 10 ---------- clutter/clutter-layout-manager.c | 5 ----- clutter/clutter-master-clock.c | 2 -- clutter/clutter-state.c | 5 ----- clutter/clutter-timeout-pool.c | 2 -- clutter/x11/clutter-event-x11.c | 3 --- 11 files changed, 0 insertions(+), 51 deletions(-) commit 7dd09e21861bd1b7ceaea112b6e4fb69aeebbf1e Author: Emmanuele Bassi Date: Fri Oct 8 15:21:57 2010 +0100 Use G_DEFINE_BOXED_TYPE for all boxed types We actually need a couple more macros for registering GValue transformation functions. Those should be added to upstream GLib. clutter/clutter-actor-box.c | 60 ++++++++++----------------- clutter/clutter-actor.c | 88 ++++++++++++++-------------------------- clutter/clutter-animator.c | 16 +------ clutter/clutter-behaviour.c | 18 +------- clutter/clutter-color.c | 29 +++---------- clutter/clutter-event.c | 16 ++----- clutter/clutter-paint-volume.c | 16 +------ clutter/clutter-path.c | 48 +++++++--------------- clutter/clutter-private.h | 24 ++++++++--- clutter/clutter-stage.c | 27 ++---------- clutter/clutter-state.c | 15 +----- clutter/clutter-state.h | 1 + clutter/clutter-units.c | 45 +++++---------------- 13 files changed, 123 insertions(+), 280 deletions(-) commit 09a830d2945456d882cbf8b326264041b172fea9 Author: Emmanuele Bassi Date: Fri Oct 8 14:49:47 2010 +0100 Remove conditional wrappers for property installation/notification For the time being, just keep the #define's. clutter/clutter-drag-action.c | 11 ++++++----- clutter/clutter-private.h | 27 ++------------------------- 2 files changed, 8 insertions(+), 30 deletions(-) commit 9caf11f2d8f7120830da9f10a694ccc8f30ebee1 Author: Emmanuele Bassi Date: Fri Oct 8 14:47:46 2010 +0100 Use G_DEFINE_INTERFACE GObject provides us with a nice, safe macro for defining interface types. clutter/clutter-animatable.c | 16 +-- clutter/clutter-container.c | 180 +++++++++------------ clutter/clutter-media.c | 348 +++++++++++++++++++--------------------- clutter/clutter-scriptable.c | 18 +-- clutter/clutter-stage-window.c | 25 +--- 5 files changed, 253 insertions(+), 334 deletions(-) commit 8f5d6cb790a426536b462297e76be9159109e245 Author: Emmanuele Bassi Date: Fri Oct 8 14:47:13 2010 +0100 build: Depend on GLib ≥ 2.26.0 We are going to need some new macros and API. README | 2 +- configure.ac | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit 2b4ee9ab548a58784da7ccc710cbbd213a6c45c9 Author: Emmanuele Bassi Date: Fri Oct 15 16:05:44 2010 +0100 actor: Add more checks to the redraw queue clutter/clutter-actor.c | 4 ++-- clutter/clutter-stage.c | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) commit ad0e7a9e15a18f26b1002056427ded9a9f011e86 Author: Emmanuele Bassi Date: Fri Oct 15 15:24:58 2010 +0100 moduleset: Add Atk as a Clutter dependency build/clutter.modules | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 56c89bd86b61f3c2ecba04d8a3afd4aa6250cf09 Author: Emmanuele Bassi Date: Fri Oct 15 12:40:43 2010 +0100 osx: Fix glib.h include path The fix for removing glib/gmain.h introduced the wrong path for glib.h. clutter/osx/clutter-event-osx.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit d8426197554f4745bc2489c81435b9510b62d21a Author: Roland Peffer Date: Thu Oct 14 18:23:02 2010 +0100 osx: Add button mask to the modifier state translation The modifier state translation is missing the CLUTTER_BUTTON*_MASK. http://bugzilla.clutter-project.org/show_bug.cgi?id=2365 Signed-off-by: Emmanuele Bassi clutter/osx/clutter-event-osx.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) commit 134ce072e793834c7fe08a270c03ee5b2efbe998 Author: Kristian Høgsberg Date: Wed Sep 29 17:10:44 2010 -0400 The amazing lazy-copy-back-repaint-page-flip Always use pageflipping, but avoid full repaint by copying back dirty regions from front to back. Additionally, we dealy copying back until we're ready to paint the new frame, so we can avoid copying areas that will be repainted anyway. This is the least amount of copying per frame we can get away with at all and at the same time we don't have to worry about stalling the GPU on synchronized blits since we always pageflip. clutter/wayland/clutter-backend-wayland.c | 8 + clutter/wayland/clutter-stage-wayland.c | 295 ++++++++++++++++++++++------- clutter/wayland/clutter-stage-wayland.h | 4 +- 3 files changed, 241 insertions(+), 66 deletions(-) commit cb5582c4ab1207738a2b5dc4c94fb4551e696c20 Author: Kristian Høgsberg Date: Tue Sep 28 10:17:46 2010 -0400 Add wayland backend This adds a clutter backend for running under the wayland window system. Initial cogl framebuffer integration by Robert Bragg. clutter/Makefile.am | 19 + clutter/cogl/cogl/Makefile.am | 4 + clutter/cogl/cogl/winsys/cogl-egl.c | 10 +- clutter/wayland/clutter-backend-wayland.c | 552 ++++++++++++++++++++++++ clutter/wayland/clutter-backend-wayland.h | 94 ++++ clutter/wayland/clutter-event-wayland.c | 148 +++++++ clutter/wayland/clutter-input-device-wayland.c | 340 +++++++++++++++ clutter/wayland/clutter-stage-wayland.c | 368 ++++++++++++++++ clutter/wayland/clutter-stage-wayland.h | 94 ++++ clutter/wayland/clutter-wayland.h | 60 +++ configure.ac | 61 +++- 11 files changed, 1738 insertions(+), 12 deletions(-) commit a7cf98ebfc9ca13e3f84bbe33171a2218cfe039b Author: Kristian Høgsberg Date: Mon Sep 27 13:25:50 2010 -0400 Initialize color masks lazily When we don't use a window system drawable, we can't query the color masks at context initialization time. Do it lazily so we're sure to have a current context with a valid framebuffer. clutter/clutter-main.c | 35 ++++++++++++++++++++--------------- 1 files changed, 20 insertions(+), 15 deletions(-) commit f456116c18dac24454f9c46b02677a51f79e4052 Author: Robert Bragg Date: Thu Oct 14 16:19:55 2010 +0100 When unparenting an actor, remove queued redraws for all descendants We need to make sure that redraws queued for actors on a stage are for actors actually in the stage. So in clutter_actor_unparent() descend through the children and remove redraws. Just removing the actor itself isn't good enough since an entire hierarchy can be removed from the stage without breaking it up into individual actors. http://bugzilla.clutter-project.org/show_bug.cgi?id=2359 This is based on an original patch from Owen Taylor who debugged the root cause of this bug; thanks. clutter/clutter-actor.c | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 deletions(-) commit 07f2dba7e24abd7b25327cf6b6b3f60dc17091d2 Author: Robert Bragg Date: Thu Sep 30 18:42:40 2010 +0100 stage: handle unclipped redraw following clipped In the case that an unclipped redraw of an actor is queued after a clipped we should update any existing ClutterStageQueueRedrawEntry so entry->has_clip = FALSE and free the previous clip. clutter/clutter-stage.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) commit d032b9b2bf21c9c7c02f1a1b11d4e4a1bc7472b6 Author: Emmanuele Bassi Date: Tue Oct 12 17:31:15 2010 +0100 conform: Start cleaning up the conformance test suite Re-order the units into a sensible list, with basic tests at the beginning, and per-class tests at the end - with Cogl last. Also, start renaming the unit functions from test_ to , so that the executable wrappers and the reports have sensible names. tests/conform/test-actor-destroy.c | 18 ++++++- tests/conform/test-actor-invariants.c | 7 --- tests/conform/test-actor-size.c | 6 +-- tests/conform/test-anchors.c | 6 +-- tests/conform/test-clutter-text.c | 46 ++++------------ tests/conform/test-conform-main.c | 80 +++++++++++++++-------------- tests/conform/test-pick.c | 4 +- tests/conform/test-text-cache.c | 3 +- tests/conform/test-timeline-interpolate.c | 3 +- tests/conform/test-timeline-rewind.c | 3 +- 10 files changed, 77 insertions(+), 99 deletions(-) commit b5d5b9628ed8f683231134ac36b75efe80022f06 Author: Emmanuele Bassi Date: Tue Oct 12 17:11:52 2010 +0100 conform: Implement TEST_CONFORM_TODO() correctly The TODO() macro for adding new tests to the test suite has always meant to be implemented like the TODO block in Test::More, i.e. a test that is assumed to fail, and which warns if it unexpectedly succeeds. Since GTest lacks the expressivity of Test::More, the implementation just verifies that the tests marked as TODO actually fail, and will fail if they happen to succeed - at which point the developer will have to change the macro to SIMPLE or SKIP. tests/conform/ADDING_NEW_TESTS | 70 ++++++++++++++++++++++++-------- tests/conform/Makefile.am | 6 ++- tests/conform/test-actor-invariants.c | 7 +++ tests/conform/test-conform-common.h | 6 +++ tests/conform/test-conform-main.c | 30 +++++++++++++- 5 files changed, 96 insertions(+), 23 deletions(-) commit 2a23bab8191678f33f10f0bd15fc05c7b05c89d3 Author: Emmanuele Bassi Date: Tue Oct 12 15:43:42 2010 +0100 conform: Save the revision and date inside the test report Even if gtester-report doesn't use that information (yet), we should store the revision of Clutter that generated the report, and the date in which the test suite was ran. tests/conform/Makefile.am | 41 +++++++++++++++++++++++++++++------------ 1 files changed, 29 insertions(+), 12 deletions(-) commit e6418a9dec874b55d51afede7b039d3fd31908d4 Author: Emmanuele Bassi Date: Tue Oct 12 15:43:27 2010 +0100 constraints: Remove unused variable clutter/clutter-align-constraint.c | 1 - clutter/clutter-bind-constraint.c | 1 - 2 files changed, 0 insertions(+), 2 deletions(-) commit 7fd6273c25569fe4f37ad371532d93e5170e51f7 Author: Neil Roberts Date: Mon Oct 11 16:16:45 2010 +0100 tests: Generate the stub scripts using sed Instead of trying to run ./test-conformance with the -l option to generate a list of available tests it now runs sed on the test-conform-main.c file instead. Running the generated executable is a pain for cross-compiling so it would be nice to avoid it unless it's absolutely necessary. Although you could tell people who are cross compiling to just disable the conformance tests, this seems a shame because they could still be useful along with the wrappers for example if the cross compile is built to a shared network folder where the tests can be run on the actual device. The sed script is a little more ugly than it could be because it tries to avoid using the GNU extensions '\+' and '\|'. The script ends up placing restrictions on the format of the C file because the tests must all be listed on one line each. There is now a comment to explain this. Hopefully the trade off is worth it. http://bugzilla.clutter-project.org/show_bug.cgi?id=2363 tests/conform/Makefile.am | 6 ++++-- tests/conform/test-conform-main.c | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) commit 100d541f479d070660905fa763b625853f17bfee Author: Neil Roberts Date: Tue Oct 12 14:43:10 2010 +0100 tests: Re-enable the test-anchors conformance test This test was disabled in b5d58213. The commit message doesn't mention this so I'm guessing it was a mistake. In any case the test appears to work now anyway so it should be re-enabled. http://bugzilla.clutter-project.org/show_bug.cgi?id=2363 tests/conform/test-conform-main.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) commit 2831addcf5ef1e4070fd2fabbe1ce71385b53062 Author: Emmanuele Bassi Date: Tue Oct 12 14:53:20 2010 +0100 test-flow-layout: Track stage size by default Instead of requiring a special command line switch. tests/interactive/test-flow-layout.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) commit 4e724aed46cd7ad0ad7718b584a0f1691b12a09f Author: Emmanuele Bassi Date: Tue Oct 12 14:09:47 2010 +0100 bind-constraint: Use ::queue-relayout Instead of using the allocation-changed signal, use the queue-relayout signal on the source to queue a relayout on the actor to which the BindConstraint has been attached to. The ::allocation-changed signal is not always enough, given that a BindConstraint can use the position as well as the size of an actor to drive the allocation of another; in this regard, it's much similar to a ClutterClone, which requires a notification on every change, even potential, and not just real ones, given the short-circuiting done inside ClutterActor. clutter/clutter-bind-constraint.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-) commit 5c82b2551c2053f76bfb09b6d36a5ea4c4e93104 Author: Emmanuele Bassi Date: Tue Oct 12 14:09:17 2010 +0100 constraints: Do not check for :enabled ClutterActor will do it for us. clutter/clutter-align-constraint.c | 3 --- clutter/clutter-bind-constraint.c | 3 --- 2 files changed, 0 insertions(+), 6 deletions(-) commit 3f27afde2484a01c71e0b484d2f485e5ce15f5d7 Author: Emmanuele Bassi Date: Tue Oct 12 14:08:07 2010 +0100 actor: Use an explicit check for NULL Follow the coding style, and don't use the implicit C boolean equivalence for NULL pointers. clutter/clutter-actor.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 3b72fdb20cca143f386d9a81dc42fc5ac64c48e7 Author: Emmanuele Bassi Date: Tue Oct 12 14:07:27 2010 +0100 actor: Queue a relayout when adding/removing constraints Constraints change the way an actor is allocated; this warrants a relayout. clutter/clutter-actor.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 91a9a355c32e86e597c57f3fd8b4deaecad0b9a4 Author: Emmanuele Bassi Date: Tue Oct 12 14:04:21 2010 +0100 actor: Check CluterActorMeta:enabled Instead of delegating the check for the ActorMeta:enabled property to the sub-classes of ClutterActorMeta, ClutterActor can do the check prior to using the ClutterActorMeta instances. clutter/clutter-actor.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) commit 3f6b82c9c9e75be6ba174f5964c85809ab0746cc Author: Emmanuele Bassi Date: Tue Oct 12 14:04:05 2010 +0100 actor: Add debugging note for allocation changes clutter/clutter-actor.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 89a389cd2bdfa78768b5901a8a2865cb7d1a8c83 Author: Emmanuele Bassi Date: Mon Oct 11 15:57:22 2010 +0100 actor-box: Split out ActorBox into its own file clutter-actor.c is getting way too large, so splitting it up wherever possible makes sense. clutter/Makefile.am | 1 + clutter/clutter-actor-box.c | 440 +++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-actor.c | 438 ------------------------------------------ 3 files changed, 441 insertions(+), 438 deletions(-) commit 7a54bdc65dcb9eb3d4d30020f65c255ef6f86f29 Author: Emmanuele Bassi Date: Mon Oct 11 15:52:50 2010 +0100 vertex: Register progress function This allows animating properties storing a ClutterVertex. clutter/clutter-actor.c | 32 ++++++++++++++++++++++++++++---- 1 files changed, 28 insertions(+), 4 deletions(-) commit 4931802feea47c2fd89aa171a8fd05ebbfa087b4 Author: Emmanuele Bassi Date: Mon Oct 11 15:44:09 2010 +0100 geometry: Register a progress function This allows animating properties storing a ClutterGeometry. clutter/clutter-actor.c | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) commit a5fc90d4d99cf904abd60ed0be0356ecb1efb40a Author: Emmanuele Bassi Date: Mon Oct 11 15:20:25 2010 +0100 actor-box: Register a progress function So that we can animate properties storing ClutterActorBox. clutter/clutter-actor.c | 32 ++++++++++++++++++++++++++++---- 1 files changed, 28 insertions(+), 4 deletions(-) commit 2f21c851eafbe217661c3010ad6388414e27a56b Author: Emmanuele Bassi Date: Mon Oct 11 15:07:06 2010 +0100 script: Fix annotation for get_object()'s return value clutter/clutter-script.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit dcf266261645fd2deda5c68ded438160bccd7235 Author: Emmanuele Bassi Date: Mon Oct 11 15:06:11 2010 +0100 interval: Remove special casing for ClutterColor ClutterColor registers a progress function on type initialization, so we don't need to special case it any more. clutter/clutter-interval.c | 17 ----------------- 1 files changed, 0 insertions(+), 17 deletions(-) commit d5376bf317b5b682d85e64f1815f7c308da2ffda Author: Emmanuele Bassi Date: Mon Oct 11 15:04:54 2010 +0100 color: Add Color.interpolate() method The interpolate() method does what it says on the tin: it interpolates between two colors using the given factor. ClutterColor uses it to register a progress function for Intervals. clutter/clutter-color.c | 48 ++++++++++++++++++++++++++++ clutter/clutter-color.h | 5 +++ doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 54 insertions(+), 0 deletions(-) commit 7e112472b5ad9deea9b0ad1fda47aa16199a780a Author: Neil Roberts Date: Tue Oct 5 17:17:53 2010 +0100 cogl-texture-2d-sliced: Use the smallest possible waste When picking a size for the last slice in a texture, Cogl would always pick the biggest power of two size that doesn't create too much waste and is less than or equal to the previous slice size. However this can end up creating a texture that is bigger than needed if there is a smaller power of two. For example, if the maximum waste is 127 (the current default) and we try to create a texture that is 257 pixels wide it will decide that the next power of two (512) is too much waste (255) so it will create the first slice at 256 pixels wide. Then we only have 1 pixel left to allocate but Cogl would pick the next smaller size that has a small enough waste which is 128. But of course 1 is already a power of two so that's redundantly oversized by 127. This patch fixes it so that whenever it finds a size that would be big enough, instead of using exactly that it picks the next power of two up from the size we need to fill. http://bugzilla.clutter-project.org/show_bug.cgi?id=2355 clutter/cogl/cogl/cogl-texture-2d-sliced.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 1f106b35a99e3784e441feca2df983efafa9fbd9 Author: Emmanuele Bassi Date: Mon Oct 11 13:52:09 2010 +0100 Whitespace alignment fixes clutter/clutter-paint-volume.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 68d656c61badd7a88d7271600a59f24b05fbc36e Author: Emmanuele Bassi Date: Mon Oct 11 13:51:12 2010 +0100 paint-volume: Add arguments checks In some cases we access the arguments in public functions without, or prior to checking the arguments. clutter/clutter-paint-volume.c | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) commit 8089af3c1b0e9d9501ee5fad4249a3af1bfdb5dc Author: Owen W. Taylor Date: Thu Oct 7 16:00:47 2010 -0400 ClutterClone: Handle clone_source == NULL for get_paint_volume() It's valid to have a ClutterClone without a clone source; in this case the paint volume is empty. http://bugzilla.clutter-project.org/show_bug.cgi?id=2360 clutter/clutter-clone.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit e0058925349046e315e45e14747879e05bdab262 Author: Emmanuele Bassi Date: Mon Oct 11 13:32:26 2010 +0100 clone: Remove unnecessary G_UNLIKELY macros A Clone:source property might be NULL, and we should not penalize performance when we can just bail out early, because that would kind of defeat the point. clutter/clutter-clone.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 12f80db8b8e826db245880c28f05facd0189c0f8 Author: Emmanuele Bassi Date: Mon Oct 11 12:00:18 2010 +0100 docs: Update the README Add a minimal building reference, and point to git-bz for filing patches to Bugzilla. README | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) commit f8af2da4c8b2e428baba750fac18a38904f55c35 Author: Emmanuele Bassi Date: Sun Oct 10 09:31:55 2010 +0100 osx: Compilation fixes Replace deprecated symbols with the correct ones. clutter/osx/clutter-backend-osx.c | 8 +++- clutter/osx/clutter-event-osx.c | 104 ++++++++++++++++++++++++------------ clutter/osx/clutter-stage-osx.c | 2 +- 3 files changed, 77 insertions(+), 37 deletions(-) commit 981fed1f63ecd1cc077c50869e9814c439ccf407 Author: Emmanuele Bassi Date: Fri Oct 8 13:29:49 2010 +0100 box-layout: Plug a memory leak Similar to commit 4724be167f19fe58cb38179e6f3b34b6797ff639 for TableLayout. http://bugzilla.clutter-project.org/show_bug.cgi?id=2358 clutter/clutter-box-layout.c | 39 +++++++++++++-------------------------- 1 files changed, 13 insertions(+), 26 deletions(-) commit 4724be167f19fe58cb38179e6f3b34b6797ff639 Author: Neil Roberts Date: Wed Oct 6 16:01:03 2010 +0100 Plug a memory leak in clutter-table-layout Whenever the allocation is changed on a child of a ClutterTableLayout and animations are not in effect then it would store a copy of the allocation in the child meta data. However it was not freeing the old copy of the allocation so it would end up with a small leak. Instead of just changing it to free the old value this patch makes it store the allocation inline in the meta data struct because it seems that the size of an actor box is already quite small compared to the size of the meta data struct so it is probably not worth having a separate allocation for it. To detect the case when there has not yet been an allocation a separate boolean is used instead of storing NULL. http://bugzilla.clutter-project.org/show_bug.cgi?id=2358 clutter/clutter-table-layout.c | 39 ++++++++++++++++----------------------- 1 files changed, 16 insertions(+), 23 deletions(-) commit 42dac6c9971fc33acae95f02d6e3605324a8d7f3 Author: Emmanuele Bassi Date: Thu Oct 7 18:01:53 2010 +0100 autogen.sh: libtool 2.4 has been released autogen.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit eec1a5fb7ad0c5d5f6169abbd1825bd083a940c0 Author: Damien Lespiau Date: Thu Oct 7 12:17:33 2010 +0100 po: Update French localization Signed-off-by: Emmanuele Bassi po/fr.po | 264 +++++++++++++++++++++++++++++++------------------------------- 1 files changed, 132 insertions(+), 132 deletions(-) commit 7bdbbe6a8c372e902753151cfacb2a6d7505b96c Author: Andika Triwidada Date: Tue Oct 5 17:23:37 2010 +0100 po: Update Indonesian localization Signed-off-by: Emmanuele Bassi po/id.po | 223 +++++++++++++++++++++++-------------------------------------- 1 files changed, 84 insertions(+), 139 deletions(-) commit 12119ff063f0a7d71c2d7431697004a620d154ab Author: Damien Lespiau Date: Tue Oct 5 17:22:56 2010 +0100 po: Add French localization Signed-off-by: Emmanuele Bassi po/fr.po | 1836 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1836 insertions(+), 0 deletions(-) commit 3cb0436c42ca9369e3d804b8519d2dd40dac86e5 Author: Emmanuele Bassi Date: Tue Oct 5 14:30:01 2010 +0100 clutter.modules: Update Cairo and Pixman build/clutter.modules | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) commit 155bde24650eb613824319f7186bd0a0d690932d Author: Damien Lespiau Date: Tue Oct 5 08:35:19 2010 +0100 texture: Fix the typos in the blurbs and make them not end with '.' All the nifty things you discover when translating strings not exposed to anyone. First the clutter-wide record of the number of typos in one string. Second, ClutterTexture happened to have the only property blurbs ending with a '.', remove them. clutter/clutter-texture.c | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) commit 2d56ed637c3c71516498c5a9dc11bf521db37f6f Author: Damien Lespiau Date: Tue Oct 5 08:25:06 2010 +0100 text: Rename the nick of the position property "Cursor Position" the "position" property of ClutterText is really the position of the cursor. Rename the nick accordingly not to confuse it with the position of the actor itself and be consistent with all the other cursor-related properties. clutter/clutter-text.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit a13182c740c9d61e897c8f41d958ca31ebbe6797 Author: Damien Lespiau Date: Tue Oct 5 08:03:19 2010 +0100 cogl: Use Cogl (not COGL) consistently If I remember correctly, Robert wants to name Cogl, Cogl (not COGL) so start by having a consistent naming in the code. clutter/clutter-texture.c | 16 ++++++++-------- clutter/cogl/cogl/cogl-debug.c | 8 ++++---- configure.ac | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) commit 24577a053868bfa39c7758dea2173cf090230de2 Author: Damien Lespiau Date: Tue Oct 5 07:44:49 2010 +0100 bin-layer: Fix the property blurbs The descriptions for the 'y-align' and 'x-align' properties talk about a layer and a layer manager. It seems that these properties are the alignement factors relative to the BinLayout, so document them accordingly. clutter/clutter-bin-layout.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 9ae1729f37fde328b738972c39db52673a28999e Author: Damien Lespiau Date: Mon Oct 4 18:35:13 2010 +0100 box-layout: Fix missing spaces in the blurbs of vertical and homogeneous clutter/clutter-box-layout.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) commit 9258f9bebb33bd7677f11872fa2c928296399832 Author: Damien Lespiau Date: Mon Oct 4 17:20:30 2010 +0100 deform-effect: Fix Horiontal/Horizontal typo clutter/clutter-deform-effect.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit cd7df1b42133cef69de123986f336767f7a14978 Author: Emmanuele Bassi Date: Mon Oct 4 15:47:53 2010 +0100 build: Fix the release-message target Generate the SHA256 checksum file during release-upload and then copy it to the build directory. build/autotools/Makefile.am.release | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) commit 75e016ac20528c9fded515a620962cae1d96e5f6 Author: Andika Triwidada Date: Mon Oct 4 15:43:54 2010 +0100 po: Add Indonesian localization po/id.po | 2041 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 2041 insertions(+), 0 deletions(-) commit c32c25e4576ef125d83ad74d3ac6c3ae90d098ab Author: Piotr Drąg Date: Mon Oct 4 15:43:16 2010 +0100 po: Update Polish localization po/pl.po | 708 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 365 insertions(+), 343 deletions(-) commit 55121d0f35a8f713973254a4a56ef6cdf79f0ea9 Author: Emmanuele Bassi Date: Mon Oct 4 15:20:44 2010 +0100 Post-release version bump to 1.5.3 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)