profile/ivi/clutter.git
13 years agoAdded .DS_Store and test logs messages to git ignore
Roman Kudiyarov [Thu, 15 Jul 2010 09:32:59 +0000 (16:32 +0700)]
Added .DS_Store and test logs messages to git ignore

13 years agoosx: Added missed function declaration for stage
Roman Kudiyarov [Thu, 15 Jul 2010 09:27:16 +0000 (16:27 +0700)]
osx: Added missed function declaration for stage

Added empty functions for cursor and window resize functional with
notes FIXME and also they are added to iface.

13 years agoosx: Remove drawing call while showing stage and add viewport init
Roman Kudiyarov [Thu, 15 Jul 2010 09:00:29 +0000 (16:00 +0700)]
osx: Remove drawing call while showing stage and add viewport init

Viewport didn't initialized before OGL drawing and it causes crash on
assert so added viewport initalization to
clutter_stage_osx_realize. Also showing the stage causes drawing
function but other part of the system(in particular conformance tests)
don't expect it and aren't ready at this moment.

13 years agoosx: Fixed crash while features initialization
Roman Kudiyarov [Thu, 15 Jul 2010 08:46:04 +0000 (15:46 +0700)]
osx: Fixed crash while features initialization

Clearing current context couses incorrect work of glGetString function
and all next GL functions that use it work incorrectly.

13 years agoglx: Add more debugging notes
Emmanuele Bassi [Tue, 3 Aug 2010 16:53:58 +0000 (17:53 +0100)]
glx: Add more debugging notes

Should help debug the GLX visual selection.

13 years agodocs: Further clarifications
Emmanuele Bassi [Tue, 3 Aug 2010 15:48:53 +0000 (16:48 +0100)]
docs: Further clarifications

Mention the XFixes extension for compositors using input regions to let
events "pass through" the stage.

Thanks to: Robert Bragg <robert@linux.intel.com>

13 years agodocs: Clarify the event retrieval disable behaviour
Emmanuele Bassi [Tue, 3 Aug 2010 15:30:04 +0000 (16:30 +0100)]
docs: Clarify the event retrieval disable behaviour

When we disable the event retrieval, we now just disable the X11 event
source, not the event selection. We need to make that clear to
applications, especially compositors, which might expect complete
control over the selection.

13 years agoglx: Unconditionally select X11/GLX events
Emmanuele Bassi [Tue, 3 Aug 2010 15:11:52 +0000 (16:11 +0100)]
glx: Unconditionally select X11/GLX events

Currently, we select input events and GLX events conditionally,
depending on whether the user has disabled event retrieval.

We should, instead, unconditionally select input events even with event
retrieval disabled because we need to guarantee that the Clutter
internal state is maintained when calling clutter_x11_handle_event()
without requiring applications or embedding toolkits to select events
themselves. If we did that, we'd have to document the events to be
selected, and also update applications and embedding toolkits each time
we added a new mask, or a new class of events - something that's clearly
not possible.

See:

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

for the rationale of why we did conditional selection. It is now clear
that a compositor should clear out the input region, since it cannot
assume a perfectly clean slate coming from us.

See:

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

for an example of things that break if we do conditional event
selection on GLX events. In that specific case, the X11 server ≤ 1.8
always pushed GLX events on the queue, even without selecting them; this
has been fixed in the X11 server ≥ 1.9, which means that applications
like Mutter or toolkit integration libraries like Clutter-GTK would stop
working on recent Intel drivers providing the GLX_INTEL_swap_event
extension.

This change has been tested with Mutter and Clutter-GTK.

13 years agoMerge remote branch 'elliot/cookbook-animations-rotating'
Emmanuele Bassi [Tue, 3 Aug 2010 14:44:46 +0000 (15:44 +0100)]
Merge remote branch 'elliot/cookbook-animations-rotating'

* elliot/cookbook-animations-rotating:
  cookbook: Added recipe for animated rotation of an actor
  cookbook: Add explanation about including code samples
  cookbook: Make filename used in video example consistent
  cookbook: Add example code for animated rotation

13 years agocogl-program: gles2: bind programs lazily as for GL
Robert Bragg [Fri, 23 Jul 2010 09:12:39 +0000 (10:12 +0100)]
cogl-program: gles2: bind programs lazily as for GL

This makes the gles2 cogl_program_use consistent with the GL version by
not binding the program immediately and instead leaving it to
cogl-material.c to bind the program when actually drawing something.

13 years agogles2: Have CoglProgram track uniforms per program
Robert Bragg [Tue, 8 Jun 2010 22:06:50 +0000 (23:06 +0100)]
gles2: Have CoglProgram track uniforms per program

Previously custom uniforms were tracked in _CoglGles2Wrapper but as part
of a process to consolidate the gl/gles2 shader code it seems to make
sense for this state to be tracked in the CoglProgram object instead.

http://bugzilla.o-hand.com/show_bug.cgi?id=2179

13 years agocogl-shader: unifies the driver/{gl,gles} shader files
Robert Bragg [Mon, 2 Aug 2010 20:40:55 +0000 (21:40 +0100)]
cogl-shader: unifies the driver/{gl,gles} shader files

The per driver implementations of cogl-shader.c had become almost
identical we now have a single cogl/cogl-shader.c instead.

