profile/ivi/clutter.git
12 years agobuild: Disable evdev input by default
Emmanuele Bassi [Thu, 10 Nov 2011 17:59:17 +0000 (17:59 +0000)]
build: Disable evdev input by default

It's an experimental input backend, so it should be enabled explicitly.

12 years agodocs: Update the release notes in the README
Emmanuele Bassi [Mon, 7 Nov 2011 19:06:22 +0000 (19:06 +0000)]
docs: Update the release notes in the README

12 years agoosx: Clean up the backend implementation
Emmanuele Bassi [Mon, 7 Nov 2011 14:48:48 +0000 (14:48 +0000)]
osx: Clean up the backend implementation

Instead of implementing create_stage() and a constructor for
ClutterStageOSX, we can use the default implementations in
ClutterBackend, and spare us some code duplication.

12 years agowayland/backend: Remove create_stage()
Emmanuele Bassi [Mon, 7 Nov 2011 14:44:37 +0000 (14:44 +0000)]
wayland/backend: Remove create_stage()

The create_stage() implementation in ClutterBackendWayland isn't doing
anything special, so we can fall back to the default one.

12 years agobuild: Clean up the configuration summary
Emmanuele Bassi [Fri, 4 Nov 2011 19:49:45 +0000 (19:49 +0000)]
build: Clean up the configuration summary

List the input backends, and remove the EGL backend options.

12 years agobackend: Clean up the device manager creation
Emmanuele Bassi [Fri, 4 Nov 2011 19:25:54 +0000 (19:25 +0000)]
backend: Clean up the device manager creation

Create the device manager during the event initialization, where it
makes sense.

This allows us to get rid of the per-backend get_device_manager()
virtual function, and just store the DeviceManager pointer into the
ClutterBackend structure.

12 years ago*/backend: Clean up the stage creation
Emmanuele Bassi [Fri, 4 Nov 2011 19:01:32 +0000 (19:01 +0000)]
*/backend: Clean up the stage creation

Use the default implementation of create_stage() wherever possible.

12 years agobackend: Provide a default create_stage()
Emmanuele Bassi [Fri, 4 Nov 2011 19:00:49 +0000 (19:00 +0000)]
backend: Provide a default create_stage()

We can now safely create a ClutterStageWindow in the shared code path,
instead of deferring to the backend.

12 years agostage-window: Add :backend and :wrapper properties
Emmanuele Bassi [Fri, 4 Nov 2011 18:50:46 +0000 (18:50 +0000)]
stage-window: Add :backend and :wrapper properties

All StageWindow implementation already have back pointers, but we need a
unified API to actually set them from the generic code path; we can use
properties on the StageWindow interface — though this requires fixing
all backends at the same time, to avoid GObject complaining.

12 years agogdk/backend: Fix an invalid chain up
Emmanuele Bassi [Fri, 4 Nov 2011 18:50:02 +0000 (18:50 +0000)]
gdk/backend: Fix an invalid chain up

12 years ago*/backend: Store the StageWindow implementation type
Emmanuele Bassi [Fri, 4 Nov 2011 18:27:08 +0000 (18:27 +0000)]
*/backend: Store the StageWindow implementation type

12 years agobackend: Store the type of the StageWindow implementation
Emmanuele Bassi [Fri, 4 Nov 2011 18:26:33 +0000 (18:26 +0000)]
backend: Store the type of the StageWindow implementation

We can use it later on to create it and provide a default create_stage()
implementation.

12 years agoegl/backend: Clean up
Emmanuele Bassi [Fri, 4 Nov 2011 17:49:25 +0000 (17:49 +0000)]
egl/backend: Clean up

The "EGL native" backend is just a short-hand for a pure Cogl backend,
using whatever input mechanism was enabled at run-time.

12 years agoAdd a CEx100-specific backend
Emmanuele Bassi [Fri, 4 Nov 2011 17:44:55 +0000 (17:44 +0000)]
Add a CEx100-specific backend

Instead of piggybacking on the EGL backend, let's create a small
ClutterBackend for the CEx100 platforms. This allows us to handle the
CEx100-specific details in a much cleaner way.

12 years agocogl/backend: Remove the ClutterBackendCogl class
Emmanuele Bassi [Fri, 4 Nov 2011 16:52:44 +0000 (16:52 +0000)]
cogl/backend: Remove the ClutterBackendCogl class

