profile/ivi/clutter.git
13 years agoegl: Fix build for --with-flavour=opengl-egl-xlib
nobled [Tue, 4 Jan 2011 13:56:05 +0000 (13:56 +0000)]
egl: Fix build for --with-flavour=opengl-egl-xlib

Make sure the EGL backend doesn't forget to include desktop OpenGL headers.

13 years agoegl: Don't use obsolete API
nobled [Tue, 4 Jan 2011 13:59:48 +0000 (13:59 +0000)]
egl: Don't use obsolete API

Fixes a GCC "implicit declaration of function" warning when compiling.

13 years agox11: Create the list of all devices correctly
Kristian Høgsberg [Thu, 6 Jan 2011 12:57:26 +0000 (07:57 -0500)]
x11: Create the list of all devices correctly

Linked lists are tricky.

13 years agotest-text-field: Grab key focus on the first entry
Emmanuele Bassi [Thu, 30 Dec 2010 12:49:41 +0000 (12:49 +0000)]
test-text-field: Grab key focus on the first entry

So that you can start typing right away.

13 years agoosx: Implement the set_accept_focus() vfunc
Emmanuele Bassi [Tue, 28 Dec 2010 22:21:09 +0000 (22:21 +0000)]
osx: Implement the set_accept_focus() vfunc

Like the x11 and win32 backends, the quartz backend should allow setting
the key focus when showing the stage window.

13 years agowin32: Implement the set_accept_focus() vfunc
Emmanuele Bassi [Tue, 28 Dec 2010 18:04:00 +0000 (18:04 +0000)]
win32: Implement the set_accept_focus() vfunc

Implement the ClutterStageWindow::set_accept_focus() virtual function in
the win32 backend.

If accept_focus is set to be TRUE then we call SetforegroundWindow()
after calling ShowWindow(). This is similar to what GDK does when
dealing with the same situation.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

13 years agox11: Implement the set_accept_focus() vfunc
Emmanuele Bassi [Tue, 28 Dec 2010 17:38:39 +0000 (17:38 +0000)]
x11: Implement the set_accept_focus() vfunc

Actually set the InputHint flag and set the input field of the WM_SPEC
hints depending on the value of the accept-focus bitfield.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

13 years agostage: Add :accept-focus property and accessors
Emmanuele Bassi [Tue, 28 Dec 2010 17:37:18 +0000 (17:37 +0000)]
stage: Add :accept-focus property and accessors

Allow the developer to set whether the Stage should receive key focus
when mapped. The implementation is fully backend-dependent. The default
value is TRUE because that's what we've been expecting so far.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

13 years agostage-window: Add set_accept_focus() vfunc
Emmanuele Bassi [Tue, 28 Dec 2010 17:36:27 +0000 (17:36 +0000)]
stage-window: Add set_accept_focus() vfunc

Allow Stage implementations to set whether or not they want to accept
key focus when being shown.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

13 years agoFixed a crash when destroying the actor of a LEAVE event
Johan Bilien [Wed, 29 Dec 2010 21:49:13 +0000 (16:49 -0500)]
Fixed a crash when destroying the actor of a LEAVE event

When processing a LEAVE event, one might destroy the actor, so the weak
reference device->actor would be NULL.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2502

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
13 years agoautogen.sh: make autoreconf use automake-1.11 when available
Nguyễn Thái Ngọc Duy [Thu, 30 Dec 2010 01:16:10 +0000 (08:16 +0700)]
autogen.sh: make autoreconf use automake-1.11 when available

This patch exports $ACLOCAL and $AUTOMAKE, otherwise autoreconf
may use an older version instead.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
http://bugzilla.clutter-project.org/show_bug.cgi?id=2504

13 years agoOnly reset the relayout_pending flag when actually doing a relayout
Johan Bilien [Wed, 29 Dec 2010 21:57:02 +0000 (16:57 -0500)]
Only reset the relayout_pending flag when actually doing a relayout

If an actor is (unfortunately) queuing a relayout in relayout, you would
end up with (ClutterActor*)stage->needs_allocation set to TRUE and
stage->relayout_pending set to TRUE. But if then in the same cycle, an
actor calls clutter_actor_get_allocation_box, that will trigger another
(recursive) _clutter_stage_maybe_relayout, which will wrongly reset the
relayout pending to FALSE, while not actually performing a new relayout
because of the re-entrancy protection.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2503

13 years agodocs: Fixes for the Cogl API reference
Emmanuele Bassi [Wed, 22 Dec 2010 09:42:41 +0000 (09:42 +0000)]
docs: Fixes for the Cogl API reference

13 years agobuild: Ignore private headers when building the Cogl reference
Emmanuele Bassi [Tue, 21 Dec 2010 12:03:38 +0000 (12:03 +0000)]
build: Ignore private headers when building the Cogl reference

Otherwise gtk-doc will try to look up private symbols.