13 years agocogl-shader: Store the CoglShaderType in CoglShader
Robert Bragg [Fri, 23 Jul 2010 16:44:53 +0000 (17:44 +0100)]
cogl-shader: Store the CoglShaderType in CoglShader

Instead of having to query GL and translate the GL enum into a
CoglShaderType each time cogl_shader_get_type is called we now keep
track of the type in CoglShader.

13 years agocogl: don't include cogl-debug.h in cogl.h or install
Robert Bragg [Sun, 25 Jul 2010 20:36:41 +0000 (21:36 +0100)]
cogl: don't include cogl-debug.h in cogl.h or install

cogl-debug.h is an internal header so it shouldn't have been included by
cogl.h and the header shouldn't be installed either.

13 years agoconfigure.ac: when checking for gl2ext.h include gl2.h
Robert Bragg [Fri, 23 Jul 2010 20:37:22 +0000 (21:37 +0100)]
configure.ac: when checking for gl2ext.h include gl2.h

This makes sure we include gl2.h when looking for gl2ext.h since
gl2ext.h can't always be used standalone.

13 years agoanimatable: Allow passing a NULL animation
Emmanuele Bassi [Sat, 31 Jul 2010 09:40:21 +0000 (10:40 +0100)]
animatable: Allow passing a NULL animation

The Animatable interface was created specifically for the Animation
class. It turns out that it might be fairly useful to others - such as
ClutterAnimator and ClutterState.

The newly-added API in this cycle for querying and accessing custom
properties should not require that we pass a ClutterAnimation to the
implementations: the Animatable itself should be enough.

This is necessary to allow language bindings to wrap
clutter_actor_animate() correctly and do type validation and
demarshalling between native values and GValues; an Animation instance
is not available until the animate() call returns, and validation must
be performed before that happens.

There is nothing we can do about the animate_property() virtual
function - but in that case we might want to be able to access the
animation from an Animatable implementation to get the Interval for
the property, just like ClutterActor does in order to animate
ClutterActorMeta objects.

13 years agodocs: Fix the BindConstraint example
Emmanuele Bassi [Sat, 31 Jul 2010 09:39:53 +0000 (10:39 +0100)]
docs: Fix the BindConstraint example

A constraint was created but not added to the actor.

13 years agoconform: Move the Score test to the conformance suite
Emmanuele Bassi [Fri, 30 Jul 2010 18:39:35 +0000 (19:39 +0100)]
conform: Move the Score test to the conformance suite

The interactive test for ClutterScore is really meant to be run as part
of the conformance test suite, so we should move it there.

13 years agox11: Split out conditions and warnings
Emmanuele Bassi [Thu, 29 Jul 2010 16:18:25 +0000 (17:18 +0100)]
x11: Split out conditions and warnings

XGetGeometry is a great piece of API, since it gets a lot of stuff that
are moderately *not* geometry related - the root window, and the depth
being two.

Since we have multiple conditions depending on the result of that call
we should split them up depending on the actual error - and each of them
should have a separate error message. This makes debugging simpler.

13 years agoactor: Make set_flags() safe from unrefs
Emmanuele Bassi [Thu, 29 Jul 2010 16:00:24 +0000 (17:00 +0100)]
actor: Make set_flags() safe from unrefs

It's possible - though not recommended - that user code causes the
destruction of an actor in one of the notification handlers for
flag-based properties. We should protect the multiple notification
emission with g_object_ref/unref.

13 years agoRequire g-i 0.6.14
Emmanuele Bassi [Thu, 29 Jul 2010 15:58:37 +0000 (16:58 +0100)]
Require g-i 0.6.14

The 0.6.14 is the last 0.6 release, before the format changes; we build
with both 0.6 and 0.9, so we should depend to the former and not the
latter.

14 years agocookbook: Added recipe for animated rotation of an actor
Elliot Smith [Wed, 21 Jul 2010 13:50:32 +0000 (14:50 +0100)]
cookbook: Added recipe for animated rotation of an actor

New recipe covering how to animate rotation of
an actor (in all axes).

Covers various factors affecting rotation animation
(like orientation of axes, parent rotation/orientation),
as well as trying to make rotations easier to visualise
(e.g. describing how rotation direction is affected by
those factors, how a rotation can be expected to look
when animated). Uses implicit animations for code examples.

Also refers to a full code example which uses ClutterState.

14 years agocookbook: Add explanation about including code samples
Elliot Smith [Wed, 21 Jul 2010 14:44:16 +0000 (15:44 +0100)]
cookbook: Add explanation about including code samples

Updated the "Contributing" section to explain how to include
a full code sample at the end of a recipe.

14 years agocookbook: Make filename used in video example consistent
Elliot Smith [Wed, 21 Jul 2010 13:42:31 +0000 (14:42 +0100)]
cookbook: Make filename used in video example consistent

Fixed video filename in sample markup to match the
guidelines given in the "Contributing" section.

14 years agocookbook: Add example code for animated rotation
Elliot Smith [Wed, 21 Jul 2010 11:51:47 +0000 (12:51 +0100)]
cookbook: Add example code for animated rotation

Add example code demonstrating how to rotate in the x,y,z
axes using ClutterState. Integrated with build.

14 years agomodules: Bump cairo to 1.9.12
Emmanuele Bassi [Fri, 23 Jul 2010 11:42:55 +0000 (12:42 +0100)]
modules: Bump cairo to 1.9.12

And add poppler.