All the functionality that ClutterBackendCogl provided has been moved
into ClutterBackend itself, so there is no need to have this class
around in the source.

Cogl-based backends can derive directly from ClutterBackend.

12 years agocogl/backend: Remove pre/post_parse
Emmanuele Bassi [Fri, 4 Nov 2011 16:41:52 +0000 (16:41 +0000)]
cogl/backend: Remove pre/post_parse

The CLUTTER_VBLANK environment variable is now handled in the common
code path.

12 years agoRemove per-backend CLUTTER_VBLANK envvar
Emmanuele Bassi [Fri, 4 Nov 2011 16:39:52 +0000 (16:39 +0000)]
Remove per-backend CLUTTER_VBLANK envvar

We have a global flag we can use.

12 years agomain: Add a sync-to-vblank global flag
Emmanuele Bassi [Fri, 4 Nov 2011 16:35:38 +0000 (16:35 +0000)]
main: Add a sync-to-vblank global flag

It replaces the per-backend CLUTTER_VBLANK environment variable.

12 years agobackend: Provide a default get_features() implementation
Emmanuele Bassi [Fri, 4 Nov 2011 16:13:04 +0000 (16:13 +0000)]
backend: Provide a default get_features() implementation

Continue gutting ClutterBackendCogl; get_features() is the last bit that
still does something, but now we can use the Cogl API.

12 years agowin32/backend: Use the default context creation
Emmanuele Bassi [Fri, 4 Nov 2011 15:57:01 +0000 (15:57 +0000)]
win32/backend: Use the default context creation

The win32 backend doesn't do anything special on context creation, so we
can just use the default implementation provided by ClutterBackend.

12 years agogdk/backend: Use the context creation hooks
Emmanuele Bassi [Fri, 4 Nov 2011 15:54:58 +0000 (15:54 +0000)]
gdk/backend: Use the context creation hooks

Same as it has happened to the X11 backend.

12 years agox11/backend: Use the context creation hooks
Emmanuele Bassi [Fri, 4 Nov 2011 15:53:47 +0000 (15:53 +0000)]
x11/backend: Use the context creation hooks

Don't replace create_context(): given that the X11 backend already uses
Cogl for the context creation, we can just provide the right data
structures ourselves.

12 years agobackend: Provide a default create_context()
Emmanuele Bassi [Fri, 4 Nov 2011 15:50:47 +0000 (15:50 +0000)]
backend: Provide a default create_context()

Since we use Cogl for the context creation we can now provide a default
context creation that should just work, plus a couple of hooks to allow
plugging into the creation sequence for platforms supported by Cogl that
require special handling — like foreign displays or alpha-enabled swap
chains.

The various backends have now two choices: either replace the
create_context() in its entirety, or plug themselves into the default
context creation.

12 years agobackend: Fix up the input backend detection ordering
Emmanuele Bassi [Fri, 4 Nov 2011 12:21:11 +0000 (12:21 +0000)]
backend: Fix up the input backend detection ordering

And add a missing 'else' in the OSX check, to avoid a g_error().

12 years agoAdd a 'null' input backend symbol
Emmanuele Bassi [Thu, 3 Nov 2011 18:27:09 +0000 (18:27 +0000)]
Add a 'null' input backend symbol

We should have an input backend symbol that thoroughly disables all
input event handling.

12 years agobackend: Unify the event initialization
Emmanuele Bassi [Thu, 3 Nov 2011 17:53:54 +0000 (17:53 +0000)]
backend: Unify the event initialization

Input backends are, in some cases, independent from the windowing system
backends; we can initialize input handling using a model similar to what
we use for windowing backends, including an environment variable and
compile-/run-time checks.

This model allows us to remove the backend-specific init_events(), and
use a generic implementation directly inside the base ClutterBackend
class, thus further reducing the backend-specific code that every
platform has to implement.

This requires some minor surgery to every single backend, to make sure
that the function exposed to initialize the event loop is similar and
performs roughly the same operations.

12 years agowin32/backend: Remove ensure_context()
Emmanuele Bassi [Thu, 3 Nov 2011 16:48:20 +0000 (16:48 +0000)]
win32/backend: Remove ensure_context()