13 years agotest-text-field: Do not expand the labels
Emmanuele Bassi [Tue, 21 Dec 2010 10:51:39 +0000 (10:51 +0000)]
test-text-field: Do not expand the labels

13 years agotext: Only paint cursor if we have key focus
Emmanuele Bassi [Tue, 21 Dec 2010 10:50:24 +0000 (10:50 +0000)]
text: Only paint cursor if we have key focus

If a Text actor does not have key focus then there's no point in showing
the cursor at all.

13 years agotest-text-field: Clean up
Emmanuele Bassi [Mon, 20 Dec 2010 17:59:35 +0000 (17:59 +0000)]
test-text-field: Clean up

Use a Table layout manager, and clean up a bit this test case.

13 years agointeractive: Remove test-bind
Emmanuele Bassi [Mon, 20 Dec 2010 12:41:07 +0000 (12:41 +0000)]
interactive: Remove test-bind

The BindConstraint is already exercised in the test-constraints and in
other interactive tests.

13 years agobuild: Remove Cogl2 reference from the build scripts
Emmanuele Bassi [Sat, 18 Dec 2010 21:33:37 +0000 (21:33 +0000)]
build: Remove Cogl2 reference from the build scripts

Keeping the Cogl 2.0 API reference in the build is getting far more
troublesome than it's worth.

It's breaking distcheck far too often, and it makes it impossible to
rebuild the build environment from tarballs - which is something that
some distributions (namely: the Debian-based ones, but not limited to
them) do in order to change build scripts using their own rules.

13 years agoconstraints: Remove signal handlers on dispose
Emmanuele Bassi [Sat, 18 Dec 2010 13:24:54 +0000 (13:24 +0000)]
constraints: Remove signal handlers on dispose

Same as commit 2fa8b3a3abc7bb8e96a85d927edc0594f44f55df but done for
AlignConstraint and SnapConstraint as well.

13 years agobind-constraint: Remove handlers in dispose
Emmanuele Bassi [Sat, 18 Dec 2010 13:16:23 +0000 (13:16 +0000)]
bind-constraint: Remove handlers in dispose

We should remove the signal handlers on the source actor when a
BindConstraint is disposed, to avoid dangling pointers and wrong
invocations.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2493

13 years agoPost-release version bump to 1.5.11
Emmanuele Bassi [Fri, 17 Dec 2010 16:04:25 +0000 (16:04 +0000)]
Post-release version bump to 1.5.11

13 years agoRelease Clutter 1.5.10 (snapshot)
Emmanuele Bassi [Fri, 17 Dec 2010 14:40:17 +0000 (14:40 +0000)]
Release Clutter 1.5.10 (snapshot)

13 years agobuild: Fix release-check for cogl2 reference
Emmanuele Bassi [Fri, 17 Dec 2010 15:43:24 +0000 (15:43 +0000)]
build: Fix release-check for cogl2 reference

13 years agobuild: Remove stringify.sh from Makefile.am
Emmanuele Bassi [Fri, 17 Dec 2010 14:41:33 +0000 (14:41 +0000)]
build: Remove stringify.sh from Makefile.am

13 years agocookbook: Proofing for "box layout" recipe
Elliot Smith [Wed, 15 Dec 2010 13:31:12 +0000 (13:31 +0000)]
cookbook: Proofing for "box layout" recipe

General improvements to readability, formatting, fixing
typos etc.

13 years agocookbook: Add examples and more text for "box layout" recipe
Elliot Smith [Wed, 15 Dec 2010 13:13:28 +0000 (13:13 +0000)]
cookbook: Add examples and more text for "box layout" recipe

Added 3 examples for the box layout recipe:
1) Simple box layout demonstrating how to set actor properties
2) Trivial menu implementation using box layout
3) Demonstration app which enables tweaking and testing
   of layout property interactions

Also inlined example 1 in the solution section and added
more explanatory text in the discussion.

13 years agocookbook: Add initial skeleton for box layout recipe
Elliot Smith [Tue, 14 Dec 2010 18:08:28 +0000 (18:08 +0000)]
cookbook: Add initial skeleton for box layout recipe

Created recipe and first draft content for recipe
about ClutterBoxLayout.

13 years agogeometry: Avoid sign issues when interpolating
Emmanuele Bassi [Fri, 17 Dec 2010 13:53:28 +0000 (13:53 +0000)]
geometry: Avoid sign issues when interpolating

Width and height in ClutterGeometry are unsigned, and this might lead to
overflow and wrap around issues.

13 years agoFixed a typo in a doc string
Alexandre Quessy [Tue, 14 Dec 2010 22:45:45 +0000 (17:45 -0500)]
Fixed a typo in a doc string

http://bugzilla.clutter-project.org/show_bug.cgi?id=2485

13 years agoUpdate NEWS
Emmanuele Bassi [Fri, 17 Dec 2010 12:07:06 +0000 (12:07 +0000)]
Update NEWS