14 years agoeffect: fix conversion from degrees to radians
Øyvind Kolås [Fri, 23 Jul 2010 11:16:37 +0000 (12:16 +0100)]
effect: fix conversion from degrees to radians

14 years agogles/cogl-shader.c: Store the shader type in CoglShader
Neil Roberts [Wed, 14 Jul 2010 18:39:24 +0000 (19:39 +0100)]
gles/cogl-shader.c: Store the shader type in CoglShader

Nothing was storing the shader type when a shader was created so it
would get confused about whether it was a custom vertex or fragment
shader.

Also the 'type' member of CoglShader was a GLenum but the only place
that read it was treating it as if it was CoglShaderType. This changes
it be CoglShaderType.

14 years agotest-shader: Unref the ClutterShader after setting it on an actor
Neil Roberts [Thu, 22 Jul 2010 16:27:04 +0000 (17:27 +0100)]
test-shader: Unref the ClutterShader after setting it on an actor

Otherwise the test leaks the shader object and the underlying GLSL
program.

14 years agoPlug the leaking CoglProgram and CoglShader
Neil Roberts [Thu, 22 Jul 2010 15:58:23 +0000 (16:58 +0100)]
Plug the leaking CoglProgram and CoglShader

_cogl_program_free and _cogl_shader_free never freed the struct their
structs so it would end up leaking a little bit.

14 years agoconfigure.ac: Fix the missing COGL_HAS_GLES[12] defines
Neil Roberts [Thu, 22 Jul 2010 15:14:59 +0000 (16:14 +0100)]
configure.ac: Fix the missing COGL_HAS_GLES[12] defines

In 7fae8ac051 the two cogl-defines.h files from GLES and GL were
unified. However this missed out the COGL_HAS_GLES[12] defines from
GLES. The configure.ac still made an AC_SUBST for the right version
but the replacement was never put in any headers. This fixes it so
that instead of directly calling AC_SUBST the value is now put into a
variable which later gets added to COGL_DEFINES so that it will end up
in cogl-defines.h

14 years agoFix a small typo in configure.ac for the COGL_DEFINES variable
Neil Roberts [Thu, 22 Jul 2010 15:12:46 +0000 (16:12 +0100)]
Fix a small typo in configure.ac for the COGL_DEFINES variable

There was an initializer for the COGL_DEFINES variable which sets it
to the empty value before it is filled in. The name of the variable
wasn't spelt right so it wouldn't work properly. This doesn't really
matter because it would default to empty anyway.

14 years agotest-shader: The tex_coord varying is now an array under GLES2
Neil Roberts [Thu, 15 Jul 2010 16:10:31 +0000 (17:10 +0100)]
test-shader: The tex_coord varying is now an array under GLES2

Since the GLES2 wrapper grew support for multi-texturing, the
tex_coord varying variable defined in the vertex shader is actually an
array of texture coordinates so it ought to match in the fragment
shader in test-shader. This seemed to work anyway under Mesa/Intel but
under NVidia it does not so I don't think it's safe to assume that
linking a non-array varying with an array will work.

14 years agocogl-bitmap-pixbuf: Avoid copying the buffer in more circumstances
Neil Roberts [Thu, 22 Jul 2010 18:58:47 +0000 (19:58 +0100)]
cogl-bitmap-pixbuf: Avoid copying the buffer in more circumstances

When loading an RGB image GdkPixbuf will pad the rowstride so that the
beginning of each row is aligned to 4 bytes. This was causing us to
fallback to the code that copies the buffer. It is probably safe to
avoid copying the buffer if we can detect that the rowstride is simply
an alignment of the packed rowstride.

This also changes the copying fallback code so that it uses the
aligned rowstride. However it is now extremely unlikely that the
fallback code would ever be used.

14 years agocogl-bitmap-pixbuf: Fix the rowstride used when copying a GdkPixbuf
Neil Roberts [Thu, 22 Jul 2010 18:15:44 +0000 (19:15 +0100)]
cogl-bitmap-pixbuf: Fix the rowstride used when copying a GdkPixbuf

In commit b780413e5ae4b the GdkPixbuf loading code was changed so that
if it needs to copy the pixbuf then it would tightly pack it. However
it was still using the rowstride from the pixbuf so the image would
end up skewed. This fixes it to use the real rowstride.

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

14 years agocogl-material: Don't map the shininess value to [0,1]
Neil Roberts [Tue, 20 Jul 2010 16:34:04 +0000 (17:34 +0100)]
cogl-material: Don't map the shininess value to [0,1]

In OpenGL the 'shininess' lighting parameter is floating point value
limited to the range 0.0→128.0. This number is used to affect the size
of the specular highlight. Cogl materials used to only accept a number
between 0.0 and 1.0 which then gets multiplied by 128.0 before sending
to GL. I think the assumption was that this is just a weird GL quirk
so we don't expose it. However the value is used as an exponent to
raise the attenuation to a power so there is no conceptual limit to
the value.

This removes the mapping and changes some of the documentation.

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

14 years agocogl-material: Always reset the GLSL program to zero when flushing
Neil Roberts [Wed, 21 Jul 2010 22:22:07 +0000 (23:22 +0100)]
cogl-material: Always reset the GLSL program to zero when flushing

When flushing a fixed-function or arbfp material it would always call
disable_glsl to try to get rid of the previous GLSL shader. This is
needed even if current_use_program_type is not GLSL because if an
application calls cogl_program_uniform then Cogl will have to bind the
program to set the uniform. If this happens then it won't update
current_use_program_type presumably because the enabled state of arbfp
is still valid.