We have a fallback, now.

12 years agowin32/stage: Implement get_active_framebuffer()
Emmanuele Bassi [Thu, 3 Nov 2011 16:47:57 +0000 (16:47 +0000)]
win32/stage: Implement get_active_framebuffer()

12 years agowayland/backend: Remove empty ensure_context()
Emmanuele Bassi [Thu, 3 Nov 2011 16:47:18 +0000 (16:47 +0000)]
wayland/backend: Remove empty ensure_context()

There is a default fallback, now.

12 years agocogl/backend: Remove ensure_context()
Emmanuele Bassi [Thu, 3 Nov 2011 16:46:48 +0000 (16:46 +0000)]
cogl/backend: Remove ensure_context()

We have a default implementation for it, now.

12 years agobackend: Provide an implementation of ensure_backend()
Emmanuele Bassi [Thu, 3 Nov 2011 16:45:56 +0000 (16:45 +0000)]
backend: Provide an implementation of ensure_backend()

We can do it for all Cogl-based backends.

12 years agoconform/color: Check invalid strings
Emmanuele Bassi [Thu, 10 Nov 2011 14:15:32 +0000 (14:15 +0000)]
conform/color: Check invalid strings

We need to make sure to fail consistently for invalid strings.

12 years agocolor: Validate hex formats
Emmanuele Bassi [Thu, 10 Nov 2011 14:13:45 +0000 (14:13 +0000)]
color: Validate hex formats

Right now, we pass through to Pango unrecognized hexadecimal formats
when parsing colors from strings. Since we parse all possible formats
ourselves, we can do validation ourselves as well, and avoid the Pango
path.

12 years agoconform/color: Test hsla() format
Emmanuele Bassi [Thu, 10 Nov 2011 12:56:47 +0000 (12:56 +0000)]
conform/color: Test hsla() format

12 years agoclutter-stage-x11: Make sure to set geometry x and y
Jasper St. Pierre [Wed, 9 Nov 2011 21:37:32 +0000 (16:37 -0500)]
clutter-stage-x11: Make sure to set geometry x and y

Otherwise, we could be dealing with uninitialized values, causing
havoc all over the place.

https://bugzilla.gnome.org/show_bug.cgi?id=663733

12 years agoMinor whitespace fix for clutter color parsing of hsla(h,s,l,a)
Craig R. Hughes [Tue, 8 Nov 2011 01:00:45 +0000 (17:00 -0800)]
Minor whitespace fix for clutter color parsing of hsla(h,s,l,a)

Previously, if there was whitespace between "l" and the comma before the
alpha value, parsing would fail.  This patch allows that whitespace
making it consistent with whitespace being allowed everywhere else.

https://bugzilla.gnome.org/show_bug.cgi?id=663594

12 years agocally: Use the proper role for password entries
Matthias Clasen [Fri, 4 Nov 2011 11:14:47 +0000 (07:14 -0400)]
cally: Use the proper role for password entries

https://bugzilla.gnome.org/show_bug.cgi?id=663332

12 years agomain: Add a debug note when reading the settings file
Emmanuele Bassi [Wed, 9 Nov 2011 09:09:37 +0000 (09:09 +0000)]
main: Add a debug note when reading the settings file

So that's easier to track in the debug log.

12 years agoactor: Deprecate [sg]et_geometry()
Emmanuele Bassi [Tue, 8 Nov 2011 14:46:55 +0000 (14:46 +0000)]
actor: Deprecate [sg]et_geometry()

These methods are short-hands for accessing the position and size,
which are already shorthands for accessing the various dimensional
and positional attributes. Plus, they use ClutterGeometry, which is a
fairly bad data type for a rectangle.

12 years agoReplace usage of [sg]et_geometry()
Emmanuele Bassi [Tue, 8 Nov 2011 14:46:16 +0000 (14:46 +0000)]
Replace usage of [sg]et_geometry()

The set_geometry() and get_geometry() methods are going to be
deprecated.

12 years agoReplace ClutterGeometry with cairo_rectangle_int_t
Emmanuele Bassi [Tue, 8 Nov 2011 14:20:32 +0000 (14:20 +0000)]
Replace ClutterGeometry with cairo_rectangle_int_t

We still use ClutterGeometry internally in a couple of places, but we
should really move away from that flawed rectangle data type, and use
the Cairo one.