13 years agotimeline: Rename the reverse property to auto-reverse
Emmanuele Bassi [Fri, 17 Dec 2010 12:04:11 +0000 (12:04 +0000)]
timeline: Rename the reverse property to auto-reverse

Other frameworks expose the same functionality as "auto-reverse",
probably to match the cassette tape player. It actually makes sense
for Clutter to follow suit.

13 years agointeractive: Rename test-rotate
Emmanuele Bassi [Thu, 16 Dec 2010 15:30:53 +0000 (15:30 +0000)]
interactive: Rename test-rotate

The rotation test is now really testing the shader-based effects we ship
with Clutter. The name should be changed to reflect that.

13 years agointeractive: Remove test-viewport
Emmanuele Bassi [Thu, 16 Dec 2010 15:25:29 +0000 (15:25 +0000)]
interactive: Remove test-viewport

The test-viewport interactive test is exercising the clip code - a job
better done by the conformance test suite and by the test-clip
interactive test.

13 years agointeractive: Remove test-project
Emmanuele Bassi [Thu, 16 Dec 2010 15:10:27 +0000 (15:10 +0000)]
interactive: Remove test-project

The test-project test case was an old test that was barely working after
landing the size allocation API in Clutter 0.8. It has never been fixed,
and it's been of relative use ever since.

13 years agointeractive: Remove test-offscreen
Emmanuele Bassi [Thu, 16 Dec 2010 15:08:11 +0000 (15:08 +0000)]
interactive: Remove test-offscreen

The test-offscreen interactive test was a dummy test for the
ClutterStage:offscreen property, which has been deprecated and
not implemented since Clutter 1.0, and never really worked except
briefly in Clutter 0.2 or something.

13 years agoclutter-stage: Don't always set the projection and viewport matrix
Neil Roberts [Mon, 13 Dec 2010 17:21:58 +0000 (17:21 +0000)]
clutter-stage: Don't always set the projection and viewport matrix

The stage has a dirty flag to record whenever the viewport and
projection matrices need to be flushed. However after flushing these
the flags were never cleared so it would always redundantly update the
state.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2480

13 years agocogl-pipeline-fragend-arbfp: Generate ARBfp if user vertex shader
Neil Roberts [Tue, 14 Dec 2010 13:02:47 +0000 (13:02 +0000)]
cogl-pipeline-fragend-arbfp: Generate ARBfp if user vertex shader

The ARBfp fragend was bypassing generating a shader if the pipeline
contains a user program. However it shouldn't do this if the pipeline
only contains a vertex shader. This was breaking
test-cogl-just-vertex-shader.

13 years agocally: Allow memory management for actions
Emmanuele Bassi [Fri, 10 Dec 2010 17:46:58 +0000 (17:46 +0000)]
cally: Allow memory management for actions

Adding an action should allow passing a user data pointer, and have a
notification action that gets called when removing the action. This
allows introspection and language bindings to attach custom data to the
action - for instance, the real callable object that should be invoked.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2479

13 years agoClutterText: Only grab keyboard focus if keyboard-interactive.
Mike Owens [Thu, 9 Dec 2010 14:39:23 +0000 (09:39 -0500)]
ClutterText: Only grab keyboard focus if keyboard-interactive.

Previously, ClutterText took keyboard focus on mouse-down, regardless
if it were editable or selectable.  Now it checks these properties,
and behaves like other actors if it can't do anything useful with
the focus.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2462

13 years agoAllow multiple CoglAtlases for textures
Neil Roberts [Sat, 27 Nov 2010 13:15:02 +0000 (13:15 +0000)]
Allow multiple CoglAtlases for textures

Previously Cogl would only ever use one atlas for textures and if it
reached the maximum texture size then all other new textures would get
their own GL texture. This patch makes it so that we create as many
atlases as needed. This should avoid breaking up some batches and it
will be particularly good if we switch to always using multi-texturing
with a default shader that selects between multiple atlases using a
vertex attribute.

Whenever a new atlas is created it is stored in a GSList on the
context. A weak weference is taken on the atlas using
cogl_object_set_user_data so that it can be removed from the list when
the atlas is destroyed. The atlas textures themselves take a reference
to the atlas and this is the only thing that keeps the atlas
alive. This means that once the atlas becomes empty it will
automatically be destroyed.

All of the COGL_NOTEs pertaining to atlases are now prefixed with the
atlas pointer to make it clearer which atlas is changing.

13 years agocogl-atlas: Convert to be a CoglObject subclass
Neil Roberts [Sat, 27 Nov 2010 13:06:38 +0000 (13:06 +0000)]
cogl-atlas: Convert to be a CoglObject subclass

To implement multiple atlases it will be useful to have ref-counting
on the CoglAtlas so it makes sense to convert it to be a CoglObject.

13 years agotest-cogl-just-vertex-shader: Update to use the portable cogl_* names
Neil Roberts [Tue, 7 Dec 2010 13:58:46 +0000 (13:58 +0000)]
test-cogl-just-vertex-shader: Update to use the portable cogl_* names