The problem was that disable_glsl would only select program zero when
the current_use_program_type is set to GLSL which wouldn't be the case
if cogl_program_uniform was called. This patch changes it to just
directly call _cogl_gl_use_program_wrapper(0) instead of having a
separate disable_glsl function. The current program is cached in the
cogl context anyway so it shouldn't cause any extra unnecessary GL
calls.

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

14 years agopo: Add de.po
Chris Leick [Thu, 22 Jul 2010 10:40:57 +0000 (11:40 +0100)]
po: Add de.po

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
14 years agoFixed more set using *_get_* typos.
Chris Kühl [Thu, 22 Jul 2010 09:21:21 +0000 (11:21 +0200)]
Fixed more set using *_get_* typos.

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

14 years agodocs: Improve the text of X11 event-related functions
Emmanuele Bassi [Thu, 22 Jul 2010 09:48:21 +0000 (10:48 +0100)]
docs: Improve the text of X11 event-related functions

We need to make sure that people disabling event handling in Clutter
call clutter_x11_handle_event() to update Clutter's internal state.

14 years agoMinor fix to the documentation for clutter_texture_get_sync_size
Neil Roberts [Thu, 22 Jul 2010 09:04:06 +0000 (10:04 +0100)]
Minor fix to the documentation for clutter_texture_get_sync_size

The documentation was recursively referring to itself causing a stack
overflow in the reader's brain.

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

14 years agobuild: Depend on g-i 0.9.0
Emmanuele Bassi [Wed, 21 Jul 2010 16:25:15 +0000 (17:25 +0100)]
build: Depend on g-i 0.9.0

The introspection format changed, so we should depend on the new one.

14 years agoClean up the private flags for ClutterActor
Emmanuele Bassi [Wed, 21 Jul 2010 15:10:46 +0000 (16:10 +0100)]
Clean up the private flags for ClutterActor

Provide macros to quickly query a flag, and remove all namespacing
except the initial 'CLUTTER'.

14 years agox11: Add more checks to set_stage_foreign()
Emmanuele Bassi [Wed, 21 Jul 2010 14:21:08 +0000 (15:21 +0100)]
x11: Add more checks to set_stage_foreign()

Check all the pre-requisites to avoid segfaults later on.

14 years agox11: Clean up TexturePixmap header and private data structure
Emmanuele Bassi [Wed, 21 Jul 2010 14:14:36 +0000 (15:14 +0100)]
x11: Clean up TexturePixmap header and private data structure

Align the header file and use bitfields instead of booleans.

14 years agocogl-material: Consider the shader when deciding if materials equate
Neil Roberts [Sat, 17 Jul 2010 13:08:28 +0000 (14:08 +0100)]
cogl-material: Consider the shader when deciding if materials equate

_cogl_material_equal was ignoring the user shader state so rectangles
with different shaders would get batched together.

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

14 years agostage: Ignore redraws on destroyed stages
Emmanuele Bassi [Tue, 20 Jul 2010 13:39:43 +0000 (14:39 +0100)]
stage: Ignore redraws on destroyed stages

We might get requests to redraw even during destruction; we should
ignore them and do some NULL checks instead of blindly invoking
functions.

14 years agostage-window: Add argument guards
Emmanuele Bassi [Tue, 20 Jul 2010 13:39:01 +0000 (14:39 +0100)]
stage-window: Add argument guards

Validate the arguments passed to StageWindow's methods.

14 years agopo: Re-sync Makefile.in.in
Emmanuele Bassi [Mon, 19 Jul 2010 15:03:35 +0000 (16:03 +0100)]
po: Re-sync Makefile.in.in

Use the one that ships with gtk+.

14 years agocookbook: Fix key press to examine modifers correctly
Elliot Smith [Mon, 19 Jul 2010 11:52:00 +0000 (12:52 +0100)]
cookbook: Fix key press to examine modifers correctly

The simple key press example in the cookbook used a brittle
and incorrect switch statement to test modifier values. Instead,
use logical "&" of the state with the modifiers we're interested
in to check which keys were pressed.

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

14 years agocookbook: Use TESTS_DATA_DIR
Emmanuele Bassi [Sun, 18 Jul 2010 21:53:56 +0000 (22:53 +0100)]
cookbook: Use TESTS_DATA_DIR

We need the correct location for redhand.png if we want to load it
in textures-reflection.

14 years agocookbook: Add image and example for text-shadow
Emmanuele Bassi [Sun, 18 Jul 2010 10:20:44 +0000 (11:20 +0100)]
cookbook: Add image and example for text-shadow

14 years agocookbook: Include the textures-reflection example code
Emmanuele Bassi [Sun, 18 Jul 2010 10:15:25 +0000 (11:15 +0100)]
cookbook: Include the textures-reflection example code

Add a section at the end of the recipe containing the full code of the
example.

14 years agocogl-material-arbfp: Use separate buffers when calling g_ascii_dtostr
Neil Roberts [Sat, 17 Jul 2010 11:40:19 +0000 (12:40 +0100)]
cogl-material-arbfp: Use separate buffers when calling g_ascii_dtostr