Sadly, we still have some public API that we cannot remove yet.

12 years agobuild: Remove mention of missing file
Emmanuele Bassi [Tue, 8 Nov 2011 11:19:22 +0000 (11:19 +0000)]
build: Remove mention of missing file

There is no clutter-event-gdk.h in the build.

13 years agomain: Deprecate clutter_set_default_frame_rate()
Emmanuele Bassi [Mon, 7 Nov 2011 20:24:13 +0000 (20:24 +0000)]
main: Deprecate clutter_set_default_frame_rate()

Setting the default frame rate does not do anything even remotely
useful, unless synchronization to the vertical refresh rate is also
disabled - which can only be done through environment variable or
through configuration file. Having a programmatic way to change the
default frame rate is, thus, completely pointless.

Changing the default frame rate through environment variable and
configuration file is still allowed.

13 years agoosx/stage: Fix compilation
Emmanuele Bassi [Fri, 4 Nov 2011 12:03:13 +0000 (12:03 +0000)]
osx/stage: Fix compilation

We need to include clutter-stage-window.h.

13 years agobuild: Ensure libdir exists before installing to it
Colin Walters [Thu, 3 Nov 2011 18:42:07 +0000 (14:42 -0400)]
build: Ensure libdir exists before installing to it

13 years agodocs: Fixes for the API reference build
Emmanuele Bassi [Thu, 3 Nov 2011 16:05:36 +0000 (16:05 +0000)]
docs: Fixes for the API reference build

13 years agotests: Remove #undef CLUTTER_DISABLE_DEPRECATED
Emmanuele Bassi [Thu, 3 Nov 2011 15:35:03 +0000 (15:35 +0000)]
tests: Remove #undef CLUTTER_DISABLE_DEPRECATED

We need to test deprecated API as well, and we don't use a guard any
more in the build.

13 years agoRemove CLUTTER_DISABLE_DEPRECATED from the build flags
Emmanuele Bassi [Thu, 3 Nov 2011 15:32:53 +0000 (15:32 +0000)]
Remove CLUTTER_DISABLE_DEPRECATED from the build flags

We don't use it any more.

13 years agoRemove CLUTTER_DISABLE_DEPRECATED guard
Emmanuele Bassi [Thu, 3 Nov 2011 15:32:04 +0000 (15:32 +0000)]
Remove CLUTTER_DISABLE_DEPRECATED guard

Except for macros, we now entirely depend on the deprecation warnings
instead of a guard.

13 years agodocs: Fix a wrongly named argument
Emmanuele Bassi [Thu, 3 Nov 2011 15:16:02 +0000 (15:16 +0000)]
docs: Fix a wrongly named argument

13 years agostage: Move the deprecated macros to a separate header
Emmanuele Bassi [Thu, 3 Nov 2011 15:13:54 +0000 (15:13 +0000)]
stage: Move the deprecated macros to a separate header

The clutter-stage.h header still has a bunch of macros that have, for
reasons unknown[*], survived the 1.0 API cut and have long since been
deprecated. Let's hide them under the deprecated/ carpet and let us
never speak of them ever again.

[*] pretty sure alcohol or other psychotropic substances were involved
but I take the 5th on that.

13 years agobuild: Fix compilation
Emmanuele Bassi [Thu, 3 Nov 2011 15:03:16 +0000 (15:03 +0000)]
build: Fix compilation

13 years agogroup: Move deprecated macro into its own header
Emmanuele Bassi [Thu, 3 Nov 2011 15:02:35 +0000 (15:02 +0000)]
group: Move deprecated macro into its own header

13 years agoDon't use a -deprecated suffix for headers
Emmanuele Bassi [Thu, 3 Nov 2011 14:49:56 +0000 (14:49 +0000)]
Don't use a -deprecated suffix for headers

They are already in the deprecated/ directory, the suffix is redundant,
and there is no chance of collision.

13 years agoMove clutter-keysyms-compat.h to the deprecated section
Emmanuele Bassi [Thu, 3 Nov 2011 14:42:39 +0000 (14:42 +0000)]
Move clutter-keysyms-compat.h to the deprecated section

No reason to have it lingering in the main section.