The vertex shader in this test now uses the cogl_* names for the GL
builtin so that it will work on GLES2 as well.

13 years agocogl-shader-boilerplate: Add the 3D texture extension on GLES2
Neil Roberts [Tue, 7 Dec 2010 13:44:45 +0000 (13:44 +0000)]
cogl-shader-boilerplate: Add the 3D texture extension on GLES2

To use the 3D texture extension on GLES2 it has to be enabled with the
following line in GLSL:

#extension GL_OES_texture_3D : enable

13 years agotest-cogl-multitexture: Don't test the alpha component
Neil Roberts [Tue, 7 Dec 2010 12:49:00 +0000 (12:49 +0000)]
test-cogl-multitexture: Don't test the alpha component

On EGL we don't request a context with any alpha bits so testing alpha
component of cogl_read_pixels isn't reliable.

13 years agotest-cogl-materials: Use GL_MAX_VERTEX_ATTRIBS on GLES2
Neil Roberts [Tue, 7 Dec 2010 11:39:37 +0000 (11:39 +0000)]
test-cogl-materials: Use GL_MAX_VERTEX_ATTRIBS on GLES2

When determining the maximum number of layers we also need to take
into account GL_MAX_VERTEX_ATTRIBS on GLES2. Cogl needs one vertex
attrib for each texture unit plus two for the position and color.

13 years agocogl2-path: Don't flush the enable flags
Neil Roberts [Tue, 7 Dec 2010 10:38:51 +0000 (10:38 +0000)]
cogl2-path: Don't flush the enable flags

All of the drawing needed in _cogl_add_path_to_stencil_buffer is done
with the vertex attribute API so there should be no need to flush the
enable flags to enable the vertex array. This was causing problems on
GLES2 where the vertex array isn't available.

13 years agoRemove the GLES2 wrapper
Neil Roberts [Sun, 5 Dec 2010 18:02:05 +0000 (18:02 +0000)]
Remove the GLES2 wrapper

The GLES2 wrapper is no longer needed because the shader generation is
done within the GLSL fragend and vertend and any functions that are
different for GLES2 are now guarded by #ifdefs.

13 years agocogl-pipeline: Use enums for the layer combine values
Neil Roberts [Mon, 6 Dec 2010 21:29:56 +0000 (21:29 +0000)]
cogl-pipeline: Use enums for the layer combine values

Once the GLES2 wrapper is removed then we won't have the GLenums
needed for setting up the layer combine state. This adds Cogl enums
instead which have the same values as the corresponding GLenums. The
enums are:

CoglPipelineCombineFunc
CoglPipelineCombineSource
 and
CoglPipelineCombineOp

13 years agocogl: upload matrices with uniforms on GLES2
Neil Roberts [Mon, 6 Dec 2010 12:31:51 +0000 (12:31 +0000)]
cogl: upload matrices with uniforms on GLES2

Once the GLES2 wrapper is removed we won't be able to upload the
matrices with the fixed function API any more. The fixed function API
gives a global state for setting the matrix but if a custom shader
uniform is used for the matrices then the state is per
program. _cogl_matrix_stack_flush_to_gl is called in a few places and
it is assumed the current pipeline doesn't need to be flushed before
it is called. To allow these semantics to continue to work, on GLES2
the matrix flush now just stores a reference to the matrix stack in
the CoglContext. A pre_paint virtual is added to the progend which is
called whenever a pipeline is flushed, even if the same pipeline was
flushed already. This gives the GLSL progend a chance to upload the
matrices to the uniforms. The combined modelview/projection matrix is
only calculated if it is used. The generated programs end up never
using the modelview or projection matrix so it usually only has to
upload the combined matrix. When a matrix stack is flushed a reference
is taked to it by the pipeline progend and the age is stored so that
if the same state is used with the same program again then we don't
need to reupload the uniform.

13 years agocogl-matrix-stack: Add _cogl_matrix_stack_has_identity_flag
Neil Roberts [Fri, 10 Dec 2010 17:42:39 +0000 (17:42 +0000)]
cogl-matrix-stack: Add _cogl_matrix_stack_has_identity_flag

This adds an internal function to quickly determine whether the top of
the matrix stack is known to be the identity matrix.

13 years agocogl-matrix-stack: Convert to be a CoglObject
Neil Roberts [Fri, 10 Dec 2010 16:06:16 +0000 (16:06 +0000)]
cogl-matrix-stack: Convert to be a CoglObject

We will want to use ref-counting on the CoglMatrixStack so it might as
well be a CoglObject.

13 years agomatrix-stack: Make header style consistent
Robert Bragg [Fri, 10 Dec 2010 11:34:02 +0000 (11:34 +0000)]
matrix-stack: Make header style consistent