g_ascii_dtostr was being used in four separate arguments to
g_string_append_printf but all invocations of it were using the same
buffer. This would end up with all of the arguments having the same
value which would depend on whichever order the compiler evaluates
them in. This patches changes it to use a multi-dimensional array and
a loop to fill in the separate buffers.

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

14 years agocookbook: Add an empty recipe for shadows under text
Emmanuele Bassi [Sun, 18 Jul 2010 09:56:35 +0000 (10:56 +0100)]
cookbook: Add an empty recipe for shadows under text

Currently, it's just an example and an image, but it should be easy to
flesh it out properly for the "Text" chapter.

14 years agocookbook: Add example code
Emmanuele Bassi [Sun, 18 Jul 2010 09:53:06 +0000 (10:53 +0100)]
cookbook: Add example code

The cookbook should also include fully functional code examples. We can
even XInclude them into the docbook XML itself.

The examples should be built with the coobook, so that we can always
make sure they are up to date.

14 years agoAdd gmo files to the Git ignore list
Emmanuele Bassi [Sat, 17 Jul 2010 09:23:57 +0000 (10:23 +0100)]
Add gmo files to the Git ignore list

14 years agomaterial-arbfp: Use locale-independent double to string conversion
Emmanuele Bassi [Fri, 16 Jul 2010 22:37:59 +0000 (23:37 +0100)]
material-arbfp: Use locale-independent double to string conversion

The ARBfp programs are created with a printf() wrapper, which usually
fails in non-en locales as soon as you start throwing things like
floating point values in the mix.

We should use the g_ascii_dtostr() function which places a double into a
string buffer in a locale-independent way.

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

14 years agocookbook: Use the right tag for the screenshot
Emmanuele Bassi [Fri, 16 Jul 2010 16:31:27 +0000 (17:31 +0100)]
cookbook: Use the right tag for the screenshot

Screenshots should be using the <screenshot> tag, not the <figure> one.

14 years agoMerge remote branch 'elliot/cookbook-actor-opacity'
Emmanuele Bassi [Fri, 16 Jul 2010 16:23:36 +0000 (17:23 +0100)]
Merge remote branch 'elliot/cookbook-actor-opacity'

Conflicts:
doc/cookbook/Makefile.am

14 years agocookbook: Add a missing image to the list
Emmanuele Bassi [Fri, 16 Jul 2010 16:20:38 +0000 (17:20 +0100)]
cookbook: Add a missing image to the list

14 years agoMerge remote branch 'elliot/cookbook-include-videos'
Emmanuele Bassi [Fri, 16 Jul 2010 16:13:12 +0000 (17:13 +0100)]
Merge remote branch 'elliot/cookbook-include-videos'

* elliot/cookbook-include-videos:
  cookbook: Tweak so that videos sit inside a paragraph for better spacing
  docs: Note the P_() macro in the HACKING file
  cookbook: Added support for inline video

Conflicts:
doc/cookbook/Makefile.am

14 years agoMerge remote branch 'elliot/cookbook-animation-fading'
Emmanuele Bassi [Fri, 16 Jul 2010 16:12:37 +0000 (17:12 +0100)]
Merge remote branch 'elliot/cookbook-animation-fading'

* elliot/cookbook-animation-fading:
  cookbook: Minor modification to wording to improve clarity
  cookbook: Added recipe for fading actors in/out

14 years agocookbook: Add a recipe for texture reflection
Emmanuele Bassi [Fri, 16 Jul 2010 16:04:31 +0000 (17:04 +0100)]
cookbook: Add a recipe for texture reflection

A common request: how to create a clone of a texture that looks like a
reflection.

14 years agocookbook: Added a recipe about making an actor transparent
Elliot Smith [Thu, 15 Jul 2010 18:47:53 +0000 (19:47 +0100)]
cookbook: Added a recipe about making an actor transparent

Explains how to make an actor transparent so that other actors
are visible through it.

Also explains a bit more generally about opacity and how
it's computed from the actor, container, and color; and how actor
visibility is affected by depth (fog) and depth order.

14 years agocookbook: Minor modification to wording to improve clarity
Elliot Smith [Fri, 16 Jul 2010 11:48:56 +0000 (12:48 +0100)]
cookbook: Minor modification to wording to improve clarity

Text referred to three animation methods, but only provides
examples for two of them; and in future there may be more/fewer
than 3. So I reworded it.

14 years agocookbook: Added recipe for fading actors in/out
Elliot Smith [Fri, 16 Jul 2010 11:34:44 +0000 (12:34 +0100)]
cookbook: Added recipe for fading actors in/out

Added a recipe showing how to fade actors in/out by
animating their opacity property, using both implicit
animations and ClutterState.

14 years agodocbook: Add an introduction to the texture section
Emmanuele Bassi [Fri, 16 Jul 2010 11:01:42 +0000 (12:01 +0100)]
docbook: Add an introduction to the texture section

14 years agopo: Fix the LTR string translation
Emmanuele Bassi [Fri, 16 Jul 2010 10:29:28 +0000 (11:29 +0100)]
po: Fix the LTR string translation

14 years agopo: Remove unused LINGUAS file
Emmanuele Bassi [Fri, 16 Jul 2010 10:23:01 +0000 (11:23 +0100)]
po: Remove unused LINGUAS file

The ALL_LINGUAS variable is generated from the list of po files.