13 years agox11/backend: Use an internal GError
Emmanuele Bassi [Thu, 3 Nov 2011 14:02:43 +0000 (14:02 +0000)]
x11/backend: Use an internal GError

Don't just return the error from Cogl, but proxy it so that it has the
correct error domain and code.

13 years agobuild: Clean up the per-backend summary
Emmanuele Bassi [Wed, 2 Nov 2011 17:31:29 +0000 (17:31 +0000)]
build: Clean up the per-backend summary

13 years agobuild: Use AC_CACHE_SAVE
Emmanuele Bassi [Wed, 2 Nov 2011 17:30:30 +0000 (17:30 +0000)]
build: Use AC_CACHE_SAVE

Delimit the points in the configure script that should save the state,
so that running the script multiple times doesn't require starting from
scratch even if it didn't terminate successfully.

13 years agobuild: Disable tslib by default
Emmanuele Bassi [Wed, 2 Nov 2011 13:17:27 +0000 (13:17 +0000)]
build: Disable tslib by default

The event handling through tslib hasn't been tested in a while, and it
hasn't been ported to the device manager machinery either. We are still
considering whether or not it should be entirely removed, since evdev is
supposed to be a better way to handle events not coming from an existing
windowing system.

13 years agointeractive/pixmap: Make sure to work only on the X11 backend
Emmanuele Bassi [Mon, 17 Oct 2011 15:07:05 +0000 (16:07 +0100)]
interactive/pixmap: Make sure to work only on the X11 backend

Even if the test has been successfully compiled against the X11 backend,
we need to ensure that it is actually running against it, otherwise bad
things will happen.

13 years agointeractive/devices: Build unconditionally
Emmanuele Bassi [Mon, 17 Oct 2011 15:06:15 +0000 (16:06 +0100)]
interactive/devices: Build unconditionally

The test-devices interactive test does not rely on the X11 API being
present any more, after the introduction of the device manager API.

13 years agoClean up the windowing system defines
Emmanuele Bassi [Mon, 17 Oct 2011 15:03:19 +0000 (16:03 +0100)]
Clean up the windowing system defines

Instead of defining new symbols for the windowing systems enabled at
configure time, we can reuse the same symbols for both the compile time
and run time checks, e.g.:

  #ifdef CLUTTER_WINDOWING_X11
    if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11))
      /* use the clutter_x11_* API */
    else
  #endif
  #ifdef CLUTTER_WINDOWING_WIN32
    if (clutter_check_windowing_backend (CLUTTER_WINDOWING_WIN32))
      /* use the clutter_win32_* API */
  #endif

This scheme allows us to ensure that the input system namespace is free
for us to use and select at run time in later versions of Clutter.

13 years agoClean up the backend creation
Emmanuele Bassi [Mon, 17 Oct 2011 12:25:15 +0000 (13:25 +0100)]
Clean up the backend creation

Move it to its own function.

13 years agobuild: Make sure to remove colliding shared libraries
Emmanuele Bassi [Fri, 14 Oct 2011 11:00:44 +0000 (12:00 +0100)]
build: Make sure to remove colliding shared libraries

The compatibility links should take over any existing installed
shared library with the same soname, to avoid ldd creating stale
links.

13 years agodocs: Update the README section on configure switches
Emmanuele Bassi [Wed, 12 Oct 2011 16:56:07 +0000 (17:56 +0100)]
docs: Update the README section on configure switches

13 years agobuild: Implement proper platform checking
Emmanuele Bassi [Wed, 12 Oct 2011 07:48:56 +0000 (08:48 +0100)]
build: Implement proper platform checking

Perform the check for enabling platform-specific backends conditionally
on the 'check' value, instead of unconditionally.

Also, rename the configure switches for the backends to have a '-backend'
suffix, to avoid collisions and provide a more descriptive name.

13 years agobuild: Improve the compat libs rule
Emmanuele Bassi [Mon, 3 Oct 2011 16:11:49 +0000 (17:11 +0100)]
build: Improve the compat libs rule

Use the same commands libtool uses when installing symbolic links for
the shared libraries.

13 years agogdk/events: Clean up the event handling code
Emmanuele Bassi [Mon, 3 Oct 2011 14:25:40 +0000 (15:25 +0100)]
gdk/events: Clean up the event handling code

We need debugging notes, to see what's happening when handling events.