Cogl doesn't follow the Clutter/GTK+ columnized function prototype style
so this updates cogl-matrix-stack.h to match the other Cogl headers.

13 years agomatrix-stack: Adds a stack age counter
Robert Bragg [Fri, 10 Dec 2010 11:13:09 +0000 (11:13 +0000)]
matrix-stack: Adds a stack age counter

Sometimes it would be useful if we could efficiently track when a matrix
stack has been modified. For example on GLES2 we have to upload the
modelview as a uniform to our glsl programs but because the modelview
state is part of the framebuffer state it becomes a bit more tricky to
know when to re-sync the value of the uniform with the framebuffer
state. This adds an "age" counter to CoglMatrixStack which is
incremented for any operation that effectively modifies the top of the
stack so now we can save the age of the stack inside the pipeline
whenever we update modelview uniform and later compare that with the
stack to determine if it has changed.

13 years agocogl-pipeline: Add internal API to get the layer matrix
Neil Roberts [Mon, 6 Dec 2010 12:31:16 +0000 (12:31 +0000)]
cogl-pipeline: Add internal API to get the layer matrix

This returns the layer matrix given a pipeline and a layer index. The
API is kept as internal because it directly returns a pointer into the
layer private data to avoid a copy into an out-param. We might also
want to add a public function which does the copy.

13 years agocogl-vertex-attribute: Use glVertexAttribPointer on GLES2
Neil Roberts [Fri, 3 Dec 2010 17:46:16 +0000 (17:46 +0000)]
cogl-vertex-attribute: Use glVertexAttribPointer on GLES2

When the GLES2 wrapper is removed we can't use the fixed function API
such as glColorPointer to set the builtin attributes. Instead the GLSL
progend now maintains a cache of attribute locations that are queried
with glGetAttribLocation. The code that previously maintained a cache
of the enabled texture coord arrays has been modified to also cache
the enabled vertex attributes under GLES2. The vertex attribute API is
now the only place that is using this cache so it has been moved into
cogl-vertex-attribute.c

13 years agocogl-path: Stroke using the vertex attribute API
Neil Roberts [Fri, 3 Dec 2010 11:31:09 +0000 (11:31 +0000)]
cogl-path: Stroke using the vertex attribute API

Previously when stroking a path it was flushing a pipeline and then
directly calling glDrawArrays to draw the line strip from the path
nodes array. This patch changes it to build a CoglVertexArray and a
series of attributes to paint with instead. The vertex array and
attributes are attached to the CoglPath so it can be reused later. The
old vertex array for filling has been renamed to fill_vbo.

13 years agocogl: Move COGL_DEBUG=show-source into cogl-shader.c
Neil Roberts [Thu, 2 Dec 2010 22:19:44 +0000 (22:19 +0000)]
cogl: Move COGL_DEBUG=show-source into cogl-shader.c

The code to display the source when the show-source debug option is
given has been moved to _cogl_shader_set_source_with_boilerplate so
that it will show both user shaders and generated shaders. It also
shows the code with the full boilerplate. To make it the same for
ARBfp, cogl_shader_compile_real now also dumps user ARBfp shaders.

13 years agocogl: Add a vertend to generate GLSL
Neil Roberts [Thu, 2 Dec 2010 20:48:45 +0000 (20:48 +0000)]
cogl: Add a vertend to generate GLSL

The GLSL vertend is mostly only useful for GLES2. The fixed function
vertend is kept at higher priority than the GLSL vertend so it is
unlikely to be used in any other circumstances.

13 years agocogl-shader-boilerplate: Don't put the color attrib in location 0
Neil Roberts [Tue, 7 Dec 2010 12:33:39 +0000 (12:33 +0000)]
cogl-shader-boilerplate: Don't put the color attrib in location 0

Due to Mesa bug 28585 calling glVertexAttrib with attrib location 0
doesn't appear to work. This patch just reorders the vertex and color
attributes in the shader in the hope that Mesa will assign the color
attribute to a different location.

13 years agocogl-shader-boilerplate: Add more builtins for GLES2
Neil Roberts [Thu, 2 Dec 2010 22:08:51 +0000 (22:08 +0000)]
cogl-shader-boilerplate: Add more builtins for GLES2

Some builtin attributes such as the matrix uniforms and some varyings
were missing from the boilerplate for GLES2. This also moves the
texture matrix and texture coord attribute declarations to
cogl-shader.c so that they can be dynamically defined depending on the
number of texture coord arrays enabled.

13 years agocogl-pipeline: Rename the fragment_{source,header}_buffer to codegen
Neil Roberts [Thu, 2 Dec 2010 18:05:22 +0000 (18:05 +0000)]
cogl-pipeline: Rename the fragment_{source,header}_buffer to codegen

We want to reuse the same buffers for vertends so calling them
fragment_* doesn't make sense.

13 years agocogl: Add a fixed function vertend
Neil Roberts [Mon, 29 Nov 2010 18:32:21 +0000 (18:32 +0000)]
cogl: Add a fixed function vertend