14 years agoAdd pl translations
raven [Fri, 16 Jul 2010 10:18:02 +0000 (11:18 +0100)]
Add pl translations

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
14 years agoAdd zn_CN translations
happyaron [Fri, 16 Jul 2010 10:17:30 +0000 (11:17 +0100)]
Add zn_CN translations

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
14 years agocookbook: Tweak so that videos sit inside a paragraph for better spacing
Elliot Smith [Thu, 15 Jul 2010 16:24:50 +0000 (17:24 +0100)]
cookbook: Tweak so that videos sit inside a paragraph for better spacing

14 years agodocs: Note the P_() macro in the HACKING file
Emmanuele Bassi [Thu, 15 Jul 2010 13:26:16 +0000 (14:26 +0100)]
docs: Note the P_() macro in the HACKING file

14 years agocookbook: Added support for inline video
Elliot Smith [Thu, 15 Jul 2010 12:27:02 +0000 (13:27 +0100)]
cookbook: Added support for inline video

Amended Makefile to copy content of videos directory into
installation directories. Also copies videos and images
into the html/ directory during the build, so that the
built cookbook can be viewed locally (for testing without
having to install).

Added an XSLT template to transform Docbook <inlinemediaobject>
elements into HTML 5 <video> elements, with a fallback to
link to the video displayed for browsers without HTML 5 support.

Added note to "Contributing" appendix explaining how to put
video into a recipe.

14 years agoAdd an internal _cogl_bitmap_new_from_buffer
Neil Roberts [Thu, 15 Jul 2010 12:05:55 +0000 (13:05 +0100)]
Add an internal _cogl_bitmap_new_from_buffer

This function creates a CoglBitmap which internally references a
CoglBuffer. The map and unmap functions will divert to mapping the
buffer. There are also now bind and unbind functions which should be
used instead of map and unmap whenever the data doesn't need to be
read from the CPU but will instead be passed to GL for packing or
unpacking. For bitmaps created from buffers this just binds the
bitmap.

cogl_texture_new_from_buffer now just uses this function to wrap the
buffer in a bitmap rather than trying to bind the buffer
immediately. This means that the buffer will be bound only at the
point right before the texture data is uploaded.

This approach means that using a pixel array will take the fastest
upload route if possible, but can still fallback to copying the data
by mapping the buffer if some conversion is needed. Previously it
would just crash in this case because the texture functions were all
passed a NULL pointer.

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

14 years agoAdd a Cogl debug flag for BITMAP
Neil Roberts [Thu, 15 Jul 2010 12:02:23 +0000 (13:02 +0100)]
Add a Cogl debug flag for BITMAP

CoglBitmap will soon want to report notes as it gets more complicated
so this adds a debug flag for it.

14 years agoTry to avoid copying the GdkPixbuf when it is tightly packed
Neil Roberts [Thu, 15 Jul 2010 10:32:08 +0000 (11:32 +0100)]
Try to avoid copying the GdkPixbuf when it is tightly packed

The docs for GdkPixbuf say that the last row of the image won't
necessarily be allocated to the size of the full rowstride. The rest
of Cogl and possibly GL assumes that we can copy the bitmap with
memcpy(height*rowstride) so we previously would copy the pixbuf data
to ensure this. However if the rowstride is the same as bpp*width then
there is no way for the last row to be under-allocated so in this case
we can just directly upload from the gdk pixbuf. Now that CoglBitmap
can be created with a destroy function we can make it keep a reference
to the pixbuf and unref it during its destroy callback. GdkPixbuf
seems to always pack the image with no padding between rows even if it
is RGB so this should end up always avoiding the memcpy.

The fallback code for when we do have to copy the pixbuf is now
simplified so that it copies all of the rows in a single loop. We only
copy the useful region of each row so this should be safe. The
rowstride of the CoglBitmap is now always allocated to bpp*width
regardless of the rowstride of the pixbuf.

14 years agocogl-bitmap: Encapsulate the CoglBitmap even internally
Neil Roberts [Wed, 7 Jul 2010 17:44:16 +0000 (18:44 +0100)]
cogl-bitmap: Encapsulate the CoglBitmap even internally

The CoglBitmap struct is now only defined within cogl-bitmap.c so that
all of its members can now only be accessed with accessor
functions. To get to the data pointer for the bitmap image you must
first call _cogl_bitmap_map and later call _cogl_bitmap_unmap. The map
function takes the same arguments as cogl_pixel_array_map so that
eventually we can make a bitmap optionally internally divert to a
pixel array.

There is a _cogl_bitmap_new_from_data function which constructs a new
bitmap object and takes ownership of the data pointer. The function
gets passed a destroy callback which gets called when the bitmap is
freed. This is similar to how gdk_pixbuf_new_from_data
works. Alternatively NULL can be passed for the destroy function which
means that the caller will manage the life of the pointer (but must
guarantee that it stays alive at least until the bitmap is
freed). This mechanism is used instead of the old approach of creating
a CoglBitmap struct on the stack and manually filling in the
members. It could also later be used to create a CoglBitmap that owns
a GdkPixbuf ref so that we don't necessarily have to copy the
GdkPixbuf data when converting to a bitmap.

There is also _cogl_bitmap_new_shared. This creates a bitmap using a
reference to another CoglBitmap for the data. This is a bit of a hack
but it is needed by the atlas texture backend which wants to divert
the set_region virtual to another texture but it needs to override the
format of the bitmap to ignore the premult flag.

