Emmanuele Bassi [Mon, 28 Feb 2011 14:31:59 +0000 (14:31 +0000)]
offscreen-effect: Add public accessor for target size
The OffscreenEffect class needs to expose a way for sub-classes to
track the size of FBO it creates, in case it has to do some geometry
deformations like the DeformEffect sub-classes.
Let's move the private symbol we used internally in 1.6 to fix
DeformEffect to the list of public symbols of OffscreenEffect.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2570
Emmanuele Bassi [Mon, 28 Feb 2011 14:02:00 +0000 (14:02 +0000)]
Move the keysym ↔ Unicode table to .rodata
The table we use for converting between keysyms and Unicode should be
static and constified, so that it can live in the .rodata section of
the ELF shared object, and be shared among processes.
This change moves the table to a source file, instead of an header; the
change also requires the clutter_keysym_to_unicode() function to be
moved from clutter-event.c into this new source file. The declaration is
still in clutter-event.h, so we don't need to do anything special.
Emmanuele Bassi [Mon, 28 Feb 2011 12:49:48 +0000 (12:49 +0000)]
build: Show CFLAGS in the configure summary
Don't show just the maintainer flags, but the whole shebang.
Emmanuele Bassi [Tue, 22 Feb 2011 17:12:34 +0000 (17:12 +0000)]
event: Add setters for ClutterEvent members
Creating a synthetic event requires direct access to the ClutterEvent
union members; this access does not map in bindings to high-level
languages, especially run-time bindings using GObject-Introspection.
It's also midly annoying from C, as it unnecessarily exposes the guts of
ClutterEvent - something we might want to fix in the future.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2575
Neil Roberts [Tue, 22 Feb 2011 12:53:15 +0000 (12:53 +0000)]
tests: Check return value of clutter_init_with_args instead of error
Some of the tests were ignoring the return value of
clutter_init_with_args and instead they would recognise an error by
seeing whether the GError parameter was set. This patch changes it to
check the return value so that it won't give a warning now that
G_GNUC_WARN_UNUSED_RESULT is on that function.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2574
Neil Roberts [Tue, 22 Feb 2011 12:38:19 +0000 (12:38 +0000)]
Add G_GNUC_WARN_UNUSED_RESULT to clutter_init and init_with_args
Many people expect clutter_init to work the same way as gtk_init which
exits the program on init failure. clutter_init however returns a
status code on failure which applications need to handle because if
the init fails then any further Clutter calls are likely to crash. In
Clutter 2.0 we may want to change this to be more like GTK+.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2574
nobled [Tue, 22 Feb 2011 00:44:55 +0000 (00:44 +0000)]
doc: fix clutter_init() usage in examples
Make sure users get the idea that clutter_init()
has a return value that needs to be checked.
These were fixed via sed magic:
sed -i -s -e "s/clutter_init (.*)/\
if (& != CLUTTER_INIT_SUCCESS)\n return 1/"\
doc/*/*/*.{c,xml} doc/*/*.xml
http://bugzilla.clutter-project.org/show_bug.cgi?id=2574
nobled [Tue, 22 Feb 2011 00:19:35 +0000 (00:19 +0000)]
tests: abort if clutter_init fails
This fixes segfaults when something goes wrong during
init, but the test keeps going anyway.
Except for test-easing and test-picking, these were fixed by
sed magic:
sed -i -s -e "s/clutter_init \?(&argc, &argv)/\
if (clutter_init (\&argc, \&argv) != CLUTTER_INIT_SUCCESS)\n\
return 1/" tests/*/*.c
http://bugzilla.clutter-project.org/show_bug.cgi?id=2574
Emmanuele Bassi [Mon, 28 Feb 2011 11:24:14 +0000 (11:24 +0000)]
Start 1.7 development cycle
Neil Roberts [Thu, 24 Feb 2011 20:30:30 +0000 (20:30 +0000)]
Add a conformance test for atlas migration
This adds a conformance test which creates a lot of textures with
increasing size and destroys them again a number of times in order to
cause a few atlas migrations. The last time the textures are created
they are all read back and the data is verified to confirm that the
atlas migration successfully preserved the data.
Neil Roberts [Thu, 24 Feb 2011 18:42:47 +0000 (18:42 +0000)]
cogl-blit: Disable blending when using texture render
When using a pipeline and the journal to blit images between
framebuffers, it should disable blending. Otherwise it will end up
blending the source texture with uninitialised garbage in the
destination texture.
Emmanuele Bassi [Wed, 23 Feb 2011 00:07:12 +0000 (00:07 +0000)]
build: Remove MAINTAINERCLEANFILES from ChangeLog rules
Emmanuele Bassi [Tue, 22 Feb 2011 18:32:01 +0000 (18:32 +0000)]
build: Remove maintainer-clean rule
The maintainer-clean files list is horribly out of date, nobody is
maintaining it, and it's honestly easier to use `git clean -xdf`
instead to clean untracked files.
Emmanuele Bassi [Mon, 21 Feb 2011 18:09:06 +0000 (18:09 +0000)]
Merge remote-tracking branch 'elliot/cookbook-effects-custom-deform'
* elliot/cookbook-effects-custom-deform:
docs: Add effects chapter, with introduction and first recipe
Emmanuele Bassi [Mon, 21 Feb 2011 17:13:37 +0000 (17:13 +0000)]
text: Round up the size
Converting from Pango units to pixels by using the C conventions might
cause us to lose a pixel; since we're doing the same for the height, we
should use ceilf() to round up the width and the line height.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2573
Elliot Smith [Mon, 21 Feb 2011 16:43:34 +0000 (16:43 +0000)]
docs: Add effects chapter, with introduction and first recipe
Add an effects chapter which gives a broad overview of
the abstract classes in the effects API, plus a short
example of how to apply one of the stock Clutter
effects (ClutterColorizeEffect).
The recipe explains how to create a custom ClutterDeformEffect
to produce a page fold (code based on ClutterPageTurnEffect).
The example code includes the effect class plus a small
application to apply it to a texture.
Emmanuele Bassi [Mon, 21 Feb 2011 16:41:28 +0000 (16:41 +0000)]
docs: Mention the cookbook in the README
In the "Resources" section, along with the API references.
Emmanuele Bassi [Mon, 21 Feb 2011 16:40:50 +0000 (16:40 +0000)]
docs: Remove last mention of SDL from the README
We don't support SDL since forever, now. Just get rid of it, before it
confuses somebody.
Emmanuele Bassi [Mon, 21 Feb 2011 14:19:47 +0000 (14:19 +0000)]
Post-release version bump to 1.6.7
Emmanuele Bassi [Mon, 21 Feb 2011 12:47:09 +0000 (12:47 +0000)]
Release Clutter 1.6.6 (stable)
Emmanuele Bassi [Mon, 21 Feb 2011 12:46:34 +0000 (12:46 +0000)]
build: Use all-am, not all as the gitignore target
Emmanuele Bassi [Sat, 19 Feb 2011 16:48:59 +0000 (16:48 +0000)]
device-manager/xi2: Silence a compiler warning
Emmanuele Bassi [Sat, 19 Feb 2011 16:46:44 +0000 (16:46 +0000)]
tests: Remove unused variables
Emmanuele Bassi [Sat, 19 Feb 2011 16:45:51 +0000 (16:45 +0000)]
test-timeline: Ignore the default stage
We need to create the default stage to have the master clock spin, but
we can tell the compiler that the returned value is meaningless.
Emmanuele Bassi [Sat, 19 Feb 2011 16:45:35 +0000 (16:45 +0000)]
cally: Remove unused variables
Emmanuele Bassi [Sat, 19 Feb 2011 16:45:06 +0000 (16:45 +0000)]
clutter: Remove unused variables
Emmanuele Bassi [Sat, 19 Feb 2011 16:44:38 +0000 (16:44 +0000)]
x11: Remove unused variables
Emmanuele Bassi [Sat, 19 Feb 2011 16:43:46 +0000 (16:43 +0000)]
cogl: Remove unused variables
Emmanuele Bassi [Sat, 19 Feb 2011 09:17:25 +0000 (09:17 +0000)]
deform-effect: Use the FBO target size
The ClutterDeformEffect sub-classes are effectively deforming the
texture target of an FBO, not the actor itself. Thus, we need to
use the FBO's size, and not the actor's allocated size, given that
the actor might be transformed prior to applying an effect.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2571
Emmanuele Bassi [Sat, 19 Feb 2011 09:15:34 +0000 (09:15 +0000)]
offscreen-effect: Add private API for getting the target size
Since the FBO target might have a different size than the mere paint box
of the actor, we need API to get it out of the ClutterOffscreenEffect
private data structure and on to sub-classes.
Since we cannot add new API in a stable cycle, we need a private
function; we'll leave it there even when opening 1.7, since it's useful
for internal purposes.
Emmanuele Bassi [Sat, 19 Feb 2011 09:04:46 +0000 (09:04 +0000)]
Update NEWS
Emmanuele Bassi [Sat, 19 Feb 2011 09:02:51 +0000 (09:02 +0000)]
build: Centralize X11 extensions versioning
Similar to what we did for the base dependencies.
Emmanuele Bassi [Fri, 18 Feb 2011 19:28:48 +0000 (19:28 +0000)]
drag-action: Use per-stage motion event toggle
Similar to what we did for the ClutterDeviceManager, use per-stage
granularity when toggling the motion event delivery while dragging.
Emmanuele Bassi [Fri, 18 Feb 2011 19:27:58 +0000 (19:27 +0000)]
device-manager: Use per-stage motion event toggle
Now that we have internal support for per-stage granularity of motion
event delivery, let's use it when updating the state of the input
devices.
Emmanuele Bassi [Fri, 18 Feb 2011 17:19:04 +0000 (17:19 +0000)]
Store the motion event deliver flag in ClutterStage
Once upon a time, the land of Clutter had a stage singleton. It was
created automatically at initialization time and stayed around even
after the main loop was terminated. The singleton was content in
being all there was. There also was a global API to handle the
configuration of the stage singleton that would affect the behaviour
on other classes, signals and properties.
Then, an evil wizard came along and locked the stage singleton in his
black tower, and twisted it until it was possible to create new stages.
These new stages were pesky, and didn't have the same semantics of the
singleton: they didn't stay around when closed, or terminate the main
loop on delete events.
The evil wizard also started moving all the stage-related API from the
global context into class-specific methods.
Finally, the evil wizard cast a spell, and the stage singleton was
demoted to creation on demand - and until somebody called the
clutter_stage_get_default() function, the singleton remained in a limbo
of NULL pointers and undefined memory areas.
There was a last bit - literally - of information still held by the
global API; a tiny, little flag that disabled per-actor motion events.
The evil wizard added private accessors for it, and stored it inside the
stage private structure, in preparation for a deprecation that would
come in a future development cycle.
The evil wizard looked down upon the land of Clutter from the height of
his black tower; the lay of the land had been reshaped into a crucible
of potential, and the last dregs of the original force of creation were
either molted into new, useful shapes, or blasted away by the sheer fury
of his will.
All was good.
Emmanuele Bassi [Fri, 18 Feb 2011 17:18:05 +0000 (17:18 +0000)]
Assert if we call backend API without a valid backend
This is a backend programming error, and we should not tolerate
failures in these cases.
Emmanuele Bassi [Fri, 18 Feb 2011 16:53:58 +0000 (16:53 +0000)]
Clean up clutter-private.h
Move macros at the top, and clean up whitespace.
Emmanuele Bassi [Fri, 18 Feb 2011 16:53:31 +0000 (16:53 +0000)]
Move ActorMeta private function in the private header
No reason to leave it in the installed header.
Emmanuele Bassi [Fri, 18 Feb 2011 16:27:49 +0000 (16:27 +0000)]
Add private header for event-related API
Emmanuele Bassi [Fri, 18 Feb 2011 16:00:39 +0000 (16:00 +0000)]
Move ClutterEffect private symbols to a private header
No point in cluttering up clutter-private.h even more than necessary.
Emmanuele Bassi [Fri, 18 Feb 2011 15:53:27 +0000 (15:53 +0000)]
Privatize all ClutterIdPool functions
The clutter-id-pool.h header is private and not installed; yet, all the
clutter_id_pool_* symbols are public. Let's correct this oversight we've
been stringing along since forever.
Emmanuele Bassi [Fri, 18 Feb 2011 15:47:35 +0000 (15:47 +0000)]
Clean up usage of CLUTTER_CONTEXT and remove the macro
Only allow access to the ClutterMainContext through the private
_clutter_context_get_default() function, so we can easily grep
it and remove the unwanted usage of the global context.
Emmanuele Bassi [Fri, 18 Feb 2011 15:46:13 +0000 (15:46 +0000)]
Wrap id-pool access
The ClutterIdPool is held by the ClutterMainContext; we should hide its
direct usage into sensible private API.
Emmanuele Bassi [Fri, 18 Feb 2011 15:44:17 +0000 (15:44 +0000)]
Wrap shader stack into private functions
The shader stack held by ClutterMainContext should only be accessed
using functions, and not directly.
Since it's a stack, we can use stack-like operations: push, pop and
peek.
Emmanuele Bassi [Fri, 18 Feb 2011 14:38:54 +0000 (14:38 +0000)]
stage: Make the redraw_count a stage counter
We don't care about redraws issued on stages that are not currently
being repainted.
Emmanuele Bassi [Fri, 18 Feb 2011 14:38:24 +0000 (14:38 +0000)]
Make _clutter_pixel_to_id() private
It's only used in the same file that declares it.
Emmanuele Bassi [Fri, 18 Feb 2011 12:56:17 +0000 (12:56 +0000)]
stage: Move stage redraw logic into clutter-stage.c
The _clutter_do_redraw() function should really be moved inside
ClutterStage, since all it does is calling private stage and
backend functions. This also allows us to change a long-standing
issue with a global fps counter for all stages, instead of a\
per-stage one.
Emmanuele Bassi [Fri, 18 Feb 2011 12:07:07 +0000 (12:07 +0000)]
Continue hiding the ClutterMainContext
We should strive to make the main context as transparent as possible,
and hide accessing its data through private functions.
Emmanuele Bassi [Fri, 18 Feb 2011 11:43:27 +0000 (11:43 +0000)]
actor: Move the ShaderData out of the private data
Let's try and start reducing the size of ClutterActorPrivate by moving
some optional, out-of-band data from it to GObject data.
The ShaderData structure is a prime candidate for this migration: it
does not need to be inspected by the actor, and its relationship with an
actor is transient and optional.
By attaching it to the actor's instance through g_object_set_data() we
neatly tie its lifetime to the instance, and we don't have to care
cleaning it up in the finalize()/dispose() implementation of
ClutterActor itself.
Neil Roberts [Thu, 17 Feb 2011 13:11:34 +0000 (13:11 +0000)]
cogl-atlas-texture: Don't let textures be destroyed during migration
If an atlas texture's last reference is held by the journal or by the
last flushed pipeline then if an atlas migration is started it can
cause a crash. This is because the atlas migration will cause a
journal flush and can sometimes change the current pipeline which
means that the texture would be destroyed during migration.
This patch adds an extra 'post_reorganize' callback to the existing
'reorganize' callback (which is now renamed to 'pre_reorganize'). The
pre_reorganize callback is now called before the atlas grabs a list of
the current textures instead of after so that it doesn't matter if the
journal flush destroys some of those textures. The pre_reorganize
callback for CoglAtlasTexture grabs a reference to all of the textures
so that they can not be destroyed when the migration changes the
pipeline. In the post_reorganize callback the reference is removed
again.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2538
Neil Roberts [Wed, 16 Feb 2011 18:42:33 +0000 (18:42 +0000)]
clutter-actor: Free the paint volume when queue a clip redraw
In _clutter_actor_queue_redraw_with_clip it has a local variable to
mark when a new paint volume for the clip is created so that it can be
freed when the function returns. However the actual code to free the
paint volume went missing in
3b789490d2c so the variable did
nothing. This patch just adds the free back in.
Emmanuele Bassi [Wed, 16 Feb 2011 15:38:05 +0000 (15:38 +0000)]
build: Compress the CLUTTER_PC_FILES list
A bit of black magic, courtesy of gtk+'s configure.ac, to strip the
leading space from BACKEND_PC_FILES.
Neil Roberts [Wed, 16 Feb 2011 14:11:25 +0000 (14:11 +0000)]
clutter-color-size-effect: Fix a minor typo in the docs
'Since:' was spelt 'SinceL' which I assume was a typo.
Emmanuele Bassi [Tue, 15 Feb 2011 14:46:20 +0000 (14:46 +0000)]
backend: Remove usage of CLUTTER_STAGE_TYPE
It's only used for debugging purposes, and it's of limited usage since
the stage creation is deferred to the backend implementation itself.
Neil Roberts [Tue, 15 Feb 2011 12:50:15 +0000 (12:50 +0000)]
cogl-atlas: Fix a compiler warning when Cogl debug is disabled
When Cogl debugging is disabled then the 'waste' variable is not used
so it throws a compiler warning. This patch removes the variable and
the value is calculated directly as the parameter to COGL_NOTE.
Neil Roberts [Tue, 15 Feb 2011 12:44:40 +0000 (12:44 +0000)]
cogl-debug: Don't define _cogl_debug_flags when debugging disabled
_cogl_debug_flags isn't used when COGL_DEBUG is not defined so there's
no need to declare it.
Based on a patch by Fan, Chun-wei
http://bugzilla.clutter-project.org/show_bug.cgi?id=2561
Neil Roberts [Tue, 15 Feb 2011 12:43:26 +0000 (12:43 +0000)]
cogl: Avoid pointer arithmetic on void* pointers
Some code was doing pointer arithmetic on the return value from
cogl_buffer_map which is void* pointer. This is a GCC extension so we
should try to avoid it. This patch adds casts to guint8* where
appropriate.
Based on a patch by Fan, Chun-wei.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2561
Neil Roberts [Tue, 15 Feb 2011 12:36:58 +0000 (12:36 +0000)]
configure.ac: Add -Wpointer-arith to the maintainer CFLAGS
GCC by default allows pointer arithmetic on void* pointers and treats
them as having a size of 1 byte. This is non-standard behaviour and
causes errors on some compilers so we should try to avoid
it. -Wpointer-arith warns about these cases.
Emmanuele Bassi [Tue, 15 Feb 2011 14:15:59 +0000 (14:15 +0000)]
docs: Update the README
Fix some typos; add URLs for API references and Bugzilla.
Emmanuele Bassi [Tue, 15 Feb 2011 12:13:14 +0000 (12:13 +0000)]
build: Re-enable --warn-all for g-ir-scanner
Now that I don't have to see a bunch of false positives any more, we can
finally use warnings to catch issues.
Emmanuele Bassi [Tue, 15 Feb 2011 12:11:28 +0000 (12:11 +0000)]
introspection: Override the GParamSpec type
About other assorted boneheadedness, the GType for GParamSpec is
called 'GParam'. Why? Who knows. I assume alcohol was involved,
but I honestly don't want to know.
This removes the last g-ir-scanner warning in Clutter.
Emmanuele Bassi [Tue, 15 Feb 2011 12:31:12 +0000 (12:31 +0000)]
Fix ISO C90 compiler warnings in Cogl
Mixing declarations and statements and unused variables.
Emmanuele Bassi [Tue, 15 Feb 2011 11:50:26 +0000 (11:50 +0000)]
More ISO C90 warning fixes in Clutter
This time, in Clutter core.
The ObjC standard library provides a type called 'id', which obviously
requires any library to either drop the useful shadowed variable warning
or stop using 'id' as a variable name.
Yes, it's almost unbearably stupid. Well, at least it's not 'index' in
string.h, or 'y2' in math.h.
Emmanuele Bassi [Tue, 15 Feb 2011 11:34:21 +0000 (11:34 +0000)]
Fix some ISO C90 warnings on OSX
Neil Roberts [Thu, 20 Jan 2011 17:45:47 +0000 (17:45 +0000)]
cogl-atlas: Try 4 different approaches for migrating textures
Instead of directly banging GL to migrate textures the atlas now uses
the CoglFramebuffer API. It will use one of four approaches; it can
set up two FBOs and use _cogl_blit_framebuffer to copy between them;
it can use a single target fbo and then render the source texture to
the FBO using a Cogl draw call; it can use a single FBO and call
glCopyTexSubImage2D; or it can fallback to reading all of the texture
data back to system memory and uploading it again with a sub texture
update.
Previously GL calls were used directly because Cogl wasn't able to
create a framebuffer without a stencil and depth buffer. However there
is now an internal version of cogl_offscreen_new_to_texture which
takes a set of flags to disable the two buffers.
The code for blitting has now been moved into a separate file called
cogl-blit.c because it has become quite long and it may be useful
outside of the atlas at some point.
The 4 different methods have a fixed order of preference which is:
* Texture render between two FBOs
* glBlitFramebuffer
* glCopyTexSubImage2D
* glGetTexImage + glTexSubImage2D
Once a method is succesfully used it is tried first for all subsequent
blits. The default default can be overridden by setting the
environment variable COGL_ATLAS_DEFAULT_BLIT_MODE to one of the
following values:
* texture-render
* framebuffer
* copy-tex-sub-image
* get-tex-data
Neil Roberts [Thu, 10 Feb 2011 18:24:14 +0000 (18:24 +0000)]
cogl-texture-2d: Add _cogl_is_texture_2d to the private header
This adds a declaration for _cogl_is_texture_2d to the private header
so that it can be used in cogl-blit.c to determine if the target
texture is a simple 2D texture.
Neil Roberts [Thu, 10 Feb 2011 18:22:27 +0000 (18:22 +0000)]
cogl-texture-2d: Add an internal wrapper around glCopyTexSubImage2D
This adds a function called _cogl_texture_2d_copy_from_framebuffer
which is a simple wrapper around glCopyTexSubImage2D. It is currently
specific to the texture 2D backend.
Neil Roberts [Sat, 5 Feb 2011 11:19:52 +0000 (11:19 +0000)]
cogl-framebuffer: Add _cogl_blit_framebuffer
This adds the _cogl_blit_framebuffer internal function which is a
wrapper around glBlitFramebuffer. The API is changed from the GL
version of the function to reflect the limitations provided by the
GL_ANGLE_framebuffer_blit extension (eg, no scaling or mirroring).
Neil Roberts [Sat, 5 Feb 2011 12:42:39 +0000 (12:42 +0000)]
cogl-gles: Check for the GL_ANGLE_framebuffer_blit extension
This extension is the GLES equivalent of the GL_EXT_framebuffer_blit
extension except that it has some extra restrictions. We need to check
for some extension that provides glBlitFramebuffer so that we can
unconditionally use ctx->drv.pf_glBlitFramebuffer in both GL and GLES
code. Even with the restrictions, the extension provides enough
features for what Cogl needs.
Neil Roberts [Fri, 21 Jan 2011 17:37:10 +0000 (17:37 +0000)]
cogl-atlas-texture: Make copying a texture out more robust
Previously when _cogl_atlas_texture_migrate_out_of_atlas is called it
would unreference the atlas texture's sub-texture before calling
_cogl_atlas_copy_rectangle. This would leave the atlas texture in an
inconsistent state during the copy. This doesn't normally matter but
if the copy ends up doing a render then the atlas texture may end up
being referenced. In particular it would cause problems if the texture
is left in a texture unit because then Cogl may try to call
get_gl_texture even though the texture isn't actually being used for
rendering. To fix this the sub texture is now unrefed after the copy
call instead.
Neil Roberts [Wed, 2 Feb 2011 14:23:53 +0000 (14:23 +0000)]
cogl-framebuffer: Separate the draw and read buffer
The current framebuffer is now internally separated so that there can
be a different draw and read buffer. This is required to use the
GL_EXT_framebuffer_blit extension. The current draw and read buffers
are stored as a pair in a single stack so that pushing the draw and
read buffer is done simultaneously with the new
_cogl_push_framebuffers internal function. Calling
cogl_pop_framebuffer will restore both the draw and read buffer to the
previous state. The public cogl_push_framebuffer function is layered
on top of the new function so that it just pushes the same buffer for
both drawing and reading.
When flushing the framebuffer state, the cogl_framebuffer_flush_state
function now tackes a pointer to both the draw and the read
buffer. Anywhere that was just flushing the state for the current
framebuffer with _cogl_get_framebuffer now needs to call both
_cogl_get_draw_buffer and _cogl_get_read_buffer.
Emmanuele Bassi [Mon, 14 Feb 2011 18:36:51 +0000 (18:36 +0000)]
annotations: Use caller-allocates for color getters
This should avoid a separate initialization of a ClutterColor in
language bindings.
Emmanuele Bassi [Mon, 14 Feb 2011 17:34:15 +0000 (17:34 +0000)]
build: Add README template to EXTRA_DIST
Emmanuele Bassi [Mon, 14 Feb 2011 16:49:01 +0000 (16:49 +0000)]
build: Generate README
Use the configure script to generate the README from a template file, so
that we can keep the versions of the dependencies in one place.
Emmanuele Bassi [Mon, 14 Feb 2011 16:15:55 +0000 (16:15 +0000)]
Post-release version bump to 1.6.5
Emmanuele Bassi [Mon, 14 Feb 2011 15:53:02 +0000 (15:53 +0000)]
Release Clutter 1.6.4 (stable)
Adel Gadllah [Sat, 12 Feb 2011 23:04:52 +0000 (00:04 +0100)]
backend-glx: Remove redundant glFlush()
As noted in commit
ce3f55292a an explict glFlush is needed for
both glBlitFramebuffer and glXCopySubBuffer.
_clutter_backend_glx_blit_sub_buffer was already doing an explicit
flush when using glBlitFramebuffer, so just do it unconditonally
and remove the call from clutter_stage_glx_redraw.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2558
Emmanuele Bassi [Mon, 14 Feb 2011 12:00:31 +0000 (12:00 +0000)]
stage/glx: Code clean ups
Emmanuele Bassi [Mon, 14 Feb 2011 11:59:49 +0000 (11:59 +0000)]
stage/x11: Clean up ClutterStageX11 struct
Use the right parent instance and class structure; the X11 stage
implementation hasn't been a ClutterGroup in a long, long time.
Emmanuele Bassi [Sun, 13 Feb 2011 19:27:51 +0000 (19:27 +0000)]
tests/multi-stage: Clean up child stages
Do not leave them around: force a destroy() on any child stage left when
the main loop quits.
Emmanuele Bassi [Sun, 13 Feb 2011 19:26:29 +0000 (19:26 +0000)]
stage: Call ClutterStageWindow::unrealize() on dispose
Since we realize on creation we need to unrealize on destruction. This
makes sure that the ClutterStageWindow implementation can tear down any
resource set up during the realization phase.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2559
Emmanuele Bassi [Sun, 13 Feb 2011 19:25:21 +0000 (19:25 +0000)]
stage/x11: Add a debug note for unrealization
We remove the ClutterStageWindow ↔ Window mapping in the ::unrealize
implementation; let's just check that we get there using a simple
debug note.
Emmanuele Bassi [Fri, 11 Feb 2011 16:53:28 +0000 (16:53 +0000)]
build: Fix clutter-config.h defines
The checks for non-x11/glx platforms were using the wrong configure.ac
variables and values.
Emmanuele Bassi [Fri, 11 Feb 2011 16:45:45 +0000 (16:45 +0000)]
Merge remote-tracking branch 'nobled/wayland-fixes2'
* nobled/wayland-fixes2:
wayland: fix shm buffers
wayland: set renderable type on dummy surface
wayland: check for egl extensions explicitly
wayland: fall back to shm buffers if drm fails
wayland: add shm buffer code
wayland: make buffer handling generic
wayland: really fix buffer format selection
wayland: fix pixel format
wayland: clean up buffer creation code
wayland: don't require the surfaceless extensions
wayland: check for API-specific surfaceless extension
wayland: fix GLES context creation
wayland: use EGL_NO_SURFACE
wayland: update to new api
wayland: fix connecting to default socket
fix ClutterContainer docs
Chris Lord [Fri, 11 Feb 2011 16:27:46 +0000 (16:27 +0000)]
actor: Rename in_clone_paint parameter to avoid variable shadowing
The 'in_clone_paint' parameter of the private function
_clutter_actor_set_in_clone_paint() shadowed the private function
in_clone_paint(). Rename this parameter to 'is_in_clone_paint' to remove
a compiler warning.
Chris Lord [Fri, 11 Feb 2011 15:18:08 +0000 (15:18 +0000)]
offscreen: Fix partially off-stage actors being clipped in the fbo
If an actor was partially off of the stage, it would be clipped because
of the stage viewport. This produces problems if you use an offscreen
effect that relies on the entire actor being rendered (e.g. shadows).
Expand the viewport in this scenario so that the offscreen-rendering isn't
clipped.
This fixes http://bugzilla.clutter-project.org/show_bug.cgi?id=2550
Chris Lord [Thu, 3 Feb 2011 14:36:55 +0000 (14:36 +0000)]
offscreen-effect: Use actor's opacity_override when redirecting painting
Override the actor's paint opacity so that it will appear fully opaque in
the offscreen surface. This avoids multiple multiplications of an actor's
opacity.
Fixes http://bugzilla.clutter-project.org/show_bug.cgi?id=2541
Chris Lord [Thu, 3 Feb 2011 13:58:20 +0000 (13:58 +0000)]
actor: Replace private opacity_parent with opacity_override
Replace the opacity_parent with an opacity_override variable, to allow
direct overriding of the paint opacity and simplify this mechanism
somewhat.
This also required a new private flag, in_clone_paint, to maintain the
functionality of the public function clutter_actor_is_in_clone_paint()
Emmanuele Bassi [Fri, 11 Feb 2011 15:45:13 +0000 (15:45 +0000)]
build: Modify maintainer compiler flags values
We use the micro version for distinguishing released tarballs and Git
builds; the maintainer compiler flags should be enabled for the latter,
and not just for unstable cycles, since it makes sense to have extra
warning flags even on stable cycles.
We also want to allow people to turn on -Werror on demand, so let's add
a third option to --enable-maintainer-flags.
Emmanuele Bassi [Fri, 11 Feb 2011 15:44:03 +0000 (15:44 +0000)]
docs: Clarify interface_age usage in configure.ac
The clutter_interface_age value should be changed only on stable cycles;
unstable cycles should reset the value to 0.
Emmanuele Bassi [Fri, 11 Feb 2011 15:03:22 +0000 (15:03 +0000)]
Merge remote-tracking branch 'elliot/cookbook-animations-path'
* elliot/cookbook-animations-path:
docs: Add recipe for animating an actor on a curved path
Neil Roberts [Wed, 2 Feb 2011 15:17:50 +0000 (15:17 +0000)]
cogl-framebuffer: Fix flushing the framebuffer on push
When pushing a framebuffer it would previously push
COGL_INVALID_HANDLE to the top of the framebuffer stack so that when
it later calls cogl_set_framebuffer it will recognise that the
framebuffer is different and replace the top with the new
pointer. This isn't ideal because it breaks the code to flush the
journal because _cogl_framebuffer_flush_journal is called with the
value of the old pointer which is NULL. That function was checking for
a NULL pointer so it wouldn't actually flush. It also would mean that
if you pushed the same framebuffer twice we would end up dirtying
state unnecessarily. To fix this cogl_push_framebuffer now pushes a
reference to the current framebuffer instead.
Neil Roberts [Wed, 9 Feb 2011 19:31:42 +0000 (19:31 +0000)]
cogl-framebuffer: Remove all dependencies after a flush
After a dependent framebuffer is added to a framebuffer it was never
getting removed. Once the journal for a framebuffer is flushed we no
longer depend on any framebuffers so the list should be cleared. This
was causing leaks of offscreens and textures.
Emmanuele Bassi [Thu, 10 Feb 2011 10:35:35 +0000 (10:35 +0000)]
clutter.modules: Fix Wayland's location
The Git repository URL for Wayland has been moved into the main fd.o
structure.
Robert Bragg [Tue, 8 Feb 2011 17:54:49 +0000 (17:54 +0000)]
glx: Make sure to glFlush if blitting to frontbuffer.
Unlike glXSwapBuffers, glXCopySubBuffer and glBlitFramebuffer don't
issue an implicit glFlush() so we have to flush ourselves if we want the
request to complete in finite amount of time since otherwise the driver
can batch the command indefinitely.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2551
Robert Bragg [Tue, 1 Feb 2011 13:24:13 +0000 (13:24 +0000)]
docs: clarify cogl_vertex_buffer_adds docs
This adds a clarification that cogl_vertex_buffer_add can also be
used to replace a previously added attribute with the same name.
Robert Bragg [Tue, 1 Feb 2011 13:19:49 +0000 (13:19 +0000)]
matrix: note that _matrix_multiply can multiply in-place
This adds a note to clarify that cogl_matrix_multiply allows you to
multiply the @a matrix in-place, so @a can equal @result but @b can't
equal @result.
Emmanuele Bassi [Wed, 9 Feb 2011 16:16:57 +0000 (16:16 +0000)]
Fix compilation of the EGL backend
Sorry for breaking it.
Emmanuele Bassi [Wed, 9 Feb 2011 16:20:40 +0000 (16:20 +0000)]
keymap/x11: Remove unused variables
Silence compiler warnings.
Neil Roberts [Wed, 9 Feb 2011 15:24:43 +0000 (15:24 +0000)]
cogl: Set the layer matrix on the right layer instead of a random one
When uploading the layer matrix to GL it wasn't first calling
glActiveTextureMatrix to set the right texture unit for the
layer. This would end up setting the texture matrix on whatever layer
happened to be previously active. This happened to work for
test-cogl-multitexture presumably because it was coincidentally
setting the layer matrix on the last used layer.