The vertends are intended to flush state that would be represented in
a vertex program. Code to handle the layer matrix, lighting and
point size has now been moved from the common cogl-pipeline-opengl
backend to the fixed vertend.

13 years agocogl: Add a GLSL 'progend'
Neil Roberts [Thu, 2 Dec 2010 14:00:46 +0000 (14:00 +0000)]
cogl: Add a GLSL 'progend'

'progend' is short for 'program backend'. The progend is intended to
operate on combined state from a fragment backend and a vertex
backend. The progend has an 'end' function which is run whenever the
pipeline is flushed and the two pipeline change notification
functions. All of the progends are run whenever the pipeline is
flushed instead of selecting a single one because it is possible that
multiple progends may be in use for example if the vertends and
fragends are different. The GLSL progend will take the shaders
generated by the fragend and vertend and link them into a single
program. The fragend code has been changed to only generate the shader
and not the program. The idea is that pipelines can share fragment
shader objects even if their vertex state is different. The authority
for the progend needs to be the combined authority on the vertend and
fragend state.

13 years agocogl-program: Add private functions to check if have each shader type
Neil Roberts [Thu, 2 Dec 2010 13:54:15 +0000 (13:54 +0000)]
cogl-program: Add private functions to check if have each shader type

This adds two internal functions:

gboolean
_cogl_program_has_fragment_shader (CoglHandle handle);

gboolean
_cogl_program_has_vertex_shader (CoglHandle handle);

They just check whether any of the contained shaders are of that type.

13 years agocogl-pipeline: Make find codegen authority more general
Neil Roberts [Wed, 1 Dec 2010 17:06:18 +0000 (17:06 +0000)]
cogl-pipeline: Make find codegen authority more general

The pipeline function _cogl_pipeline_find_codegen_authority has been
renamed to _cogl_pipeline_find_equivalent_parent and it now takes a
set of flags for the pipeline and layer state that affects the
authority. This is needed so that we can reuse the same code in the
vertend and progends.

13 years agocogl-pipeline: Move texture enabling/disabling to fixed fragend
Neil Roberts [Tue, 30 Nov 2010 12:48:27 +0000 (12:48 +0000)]
cogl-pipeline: Move texture enabling/disabling to fixed fragend

Previously enabling and disabling textures was done whatever the
backend in cogl-pipeline-opengl. However enabling and disabling
texture targets only has any meaning if no fragment shaders are being
used so this patch moves the code to cogl-pipeline-fragend-fixed.

The GLES2 wrapper has also been changed to ignore enabledness when
deciding whether to update texture coordinate attribute pointers.

13 years agoRename CoglPipelineBackend to CoglPipelineFragend
Neil Roberts [Mon, 29 Nov 2010 16:56:41 +0000 (16:56 +0000)]
Rename CoglPipelineBackend to CoglPipelineFragend

The current Cogl pipeline backends are entirely concerned with the
fragment processing state. We also want to eventually have separate
backends to generate shaders for the vertex processing state so we
need to rename the fragment backends. 'Fragend' is a somewhat weird
name but we wanted to avoid ending up with illegible symbols like
CoglPipelineFragmentBackendGlslPrivate.

13 years agocogl-pipeline-opengl: Remove the includes for the various backends
Neil Roberts [Thu, 2 Dec 2010 15:37:53 +0000 (15:37 +0000)]
cogl-pipeline-opengl: Remove the includes for the various backends

Nothing in cogl-pipeline-opengl needs to know about the actual backend
implementations, instead it just accesses then through the vtables.

13 years agoanimation: Allow transforming values in bind()
Emmanuele Bassi [Sat, 11 Dec 2010 17:40:52 +0000 (17:40 +0000)]
animation: Allow transforming values in bind()

While we do check for compatibility and transformability of a GValue
with the GParamSpec value type, we are actually failing really badly
at it.

First of all, we bail out on the wrong conditions.

Then we use the type of the value passed instead of using the type
of the property itself.

This makes it impossible to actually use transformation functions for
GValue types - even those that have been registered by GLib itself -
when using the Animation API directly, instead of going through the
clutter_actor_animate() wrappers.

13 years agointrospection: Skip some C-only structures
Emmanuele Bassi [Fri, 10 Dec 2010 17:15:39 +0000 (17:15 +0000)]
introspection: Skip some C-only structures

The ParamSpec sub-classes we define are meant to be used only from the C
API, as high-level languages completely ignore them.

The ClutterStageWindow interface is an internal type that escaped into
the public headers; all its methods are private, but we cannot remove
the type until we break for 2.0.

13 years agointrospection: Add cairo-1.0 to the dependencies
Emmanuele Bassi [Fri, 10 Dec 2010 17:15:23 +0000 (17:15 +0000)]
introspection: Add cairo-1.0 to the dependencies