14 years agocogl-texture-2d-sliced: Store the internal format not image format
Neil Roberts [Wed, 14 Jul 2010 12:21:54 +0000 (13:21 +0100)]
cogl-texture-2d-sliced: Store the internal format not image format

The 'format' member of CoglTexture2DSliced is returned by
cogl_texture_get_format. All of the other backends return the internal
format of the GL texture in this case. However the sliced backend was
returning the format of the image data used to create the texture. It
doesn't make any sense to retain this information because it doesn't
necessarily indicate the format of the actual texture. This patch
changes it to store the internal format instead.

14 years agodocs: Note the P_() macro in the HACKING file
Emmanuele Bassi [Thu, 15 Jul 2010 13:26:16 +0000 (14:26 +0100)]
docs: Note the P_() macro in the HACKING file

14 years agoMark property strings for translation
Emmanuele Bassi [Thu, 3 Jun 2010 11:57:50 +0000 (12:57 +0100)]
Mark property strings for translation

Both the nick and the blurb fields should be translatable, for UI
builders and other introspection-based tools.

14 years agoAdd P_() macro for translating property strings
Emmanuele Bassi [Thu, 3 Jun 2010 11:56:17 +0000 (12:56 +0100)]
Add P_() macro for translating property strings

The P_() macro adds a context for the property nick and blurb. In order
to make xgettext recognize it, we need to drop glib-gettexize inside the
autogen.sh script and ship a modified Makefile.in.in with Clutter.

14 years agobuild: Use AS_ALL_LINGUAS
Emmanuele Bassi [Thu, 3 Jun 2010 11:32:54 +0000 (12:32 +0100)]
build: Use AS_ALL_LINGUAS

The AS_ALL_LINGUAS m4 macro allows configure-time generation of the
ALL_LINGUAS variable from the translations inside po/ instead of using
the LINGUAS file.

14 years agoFixes build with GLX on Mac OS X.
Nate Stedman [Wed, 14 Jul 2010 18:46:23 +0000 (14:46 -0400)]
Fixes build with GLX on Mac OS X.

Moves preprocessor #ifdef __linux_ above else statement, avoiding the
lack of an else block if __linux__ is not defined.

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

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
14 years agobuild: Fix include path for Cally's introspection
Emmanuele Bassi [Wed, 14 Jul 2010 23:26:42 +0000 (00:26 +0100)]
build: Fix include path for Cally's introspection

The introspection scanner does not include '.' by default, so it was
always using the installed copy of Clutter-1.0.gir. Which obviously
wouldn't work if we didn't have one.

14 years agogles/cogl-texture-driver.c: Fix the include for cogl-material-private
Neil Roberts [Wed, 14 Jul 2010 16:49:16 +0000 (17:49 +0100)]
gles/cogl-texture-driver.c: Fix the include for cogl-material-private

In ddb9016be4 the GL texture driver backend was changed to include
cogl-material-opengl-private.h instead of cogl-material-private.h.
However the gles texture backend was missed from this so it was giving
a compiler warning about using an undeclared function.

14 years agocogl-texture-3d: Use glTexSubImage3D through an indirect pointer
Neil Roberts [Wed, 14 Jul 2010 16:45:15 +0000 (17:45 +0100)]
cogl-texture-3d: Use glTexSubImage3D through an indirect pointer

glTexSubImage3D was being called directly in cogl-texture-3d.c but the
function is only available since GL version 1.2 so on Windows it won't
be possible to directly link to it. Also under GLES it is only
available conditionally in an extension.

14 years agocogl-texture-3d: Fix the cogl-material-private header include
Neil Roberts [Wed, 14 Jul 2010 15:35:33 +0000 (16:35 +0100)]
cogl-texture-3d: Fix the cogl-material-private header include

In ddb9016be4 the texture backends were changed to include
cogl-material-opengl-private.h instead of cogl-material-private.h.
However the 3D texture backend was missed from this so it was giving a
compiler warning about using an undeclared function.

14 years agocogl-texture-3d: Don't include cogl-texture-2d-private.h
Neil Roberts [Wed, 14 Jul 2010 15:34:36 +0000 (16:34 +0100)]
cogl-texture-3d: Don't include cogl-texture-2d-private.h

I think this was included by a cut-and-paste error as it isn't needed
anywhere in the source.

14 years agomaterial: splits out all the state flushing code
Robert Bragg [Sat, 10 Jul 2010 02:40:47 +0000 (03:40 +0100)]
material: splits out all the state flushing code

This moves the code supporting _cogl_material_flush_gl_state into
cogl-material-opengl.c as part of an effort to reduce the size of
cogl-material.c to keep it manageable.

14 years agomaterial: split the texture unit management out
Robert Bragg [Sat, 10 Jul 2010 01:53:38 +0000 (02:53 +0100)]
material: split the texture unit management out

In general cogl-material.c has become far to large to manage in one
source file. As one of the ways to try and break it down this patch
starts to move some of lower level texture unit state management out
into cogl-material-opengl.c. The naming is such because the plan is to
follow up and migrate the very GL specific state flushing code into the
same file.

14 years agomaterial: copy_differences: handle copying fog state
Robert Bragg [Sat, 10 Jul 2010 00:36:22 +0000 (01:36 +0100)]
material: copy_differences: handle copying fog state

When the support for redirecting the legacy fog state through cogl
material was added in 9b9e764dc, the code to handle copying the fog
state in _cogl_material_copy_differences was missed.