We need to queue a (clipped) redraw when receiving a GDK_EXPOSE event.

We need to check the device (both master and source) of the event using
the GdkEvent API, and pass them to the ClutterEvent using the
corresponding Clutter API.

13 years agoegl: First attempt at cleaning up the EGL native backend
Emmanuele Bassi [Mon, 3 Oct 2011 11:25:53 +0000 (12:25 +0100)]
egl: First attempt at cleaning up the EGL native backend

At least, let's make it compile when built along with the other
backends. In reality, it still needs to be verified as working.

13 years agobuild: Move EGL-related files under egl/
Emmanuele Bassi [Mon, 3 Oct 2011 09:23:46 +0000 (10:23 +0100)]
build: Move EGL-related files under egl/

Including the clutter-cex100.h.in header.

13 years agobuild: Move clutter-event-tslib.c out of egl/
Emmanuele Bassi [Mon, 3 Oct 2011 09:17:56 +0000 (10:17 +0100)]
build: Move clutter-event-tslib.c out of egl/

Prepare for a full tslib device manager.

13 years agoCoding style and cosmetic fixes
Emmanuele Bassi [Fri, 30 Sep 2011 16:29:40 +0000 (17:29 +0100)]
Coding style and cosmetic fixes

13 years agoMinimal cosmetic fix to the configure output
Emmanuele Bassi [Fri, 30 Sep 2011 13:50:31 +0000 (14:50 +0100)]
Minimal cosmetic fix to the configure output

13 years agoRemove the X11-specific bit in ClutterStageCogl
Emmanuele Bassi [Fri, 30 Sep 2011 12:58:40 +0000 (13:58 +0100)]
Remove the X11-specific bit in ClutterStageCogl

Let's use a new virtual function in ClutterStageWindow to check whether
a platform-specific implementation does support clipped redraws.

13 years agogdk: Fix Stage foreign window support
Emmanuele Bassi [Thu, 29 Sep 2011 17:16:48 +0000 (18:16 +0100)]
gdk: Fix Stage foreign window support

The code is generally wrong, and does not work. We need to skip the
GdkWindow creation when we have a foreing window, but we still need to
create the Cogl onscreen buffer and connect it to the GdkWindow's native
resource.

13 years agogdk: Allow disabling event retrieval
Emmanuele Bassi [Thu, 29 Sep 2011 17:10:48 +0000 (18:10 +0100)]
gdk: Allow disabling event retrieval

Just like the other backends can disable the internal event handling,
and use clutter_<backend>_handle_event() to do the native → Clutter
event translation.

13 years agoCosmetic fixes
Emmanuele Bassi [Tue, 27 Sep 2011 12:24:52 +0000 (13:24 +0100)]
Cosmetic fixes

13 years agoAllow checking the backend type at run-time
Emmanuele Bassi [Mon, 26 Sep 2011 12:14:26 +0000 (13:14 +0100)]
Allow checking the backend type at run-time