13 years agoRemove unnecessary duplicate name for private enumerations
Emmanuele Bassi [Fri, 10 Dec 2010 16:03:10 +0000 (16:03 +0000)]
Remove unnecessary duplicate name for private enumerations

13 years agodocs: Update NEWS
Emmanuele Bassi [Thu, 9 Dec 2010 16:05:55 +0000 (16:05 +0000)]
docs: Update NEWS

13 years agodocs: Add 1.6 index to the API references
Emmanuele Bassi [Thu, 9 Dec 2010 15:52:04 +0000 (15:52 +0000)]
docs: Add 1.6 index to the API references

13 years agoUse G_STRFUNC correctly
Emmanuele Bassi [Thu, 9 Dec 2010 15:42:19 +0000 (15:42 +0000)]
Use G_STRFUNC correctly

It cannot be chained up via the pre-processor.

13 years agoRename the EGLDisplay accessors
Emmanuele Bassi [Thu, 9 Dec 2010 15:11:37 +0000 (15:11 +0000)]
Rename the EGLDisplay accessors

The accessor for the EGL display should be namespaced for the correct
backend-specific API.

13 years agodocs: Documentation fixes
Emmanuele Bassi [Thu, 9 Dec 2010 15:06:12 +0000 (15:06 +0000)]
docs: Documentation fixes

13 years agodocs: Documentation fixes
Emmanuele Bassi [Thu, 9 Dec 2010 13:59:08 +0000 (13:59 +0000)]
docs: Documentation fixes

13 years agobuild: Check NEWS file during release, not distcheck
Emmanuele Bassi [Thu, 9 Dec 2010 13:49:01 +0000 (13:49 +0000)]
build: Check NEWS file during release, not distcheck

The check-news option in configure.ac conflicts with the idea of using a
buildbot to do a distcheck.

Since we're doing some validation on the state of the build during the
release-check phase we should add the NEWS file check there.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2468

13 years agocookbook: Remove bold on emphasis inside programlisting
Elliot Smith [Thu, 9 Dec 2010 11:40:27 +0000 (11:40 +0000)]
cookbook: Remove bold on emphasis inside programlisting

If an <emphasis> element is placed inside a <programlisting> in a cookbook
recipe, the result is bold italic text in the HTML output. This isn't
particularly readable.

Fix is to style emphasis elements inside programlistings
so the font weight is not bold but is still italicised.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2475

13 years agotests: Add test for clutter_model_get_iter_at_row()
Jussi Kukkonen [Thu, 2 Dec 2010 14:08:10 +0000 (16:08 +0200)]
tests: Add test for clutter_model_get_iter_at_row()

http://bugzilla.clutter-project.org/show_bug.cgi?id=2460

13 years agoFix clutter_list_model_get_iter_at_row() when filtered
Jussi Kukkonen [Thu, 2 Dec 2010 14:27:36 +0000 (16:27 +0200)]
Fix clutter_list_model_get_iter_at_row() when filtered

Currently clutter_list_model_get_iter_at_row() always returns an
iterator to the last non-filtered row  when asking for row [1-N].

Patch makes the function return an iterator to the Nth non-filtered
row or NULL.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2460

13 years agowayland: Update to current api
nobled [Tue, 7 Dec 2010 07:10:59 +0000 (07:10 +0000)]
wayland: Update to current api

Adapt to changes from these wayland commits:
35fd2a8cc68c42d90756330535de04cbbb4d2613
2bb3ebe1e437acf836449f0a63f3264ad29566f2
f8fc08f77187f6a5723281dab66841e5f3c24320

http://bugzilla.clutter-project.org/show_bug.cgi?id=2474

13 years agowayland: fix typo
nobled [Tue, 7 Dec 2010 07:07:40 +0000 (07:07 +0000)]
wayland: fix typo

Fixes the build error:

clutter-input-device-wayland.c:154:69:
error: too few arguments to function call

http://bugzilla.clutter-project.org/show_bug.cgi?id=2473

13 years agobuild: Do not hardcode --warn-all for g-ir-scanner
Emmanuele Bassi [Thu, 9 Dec 2010 12:37:41 +0000 (12:37 +0000)]
build: Do not hardcode --warn-all for g-ir-scanner

It's possible to use --warn-all through the introspection scanner
options from outside the build environment.

13 years agoReduce the amount of g-ir-scanner warnings
Emmanuele Bassi [Thu, 9 Dec 2010 12:36:50 +0000 (12:36 +0000)]
Reduce the amount of g-ir-scanner warnings

As much as we can; the remaining warnings are mostly valid things that
the introspection scanner still flags as potential issues.

13 years agodocs: Use :reverse in the Behaviour migration guide
Emmanuele Bassi [Thu, 9 Dec 2010 12:00:29 +0000 (12:00 +0000)]
docs: Use :reverse in the Behaviour migration guide

Instead of the ::completed signal flip.