14 years agoAdd a GL_GENERATE_MIPMAP fallback to the texture 2d and 3d backends
Neil Roberts [Tue, 13 Jul 2010 17:41:01 +0000 (18:41 +0100)]
Add a GL_GENERATE_MIPMAP fallback to the texture 2d and 3d backends

The CoglTexture2DSliced backend has a fallback for when the
framebuffer extension is missing so it's not possible to use
glGenerateMipmap. This involves keeping a copy of the upper-left pixel
of the tex image so that we can temporarily enable GL_GENERATE_MIPMAP
on the texture object and do a sub texture update by reuploading the
contents of the first pixel. This patch copies that mechanism to the
2D and 3D backends. The CoglTexturePixel structure which was
previously internal to the sliced backend has been moved to
cogl-texture-private.h so that it can be shared.

14 years agoMerge branch 'wip/xkb-support'
Emmanuele Bassi [Tue, 13 Jul 2010 15:12:14 +0000 (16:12 +0100)]
Merge branch 'wip/xkb-support'

* wip/xkb-support:
  x11: Use XKB to translate keycodes into key symbols
  x11: Use XKB to track the Locks state
  x11: Use XKB detectable auto-repeat
  x11: Add a Keymap ancillary object
  x11: Store the group inside the event platform data
  events: Add platform-data to allocated Events
  build: Check for the XKB extension

14 years agostage: Add the NO_CLEAR_ON_PAINT hint
Emmanuele Bassi [Fri, 16 Apr 2010 14:34:36 +0000 (15:34 +0100)]
stage: Add the NO_CLEAR_ON_PAINT hint

Some apps or some use cases don't need to clear the stage on immediate
rendering GPUs. A media player playing a fullscreen video or a
tile-based game, for instance.

These apps are redrawing the whole screen, so we can avoid clearing the
color buffer when preparing to paint the stage, since there is no
blending with the stage color being performed.

We can add an private set of hints to ClutterStage, and expose accessors
for each potential hint; the first hint is the 'no-clear' one.

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

14 years agoMake the material functions for setting the p wrap mode public
Neil Roberts [Fri, 2 Jul 2010 12:33:06 +0000 (13:33 +0100)]
Make the material functions for setting the p wrap mode public

Now that we have 3D texture support it makes sense to expose the wrap
mode for the p coordinate.

14 years agoRename the third texure coordinate from 'r' to 'p'
Neil Roberts [Mon, 12 Jul 2010 16:01:32 +0000 (17:01 +0100)]
Rename the third texure coordinate from 'r' to 'p'

Using 'r' to name the third component is problematic because that is
commonly used to represent the red component of a vector representing
a color. Under GLSL this is awkward because the texture swizzling for
a vector uses a single letter for each component and the names for
colors, textures and positions are synonymous. GLSL works around this
by naming the components of the texture s, t, p and q. Cogl already
effectively already exposes this naming because it exposes GLSL so it
makes sense to use that naming consistently. Another alternative could
be u, v and w. This is what Blender and Direct3D use. However the w
component conflicts with the w component of a position vertex.

14 years agoAdd a conformance test for 3D textures
Neil Roberts [Thu, 1 Jul 2010 21:05:51 +0000 (22:05 +0100)]
Add a conformance test for 3D textures

This creates a 3D texture with different colors on all of the images
and renders it using a VBO to verify that the texture coordinates can
select all of the images.

14 years agoAdd a Cogl texture 3D backend
Neil Roberts [Thu, 1 Jul 2010 21:04:59 +0000 (22:04 +0100)]
Add a Cogl texture 3D backend

This adds a publicly exposed experimental API for a 3D texture
backend. There is a feature flag which can be checked for whether 3D
textures are supported. Although we require OpenGL 1.2 which has 3D
textures in core, GLES only provides them through an extension so the
feature can be used to detect that.

The textures can be created with one of two new API functions :-

cogl_texture_3d_new_with_size

 and

cogl_texture_3d_new_from_data

There is also internally a new_from_bitmap function. new_from_data is
implemented in terms of this function.

The two constructors are effectively the only way to upload data to a
3D texture. It does not work to call glTexImage2D with the
GL_TEXTURE_3D target so the virtual for cogl_texture_set_region does
nothing. It would be possible to make cogl_texture_get_data do
something sensible like returning all of the images as a single long
image but this is not currently implemented and instead the virtual
just always fails. We may want to add API specific to the 3D texture
backend to get and set a sub region of the texture.

All of those three functions can throw a GError. This will happen if
the GPU does not support 3D textures or it does not support NPOTs and
an NPOT size is requested. It will also fail if the FBO extension is
not supported and the COGL_TEXTURE_NO_AUTO_MIPMAP flag is not
given. This could be avoided by copying the code for the
GL_GENERATE_MIPMAP TexParameter fallback, but in the interests of
keeping the code simple this is not yet done.

This adds a couple of functions to cogl-texture-driver for uploading
3D data and querying the 3D proxy
texture. prep_gl_for_pixels_upload_full now also takes sets the
GL_UNPACK_IMAGE_HEIGHT parameter so that 3D textures can have padding
between the images. Whenever 3D texture is uploading, both the height
of the images and the height of all of the data is specified (either
explicitly or implicilty from the CoglBitmap) so that the image height
can be deduced by dividing by the depth.