Portable code should be allowed to check type backend currently being
used, so that it can use platform-specific API (not just Clutter's).

We don't want to go down the GDK route, with public types for
ClutterBackend and ClutterStageWindow implementations, and use the type
system, e.g.:

  #ifdef GDK_WINDOWING_X11
    if (GDK_IS_WINDOW_X11 (window))
      use_x11_api (window);
    else
  #endif
  #ifdef GDK_WINDOWING_WIN32
    if (GDK_IS_WINDOW_WIN32 (window))
      use_win32_api (window);
    else
  #endif
    g_critical ("Unsupported backend");

This system would make us expose the backend system, and we want to
still reserve us the option to change the backend system to increase its
granularity — e.g. choosing different input event systems regardless of
the windowing system.

This commit adds a simple function that checks the backend type against
a symbolic constant — the same constant string that can be used to
select the backend at run-time through the CLUTTER_BACKEND environment
variable.

13 years agoImplement multi-backend support
Emmanuele Bassi [Wed, 21 Sep 2011 17:05:03 +0000 (18:05 +0100)]
Implement multi-backend support

The Clutter backend split is opaque enough that should allow us to just
build all possible backends inside the same shared object, and select
the wanted backend at initialization time.

This requires some work in the build system, as well as the
initialization code, to remove duplicate functions that might cause
conflicts at build and link time. We also need to defer all the checks
of the internal state of the platform-specific API to run-time type
checks.

13 years agoRework the interaction between the Cogl and GDK / X11 backends.
Giovanni Campagna [Fri, 26 Aug 2011 22:16:12 +0000 (00:16 +0200)]
Rework the interaction between the Cogl and GDK / X11 backends.

Previously, the Cogl backend was at times a subclass of the X11
backend, and at times a standalone one. Now it is the other way
round, with GDK and X11 backends providing the concrete classes,
layered on top of the generic Cogl backend. A new EglNative backend
was introduced for direct to framebuffer rendering. This greatly
simplifies the API design (at the expense of some casts needed)
and reduces the amount of #ifdefs, without duplicating code.

https://bugzilla.gnome.org/show_bug.cgi?id=657434

13 years agoAdd a new GDK backend
Giovanni Campagna [Fri, 26 Aug 2011 01:09:18 +0000 (03:09 +0200)]
Add a new GDK backend

This commit introduces a new flavour for Clutter, that uses GDK
for handling all window system specific interactions (except for
creating the cogl context, as cogl does not know about GDK), including
in particular events. This is not compatible with the X11 (glx)
flavour, and this is reflected by the different soname (libclutter-gdk-1.0.so),
as all X11 specific functions and classes are not available. If you
wish to be compatible, you should check for CLUTTER_WINDOWING_X11.
Other than that, this backend should be on feature parity with X11,
including XInput 2, XSettings and EMWH (with much, much less code)

https://bugzilla.gnome.org/show_bug.cgi?id=657434

13 years agocogl: fallback to non-transparent stages if unsupported
Robert Bragg [Tue, 1 Nov 2011 13:42:40 +0000 (13:42 +0000)]
cogl: fallback to non-transparent stages if unsupported

If our check of the CoglOnscreenTemplate during initialization fails
then we disable the request for an alpha component in the swap chain and
try the check again.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
13 years agobuild: Bump up Cogl dependency
Emmanuele Bassi [Wed, 2 Nov 2011 13:03:26 +0000 (13:03 +0000)]
build: Bump up Cogl dependency

The newly added cogl-xlib.h header is available since Cogl 1.9, so we
need to bump up the dependency.

13 years agotslib: Remove mention of clutter-stage-egl.h
Emmanuele Bassi [Wed, 2 Nov 2011 12:53:55 +0000 (12:53 +0000)]
tslib: Remove mention of clutter-stage-egl.h

That header has long since disappeared from the build.

13 years agoutils: Remove CLUTTER_DISABLE_DEPRECATED
Emmanuele Bassi [Wed, 2 Nov 2011 12:53:26 +0000 (12:53 +0000)]
utils: Remove CLUTTER_DISABLE_DEPRECATED

We use deprecation warnings now.

13 years agotexture: Remove CLUTTER_DISABLE_DEPRECATED
Emmanuele Bassi [Wed, 2 Nov 2011 12:53:03 +0000 (12:53 +0000)]
texture: Remove CLUTTER_DISABLE_DEPRECATED

We use deprecation warnings now.

13 years agostage-manager: Remove CLUTTER_DISABLE_DEPRECATED
Emmanuele Bassi [Wed, 2 Nov 2011 12:52:42 +0000 (12:52 +0000)]
stage-manager: Remove CLUTTER_DISABLE_DEPRECATED

We use deprecation warnings now.

13 years agocairo-texture: Remove CLUTTER_DISABLE_DEPRECATED
Emmanuele Bassi [Wed, 2 Nov 2011 12:52:18 +0000 (12:52 +0000)]
cairo-texture: Remove CLUTTER_DISABLE_DEPRECATED

We use deprecation warnings now.

13 years agoanimatable: Remove CLUTTER_DISABLE_DEPRECATED
Emmanuele Bassi [Wed, 2 Nov 2011 12:51:58 +0000 (12:51 +0000)]
animatable: Remove CLUTTER_DISABLE_DEPRECATED

We use deprecation warnings, now.

13 years agocairo-texture: Use an internal function for create_region()
Emmanuele Bassi [Wed, 2 Nov 2011 12:48:31 +0000 (12:48 +0000)]
cairo-texture: Use an internal function for create_region()

Avoid double argument checking, and a deprecation warning when
implementing create() as a wrapper around create_region(), by using
a simple internal function.

13 years agoactor: Move deprecated symbols into separate headers
Emmanuele Bassi [Wed, 2 Nov 2011 12:47:46 +0000 (12:47 +0000)]
actor: Move deprecated symbols into separate headers

The clutter-actor.h header is already pretty big, so let's try to keep
the deprecated symbols out of it.

13 years agobackend: Move deprecated symbols to a separate header
Emmanuele Bassi [Wed, 2 Nov 2011 12:41:42 +0000 (12:41 +0000)]
backend: Move deprecated symbols to a separate header

13 years agomain: Move deprecated symbols to a separate header
Emmanuele Bassi [Wed, 2 Nov 2011 12:32:09 +0000 (12:32 +0000)]
main: Move deprecated symbols to a separate header

The number of deprecations in clutter-main.h makes the header harder to
parse, and more confusing. We can use a separate header under the
deprecated subdirectory to hold all the deprecated symbols.

13 years agocogl: include <cogl/cogl-xlib.h> for xlib specific symbols
Robert Bragg [Tue, 1 Nov 2011 15:47:43 +0000 (15:47 +0000)]
cogl: include <cogl/cogl-xlib.h> for xlib specific symbols

Since Xlib.h is such a terrible citizen when it comes to symbol
namespacing it's not desirable to include Xlib.h if it is not absolutely
required. Cogl now has a standalone cogl-xlib.h that should be included
whenever any xlib specific symbols are required.

This patch updates clutter to include <cogl/cogl-xlib.h> wherever
clutter needs to use xlib specific cogl apis.

Acked-by: Emmanuele Bassi <ebassi@linux.intel.com>
13 years agoprofile: Disable deprecation warnings
Emmanuele Bassi [Mon, 31 Oct 2011 10:39:46 +0000 (10:39 +0000)]
profile: Disable deprecation warnings

We use an atexit() handler to print out the profile report coming from
Uprof. The g_atexit() call has been deprecated by GLib, but since this
use case is pretty specific and it's not meant to be turned on by
default (or distributed) then we can safely disable the deprecation
warnings inside clutter-profile.c.

13 years agobackend: Remove atexit handlers
Emmanuele Bassi [Mon, 24 Oct 2011 11:07:30 +0000 (12:07 +0100)]
backend: Remove atexit handlers

The g_atexit() function has been deprecated in GLib as it is a fairly
bad idea in basically all cases.

We could probably use a GCC destructor if we didn't care about
portability, but for the time being we just remove the atexit() handler
that disposed the backend.

13 years agocairo-texture: Drop the half pixel rounding
Emmanuele Bassi [Mon, 24 Oct 2011 10:58:23 +0000 (11:58 +0100)]
cairo-texture: Drop the half pixel rounding

Calling ceilf() should be enough.

https://bugzilla.gnome.org/show_bug.cgi?id=661887

13 years agoUpdated Bulgarian translation
Alexander Shopov [Sun, 30 Oct 2011 15:04:55 +0000 (17:04 +0200)]
Updated Bulgarian translation

13 years agodocs: Clarify CLUTTER_ACTOR_IS_MAPPED
Emmanuele Bassi [Tue, 25 Oct 2011 10:30:46 +0000 (11:30 +0100)]
docs: Clarify CLUTTER_ACTOR_IS_MAPPED

There are a couple of gotchas in the 'mapped' flag that are not properly
documented, or are documented only in the actor_invariants.txt file; we
should have a proper description in the API reference as well, to avoid
confusion.

13 years agoBug 662071-[Win32]-Don't init the Big Clutter Lock
Chun-wei Fan [Mon, 24 Oct 2011 16:13:53 +0000 (00:13 +0800)]
Bug 662071-[Win32]-Don't init the Big Clutter Lock

Since the Windows GUI system is assuming multithreadedness, initializing
locks after entering the GUI portion on Windows is likely to cause
problems[1][2], which results many Clutter programs to crash due to
releasing resources that they did not own.

[1]: Multi-threaded use of GTK+ on Win32 in README.win32 of GTK+
     source package
[2]: Explanation of Windows GUI system regarding its multithreadness
     assumptions-
     http://mail.gnome.org/archives/gtk-list/2011-June/msg00005.html