13 years agoMerge remote branch 'elliot/cookbook-animations-looping-new-api'
Emmanuele Bassi [Thu, 9 Dec 2010 11:58:10 +0000 (11:58 +0000)]
Merge remote branch 'elliot/cookbook-animations-looping-new-api'

* elliot/cookbook-animations-looping-new-api:
  cookbook: Use new API to reverse timeline

13 years agoMake clutter_shader_effect_set_uniform_value accept G_TYPE_DOUBLE
Tomeu Vizoso [Tue, 7 Dec 2010 14:29:05 +0000 (15:29 +0100)]
Make clutter_shader_effect_set_uniform_value accept G_TYPE_DOUBLE

For users of gobject-introspection that cannot know which
non-integer type to pass.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2471

13 years agopipeline: don't dereference NULL program state
Robert Bragg [Wed, 8 Dec 2010 18:57:42 +0000 (18:57 +0000)]
pipeline: don't dereference NULL program state

This avoid dereferencing a NULL arbfp program state in
_cogl_pipeline_backend_arbfp_layer_pre_change_notify for
_STATE_COMBINE_CONSTANT changes.

13 years agoarbfp: Copy pipelines used as cache keys
Robert Bragg [Wed, 8 Dec 2010 16:29:37 +0000 (16:29 +0000)]
arbfp: Copy pipelines used as cache keys

We are currently using a pipeline as a key into our arbfp program cache
but because we weren't making a copy of the pipelines used as keys there
were times when doing a lookup in the cache would end up trying to
compare a lookup key with an entry key that would point to invalid
memory.

Note: the current approach isn't ideal from the pov that that key
pipeline may reference some arbitrarily large user textures will now be
kept alive indefinitely. The plan to improve on this is that we will
have a mechanism to create a special "key pipeline" which will derive
from the default Cogl pipeline (to avoid affecting the lifetime of
other pipelines) and only copy state from the original pipeline that
affects the arbfp program and will reference small dummy textures
instead of potentially large user textures.

13 years agoarbfp: initialize arbfp_program_state->next_constant_id
Robert Bragg [Wed, 8 Dec 2010 16:27:57 +0000 (16:27 +0000)]
arbfp: initialize arbfp_program_state->next_constant_id

When allocating a new ArbfpProgramState struct when starting code
generation we weren't initializing arbfp_program_state->next_constant_id
to 0.

13 years agopipeline: Clarify stages for finding an arbfp program
Robert Bragg [Wed, 8 Dec 2010 16:23:10 +0000 (16:23 +0000)]
pipeline: Clarify stages for finding an arbfp program

In the arbfp backend there is a seqential approach to finding a suitable
arbfp program to use for a given pipeline; first we see if there's
already a program associated with the pipeline, 2nd we try and find a
program associated with the "arbfp-authority" 3rd we try and lookup a
program in a cache and finally we resort to starting code-generation for
a new program. This patch slightly reworks the code of these steps to
hopefully make them a bit clearer.

13 years agocogl-pipeline: Fix the layer_has_alpha_cb
Neil Roberts [Mon, 6 Dec 2010 21:14:33 +0000 (21:14 +0000)]
cogl-pipeline: Fix the layer_has_alpha_cb

_cogl_pipeline_needs_blending_enabled tries to determine whether each
layer is using the default combine state. However it was using
argument 0 for both checks so the if-statement would never be true.

13 years agopipeline: remove unused HashState member
Robert Bragg [Wed, 8 Dec 2010 11:38:56 +0000 (11:38 +0000)]
pipeline: remove unused HashState member

There was an unused pipeline_differences member as part of the HashState
struct which this patch remove to avoid confusion.

13 years agopipeline: initialize HashState flags member
Robert Bragg [Wed, 8 Dec 2010 11:35:16 +0000 (11:35 +0000)]
pipeline: initialize HashState flags member

There are a set of "EvalFlags" that get passed to _cogl_pipeline_hash
that can tweak the semantics of what state is evaluated for hashing but
these flags weren't getting passed via the HashState state structure
so it would be undefined if you would get the correct semantics.

13 years agopipeline: don't use near/far symbols
Robert Bragg [Wed, 8 Dec 2010 11:30:00 +0000 (11:30 +0000)]
pipeline: don't use near/far symbols

According to 9cc90333473e3 the windows headers #define near as nothing,
and presumable the same is true for 'far' too. Apparently this define is
to improve compatibility with code written for Windows 3.1, so it's good
that people will be able to incorporate such code into their Clutter
applications.

13 years agodocs: Fix listitem tag
Emmanuele Bassi [Wed, 8 Dec 2010 14:26:27 +0000 (14:26 +0000)]
docs: Fix listitem tag

13 years agodocs: Clean up clutter_color_from_string()
Emmanuele Bassi [Wed, 8 Dec 2010 13:59:53 +0000 (13:59 +0000)]
docs: Clean up clutter_color_from_string()

Add hsl() and hsla() formats, and clean up the wording.