summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2011-11-14 11:40:49 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2011-11-14 11:40:49 +0800
commit1b7249a2478b78a4242c766d85347e71c3a70ba4 (patch)
tree8849f32d84257a4d65dd87412e25d483b6c0dda7
parentc52d06a5b9fe05b09836d364dba3a20d487f62b5 (diff)
parent65a07db5c07b2601835565ce48db689f634203b4 (diff)
downloadclutter-1b7249a2478b78a4242c766d85347e71c3a70ba4.tar.gz
Merge branch 'master' into msvc-support-master
-rw-r--r--.gitignore2
-rw-r--r--README.in79
-rw-r--r--clutter/Makefile.am13
-rw-r--r--clutter/cally/cally-text.c12
-rw-r--r--clutter/cex100/clutter-backend-cex100.c214
-rw-r--r--clutter/cex100/clutter-backend-cex100.h71
-rw-r--r--clutter/cex100/clutter-cex100.h.in (renamed from clutter/egl/clutter-cex100.h.in)37
-rw-r--r--clutter/clutter-backend-private.h18
-rw-r--r--clutter/clutter-backend.c311
-rw-r--r--clutter/clutter-color.c27
-rw-r--r--clutter/clutter-device-manager.c7
-rw-r--r--clutter/clutter-main.c23
-rw-r--r--clutter/clutter-private.h2
-rw-r--r--clutter/clutter-stage-window.c19
-rw-r--r--clutter/cogl/clutter-backend-cogl.c207
-rw-r--r--clutter/cogl/clutter-backend-cogl.h70
-rw-r--r--clutter/cogl/clutter-stage-cogl.c44
-rw-r--r--clutter/cogl/clutter-stage-cogl.h8
-rw-r--r--clutter/egl/clutter-backend-eglnative.c213
-rw-r--r--clutter/egl/clutter-backend-eglnative.h8
-rw-r--r--clutter/egl/clutter-egl.h5
-rw-r--r--clutter/evdev/clutter-device-manager-evdev.c12
-rw-r--r--clutter/gdk/clutter-backend-gdk.c205
-rw-r--r--clutter/gdk/clutter-backend-gdk.h9
-rw-r--r--clutter/gdk/clutter-event-gdk.c21
-rw-r--r--clutter/osx/clutter-backend-osx.c67
-rw-r--r--clutter/osx/clutter-backend-osx.h6
-rw-r--r--clutter/osx/clutter-event-osx.c14
-rw-r--r--clutter/osx/clutter-stage-osx.c59
-rw-r--r--clutter/osx/clutter-stage-osx.h3
-rw-r--r--clutter/wayland/clutter-backend-wayland.c34
-rw-r--r--clutter/wayland/clutter-stage-wayland.c37
-rw-r--r--clutter/win32/clutter-backend-win32.c169
-rw-r--r--clutter/win32/clutter-backend-win32.h2
-rw-r--r--clutter/win32/clutter-stage-win32.c50
-rw-r--r--clutter/x11/clutter-backend-x11-private.h32
-rw-r--r--clutter/x11/clutter-backend-x11.c196
-rw-r--r--clutter/x11/clutter-backend-x11.h40
-rw-r--r--clutter/x11/clutter-event-x11.c173
-rw-r--r--clutter/x11/clutter-stage-x11.c7
-rw-r--r--configure.ac179
-rw-r--r--doc/reference/clutter/Makefile.am5
-rw-r--r--po/POTFILES.in12
-rw-r--r--po/clutter-1.0.pot1455
-rw-r--r--po/es.po770
-rw-r--r--po/gl.po765
-rw-r--r--tests/conform/test-color.c34
-rw-r--r--tests/conform/test-conform-main.c3
48 files changed, 2871 insertions, 2878 deletions
diff --git a/.gitignore b/.gitignore
index a9bec3094..8278da8e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,7 +22,7 @@ stamp-marshal
/clutter/clutter-version.h
/clutter/gcov-report.txt
/clutter/clutter-json.h
-/clutter/egl/clutter-cex100.h
+/clutter/cex100/clutter-cex100.h
/build/autotools/*.m4
!/build/autotools/introspection.m4
!/build/autotools/as-linguas.m4
diff --git a/README.in b/README.in
index 3a10eaec9..2335d21ea 100644
--- a/README.in
+++ b/README.in
@@ -16,7 +16,7 @@ Clutter currently requires:
• Cairo ≥ @CAIRO_REQ_VERSION@
• PangoCairo ≥ @PANGO_REQ_VERSION@
-On X11, Clutter depends on the following extensions
+When building the X11 backend, Clutter depends on the following extensions:
• XComposite ≥ @XCOMPOSITE_REQ_VERSION@
• XDamage
@@ -25,6 +25,19 @@ On X11, Clutter depends on the following extensions
• XInput (1.x or 2.x)
• XKB
+When building the Wayland backend, Clutter also depends on:
+
+ • wayland-client
+ • xkbcommon
+
+When building the GDK backend, Clutter also depends on:
+
+ • gdk-3.0 > @GDK_REQ_VERSION@
+
+When building the CEx100 backend, Clutter also depends on:
+
+ • libgdl
+
If you are building the API reference you will also need:
• GTK-Doc ≥ @GTK_DOC_REQ_VERSION@
@@ -109,7 +122,7 @@ See also the wiki page:
Clutter has additional command line options for the configure script:
- --enable-debug=[no/minimum/yes/error]
+ --enable-debug=[no/minimum/yes]
Controls Clutter debugging level:
yes:
@@ -170,19 +183,19 @@ Clutter has additional command line options for the configure script:
Enable the GDK backend. (default=check)
--enable-wayland-backend=[yes/no]
- Enable the Wayland client backend. (default=no)
+ Enable the Wayland client backend. (default=no) [EXPERIMENTAL]
+
+ --enable-cex100-backend=[yes/no]
+ Enable the CEx100 platform backend. (default=no) [EXPERIMENTAL]
--enable-egl-backend=[yes/no]
Enable the EGL framebuffer backend. (default=no)
- --with-tslib=[yes/no]
- Use TSLib for the input events. (default=yes)
-
- --with-evdev=[yes/no]
- Use evdev for the input events. (default=yes)
+ --enable-tslib-input=[yes/no]
+ Enable the TSLib input backend. (default=no) [EXPERIMENTAL]
- --with-gdl=[yes/no]
- Use libgdl for CEx100 platforms. (default=no)
+ --enable-evdev-input=[yes/no]
+ Enable the evdev input backend. (default=no) [EXPERIMENTAL]
See also the INSTALL file generated by autotools for further information.
@@ -273,6 +286,52 @@ Relevant information for developers with existing Clutter applications
wanting to port to newer releases (see NEWS for general information on new
features).
+Release Notes for Clutter 1.10
+-------------------------------------------------------------------------------
+
+• Clutter can support multiple backends in the same shared library. Only one
+ windowing or input backend can be used at run time. As a result of this
+ change, the shared library name used by Clutter has changed from:
+
+ libclutter-<flavour>-<API version>.so
+
+ to:
+
+ libclutter-<API version>.so
+
+ The pkg-config file has been updated accordingly. Until the next major API
+ break, Clutter will ship compatibility links for all the previous "flavours"
+ that were available in versions < 1.10; this allows applications dynamically
+ linking against Clutter, or using dlopen(), to keep working. For libraries
+ and applications dynamically linking against Clutter, though, it is still
+ recommended to recompile to make sure that the most recent version is being
+ used. Language bindings using GObject Introspection will automatically use
+ the new shared library without requiring any change.
+
+• The windowing system backend for the CE3100 and CE4100 platforms using the
+ libgdl library is now implemented as a separate backend instance, instead
+ of being a sub-flavour of the EGL native framebuffer backend. This change
+ introduces a new header file, under $includedir/clutter-1.0/clutter/cex100,
+ which should be included to access the CEx100-specific API. The API and
+ ABI of the platform API has not been changed, though it should still be
+ considered experimental.
+
+• As of 1.10 it is not necessary any more to call clutter_threads_init() to
+ initialize threading support in Clutter; after the changes in GLib 2.32,
+ threading support in Clutter is always enabled. The rules on how to use
+ Clutter from multiple threads haven't changed.
+
+• Deprecated API is now marked using the CLUTTER_DEPRECATED and the
+ CLUTTER_DEPRECATED_FOR annotations; these two annotations will result in
+ compiler warnings when attempting to use the deprecated API. It is possible
+ to disable deprecation warnings for Clutter by defining the
+ CLUTTER_DISABLE_DEPRECATION_WARNINGS symbol when compiling. The previous
+ deprecation symbol, CLUTTER_DISABLE_DEPRECATED, is only used for macros.
+
+• Deprecated functionality has been moved to separate header files, installed
+ under the $includedir/clutter-1.0/clutter/deprecated directory. These files
+ are still included by default by clutter/clutter.h.
+
Release Notes for Clutter 1.8
-------------------------------------------------------------------------------
diff --git a/clutter/Makefile.am b/clutter/Makefile.am
index f76d47005..bd9cd57a5 100644
--- a/clutter/Makefile.am
+++ b/clutter/Makefile.am
@@ -388,12 +388,10 @@ endif # SUPPORT_X11
cogl_source_h =
cogl_source_c = \
- $(srcdir)/cogl/clutter-backend-cogl.c \
$(srcdir)/cogl/clutter-stage-cogl.c \
$(NULL)
cogl_source_h_priv = \
- $(srcdir)/cogl/clutter-backend-cogl.h \
$(srcdir)/cogl/clutter-stage-cogl.h \
$(NULL)
@@ -549,7 +547,9 @@ evdev_h_priv = \
$(srcdir)/evdev/clutter-input-device-evdev.h \
$(NULL)
-cex_h = egl/clutter-cex100.h
+cex_source_h_priv = $(srcdir)/cex100/clutter-backend-cex100.h
+cex_source_c = $(srcdir)/cex100/clutter-backend-cex100.c
+cex_h = cex100/clutter-cex100.h
BUILT_SOURCES += $(cex_h)
EXTRA_DIST += $(srcdir)/$(cex_h).in
@@ -564,7 +564,12 @@ egl_source_h_priv += $(evdev_h_priv)
endif # SUPPORT_EVDEV
if SUPPORT_CEX100
-egl_source_h += $(cex_h)
+backend_source_h += $(cex_h)
+backend_source_c += $(cex_source_c)
+backend_source_h_priv += $(cex_source_h_priv)
+
+cluttercex100_includedir = $(clutter_includedir)/cex100
+cluttercex100_include_HEADERS = $(cex_h)
clutter-cex100-$(CLUTTER_API_VERSION).pc: clutter-$(CLUTTER_API_VERSION).pc
$(QUIET_GEN)cp -f $< $(@F)
diff --git a/clutter/cally/cally-text.c b/clutter/cally/cally-text.c
index 1c7c68622..b601d1366 100644
--- a/clutter/cally/cally-text.c
+++ b/clutter/cally/cally-text.c
@@ -344,7 +344,10 @@ cally_text_real_initialize(AtkObject *obj,
_check_activate_action (cally_text, clutter_text);
- obj->role = ATK_ROLE_TEXT;
+ if (clutter_text_get_password_char (clutter_text) != 0)
+ obj->role = ATK_ROLE_PASSWORD_TEXT;
+ else
+ obj->role = ATK_ROLE_TEXT;
}
static const gchar *
@@ -1091,6 +1094,13 @@ cally_text_notify_clutter (GObject *obj,
{
_check_activate_action (cally_text, clutter_text);
}
+ else if (g_strcmp0 (pspec->name, "password-char") == 0)
+ {
+ if (clutter_text_get_password_char (clutter_text) != 0)
+ atk_object_set_role (atk_obj, ATK_ROLE_PASSWORD_TEXT);
+ else
+ atk_object_set_role (atk_obj, ATK_ROLE_TEXT);
+ }
else
{
CALLY_ACTOR_CLASS (cally_text_parent_class)->notify_clutter (obj, pspec);
diff --git a/clutter/cex100/clutter-backend-cex100.c b/clutter/cex100/clutter-backend-cex100.c
new file mode 100644
index 000000000..264dc0044
--- /dev/null
+++ b/clutter/cex100/clutter-backend-cex100.c
@@ -0,0 +1,214 @@
+/*
+ * Clutter.
+ *
+ * An OpenGL based 'interactive canvas' library.
+ *
+ * Copyright (C) 2010,2011 Intel Corporation.
+ * 2011 Giovanni Campagna <scampa.giovanni@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+
+ * Authors:
+ * Matthew Allum
+ * Emmanuele Bassi
+ * Robert Bragg
+ * Neil Roberts
+ */
+
+#include "config.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include <errno.h>
+
+#include "clutter-backend-eglnative.h"
+
+/* This is a Cogl based backend */
+#include "cogl/clutter-stage-cogl.h"
+
+#ifdef HAVE_EVDEV
+#include "clutter-device-manager-evdev.h"
+#endif
+
+#include "clutter-debug.h"
+#include "clutter-private.h"
+#include "clutter-main.h"
+#include "clutter-stage-private.h"
+
+#ifdef COGL_HAS_EGL_SUPPORT
+#include "clutter-egl.h"
+#endif
+
+#include "clutter-cex100.h"
+
+static gdl_plane_id_t gdl_plane = GDL_PLANE_ID_UPP_C;
+static guint gdl_n_buffers = CLUTTER_CEX100_TRIPLE_BUFFERING;
+
+#define clutter_backend_cex100_get_type _clutter_backend_cex100_get_type
+
+G_DEFINE_TYPE (ClutterBackendCex100, clutter_backend_cex100, CLUTTER_TYPE_BACKEND);
+
+static void
+clutter_backend_cex100_dispose (GObject *gobject)
+{
+ ClutterBackendCex100 *backend_cex100 = CLUTTER_BACKEND_CEX100 (gobject);
+
+ if (backend_cex100->event_timer != NULL)
+ {
+ g_timer_destroy (backend_cex100->event_timer);
+ backend_cex100->event_timer = NULL;
+ }
+
+ G_OBJECT_CLASS (clutter_backend_cex100_parent_class)->dispose (gobject);
+}
+
+static CoglDisplay *
+clutter_backend_cex100_get_display (ClutterBackend *backend,
+ CoglRenderer *renderer,
+ CoglSwapChain *swap_chain,
+ GError **error)
+{
+ CoglOnscreenTemplate *onscreen_template = NULL;
+ CoglDisplay *display;
+
+ swap_chain = cogl_swap_chain_new ();
+
+#if defined(COGL_HAS_GDL_SUPPORT)
+ cogl_swap_chain_set_length (swap_chain, gdl_n_buffers);
+#endif
+
+ onscreen_template = cogl_onscreen_template_new (swap_chain);
+
+ /* XXX: I have some doubts that this is a good design.
+ * Conceptually should we be able to check an onscreen_template
+ * without more details about the CoglDisplay configuration?
+ */
+ if (!cogl_renderer_check_onscreen_template (renderer,
+ onscreen_template,
+ error))
+ goto error;
+
+ display = cogl_display_new (renderer, onscreen_template);
+
+#if defined(COGL_HAS_GDL_SUPPORT)
+ cogl_gdl_display_set_plane (cogl_display, gdl_plane);
+#endif
+
+ return display;
+}
+
+static void
+clutter_backend_cex100_class_init (ClutterBackendCex100Class *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ ClutterBackendClass *backend_class = CLUTTER_BACKEND_CLASS (klass);
+
+ gobject_class->dispose = clutter_backend_cex100_dispose;
+
+ backend_class->stage_window_type = CLUTTER_TYPE_STAGE_COGL;
+
+ backend_class->get_display = clutter_backend_cex100_get_display;
+}
+
+static void
+clutter_backend_cex100_init (ClutterBackendCex100 *backend_cex100)
+{
+ backend_cex100->event_timer = g_timer_new ();
+}
+
+/**
+ * clutter_cex100_set_plane:
+ * @plane: a GDL plane
+ *
+ * Intel CE3100 and CE4100 have several planes (frame buffers) and a
+ * hardware blender to blend the planes togeteher and produce the final
+ * image.
+ *
+ * clutter_cex100_set_plane() let's you configure the GDL plane where
+ * the stage will be drawn. By default Clutter will pick UPP_C
+ * (GDL_PLANE_ID_UPP_C).
+ *
+ * <note>This function has to be called before clutter_init()</note>
+ *
+ * Since: 1.6
+ */
+void
+clutter_cex100_set_plane (gdl_plane_id_t plane)
+{
+ g_return_if_fail (plane >= GDL_PLANE_ID_UPP_A && plane <= GDL_PLANE_ID_UPP_E);
+
+ gdl_plane = plane;
+}
+
+/**
+ * clutter_cex100_set_buffering_mode:
+ * @mode: a #ClutterCex100BufferingMode
+ *
+ * Configure the buffering mode of the underlying GDL plane. The GDL
+ * surface used by Clutter to draw can be backed up by either one or two
+ * back buffers thus being double or triple buffered, respectively.
+ *
+ * Clutter defaults to %CLUTTER_CEX100_TRIPLE_BUFFERING.
+ *
+ * <note>This function has to be called before clutter_init()</note>
+ *
+ * Since: 1.6
+ */
+void
+clutter_cex100_set_buffering_mode (ClutterCex100BufferingMode mode)
+{
+ g_return_if_fail (mode == CLUTTER_CEX100_DOUBLE_BUFFERING ||
+ mode == CLUTTER_CEX100_TRIPLE_BUFFERING);
+
+ gdl_n_buffers = mode;
+}
+
+/**
+ * clutter_cex100_get_egl_display:
+ *
+ * Retrieves the EGL display used by Clutter, if it supports the
+ * EGL windowing system and if it is running using an EGL backend.
+ *
+ * Return value: the EGL display used by Clutter, or 0
+ *
+ * Since: 1.10
+ */
+EGLDisplay
+clutter_cex100_get_egl_display (void)
+{
+ ClutterBackend *backend;
+
+ if (!_clutter_context_is_initialized ())
+ {
+ g_critical ("The Clutter backend has not been initialized yet");
+ return 0;
+ }
+
+ backend = clutter_get_default_backend ();
+
+ if (!CLUTTER_IS_BACKEND_CEX100 (backend))
+ {
+ g_critical ("The Clutter backend is not a CEX100 backend");
+ return 0;
+ }
+
+#if COGL_HAS_EGL_SUPPORT
+ return cogl_egl_context_get_egl_display (backend->cogl_context);
+#else
+ return 0;
+#endif
+}
diff --git a/clutter/cex100/clutter-backend-cex100.h b/clutter/cex100/clutter-backend-cex100.h
new file mode 100644
index 000000000..2d1fb69b4
--- /dev/null
+++ b/clutter/cex100/clutter-backend-cex100.h
@@ -0,0 +1,71 @@
+/* Clutter.
+ * An OpenGL based 'interactive canvas' library.
+ *
+ * Copyright (C) 2006, 2007 OpenedHand
+ * Copyright (C) 2010 Intel Corp
+ * 2011 Giovanni Campagna <scampa.giovanni@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ * Matthew Allum
+ * Robert Bragg
+ */
+
+#ifndef __CLUTTER_BACKEND_CEX100_H__
+#define __CLUTTER_BACKEND_CEX100_H__
+
+#include <glib-object.h>
+#include <clutter/clutter-event.h>
+#include <clutter/clutter-backend.h>
+#include <clutter/clutter-device-manager.h>
+
+#include "clutter-backend-private.h"
+
+G_BEGIN_DECLS
+
+#define CLUTTER_TYPE_BACKEND_CEX100 (_clutter_backend_cex100_get_type ())
+#define CLUTTER_BACKEND_CEX100(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_BACKEND_CEX100, ClutterBackendCex100))
+#define CLUTTER_IS_BACKEND_CEX100(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_BACKEND_CEX100))
+#define CLUTTER_BACKEND_CEX100_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_BACKEND_CEX100, ClutterBackendCex100Class))
+#define CLUTTER_IS_BACKEND_CEX100_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BACKEND_CEX100))
+#define CLUTTER_BACKEND_CEX100_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BACKEND_CEX100, ClutterBackendCex100Class))
+
+typedef struct _ClutterBackendCex100 ClutterBackendCex100;
+typedef struct _ClutterBackendCex100Class ClutterBackendCex100Class;
+
+struct _ClutterBackendCex100
+{
+ ClutterBackend parent_instance;
+
+ /* device manager (ie evdev) */
+ ClutterDeviceManager *device_manager;
+
+ /* event source */
+ GSource *event_source;
+
+ /* event timer */
+ GTimer *event_timer;
+};
+
+struct _ClutterBackendCex100Class
+{
+ ClutterBackendClass parent_class;
+};
+
+GType _clutter_backend_cex100_get_type (void) G_GNUC_CONST;
+
+G_END_DECLS
+
+#endif /* __CLUTTER_BACKEND_CEX100_H__ */
diff --git a/clutter/egl/clutter-cex100.h.in b/clutter/cex100/clutter-cex100.h.in
index d6d976da9..57e241df4 100644
--- a/clutter/egl/clutter-cex100.h.in
+++ b/clutter/cex100/clutter-cex100.h.in
@@ -30,7 +30,7 @@
* specific API
*
* You need to include
- * <filename class="headerfile">&lt;clutter/egl/clutter-cex100.h&gt;</filename>
+ * <filename class="headerfile">&lt;clutter/cex100/clutter-cex100.h&gt;</filename>
* to have access to the functions documented here.
*/
@@ -44,27 +44,13 @@
G_BEGIN_DECLS
/**
- * clutter_cex100_set_plane:
- * @plane: a GDL plane
- *
- * Intel CE3100 and CE4100 have several planes (frame buffers) and a
- * hardware blender to blend the planes togeteher and produce the final
- * image.
- *
- * clutter_cex100_set_plane() let's you configure the GDL plane where
- * the stage will be drawn. By default Clutter will pick UPP_C
- * (GDL_PLANE_ID_UPP_C).
- *
- * <note>This function has to be called before clutter_init()</note>
- */
-void clutter_cex100_set_plane (gdl_plane_id_t plane);
-
-/**
* ClutterCex100BufferingMode:
* @CLUTTER_CEX100_DOUBLE_BUFFERING: The GDL plane will be double buffered
* @CLUTTER_CEX100_TRIPLE_BUFFERING: The GDL plane will be triple buffered
*
* Enum passed to clutter_cex100_set_buffering_mode().
+ *
+ * Since: 1.6
*/
typedef enum /*< prefix=CLUTTER_CEX100 >*/
{
@@ -72,19 +58,10 @@ typedef enum /*< prefix=CLUTTER_CEX100 >*/
CLUTTER_CEX100_TRIPLE_BUFFERING = 3
} ClutterCex100BufferingMode;
-/**
- * clutter_cex100_set_buffering_mode:
- * @mode: a #ClutterCex100BufferingMode
- *
- * Configure the buffering mode of the underlying GDL plane. The GDL
- * surface used by Clutter to draw can be backed up by either one or two
- * back buffers thus being double or triple buffered, respectively.
- *
- * Clutter defaults to %CLUTTER_CEX100_TRIPLE_BUFFERING.
- *
- * <note>This function has to be called before clutter_init()</note>
- */
-void clutter_cex100_set_buffering_mode (ClutterCex100BufferingMode mode);
+void clutter_cex100_set_plane (gdl_plane_id_t plane);
+void clutter_cex100_set_buffering_mode (ClutterCex100BufferingMode mode);
+
+EGLDisplay clutter_cex100_get_egl_display (void);
G_END_DECLS
diff --git a/clutter/clutter-backend-private.h b/clutter/clutter-backend-private.h
index 71b80a332..6816bac55 100644
--- a/clutter/clutter-backend-private.h
+++ b/clutter/clutter-backend-private.h
@@ -39,11 +39,13 @@ typedef struct _ClutterBackendPrivate ClutterBackendPrivate;
struct _ClutterBackend
{
/*< private >*/
- GObject parent_instance;
+ GObject parent_instance;
- CoglRenderer *cogl_renderer;
- CoglDisplay *cogl_display;
- CoglContext *cogl_context;
+ CoglRenderer *cogl_renderer;
+ CoglDisplay *cogl_display;
+ CoglContext *cogl_context;
+
+ ClutterDeviceManager *device_manager;
ClutterBackendPrivate *priv;
};
@@ -53,6 +55,8 @@ struct _ClutterBackendClass
/*< private >*/
GObjectClass parent_class;
+ GType stage_window_type;
+
/* vfuncs */
gboolean (* pre_parse) (ClutterBackend *backend,
GError **error);
@@ -68,6 +72,12 @@ struct _ClutterBackendClass
ClutterFeatureFlags (* get_features) (ClutterBackend *backend);
void (* redraw) (ClutterBackend *backend,
ClutterStage *stage);
+ CoglRenderer * (* get_renderer) (ClutterBackend *backend,
+ GError **error);
+ CoglDisplay * (* get_display) (ClutterBackend *backend,
+ CoglRenderer *renderer,
+ CoglSwapChain *swap_chain,
+ GError **error);
gboolean (* create_context) (ClutterBackend *backend,
GError **error);
void (* ensure_context) (ClutterBackend *backend,
diff --git a/clutter/clutter-backend.c b/clutter/clutter-backend.c
index 7243cac8a..fe9cba798 100644
--- a/clutter/clutter-backend.c
+++ b/clutter/clutter-backend.c
@@ -50,10 +50,31 @@
#include "clutter-profile.h"
#include "clutter-stage-manager-private.h"
#include "clutter-stage-private.h"
+#include "clutter-stage-window.h"
#include "clutter-version.h"
#include <cogl/cogl.h>
+#ifdef CLUTTER_INPUT_X11
+#include "x11/clutter-backend-x11.h"
+#endif
+#ifdef CLUTTER_INPUT_WIN32
+#include "win32/clutter-backend-win32.h"
+#endif
+#ifdef CLUTTER_INPUT_OSX
+#include "osx/clutter-backend-osx.h"
+#endif
+#ifdef CLUTTER_INPUT_GDK
+#include "gdk/clutter-backend-gdk.h"
+#endif
+#ifdef CLUTTER_INPUT_EVDEV
+#include "evdev/clutter-device-manager-evdev.h"
+#endif
+#ifdef CLUTTER_INPUT_TSLIB
+/* XXX - should probably warn, here */
+#include "tslib/clutter-event-tslib.h"
+#endif
+
G_DEFINE_ABSTRACT_TYPE (ClutterBackend, clutter_backend, G_TYPE_OBJECT);
#define DEFAULT_FONT_NAME "Sans 10"
@@ -205,6 +226,200 @@ clutter_backend_real_font_changed (ClutterBackend *backend)
CLUTTER_NOTE (BACKEND, "Units per em: %.2f", priv->units_per_em);
}
+static gboolean
+clutter_backend_real_create_context (ClutterBackend *backend,
+ GError **error)
+{
+ ClutterBackendClass *klass;
+ CoglSwapChain *swap_chain;
+ GError *internal_error;
+
+ if (backend->cogl_context != NULL)
+ return TRUE;
+
+ klass = CLUTTER_BACKEND_GET_CLASS (backend);
+
+ swap_chain = NULL;
+ internal_error = NULL;
+
+ CLUTTER_NOTE (BACKEND, "Creating Cogl renderer");
+ if (klass->get_renderer != NULL)
+ backend->cogl_renderer = klass->get_renderer (backend, &internal_error);
+ else
+ backend->cogl_renderer = cogl_renderer_new ();
+
+ if (backend->cogl_renderer == NULL)
+ goto error;
+
+ CLUTTER_NOTE (BACKEND, "Connecting the renderer");
+ if (!cogl_renderer_connect (backend->cogl_renderer, &internal_error))
+ goto error;
+
+ CLUTTER_NOTE (BACKEND, "Creating Cogl swap chain");
+ swap_chain = cogl_swap_chain_new ();
+
+ CLUTTER_NOTE (BACKEND, "Creating Cogl display");
+ if (klass->get_display != NULL)
+ {
+ backend->cogl_display = klass->get_display (backend,
+ backend->cogl_renderer,
+ swap_chain,
+ &internal_error);
+ }
+ else
+ {
+ CoglOnscreenTemplate *tmpl;
+ gboolean res;
+
+ tmpl = cogl_onscreen_template_new (swap_chain);
+
+ /* XXX: I have some doubts that this is a good design.
+ *
+ * Conceptually should we be able to check an onscreen_template
+ * without more details about the CoglDisplay configuration?
+ */
+ res = cogl_renderer_check_onscreen_template (backend->cogl_renderer,
+ tmpl,
+ &internal_error);
+
+ if (!res)
+ goto error;
+
+ backend->cogl_display = cogl_display_new (backend->cogl_renderer, tmpl);
+
+ /* the display owns the template */
+ cogl_object_unref (tmpl);
+ }
+
+ if (backend->cogl_display == NULL)
+ goto error;
+
+ CLUTTER_NOTE (BACKEND, "Setting up the display");
+ if (!cogl_display_setup (backend->cogl_display, &internal_error))
+ goto error;
+
+ CLUTTER_NOTE (BACKEND, "Creating the Cogl context");
+ backend->cogl_context = cogl_context_new (backend->cogl_display, &internal_error);
+ if (backend->cogl_context == NULL)
+ goto error;
+
+ /* the display owns the renderer and the swap chain */
+ cogl_object_unref (backend->cogl_renderer);
+ cogl_object_unref (swap_chain);
+
+ return TRUE;
+
+error:
+ if (backend->cogl_display != NULL)
+ {
+ cogl_object_unref (backend->cogl_display);
+ backend->cogl_display = NULL;
+ }
+
+ if (backend->cogl_renderer != NULL)
+ {
+ cogl_object_unref (backend->cogl_renderer);
+ backend->cogl_renderer = NULL;
+ }
+
+ if (swap_chain != NULL)
+ cogl_object_unref (swap_chain);
+
+ if (internal_error != NULL)
+ g_propagate_error (error, internal_error);
+ else
+ g_set_error_literal (error, CLUTTER_INIT_ERROR,
+ CLUTTER_INIT_ERROR_BACKEND,
+ _("Unable to initialize the Clutter backend"));
+
+ return FALSE;
+}
+
+static void
+clutter_backend_real_ensure_context (ClutterBackend *backend,
+ ClutterStage *stage)
+{
+ ClutterStageWindow *stage_impl;
+ CoglFramebuffer *framebuffer;
+
+ if (stage == NULL)
+ return;
+
+ stage_impl = _clutter_stage_get_window (stage);
+ if (stage_impl == NULL)
+ return;
+
+ framebuffer = _clutter_stage_window_get_active_framebuffer (stage_impl);
+ if (framebuffer == NULL)
+ return;
+
+ cogl_set_framebuffer (framebuffer);
+}
+
+static ClutterFeatureFlags
+clutter_backend_real_get_features (ClutterBackend *backend)
+{
+ ClutterFeatureFlags flags = 0;
+
+ if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_MULTIPLE_ONSCREEN))
+ {
+ CLUTTER_NOTE (BACKEND, "Cogl supports multiple onscreen framebuffers");
+ flags |= CLUTTER_FEATURE_STAGE_MULTIPLE;
+ }
+ else
+ {
+ CLUTTER_NOTE (BACKEND, "Cogl only supports one onscreen framebuffer");
+ flags |= CLUTTER_FEATURE_STAGE_STATIC;
+ }
+
+ if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_THROTTLE))
+ {
+ CLUTTER_NOTE (BACKEND, "Cogl supports swap buffers throttling");
+ flags |= CLUTTER_FEATURE_SYNC_TO_VBLANK;
+ }
+ else
+ CLUTTER_NOTE (BACKEND, "Cogl doesn't support swap buffers throttling");
+
+ if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_BUFFERS_EVENT))
+ {
+ CLUTTER_NOTE (BACKEND, "Cogl supports swap buffers complete events");
+ flags |= CLUTTER_FEATURE_SWAP_EVENTS;
+ }
+
+ return flags;
+}
+
+static ClutterStageWindow *
+clutter_backend_real_create_stage (ClutterBackend *backend,
+ ClutterStage *wrapper,
+ GError **error)
+{
+ ClutterBackendClass *klass;
+
+ if (!clutter_feature_available (CLUTTER_FEATURE_STAGE_MULTIPLE))
+ {
+ ClutterStageManager *manager = clutter_stage_manager_get_default ();
+
+ if (clutter_stage_manager_get_default_stage (manager) != NULL)
+ {
+ g_set_error (error, CLUTTER_INIT_ERROR,
+ CLUTTER_INIT_ERROR_BACKEND,
+ _("The backend of type '%s' does not support "
+ "creating multiple stages"),
+ G_OBJECT_TYPE_NAME (backend));
+ return NULL;
+ }
+ }
+
+ klass = CLUTTER_BACKEND_GET_CLASS (backend);
+ g_assert (klass->stage_window_type != G_TYPE_INVALID);
+
+ return g_object_new (klass->stage_window_type,
+ "backend", backend,
+ "wrapper", wrapper,
+ NULL);
+}
+
static void
clutter_backend_real_redraw (ClutterBackend *backend,
ClutterStage *stage)
@@ -221,6 +436,86 @@ clutter_backend_real_redraw (ClutterBackend *backend,
_clutter_stage_window_redraw (impl);
}
+static void
+clutter_backend_real_init_events (ClutterBackend *backend)
+{
+ const char *input_backend = NULL;
+
+ input_backend = g_getenv ("CLUTTER_INPUT_BACKEND");
+ if (input_backend != NULL)
+ input_backend = g_intern_string (input_backend);
+
+#ifdef CLUTTER_INPUT_OSX
+ if (clutter_check_windowing_backend (CLUTTER_WINDOWING_OSX) &&
+ (input_backend == NULL || input_backend == I_(CLUTTER_INPUT_OSX)))
+ {
+ _clutter_backend_osx_events_init (backend);
+ }
+ else
+#endif
+#ifdef CLUTTER_INPUT_WIN32
+ if (clutter_check_windowing_backend (CLUTTER_WINDOWING_WIN32) &&
+ (input_backend == NULL || input_backend == I_(CLUTTER_INPUT_WIN32)))
+ {
+ _clutter_backend_win32_events_init (backend);
+ }
+ else
+#endif
+#ifdef CLUTTER_INPUT_X11
+ if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11) &&
+ (input_backend == NULL || input_backend == I_(CLUTTER_INPUT_X11)))
+ {
+ _clutter_backend_x11_events_init (backend);
+ }
+ else
+#endif
+#ifdef CLUTTER_INPUT_GDK
+ if (clutter_check_windowing_backend (CLUTTER_WINDOWING_GDK) &&
+ (input_backend == NULL || input_backend == I_(CLUTTER_INPUT_GDK)))
+ {
+ _clutter_backend_gdk_events_init (backend);
+ }
+ else
+#endif
+#ifdef CLUTTER_INPUT_EVDEV
+ /* Evdev can be used regardless of the windowing system */
+ if (input_backend != NULL &&
+ strcmp (input_backend, CLUTTER_INPUT_EVDEV) == 0)
+ {
+ _clutter_events_evdev_init (backend);
+ }
+ else
+#endif
+#ifdef CLUTTER_INPUT_TSLIB
+ /* Tslib can be used regardless of the windowing system */
+ if (input_backend != NULL &&
+ strcmp (input_backend, CLUTTER_INPUT_TSLIB) == 0)
+ {
+ _clutter_events_tslib_init (backend);
+ }
+ else
+#endif
+ if (input_backend != NULL)
+ {
+ if (input_backend != I_(CLUTTER_INPUT_NULL))
+ g_error ("Unrecognized input backend '%s'", input_backend);
+ }
+ else
+ g_error ("Unknown input backend");
+}
+
+static ClutterDeviceManager *
+clutter_backend_real_get_device_manager (ClutterBackend *backend)
+{
+ if (G_UNLIKELY (backend->device_manager == NULL))
+ {
+ g_critical ("No device manager available, expect broken input");
+ return NULL;
+ }
+
+ return backend->device_manager;
+}
+
static gboolean
clutter_backend_real_translate_event (ClutterBackend *backend,
gpointer native,
@@ -260,6 +555,8 @@ clutter_backend_class_init (ClutterBackendClass *klass)
g_type_class_add_private (gobject_class, sizeof (ClutterBackendPrivate));
+ klass->stage_window_type = G_TYPE_INVALID;
+
/**
* ClutterBackend::resolution-changed:
* @backend: the #ClutterBackend that emitted the signal
@@ -316,7 +613,14 @@ clutter_backend_class_init (ClutterBackendClass *klass)
klass->resolution_changed = clutter_backend_real_resolution_changed;
klass->font_changed = clutter_backend_real_font_changed;
+
+ klass->init_events = clutter_backend_real_init_events;
+ klass->get_device_manager = clutter_backend_real_get_device_manager;
klass->translate_event = clutter_backend_real_translate_event;
+ klass->create_context = clutter_backend_real_create_context;
+ klass->ensure_context = clutter_backend_real_ensure_context;
+ klass->get_features = clutter_backend_real_get_features;
+ klass->create_stage = clutter_backend_real_create_stage;
klass->redraw = clutter_backend_real_redraw;
}
@@ -433,10 +737,8 @@ _clutter_backend_create_context (ClutterBackend *backend,
ClutterBackendClass *klass;
klass = CLUTTER_BACKEND_GET_CLASS (backend);
- if (klass->create_context)
- return klass->create_context (backend, error);
- return TRUE;
+ return klass->create_context (backend, error);
}
void
@@ -567,8 +869,7 @@ _clutter_backend_init_events (ClutterBackend *backend)
g_assert (CLUTTER_IS_BACKEND (backend));
klass = CLUTTER_BACKEND_GET_CLASS (backend);
- if (klass->init_events)
- klass->init_events (backend);
+ klass->init_events (backend);
}
gfloat
diff --git a/clutter/clutter-color.c b/clutter/clutter-color.c
index e8ecf44c2..cef0109a4 100644
--- a/clutter/clutter-color.c
+++ b/clutter/clutter-color.c
@@ -589,6 +589,7 @@ parse_hsla (ClutterColor *color,
str += 1;
l = CLAMP (number / 100.0, 0.0, 1.0);
+ skip_whitespace (&str);
/* alpha (optional); since the alpha channel value can only
* be between 0 and 1 we don't use the parse_rgb_value()
@@ -719,17 +720,16 @@ clutter_color_from_string (ClutterColor *color,
* parsing the color ourselves, as we need the alpha channel that
* Pango can't retrieve.
*/
- if (str[0] == '#')
+ if (str[0] == '#' && str[1] != '\0')
{
+ gsize length = strlen (str + 1);
gint32 result;
- if (sscanf (str + 1, "%x", &result))
+ if (sscanf (str + 1, "%x", &result) == 1)
{
- gsize length = strlen (str);
-
switch (length)
{
- case 9: /* rrggbbaa */
+ case 8: /* rrggbbaa */
color->red = (result >> 24) & 0xff;
color->green = (result >> 16) & 0xff;
color->blue = (result >> 8) & 0xff;
@@ -738,7 +738,7 @@ clutter_color_from_string (ClutterColor *color,
return TRUE;
- case 7: /* #rrggbb */
+ case 6: /* #rrggbb */
color->red = (result >> 16) & 0xff;
color->green = (result >> 8) & 0xff;
color->blue = result & 0xff;
@@ -747,7 +747,7 @@ clutter_color_from_string (ClutterColor *color,
return TRUE;
- case 5: /* #rgba */
+ case 4: /* #rgba */
color->red = ((result >> 12) & 0xf);
color->green = ((result >> 8) & 0xf);
color->blue = ((result >> 4) & 0xf);
@@ -760,7 +760,7 @@ clutter_color_from_string (ClutterColor *color,
return TRUE;
- case 4: /* #rgb */
+ case 3: /* #rgb */
color->red = ((result >> 8) & 0xf);
color->green = ((result >> 4) & 0xf);
color->blue = result & 0xf;
@@ -774,13 +774,18 @@ clutter_color_from_string (ClutterColor *color,
return TRUE;
default:
- /* pass through to Pango */
- break;
+ return FALSE;
}
}
}
- /* Fall back to pango for named colors */
+ /* fall back to pango for X11-style named colors; see:
+ *
+ * http://en.wikipedia.org/wiki/X11_color_names
+ *
+ * for a list. at some point we might even ship with our own list generated
+ * from X11/rgb.txt, like we generate the key symbols.
+ */
if (pango_color_parse (&pango_color, str))
{
color->red = pango_color.red;
diff --git a/clutter/clutter-device-manager.c b/clutter/clutter-device-manager.c
index cf0d4fca0..fc3227884 100644
--- a/clutter/clutter-device-manager.c
+++ b/clutter/clutter-device-manager.c
@@ -200,12 +200,9 @@ clutter_device_manager_init (ClutterDeviceManager *self)
ClutterDeviceManager *
clutter_device_manager_get_default (void)
{
- ClutterBackendClass *klass;
+ ClutterBackend *backend = clutter_get_default_backend ();
- klass = CLUTTER_BACKEND_GET_CLASS (clutter_get_default_backend ());
- g_assert (klass->get_device_manager != NULL);
-
- return klass->get_device_manager (clutter_get_default_backend ());
+ return backend->device_manager;
}
/**
diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c
index c24d399e3..ca4663319 100644
--- a/clutter/clutter-main.c
+++ b/clutter/clutter-main.c
@@ -155,6 +155,7 @@ static gboolean clutter_fatal_warnings = FALSE;
static gboolean clutter_disable_mipmap_text = FALSE;
static gboolean clutter_use_fuzzy_picking = FALSE;
static gboolean clutter_enable_accessibility = TRUE;
+static gboolean clutter_sync_to_vblank = TRUE;
static guint clutter_default_fps = 60;
@@ -302,6 +303,16 @@ clutter_config_read_from_key_file (GKeyFile *keyfile)
else
clutter_enable_accessibility = bool_value;
+ bool_value =
+ g_key_file_get_boolean (keyfile, ENVIRONMENT_GROUP,
+ "SyncToVblank",
+ &key_error);
+
+ if (key_error != NULL)
+ g_clear_error (&key_error);
+ else
+ clutter_sync_to_vblank = bool_value;
+
int_value =
g_key_file_get_integer (keyfile, ENVIRONMENT_GROUP,
"DefaultFps",
@@ -397,6 +408,8 @@ clutter_config_read_from_file (const gchar *config_path)
g_key_file_load_from_file (key_file, config_path, G_KEY_FILE_NONE, &error);
if (error == NULL)
{
+ CLUTTER_NOTE (MISC, "Reading configuration from '%s'", config_path);
+
clutter_config_read_from_key_file (key_file);
#ifdef CLUTTER_ENABLE_DEBUG
clutter_debug_read_from_key_file (key_file);
@@ -1723,6 +1736,10 @@ pre_parse_hook (GOptionContext *context,
if (env_string)
clutter_use_fuzzy_picking = TRUE;
+ env_string = g_getenv ("CLUTTER_VBLANK");
+ if (g_strcmp0 (env_string, "none") == 0)
+ clutter_sync_to_vblank = FALSE;
+
return _clutter_backend_pre_parse (backend, error);
}
@@ -3697,3 +3714,9 @@ clutter_check_windowing_backend (const char *backend_type)
#endif
return FALSE;
}
+
+gboolean
+_clutter_get_sync_to_vblank (void)
+{
+ return clutter_sync_to_vblank;
+}
diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h
index eff0b31b8..017d54e7a 100644
--- a/clutter/clutter-private.h
+++ b/clutter/clutter-private.h
@@ -211,6 +211,8 @@ void _clutter_id_to_color (guint id,
ClutterActor * _clutter_get_actor_by_id (ClutterStage *stage,
guint32 actor_id);
+gboolean _clutter_get_sync_to_vblank (void);
+
/* use this function as the accumulator if you have a signal with
* a G_TYPE_BOOLEAN return value; this will stop the emission as
* soon as one handler returns TRUE
diff --git a/clutter/clutter-stage-window.c b/clutter/clutter-stage-window.c
index 7ca171ee4..1b35103c7 100644
--- a/clutter/clutter-stage-window.c
+++ b/clutter/clutter-stage-window.c
@@ -15,6 +15,25 @@ G_DEFINE_INTERFACE (ClutterStageWindow, clutter_stage_window, G_TYPE_OBJECT);
static void
clutter_stage_window_default_init (ClutterStageWindowInterface *iface)
{
+ GParamSpec *pspec;
+
+ pspec = g_param_spec_object ("backend",
+ "Backend",
+ "Back pointer to the Backend instance",
+ CLUTTER_TYPE_BACKEND,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+ g_object_interface_install_property (iface, pspec);
+
+ pspec = g_param_spec_object ("wrapper",
+ "Wrapper",
+ "Back pointer to the Stage actor",
+ CLUTTER_TYPE_STAGE,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+ g_object_interface_install_property (iface, pspec);
}
ClutterActor *
diff --git a/clutter/cogl/clutter-backend-cogl.c b/clutter/cogl/clutter-backend-cogl.c
deleted file mode 100644
index af0ad1400..000000000
--- a/clutter/cogl/clutter-backend-cogl.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Clutter.
- *
- * An OpenGL based 'interactive canvas' library.
- *
- * Copyright (C) 2010,2011 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
-
- * Authors:
- * Matthew Allum
- * Emmanuele Bassi
- * Robert Bragg
- * Neil Roberts
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include <errno.h>
-
-#include "clutter-backend-cogl.h"
-#include "clutter-stage-cogl.h"
-
-#include "clutter-debug.h"
-#include "clutter-private.h"
-#include "clutter-main.h"
-#include "clutter-stage-private.h"
-
-static ClutterBackendCogl *backend_singleton = NULL;
-
-static gchar *clutter_vblank = NULL;
-
-G_DEFINE_TYPE (ClutterBackendCogl, _clutter_backend_cogl, CLUTTER_TYPE_BACKEND);
-
-const gchar*
-_clutter_backend_cogl_get_vblank (void)
-{
- if (clutter_vblank && strcmp (clutter_vblank, "0") == 0)
- return "none";
- else
- return clutter_vblank;
-}
-
-static gboolean
-clutter_backend_cogl_pre_parse (ClutterBackend *backend,
- GError **error)
-{
- const gchar *env_string;
-
- env_string = g_getenv ("CLUTTER_VBLANK");
- if (env_string)
- {
- clutter_vblank = g_strdup (env_string);
- env_string = NULL;
- }
-
- return TRUE;
-}
-
-static gboolean
-clutter_backend_cogl_post_parse (ClutterBackend *backend,
- GError **error)
-{
- return TRUE;
-}
-
-static void
-clutter_backend_cogl_finalize (GObject *gobject)
-{
- if (backend_singleton)
- backend_singleton = NULL;
-
- G_OBJECT_CLASS (_clutter_backend_cogl_parent_class)->finalize (gobject);
-}
-
-static void
-clutter_backend_cogl_dispose (GObject *gobject)
-{
- ClutterBackend *backend = CLUTTER_BACKEND (gobject);
-
- if (backend->cogl_context)
- {
- cogl_object_unref (backend->cogl_context);
- backend->cogl_context = NULL;
- }
-
- G_OBJECT_CLASS (_clutter_backend_cogl_parent_class)->dispose (gobject);
-}
-
-static GObject *
-clutter_backend_cogl_constructor (GType gtype,
- guint n_params,
- GObjectConstructParam *params)
-{
- GObjectClass *parent_class;
- GObject *retval;
-
- if (backend_singleton == NULL)
- {
- parent_class = G_OBJECT_CLASS (_clutter_backend_cogl_parent_class);
- retval = parent_class->constructor (gtype, n_params, params);
-
- backend_singleton = CLUTTER_BACKEND_COGL (retval);
-
- return retval;
- }
-
- g_warning ("Attempting to create a new backend object. This should "
- "never happen, so we return the singleton instance.");
-
- return g_object_ref (backend_singleton);
-}
-
-static ClutterFeatureFlags
-clutter_backend_cogl_get_features (ClutterBackend *backend)
-{
- ClutterBackendCogl *backend_cogl = CLUTTER_BACKEND_COGL (backend);
- ClutterFeatureFlags flags = 0;
-
- if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_MULTIPLE_ONSCREEN))
- {
- CLUTTER_NOTE (BACKEND, "Cogl supports multiple onscreen framebuffers");
- flags |= CLUTTER_FEATURE_STAGE_MULTIPLE;
- }
- else
- {
- CLUTTER_NOTE (BACKEND, "Cogl only supports one onscreen framebuffer");
- flags |= CLUTTER_FEATURE_STAGE_STATIC;
- }
-
- if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_THROTTLE))
- {
- CLUTTER_NOTE (BACKEND, "Cogl supports swap buffers throttling");
- flags |= CLUTTER_FEATURE_SYNC_TO_VBLANK;
- }
- else
- CLUTTER_NOTE (BACKEND, "Cogl doesn't support swap buffers throttling");
-
- if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_BUFFERS_EVENT))
- {
- CLUTTER_NOTE (BACKEND, "Cogl supports swap buffers complete events");
- flags |= CLUTTER_FEATURE_SWAP_EVENTS;
- }
-
- if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_REGION))
- {
- CLUTTER_NOTE (BACKEND, "Cogl supports swapping buffer regions");
- backend_cogl->can_blit_sub_buffer = TRUE;
- }
-
- return flags;
-}
-
-static void
-clutter_backend_cogl_ensure_context (ClutterBackend *backend,
- ClutterStage *stage)
-{
- ClutterStageCogl *stage_cogl;
-
- /* ignore ensuring the context on an empty stage */
- if (stage == NULL)
- return;
-
- stage_cogl =
- CLUTTER_STAGE_COGL (_clutter_stage_get_window (stage));
-
- cogl_set_framebuffer (COGL_FRAMEBUFFER (stage_cogl->onscreen));
-}
-
-static void
-_clutter_backend_cogl_class_init (ClutterBackendCoglClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- ClutterBackendClass *backend_class = CLUTTER_BACKEND_CLASS (klass);
-
- gobject_class->constructor = clutter_backend_cogl_constructor;
- gobject_class->dispose = clutter_backend_cogl_dispose;
- gobject_class->finalize = clutter_backend_cogl_finalize;
-
- backend_class->pre_parse = clutter_backend_cogl_pre_parse;
- backend_class->post_parse = clutter_backend_cogl_post_parse;
- backend_class->get_features = clutter_backend_cogl_get_features;
- backend_class->ensure_context = clutter_backend_cogl_ensure_context;
-}
-
-static void
-_clutter_backend_cogl_init (ClutterBackendCogl *backend_cogl)
-{
-}
diff --git a/clutter/cogl/clutter-backend-cogl.h b/clutter/cogl/clutter-backend-cogl.h
deleted file mode 100644
index 2467d9d9e..000000000
--- a/clutter/cogl/clutter-backend-cogl.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Clutter.
- * An OpenGL based 'interactive canvas' library.
- *
- * Copyright (C) 2006, 2007 OpenedHand
- * Copyright (C) 2010 Intel Corp
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors:
- * Matthew Allum
- * Robert Bragg
- */
-
-#ifndef __CLUTTER_BACKEND_COGL_H__
-#define __CLUTTER_BACKEND_COGL_H__
-
-#include <glib-object.h>
-#include <clutter/clutter-event.h>
-#include <clutter/clutter-backend.h>
-#include <clutter/clutter-device-manager.h>
-
-#ifdef COGL_HAS_XLIB_SUPPORT
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#endif
-
-#include "clutter-backend-private.h"
-
-G_BEGIN_DECLS
-
-#define CLUTTER_TYPE_BACKEND_COGL (_clutter_backend_cogl_get_type ())
-#define CLUTTER_BACKEND_COGL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_BACKEND_COGL, ClutterBackendCogl))
-#define CLUTTER_IS_BACKEND_COGL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_BACKEND_COGL))
-#define CLUTTER_BACKEND_COGL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_BACKEND_COGL, ClutterBackendCoglClass))
-#define CLUTTER_IS_BACKEND_COGL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BACKEND_COGL))
-#define CLUTTER_BACKEND_COGL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BACKEND_COGL, ClutterBackendCoglClass))
-
-typedef struct _ClutterBackendCogl ClutterBackendCogl;
-typedef struct _ClutterBackendCoglClass ClutterBackendCoglClass;
-
-struct _ClutterBackendCogl
-{
- ClutterBackend parent_instance;
-
- gboolean can_blit_sub_buffer;
-};
-
-struct _ClutterBackendCoglClass
-{
- ClutterBackendClass parent_class;
-};
-
-GType _clutter_backend_cogl_get_type (void) G_GNUC_CONST;
-
-const gchar *_clutter_backend_cogl_get_vblank (void);
-
-G_END_DECLS
-
-#endif /* __CLUTTER_BACKEND_COGL_H__ */
diff --git a/clutter/cogl/clutter-stage-cogl.c b/clutter/cogl/clutter-stage-cogl.c
index 80801443f..87b6035be 100644
--- a/clutter/cogl/clutter-stage-cogl.c
+++ b/clutter/cogl/clutter-stage-cogl.c
@@ -33,15 +33,15 @@
#include "clutter-config.h"
#include "clutter-stage-cogl.h"
-#include "clutter-backend-cogl.h"
+#include "clutter-actor-private.h"
+#include "clutter-backend-private.h"
#include "clutter-debug.h"
#include "clutter-event.h"
#include "clutter-enum-types.h"
#include "clutter-feature.h"
#include "clutter-main.h"
#include "clutter-private.h"
-#include "clutter-actor-private.h"
#include "clutter-stage-private.h"
#include "clutter-util.h"
@@ -102,7 +102,6 @@ clutter_stage_cogl_realize (ClutterStageWindow *stage_window)
GError *error = NULL;
gfloat width = 800;
gfloat height = 600;
- const char *clutter_vblank;
CLUTTER_NOTE (BACKEND, "Realizing stage '%s' [%p]",
G_OBJECT_TYPE_NAME (stage_cogl),
@@ -116,9 +115,8 @@ clutter_stage_cogl_realize (ClutterStageWindow *stage_window)
width, height);
}
- clutter_vblank = _clutter_backend_cogl_get_vblank ();
- if (clutter_vblank && strcmp (clutter_vblank, "none") == 0)
- cogl_onscreen_set_swap_throttled (stage_cogl->onscreen, FALSE);
+ cogl_onscreen_set_swap_throttled (stage_cogl->onscreen,
+ _clutter_get_sync_to_vblank ());
framebuffer = COGL_FRAMEBUFFER (stage_cogl->onscreen);
if (!cogl_framebuffer_allocate (framebuffer, &error))
@@ -316,11 +314,10 @@ static void
clutter_stage_cogl_redraw (ClutterStageWindow *stage_window)
{
ClutterStageCogl *stage_cogl = CLUTTER_STAGE_COGL (stage_window);
- ClutterActor *wrapper;
- ClutterBackend *backend;
- ClutterBackendCogl *backend_cogl;
gboolean may_use_clipped_redraw;
gboolean use_clipped_redraw;
+ gboolean can_blit_sub_buffer;
+ ClutterActor *wrapper;
CLUTTER_STATIC_TIMER (painting_timer,
"Redrawing", /* parent */
@@ -343,19 +340,19 @@ clutter_stage_cogl_redraw (ClutterStageWindow *stage_window)
if (!stage_cogl->onscreen)
return;
- backend = clutter_get_default_backend ();
- backend_cogl = CLUTTER_BACKEND_COGL (backend);
-
CLUTTER_TIMER_START (_clutter_uprof_context, painting_timer);
+ can_blit_sub_buffer =
+ cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_REGION);
+
may_use_clipped_redraw = FALSE;
if (_clutter_stage_window_can_clip_redraws (stage_window) &&
- G_LIKELY (backend_cogl->can_blit_sub_buffer) &&
+ can_blit_sub_buffer &&
/* NB: a zero width redraw clip == full stage redraw */
stage_cogl->bounding_redraw_clip.width != 0 &&
/* some drivers struggle to get going and produce some junk
* frames when starting up... */
- G_LIKELY (stage_cogl->frame_count > 3))
+ stage_cogl->frame_count > 3)
{
may_use_clipped_redraw = TRUE;
}
@@ -548,11 +545,11 @@ clutter_stage_cogl_set_property (GObject *gobject,
switch (prop_id)
{
case PROP_WRAPPER:
- self->wrapper = CLUTTER_STAGE (g_value_get_object (value));
+ self->wrapper = g_value_get_object (value);
break;
case PROP_BACKEND:
- self->backend = CLUTTER_BACKEND_COGL (g_value_get_object (value));
+ self->backend = g_value_get_object (value);
break;
default:
@@ -568,19 +565,8 @@ _clutter_stage_cogl_class_init (ClutterStageCoglClass *klass)
gobject_class->set_property = clutter_stage_cogl_set_property;
- g_object_class_install_property (gobject_class, PROP_WRAPPER,
- g_param_spec_object ("wrapper",
- "Wrapper",
- "ClutterStage wrapping this native stage",
- CLUTTER_TYPE_STAGE,
- CLUTTER_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (gobject_class, PROP_BACKEND,
- g_param_spec_object ("backend",
- "ClutterBackend",
- "The Clutter backend singleton",
- CLUTTER_TYPE_BACKEND_COGL,
- CLUTTER_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_override_property (gobject_class, PROP_WRAPPER, "wrapper");
+ g_object_class_override_property (gobject_class, PROP_BACKEND, "backend");
}
static void
diff --git a/clutter/cogl/clutter-stage-cogl.h b/clutter/cogl/clutter-stage-cogl.h
index d3a9b9806..e1408246d 100644
--- a/clutter/cogl/clutter-stage-cogl.h
+++ b/clutter/cogl/clutter-stage-cogl.h
@@ -1,8 +1,8 @@
#ifndef __CLUTTER_STAGE_COGL_H__
#define __CLUTTER_STAGE_COGL_H__
-#include <glib-object.h>
#include <cairo.h>
+#include <clutter/clutter-backend.h>
#include <clutter/clutter-stage.h>
#ifdef COGL_HAS_X11_SUPPORT
@@ -11,8 +11,6 @@
#include <X11/Xutil.h>
#endif
-#include "clutter-backend-cogl.h"
-
G_BEGIN_DECLS
#define CLUTTER_TYPE_STAGE_COGL (_clutter_stage_cogl_get_type ())
@@ -30,10 +28,10 @@ struct _ClutterStageCogl
GObject parent_instance;
/* the stage wrapper */
- ClutterStage *wrapper;
+ ClutterStage *wrapper;
/* back pointer to the backend */
- ClutterBackendCogl *backend;
+ ClutterBackend *backend;
CoglOnscreen *onscreen;
diff --git a/clutter/egl/clutter-backend-eglnative.c b/clutter/egl/clutter-backend-eglnative.c
index 573582022..35ba3df39 100644
--- a/clutter/egl/clutter-backend-eglnative.c
+++ b/clutter/egl/clutter-backend-eglnative.c
@@ -44,10 +44,6 @@
#include "clutter-device-manager-evdev.h"
#endif
-#ifdef HAVE_TSLIB
-#include "clutter-event-tslib.h"
-#endif
-
#include "clutter-debug.h"
#include "clutter-private.h"
#include "clutter-main.h"
@@ -57,61 +53,9 @@
#include "clutter-egl.h"
#endif
-#ifdef CLUTTER_EGL_BACKEND_CEX100
-#include "clutter-cex100.h"
-#endif
-
-#ifdef CLUTTER_EGL_BACKEND_CEX100
-static gdl_plane_id_t gdl_plane = GDL_PLANE_ID_UPP_C;
-static guint gdl_n_buffers = CLUTTER_CEX100_TRIPLE_BUFFERING;
-#endif
-
#define clutter_backend_egl_native_get_type _clutter_backend_egl_native_get_type
-G_DEFINE_TYPE (ClutterBackendEglNative, clutter_backend_egl_native, CLUTTER_TYPE_BACKEND_COGL);
-
-static ClutterDeviceManager *
-clutter_backend_egl_native_get_device_manager (ClutterBackend *backend)
-{
- ClutterBackendEglNative *backend_egl_native = CLUTTER_BACKEND_EGL_NATIVE (backend);
-
- if (G_UNLIKELY (backend_egl_native->device_manager == NULL))
- {
-#ifdef HAVE_EVDEV
- backend_egl_native->device_manager =
- g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_EVDEV,
- "backend", backend_egl_native,
- NULL);
-#endif
- }
-
- return backend_egl_native->device_manager;
-}
-
-static void
-clutter_backend_egl_native_init_events (ClutterBackend *backend)
-{
- const char *input_backend = NULL;
-
- input_backend = g_getenv ("CLUTTER_INPUT_BACKEND");
-
-#ifdef HAVE_EVDEV
- if (input_backend != NULL &&
- strcmp (input_backend, CLUTTER_EVDEV_INPUT_BACKEND) == 0)
- _clutter_events_evdev_init (CLUTTER_BACKEND (backend));
- else
-#endif
-#ifdef HAVE_TSLIB
- if (input_backend != NULL &&
- strcmp (input_backend, CLUTTER_TSLIB_INPUT_BACKEND) == 0)
- _clutter_events_tslib_init (CLUTTER_BACKEND (backend));
- else
-#endif
- if (input_backend != NULL)
- g_error ("Unrecognized input backend '%s'", input_backend);
- else
- g_error ("Unknown input backend");
-}
+G_DEFINE_TYPE (ClutterBackendEglNative, clutter_backend_egl_native, CLUTTER_TYPE_BACKEND);
static void
clutter_backend_egl_native_dispose (GObject *gobject)
@@ -124,122 +68,9 @@ clutter_backend_egl_native_dispose (GObject *gobject)
backend_egl_native->event_timer = NULL;
}
-#ifdef HAVE_TSLIB
- _clutter_events_tslib_uninit (CLUTTER_BACKEND (gobject));
-#endif
-
-#ifdef HAVE_EVDEV
- _clutter_events_evdev_uninit (CLUTTER_BACKEND (gobject));
-
- if (backend_egl_native->device_manager != NULL)
- {
- g_object_unref (backend_egl_native->device_manager);
- backend_egl_native->device_manager = NULL;
- }
-#endif
-
G_OBJECT_CLASS (clutter_backend_egl_native_parent_class)->dispose (gobject);
}
-static ClutterStageWindow *
-clutter_backend_egl_native_create_stage (ClutterBackend *backend,
- ClutterStage *wrapper,
- GError **error)
-{
- ClutterBackendEglNative *backend_egl_native = CLUTTER_BACKEND_EGL_NATIVE (backend);
- ClutterStageWindow *stage;
-
- if (G_UNLIKELY (backend_egl_native->stage != NULL))
- {
- g_set_error (error, CLUTTER_INIT_ERROR,
- CLUTTER_INIT_ERROR_BACKEND,
- "The EglNative backend does not support multiple "
- "onscreen windows");
- return backend_egl_native->stage;
- }
-
- stage = g_object_new (CLUTTER_TYPE_STAGE_COGL,
- "backend", backend,
- "wrapper", wrapper,
- NULL);
- backend_egl_native->stage = stage;
-
- return stage;
-}
-
-static gboolean
-clutter_backend_egl_native_create_context (ClutterBackend *backend,
- GError **error)
-{
- CoglSwapChain *swap_chain = NULL;
- CoglOnscreenTemplate *onscreen_template = NULL;
-
- if (backend->cogl_context != NULL)
- return TRUE;
-
- backend->cogl_renderer = cogl_renderer_new ();
- if (!cogl_renderer_connect (backend->cogl_renderer, error))
- goto error;
-
- swap_chain = cogl_swap_chain_new ();
-
-#if defined(CLUTTER_EGL_BACKEND_CEX100) && defined(COGL_HAS_GDL_SUPPORT)
- cogl_swap_chain_set_length (swap_chain, gdl_n_buffers);
-#endif
-
- onscreen_template = cogl_onscreen_template_new (swap_chain);
- cogl_object_unref (swap_chain);
-
- /* XXX: I have some doubts that this is a good design.
- * Conceptually should we be able to check an onscreen_template
- * without more details about the CoglDisplay configuration?
- */
- if (!cogl_renderer_check_onscreen_template (backend->cogl_renderer,
- onscreen_template,
- error))
- goto error;
-
- backend->cogl_display = cogl_display_new (backend->cogl_renderer,
- onscreen_template);
-
-#if defined(CLUTTER_EGL_BACKEND_CEX100) && defined(COGL_HAS_GDL_SUPPORT)
- cogl_gdl_display_set_plane (backend->cogl_display, gdl_plane);
-#endif /* CLUTTER_EGL_BACKEND_CEX100 */
-
- cogl_object_unref (backend->cogl_renderer);
- cogl_object_unref (onscreen_template);
-
- if (!cogl_display_setup (backend->cogl_display, error))
- goto error;
-
- backend->cogl_context = cogl_context_new (backend->cogl_display, error);
- if (backend->cogl_context == NULL)
- goto error;
-
- return TRUE;
-
-error:
- if (backend->cogl_display != NULL)
- {
- cogl_object_unref (backend->cogl_display);
- backend->cogl_display = NULL;
- }
-
- if (onscreen_template != NULL)
- cogl_object_unref (onscreen_template);
-
- if (swap_chain != NULL)
- cogl_object_unref (swap_chain);
-
- if (backend->cogl_renderer != NULL)
- {
- cogl_object_unref (backend->cogl_renderer);
- backend->cogl_renderer = NULL;
- }
-
- return FALSE;
-}
-
static void
clutter_backend_egl_native_class_init (ClutterBackendEglNativeClass *klass)
{
@@ -248,10 +79,7 @@ clutter_backend_egl_native_class_init (ClutterBackendEglNativeClass *klass)
gobject_class->dispose = clutter_backend_egl_native_dispose;
- backend_class->get_device_manager = clutter_backend_egl_native_get_device_manager;
- backend_class->init_events = clutter_backend_egl_native_init_events;
- backend_class->create_stage = clutter_backend_egl_native_create_stage;
- backend_class->create_context = clutter_backend_egl_native_create_context;
+ backend_class->stage_window_type = CLUTTER_TYPE_STAGE_COGL;
}
static void
@@ -260,43 +88,6 @@ clutter_backend_egl_native_init (ClutterBackendEglNative *backend_egl_native)
backend_egl_native->event_timer = g_timer_new ();
}
-#ifdef CLUTTER_EGL_BACKEND_CEX100
-/**
- * clutter_cex100_set_plane:
- * @plane: FIXME
- *
- * FIXME
- *
- * Since:
- */
-void
-clutter_cex100_set_plane (gdl_plane_id_t plane)
-{
- g_return_if_fail (plane >= GDL_PLANE_ID_UPP_A && plane <= GDL_PLANE_ID_UPP_E);
-
- gdl_plane = plane;
-}
-#endif
-
-#ifdef CLUTTER_EGL_BACKEND_CEX100
-/**
- * clutter_cex100_set_plane:
- * @mode: FIXME
- *
- * FIXME
- *
- * Since:
- */
-void
-clutter_cex100_set_buffering_mode (ClutterCex100BufferingMode mode)
-{
- g_return_if_fail (mode == CLUTTER_CEX100_DOUBLE_BUFFERING ||
- mode == CLUTTER_CEX100_TRIPLE_BUFFERING);
-
- gdl_n_buffers = mode;
-}
-#endif
-
/**
* clutter_eglx_display:
*
diff --git a/clutter/egl/clutter-backend-eglnative.h b/clutter/egl/clutter-backend-eglnative.h
index 5156339e9..7c30d4ad6 100644
--- a/clutter/egl/clutter-backend-eglnative.h
+++ b/clutter/egl/clutter-backend-eglnative.h
@@ -32,7 +32,6 @@
#include <clutter/clutter-device-manager.h>
#include "clutter-backend-private.h"
-#include "cogl/clutter-backend-cogl.h"
G_BEGIN_DECLS
@@ -48,10 +47,7 @@ typedef struct _ClutterBackendEglNativeClass ClutterBackendEglNativeClass;
struct _ClutterBackendEglNative
{
- ClutterBackendCogl parent_instance;
-
- /* main stage singleton */
- ClutterStageWindow *stage;
+ ClutterBackend parent_instance;
/* device manager (ie evdev) */
ClutterDeviceManager *device_manager;
@@ -65,7 +61,7 @@ struct _ClutterBackendEglNative
struct _ClutterBackendEglNativeClass
{
- ClutterBackendCoglClass parent_class;
+ ClutterBackendClass parent_class;
};
GType _clutter_backend_egl_native_get_type (void) G_GNUC_CONST;
diff --git a/clutter/egl/clutter-egl.h b/clutter/egl/clutter-egl.h
index 193290a54..c15cd1556 100644
--- a/clutter/egl/clutter-egl.h
+++ b/clutter/egl/clutter-egl.h
@@ -49,10 +49,6 @@
G_BEGIN_DECLS
-#define CLUTTER_TSLIB_INPUT_BACKEND "tslib"
-#define CLUTTER_EVDEV_INPUT_BACKEND "evdev"
-
-#ifndef CLUTTER_DISABLE_DEPRECATED
/**
* clutter_eglx_display:
*
@@ -79,7 +75,6 @@ EGLDisplay clutter_eglx_display (void);
*/
CLUTTER_DEPRECATED_FOR(clutter_egl_get_egl_display)
EGLDisplay clutter_egl_display (void);
-#endif /* CLUTTER_DISABLE_DEPRECATED */
/**
* clutter_egl_get_egl_display:
diff --git a/clutter/evdev/clutter-device-manager-evdev.c b/clutter/evdev/clutter-device-manager-evdev.c
index edc01bf58..26079f1d2 100644
--- a/clutter/evdev/clutter-device-manager-evdev.c
+++ b/clutter/evdev/clutter-device-manager-evdev.c
@@ -847,20 +847,14 @@ clutter_device_manager_evdev_init (ClutterDeviceManagerEvdev *self)
self->priv = CLUTTER_DEVICE_MANAGER_EVDEV_GET_PRIVATE (self);
}
-/*
- * _clutter_events_evdev_init() and _clutter_events_evdev_uninit() are the two
- * symbol to use the evdev event backend from the EGL backend
- */
-
void
_clutter_events_evdev_init (ClutterBackend *backend)
{
- ClutterDeviceManager *dummy G_GNUC_UNUSED;
-
CLUTTER_NOTE (EVENT, "Initializing evdev backend");
- /* we need to create the device manager here */
- dummy = clutter_device_manager_get_default ();
+ backend->device_manager = g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_EVDEV,
+ "backend", backend,
+ NULL);
}
void
diff --git a/clutter/gdk/clutter-backend-gdk.c b/clutter/gdk/clutter-backend-gdk.c
index e89e01749..00e5599a9 100644
--- a/clutter/gdk/clutter-backend-gdk.c
+++ b/clutter/gdk/clutter-backend-gdk.c
@@ -60,7 +60,7 @@
#include "clutter-private.h"
#define clutter_backend_gdk_get_type _clutter_backend_gdk_get_type
-G_DEFINE_TYPE (ClutterBackendGdk, clutter_backend_gdk, CLUTTER_TYPE_BACKEND_COGL);
+G_DEFINE_TYPE (ClutterBackendGdk, clutter_backend_gdk, CLUTTER_TYPE_BACKEND);
/* global for pre init setup calls */
static GdkDisplay *_foreign_dpy = NULL;
@@ -178,18 +178,31 @@ _clutter_backend_gdk_post_parse (ClutterBackend *backend,
"Gdk Display '%s' opened",
gdk_display_get_name (backend_gdk->display));
- return CLUTTER_BACKEND_CLASS (clutter_backend_gdk_parent_class)->post_parse (backend,
- error);
+ return TRUE;
}
-
static void
-clutter_backend_gdk_init_events (ClutterBackend *backend)
+gdk_event_handler (GdkEvent *event,
+ gpointer user_data)
{
+ clutter_gdk_handle_event (event);
+}
+
+void
+_clutter_backend_gdk_events_init (ClutterBackend *backend)
+{
+ ClutterBackendGdk *backend_gdk = CLUTTER_BACKEND_GDK (backend);
+
CLUTTER_NOTE (EVENT, "initialising the event loop");
+ backend->device_manager =
+ g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_GDK,
+ "backend", backend,
+ "gdk-display", backend_gdk->display,
+ NULL);
+
if (!disable_event_retrieval)
- _clutter_backend_gdk_events_init (backend);
+ gdk_event_handler_set (gdk_event_handler, NULL, NULL);
}
static void
@@ -206,28 +219,19 @@ clutter_backend_gdk_finalize (GObject *gobject)
static void
clutter_backend_gdk_dispose (GObject *gobject)
{
- ClutterBackendGdk *backend_gdk = CLUTTER_BACKEND_GDK (gobject);
- ClutterStageManager *stage_manager;
-
- CLUTTER_NOTE (BACKEND, "Disposing the of stages");
- stage_manager = clutter_stage_manager_get_default ();
-
- g_object_unref (stage_manager);
-
- CLUTTER_NOTE (BACKEND, "Removing the event source");
- _clutter_backend_gdk_events_uninit (CLUTTER_BACKEND (backend_gdk));
-
G_OBJECT_CLASS (clutter_backend_gdk_parent_class)->dispose (gobject);
}
static ClutterFeatureFlags
clutter_backend_gdk_get_features (ClutterBackend *backend)
{
- ClutterFeatureFlags flags = CLUTTER_FEATURE_STAGE_USER_RESIZE | CLUTTER_FEATURE_STAGE_CURSOR;
+ ClutterBackendClass *parent_class;
- flags |= CLUTTER_BACKEND_CLASS (clutter_backend_gdk_parent_class)->get_features (backend);
+ parent_class = CLUTTER_BACKEND_CLASS (clutter_backend_gdk_parent_class);
- return flags;
+ return parent_class->get_features (backend)
+ | CLUTTER_FEATURE_STAGE_USER_RESIZE
+ | CLUTTER_FEATURE_STAGE_CURSOR;
}
static void
@@ -253,41 +257,19 @@ clutter_backend_gdk_free_event_data (ClutterBackend *backend,
gdk_event_free (gdk_event);
}
-static ClutterDeviceManager *
-clutter_backend_gdk_get_device_manager (ClutterBackend *backend)
+static CoglRenderer *
+clutter_backend_gdk_get_renderer (ClutterBackend *backend,
+ GError **error)
{
ClutterBackendGdk *backend_gdk = CLUTTER_BACKEND_GDK (backend);
-
- if (G_UNLIKELY (backend_gdk->device_manager == NULL))
- {
- backend_gdk->device_manager = g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_GDK,
- "backend", backend_gdk,
- "gdk-display", backend_gdk->display,
- NULL);
- }
-
- return backend_gdk->device_manager;
-}
-
-static gboolean
-clutter_backend_gdk_create_context (ClutterBackend *backend,
- GError **error)
-{
- ClutterBackendGdk *backend_gdk = CLUTTER_BACKEND_GDK (backend);
- CoglSwapChain *swap_chain = NULL;
- CoglOnscreenTemplate *onscreen_template = NULL;
- GdkVisual *rgba_visual = NULL;
-
- if (backend->cogl_context != NULL)
- return TRUE;
-
- backend->cogl_renderer = cogl_renderer_new ();
+ CoglRenderer *renderer = cogl_renderer_new ();
#if defined(GDK_WINDOWING_X11) && defined(COGL_HAS_XLIB_SUPPORT)
if (GDK_IS_X11_DISPLAY (backend_gdk->display))
{
- cogl_xlib_renderer_set_foreign_display (backend->cogl_renderer,
- gdk_x11_display_get_xdisplay (backend_gdk->display));
+ Display *xdisplay = gdk_x11_display_get_xdisplay (backend_gdk->display);
+
+ cogl_xlib_renderer_set_foreign_display (renderer, xdisplay);
}
else
#endif
@@ -302,76 +284,79 @@ clutter_backend_gdk_create_context (ClutterBackend *backend,
{
g_set_error (error, CLUTTER_INIT_ERROR,
CLUTTER_INIT_ERROR_BACKEND,
- "Could not find a suitable CoglWinsys for"
- "a GdkDisplay of type %s", G_OBJECT_TYPE_NAME (backend_gdk->display));
- goto error;
- }
+ _("Could not find a suitable CoglWinsys for a GdkDisplay of type %s"),
+ G_OBJECT_TYPE_NAME (backend_gdk->display));
+ cogl_object_unref (renderer);
+ return NULL;
+ }
- if (!cogl_renderer_connect (backend->cogl_renderer, error))
- goto error;
-
- swap_chain = cogl_swap_chain_new ();
-
- rgba_visual = gdk_screen_get_rgba_visual (backend_gdk->screen);
- cogl_swap_chain_set_has_alpha (swap_chain, rgba_visual != NULL);
-
- onscreen_template = cogl_onscreen_template_new (swap_chain);
- cogl_object_unref (swap_chain);
-
- /* XXX: I have some doubts that this is a good design.
- * Conceptually should we be able to check an onscreen_template
- * without more details about the CoglDisplay configuration?
- */
- if (!cogl_renderer_check_onscreen_template (backend->cogl_renderer,
- onscreen_template,
- error))
- goto error;
+ return renderer;
+}
- backend->cogl_display = cogl_display_new (backend->cogl_renderer,
- onscreen_template);
+static CoglDisplay *
+clutter_backend_gdk_get_display (ClutterBackend *backend,
+ CoglRenderer *renderer,
+ CoglSwapChain *swap_chain,
+ GError **error)
+{
+ ClutterBackendGdk *backend_gdk = CLUTTER_BACKEND_GDK (backend);
+ CoglOnscreenTemplate *onscreen_template;
+ GError *internal_error = NULL;
+ CoglDisplay *display;
+ gboolean has_rgba_visual;
+ gboolean res;
- cogl_object_unref (backend->cogl_renderer);
- cogl_object_unref (onscreen_template);
+ has_rgba_visual = gdk_screen_get_rgba_visual (backend_gdk->screen) == NULL;
- if (!cogl_display_setup (backend->cogl_display, error))
- goto error;
+ CLUTTER_NOTE (BACKEND, "Alpha on Cogl swap chain: %s",
+ has_rgba_visual ? "enabled" : "disabled");
- backend->cogl_context = cogl_context_new (backend->cogl_display, error);
- if (backend->cogl_context == NULL)
- goto error;
+ cogl_swap_chain_set_has_alpha (swap_chain, has_rgba_visual);
- return TRUE;
+ onscreen_template = cogl_onscreen_template_new (swap_chain);
-error:
- if (backend->cogl_display != NULL)
+ res = cogl_renderer_check_onscreen_template (renderer,
+ onscreen_template,
+ &internal_error);
+ if (!res && has_rgba_visual)
{
- cogl_object_unref (backend->cogl_display);
- backend->cogl_display = NULL;
+ CLUTTER_NOTE (BACKEND,
+ "Creation of a context with a ARGB visual failed: %s",
+ internal_error != NULL ? internal_error->message
+ : "Unknown reason");
+
+ g_clear_error (&internal_error);
+
+ /* It's possible that the current renderer doesn't support transparency
+ * in a swap_chain so lets see if we can fallback to not having any
+ * transparency...
+ *
+ * XXX: It might be nice to have a CoglRenderer feature we could
+ * explicitly check for ahead of time.
+ */
+ cogl_swap_chain_set_has_alpha (swap_chain, FALSE);
+ res = cogl_renderer_check_onscreen_template (renderer,
+ onscreen_template,
+ &internal_error);
}
- if (onscreen_template != NULL)
- cogl_object_unref (onscreen_template);
- if (swap_chain != NULL)
- cogl_object_unref (swap_chain);
-
- if (backend->cogl_renderer != NULL)
+ if (!res)
{
- cogl_object_unref (backend->cogl_renderer);
- backend->cogl_renderer = NULL;
+ g_set_error_literal (error, CLUTTER_INIT_ERROR,
+ CLUTTER_INIT_ERROR_BACKEND,
+ internal_error->message);
+
+ g_error_free (internal_error);
+ cogl_object_unref (onscreen_template);
+
+ return NULL;
}
- return FALSE;
-}
-static ClutterStageWindow *
-clutter_backend_gdk_create_stage (ClutterBackend *backend,
- ClutterStage *wrapper,
- GError **error)
-{
- return g_object_new (CLUTTER_TYPE_STAGE_GDK,
- "backend", backend,
- "wrapper", wrapper,
- NULL);
+ display = cogl_display_new (renderer, onscreen_template);
+ cogl_object_unref (onscreen_template);
+
+ return display;
}
static void
@@ -383,14 +368,16 @@ clutter_backend_gdk_class_init (ClutterBackendGdkClass *klass)
gobject_class->dispose = clutter_backend_gdk_dispose;
gobject_class->finalize = clutter_backend_gdk_finalize;
+ backend_class->stage_window_type = CLUTTER_TYPE_STAGE_GDK;
+
backend_class->post_parse = _clutter_backend_gdk_post_parse;
- backend_class->init_events = clutter_backend_gdk_init_events;
+
backend_class->get_features = clutter_backend_gdk_get_features;
- backend_class->get_device_manager = clutter_backend_gdk_get_device_manager;
backend_class->copy_event_data = clutter_backend_gdk_copy_event_data;
backend_class->free_event_data = clutter_backend_gdk_free_event_data;
- backend_class->create_context = clutter_backend_gdk_create_context;
- backend_class->create_stage = clutter_backend_gdk_create_stage;
+
+ backend_class->get_renderer = clutter_backend_gdk_get_renderer;
+ backend_class->get_display = clutter_backend_gdk_get_display;
}
static void
diff --git a/clutter/gdk/clutter-backend-gdk.h b/clutter/gdk/clutter-backend-gdk.h
index 73d8de190..fb5411315 100644
--- a/clutter/gdk/clutter-backend-gdk.h
+++ b/clutter/gdk/clutter-backend-gdk.h
@@ -30,7 +30,6 @@
#include "clutter-gdk.h"
#include "clutter-backend-private.h"
-#include "cogl/clutter-backend-cogl.h"
G_BEGIN_DECLS
@@ -46,7 +45,7 @@ typedef struct _ClutterBackendGdkClass ClutterBackendGdkClass;
struct _ClutterBackendGdk
{
- ClutterBackendCogl parent_instance;
+ ClutterBackend parent_instance;
GdkDisplay *display;
GdkScreen *screen;
@@ -56,7 +55,7 @@ struct _ClutterBackendGdk
struct _ClutterBackendGdkClass
{
- ClutterBackendCoglClass parent_class;
+ ClutterBackendClass parent_class;
/* nothing here, for now */
};
@@ -64,9 +63,9 @@ struct _ClutterBackendGdkClass
GType _clutter_backend_gdk_get_type (void) G_GNUC_CONST;
void _clutter_backend_gdk_events_init (ClutterBackend *backend);
-void _clutter_backend_gdk_events_uninit (ClutterBackend *backend);
-void _clutter_backend_gdk_update_setting (ClutterBackendGdk *backend, const gchar *name);
+void _clutter_backend_gdk_update_setting (ClutterBackendGdk *backend,
+ const gchar *name);
G_END_DECLS
diff --git a/clutter/gdk/clutter-event-gdk.c b/clutter/gdk/clutter-event-gdk.c
index 540d7d42a..5d8f1a781 100644
--- a/clutter/gdk/clutter-event-gdk.c
+++ b/clutter/gdk/clutter-event-gdk.c
@@ -43,27 +43,6 @@
#include <glib.h>
-static void
-gdk_event_handler (GdkEvent *event,
- gpointer user_data)
-{
- clutter_gdk_handle_event (event);
-}
-
-void
-_clutter_backend_gdk_events_init (ClutterBackend *backend)
-{
- gdk_event_handler_set (gdk_event_handler, NULL, NULL);
-
- CLUTTER_NOTE (EVENT, "GDK event handler set");
-}
-
-void
-_clutter_backend_gdk_events_uninit (ClutterBackend *backend)
-{
- gdk_event_handler_set (NULL, NULL, NULL);
-}
-
/**
* clutter_gdk_handle_event:
* @event: a #GdkEvent
diff --git a/clutter/osx/clutter-backend-osx.c b/clutter/osx/clutter-backend-osx.c
index 9590724da..be7d75e39 100644
--- a/clutter/osx/clutter-backend-osx.c
+++ b/clutter/osx/clutter-backend-osx.c
@@ -28,6 +28,7 @@
#include "clutter-device-manager-osx.h"
#include "clutter-shader.h"
#include "clutter-stage-osx.h"
+#include "clutter-event-loop-osx.h"
#include "clutter-debug.h"
#include "clutter-private.h"
@@ -37,6 +38,8 @@
#import <AppKit/AppKit.h>
+#define clutter_backend_osx_get_type _clutter_backend_osx_get_type
+
G_DEFINE_TYPE (ClutterBackendOSX, clutter_backend_osx, CLUTTER_TYPE_BACKEND)
/*************************************************************************/
@@ -68,52 +71,12 @@ clutter_backend_osx_post_parse (ClutterBackend *backend,
static ClutterFeatureFlags
clutter_backend_osx_get_features (ClutterBackend *backend)
{
- return CLUTTER_FEATURE_STAGE_MULTIPLE|CLUTTER_FEATURE_STAGE_USER_RESIZE;
-}
-
-static ClutterStageWindow*
-clutter_backend_osx_create_stage (ClutterBackend *backend,
- ClutterStage *wrapper,
- GError **error)
-{
- ClutterStageWindow *impl;
-
- CLUTTER_OSX_POOL_ALLOC();
-
- impl = _clutter_stage_osx_new (backend, wrapper);
-
- CLUTTER_NOTE (BACKEND, "create_stage: wrapper=%p - impl=%p",
- wrapper,
- impl);
-
- CLUTTER_OSX_POOL_RELEASE();
-
- return impl;
+ return CLUTTER_FEATURE_STAGE_MULTIPLE
+ | CLUTTER_FEATURE_STAGE_USER_RESIZE;
}
-static inline void
-clutter_backend_osx_create_device_manager (ClutterBackendOSX *backend_osx)
-{
- if (backend_osx->device_manager != NULL)
- return;
-
- backend_osx->device_manager = g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_OSX,
- "backend", CLUTTER_BACKEND(backend_osx),
- NULL);
-}
-
-static ClutterDeviceManager *
-clutter_backend_osx_get_device_manager (ClutterBackend *backend)
-{
- ClutterBackendOSX *backend_osx = CLUTTER_BACKEND_OSX (backend);
-
- clutter_backend_osx_create_device_manager (backend_osx);
-
- return backend_osx->device_manager;
-}
-
-static void
-clutter_backend_osx_init_events (ClutterBackend *backend)
+void
+_clutter_backend_osx_events_init (ClutterBackend *backend)
{
ClutterBackendOSX *backend_osx = CLUTTER_BACKEND_OSX (backend);
@@ -122,8 +85,12 @@ clutter_backend_osx_init_events (ClutterBackend *backend)
CLUTTER_NOTE (BACKEND, "init_events");
- clutter_backend_osx_create_device_manager (backend_osx);
- _clutter_events_osx_init ();
+ backend->device_manager = backend_osx->device_manager =
+ g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_OSX,
+ "backend", CLUTTER_BACKEND(backend_osx),
+ NULL);
+
+ _clutter_osx_event_loop_init ();
}
static gboolean
@@ -141,7 +108,7 @@ clutter_backend_osx_create_context (ClutterBackend *backend,
*/
NSOpenGLPixelFormatAttribute attrs[] = {
NSOpenGLPFADoubleBuffer,
- NSOpenGLPFADepthSize, 24,
+ NSOpenGLPFADepthSize, 32,
NSOpenGLPFAStencilSize, 8,
0
};
@@ -188,6 +155,7 @@ clutter_backend_osx_ensure_context (ClutterBackend *backend,
g_assert (CLUTTER_IS_STAGE_OSX (impl));
stage_osx = CLUTTER_STAGE_OSX (impl);
+ [backend_osx->context clearDrawable];
[backend_osx->context setView:stage_osx->view];
[backend_osx->context makeCurrentContext];
}
@@ -245,11 +213,10 @@ clutter_backend_osx_class_init (ClutterBackendOSXClass *klass)
object_class->dispose = clutter_backend_osx_dispose;
+ backend_class->stage_window_type = CLUTTER_TYPE_STAGE_OSX;
+
backend_class->post_parse = clutter_backend_osx_post_parse;
backend_class->get_features = clutter_backend_osx_get_features;
- backend_class->create_stage = clutter_backend_osx_create_stage;
backend_class->create_context = clutter_backend_osx_create_context;
backend_class->ensure_context = clutter_backend_osx_ensure_context;
- backend_class->init_events = clutter_backend_osx_init_events;
- backend_class->get_device_manager = clutter_backend_osx_get_device_manager;
}
diff --git a/clutter/osx/clutter-backend-osx.h b/clutter/osx/clutter-backend-osx.h
index 8651bbcf5..4e0cf6706 100644
--- a/clutter/osx/clutter-backend-osx.h
+++ b/clutter/osx/clutter-backend-osx.h
@@ -30,7 +30,7 @@
G_BEGIN_DECLS
-#define CLUTTER_TYPE_BACKEND_OSX (clutter_backend_osx_get_type())
+#define CLUTTER_TYPE_BACKEND_OSX (_clutter_backend_osx_get_type())
#define CLUTTER_BACKEND_OSX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),CLUTTER_TYPE_BACKEND_OSX,ClutterBackendOSX))
#define CLUTTER_BACKEND_OSX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),CLUTTER_TYPE_BACKEND_OSX,ClutterBackend))
#define CLUTTER_IS_BACKEND_OSX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),CLUTTER_TYPE_BACKEND_OSX))
@@ -54,7 +54,9 @@ struct _ClutterBackendOSXClass
ClutterBackendClass parent_class;
};
-GType clutter_backend_osx_get_type (void) G_GNUC_CONST;
+GType _clutter_backend_osx_get_type (void) G_GNUC_CONST;
+
+void _clutter_backend_osx_events_init (ClutterBackend *backend);
G_END_DECLS
diff --git a/clutter/osx/clutter-event-osx.c b/clutter/osx/clutter-event-osx.c
index 9f5c9330d..6ba14f607 100644
--- a/clutter/osx/clutter-event-osx.c
+++ b/clutter/osx/clutter-event-osx.c
@@ -38,8 +38,6 @@
#include "clutter-private.h"
#include "clutter-stage-private.h"
-#include "clutter-event-loop-osx.h"
-
#define WHEEL_DELTA 1
/*************************************************************************/
@@ -491,15 +489,3 @@ _clutter_event_osx_put (NSEvent *nsevent,
else
clutter_event_free (event);
}
-
-void
-_clutter_events_osx_init (void)
-{
- _clutter_osx_event_loop_init ();
-}
-
-void
-_clutter_events_osx_uninit (void)
-{
- g_assert_not_reached ();
-}
diff --git a/clutter/osx/clutter-stage-osx.c b/clutter/osx/clutter-stage-osx.c
index f19dbfcb8..c93c066c4 100644
--- a/clutter/osx/clutter-stage-osx.c
+++ b/clutter/osx/clutter-stage-osx.c
@@ -32,6 +32,14 @@
#import <AppKit/AppKit.h>
+enum
+{
+ PROP_0,
+
+ PROP_BACKEND,
+ PROP_WRAPPER
+};
+
static void clutter_stage_window_iface_init (ClutterStageWindowIface *iface);
#define clutter_stage_osx_get_type _clutter_stage_osx_get_type
@@ -120,7 +128,7 @@ clutter_stage_osx_get_wrapper (ClutterStageWindow *stage_window);
- (NSSize) windowWillResize:(NSWindow *) sender toSize:(NSSize) frameSize
{
- if ( clutter_stage_get_user_resizable (self->stage_osx->wrapper) )
+ if (clutter_stage_get_user_resizable (self->stage_osx->wrapper))
{
guint min_width, min_height;
clutter_stage_get_minimum_size (self->stage_osx->wrapper,
@@ -135,7 +143,7 @@ clutter_stage_osx_get_wrapper (ClutterStageWindow *stage_window);
- (void)windowDidChangeScreen:(NSNotification *)notification
{
- clutter_stage_ensure_redraw (CLUTTER_STAGE(self->stage_osx->wrapper));
+ clutter_stage_ensure_redraw (CLUTTER_STAGE (self->stage_osx->wrapper));
}
@end
@@ -195,8 +203,8 @@ clutter_stage_osx_get_wrapper (ClutterStageWindow *stage_window);
stage_osx->requisition_width = [self bounds].size.width;
stage_osx->requisition_height = [self bounds].size.height;
clutter_actor_set_size (CLUTTER_ACTOR (self->stage_osx->wrapper),
- (int)[self bounds].size.width,
- (int)[self bounds].size.height);
+ stage_osx->requisition_width,
+ stage_osx->requisition_height);
[self removeTrackingRect:tracking_rect];
tracking_rect = [self addTrackingRect:[self bounds]
@@ -602,30 +610,41 @@ clutter_stage_window_iface_init (ClutterStageWindowIface *iface)
}
/*************************************************************************/
-ClutterStageWindow *
-_clutter_stage_osx_new (ClutterBackend *backend,
- ClutterStage *wrapper)
+static void
+clutter_stage_osx_init (ClutterStageOSX *self)
{
- ClutterStageOSX *self;
+ self->requisition_width = 640;
+ self->requisition_height = 480;
+ self->acceptFocus = TRUE;
- self = g_object_new (CLUTTER_TYPE_STAGE_OSX, NULL);
- self->backend = backend;
- self->wrapper = wrapper;
self->isHiding = false;
self->haveRealized = false;
self->view = NULL;
self->window = NULL;
-
- return CLUTTER_STAGE_WINDOW(self);
}
-/*************************************************************************/
static void
-clutter_stage_osx_init (ClutterStageOSX *self)
+clutter_stage_osx_set_property (GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- self->requisition_width = 640;
- self->requisition_height = 480;
- self->acceptFocus = TRUE;
+ ClutterStageOSX *self = CLUTTER_STAGE_OSX (gobject);
+
+ switch (prop_id)
+ {
+ case PROP_BACKEND:
+ self->backend = g_value_get_object (value);
+ break;
+
+ case PROP_WRAPPER:
+ self->wrapper = g_value_get_object (value);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+ break;
+ }
}
static void
@@ -645,6 +664,10 @@ clutter_stage_osx_class_init (ClutterStageOSXClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->set_property = clutter_stage_osx_set_property;
gobject_class->finalize = clutter_stage_osx_finalize;
gobject_class->dispose = clutter_stage_osx_dispose;
+
+ g_object_class_override_property (gobject_class, PROP_BACKEND, "backend");
+ g_object_class_override_property (gobject_class, PROP_WRAPPER, "wrapper");
}
diff --git a/clutter/osx/clutter-stage-osx.h b/clutter/osx/clutter-stage-osx.h
index 6c4bad7b2..be1f338bd 100644
--- a/clutter/osx/clutter-stage-osx.h
+++ b/clutter/osx/clutter-stage-osx.h
@@ -82,9 +82,6 @@ struct _ClutterStageOSXClass
GType _clutter_stage_osx_get_type (void) G_GNUC_CONST;
-ClutterStageWindow * _clutter_stage_osx_new (ClutterBackend *backend,
- ClutterStage *wrapper);
-
G_END_DECLS
#endif /* __CLUTTER_STAGE_OSX_H__ */
diff --git a/clutter/wayland/clutter-backend-wayland.c b/clutter/wayland/clutter-backend-wayland.c
index 361de4e48..4ab31a906 100644
--- a/clutter/wayland/clutter-backend-wayland.c
+++ b/clutter/wayland/clutter-backend-wayland.c
@@ -485,12 +485,6 @@ clutter_backend_wayland_create_context (ClutterBackend *backend,
}
static void
-clutter_backend_wayland_ensure_context (ClutterBackend *backend,
- ClutterStage *stage)
-{
-}
-
-static void
clutter_backend_wayland_redraw (ClutterBackend *backend,
ClutterStage *stage)
{
@@ -506,11 +500,6 @@ clutter_backend_wayland_redraw (ClutterBackend *backend,
}
static void
-clutter_backend_wayland_init_events (ClutterBackend *backend)
-{
-}
-
-static void
clutter_backend_wayland_finalize (GObject *gobject)
{
if (backend_singleton)
@@ -603,24 +592,6 @@ clutter_backend_wayland_get_features (ClutterBackend *backend)
return flags;
}
-static ClutterStageWindow *
-clutter_backend_wayland_create_stage (ClutterBackend *backend,
- ClutterStage *wrapper,
- GError **error)
-{
- ClutterBackendWayland *backend_wayland = CLUTTER_BACKEND_WAYLAND (backend);
- ClutterStageWindow *stage;
- ClutterStageWayland *stage_wayland;
-
- stage = g_object_new (CLUTTER_TYPE_STAGE_WAYLAND, NULL);
-
- stage_wayland = CLUTTER_STAGE_WAYLAND (stage);
- stage_wayland->backend = backend_wayland;
- stage_wayland->wrapper = wrapper;
-
- return stage;
-}
-
static void
_clutter_backend_wayland_class_init (ClutterBackendWaylandClass *klass)
{
@@ -631,13 +602,12 @@ _clutter_backend_wayland_class_init (ClutterBackendWaylandClass *klass)
gobject_class->dispose = clutter_backend_wayland_dispose;
gobject_class->finalize = clutter_backend_wayland_finalize;
+ backend_class->stage_window_type = CLUTTER_TYPE_STAGE_WAYLAND;
+
backend_class->pre_parse = clutter_backend_wayland_pre_parse;
backend_class->post_parse = clutter_backend_wayland_post_parse;
backend_class->get_features = clutter_backend_wayland_get_features;
- backend_class->init_events = clutter_backend_wayland_init_events;
- backend_class->create_stage = clutter_backend_wayland_create_stage;
backend_class->create_context = clutter_backend_wayland_create_context;
- backend_class->ensure_context = clutter_backend_wayland_ensure_context;
backend_class->redraw = clutter_backend_wayland_redraw;
}
diff --git a/clutter/wayland/clutter-stage-wayland.c b/clutter/wayland/clutter-stage-wayland.c
index 427685155..022745ab9 100644
--- a/clutter/wayland/clutter-stage-wayland.c
+++ b/clutter/wayland/clutter-stage-wayland.c
@@ -58,6 +58,14 @@ wayland_swap_buffers (ClutterStageWayland *stage_wayland);
static void clutter_stage_window_iface_init (ClutterStageWindowIface *iface);
+enum
+{
+ PROP_0,
+
+ PROP_BACKEND,
+ PROP_WRAPPER
+};
+
G_DEFINE_TYPE_WITH_CODE (ClutterStageWayland,
_clutter_stage_wayland,
G_TYPE_OBJECT,
@@ -428,8 +436,37 @@ clutter_stage_window_iface_init (ClutterStageWindowIface *iface)
}
static void
+clutter_stage_wayland_set_property (GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ ClutterStageWayland *self = CLUTTER_STAGE_WAYLAND (gobject);
+
+ switch (prop_id)
+ {
+ case PROP_BACKEND:
+ self->backend = g_value_get_object (value);
+ break;
+
+ case PROP_WRAPPER:
+ self->wrapper = g_value_get_object (value);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+ }
+}
+
+static void
_clutter_stage_wayland_class_init (ClutterStageWaylandClass *klass)
{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->set_property = clutter_stage_wayland_set_property;
+
+ g_object_class_override_property (gobject_class, PROP_BACKEND, "backend");
+ g_object_class_override_property (gobject_class, PROP_WRAPPER, "wrapper");
}
static void
diff --git a/clutter/win32/clutter-backend-win32.c b/clutter/win32/clutter-backend-win32.c
index c8fb092f3..10ab1dea5 100644
--- a/clutter/win32/clutter-backend-win32.c
+++ b/clutter/win32/clutter-backend-win32.c
@@ -49,34 +49,11 @@ typedef int (WINAPI * SwapIntervalProc) (int interval);
/* singleton object */
static ClutterBackendWin32 *backend_singleton = NULL;
-static gchar *clutter_vblank_name = NULL;
-
static HINSTANCE clutter_hinst = NULL;
/* various flags corresponding to pre init setup calls */
static gboolean _no_event_retrieval = FALSE;
-const gchar *
-_clutter_backend_win32_get_vblank (void)
-{
- if (clutter_vblank_name && strcmp (clutter_vblank_name, "0") == 0)
- return "none";
- else
- return clutter_vblank_name;
-}
-
-gboolean
-clutter_backend_win32_pre_parse (ClutterBackend *backend,
- GError **error)
-{
- const gchar *env_string;
-
- if ((env_string = g_getenv ("CLUTTER_VBLANK")))
- clutter_vblank_name = g_strdup (env_string);
-
- return TRUE;
-}
-
static void
clutter_backend_win32_init_events (ClutterBackend *backend)
{
@@ -84,7 +61,7 @@ clutter_backend_win32_init_events (ClutterBackend *backend)
CLUTTER_NOTE (EVENT, "initialising the event loop");
- backend_win32->device_manager =
+ backend->device_manager =
g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_WIN32,
"backend", backend_win32,
NULL);
@@ -185,137 +162,12 @@ ClutterFeatureFlags
clutter_backend_win32_get_features (ClutterBackend *backend)
{
ClutterBackendClass *parent_class;
- ClutterFeatureFlags flags;
parent_class = CLUTTER_BACKEND_CLASS (clutter_backend_win32_parent_class);
- flags = CLUTTER_FEATURE_STAGE_USER_RESIZE | CLUTTER_FEATURE_STAGE_CURSOR;
-
- if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_MULTIPLE_ONSCREEN))
- {
- CLUTTER_NOTE (BACKEND, "Cogl supports multiple onscreen framebuffers");
- flags |= CLUTTER_FEATURE_STAGE_MULTIPLE;
- }
- else
- {
- CLUTTER_NOTE (BACKEND, "Cogl only supports one onscreen framebuffer");
- flags |= CLUTTER_FEATURE_STAGE_STATIC;
- }
-
- if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_THROTTLE))
- {
- CLUTTER_NOTE (BACKEND, "Cogl supports swap buffers throttling");
- flags |= CLUTTER_FEATURE_SYNC_TO_VBLANK;
- }
- else
- CLUTTER_NOTE (BACKEND, "Cogl doesn't support swap buffers throttling");
-
- CLUTTER_NOTE (BACKEND, "backend features checked");
-
- return flags;
-}
-
-static gboolean
-clutter_backend_win32_create_context (ClutterBackend *backend,
- GError **error)
-{
- CoglSwapChain *swap_chain;
- CoglOnscreenTemplate *onscreen_template;
-
- if (backend->cogl_context)
- return TRUE;
-
- backend->cogl_renderer = cogl_renderer_new ();
- if (!cogl_renderer_connect (backend->cogl_renderer, error))
- goto error;
-
- swap_chain = cogl_swap_chain_new ();
-
- onscreen_template = cogl_onscreen_template_new (swap_chain);
- cogl_object_unref (swap_chain);
-
- if (!cogl_renderer_check_onscreen_template (backend->cogl_renderer,
- onscreen_template,
- error))
- goto error;
-
- backend->cogl_display = cogl_display_new (backend->cogl_renderer,
- onscreen_template);
- cogl_object_unref (backend->cogl_renderer);
- cogl_object_unref (onscreen_template);
-
- if (!cogl_display_setup (backend->cogl_display, error))
- goto error;
-
- backend->cogl_context = cogl_context_new (backend->cogl_display, error);
- if (!backend->cogl_context)
- goto error;
-
- return TRUE;
-
-error:
- if (backend->cogl_display)
- {
- cogl_object_unref (backend->cogl_display);
- backend->cogl_display = NULL;
- }
-
- if (onscreen_template)
- cogl_object_unref (onscreen_template);
- if (swap_chain)
- cogl_object_unref (swap_chain);
-
- if (backend->cogl_renderer)
- {
- cogl_object_unref (backend->cogl_renderer);
- backend->cogl_renderer = NULL;
- }
- return FALSE;
-}
-
-static void
-clutter_backend_win32_ensure_context (ClutterBackend *backend,
- ClutterStage *stage)
-{
- ClutterStageWin32 *stage_win32 =
- CLUTTER_STAGE_WIN32 (_clutter_stage_get_window (stage));
-
- cogl_set_framebuffer (COGL_FRAMEBUFFER (stage_win32->onscreen));
-}
-
-static ClutterStageWindow *
-clutter_backend_win32_create_stage (ClutterBackend *backend,
- ClutterStage *wrapper,
- GError **error)
-{
- ClutterBackendWin32 *backend_win32 = CLUTTER_BACKEND_WIN32 (backend);
- ClutterStageWin32 *stage_win32;
- ClutterStageWindow *stage;
-
- stage = g_object_new (CLUTTER_TYPE_STAGE_WIN32, NULL);
-
- /* copy backend data into the stage */
- stage_win32 = CLUTTER_STAGE_WIN32 (stage);
- stage_win32->backend = backend_win32;
- stage_win32->wrapper = wrapper;
-
- return stage;
-}
-
-static ClutterDeviceManager *
-clutter_backend_win32_get_device_manager (ClutterBackend *backend)
-{
- ClutterBackendWin32 *backend_win32 = CLUTTER_BACKEND_WIN32 (backend);
-
- if (G_UNLIKELY (backend_win32->device_manager == NULL))
- {
- backend_win32->device_manager =
- g_object_new (CLUTTER_TYPE_DEVICE_MANAGER_WIN32,
- "backend", backend_win32,
- NULL);
- }
-
- return backend_win32->device_manager;
+ return parent_class->get_features (backend)
+ | CLUTTER_FEATURE_STAGE_USER_RESIZE
+ | CLUTTER_FEATURE_STAGE_CURSOR;
}
/**
@@ -351,14 +203,11 @@ clutter_backend_win32_class_init (ClutterBackendWin32Class *klass)
gobject_class->dispose = clutter_backend_win32_dispose;
gobject_class->finalize = clutter_backend_win32_finalize;
- backend_class->pre_parse = clutter_backend_win32_pre_parse;
- backend_class->init_events = clutter_backend_win32_init_events;
- backend_class->create_stage = clutter_backend_win32_create_stage;
- backend_class->add_options = clutter_backend_win32_add_options;
- backend_class->get_features = clutter_backend_win32_get_features;
- backend_class->create_context = clutter_backend_win32_create_context;
- backend_class->ensure_context = clutter_backend_win32_ensure_context;
- backend_class->get_device_manager = clutter_backend_win32_get_device_manager;
+ backend_class->stage_window_type = CLUTTER_TYPE_STAGE_WIN32;
+
+ backend_class->init_events = clutter_backend_win32_init_events;
+ backend_class->add_options = clutter_backend_win32_add_options;
+ backend_class->get_features = clutter_backend_win32_get_features;
}
static void
diff --git a/clutter/win32/clutter-backend-win32.h b/clutter/win32/clutter-backend-win32.h
index 2bd365b74..da5ac9c17 100644
--- a/clutter/win32/clutter-backend-win32.h
+++ b/clutter/win32/clutter-backend-win32.h
@@ -72,8 +72,6 @@ clutter_backend_win32_get_features (ClutterBackend *backend);
HCURSOR _clutter_backend_win32_get_invisible_cursor (ClutterBackend *backend);
-const gchar *_clutter_backend_win32_get_vblank (void);
-
G_END_DECLS
#endif /* __CLUTTER_BACKEND_WIN32_H__ */
diff --git a/clutter/win32/clutter-stage-win32.c b/clutter/win32/clutter-stage-win32.c
index b82c824db..e89c81769 100644
--- a/clutter/win32/clutter-stage-win32.c
+++ b/clutter/win32/clutter-stage-win32.c
@@ -42,6 +42,14 @@
static void clutter_stage_window_iface_init (ClutterStageWindowIface *iface);
+enum
+{
+ PROP_0,
+
+ PROP_BACKEND,
+ PROP_WRAPPER
+};
+
G_DEFINE_TYPE_WITH_CODE (ClutterStageWin32,
clutter_stage_win32,
G_TYPE_OBJECT,
@@ -398,7 +406,6 @@ clutter_stage_win32_realize (ClutterStageWindow *stage_window)
gfloat width;
gfloat height;
GError *error = NULL;
- const char *clutter_vblank;
CLUTTER_NOTE (MISC, "Realizing main stage");
@@ -470,9 +477,8 @@ clutter_stage_win32_realize (ClutterStageWindow *stage_window)
cogl_win32_onscreen_set_foreign_window (stage_win32->onscreen,
stage_win32->hwnd);
- clutter_vblank = _clutter_backend_win32_get_vblank ();
- if (clutter_vblank && strcmp (clutter_vblank, "none") == 0)
- cogl_onscreen_set_swap_throttled (stage_win32->onscreen, FALSE);
+ cogl_onscreen_set_swap_throttled (stage_win32->onscreen,
+ _clutter_get_sync_to_vblank ());
framebuffer = COGL_FRAMEBUFFER (stage_win32->onscreen);
if (!cogl_framebuffer_allocate (framebuffer, &error))
@@ -538,6 +544,37 @@ clutter_stage_win32_redraw (ClutterStageWindow *stage_window)
cogl_framebuffer_swap_buffers (COGL_FRAMEBUFFER (stage_win32->onscreen));
}
+static CoglFramebuffer *
+clutter_stage_win32_get_active_framebuffer (ClutterStageWindow *stage_window)
+{
+ ClutterStageWin32 *stage_win32 = CLUTTER_STAGE_WIN32 (stage_window);
+
+ return COGL_FRAMEBUFFER (stage_win32->onscreen);
+}
+
+static void
+clutter_stage_win32_set_property (GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ ClutterStageWin32 *self = CLUTTER_STAGE_WIN32 (gobject);
+
+ switch (prop_id)
+ {
+ case PROP_BACKEND:
+ self->backend = g_value_get_object (value);
+ break;
+
+ case PROP_WRAPPER:
+ self->wrapper = g_value_get_object (value);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+ }
+}
+
static void
clutter_stage_win32_dispose (GObject *gobject)
{
@@ -563,7 +600,11 @@ clutter_stage_win32_class_init (ClutterStageWin32Class *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->set_property = clutter_stage_win32_set_property;
gobject_class->dispose = clutter_stage_win32_dispose;
+
+ g_object_class_override_property (gobject_class, PROP_BACKEND, "backend");
+ g_object_class_override_property (gobject_class, PROP_WRAPPER, "wrapper");
}
static void
@@ -598,6 +639,7 @@ clutter_stage_window_iface_init (ClutterStageWindowIface *iface)
iface->realize = clutter_stage_win32_realize;
iface->unrealize = clutter_stage_win32_unrealize;
iface->redraw = clutter_stage_win32_redraw;
+ iface->get_active_framebuffer = clutter_stage_win32_get_active_framebuffer;
}
/**
diff --git a/clutter/x11/clutter-backend-x11-private.h b/clutter/x11/clutter-backend-x11-private.h
deleted file mode 100644
index 18c53facd..000000000
--- a/clutter/x11/clutter-backend-x11-private.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* An OpenGL based 'interactive canvas' library.
- * Authored By Matthew Allum <mallum@openedhand.com>
- * Copyright (C) 2006-2007 OpenedHand
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- *
- */
-
-#ifndef __CLUTTER_BACKEND_PRIVATE_X11_H__
-#define __CLUTTER_BACKEND_PRIVATE_X11_H__
-
-
-G_BEGIN_DECLS
-
-void _clutter_backend_x11_events_init (ClutterBackend *backend);
-void _clutter_backend_x11_events_uninit (ClutterBackend *backend);
-
-G_END_DECLS
-
-#endif
diff --git a/clutter/x11/clutter-backend-x11.c b/clutter/x11/clutter-backend-x11.c
index 97b77da9b..acafccbbb 100644
--- a/clutter/x11/clutter-backend-x11.c
+++ b/clutter/x11/clutter-backend-x11.c
@@ -70,7 +70,7 @@
#define clutter_backend_x11_get_type _clutter_backend_x11_get_type
-G_DEFINE_TYPE (ClutterBackendX11, clutter_backend_x11, CLUTTER_TYPE_BACKEND_COGL);
+G_DEFINE_TYPE (ClutterBackendX11, clutter_backend_x11, CLUTTER_TYPE_BACKEND);
/* atoms; remember to add the code that assigns the atom value to
* the member of the ClutterBackendX11 structure if you add an
@@ -277,6 +277,8 @@ clutter_backend_x11_create_device_manager (ClutterBackendX11 *backend_x11)
}
backend = CLUTTER_BACKEND (backend_x11);
+ backend->device_manager = backend_x11->device_manager;
+
translator = CLUTTER_EVENT_TRANSLATOR (backend_x11->device_manager);
_clutter_backend_add_event_translator (backend, translator);
}
@@ -331,8 +333,7 @@ _clutter_backend_x11_pre_parse (ClutterBackend *backend,
env_string = NULL;
}
- return CLUTTER_BACKEND_CLASS (clutter_backend_x11_parent_class)->pre_parse (backend,
- error);
+ return TRUE;
}
gboolean
@@ -411,12 +412,6 @@ _clutter_backend_x11_post_parse (ClutterBackend *backend,
g_object_set (settings, "font-dpi", (int) dpi * 1024, NULL);
- /* create the device manager */
- clutter_backend_x11_create_device_manager (backend_x11);
-
- /* register keymap */
- clutter_backend_x11_create_keymap (backend_x11);
-
/* create XSETTINGS client */
backend_x11->xsettings =
_clutter_xsettings_client_new (backend_x11->xdpy,
@@ -457,18 +452,49 @@ _clutter_backend_x11_post_parse (ClutterBackend *backend,
(unsigned int) backend_x11->xwin_root,
clutter_backend_get_resolution (backend));
- return CLUTTER_BACKEND_CLASS (clutter_backend_x11_parent_class)->post_parse (backend,
- error);
+ return TRUE;
}
-
-static void
-clutter_backend_x11_init_events (ClutterBackend *backend)
+void
+_clutter_backend_x11_events_init (ClutterBackend *backend)
{
+ ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
+
CLUTTER_NOTE (EVENT, "initialising the event loop");
+ /* the event source is optional */
if (!_no_xevent_retrieval)
- _clutter_backend_x11_events_init (backend);
+ {
+ GSource *source;
+
+ source = _clutter_x11_event_source_new (backend_x11);
+
+ /* default priority for events
+ *
+ * XXX - at some point we'll have a common EventSource API that
+ * is created by the backend, and this code will most likely go
+ * into the default implementation of ClutterBackend
+ */
+ g_source_set_priority (source, CLUTTER_PRIORITY_EVENTS);
+
+ /* attach the source to the default context, and transfer the
+ * ownership to the GMainContext itself
+ */
+ g_source_attach (source, NULL);
+ g_source_unref (source);
+
+ backend_x11->event_source = source;
+ }
+
+ /* create the device manager; we need this because we can effectively
+ * choose between core+XI1 and XI2 input events
+ */
+ clutter_backend_x11_create_device_manager (backend_x11);
+
+ /* register keymap; unless we create a generic Keymap object, I'm
+ * afraid this will have to stay
+ */
+ clutter_backend_x11_create_keymap (backend_x11);
}
static const GOptionEntry entries[] =
@@ -528,17 +554,6 @@ clutter_backend_x11_finalize (GObject *gobject)
static void
clutter_backend_x11_dispose (GObject *gobject)
{
- ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (gobject);
- ClutterStageManager *stage_manager;
-
- CLUTTER_NOTE (BACKEND, "Disposing the of stages");
- stage_manager = clutter_stage_manager_get_default ();
-
- g_object_unref (stage_manager);
-
- CLUTTER_NOTE (BACKEND, "Removing the event source");
- _clutter_backend_x11_events_uninit (CLUTTER_BACKEND (backend_x11));
-
G_OBJECT_CLASS (clutter_backend_x11_parent_class)->dispose (gobject);
}
@@ -576,16 +591,6 @@ clutter_backend_x11_free_event_data (ClutterBackend *backend,
_clutter_event_x11_free (event_x11);
}
-static ClutterDeviceManager *
-clutter_backend_x11_get_device_manager (ClutterBackend *backend)
-{
- ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
-
- clutter_backend_x11_create_device_manager (backend_x11);
-
- return backend_x11->device_manager;
-}
-
static void
update_last_event_time (ClutterBackendX11 *backend_x11,
XEvent *xevent)
@@ -680,40 +685,46 @@ clutter_backend_x11_translate_event (ClutterBackend *backend,
return parent_class->translate_event (backend, native, event);
}
-static gboolean
-clutter_backend_x11_create_context (ClutterBackend *backend,
- GError **error)
+static CoglRenderer *
+clutter_backend_x11_get_renderer (ClutterBackend *backend,
+ GError **error)
{
ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
- CoglOnscreenTemplate *onscreen_template = NULL;
- CoglSwapChain *swap_chain = NULL;
- GError *internal_error = NULL;
- gboolean status;
+ Display *xdisplay = backend_x11->xdpy;
+ CoglRenderer *renderer;
+
+ CLUTTER_NOTE (BACKEND, "Creating a new Xlib renderer");
+
+ renderer = cogl_renderer_new ();
+
+ /* set the display object we're using */
+ cogl_xlib_renderer_set_foreign_display (renderer, xdisplay);
+
+ return renderer;
+}
- if (backend->cogl_context != NULL)
- return TRUE;
+static CoglDisplay *
+clutter_backend_x11_get_display (ClutterBackend *backend,
+ CoglRenderer *renderer,
+ CoglSwapChain *swap_chain,
+ GError **error)
+{
+ CoglOnscreenTemplate *onscreen_template;
+ GError *internal_error = NULL;
+ CoglDisplay *display;
+ gboolean res;
- backend->cogl_renderer = cogl_renderer_new ();
- cogl_xlib_renderer_set_foreign_display (backend->cogl_renderer,
- backend_x11->xdpy);
- if (!cogl_renderer_connect (backend->cogl_renderer, &internal_error))
- goto error;
+ CLUTTER_NOTE (BACKEND, "Alpha on Cogl swap chain: %s",
+ clutter_enable_argb ? "enabled" : "disabled");
- swap_chain = cogl_swap_chain_new ();
cogl_swap_chain_set_has_alpha (swap_chain, clutter_enable_argb);
onscreen_template = cogl_onscreen_template_new (swap_chain);
- cogl_object_unref (swap_chain);
- /* XXX: I have some doubts that this is a good design.
- *
- * Conceptually should we be able to check an onscreen_template
- * without more details about the CoglDisplay configuration?
- */
- status = cogl_renderer_check_onscreen_template (backend->cogl_renderer,
- onscreen_template,
- &internal_error);
- if (!status && clutter_enable_argb)
+ res = cogl_renderer_check_onscreen_template (renderer,
+ onscreen_template,
+ &internal_error);
+ if (!res && clutter_enable_argb)
{
CLUTTER_NOTE (BACKEND,
"Creation of a context with a ARGB visual failed: %s",
@@ -731,61 +742,27 @@ clutter_backend_x11_create_context (ClutterBackend *backend,
*/
clutter_enable_argb = FALSE;
cogl_swap_chain_set_has_alpha (swap_chain, FALSE);
- status = cogl_renderer_check_onscreen_template (backend->cogl_renderer,
- onscreen_template,
- &internal_error);
+ res = cogl_renderer_check_onscreen_template (renderer,
+ onscreen_template,
+ &internal_error);
}
- if (!status)
- goto error;
-
- backend->cogl_display = cogl_display_new (backend->cogl_renderer,
- onscreen_template);
-
- cogl_object_unref (backend->cogl_renderer);
- cogl_object_unref (onscreen_template);
-
- if (!cogl_display_setup (backend->cogl_display, &internal_error))
- goto error;
-
- backend->cogl_context = cogl_context_new (backend->cogl_display,
- &internal_error);
- if (backend->cogl_context == NULL)
- goto error;
-
- return TRUE;
-
-error:
- if (internal_error != NULL)
+ if (!res)
{
- CLUTTER_NOTE (BACKEND, "Backend creation failed: %s",
- internal_error->message);
-
g_set_error_literal (error, CLUTTER_INIT_ERROR,
CLUTTER_INIT_ERROR_BACKEND,
internal_error->message);
+
g_error_free (internal_error);
- }
+ cogl_object_unref (onscreen_template);
- if (backend->cogl_display != NULL)
- {
- cogl_object_unref (backend->cogl_display);
- backend->cogl_display = NULL;
+ return NULL;
}
- if (onscreen_template != NULL)
- cogl_object_unref (onscreen_template);
-
- if (swap_chain != NULL)
- cogl_object_unref (swap_chain);
-
- if (backend->cogl_renderer != NULL)
- {
- cogl_object_unref (backend->cogl_renderer);
- backend->cogl_renderer = NULL;
- }
+ display = cogl_display_new (renderer, onscreen_template);
+ cogl_object_unref (onscreen_template);
- return FALSE;
+ return display;
}
static ClutterStageWindow *
@@ -823,16 +800,19 @@ clutter_backend_x11_class_init (ClutterBackendX11Class *klass)
gobject_class->dispose = clutter_backend_x11_dispose;
gobject_class->finalize = clutter_backend_x11_finalize;
+ backend_class->stage_window_type = CLUTTER_TYPE_STAGE_X11;
+
backend_class->pre_parse = _clutter_backend_x11_pre_parse;
backend_class->post_parse = _clutter_backend_x11_post_parse;
- backend_class->init_events = clutter_backend_x11_init_events;
backend_class->add_options = clutter_backend_x11_add_options;
backend_class->get_features = clutter_backend_x11_get_features;
- backend_class->get_device_manager = clutter_backend_x11_get_device_manager;
+
backend_class->copy_event_data = clutter_backend_x11_copy_event_data;
backend_class->free_event_data = clutter_backend_x11_free_event_data;
backend_class->translate_event = clutter_backend_x11_translate_event;
- backend_class->create_context = clutter_backend_x11_create_context;
+
+ backend_class->get_renderer = clutter_backend_x11_get_renderer;
+ backend_class->get_display = clutter_backend_x11_get_display;
backend_class->create_stage = clutter_backend_x11_create_stage;
}
diff --git a/clutter/x11/clutter-backend-x11.h b/clutter/x11/clutter-backend-x11.h
index 701328577..292273378 100644
--- a/clutter/x11/clutter-backend-x11.h
+++ b/clutter/x11/clutter-backend-x11.h
@@ -31,7 +31,6 @@
#include "clutter-backend-private.h"
#include "clutter-keymap-x11.h"
-#include "cogl/clutter-backend-cogl.h"
#include "xsettings/xsettings-client.h"
@@ -68,7 +67,7 @@ struct _ClutterEventX11
struct _ClutterBackendX11
{
- ClutterBackendCogl parent_instance;
+ ClutterBackend parent_instance;
Display *xdpy;
gchar *display_name;
@@ -113,37 +112,30 @@ struct _ClutterBackendX11
struct _ClutterBackendX11Class
{
- ClutterBackendCoglClass parent_class;
+ ClutterBackendClass parent_class;
};
-void _clutter_backend_x11_events_init (ClutterBackend *backend);
-void _clutter_backend_x11_events_uninit (ClutterBackend *backend);
-
GType _clutter_backend_x11_get_type (void) G_GNUC_CONST;
-/* Private to glx/eglx backends */
-XVisualInfo *
-_clutter_backend_x11_get_visual_info (ClutterBackendX11 *backend_x11);
+void _clutter_backend_x11_events_init (ClutterBackend *backend);
-void
-_clutter_x11_select_events (Window xwin);
+GSource * _clutter_x11_event_source_new (ClutterBackendX11 *backend_x11);
-ClutterEventX11 *
-_clutter_event_x11_new (void);
+/* Private to glx/eglx backends */
+XVisualInfo * _clutter_backend_x11_get_visual_info (ClutterBackendX11 *backend_x11);
-ClutterEventX11 *
-_clutter_event_x11_copy (ClutterEventX11 *event_x11);
+void _clutter_x11_select_events (Window xwin);
-void
-_clutter_event_x11_free (ClutterEventX11 *event_x11);
+ClutterEventX11 * _clutter_event_x11_new (void);
+ClutterEventX11 * _clutter_event_x11_copy (ClutterEventX11 *event_x11);
+void _clutter_event_x11_free (ClutterEventX11 *event_x11);
-gboolean
-_clutter_x11_input_device_translate_screen_coord (ClutterInputDevice *device,
- gint stage_root_x,
- gint stage_root_y,
- guint index_,
- gdouble value,
- gdouble *axis_value);
+gboolean _clutter_x11_input_device_translate_screen_coord (ClutterInputDevice *device,
+ gint stage_root_x,
+ gint stage_root_y,
+ guint index_,
+ gdouble value,
+ gdouble *axis_value);
G_END_DECLS
diff --git a/clutter/x11/clutter-event-x11.c b/clutter/x11/clutter-event-x11.c
index 3842b8716..3af161c2f 100644
--- a/clutter/x11/clutter-event-x11.c
+++ b/clutter/x11/clutter-event-x11.c
@@ -67,7 +67,8 @@ struct _ClutterEventSource
{
GSource source;
- ClutterBackend *backend;
+ ClutterBackendX11 *backend;
+
GPollFD event_poll_fd;
};
@@ -100,8 +101,6 @@ static gboolean clutter_event_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data);
-static GList *event_sources = NULL;
-
static GSourceFuncs event_funcs = {
clutter_event_prepare,
clutter_event_check,
@@ -109,150 +108,33 @@ static GSourceFuncs event_funcs = {
NULL
};
-static GSource *
-clutter_event_source_new (ClutterBackend *backend)
-{
- GSource *source = g_source_new (&event_funcs, sizeof (ClutterEventSource));
- ClutterEventSource *event_source = (ClutterEventSource *) source;
-
- event_source->backend = backend;
-
- return source;
-}
-
-static gboolean
-check_xpending (ClutterBackend *backend)
-{
- return XPending (CLUTTER_BACKEND_X11 (backend)->xdpy);
-}
-
-#if 0
-static gboolean
-xembed_send_message (ClutterBackendX11 *backend_x11,
- Window window,
- long message,
- long detail,
- long data1,
- long data2)
-{
- XEvent ev;
-
- memset (&ev, 0, sizeof (ev));
-
- ev.xclient.type = ClientMessage;
- ev.xclient.window = window;
- ev.xclient.message_type = backend_x11->atom_XEMBED;
- ev.xclient.format = 32;
- ev.xclient.data.l[0] = CurrentTime;
- ev.xclient.data.l[1] = message;
- ev.xclient.data.l[2] = detail;
- ev.xclient.data.l[3] = data1;
- ev.xclient.data.l[4] = data2;
-
- clutter_x11_trap_x_errors ();
-
- XSendEvent (backend_x11->xdpy, window, False, NoEventMask, &ev);
- XSync (backend_x11->xdpy, False);
-
- if (clutter_x11_untrap_x_errors ())
- return False;
-
- return True;
-}
-
-static void
-xembed_set_info (ClutterBackendX11 *backend_x11,
- Window window,
- gint flags)
+GSource *
+_clutter_x11_event_source_new (ClutterBackendX11 *backend_x11)
{
- gint32 list[2];
-
- list[0] = MAX_SUPPORTED_XEMBED_VERSION;
- list[1] = XEMBED_MAPPED;
-
- XChangeProperty (backend_x11->xdpy, window,
- backend_x11->atom_XEMBED_INFO,
- backend_x11->atom_XEMBED_INFO, 32,
- PropModeReplace, (unsigned char *) list, 2);
-}
-#endif
-
-void
-_clutter_backend_x11_events_init (ClutterBackend *backend)
-{
- ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
- GSource *source;
ClutterEventSource *event_source;
int connection_number;
+ GSource *source;
gchar *name;
connection_number = ConnectionNumber (backend_x11->xdpy);
CLUTTER_NOTE (EVENT, "Connection number: %d", connection_number);
- source = backend_x11->event_source = clutter_event_source_new (backend);
+ source = g_source_new (&event_funcs, sizeof (ClutterEventSource));
event_source = (ClutterEventSource *) source;
- g_source_set_priority (source, CLUTTER_PRIORITY_EVENTS);
name = g_strdup_printf ("Clutter X11 Event (connection: %d)",
connection_number);
g_source_set_name (source, name);
g_free (name);
+ event_source->backend = backend_x11;
event_source->event_poll_fd.fd = connection_number;
event_source->event_poll_fd.events = G_IO_IN;
- event_sources = g_list_prepend (event_sources, event_source);
-
g_source_add_poll (source, &event_source->event_poll_fd);
g_source_set_can_recurse (source, TRUE);
- g_source_attach (source, NULL);
-}
-void
-_clutter_backend_x11_events_uninit (ClutterBackend *backend)
-{
- ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
-
- if (backend_x11->event_source)
- {
- CLUTTER_NOTE (EVENT, "Destroying the event source");
-
- event_sources = g_list_remove (event_sources,
- backend_x11->event_source);
-
- g_source_destroy (backend_x11->event_source);
- g_source_unref (backend_x11->event_source);
- backend_x11->event_source = NULL;
- }
-}
-
-static void
-events_queue (ClutterBackend *backend)
-{
- ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
- Display *xdisplay = backend_x11->xdpy;
- ClutterEvent *event;
- XEvent xevent;
-
- while (!clutter_events_pending () && XPending (xdisplay))
- {
- XNextEvent (xdisplay, &xevent);
-
- event = clutter_event_new (CLUTTER_NOTHING);
-
-#ifdef HAVE_XGE
- XGetEventData (xdisplay, &xevent.xcookie);
-#endif
-
- if (_clutter_backend_translate_event (backend, &xevent, event))
- _clutter_event_push (event, FALSE);
- else
- clutter_event_free (event);
-
-#ifdef HAVE_XGE
- XFreeEventData (xdisplay, &xevent.xcookie);
-#endif
- }
+ return source;
}
/**
@@ -357,13 +239,13 @@ static gboolean
clutter_event_prepare (GSource *source,
gint *timeout)
{
- ClutterBackend *backend = ((ClutterEventSource *) source)->backend;
+ ClutterBackendX11 *backend = ((ClutterEventSource *) source)->backend;
gboolean retval;
clutter_threads_enter ();
*timeout = -1;
- retval = (clutter_events_pending () || check_xpending (backend));
+ retval = (clutter_events_pending () || XPending (backend->xdpy));
clutter_threads_leave ();
@@ -374,13 +256,13 @@ static gboolean
clutter_event_check (GSource *source)
{
ClutterEventSource *event_source = (ClutterEventSource *) source;
- ClutterBackend *backend = event_source->backend;
+ ClutterBackendX11 *backend = event_source->backend;
gboolean retval;
clutter_threads_enter ();
if (event_source->event_poll_fd.revents & G_IO_IN)
- retval = (clutter_events_pending () || check_xpending (backend));
+ retval = (clutter_events_pending () || XPending (backend->xdpy));
else
retval = FALSE;
@@ -389,12 +271,41 @@ clutter_event_check (GSource *source)
return retval;
}
+static void
+events_queue (ClutterBackendX11 *backend_x11)
+{
+ ClutterBackend *backend = CLUTTER_BACKEND (backend_x11);
+ Display *xdisplay = backend_x11->xdpy;
+ ClutterEvent *event;
+ XEvent xevent;
+
+ while (!clutter_events_pending () && XPending (xdisplay))
+ {
+ XNextEvent (xdisplay, &xevent);
+
+ event = clutter_event_new (CLUTTER_NOTHING);
+
+#ifdef HAVE_XGE
+ XGetEventData (xdisplay, &xevent.xcookie);
+#endif
+
+ if (_clutter_backend_translate_event (backend, &xevent, event))
+ _clutter_event_push (event, FALSE);
+ else
+ clutter_event_free (event);
+
+#ifdef HAVE_XGE
+ XFreeEventData (xdisplay, &xevent.xcookie);
+#endif
+ }
+}
+
static gboolean
clutter_event_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data)
{
- ClutterBackend *backend = ((ClutterEventSource *) source)->backend;
+ ClutterBackendX11 *backend = ((ClutterEventSource *) source)->backend;
ClutterEvent *event;
clutter_threads_enter ();
diff --git a/clutter/x11/clutter-stage-x11.c b/clutter/x11/clutter-stage-x11.c
index f9ae163a8..7ceb0d532 100644
--- a/clutter/x11/clutter-stage-x11.c
+++ b/clutter/x11/clutter-stage-x11.c
@@ -204,6 +204,8 @@ clutter_stage_x11_get_geometry (ClutterStageWindow *stage_window,
ClutterStageCogl *stage_cogl = CLUTTER_STAGE_COGL (stage_x11);
ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (stage_cogl->backend);
+ geometry->x = geometry->y = 0;
+
/* If we're fullscreen, return the size of the display. */
if ((stage_x11->state & CLUTTER_STAGE_STATE_FULLSCREEN) &&
stage_x11->fullscreening)
@@ -785,10 +787,9 @@ static void
clutter_stage_x11_dispose (GObject *gobject)
{
ClutterEventTranslator *translator = CLUTTER_EVENT_TRANSLATOR (gobject);
- ClutterBackendCogl *backend = CLUTTER_STAGE_COGL (gobject)->backend;
+ ClutterBackend *backend = CLUTTER_STAGE_COGL (gobject)->backend;
- _clutter_backend_remove_event_translator (CLUTTER_BACKEND (backend),
- translator);
+ _clutter_backend_remove_event_translator (backend, translator);
G_OBJECT_CLASS (clutter_stage_x11_parent_class)->dispose (gobject);
}
diff --git a/configure.ac b/configure.ac
index 86b5b6ecf..7bc1cedcc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -192,8 +192,10 @@ dnl ========================================================================
FLAVOUR_LIBS=""
FLAVOUR_CFLAGS=""
CLUTTER_BACKENDS=""
+CLUTTER_INPUT_BACKENDS=""
experimental_backend=no
+experimental_input_backend=no
# base dependencies for core
CLUTTER_BASE_PC_FILES="cogl-1.0 >= $COGL_REQ_VERSION cairo-gobject >= $CAIRO_REQ_VERSION atk >= $ATK_REQ_VERSION pangocairo >= $PANGO_REQ_VERSION cogl-pango-1.0 json-glib-1.0 >= $JSON_GLIB_REQ_VERSION"
@@ -227,6 +229,10 @@ AC_ARG_ENABLE([egl-backend],
[AS_HELP_STRING([--enable-egl-backend=@<:@yes/no@:>@], [Enable the EGL framebuffer backend (default=no)])],
[enable_egl=$enableval],
[enable_egl=no])
+AC_ARG_ENABLE([cex100-backend],
+ [AS_HELP_STRING([--enable-cex100-backend=@<:@yes/no@:>@], [Enable the CEx100 backend (default=no)])],
+ [enable_cex100=$enableval],
+ [enable_cex100=no])
dnl Define default values
AS_IF([test "x$enable_x11" = "xcheck"],
@@ -253,6 +259,7 @@ dnl Per-backend rules
AS_IF([test "x$enable_x11" = "xyes"],
[
CLUTTER_BACKENDS="$CLUTTER_BACKENDS x11"
+ CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS x11"
SUPPORT_X11=1
SUPPORT_GLX=1
@@ -287,6 +294,7 @@ AS_IF([test "x$enable_x11" = "xyes"],
AS_IF([test "x$enable_gdk" = "xyes"],
[
CLUTTER_BACKENDS="$CLUTTER_BACKENDS gdk"
+ CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS gdk"
SUPPORT_GDK=1
SUPPORT_COGL=1
@@ -313,84 +321,55 @@ AS_IF([test "x$enable_wayland" = "xyes"],
AC_DEFINE([HAVE_CLUTTER_WAYLAND], [1], [Have the Wayland backend])
])
-AS_IF([test "x$enable_egl" = "xyes"],
+AS_IF([test "x$enable_cex100" = "xyes"],
[
- CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl"
-
- SUPPORT_EGL=1
- SUPPORT_COGL=1
+ CLUTTER_BACKENDS="$CLUTTER_BACKENDS cex100"
- # if Mesa has support for egl, we can use it as well
- PKG_CHECK_EXISTS([egl],
- [
- BACKEND_PC_FILES="$BACKEND_PC_FILES egl"
- ],
- [])
-
- AC_ARG_WITH([tslib],
- [AS_HELP_STRING([--with-tslib=@<:@yes/no@:>@], [Use TSLib for events (default=no)])],
- [],
- [with_tslib=no])
-
- AC_ARG_WITH([evdev],
- [AS_HELP_STRING([--with-evdev=@<:@yes/no@:>@], [Use evdev for events (default=yes)])],
- [],
- [with_evdev=yes])
+ experimental_backend="yes"
- AC_ARG_WITH([gdl],
- [AS_HELP_STRING([--with-gdl=@<:@yes/no@:>@], [Use libgdl for CE3100/CE4100 support (default=no)])],
- [],
- [with_gdl=no])
+ SUPPORT_COGL=1
+ SUPPORT_EGL_PLATFORM_GDL=1
- AS_IF([test "x$with_tslib" = "xyes"],
- [
- PKG_CHECK_MODULES(TSLIB, [tslib-1.0], [have_tslib=yes], [have_tslib=no])
- AS_IF([test "x$have_tslib" = "xyes"],
- [
- AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling])
- SUPPORT_TSLIB=1
- ])
- ],
- [have_tslib=no])
+ have_gdl=no
+ AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes])
- AS_IF([test "x$with_evdev" = "xyes"],
+ AS_IF([test "x$have_gdl" = "xno"],
[
- PKG_CHECK_MODULES(EVDEV, [gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no])
- AS_IF([test "x$have_evdev" = "xyes"],
- [
- AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling])
- SUPPORT_EVDEV=1
- ])
- ],
- [have_evdev=no])
+ AC_CHECK_HEADERS([CE4100/libgdl.h],
+ [
+ FLAVOUR_CFLAGS="-I/usr/include/CE4100"
+ have_gdl=yes
+ CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/
+ ])
+ ])
- AS_IF([test "x$with_gdl" = "xyes"],
- [
- have_gdl=no
+ AS_IF([test "x$have_gdl" = "xno"],
+ [AC_MSG_ERROR([libgdl.h not found but the CEx100 backend has been explicitly enabled])])
- AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes])
+ AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX)
- AS_IF([test "x$have_gdl" = "xno"],
- [
- AC_CHECK_HEADERS([CE4100/libgdl.h],
- [
- FLAVOUR_CFLAGS="-I/usr/include/CE4100"
- have_gdl=yes
- CLUTTER_CEX100_LIBGDL_PREFIX=CE4100/
- ])
- ])
+ FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl"
- AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX)
+ AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend])
+ AC_DEFINE([CLUTTER_EGL_BACKEND_GENERIC], [1], [Use Generic EGL backend])
+ AC_DEFINE([HAVE_CLUTTER_EGL], [1], [Have the EGL backend])
+ ])
- AS_IF([test "x$have_gdl" = "xno"], [AC_MSG_ERROR([libgdl.h not found])])
+AS_IF([test "x$enable_egl" = "xyes"],
+ [
+ CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl"
- FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl"
+ experimental_backend="yes"
- SUPPORT_EGL_PLATFORM_GDL=1
+ SUPPORT_EGL=1
+ SUPPORT_COGL=1
- AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend])
- ],
- [have_gdl=no])
+ # if Mesa has support for egl, we can use it as well
+ PKG_CHECK_EXISTS([egl],
+ [
+ BACKEND_PC_FILES="$BACKEND_PC_FILES egl"
+ ],
+ [])
FLAVOUR_LIBS="$FLAVOUR_LIBS $TSLIB_LIBS $EVDEV_LIBS"
FLAVOUR_CFLAGS="$FLAVOUR_CFLAGS $TSLIB_CFLAGS $EVDEV_CFLAGS"
@@ -403,6 +382,7 @@ AS_IF([test "x$enable_egl" = "xyes"],
AS_IF([test "x$enable_osx" = "xyes"],
[
CLUTTER_BACKENDS="$CLUTTER_BACKENDS osx"
+ CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS osx"
AC_DEFINE([HAVE_CLUTTER_OSX], [1], [Have the OSX backend])
@@ -414,6 +394,7 @@ AS_IF([test "x$enable_osx" = "xyes"],
AS_IF([test "x$enable_win32" = "xyes"],
[
CLUTTER_BACKENDS="$CLUTTER_BACKENDS win32"
+ CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS win32"
AC_DEFINE([HAVE_CLUTTER_WIN32], [1], [Have the Win32 backend])
@@ -430,6 +411,41 @@ AS_IF([test "x$CLUTTER_BACKENDS" = "x"],
AC_MSG_ERROR([No backend enabled. You need to enable at least one backend.])
])
+# additional input backends
+
+AC_ARG_ENABLE([tslib-input],
+ [AS_HELP_STRING([--enable-tslib-input=@<:@yes/no@:>@], [Enable TSLib for input events (default=no)])],
+ [enable_tslib=$enableval],
+ [enable_tslib=no])
+AC_ARG_ENABLE([evdev-input],
+ [AS_HELP_STRING([--with-evdev=@<:@yes/no@:>@], [Enable evdev for input events (default=no)])],
+ [enable_evdev=$enableval],
+ [enable_evdev=no])
+
+AS_IF([test "x$enable_tslib" = "xyes"],
+ [
+ PKG_CHECK_MODULES(TSLIB, [tslib-1.0], [have_tslib=yes], [have_tslib=no])
+ AS_IF([test "x$have_tslib" = "xyes"],
+ [
+ CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS tslib"
+ experimental_input_backend="yes"
+ AC_DEFINE([HAVE_TSLIB], [1], [Have tslib for touchscreen handling])
+ SUPPORT_TSLIB=1
+ ])
+ ])
+
+AS_IF([test "x$enable_evdev" = "xyes"],
+ [
+ PKG_CHECK_MODULES(EVDEV, [gudev-1.0 xkbcommon], [have_evdev=yes], [have_evdev=no])
+ AS_IF([test "x$have_evdev" = "xyes"],
+ [
+ CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS evdev"
+ experimental_input_backend="yes"
+ AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling])
+ SUPPORT_EVDEV=1
+ ])
+ ])
+
# conditionals for use in automake files...
AM_CONDITIONAL(SUPPORT_GLX, [test "x$SUPPORT_GLX" = "x1"])
AM_CONDITIONAL(SUPPORT_X11, [test "x$SUPPORT_X11" = "x1"])
@@ -459,6 +475,9 @@ dnl strip leading spaces
CLUTTER_BACKENDS=${CLUTTER_BACKENDS#* }
AC_SUBST(CLUTTER_BACKENDS)
+CLUTTER_INPUT_BACKENDS=${CLUTTER_INPUT_BACKENDS#* }
+AC_SUBST(CLUTTER_INPUT_BACKENDS)
+
AC_CACHE_SAVE
dnl === Clutter configuration =================================================
@@ -468,10 +487,12 @@ CLUTTER_CONFIG_DEFINES=
# windowing systems
AS_IF([test "x$SUPPORT_X11" = "x1"],
[CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
-#define CLUTTER_WINDOWING_X11 \"x11\""])
+#define CLUTTER_WINDOWING_X11 \"x11\"
+#define CLUTTER_INPUT_X11 \"x11\""])
AS_IF([test "x$SUPPORT_GDK" = "x1"],
[CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
-#define CLUTTER_WINDOWING_GDK \"gdk\""])
+#define CLUTTER_WINDOWING_GDK \"gdk\"
+#define CLUTTER_INPUT_GDK \"gdk\""])
AS_IF([test "x$SUPPORT_GLX" = "x1"],
[CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
#define CLUTTER_WINDOWING_GLX \"glx\""])
@@ -483,10 +504,12 @@ AS_IF([test "x$SUPPORT_WAYLAND" = "x1"],
#define CLUTTER_WINDOWING_WAYLAND \"wayland\""])
AS_IF([test "x$SUPPORT_OSX" = "x1"],
[CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
-#define CLUTTER_WINDOWING_OSX \"osx\""])
+#define CLUTTER_WINDOWING_OSX \"osx\"
+#define CLUTTER_INPUT_OSX \"osx\""])
AS_IF([test "x$SUPPORT_WIN32" = "x1"],
[CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
-#define CLUTTER_WINDOWING_WIN32 \"win32\""])
+#define CLUTTER_WINDOWING_WIN32 \"win32\"
+#define CLUTTER_INPUT_WIN32 \"win32\""])
AS_IF([test "x$SUPPORT_EGL_PLATFORM_GDL" = "x1"],
[CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
#define CLUTTER_WINDOWING_CEX100 \"cex100\""])
@@ -497,6 +520,10 @@ AS_IF([test "x$SUPPORT_TSLIB" = "x1"],
[CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
#define CLUTTER_INPUT_TSLIB \"tslib\""])
+# the 'null' input backend is special
+CLUTTER_CONFIG_DEFINES="$CLUTTER_CONFIG_DEFINES
+#define CLUTTER_INPUT_NULL \"null\""
+
AC_SUBST([CLUTTER_CONFIG_DEFINES])
dnl === Clutter substitutions kept for backwards compatibility ================
@@ -997,7 +1024,7 @@ AC_CONFIG_FILES([
clutter/cally/cally-$CLUTTER_API_VERSION.pc:clutter/cally/cally.pc.in
- clutter/egl/clutter-cex100.h
+ clutter/cex100/clutter-cex100.h
tests/Makefile
tests/accessibility/Makefile
@@ -1069,6 +1096,12 @@ else
echo " Windowing systems: ${CLUTTER_BACKENDS} (WARNING: Experimental backends enabled)"
fi
+if test "x$experimental_input_backend" = "xno"; then
+echo " Input backends: ${CLUTTER_INPUT_BACKENDS}"
+else
+echo " Input backends: ${CLUTTER_INPUT_BACKENDS} (WARNING: Experimental backends enabled)"
+fi
+
if test "x$SUPPORT_X11" = "x1"; then
echo ""
echo " - X11 backend options:"
@@ -1076,12 +1109,10 @@ echo " Enabled extensions: ${X11_EXTS}"
echo " Build X11-specific tests: ${x11_tests}"
fi
-if test "x$SUPPORT_EGL" = "x1"; then
+if test "x$SUPPORT_CEX100" = "x1"; then
echo ""
-echo " - EGL backend options:"
-echo " Enable TSLib: ${have_tslib}"
-echo " Enable evdev: ${have_evdev}"
-echo " Enable GDL: ${have_gdl}"
+echo " - CEx100 backend options:"
+echo " libGDL include prefix: ${CLUTTER_CEX100_LIBGDL_PREFIX}"
fi
echo ""
diff --git a/doc/reference/clutter/Makefile.am b/doc/reference/clutter/Makefile.am
index 3a83b62ec..29a6647ae 100644
--- a/doc/reference/clutter/Makefile.am
+++ b/doc/reference/clutter/Makefile.am
@@ -54,7 +54,7 @@ HFILE_GLOB=\
$(top_srcdir)/clutter/x11/clutter-x11-texture-pixmap.h \
$(top_srcdir)/clutter/x11/clutter-glx-texture-pixmap.h \
$(top_srcdir)/clutter/egl/clutter-egl.h \
- $(top_srcdir)/clutter/egl/clutter-cex100.h \
+ $(top_srcdir)/clutter/cex100/clutter-cex100.h \
$(top_srcdir)/clutter/win32/clutter-win32.h \
$(top_srcdir)/clutter/gdk/clutter-gdk.h
@@ -64,6 +64,7 @@ CFILE_GLOB=\
$(top_srcdir)/clutter/x11/*.c \
$(top_srcdir)/clutter/win32/*.c \
$(top_srcdir)/clutter/gdk/*.c \
+ $(top_srcdir)/clutter/cex100/*.c \
$(top_srcdir)/clutter/egl/*.c
# Header files to ignore when scanning.
@@ -113,7 +114,7 @@ EXTRA_HFILES=\
$(top_srcdir)/clutter/x11/clutter-x11-texture-pixmap.h \
$(top_srcdir)/clutter/x11/clutter-glx-texture-pixmap.h \
$(top_srcdir)/clutter/egl/clutter-egl.h \
- $(top_srcdir)/clutter/egl/clutter-cex100.h \
+ $(top_srcdir)/clutter/cex100/clutter-cex100.h \
$(top_srcdir)/clutter/wayland/clutter-wayland.h \
$(top_srcdir)/clutter/win32/clutter-win32.h \
$(top_srcdir)/clutter/gdk/clutter-gdk.h
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 3144e2500..278934d3b 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -6,13 +6,6 @@ clutter/clutter-alpha.c
clutter/clutter-animation.c
clutter/clutter-animator.c
clutter/clutter-backend.c
-clutter/deprecated/clutter-behaviour.c
-clutter/deprecated/clutter-behaviour-depth.c
-clutter/deprecated/clutter-behaviour-ellipse.c
-clutter/deprecated/clutter-behaviour-opacity.c
-clutter/deprecated/clutter-behaviour-path.c
-clutter/deprecated/clutter-behaviour-rotate.c
-clutter/deprecated/clutter-behaviour-scale.c
clutter/clutter-bind-constraint.c
clutter/clutter-binding-pool.c
clutter/clutter-bin-layout.c
@@ -31,8 +24,6 @@ clutter/clutter-device-manager.c
clutter/clutter-drag-action.c
clutter/clutter-drop-action.c
clutter/clutter-event.c
-clutter/deprecated/clutter-fixed.c
-clutter/deprecated/clutter-fixed.h
clutter/clutter-flow-layout.c
clutter/clutter-gesture-action.c
clutter/clutter-input-device.c
@@ -45,7 +36,6 @@ clutter/clutter-path-constraint.c
clutter/clutter-rectangle.c
clutter/clutter-script.c
clutter/clutter-settings.c
-clutter/deprecated/clutter-shader.c
clutter/clutter-shader-effect.c
clutter/clutter-shader-types.c
clutter/clutter-snap-constraint.c
@@ -58,7 +48,6 @@ clutter/clutter-text.c
clutter/clutter-texture.c
clutter/clutter-timeline.c
clutter/clutter-units.c
-clutter/cogl/clutter-backend-cogl.c
clutter/deprecated/clutter-behaviour.c
clutter/deprecated/clutter-behaviour-depth.c
clutter/deprecated/clutter-behaviour-ellipse.c
@@ -70,6 +59,7 @@ clutter/deprecated/clutter-fixed.c
clutter/deprecated/clutter-fixed.h
clutter/deprecated/clutter-shader.c
clutter/evdev/clutter-input-device-evdev.c
+clutter/gdk/clutter-backend-gdk.c
clutter/x11/clutter-backend-x11.c
clutter/x11/clutter-keymap-x11.c
clutter/x11/clutter-x11-texture-pixmap.c
diff --git a/po/clutter-1.0.pot b/po/clutter-1.0.pot
index 3a0dda79b..042be922d 100644
--- a/po/clutter-1.0.pot
+++ b/po/clutter-1.0.pot
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Intel Corporation
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: clutter 1.7.90\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugzilla.clutter-project.org/enter_bug.cgi?"
"product=clutter\n"
-"POT-Creation-Date: 2011-09-12 13:51+0100\n"
+"POT-Creation-Date: 2011-11-13 18:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,2138 +18,2185 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: clutter/clutter-actor.c:3852
+#: ../clutter/clutter-actor.c:3886
msgid "X coordinate"
msgstr ""
-#: clutter/clutter-actor.c:3853
+#: ../clutter/clutter-actor.c:3887
msgid "X coordinate of the actor"
msgstr ""
-#: clutter/clutter-actor.c:3868
+#: ../clutter/clutter-actor.c:3902
msgid "Y coordinate"
msgstr ""
-#: clutter/clutter-actor.c:3869
+#: ../clutter/clutter-actor.c:3903
msgid "Y coordinate of the actor"
msgstr ""
-#: clutter/clutter-actor.c:3884 clutter/clutter-behaviour-ellipse.c:477
+#: ../clutter/clutter-actor.c:3918
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:479
msgid "Width"
msgstr ""
-#: clutter/clutter-actor.c:3885
+#: ../clutter/clutter-actor.c:3919
msgid "Width of the actor"
msgstr ""
-#: clutter/clutter-actor.c:3899 clutter/clutter-behaviour-ellipse.c:493
+#: ../clutter/clutter-actor.c:3933
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:495
msgid "Height"
msgstr ""
-#: clutter/clutter-actor.c:3900
+#: ../clutter/clutter-actor.c:3934
msgid "Height of the actor"
msgstr ""
-#: clutter/clutter-actor.c:3918
+#: ../clutter/clutter-actor.c:3952
msgid "Fixed X"
msgstr ""
-#: clutter/clutter-actor.c:3919
+#: ../clutter/clutter-actor.c:3953
msgid "Forced X position of the actor"
msgstr ""
-#: clutter/clutter-actor.c:3937
+#: ../clutter/clutter-actor.c:3971
msgid "Fixed Y"
msgstr ""
-#: clutter/clutter-actor.c:3938
+#: ../clutter/clutter-actor.c:3972
msgid "Forced Y position of the actor"
msgstr ""
-#: clutter/clutter-actor.c:3954
+#: ../clutter/clutter-actor.c:3988
msgid "Fixed position set"
msgstr ""
-#: clutter/clutter-actor.c:3955
+#: ../clutter/clutter-actor.c:3989
msgid "Whether to use fixed positioning for the actor"
msgstr ""
-#: clutter/clutter-actor.c:3977
+#: ../clutter/clutter-actor.c:4011
msgid "Min Width"
msgstr ""
-#: clutter/clutter-actor.c:3978
+#: ../clutter/clutter-actor.c:4012
msgid "Forced minimum width request for the actor"
msgstr ""
-#: clutter/clutter-actor.c:3997
+#: ../clutter/clutter-actor.c:4031
msgid "Min Height"
msgstr ""
-#: clutter/clutter-actor.c:3998
+#: ../clutter/clutter-actor.c:4032
msgid "Forced minimum height request for the actor"
msgstr ""
-#: clutter/clutter-actor.c:4017
+#: ../clutter/clutter-actor.c:4051
msgid "Natural Width"
msgstr ""
-#: clutter/clutter-actor.c:4018
+#: ../clutter/clutter-actor.c:4052
msgid "Forced natural width request for the actor"
msgstr ""
-#: clutter/clutter-actor.c:4037
+#: ../clutter/clutter-actor.c:4071
msgid "Natural Height"
msgstr ""
-#: clutter/clutter-actor.c:4038
+#: ../clutter/clutter-actor.c:4072
msgid "Forced natural height request for the actor"
msgstr ""
-#: clutter/clutter-actor.c:4054
+#: ../clutter/clutter-actor.c:4088
msgid "Minimum width set"
msgstr ""
-#: clutter/clutter-actor.c:4055
+#: ../clutter/clutter-actor.c:4089
msgid "Whether to use the min-width property"
msgstr ""
-#: clutter/clutter-actor.c:4070
+#: ../clutter/clutter-actor.c:4104
msgid "Minimum height set"
msgstr ""
-#: clutter/clutter-actor.c:4071
+#: ../clutter/clutter-actor.c:4105
msgid "Whether to use the min-height property"
msgstr ""
-#: clutter/clutter-actor.c:4086
+#: ../clutter/clutter-actor.c:4120
msgid "Natural width set"
msgstr ""
-#: clutter/clutter-actor.c:4087
+#: ../clutter/clutter-actor.c:4121
msgid "Whether to use the natural-width property"
msgstr ""
-#: clutter/clutter-actor.c:4104
+#: ../clutter/clutter-actor.c:4138
msgid "Natural height set"
msgstr ""
-#: clutter/clutter-actor.c:4105
+#: ../clutter/clutter-actor.c:4139
msgid "Whether to use the natural-height property"
msgstr ""
-#: clutter/clutter-actor.c:4124
+#: ../clutter/clutter-actor.c:4158
msgid "Allocation"
msgstr ""
-#: clutter/clutter-actor.c:4125
+#: ../clutter/clutter-actor.c:4159
msgid "The actor's allocation"
msgstr ""
-#: clutter/clutter-actor.c:4181
+#: ../clutter/clutter-actor.c:4215
msgid "Request Mode"
msgstr ""
-#: clutter/clutter-actor.c:4182
+#: ../clutter/clutter-actor.c:4216
msgid "The actor's request mode"
msgstr ""
-#: clutter/clutter-actor.c:4197
+#: ../clutter/clutter-actor.c:4231
msgid "Depth"
msgstr ""
-#: clutter/clutter-actor.c:4198
+#: ../clutter/clutter-actor.c:4232
msgid "Position on the Z axis"
msgstr ""
-#: clutter/clutter-actor.c:4212
+#: ../clutter/clutter-actor.c:4246
msgid "Opacity"
msgstr ""
-#: clutter/clutter-actor.c:4213
+#: ../clutter/clutter-actor.c:4247
msgid "Opacity of an actor"
msgstr ""
-#: clutter/clutter-actor.c:4232
+#: ../clutter/clutter-actor.c:4266
msgid "Offscreen redirect"
msgstr ""
-#: clutter/clutter-actor.c:4233
+#: ../clutter/clutter-actor.c:4267
msgid "Flags controlling when to flatten the actor into a single image"
msgstr ""
-#: clutter/clutter-actor.c:4251
+#: ../clutter/clutter-actor.c:4285
msgid "Visible"
msgstr ""
-#: clutter/clutter-actor.c:4252
+#: ../clutter/clutter-actor.c:4286
msgid "Whether the actor is visible or not"
msgstr ""
-#: clutter/clutter-actor.c:4267
+#: ../clutter/clutter-actor.c:4301
msgid "Mapped"
msgstr ""
-#: clutter/clutter-actor.c:4268
+#: ../clutter/clutter-actor.c:4302
msgid "Whether the actor will be painted"
msgstr ""
-#: clutter/clutter-actor.c:4282
+#: ../clutter/clutter-actor.c:4316
msgid "Realized"
msgstr ""
-#: clutter/clutter-actor.c:4283
+#: ../clutter/clutter-actor.c:4317
msgid "Whether the actor has been realized"
msgstr ""
-#: clutter/clutter-actor.c:4299
+#: ../clutter/clutter-actor.c:4333
msgid "Reactive"
msgstr ""
-#: clutter/clutter-actor.c:4300
+#: ../clutter/clutter-actor.c:4334
msgid "Whether the actor is reactive to events"
msgstr ""
-#: clutter/clutter-actor.c:4312
+#: ../clutter/clutter-actor.c:4346
msgid "Has Clip"
msgstr ""
-#: clutter/clutter-actor.c:4313
+#: ../clutter/clutter-actor.c:4347
msgid "Whether the actor has a clip set"
msgstr ""
-#: clutter/clutter-actor.c:4328
+#: ../clutter/clutter-actor.c:4362
msgid "Clip"
msgstr ""
-#: clutter/clutter-actor.c:4329
+#: ../clutter/clutter-actor.c:4363
msgid "The clip region for the actor"
msgstr ""
-#: clutter/clutter-actor.c:4343 clutter/clutter-actor-meta.c:207
-#: clutter/clutter-binding-pool.c:319 clutter/clutter-input-device.c:236
+#: ../clutter/clutter-actor.c:4377 ../clutter/clutter-actor-meta.c:207
+#: ../clutter/clutter-binding-pool.c:319 ../clutter/clutter-input-device.c:236
msgid "Name"
msgstr ""
-#: clutter/clutter-actor.c:4344
+#: ../clutter/clutter-actor.c:4378
msgid "Name of the actor"
msgstr ""
-#: clutter/clutter-actor.c:4358
+#: ../clutter/clutter-actor.c:4392
msgid "Scale X"
msgstr ""
-#: clutter/clutter-actor.c:4359
+#: ../clutter/clutter-actor.c:4393
msgid "Scale factor on the X axis"
msgstr ""
-#: clutter/clutter-actor.c:4374
+#: ../clutter/clutter-actor.c:4408
msgid "Scale Y"
msgstr ""
-#: clutter/clutter-actor.c:4375
+#: ../clutter/clutter-actor.c:4409
msgid "Scale factor on the Y axis"
msgstr ""
-#: clutter/clutter-actor.c:4390
+#: ../clutter/clutter-actor.c:4424
msgid "Scale Center X"
msgstr ""
-#: clutter/clutter-actor.c:4391
+#: ../clutter/clutter-actor.c:4425
msgid "Horizontal scale center"
msgstr ""
-#: clutter/clutter-actor.c:4406
+#: ../clutter/clutter-actor.c:4440
msgid "Scale Center Y"
msgstr ""
-#: clutter/clutter-actor.c:4407
+#: ../clutter/clutter-actor.c:4441
msgid "Vertical scale center"
msgstr ""
-#: clutter/clutter-actor.c:4422
+#: ../clutter/clutter-actor.c:4456
msgid "Scale Gravity"
msgstr ""
-#: clutter/clutter-actor.c:4423
+#: ../clutter/clutter-actor.c:4457
msgid "The center of scaling"
msgstr ""
-#: clutter/clutter-actor.c:4440
+#: ../clutter/clutter-actor.c:4474
msgid "Rotation Angle X"
msgstr ""
-#: clutter/clutter-actor.c:4441
+#: ../clutter/clutter-actor.c:4475
msgid "The rotation angle on the X axis"
msgstr ""
-#: clutter/clutter-actor.c:4456
+#: ../clutter/clutter-actor.c:4490
msgid "Rotation Angle Y"
msgstr ""
-#: clutter/clutter-actor.c:4457
+#: ../clutter/clutter-actor.c:4491
msgid "The rotation angle on the Y axis"
msgstr ""
-#: clutter/clutter-actor.c:4472
+#: ../clutter/clutter-actor.c:4506
msgid "Rotation Angle Z"
msgstr ""
-#: clutter/clutter-actor.c:4473
+#: ../clutter/clutter-actor.c:4507
msgid "The rotation angle on the Z axis"
msgstr ""
-#: clutter/clutter-actor.c:4488
+#: ../clutter/clutter-actor.c:4522
msgid "Rotation Center X"
msgstr ""
-#: clutter/clutter-actor.c:4489
+#: ../clutter/clutter-actor.c:4523
msgid "The rotation center on the X axis"
msgstr ""
-#: clutter/clutter-actor.c:4505
+#: ../clutter/clutter-actor.c:4539
msgid "Rotation Center Y"
msgstr ""
-#: clutter/clutter-actor.c:4506
+#: ../clutter/clutter-actor.c:4540
msgid "The rotation center on the Y axis"
msgstr ""
-#: clutter/clutter-actor.c:4522
+#: ../clutter/clutter-actor.c:4556
msgid "Rotation Center Z"
msgstr ""
-#: clutter/clutter-actor.c:4523
+#: ../clutter/clutter-actor.c:4557
msgid "The rotation center on the Z axis"
msgstr ""
-#: clutter/clutter-actor.c:4539
+#: ../clutter/clutter-actor.c:4573
msgid "Rotation Center Z Gravity"
msgstr ""
-#: clutter/clutter-actor.c:4540
+#: ../clutter/clutter-actor.c:4574
msgid "Center point for rotation around the Z axis"
msgstr ""
-#: clutter/clutter-actor.c:4558
+#: ../clutter/clutter-actor.c:4592
msgid "Anchor X"
msgstr ""
-#: clutter/clutter-actor.c:4559
+#: ../clutter/clutter-actor.c:4593
msgid "X coordinate of the anchor point"
msgstr ""
-#: clutter/clutter-actor.c:4575
+#: ../clutter/clutter-actor.c:4609
msgid "Anchor Y"
msgstr ""
-#: clutter/clutter-actor.c:4576
+#: ../clutter/clutter-actor.c:4610
msgid "Y coordinate of the anchor point"
msgstr ""
-#: clutter/clutter-actor.c:4591
+#: ../clutter/clutter-actor.c:4625
msgid "Anchor Gravity"
msgstr ""
-#: clutter/clutter-actor.c:4592
+#: ../clutter/clutter-actor.c:4626
msgid "The anchor point as a ClutterGravity"
msgstr ""
-#: clutter/clutter-actor.c:4611
+#: ../clutter/clutter-actor.c:4645
msgid "Show on set parent"
msgstr ""
-#: clutter/clutter-actor.c:4612
+#: ../clutter/clutter-actor.c:4646
msgid "Whether the actor is shown when parented"
msgstr ""
-#: clutter/clutter-actor.c:4632
+#: ../clutter/clutter-actor.c:4666
msgid "Clip to Allocation"
msgstr ""
-#: clutter/clutter-actor.c:4633
+#: ../clutter/clutter-actor.c:4667
msgid "Sets the clip region to track the actor's allocation"
msgstr ""
-#: clutter/clutter-actor.c:4643
+#: ../clutter/clutter-actor.c:4677
msgid "Text Direction"
msgstr ""
-#: clutter/clutter-actor.c:4644
+#: ../clutter/clutter-actor.c:4678
msgid "Direction of the text"
msgstr ""
-#: clutter/clutter-actor.c:4662
+#: ../clutter/clutter-actor.c:4696
msgid "Has Pointer"
msgstr ""
-#: clutter/clutter-actor.c:4663
+#: ../clutter/clutter-actor.c:4697
msgid "Whether the actor contains the pointer of an input device"
msgstr ""
-#: clutter/clutter-actor.c:4680
+#: ../clutter/clutter-actor.c:4714
msgid "Actions"
msgstr ""
-#: clutter/clutter-actor.c:4681
+#: ../clutter/clutter-actor.c:4715
msgid "Adds an action to the actor"
msgstr ""
-#: clutter/clutter-actor.c:4695
+#: ../clutter/clutter-actor.c:4729
msgid "Constraints"
msgstr ""
-#: clutter/clutter-actor.c:4696
+#: ../clutter/clutter-actor.c:4730
msgid "Adds a constraint to the actor"
msgstr ""
-#: clutter/clutter-actor-meta.c:193 clutter/clutter-child-meta.c:142
+#: ../clutter/clutter-actor.c:4744
+msgid "Effect"
+msgstr ""
+
+#: ../clutter/clutter-actor.c:4745
+msgid "Add an effect to be applied on the actor"
+msgstr ""
+
+#: ../clutter/clutter-actor-meta.c:193 ../clutter/clutter-child-meta.c:142
msgid "Actor"
msgstr ""
-#: clutter/clutter-actor-meta.c:194
+#: ../clutter/clutter-actor-meta.c:194
msgid "The actor attached to the meta"
msgstr ""
-#: clutter/clutter-actor-meta.c:208
+#: ../clutter/clutter-actor-meta.c:208
msgid "The name of the meta"
msgstr ""
-#: clutter/clutter-actor-meta.c:221 clutter/clutter-input-device.c:315
-#: clutter/clutter-shader.c:307
+#: ../clutter/clutter-actor-meta.c:221 ../clutter/clutter-input-device.c:315
+#: ../clutter/deprecated/clutter-shader.c:309
msgid "Enabled"
msgstr ""
-#: clutter/clutter-actor-meta.c:222
+#: ../clutter/clutter-actor-meta.c:222
msgid "Whether the meta is enabled"
msgstr ""
-#: clutter/clutter-align-constraint.c:270
-#: clutter/clutter-bind-constraint.c:349 clutter/clutter-clone.c:340
-#: clutter/clutter-snap-constraint.c:321
+#: ../clutter/clutter-align-constraint.c:281
+#: ../clutter/clutter-bind-constraint.c:349 ../clutter/clutter-clone.c:345
+#: ../clutter/clutter-snap-constraint.c:321
msgid "Source"
msgstr ""
-#: clutter/clutter-align-constraint.c:271
+#: ../clutter/clutter-align-constraint.c:282
msgid "The source of the alignment"
msgstr ""
-#: clutter/clutter-align-constraint.c:284
+#: ../clutter/clutter-align-constraint.c:295
msgid "Align Axis"
msgstr ""
-#: clutter/clutter-align-constraint.c:285
+#: ../clutter/clutter-align-constraint.c:296
msgid "The axis to align the position to"
msgstr ""
-#: clutter/clutter-align-constraint.c:304
-#: clutter/clutter-desaturate-effect.c:304
+#: ../clutter/clutter-align-constraint.c:315
+#: ../clutter/clutter-desaturate-effect.c:304
msgid "Factor"
msgstr ""
-#: clutter/clutter-align-constraint.c:305
+#: ../clutter/clutter-align-constraint.c:316
msgid "The alignment factor, between 0.0 and 1.0"
msgstr ""
-#: clutter/clutter-alpha.c:345 clutter/clutter-animation.c:538
-#: clutter/clutter-animator.c:1802
+#: ../clutter/clutter-alpha.c:345 ../clutter/clutter-animation.c:538
+#: ../clutter/clutter-animator.c:1802
msgid "Timeline"
msgstr ""
-#: clutter/clutter-alpha.c:346
+#: ../clutter/clutter-alpha.c:346
msgid "Timeline used by the alpha"
msgstr ""
-#: clutter/clutter-alpha.c:361
+#: ../clutter/clutter-alpha.c:361
msgid "Alpha value"
msgstr ""
-#: clutter/clutter-alpha.c:362
+#: ../clutter/clutter-alpha.c:362
msgid "Alpha value as computed by the alpha"
msgstr ""
-#: clutter/clutter-alpha.c:382 clutter/clutter-animation.c:494
+#: ../clutter/clutter-alpha.c:382 ../clutter/clutter-animation.c:494
msgid "Mode"
msgstr ""
-#: clutter/clutter-alpha.c:383
+#: ../clutter/clutter-alpha.c:383
msgid "Progress mode"
msgstr ""
-#: clutter/clutter-animation.c:478
+#: ../clutter/clutter-animation.c:478
msgid "Object"
msgstr ""
-#: clutter/clutter-animation.c:479
+#: ../clutter/clutter-animation.c:479
msgid "Object to which the animation applies"
msgstr ""
-#: clutter/clutter-animation.c:495
+#: ../clutter/clutter-animation.c:495
msgid "The mode of the animation"
msgstr ""
-#: clutter/clutter-animation.c:509 clutter/clutter-animator.c:1786
-#: clutter/clutter-media.c:194 clutter/clutter-state.c:1486
-#: clutter/clutter-timeline.c:294
+#: ../clutter/clutter-animation.c:509 ../clutter/clutter-animator.c:1786
+#: ../clutter/clutter-media.c:194 ../clutter/clutter-state.c:1486
+#: ../clutter/clutter-timeline.c:294
msgid "Duration"
msgstr ""
-#: clutter/clutter-animation.c:510
+#: ../clutter/clutter-animation.c:510
msgid "Duration of the animation, in milliseconds"
msgstr ""
-#: clutter/clutter-animation.c:524 clutter/clutter-timeline.c:263
+#: ../clutter/clutter-animation.c:524 ../clutter/clutter-timeline.c:263
msgid "Loop"
msgstr ""
-#: clutter/clutter-animation.c:525
+#: ../clutter/clutter-animation.c:525
msgid "Whether the animation should loop"
msgstr ""
-#: clutter/clutter-animation.c:539
+#: ../clutter/clutter-animation.c:539
msgid "The timeline used by the animation"
msgstr ""
-#: clutter/clutter-animation.c:552 clutter/clutter-behaviour.c:304
+#: ../clutter/clutter-animation.c:552
+#: ../clutter/deprecated/clutter-behaviour.c:240
msgid "Alpha"
msgstr ""
-#: clutter/clutter-animation.c:553
+#: ../clutter/clutter-animation.c:553
msgid "The alpha used by the animation"
msgstr ""
-#: clutter/clutter-animator.c:1787
+#: ../clutter/clutter-animator.c:1787
msgid "The duration of the animation"
msgstr ""
-#: clutter/clutter-animator.c:1803
+#: ../clutter/clutter-animator.c:1803
msgid "The timeline of the animation"
msgstr ""
-#: clutter/clutter-behaviour.c:305
-msgid "Alpha Object to drive the behaviour"
-msgstr ""
-
-#: clutter/clutter-behaviour-depth.c:178
-msgid "Start Depth"
-msgstr ""
-
-#: clutter/clutter-behaviour-depth.c:179
-msgid "Initial depth to apply"
-msgstr ""
-
-#: clutter/clutter-behaviour-depth.c:194
-msgid "End Depth"
-msgstr ""
-
-#: clutter/clutter-behaviour-depth.c:195
-msgid "Final depth to apply"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:397
-msgid "Start Angle"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:398
-#: clutter/clutter-behaviour-rotate.c:280
-msgid "Initial angle"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:413
-msgid "End Angle"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:414
-#: clutter/clutter-behaviour-rotate.c:298
-msgid "Final angle"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:429
-msgid "Angle x tilt"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:430
-msgid "Tilt of the ellipse around x axis"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:445
-msgid "Angle y tilt"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:446
-msgid "Tilt of the ellipse around y axis"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:461
-msgid "Angle z tilt"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:462
-msgid "Tilt of the ellipse around z axis"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:478
-msgid "Width of the ellipse"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:494
-msgid "Height of ellipse"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:509
-msgid "Center"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:510
-msgid "Center of ellipse"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:524
-#: clutter/clutter-behaviour-rotate.c:333 clutter/clutter-timeline.c:310
-msgid "Direction"
-msgstr ""
-
-#: clutter/clutter-behaviour-ellipse.c:525
-#: clutter/clutter-behaviour-rotate.c:334
-msgid "Direction of rotation"
-msgstr ""
-
-#: clutter/clutter-behaviour-opacity.c:181
-msgid "Opacity Start"
-msgstr ""
-
-#: clutter/clutter-behaviour-opacity.c:182
-msgid "Initial opacity level"
-msgstr ""
-
-#: clutter/clutter-behaviour-opacity.c:199
-msgid "Opacity End"
-msgstr ""
-
-#: clutter/clutter-behaviour-opacity.c:200
-msgid "Final opacity level"
-msgstr ""
-
-#: clutter/clutter-behaviour-path.c:222 clutter/clutter-path-constraint.c:212
-msgid "Path"
-msgstr ""
-
-#: clutter/clutter-behaviour-path.c:223
-msgid "The ClutterPath object representing the path to animate along"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:279
-msgid "Angle Begin"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:297
-msgid "Angle End"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:315
-msgid "Axis"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:316
-msgid "Axis of rotation"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:351
-msgid "Center X"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:352
-msgid "X coordinate of the center of rotation"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:369
-msgid "Center Y"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:370
-msgid "Y coordinate of the center of rotation"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:387
-msgid "Center Z"
-msgstr ""
-
-#: clutter/clutter-behaviour-rotate.c:388
-msgid "Z coordinate of the center of rotation"
-msgstr ""
-
-#: clutter/clutter-behaviour-scale.c:222
-msgid "X Start Scale"
-msgstr ""
-
-#: clutter/clutter-behaviour-scale.c:223
-msgid "Initial scale on the X axis"
-msgstr ""
-
-#: clutter/clutter-behaviour-scale.c:241
-msgid "X End Scale"
-msgstr ""
-
-#: clutter/clutter-behaviour-scale.c:242
-msgid "Final scale on the X axis"
-msgstr ""
-
-#: clutter/clutter-behaviour-scale.c:260
-msgid "Y Start Scale"
-msgstr ""
-
-#: clutter/clutter-behaviour-scale.c:261
-msgid "Initial scale on the Y axis"
+#: ../clutter/clutter-backend.c:333
+msgid "Unable to initialize the Clutter backend"
msgstr ""
-#: clutter/clutter-behaviour-scale.c:279
-msgid "Y End Scale"
-msgstr ""
-
-#: clutter/clutter-behaviour-scale.c:280
-msgid "Final scale on the Y axis"
+#: ../clutter/clutter-backend.c:407
+#, c-format
+msgid "The backend of type '%s' does not support creating multiple stages"
msgstr ""
-#: clutter/clutter-bind-constraint.c:350
+#: ../clutter/clutter-bind-constraint.c:350
msgid "The source of the binding"
msgstr ""
-#: clutter/clutter-bind-constraint.c:363
+#: ../clutter/clutter-bind-constraint.c:363
msgid "Coordinate"
msgstr ""
-#: clutter/clutter-bind-constraint.c:364
+#: ../clutter/clutter-bind-constraint.c:364
msgid "The coordinate to bind"
msgstr ""
-#: clutter/clutter-bind-constraint.c:378 clutter/clutter-path-constraint.c:226
-#: clutter/clutter-snap-constraint.c:366
+#: ../clutter/clutter-bind-constraint.c:378
+#: ../clutter/clutter-path-constraint.c:226
+#: ../clutter/clutter-snap-constraint.c:366
msgid "Offset"
msgstr ""
-#: clutter/clutter-bind-constraint.c:379
+#: ../clutter/clutter-bind-constraint.c:379
msgid "The offset in pixels to apply to the binding"
msgstr ""
-#: clutter/clutter-binding-pool.c:320
+#: ../clutter/clutter-binding-pool.c:320
msgid "The unique name of the binding pool"
msgstr ""
-#: clutter/clutter-bin-layout.c:261 clutter/clutter-bin-layout.c:585
-#: clutter/clutter-box-layout.c:395 clutter/clutter-table-layout.c:652
+#: ../clutter/clutter-bin-layout.c:261 ../clutter/clutter-bin-layout.c:585
+#: ../clutter/clutter-box-layout.c:395 ../clutter/clutter-table-layout.c:652
msgid "Horizontal Alignment"
msgstr ""
-#: clutter/clutter-bin-layout.c:262
+#: ../clutter/clutter-bin-layout.c:262
msgid "Horizontal alignment for the actor inside the layout manager"
msgstr ""
-#: clutter/clutter-bin-layout.c:270 clutter/clutter-bin-layout.c:602
-#: clutter/clutter-box-layout.c:404 clutter/clutter-table-layout.c:667
+#: ../clutter/clutter-bin-layout.c:270 ../clutter/clutter-bin-layout.c:602
+#: ../clutter/clutter-box-layout.c:404 ../clutter/clutter-table-layout.c:667
msgid "Vertical Alignment"
msgstr ""
-#: clutter/clutter-bin-layout.c:271
+#: ../clutter/clutter-bin-layout.c:271
msgid "Vertical alignment for the actor inside the layout manager"
msgstr ""
-#: clutter/clutter-bin-layout.c:586
+#: ../clutter/clutter-bin-layout.c:586
msgid "Default horizontal alignment for the actors inside the layout manager"
msgstr ""
-#: clutter/clutter-bin-layout.c:603
+#: ../clutter/clutter-bin-layout.c:603
msgid "Default vertical alignment for the actors inside the layout manager"
msgstr ""
-#: clutter/clutter-box.c:544
+#: ../clutter/clutter-box.c:544
msgid "Layout Manager"
msgstr ""
-#: clutter/clutter-box.c:545
+#: ../clutter/clutter-box.c:545
msgid "The layout manager used by the box"
msgstr ""
-#: clutter/clutter-box.c:564 clutter/clutter-rectangle.c:267
-#: clutter/clutter-stage.c:1765
+#: ../clutter/clutter-box.c:564 ../clutter/clutter-rectangle.c:267
+#: ../clutter/clutter-stage.c:1790
msgid "Color"
msgstr ""
-#: clutter/clutter-box.c:565
+#: ../clutter/clutter-box.c:565
msgid "The background color of the box"
msgstr ""
-#: clutter/clutter-box.c:579
+#: ../clutter/clutter-box.c:579
msgid "Color Set"
msgstr ""
-#: clutter/clutter-box.c:580
+#: ../clutter/clutter-box.c:580
msgid "Whether the background color is set"
msgstr ""
-#: clutter/clutter-box-layout.c:370
+#: ../clutter/clutter-box-layout.c:370
msgid "Expand"
msgstr ""
-#: clutter/clutter-box-layout.c:371
+#: ../clutter/clutter-box-layout.c:371
msgid "Allocate extra space for the child"
msgstr ""
-#: clutter/clutter-box-layout.c:377 clutter/clutter-table-layout.c:631
+#: ../clutter/clutter-box-layout.c:377 ../clutter/clutter-table-layout.c:631
msgid "Horizontal Fill"
msgstr ""
-#: clutter/clutter-box-layout.c:378 clutter/clutter-table-layout.c:632
+#: ../clutter/clutter-box-layout.c:378 ../clutter/clutter-table-layout.c:632
msgid ""
"Whether the child should receive priority when the container is allocating "
"spare space on the horizontal axis"
msgstr ""
-#: clutter/clutter-box-layout.c:386 clutter/clutter-table-layout.c:638
+#: ../clutter/clutter-box-layout.c:386 ../clutter/clutter-table-layout.c:638
msgid "Vertical Fill"
msgstr ""
-#: clutter/clutter-box-layout.c:387 clutter/clutter-table-layout.c:639
+#: ../clutter/clutter-box-layout.c:387 ../clutter/clutter-table-layout.c:639
msgid ""
"Whether the child should receive priority when the container is allocating "
"spare space on the vertical axis"
msgstr ""
-#: clutter/clutter-box-layout.c:396 clutter/clutter-table-layout.c:653
+#: ../clutter/clutter-box-layout.c:396 ../clutter/clutter-table-layout.c:653
msgid "Horizontal alignment of the actor within the cell"
msgstr ""
-#: clutter/clutter-box-layout.c:405 clutter/clutter-table-layout.c:668
+#: ../clutter/clutter-box-layout.c:405 ../clutter/clutter-table-layout.c:668
msgid "Vertical alignment of the actor within the cell"
msgstr ""
-#: clutter/clutter-box-layout.c:1305
+#: ../clutter/clutter-box-layout.c:1303
msgid "Vertical"
msgstr ""
-#: clutter/clutter-box-layout.c:1306
+#: ../clutter/clutter-box-layout.c:1304
msgid "Whether the layout should be vertical, rather than horizontal"
msgstr ""
-#: clutter/clutter-box-layout.c:1321 clutter/clutter-flow-layout.c:901
+#: ../clutter/clutter-box-layout.c:1319 ../clutter/clutter-flow-layout.c:901
msgid "Homogeneous"
msgstr ""
-#: clutter/clutter-box-layout.c:1322
+#: ../clutter/clutter-box-layout.c:1320
msgid ""
"Whether the layout should be homogeneous, i.e. all childs get the same size"
msgstr ""
-#: clutter/clutter-box-layout.c:1337
+#: ../clutter/clutter-box-layout.c:1335
msgid "Pack Start"
msgstr ""
-#: clutter/clutter-box-layout.c:1338
+#: ../clutter/clutter-box-layout.c:1336
msgid "Whether to pack items at the start of the box"
msgstr ""
-#: clutter/clutter-box-layout.c:1351
+#: ../clutter/clutter-box-layout.c:1349
msgid "Spacing"
msgstr ""
-#: clutter/clutter-box-layout.c:1352
+#: ../clutter/clutter-box-layout.c:1350
msgid "Spacing between children"
msgstr ""
-#: clutter/clutter-box-layout.c:1366 clutter/clutter-table-layout.c:1742
+#: ../clutter/clutter-box-layout.c:1364 ../clutter/clutter-table-layout.c:1742
msgid "Use Animations"
msgstr ""
-#: clutter/clutter-box-layout.c:1367 clutter/clutter-table-layout.c:1743
+#: ../clutter/clutter-box-layout.c:1365 ../clutter/clutter-table-layout.c:1743
msgid "Whether layout changes should be animated"
msgstr ""
-#: clutter/clutter-box-layout.c:1388 clutter/clutter-table-layout.c:1764
+#: ../clutter/clutter-box-layout.c:1386 ../clutter/clutter-table-layout.c:1764
msgid "Easing Mode"
msgstr ""
-#: clutter/clutter-box-layout.c:1389 clutter/clutter-table-layout.c:1765
+#: ../clutter/clutter-box-layout.c:1387 ../clutter/clutter-table-layout.c:1765
msgid "The easing mode of the animations"
msgstr ""
-#: clutter/clutter-box-layout.c:1406 clutter/clutter-table-layout.c:1782
+#: ../clutter/clutter-box-layout.c:1404 ../clutter/clutter-table-layout.c:1782
msgid "Easing Duration"
msgstr ""
-#: clutter/clutter-box-layout.c:1407 clutter/clutter-table-layout.c:1783
+#: ../clutter/clutter-box-layout.c:1405 ../clutter/clutter-table-layout.c:1783
msgid "The duration of the animations"
msgstr ""
-#: clutter/clutter-cairo-texture.c:582
+#: ../clutter/clutter-cairo-texture.c:582
msgid "Surface Width"
msgstr ""
-#: clutter/clutter-cairo-texture.c:583
+#: ../clutter/clutter-cairo-texture.c:583
msgid "The width of the Cairo surface"
msgstr ""
-#: clutter/clutter-cairo-texture.c:597
+#: ../clutter/clutter-cairo-texture.c:597
msgid "Surface Height"
msgstr ""
-#: clutter/clutter-cairo-texture.c:598
+#: ../clutter/clutter-cairo-texture.c:598
msgid "The height of the Cairo surface"
msgstr ""
-#: clutter/clutter-cairo-texture.c:615
+#: ../clutter/clutter-cairo-texture.c:615
msgid "Auto Resize"
msgstr ""
-#: clutter/clutter-cairo-texture.c:616
+#: ../clutter/clutter-cairo-texture.c:616
msgid "Whether the surface should match the allocation"
msgstr ""
-#: clutter/clutter-child-meta.c:127
+#: ../clutter/clutter-child-meta.c:127
msgid "Container"
msgstr ""
-#: clutter/clutter-child-meta.c:128
+#: ../clutter/clutter-child-meta.c:128
msgid "The container that created this data"
msgstr ""
-#: clutter/clutter-child-meta.c:143
+#: ../clutter/clutter-child-meta.c:143
msgid "The actor wrapped by this data"
msgstr ""
-#: clutter/clutter-click-action.c:542
+#: ../clutter/clutter-click-action.c:542
msgid "Pressed"
msgstr ""
-#: clutter/clutter-click-action.c:543
+#: ../clutter/clutter-click-action.c:543
msgid "Whether the clickable should be in pressed state"
msgstr ""
-#: clutter/clutter-click-action.c:556
+#: ../clutter/clutter-click-action.c:556
msgid "Held"
msgstr ""
-#: clutter/clutter-click-action.c:557
+#: ../clutter/clutter-click-action.c:557
msgid "Whether the clickable has a grab"
msgstr ""
-#: clutter/clutter-click-action.c:574 clutter/clutter-settings.c:573
+#: ../clutter/clutter-click-action.c:574 ../clutter/clutter-settings.c:598
msgid "Long Press Duration"
msgstr ""
-#: clutter/clutter-click-action.c:575
+#: ../clutter/clutter-click-action.c:575
msgid "The minimum duration of a long press to recognize the gesture"
msgstr ""
-#: clutter/clutter-click-action.c:593
+#: ../clutter/clutter-click-action.c:593
msgid "Long Press Threshold"
msgstr ""
-#: clutter/clutter-click-action.c:594
+#: ../clutter/clutter-click-action.c:594
msgid "The maximum threshold before a long press is cancelled"
msgstr ""
-#: clutter/clutter-clone.c:341
+#: ../clutter/clutter-clone.c:346
msgid "Specifies the actor to be cloned"
msgstr ""
-#: clutter/clutter-colorize-effect.c:307
+#: ../clutter/clutter-colorize-effect.c:307
msgid "Tint"
msgstr ""
-#: clutter/clutter-colorize-effect.c:308
+#: ../clutter/clutter-colorize-effect.c:308
msgid "The tint to apply"
msgstr ""
-#: clutter/clutter-deform-effect.c:527
+#: ../clutter/clutter-deform-effect.c:547
msgid "Horizontal Tiles"
msgstr ""
-#: clutter/clutter-deform-effect.c:528
+#: ../clutter/clutter-deform-effect.c:548
msgid "The number of horizontal tiles"
msgstr ""
-#: clutter/clutter-deform-effect.c:543
+#: ../clutter/clutter-deform-effect.c:563
msgid "Vertical Tiles"
msgstr ""
-#: clutter/clutter-deform-effect.c:544
+#: ../clutter/clutter-deform-effect.c:564
msgid "The number of vertical tiles"
msgstr ""
-#: clutter/clutter-deform-effect.c:561
+#: ../clutter/clutter-deform-effect.c:581
msgid "Back Material"
msgstr ""
-#: clutter/clutter-deform-effect.c:562
+#: ../clutter/clutter-deform-effect.c:582
msgid "The material to be used when painting the back of the actor"
msgstr ""
-#: clutter/clutter-desaturate-effect.c:305
+#: ../clutter/clutter-desaturate-effect.c:305
msgid "The desaturation factor"
msgstr ""
-#: clutter/clutter-device-manager.c:131 clutter/clutter-input-device.c:344
-#: clutter/x11/clutter-keymap-x11.c:316
+#: ../clutter/clutter-device-manager.c:131
+#: ../clutter/clutter-input-device.c:344
+#: ../clutter/x11/clutter-keymap-x11.c:316
msgid "Backend"
msgstr ""
-#: clutter/clutter-device-manager.c:132
+#: ../clutter/clutter-device-manager.c:132
msgid "The ClutterBackend of the device manager"
msgstr ""
-#: clutter/clutter-drag-action.c:596
+#: ../clutter/clutter-drag-action.c:596
msgid "Horizontal Drag Threshold"
msgstr ""
-#: clutter/clutter-drag-action.c:597
+#: ../clutter/clutter-drag-action.c:597
msgid "The horizontal amount of pixels required to start dragging"
msgstr ""
-#: clutter/clutter-drag-action.c:624
+#: ../clutter/clutter-drag-action.c:624
msgid "Vertical Drag Threshold"
msgstr ""
-#: clutter/clutter-drag-action.c:625
+#: ../clutter/clutter-drag-action.c:625
msgid "The vertical amount of pixels required to start dragging"
msgstr ""
-#: clutter/clutter-drag-action.c:646
+#: ../clutter/clutter-drag-action.c:646
msgid "Drag Handle"
msgstr ""
-#: clutter/clutter-drag-action.c:647
+#: ../clutter/clutter-drag-action.c:647
msgid "The actor that is being dragged"
msgstr ""
-#: clutter/clutter-drag-action.c:660
+#: ../clutter/clutter-drag-action.c:660
msgid "Drag Axis"
msgstr ""
-#: clutter/clutter-drag-action.c:661
+#: ../clutter/clutter-drag-action.c:661
msgid "Constraints the dragging to an axis"
msgstr ""
-#: clutter/clutter-flow-layout.c:885
+#: ../clutter/clutter-flow-layout.c:885
msgid "Orientation"
msgstr ""
-#: clutter/clutter-flow-layout.c:886
+#: ../clutter/clutter-flow-layout.c:886
msgid "The orientation of the layout"
msgstr ""
-#: clutter/clutter-flow-layout.c:902
+#: ../clutter/clutter-flow-layout.c:902
msgid "Whether each item should receive the same allocation"
msgstr ""
-#: clutter/clutter-flow-layout.c:917 clutter/clutter-table-layout.c:1713
+#: ../clutter/clutter-flow-layout.c:917 ../clutter/clutter-table-layout.c:1713
msgid "Column Spacing"
msgstr ""
-#: clutter/clutter-flow-layout.c:918
+#: ../clutter/clutter-flow-layout.c:918
msgid "The spacing between columns"
msgstr ""
-#: clutter/clutter-flow-layout.c:934 clutter/clutter-table-layout.c:1727
+#: ../clutter/clutter-flow-layout.c:934 ../clutter/clutter-table-layout.c:1727
msgid "Row Spacing"
msgstr ""
-#: clutter/clutter-flow-layout.c:935
+#: ../clutter/clutter-flow-layout.c:935
msgid "The spacing between rows"
msgstr ""
-#: clutter/clutter-flow-layout.c:949
+#: ../clutter/clutter-flow-layout.c:949
msgid "Minimum Column Width"
msgstr ""
-#: clutter/clutter-flow-layout.c:950
+#: ../clutter/clutter-flow-layout.c:950
msgid "Minimum width for each column"
msgstr ""
-#: clutter/clutter-flow-layout.c:965
+#: ../clutter/clutter-flow-layout.c:965
msgid "Maximum Column Width"
msgstr ""
-#: clutter/clutter-flow-layout.c:966
+#: ../clutter/clutter-flow-layout.c:966
msgid "Maximum width for each column"
msgstr ""
-#: clutter/clutter-flow-layout.c:980
+#: ../clutter/clutter-flow-layout.c:980
msgid "Minimum Row Height"
msgstr ""
-#: clutter/clutter-flow-layout.c:981
+#: ../clutter/clutter-flow-layout.c:981
msgid "Minimum height for each row"
msgstr ""
-#: clutter/clutter-flow-layout.c:996
+#: ../clutter/clutter-flow-layout.c:996
msgid "Maximum Row Height"
msgstr ""
-#: clutter/clutter-flow-layout.c:997
+#: ../clutter/clutter-flow-layout.c:997
msgid "Maximum height for each row"
msgstr ""
-#: clutter/clutter-input-device.c:220
+#: ../clutter/clutter-input-device.c:220
msgid "Id"
msgstr ""
-#: clutter/clutter-input-device.c:221
+#: ../clutter/clutter-input-device.c:221
msgid "Unique identifier of the device"
msgstr ""
-#: clutter/clutter-input-device.c:237
+#: ../clutter/clutter-input-device.c:237
msgid "The name of the device"
msgstr ""
-#: clutter/clutter-input-device.c:251
+#: ../clutter/clutter-input-device.c:251
msgid "Device Type"
msgstr ""
-#: clutter/clutter-input-device.c:252
+#: ../clutter/clutter-input-device.c:252
msgid "The type of the device"
msgstr ""
-#: clutter/clutter-input-device.c:267
+#: ../clutter/clutter-input-device.c:267
msgid "Device Manager"
msgstr ""
-#: clutter/clutter-input-device.c:268
+#: ../clutter/clutter-input-device.c:268
msgid "The device manager instance"
msgstr ""
-#: clutter/clutter-input-device.c:281
+#: ../clutter/clutter-input-device.c:281
msgid "Device Mode"
msgstr ""
-#: clutter/clutter-input-device.c:282
+#: ../clutter/clutter-input-device.c:282
msgid "The mode of the device"
msgstr ""
-#: clutter/clutter-input-device.c:296
+#: ../clutter/clutter-input-device.c:296
msgid "Has Cursor"
msgstr ""
-#: clutter/clutter-input-device.c:297
+#: ../clutter/clutter-input-device.c:297
msgid "Whether the device has a cursor"
msgstr ""
-#: clutter/clutter-input-device.c:316
+#: ../clutter/clutter-input-device.c:316
msgid "Whether the device is enabled"
msgstr ""
-#: clutter/clutter-input-device.c:329
+#: ../clutter/clutter-input-device.c:329
msgid "Number of Axes"
msgstr ""
-#: clutter/clutter-input-device.c:330
+#: ../clutter/clutter-input-device.c:330
msgid "The number of axes on the device"
msgstr ""
-#: clutter/clutter-input-device.c:345
+#: ../clutter/clutter-input-device.c:345
msgid "The backend instance"
msgstr ""
-#: clutter/clutter-interval.c:397
+#: ../clutter/clutter-interval.c:397
msgid "Value Type"
msgstr ""
-#: clutter/clutter-interval.c:398
+#: ../clutter/clutter-interval.c:398
msgid "The type of the values in the interval"
msgstr ""
-#: clutter/clutter-layout-meta.c:117
+#: ../clutter/clutter-layout-meta.c:117
msgid "Manager"
msgstr ""
-#: clutter/clutter-layout-meta.c:118
+#: ../clutter/clutter-layout-meta.c:118
msgid "The manager that created this data"
msgstr ""
-#: clutter/clutter-main.c:490
+#. Translators: Leave this UNTRANSLATED if your language is
+#. * left-to-right. If your language is right-to-left
+#. * (e.g. Hebrew, Arabic), translate it to "default:RTL".
+#. *
+#. * Do NOT translate it to non-English e.g. "predefinito:LTR"! If
+#. * it isn't default:LTR or default:RTL it will not work.
+#.
+#: ../clutter/clutter-main.c:752
msgid "default:LTR"
msgstr ""
-#: clutter/clutter-main.c:1321
+#: ../clutter/clutter-main.c:1610
msgid "Show frames per second"
msgstr ""
-#: clutter/clutter-main.c:1323
+#: ../clutter/clutter-main.c:1612
msgid "Default frame rate"
msgstr ""
-#: clutter/clutter-main.c:1325
+#: ../clutter/clutter-main.c:1614
msgid "Make all warnings fatal"
msgstr ""
-#: clutter/clutter-main.c:1328
+#: ../clutter/clutter-main.c:1617
msgid "Direction for the text"
msgstr ""
-#: clutter/clutter-main.c:1331
+#: ../clutter/clutter-main.c:1620
msgid "Disable mipmapping on text"
msgstr ""
-#: clutter/clutter-main.c:1334
+#: ../clutter/clutter-main.c:1623
msgid "Use 'fuzzy' picking"
msgstr ""
-#: clutter/clutter-main.c:1337
+#: ../clutter/clutter-main.c:1626
msgid "Clutter debugging flags to set"
msgstr ""
-#: clutter/clutter-main.c:1339
+#: ../clutter/clutter-main.c:1628
msgid "Clutter debugging flags to unset"
msgstr ""
-#: clutter/clutter-main.c:1343
+#: ../clutter/clutter-main.c:1632
msgid "Clutter profiling flags to set"
msgstr ""
-#: clutter/clutter-main.c:1345
+#: ../clutter/clutter-main.c:1634
msgid "Clutter profiling flags to unset"
msgstr ""
-#: clutter/clutter-main.c:1348
+#: ../clutter/clutter-main.c:1637
msgid "Enable accessibility"
msgstr ""
-#: clutter/clutter-main.c:1530
+#: ../clutter/clutter-main.c:1829
msgid "Clutter Options"
msgstr ""
-#: clutter/clutter-main.c:1531
+#: ../clutter/clutter-main.c:1830
msgid "Show Clutter Options"
msgstr ""
-#: clutter/clutter-media.c:77
+#: ../clutter/clutter-media.c:77
msgid "URI"
msgstr ""
-#: clutter/clutter-media.c:78
+#: ../clutter/clutter-media.c:78
msgid "URI of a media file"
msgstr ""
-#: clutter/clutter-media.c:91
+#: ../clutter/clutter-media.c:91
msgid "Playing"
msgstr ""
-#: clutter/clutter-media.c:92
+#: ../clutter/clutter-media.c:92
msgid "Whether the actor is playing"
msgstr ""
-#: clutter/clutter-media.c:106
+#: ../clutter/clutter-media.c:106
msgid "Progress"
msgstr ""
-#: clutter/clutter-media.c:107
+#: ../clutter/clutter-media.c:107
msgid "Current progress of the playback"
msgstr ""
-#: clutter/clutter-media.c:120
+#: ../clutter/clutter-media.c:120
msgid "Subtitle URI"
msgstr ""
-#: clutter/clutter-media.c:121
+#: ../clutter/clutter-media.c:121
msgid "URI of a subtitle file"
msgstr ""
-#: clutter/clutter-media.c:136
+#: ../clutter/clutter-media.c:136
msgid "Subtitle Font Name"
msgstr ""
-#: clutter/clutter-media.c:137
+#: ../clutter/clutter-media.c:137
msgid "The font used to display subtitles"
msgstr ""
-#: clutter/clutter-media.c:151
+#: ../clutter/clutter-media.c:151
msgid "Audio Volume"
msgstr ""
-#: clutter/clutter-media.c:152
+#: ../clutter/clutter-media.c:152
msgid "The volume of the audio"
msgstr ""
-#: clutter/clutter-media.c:165
+#: ../clutter/clutter-media.c:165
msgid "Can Seek"
msgstr ""
-#: clutter/clutter-media.c:166
+#: ../clutter/clutter-media.c:166
msgid "Whether the current stream is seekable"
msgstr ""
-#: clutter/clutter-media.c:180
+#: ../clutter/clutter-media.c:180
msgid "Buffer Fill"
msgstr ""
-#: clutter/clutter-media.c:181
+#: ../clutter/clutter-media.c:181
msgid "The fill level of the buffer"
msgstr ""
-#: clutter/clutter-media.c:195
+#: ../clutter/clutter-media.c:195
msgid "The duration of the stream, in seconds"
msgstr ""
-#: clutter/clutter-path-constraint.c:213
+#: ../clutter/clutter-path-constraint.c:212
+#: ../clutter/deprecated/clutter-behaviour-path.c:224
+msgid "Path"
+msgstr ""
+
+#: ../clutter/clutter-path-constraint.c:213
msgid "The path used to constrain an actor"
msgstr ""
-#: clutter/clutter-path-constraint.c:227
+#: ../clutter/clutter-path-constraint.c:227
msgid "The offset along the path, between -1.0 and 2.0"
msgstr ""
-#: clutter/clutter-rectangle.c:268
+#: ../clutter/clutter-rectangle.c:268
msgid "The color of the rectangle"
msgstr ""
-#: clutter/clutter-rectangle.c:281
+#: ../clutter/clutter-rectangle.c:281
msgid "Border Color"
msgstr ""
-#: clutter/clutter-rectangle.c:282
+#: ../clutter/clutter-rectangle.c:282
msgid "The color of the border of the rectangle"
msgstr ""
-#: clutter/clutter-rectangle.c:297
+#: ../clutter/clutter-rectangle.c:297
msgid "Border Width"
msgstr ""
-#: clutter/clutter-rectangle.c:298
+#: ../clutter/clutter-rectangle.c:298
msgid "The width of the border of the rectangle"
msgstr ""
-#: clutter/clutter-rectangle.c:312
+#: ../clutter/clutter-rectangle.c:312
msgid "Has Border"
msgstr ""
-#: clutter/clutter-rectangle.c:313
+#: ../clutter/clutter-rectangle.c:313
msgid "Whether the rectangle should have a border"
msgstr ""
-#: clutter/clutter-script.c:434
+#: ../clutter/clutter-script.c:434
msgid "Filename Set"
msgstr ""
-#: clutter/clutter-script.c:435
+#: ../clutter/clutter-script.c:435
msgid "Whether the :filename property is set"
msgstr ""
-#: clutter/clutter-script.c:449 clutter/clutter-texture.c:1081
+#: ../clutter/clutter-script.c:449 ../clutter/clutter-texture.c:1071
msgid "Filename"
msgstr ""
-#: clutter/clutter-script.c:450
+#: ../clutter/clutter-script.c:450
msgid "The path of the currently parsed file"
msgstr ""
-#: clutter/clutter-settings.c:414
+#: ../clutter/clutter-settings.c:439
msgid "Double Click Time"
msgstr ""
-#: clutter/clutter-settings.c:415
+#: ../clutter/clutter-settings.c:440
msgid "The time between clicks necessary to detect a multiple click"
msgstr ""
-#: clutter/clutter-settings.c:430
+#: ../clutter/clutter-settings.c:455
msgid "Double Click Distance"
msgstr ""
-#: clutter/clutter-settings.c:431
+#: ../clutter/clutter-settings.c:456
msgid "The distance between clicks necessary to detect a multiple click"
msgstr ""
-#: clutter/clutter-settings.c:446
+#: ../clutter/clutter-settings.c:471
msgid "Drag Threshold"
msgstr ""
-#: clutter/clutter-settings.c:447
+#: ../clutter/clutter-settings.c:472
msgid "The distance the cursor should travel before starting to drag"
msgstr ""
-#: clutter/clutter-settings.c:462 clutter/clutter-text.c:2939
+#: ../clutter/clutter-settings.c:487 ../clutter/clutter-text.c:2995
msgid "Font Name"
msgstr ""
-#: clutter/clutter-settings.c:463
+#: ../clutter/clutter-settings.c:488
msgid ""
"The description of the default font, as one that could be parsed by Pango"
msgstr ""
-#: clutter/clutter-settings.c:478
+#: ../clutter/clutter-settings.c:503
msgid "Font Antialias"
msgstr ""
-#: clutter/clutter-settings.c:479
+#: ../clutter/clutter-settings.c:504
msgid ""
"Whether to use antialiasing (1 to enable, 0 to disable, and -1 to use the "
"default)"
msgstr ""
-#: clutter/clutter-settings.c:495
+#: ../clutter/clutter-settings.c:520
msgid "Font DPI"
msgstr ""
-#: clutter/clutter-settings.c:496
+#: ../clutter/clutter-settings.c:521
msgid ""
"The resolution of the font, in 1024 * dots/inch, or -1 to use the default"
msgstr ""
-#: clutter/clutter-settings.c:512
+#: ../clutter/clutter-settings.c:537
msgid "Font Hinting"
msgstr ""
-#: clutter/clutter-settings.c:513
+#: ../clutter/clutter-settings.c:538
msgid ""
"Whether to use hinting (1 to enable, 0 to disable and -1 to use the default)"
msgstr ""
-#: clutter/clutter-settings.c:534
+#: ../clutter/clutter-settings.c:559
msgid "Font Hint Style"
msgstr ""
-#: clutter/clutter-settings.c:535
+#: ../clutter/clutter-settings.c:560
msgid "The style of hinting (hintnone, hintslight, hintmedium, hintfull)"
msgstr ""
-#: clutter/clutter-settings.c:556
+#: ../clutter/clutter-settings.c:581
msgid "Font Subpixel Order"
msgstr ""
-#: clutter/clutter-settings.c:557
+#: ../clutter/clutter-settings.c:582
msgid "The type of subpixel antialiasing (none, rgb, bgr, vrgb, vbgr)"
msgstr ""
-#: clutter/clutter-settings.c:574
+#: ../clutter/clutter-settings.c:599
msgid "The minimum duration for a long press gesture to be recognized"
msgstr ""
-#: clutter/clutter-settings.c:581
+#: ../clutter/clutter-settings.c:606
msgid "Fontconfig configuration timestamp"
msgstr ""
-#: clutter/clutter-settings.c:582
+#: ../clutter/clutter-settings.c:607
msgid "Timestamp of the current fontconfig configuration"
msgstr ""
-#: clutter/clutter-shader.c:255
-msgid "Vertex Source"
-msgstr ""
-
-#: clutter/clutter-shader.c:256
-msgid "Source of vertex shader"
-msgstr ""
-
-#: clutter/clutter-shader.c:272
-msgid "Fragment Source"
-msgstr ""
-
-#: clutter/clutter-shader.c:273
-msgid "Source of fragment shader"
-msgstr ""
-
-#: clutter/clutter-shader.c:290
-msgid "Compiled"
+#: ../clutter/clutter-settings.c:624
+msgid "Password Hint Time"
msgstr ""
-#: clutter/clutter-shader.c:291
-msgid "Whether the shader is compiled and linked"
+#: ../clutter/clutter-settings.c:625
+msgid "How long to show the last input character in hidden entries"
msgstr ""
-#: clutter/clutter-shader.c:308
-msgid "Whether the shader is enabled"
-msgstr ""
-
-#: clutter/clutter-shader.c:519
-#, c-format
-msgid "%s compilation failed: %s"
-msgstr ""
-
-#: clutter/clutter-shader.c:520
-msgid "Vertex shader"
-msgstr ""
-
-#: clutter/clutter-shader.c:521
-msgid "Fragment shader"
-msgstr ""
-
-#: clutter/clutter-shader-effect.c:415
+#: ../clutter/clutter-shader-effect.c:482
msgid "Shader Type"
msgstr ""
-#: clutter/clutter-shader-effect.c:416
+#: ../clutter/clutter-shader-effect.c:483
msgid "The type of shader used"
msgstr ""
-#: clutter/clutter-snap-constraint.c:322
+#: ../clutter/clutter-snap-constraint.c:322
msgid "The source of the constraint"
msgstr ""
-#: clutter/clutter-snap-constraint.c:335
+#: ../clutter/clutter-snap-constraint.c:335
msgid "From Edge"
msgstr ""
-#: clutter/clutter-snap-constraint.c:336
+#: ../clutter/clutter-snap-constraint.c:336
msgid "The edge of the actor that should be snapped"
msgstr ""
-#: clutter/clutter-snap-constraint.c:350
+#: ../clutter/clutter-snap-constraint.c:350
msgid "To Edge"
msgstr ""
-#: clutter/clutter-snap-constraint.c:351
+#: ../clutter/clutter-snap-constraint.c:351
msgid "The edge of the source that should be snapped"
msgstr ""
-#: clutter/clutter-snap-constraint.c:367
+#: ../clutter/clutter-snap-constraint.c:367
msgid "The offset in pixels to apply to the constraint"
msgstr ""
-#: clutter/clutter-stage.c:1707
+#: ../clutter/clutter-stage.c:1732
msgid "Fullscreen Set"
msgstr ""
-#: clutter/clutter-stage.c:1708
+#: ../clutter/clutter-stage.c:1733
msgid "Whether the main stage is fullscreen"
msgstr ""
-#: clutter/clutter-stage.c:1724
+#: ../clutter/clutter-stage.c:1749
msgid "Offscreen"
msgstr ""
-#: clutter/clutter-stage.c:1725
+#: ../clutter/clutter-stage.c:1750
msgid "Whether the main stage should be rendered offscreen"
msgstr ""
-#: clutter/clutter-stage.c:1737 clutter/clutter-text.c:3052
+#: ../clutter/clutter-stage.c:1762 ../clutter/clutter-text.c:3108
msgid "Cursor Visible"
msgstr ""
-#: clutter/clutter-stage.c:1738
+#: ../clutter/clutter-stage.c:1763
msgid "Whether the mouse pointer is visible on the main stage"
msgstr ""
-#: clutter/clutter-stage.c:1752
+#: ../clutter/clutter-stage.c:1777
msgid "User Resizable"
msgstr ""
-#: clutter/clutter-stage.c:1753
+#: ../clutter/clutter-stage.c:1778
msgid "Whether the stage is able to be resized via user interaction"
msgstr ""
-#: clutter/clutter-stage.c:1766
+#: ../clutter/clutter-stage.c:1791
msgid "The color of the stage"
msgstr ""
-#: clutter/clutter-stage.c:1780
+#: ../clutter/clutter-stage.c:1805
msgid "Perspective"
msgstr ""
-#: clutter/clutter-stage.c:1781
+#: ../clutter/clutter-stage.c:1806
msgid "Perspective projection parameters"
msgstr ""
-#: clutter/clutter-stage.c:1796
+#: ../clutter/clutter-stage.c:1821
msgid "Title"
msgstr ""
-#: clutter/clutter-stage.c:1797
+#: ../clutter/clutter-stage.c:1822
msgid "Stage Title"
msgstr ""
-#: clutter/clutter-stage.c:1812
+#: ../clutter/clutter-stage.c:1837
msgid "Use Fog"
msgstr ""
-#: clutter/clutter-stage.c:1813
+#: ../clutter/clutter-stage.c:1838
msgid "Whether to enable depth cueing"
msgstr ""
-#: clutter/clutter-stage.c:1827
+#: ../clutter/clutter-stage.c:1852
msgid "Fog"
msgstr ""
-#: clutter/clutter-stage.c:1828
+#: ../clutter/clutter-stage.c:1853
msgid "Settings for the depth cueing"
msgstr ""
-#: clutter/clutter-stage.c:1844
+#: ../clutter/clutter-stage.c:1869
msgid "Use Alpha"
msgstr ""
-#: clutter/clutter-stage.c:1845
+#: ../clutter/clutter-stage.c:1870
msgid "Whether to honour the alpha component of the stage color"
msgstr ""
-#: clutter/clutter-stage.c:1861
+#: ../clutter/clutter-stage.c:1886
msgid "Key Focus"
msgstr ""
-#: clutter/clutter-stage.c:1862
+#: ../clutter/clutter-stage.c:1887
msgid "The currently key focused actor"
msgstr ""
-#: clutter/clutter-stage.c:1878
+#: ../clutter/clutter-stage.c:1903
msgid "No Clear Hint"
msgstr ""
-#: clutter/clutter-stage.c:1879
+#: ../clutter/clutter-stage.c:1904
msgid "Whether the stage should clear its contents"
msgstr ""
-#: clutter/clutter-stage.c:1892
+#: ../clutter/clutter-stage.c:1917
msgid "Accept Focus"
msgstr ""
-#: clutter/clutter-stage.c:1893
+#: ../clutter/clutter-stage.c:1918
msgid "Whether the stage should accept focus on show"
msgstr ""
-#: clutter/clutter-state.c:1472
+#: ../clutter/clutter-state.c:1472
msgid "State"
msgstr ""
-#: clutter/clutter-state.c:1473
+#: ../clutter/clutter-state.c:1473
msgid "Currently set state, (transition to this state might not be complete)"
msgstr ""
-#: clutter/clutter-state.c:1487
+#: ../clutter/clutter-state.c:1487
msgid "Default transition duration"
msgstr ""
-#: clutter/clutter-table-layout.c:585
+#: ../clutter/clutter-table-layout.c:585
msgid "Column Number"
msgstr ""
-#: clutter/clutter-table-layout.c:586
+#: ../clutter/clutter-table-layout.c:586
msgid "The column the widget resides in"
msgstr ""
-#: clutter/clutter-table-layout.c:593
+#: ../clutter/clutter-table-layout.c:593
msgid "Row Number"
msgstr ""
-#: clutter/clutter-table-layout.c:594
+#: ../clutter/clutter-table-layout.c:594
msgid "The row the widget resides in"
msgstr ""
-#: clutter/clutter-table-layout.c:601
+#: ../clutter/clutter-table-layout.c:601
msgid "Column Span"
msgstr ""
-#: clutter/clutter-table-layout.c:602
+#: ../clutter/clutter-table-layout.c:602
msgid "The number of columns the widget should span"
msgstr ""
-#: clutter/clutter-table-layout.c:609
+#: ../clutter/clutter-table-layout.c:609
msgid "Row Span"
msgstr ""
-#: clutter/clutter-table-layout.c:610
+#: ../clutter/clutter-table-layout.c:610
msgid "The number of rows the widget should span"
msgstr ""
-#: clutter/clutter-table-layout.c:617
+#: ../clutter/clutter-table-layout.c:617
msgid "Horizontal Expand"
msgstr ""
-#: clutter/clutter-table-layout.c:618
+#: ../clutter/clutter-table-layout.c:618
msgid "Allocate extra space for the child in horizontal axis"
msgstr ""
-#: clutter/clutter-table-layout.c:624
+#: ../clutter/clutter-table-layout.c:624
msgid "Vertical Expand"
msgstr ""
-#: clutter/clutter-table-layout.c:625
+#: ../clutter/clutter-table-layout.c:625
msgid "Allocate extra space for the child in vertical axis"
msgstr ""
-#: clutter/clutter-table-layout.c:1714
+#: ../clutter/clutter-table-layout.c:1714
msgid "Spacing between columns"
msgstr ""
-#: clutter/clutter-table-layout.c:1728
+#: ../clutter/clutter-table-layout.c:1728
msgid "Spacing between rows"
msgstr ""
-#: clutter/clutter-text.c:2940
+#: ../clutter/clutter-text.c:2996
msgid "The font to be used by the text"
msgstr ""
-#: clutter/clutter-text.c:2957
+#: ../clutter/clutter-text.c:3013
msgid "Font Description"
msgstr ""
-#: clutter/clutter-text.c:2958
+#: ../clutter/clutter-text.c:3014
msgid "The font description to be used"
msgstr ""
-#: clutter/clutter-text.c:2974
+#: ../clutter/clutter-text.c:3030
msgid "Text"
msgstr ""
-#: clutter/clutter-text.c:2975
+#: ../clutter/clutter-text.c:3031
msgid "The text to render"
msgstr ""
-#: clutter/clutter-text.c:2989
+#: ../clutter/clutter-text.c:3045
msgid "Font Color"
msgstr ""
-#: clutter/clutter-text.c:2990
+#: ../clutter/clutter-text.c:3046
msgid "Color of the font used by the text"
msgstr ""
-#: clutter/clutter-text.c:3004
+#: ../clutter/clutter-text.c:3060
msgid "Editable"
msgstr ""
-#: clutter/clutter-text.c:3005
+#: ../clutter/clutter-text.c:3061
msgid "Whether the text is editable"
msgstr ""
-#: clutter/clutter-text.c:3020
+#: ../clutter/clutter-text.c:3076
msgid "Selectable"
msgstr ""
-#: clutter/clutter-text.c:3021
+#: ../clutter/clutter-text.c:3077
msgid "Whether the text is selectable"
msgstr ""
-#: clutter/clutter-text.c:3035
+#: ../clutter/clutter-text.c:3091
msgid "Activatable"
msgstr ""
-#: clutter/clutter-text.c:3036
+#: ../clutter/clutter-text.c:3092
msgid "Whether pressing return causes the activate signal to be emitted"
msgstr ""
-#: clutter/clutter-text.c:3053
+#: ../clutter/clutter-text.c:3109
msgid "Whether the input cursor is visible"
msgstr ""
-#: clutter/clutter-text.c:3067 clutter/clutter-text.c:3068
+#: ../clutter/clutter-text.c:3123 ../clutter/clutter-text.c:3124
msgid "Cursor Color"
msgstr ""
-#: clutter/clutter-text.c:3082
+#: ../clutter/clutter-text.c:3138
msgid "Cursor Color Set"
msgstr ""
-#: clutter/clutter-text.c:3083
+#: ../clutter/clutter-text.c:3139
msgid "Whether the cursor color has been set"
msgstr ""
-#: clutter/clutter-text.c:3098
+#: ../clutter/clutter-text.c:3154
msgid "Cursor Size"
msgstr ""
-#: clutter/clutter-text.c:3099
+#: ../clutter/clutter-text.c:3155
msgid "The width of the cursor, in pixels"
msgstr ""
-#: clutter/clutter-text.c:3113
+#: ../clutter/clutter-text.c:3169
msgid "Cursor Position"
msgstr ""
-#: clutter/clutter-text.c:3114
+#: ../clutter/clutter-text.c:3170
msgid "The cursor position"
msgstr ""
-#: clutter/clutter-text.c:3129
+#: ../clutter/clutter-text.c:3185
msgid "Selection-bound"
msgstr ""
-#: clutter/clutter-text.c:3130
+#: ../clutter/clutter-text.c:3186
msgid "The cursor position of the other end of the selection"
msgstr ""
-#: clutter/clutter-text.c:3145 clutter/clutter-text.c:3146
+#: ../clutter/clutter-text.c:3201 ../clutter/clutter-text.c:3202
msgid "Selection Color"
msgstr ""
-#: clutter/clutter-text.c:3160
+#: ../clutter/clutter-text.c:3216
msgid "Selection Color Set"
msgstr ""
-#: clutter/clutter-text.c:3161
+#: ../clutter/clutter-text.c:3217
msgid "Whether the selection color has been set"
msgstr ""
-#: clutter/clutter-text.c:3176
+#: ../clutter/clutter-text.c:3232
msgid "Attributes"
msgstr ""
-#: clutter/clutter-text.c:3177
+#: ../clutter/clutter-text.c:3233
msgid "A list of style attributes to apply to the contents of the actor"
msgstr ""
-#: clutter/clutter-text.c:3199
+#: ../clutter/clutter-text.c:3255
msgid "Use markup"
msgstr ""
-#: clutter/clutter-text.c:3200
+#: ../clutter/clutter-text.c:3256
msgid "Whether or not the text includes Pango markup"
msgstr ""
-#: clutter/clutter-text.c:3216
+#: ../clutter/clutter-text.c:3272
msgid "Line wrap"
msgstr ""
-#: clutter/clutter-text.c:3217
+#: ../clutter/clutter-text.c:3273
msgid "If set, wrap the lines if the text becomes too wide"
msgstr ""
-#: clutter/clutter-text.c:3232
+#: ../clutter/clutter-text.c:3288
msgid "Line wrap mode"
msgstr ""
-#: clutter/clutter-text.c:3233
+#: ../clutter/clutter-text.c:3289
msgid "Control how line-wrapping is done"
msgstr ""
-#: clutter/clutter-text.c:3248
+#: ../clutter/clutter-text.c:3304
msgid "Ellipsize"
msgstr ""
-#: clutter/clutter-text.c:3249
+#: ../clutter/clutter-text.c:3305
msgid "The preferred place to ellipsize the string"
msgstr ""
-#: clutter/clutter-text.c:3265
+#: ../clutter/clutter-text.c:3321
msgid "Line Alignment"
msgstr ""
-#: clutter/clutter-text.c:3266
+#: ../clutter/clutter-text.c:3322
msgid "The preferred alignment for the string, for multi-line text"
msgstr ""
-#: clutter/clutter-text.c:3282
+#: ../clutter/clutter-text.c:3338
msgid "Justify"
msgstr ""
-#: clutter/clutter-text.c:3283
+#: ../clutter/clutter-text.c:3339
msgid "Whether the text should be justified"
msgstr ""
-#: clutter/clutter-text.c:3298
+#: ../clutter/clutter-text.c:3354
msgid "Password Character"
msgstr ""
-#: clutter/clutter-text.c:3299
+#: ../clutter/clutter-text.c:3355
msgid "If non-zero, use this character to display the actor's contents"
msgstr ""
-#: clutter/clutter-text.c:3313
+#: ../clutter/clutter-text.c:3369
msgid "Max Length"
msgstr ""
-#: clutter/clutter-text.c:3314
+#: ../clutter/clutter-text.c:3370
msgid "Maximum length of the text inside the actor"
msgstr ""
-#: clutter/clutter-text.c:3337
+#: ../clutter/clutter-text.c:3393
msgid "Single Line Mode"
msgstr ""
-#: clutter/clutter-text.c:3338
+#: ../clutter/clutter-text.c:3394
msgid "Whether the text should be a single line"
msgstr ""
-#: clutter/clutter-text.c:3352 clutter/clutter-text.c:3353
+#: ../clutter/clutter-text.c:3408 ../clutter/clutter-text.c:3409
msgid "Selected Text Color"
msgstr ""
-#: clutter/clutter-text.c:3367
+#: ../clutter/clutter-text.c:3423
msgid "Selected Text Color Set"
msgstr ""
-#: clutter/clutter-text.c:3368
+#: ../clutter/clutter-text.c:3424
msgid "Whether the selected text color has been set"
msgstr ""
-#: clutter/clutter-texture.c:995
+#: ../clutter/clutter-texture.c:985
msgid "Sync size of actor"
msgstr ""
-#: clutter/clutter-texture.c:996
+#: ../clutter/clutter-texture.c:986
msgid "Auto sync size of actor to underlying pixbuf dimensions"
msgstr ""
-#: clutter/clutter-texture.c:1003
+#: ../clutter/clutter-texture.c:993
msgid "Disable Slicing"
msgstr ""
-#: clutter/clutter-texture.c:1004
+#: ../clutter/clutter-texture.c:994
msgid ""
"Forces the underlying texture to be singular and not made of smaller space "
"saving individual textures"
msgstr ""
-#: clutter/clutter-texture.c:1013
+#: ../clutter/clutter-texture.c:1003
msgid "Tile Waste"
msgstr ""
-#: clutter/clutter-texture.c:1014
+#: ../clutter/clutter-texture.c:1004
msgid "Maximum waste area of a sliced texture"
msgstr ""
-#: clutter/clutter-texture.c:1022
+#: ../clutter/clutter-texture.c:1012
msgid "Horizontal repeat"
msgstr ""
-#: clutter/clutter-texture.c:1023
+#: ../clutter/clutter-texture.c:1013
msgid "Repeat the contents rather than scaling them horizontally"
msgstr ""
-#: clutter/clutter-texture.c:1030
+#: ../clutter/clutter-texture.c:1020
msgid "Vertical repeat"
msgstr ""
-#: clutter/clutter-texture.c:1031
+#: ../clutter/clutter-texture.c:1021
msgid "Repeat the contents rather than scaling them vertically"
msgstr ""
-#: clutter/clutter-texture.c:1038
+#: ../clutter/clutter-texture.c:1028
msgid "Filter Quality"
msgstr ""
-#: clutter/clutter-texture.c:1039
+#: ../clutter/clutter-texture.c:1029
msgid "Rendering quality used when drawing the texture"
msgstr ""
-#: clutter/clutter-texture.c:1047
+#: ../clutter/clutter-texture.c:1037
msgid "Pixel Format"
msgstr ""
-#: clutter/clutter-texture.c:1048
+#: ../clutter/clutter-texture.c:1038
msgid "The Cogl pixel format to use"
msgstr ""
-#: clutter/clutter-texture.c:1056
+#: ../clutter/clutter-texture.c:1046
msgid "Cogl Texture"
msgstr ""
-#: clutter/clutter-texture.c:1057
+#: ../clutter/clutter-texture.c:1047
msgid "The underlying Cogl texture handle used to draw this actor"
msgstr ""
-#: clutter/clutter-texture.c:1064
+#: ../clutter/clutter-texture.c:1054
msgid "Cogl Material"
msgstr ""
-#: clutter/clutter-texture.c:1065
+#: ../clutter/clutter-texture.c:1055
msgid "The underlying Cogl material handle used to draw this actor"
msgstr ""
-#: clutter/clutter-texture.c:1082
+#: ../clutter/clutter-texture.c:1072
msgid "The path of the file containing the image data"
msgstr ""
-#: clutter/clutter-texture.c:1089
+#: ../clutter/clutter-texture.c:1079
msgid "Keep Aspect Ratio"
msgstr ""
-#: clutter/clutter-texture.c:1090
+#: ../clutter/clutter-texture.c:1080
msgid ""
"Keep the aspect ratio of the texture when requesting the preferred width or "
"height"
msgstr ""
-#: clutter/clutter-texture.c:1116
+#: ../clutter/clutter-texture.c:1106
msgid "Load asynchronously"
msgstr ""
-#: clutter/clutter-texture.c:1117
+#: ../clutter/clutter-texture.c:1107
msgid ""
"Load files inside a thread to avoid blocking when loading images from disk"
msgstr ""
-#: clutter/clutter-texture.c:1133
+#: ../clutter/clutter-texture.c:1123
msgid "Load data asynchronously"
msgstr ""
-#: clutter/clutter-texture.c:1134
+#: ../clutter/clutter-texture.c:1124
msgid ""
"Decode image data files inside a thread to reduce blocking when loading "
"images from disk"
msgstr ""
-#: clutter/clutter-texture.c:1158
+#: ../clutter/clutter-texture.c:1148
msgid "Pick With Alpha"
msgstr ""
-#: clutter/clutter-texture.c:1159
+#: ../clutter/clutter-texture.c:1149
msgid "Shape actor with alpha channel when picking"
msgstr ""
-#: clutter/clutter-texture.c:1557 clutter/clutter-texture.c:1967
-#: clutter/clutter-texture.c:2062 clutter/clutter-texture.c:2343
+#: ../clutter/clutter-texture.c:1547 ../clutter/clutter-texture.c:1930
+#: ../clutter/clutter-texture.c:2024 ../clutter/clutter-texture.c:2305
+#, c-format
msgid "Failed to load the image data"
msgstr ""
-#: clutter/clutter-texture.c:1703
+#: ../clutter/clutter-texture.c:1693
+#, c-format
msgid "YUV textures are not supported"
msgstr ""
-#: clutter/clutter-texture.c:1712
+#: ../clutter/clutter-texture.c:1702
+#, c-format
msgid "YUV2 textues are not supported"
msgstr ""
-#: clutter/clutter-timeline.c:264
+#: ../clutter/clutter-timeline.c:264
msgid "Should the timeline automatically restart"
msgstr ""
-#: clutter/clutter-timeline.c:278
+#: ../clutter/clutter-timeline.c:278
msgid "Delay"
msgstr ""
-#: clutter/clutter-timeline.c:279
+#: ../clutter/clutter-timeline.c:279
msgid "Delay before start"
msgstr ""
-#: clutter/clutter-timeline.c:295
+#: ../clutter/clutter-timeline.c:295
msgid "Duration of the timeline in milliseconds"
msgstr ""
-#: clutter/clutter-timeline.c:311
+#: ../clutter/clutter-timeline.c:310
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:526
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:335
+msgid "Direction"
+msgstr ""
+
+#: ../clutter/clutter-timeline.c:311
msgid "Direction of the timeline"
msgstr ""
-#: clutter/clutter-timeline.c:326
+#: ../clutter/clutter-timeline.c:326
msgid "Auto Reverse"
msgstr ""
-#: clutter/clutter-timeline.c:327
+#: ../clutter/clutter-timeline.c:327
msgid "Whether the direction should be reversed when reaching the end"
msgstr ""
-#: clutter/evdev/clutter-input-device-evdev.c:147
+#: ../clutter/deprecated/clutter-behaviour.c:241
+msgid "Alpha Object to drive the behaviour"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:180
+msgid "Start Depth"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:181
+msgid "Initial depth to apply"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:196
+msgid "End Depth"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:197
+msgid "Final depth to apply"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:399
+msgid "Start Angle"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:400
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:282
+msgid "Initial angle"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:415
+msgid "End Angle"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:416
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:300
+msgid "Final angle"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:431
+msgid "Angle x tilt"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:432
+msgid "Tilt of the ellipse around x axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:447
+msgid "Angle y tilt"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:448
+msgid "Tilt of the ellipse around y axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:463
+msgid "Angle z tilt"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:464
+msgid "Tilt of the ellipse around z axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:480
+msgid "Width of the ellipse"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:496
+msgid "Height of ellipse"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:511
+msgid "Center"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:512
+msgid "Center of ellipse"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:527
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:336
+msgid "Direction of rotation"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:183
+msgid "Opacity Start"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:184
+msgid "Initial opacity level"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:201
+msgid "Opacity End"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:202
+msgid "Final opacity level"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-path.c:225
+msgid "The ClutterPath object representing the path to animate along"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:281
+msgid "Angle Begin"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:299
+msgid "Angle End"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:317
+msgid "Axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:318
+msgid "Axis of rotation"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:353
+msgid "Center X"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:354
+msgid "X coordinate of the center of rotation"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:371
+msgid "Center Y"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:372
+msgid "Y coordinate of the center of rotation"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:389
+msgid "Center Z"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:390
+msgid "Z coordinate of the center of rotation"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:224
+msgid "X Start Scale"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:225
+msgid "Initial scale on the X axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:243
+msgid "X End Scale"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:244
+msgid "Final scale on the X axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:262
+msgid "Y Start Scale"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:263
+msgid "Initial scale on the Y axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:281
+msgid "Y End Scale"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:282
+msgid "Final scale on the Y axis"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:257
+msgid "Vertex Source"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:258
+msgid "Source of vertex shader"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:274
+msgid "Fragment Source"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:275
+msgid "Source of fragment shader"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:292
+msgid "Compiled"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:293
+msgid "Whether the shader is compiled and linked"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:310
+msgid "Whether the shader is enabled"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:521
+#, c-format
+msgid "%s compilation failed: %s"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:522
+msgid "Vertex shader"
+msgstr ""
+
+#: ../clutter/deprecated/clutter-shader.c:523
+msgid "Fragment shader"
+msgstr ""
+
+#: ../clutter/evdev/clutter-input-device-evdev.c:147
msgid "sysfs Path"
msgstr ""
-#: clutter/evdev/clutter-input-device-evdev.c:148
+#: ../clutter/evdev/clutter-input-device-evdev.c:148
msgid "Path of the device in sysfs"
msgstr ""
-#: clutter/evdev/clutter-input-device-evdev.c:163
+#: ../clutter/evdev/clutter-input-device-evdev.c:163
msgid "Device Path"
msgstr ""
-#: clutter/evdev/clutter-input-device-evdev.c:164
+#: ../clutter/evdev/clutter-input-device-evdev.c:164
msgid "Path of the device node"
msgstr ""
-#: clutter/x11/clutter-backend-x11.c:483
+#: ../clutter/gdk/clutter-backend-gdk.c:287
+#, c-format
+msgid "Could not find a suitable CoglWinsys for a GdkDisplay of type %s"
+msgstr ""
+
+#: ../clutter/x11/clutter-backend-x11.c:506
msgid "X display to use"
msgstr ""
-#: clutter/x11/clutter-backend-x11.c:489
+#: ../clutter/x11/clutter-backend-x11.c:512
msgid "X screen to use"
msgstr ""
-#: clutter/x11/clutter-backend-x11.c:494
+#: ../clutter/x11/clutter-backend-x11.c:517
msgid "Make X calls synchronous"
msgstr ""
-#: clutter/x11/clutter-backend-x11.c:501
+#: ../clutter/x11/clutter-backend-x11.c:524
msgid "Enable XInput support"
msgstr ""
-#: clutter/x11/clutter-keymap-x11.c:317
+#: ../clutter/x11/clutter-keymap-x11.c:317
msgid "The Clutter backend"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:545
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:544
msgid "Pixmap"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:546
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:545
msgid "The X11 Pixmap to be bound"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:554
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:553
msgid "Pixmap width"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:555
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:554
msgid "The width of the pixmap bound to this texture"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:563
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:562
msgid "Pixmap height"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:564
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:563
msgid "The height of the pixmap bound to this texture"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:572
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:571
msgid "Pixmap Depth"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:573
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:572
msgid "The depth (in number of bits) of the pixmap bound to this texture"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:581
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:580
msgid "Automatic Updates"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:582
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:581
msgid "If the texture should be kept in sync with any pixmap changes."
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:590
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:589
msgid "Window"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:591
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:590
msgid "The X11 Window to be bound"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:599
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:598
msgid "Window Redirect Automatic"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:600
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:599
msgid "If composite window redirects are set to Automatic (or Manual if false)"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:610
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:609
msgid "Window Mapped"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:611
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:610
msgid "If window is mapped"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:620
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:619
msgid "Destroyed"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:621
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:620
msgid "If window has been destroyed"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:629
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:628
msgid "Window X"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:630
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:629
msgid "X position of window on screen according to X11"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:638
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:637
msgid "Window Y"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:639
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:638
msgid "Y position of window on screen according to X11"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:646
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:645
msgid "Window Override Redirect"
msgstr ""
-#: clutter/x11/clutter-x11-texture-pixmap.c:647
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:646
msgid "If this is an override-redirect window"
msgstr ""
diff --git a/po/es.po b/po/es.po
index 83f4771c6..134ea6c1e 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,416 +1,416 @@
# Spanish translation for clutter.
# Copyright (C) 2011 clutter's COPYRIGHT HOLDER
# This file is distributed under the same license as the clutter package.
-# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: clutter master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=clutter&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-10-19 12:51+0000\n"
-"PO-Revision-Date: 2011-10-22 17:52+0200\n"
-"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
-"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
+"POT-Creation-Date: 2011-11-10 18:55+0000\n"
+"PO-Revision-Date: 2011-11-11 18:10+0100\n"
+"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
+"Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../clutter/clutter-actor.c:3877
+#: ../clutter/clutter-actor.c:3886
msgid "X coordinate"
msgstr "Coordenada X"
-#: ../clutter/clutter-actor.c:3878
+#: ../clutter/clutter-actor.c:3887
msgid "X coordinate of the actor"
msgstr "Coordenada X del actor"
-#: ../clutter/clutter-actor.c:3893
+#: ../clutter/clutter-actor.c:3902
msgid "Y coordinate"
msgstr "Coordenada Y"
-#: ../clutter/clutter-actor.c:3894
+#: ../clutter/clutter-actor.c:3903
msgid "Y coordinate of the actor"
msgstr "Coordenada Y del actor"
-#: ../clutter/clutter-actor.c:3909
+#: ../clutter/clutter-actor.c:3918
#: ../clutter/deprecated/clutter-behaviour-ellipse.c:479
msgid "Width"
msgstr "Anchura"
-#: ../clutter/clutter-actor.c:3910
+#: ../clutter/clutter-actor.c:3919
msgid "Width of the actor"
msgstr "Anchura del actor"
-#: ../clutter/clutter-actor.c:3924
+#: ../clutter/clutter-actor.c:3933
#: ../clutter/deprecated/clutter-behaviour-ellipse.c:495
msgid "Height"
msgstr "Altura"
-#: ../clutter/clutter-actor.c:3925
+#: ../clutter/clutter-actor.c:3934
msgid "Height of the actor"
msgstr "Altura del actor"
-#: ../clutter/clutter-actor.c:3943
+#: ../clutter/clutter-actor.c:3952
msgid "Fixed X"
msgstr "X fija"
-#: ../clutter/clutter-actor.c:3944
+#: ../clutter/clutter-actor.c:3953
msgid "Forced X position of the actor"
msgstr "Posición X forzada del actor"
-#: ../clutter/clutter-actor.c:3962
+#: ../clutter/clutter-actor.c:3971
msgid "Fixed Y"
msgstr "Y fija"
-#: ../clutter/clutter-actor.c:3963
+#: ../clutter/clutter-actor.c:3972
msgid "Forced Y position of the actor"
msgstr "Posición Y forzada del actor"
-#: ../clutter/clutter-actor.c:3979
+#: ../clutter/clutter-actor.c:3988
msgid "Fixed position set"
msgstr "Posición fija establecida"
-#: ../clutter/clutter-actor.c:3980
+#: ../clutter/clutter-actor.c:3989
msgid "Whether to use fixed positioning for the actor"
msgstr "Indica si se usa una posición fija para el actor"
-#: ../clutter/clutter-actor.c:4002
+#: ../clutter/clutter-actor.c:4011
msgid "Min Width"
msgstr "Anchura mínima"
-#: ../clutter/clutter-actor.c:4003
+#: ../clutter/clutter-actor.c:4012
msgid "Forced minimum width request for the actor"
msgstr "Solicitud de anchura mínima forzada para el actor"
-#: ../clutter/clutter-actor.c:4022
+#: ../clutter/clutter-actor.c:4031
msgid "Min Height"
msgstr "Altura mínima"
-#: ../clutter/clutter-actor.c:4023
+#: ../clutter/clutter-actor.c:4032
msgid "Forced minimum height request for the actor"
msgstr "Solicitud de altura mínima forzada para el actor"
-#: ../clutter/clutter-actor.c:4042
+#: ../clutter/clutter-actor.c:4051
msgid "Natural Width"
msgstr "Anchura natural"
-#: ../clutter/clutter-actor.c:4043
+#: ../clutter/clutter-actor.c:4052
msgid "Forced natural width request for the actor"
msgstr "Solicitud de anchura natural forzada para el actor"
-#: ../clutter/clutter-actor.c:4062
+#: ../clutter/clutter-actor.c:4071
msgid "Natural Height"
msgstr "Altura natural"
-#: ../clutter/clutter-actor.c:4063
+#: ../clutter/clutter-actor.c:4072
msgid "Forced natural height request for the actor"
msgstr "Solicitud de altura natural forzada para el actor"
-#: ../clutter/clutter-actor.c:4079
+#: ../clutter/clutter-actor.c:4088
msgid "Minimum width set"
msgstr "Anchura mínima establecida"
-#: ../clutter/clutter-actor.c:4080
+#: ../clutter/clutter-actor.c:4089
msgid "Whether to use the min-width property"
msgstr "Indica si se usa la propiedad «anchura mínima»"
-#: ../clutter/clutter-actor.c:4095
+#: ../clutter/clutter-actor.c:4104
msgid "Minimum height set"
msgstr "Altura mínima establecida"
-#: ../clutter/clutter-actor.c:4096
+#: ../clutter/clutter-actor.c:4105
msgid "Whether to use the min-height property"
msgstr "Indica si se usa la propiedad «altura mínima»"
-#: ../clutter/clutter-actor.c:4111
+#: ../clutter/clutter-actor.c:4120
msgid "Natural width set"
msgstr "Anchura natural establecida"
-#: ../clutter/clutter-actor.c:4112
+#: ../clutter/clutter-actor.c:4121
msgid "Whether to use the natural-width property"
msgstr "Indica si se usa la propiedad «anchura natural»"
-#: ../clutter/clutter-actor.c:4129
+#: ../clutter/clutter-actor.c:4138
msgid "Natural height set"
msgstr "Altura natural establecida"
-#: ../clutter/clutter-actor.c:4130
+#: ../clutter/clutter-actor.c:4139
msgid "Whether to use the natural-height property"
msgstr "Indica si se usa la propiedad «altura natural»"
-#: ../clutter/clutter-actor.c:4149
+#: ../clutter/clutter-actor.c:4158
msgid "Allocation"
msgstr "Asignación"
-#: ../clutter/clutter-actor.c:4150
+#: ../clutter/clutter-actor.c:4159
msgid "The actor's allocation"
msgstr "La asignación del actor"
-#: ../clutter/clutter-actor.c:4206
+#: ../clutter/clutter-actor.c:4215
msgid "Request Mode"
msgstr "Modo de solicitud"
-#: ../clutter/clutter-actor.c:4207
+#: ../clutter/clutter-actor.c:4216
msgid "The actor's request mode"
msgstr "El modo de solicitud del actor"
-#: ../clutter/clutter-actor.c:4222
+#: ../clutter/clutter-actor.c:4231
msgid "Depth"
msgstr "Profundidad"
-#: ../clutter/clutter-actor.c:4223
+#: ../clutter/clutter-actor.c:4232
msgid "Position on the Z axis"
msgstr "Posición en el eje Z"
-#: ../clutter/clutter-actor.c:4237
+#: ../clutter/clutter-actor.c:4246
msgid "Opacity"
msgstr "Opacidad"
-#: ../clutter/clutter-actor.c:4238
+#: ../clutter/clutter-actor.c:4247
msgid "Opacity of an actor"
msgstr "Opacidad de un actor"
-#: ../clutter/clutter-actor.c:4257
+#: ../clutter/clutter-actor.c:4266
msgid "Offscreen redirect"
msgstr "Redirección fuera de la pantalla"
-#: ../clutter/clutter-actor.c:4258
+#: ../clutter/clutter-actor.c:4267
msgid "Flags controlling when to flatten the actor into a single image"
msgstr "Opciones que controlan si se debe aplanar el actor en una única imagen"
-#: ../clutter/clutter-actor.c:4276
+#: ../clutter/clutter-actor.c:4285
msgid "Visible"
msgstr "Visible"
-#: ../clutter/clutter-actor.c:4277
+#: ../clutter/clutter-actor.c:4286
msgid "Whether the actor is visible or not"
msgstr "Indica si el actor es visible o no"
-#: ../clutter/clutter-actor.c:4292
+#: ../clutter/clutter-actor.c:4301
msgid "Mapped"
msgstr "Mapeado"
-#: ../clutter/clutter-actor.c:4293
+#: ../clutter/clutter-actor.c:4302
msgid "Whether the actor will be painted"
msgstr "Indica si se dibujará el actor"
-#: ../clutter/clutter-actor.c:4307
+#: ../clutter/clutter-actor.c:4316
msgid "Realized"
msgstr "Realizado"
-#: ../clutter/clutter-actor.c:4308
+#: ../clutter/clutter-actor.c:4317
msgid "Whether the actor has been realized"
msgstr "Indica si el actor se ha realizado"
-#: ../clutter/clutter-actor.c:4324
+#: ../clutter/clutter-actor.c:4333
msgid "Reactive"
msgstr "Reactivo"
-#: ../clutter/clutter-actor.c:4325
+#: ../clutter/clutter-actor.c:4334
msgid "Whether the actor is reactive to events"
msgstr "Indica si el actor es reactivo a eventos"
-#: ../clutter/clutter-actor.c:4337
+#: ../clutter/clutter-actor.c:4346
msgid "Has Clip"
msgstr "Tiene recorte"
-#: ../clutter/clutter-actor.c:4338
+#: ../clutter/clutter-actor.c:4347
msgid "Whether the actor has a clip set"
msgstr "Indica si el actor tiene un conjunto de recortes"
-#: ../clutter/clutter-actor.c:4353
+#: ../clutter/clutter-actor.c:4362
msgid "Clip"
msgstr "Recortar"
-#: ../clutter/clutter-actor.c:4354
+#: ../clutter/clutter-actor.c:4363
msgid "The clip region for the actor"
msgstr "La región de recorte del actor"
-#: ../clutter/clutter-actor.c:4368 ../clutter/clutter-actor-meta.c:207
+#: ../clutter/clutter-actor.c:4377 ../clutter/clutter-actor-meta.c:207
#: ../clutter/clutter-binding-pool.c:319 ../clutter/clutter-input-device.c:236
msgid "Name"
msgstr "Nombre"
-#: ../clutter/clutter-actor.c:4369
+#: ../clutter/clutter-actor.c:4378
msgid "Name of the actor"
msgstr "Nombre del actor"
-#: ../clutter/clutter-actor.c:4383
+#: ../clutter/clutter-actor.c:4392
msgid "Scale X"
msgstr "Escala en X"
-#: ../clutter/clutter-actor.c:4384
+#: ../clutter/clutter-actor.c:4393
msgid "Scale factor on the X axis"
msgstr "Factor de escala en el eje X"
-#: ../clutter/clutter-actor.c:4399
+#: ../clutter/clutter-actor.c:4408
msgid "Scale Y"
msgstr "Escala en Y"
-#: ../clutter/clutter-actor.c:4400
+#: ../clutter/clutter-actor.c:4409
msgid "Scale factor on the Y axis"
msgstr "Factor de escala en el eje Y"
-#: ../clutter/clutter-actor.c:4415
+#: ../clutter/clutter-actor.c:4424
msgid "Scale Center X"
msgstr "Centro X del escalado"
-#: ../clutter/clutter-actor.c:4416
+#: ../clutter/clutter-actor.c:4425
msgid "Horizontal scale center"
msgstr "Centro de la escala horizontal"
-#: ../clutter/clutter-actor.c:4431
+#: ../clutter/clutter-actor.c:4440
msgid "Scale Center Y"
msgstr "Centro Y del escalado"
-#: ../clutter/clutter-actor.c:4432
+#: ../clutter/clutter-actor.c:4441
msgid "Vertical scale center"
msgstr "Centro de la escala vertical"
-#: ../clutter/clutter-actor.c:4447
+#: ../clutter/clutter-actor.c:4456
msgid "Scale Gravity"
msgstr "Gravedad del escalado"
-#: ../clutter/clutter-actor.c:4448
+#: ../clutter/clutter-actor.c:4457
msgid "The center of scaling"
msgstr "El centro del escalado"
-#: ../clutter/clutter-actor.c:4465
+#: ../clutter/clutter-actor.c:4474
msgid "Rotation Angle X"
msgstr "Ángulo de rotación X"
-#: ../clutter/clutter-actor.c:4466
+#: ../clutter/clutter-actor.c:4475
msgid "The rotation angle on the X axis"
msgstr "El ángulo de rotación en el eje X"
-#: ../clutter/clutter-actor.c:4481
+#: ../clutter/clutter-actor.c:4490
msgid "Rotation Angle Y"
msgstr "Ángulo de rotación Y"
-#: ../clutter/clutter-actor.c:4482
+#: ../clutter/clutter-actor.c:4491
msgid "The rotation angle on the Y axis"
msgstr "El ángulo de rotación en el eje Y"
-#: ../clutter/clutter-actor.c:4497
+#: ../clutter/clutter-actor.c:4506
msgid "Rotation Angle Z"
msgstr "Ángulo de rotación Z"
-#: ../clutter/clutter-actor.c:4498
+#: ../clutter/clutter-actor.c:4507
msgid "The rotation angle on the Z axis"
msgstr "El ángulo de rotación en el eje Z"
-#: ../clutter/clutter-actor.c:4513
+#: ../clutter/clutter-actor.c:4522
msgid "Rotation Center X"
msgstr "Centro de rotación X"
-#: ../clutter/clutter-actor.c:4514
+#: ../clutter/clutter-actor.c:4523
msgid "The rotation center on the X axis"
msgstr "El ángulo de rotación en el eje Y"
-#: ../clutter/clutter-actor.c:4530
+#: ../clutter/clutter-actor.c:4539
msgid "Rotation Center Y"
msgstr "Centro de rotación Y"
-#: ../clutter/clutter-actor.c:4531
+#: ../clutter/clutter-actor.c:4540
msgid "The rotation center on the Y axis"
msgstr "En centro de la rotación en el eje Y"
-#: ../clutter/clutter-actor.c:4547
+#: ../clutter/clutter-actor.c:4556
msgid "Rotation Center Z"
msgstr "Centro de rotación Z"
-#: ../clutter/clutter-actor.c:4548
+#: ../clutter/clutter-actor.c:4557
msgid "The rotation center on the Z axis"
msgstr "El ángulo de rotación en el eje Z"
-#: ../clutter/clutter-actor.c:4564
+#: ../clutter/clutter-actor.c:4573
msgid "Rotation Center Z Gravity"
msgstr "Gravedad del centro de rotación Z"
-#: ../clutter/clutter-actor.c:4565
+#: ../clutter/clutter-actor.c:4574
msgid "Center point for rotation around the Z axis"
msgstr "Punto central de la rotación alrededor del eje Z"
-#: ../clutter/clutter-actor.c:4583
+#: ../clutter/clutter-actor.c:4592
msgid "Anchor X"
msgstr "Ancla X"
-#: ../clutter/clutter-actor.c:4584
+#: ../clutter/clutter-actor.c:4593
msgid "X coordinate of the anchor point"
msgstr "Coordenada X del punto de anclado"
-#: ../clutter/clutter-actor.c:4600
+#: ../clutter/clutter-actor.c:4609
msgid "Anchor Y"
msgstr "Ancla Y"
-#: ../clutter/clutter-actor.c:4601
+#: ../clutter/clutter-actor.c:4610
msgid "Y coordinate of the anchor point"
msgstr "Coordenada Y del punto de anclado"
-#: ../clutter/clutter-actor.c:4616
+#: ../clutter/clutter-actor.c:4625
msgid "Anchor Gravity"
msgstr "Gravedad del ancla"
-#: ../clutter/clutter-actor.c:4617
+#: ../clutter/clutter-actor.c:4626
msgid "The anchor point as a ClutterGravity"
msgstr "El punto de anclado como un «ClutterGravity»"
-#: ../clutter/clutter-actor.c:4636
+#: ../clutter/clutter-actor.c:4645
msgid "Show on set parent"
msgstr "Mostrar en el conjunto padre"
-#: ../clutter/clutter-actor.c:4637
+#: ../clutter/clutter-actor.c:4646
msgid "Whether the actor is shown when parented"
msgstr "Indica si el actor se muestra cuando tiene padre"
-#: ../clutter/clutter-actor.c:4657
+#: ../clutter/clutter-actor.c:4666
msgid "Clip to Allocation"
msgstr "Recortar a la asignación"
-#: ../clutter/clutter-actor.c:4658
+#: ../clutter/clutter-actor.c:4667
msgid "Sets the clip region to track the actor's allocation"
msgstr "Configura la región de recorte para seguir la ubicación del actor"
-#: ../clutter/clutter-actor.c:4668
+#: ../clutter/clutter-actor.c:4677
msgid "Text Direction"
msgstr "Dirección del texto"
-#: ../clutter/clutter-actor.c:4669
+#: ../clutter/clutter-actor.c:4678
msgid "Direction of the text"
msgstr "Dirección del texto"
-#: ../clutter/clutter-actor.c:4687
+#: ../clutter/clutter-actor.c:4696
msgid "Has Pointer"
msgstr "Tiene puntero"
-#: ../clutter/clutter-actor.c:4688
+#: ../clutter/clutter-actor.c:4697
msgid "Whether the actor contains the pointer of an input device"
msgstr "Indica si el actor contiene un puntero a un dispositivo de entrada"
-#: ../clutter/clutter-actor.c:4705
+#: ../clutter/clutter-actor.c:4714
msgid "Actions"
msgstr "Acciones"
-#: ../clutter/clutter-actor.c:4706
+#: ../clutter/clutter-actor.c:4715
msgid "Adds an action to the actor"
msgstr "Añade una acción al actor"
-#: ../clutter/clutter-actor.c:4720
+#: ../clutter/clutter-actor.c:4729
msgid "Constraints"
msgstr "Restricciones"
-#: ../clutter/clutter-actor.c:4721
+#: ../clutter/clutter-actor.c:4730
msgid "Adds a constraint to the actor"
msgstr "Añade una restricción al actor"
-#: ../clutter/clutter-actor.c:4735
+#: ../clutter/clutter-actor.c:4744
msgid "Effect"
msgstr "Efecto"
-#: ../clutter/clutter-actor.c:4736
+#: ../clutter/clutter-actor.c:4745
msgid "Add an effect to be applied on the actor"
msgstr "Añadir un efecto que aplicar al actor"
@@ -436,7 +436,7 @@ msgid "Whether the meta is enabled"
msgstr "Indica si la meta está activada"
#: ../clutter/clutter-align-constraint.c:281
-#: ../clutter/clutter-bind-constraint.c:349 ../clutter/clutter-clone.c:340
+#: ../clutter/clutter-bind-constraint.c:349 ../clutter/clutter-clone.c:345
#: ../clutter/clutter-snap-constraint.c:321
msgid "Source"
msgstr "Fuente"
@@ -538,191 +538,15 @@ msgstr "La duración de la animación"
msgid "The timeline of the animation"
msgstr "La línea de tiempo de la animación"
-#: ../clutter/deprecated/clutter-behaviour.c:241
-msgid "Alpha Object to drive the behaviour"
-msgstr "Objeto alfa para dirigir el comportamiento"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:180
-msgid "Start Depth"
-msgstr "Profundidad inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:181
-msgid "Initial depth to apply"
-msgstr "Profundidad inicial que aplicar"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:196
-msgid "End Depth"
-msgstr "Profundidad final"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:197
-msgid "Final depth to apply"
-msgstr "Profundidad final que aplicar"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:399
-msgid "Start Angle"
-msgstr "Ángulo inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:400
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:282
-msgid "Initial angle"
-msgstr "Ángulo inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:415
-msgid "End Angle"
-msgstr "Ángulo final"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:416
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:300
-msgid "Final angle"
-msgstr "Ángulo final"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:431
-msgid "Angle x tilt"
-msgstr "Inclinación X del ángulo"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:432
-msgid "Tilt of the ellipse around x axis"
-msgstr "Inclinación de la elipse sobre el eje X"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:447
-msgid "Angle y tilt"
-msgstr "Inclinación Y del ángulo"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:448
-msgid "Tilt of the ellipse around y axis"
-msgstr "Inclinación de la elipse sobre el eje Y"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:463
-msgid "Angle z tilt"
-msgstr "Inclinación Z del ángulo"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:464
-msgid "Tilt of the ellipse around z axis"
-msgstr "Inclinación de la elipse sobre el eje Z"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:480
-msgid "Width of the ellipse"
-msgstr "Anchura de la elipse"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:496
-msgid "Height of ellipse"
-msgstr "Altura de la elipse"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:511
-msgid "Center"
-msgstr "Centro"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:512
-msgid "Center of ellipse"
-msgstr "Centro de la elipse"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:526
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:335
-#: ../clutter/clutter-timeline.c:310
-msgid "Direction"
-msgstr "Dirección"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:527
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:336
-msgid "Direction of rotation"
-msgstr "Dirección de la rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:183
-msgid "Opacity Start"
-msgstr "Opacidad inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:184
-msgid "Initial opacity level"
-msgstr "Nivel inicial de opacidad"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:201
-msgid "Opacity End"
-msgstr "Opacidad final"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:202
-msgid "Final opacity level"
-msgstr "Nivel final de opacidad"
-
-#: ../clutter/deprecated/clutter-behaviour-path.c:224
-#: ../clutter/clutter-path-constraint.c:212
-msgid "Path"
-msgstr "Ruta"
-
-#: ../clutter/deprecated/clutter-behaviour-path.c:225
-msgid "The ClutterPath object representing the path to animate along"
-msgstr "El objeto «ClutterPath» que representa la ruta sobre la que animar"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:281
-msgid "Angle Begin"
-msgstr "Ángulo inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:299
-msgid "Angle End"
-msgstr "Ángulo final"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:317
-msgid "Axis"
-msgstr "Eje"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:318
-msgid "Axis of rotation"
-msgstr "Eje de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:353
-msgid "Center X"
-msgstr "Centro X"
+#: ../clutter/clutter-backend.c:333
+#| msgid "The Clutter backend"
+msgid "Unable to initialize the Clutter backend"
+msgstr "No se pudo inicializar el backend de Clutter"
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:354
-msgid "X coordinate of the center of rotation"
-msgstr "Coordenada X del centro de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:371
-msgid "Center Y"
-msgstr "Centro Y"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:372
-msgid "Y coordinate of the center of rotation"
-msgstr "Coordenada Y del centro de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:389
-msgid "Center Z"
-msgstr "Centro Z"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:390
-msgid "Z coordinate of the center of rotation"
-msgstr "Coordenada Z del centro de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:224
-msgid "X Start Scale"
-msgstr "Escala X inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:225
-msgid "Initial scale on the X axis"
-msgstr "Escala inicial en el eje X"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:243
-msgid "X End Scale"
-msgstr "Escala X final"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:244
-msgid "Final scale on the X axis"
-msgstr "Escala final en el eje X"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:262
-msgid "Y Start Scale"
-msgstr "Escala Y inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:263
-msgid "Initial scale on the Y axis"
-msgstr "Escala inicial en el eje Y"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:281
-msgid "Y End Scale"
-msgstr "Escala Y final"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:282
-msgid "Final scale on the Y axis"
-msgstr "Escala final en el eje Y"
+#: ../clutter/clutter-backend.c:407
+#, c-format
+msgid "The backend of type '%s' does not support creating multiple stages"
+msgstr "El backend del tipo «%s» no soporta la creación de múltiples escenarios"
#: ../clutter/clutter-bind-constraint.c:350
msgid "The source of the binding"
@@ -972,7 +796,7 @@ msgstr "Umbral de la pulsación larga"
msgid "The maximum threshold before a long press is cancelled"
msgstr "El umbral máximo antes de cancelar una pulsación larga"
-#: ../clutter/clutter-clone.c:341
+#: ../clutter/clutter-clone.c:346
msgid "Specifies the actor to be cloned"
msgstr "Especifica qué actor clonar"
@@ -1198,59 +1022,59 @@ msgstr "El gestor que ha creado este dato"
#. * Do NOT translate it to non-English e.g. "predefinito:LTR"! If
#. * it isn't default:LTR or default:RTL it will not work.
#.
-#: ../clutter/clutter-main.c:713
+#: ../clutter/clutter-main.c:752
msgid "default:LTR"
msgstr "default:LTR"
-#: ../clutter/clutter-main.c:1524
+#: ../clutter/clutter-main.c:1610
msgid "Show frames per second"
msgstr "Mostrar fotogramas por segundo"
-#: ../clutter/clutter-main.c:1526
+#: ../clutter/clutter-main.c:1612
msgid "Default frame rate"
msgstr "Velocidad de fotogramas predeterminada"
-#: ../clutter/clutter-main.c:1528
+#: ../clutter/clutter-main.c:1614
msgid "Make all warnings fatal"
msgstr "Hacer que todos los avisos actúen como errores"
-#: ../clutter/clutter-main.c:1531
+#: ../clutter/clutter-main.c:1617
msgid "Direction for the text"
msgstr "Dirección del texto"
-#: ../clutter/clutter-main.c:1534
+#: ../clutter/clutter-main.c:1620
msgid "Disable mipmapping on text"
msgstr "Desactivar «mipmapping» en el texto"
-#: ../clutter/clutter-main.c:1537
+#: ../clutter/clutter-main.c:1623
msgid "Use 'fuzzy' picking"
msgstr "Usar selección «difusa»"
-#: ../clutter/clutter-main.c:1540
+#: ../clutter/clutter-main.c:1626
msgid "Clutter debugging flags to set"
msgstr "Opciones de depuración de Clutter que establecer"
-#: ../clutter/clutter-main.c:1542
+#: ../clutter/clutter-main.c:1628
msgid "Clutter debugging flags to unset"
msgstr "Opciones de depuración de Clutter que no establecer"
-#: ../clutter/clutter-main.c:1546
+#: ../clutter/clutter-main.c:1632
msgid "Clutter profiling flags to set"
msgstr "Opciones de perfil de Clutter que establecer"
-#: ../clutter/clutter-main.c:1548
+#: ../clutter/clutter-main.c:1634
msgid "Clutter profiling flags to unset"
msgstr "Opciones de perfil de Clutter que no establecer"
-#: ../clutter/clutter-main.c:1551
+#: ../clutter/clutter-main.c:1637
msgid "Enable accessibility"
msgstr "Activar accesibilidad"
-#: ../clutter/clutter-main.c:1739
+#: ../clutter/clutter-main.c:1829
msgid "Clutter Options"
msgstr "Opciones de Clutter"
-#: ../clutter/clutter-main.c:1740
+#: ../clutter/clutter-main.c:1830
msgid "Show Clutter Options"
msgstr "Mostrar las opciones de Clutter"
@@ -1322,6 +1146,11 @@ msgstr "El nivel de llenado del búfer"
msgid "The duration of the stream, in seconds"
msgstr "La duración del flujo, en segundos"
+#: ../clutter/clutter-path-constraint.c:212
+#: ../clutter/deprecated/clutter-behaviour-path.c:224
+msgid "Path"
+msgstr "Ruta"
+
#: ../clutter/clutter-path-constraint.c:213
msgid "The path used to constrain an actor"
msgstr "La ruta usada para restringir a un actor"
@@ -1460,8 +1289,7 @@ msgstr "Orden de tipografías del subpíxel"
#: ../clutter/clutter-settings.c:582
msgid "The type of subpixel antialiasing (none, rgb, bgr, vrgb, vbgr)"
-msgstr ""
-"El tipo de suavizado del subpíxel («none», «rgb», «bgr», «vrgb», «vbgr»)"
+msgstr "El tipo de suavizado del subpíxel («none», «rgb», «bgr», «vrgb», «vbgr»)"
#: ../clutter/clutter-settings.c:599
msgid "The minimum duration for a long press gesture to be recognized"
@@ -1476,7 +1304,6 @@ msgid "Timestamp of the current fontconfig configuration"
msgstr "Marca de tiempo de la configuración actual de fontconfig"
#: ../clutter/clutter-settings.c:624
-#| msgid "Password Character"
msgid "Password Hint Time"
msgstr "Tiempo de la sugerencia de la contraseña"
@@ -1484,47 +1311,6 @@ msgstr "Tiempo de la sugerencia de la contraseña"
msgid "How long to show the last input character in hidden entries"
msgstr "Cuánto tiempo mostrar el último carácter en entradas ocultas"
-#: ../clutter/deprecated/clutter-shader.c:257
-msgid "Vertex Source"
-msgstr "Origen del vértice"
-
-#: ../clutter/deprecated/clutter-shader.c:258
-msgid "Source of vertex shader"
-msgstr "Origen del sombreado del vértice"
-
-#: ../clutter/deprecated/clutter-shader.c:274
-msgid "Fragment Source"
-msgstr "Origen del fragmento"
-
-#: ../clutter/deprecated/clutter-shader.c:275
-msgid "Source of fragment shader"
-msgstr "Origen del sombreado del fragmento"
-
-#: ../clutter/deprecated/clutter-shader.c:292
-msgid "Compiled"
-msgstr "Compilado"
-
-#: ../clutter/deprecated/clutter-shader.c:293
-msgid "Whether the shader is compiled and linked"
-msgstr "Indica si el sombreado está compilado y enlazado"
-
-#: ../clutter/deprecated/clutter-shader.c:310
-msgid "Whether the shader is enabled"
-msgstr "Indica si el sombreado está activado"
-
-#: ../clutter/deprecated/clutter-shader.c:521
-#, c-format
-msgid "%s compilation failed: %s"
-msgstr "falló la compilación de %s: %s"
-
-#: ../clutter/deprecated/clutter-shader.c:522
-msgid "Vertex shader"
-msgstr "Sombreado del vértice"
-
-#: ../clutter/deprecated/clutter-shader.c:523
-msgid "Fragment shader"
-msgstr "Sombreado del fragmento"
-
#: ../clutter/clutter-shader-effect.c:482
msgid "Shader Type"
msgstr "Tipo de sombreado"
@@ -1935,8 +1721,8 @@ msgstr "Sincronizar tamaño del actor"
#: ../clutter/clutter-texture.c:986
msgid "Auto sync size of actor to underlying pixbuf dimensions"
msgstr ""
-"Sincronizar automáticamente el tamaño del actor a las dimensiones de "
-"«pixbuf» subyacente"
+"Sincronizar automáticamente el tamaño del actor a las dimensiones de «pixbuf» "
+"subyacente"
#: ../clutter/clutter-texture.c:993
msgid "Disable Slicing"
@@ -2085,6 +1871,12 @@ msgstr "Retardo antes de empezar"
msgid "Duration of the timeline in milliseconds"
msgstr "Duración de la línea de tiempo, en milisegundos"
+#: ../clutter/clutter-timeline.c:310
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:526
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:335
+msgid "Direction"
+msgstr "Dirección"
+
#: ../clutter/clutter-timeline.c:311
msgid "Direction of the timeline"
msgstr "Dirección de la línea de tiempo"
@@ -2097,6 +1889,222 @@ msgstr "Invertir automáticamente"
msgid "Whether the direction should be reversed when reaching the end"
msgstr "Indica si se debe invertir la dirección al llegar al final"
+#: ../clutter/deprecated/clutter-behaviour.c:241
+msgid "Alpha Object to drive the behaviour"
+msgstr "Objeto alfa para dirigir el comportamiento"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:180
+msgid "Start Depth"
+msgstr "Profundidad inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:181
+msgid "Initial depth to apply"
+msgstr "Profundidad inicial que aplicar"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:196
+msgid "End Depth"
+msgstr "Profundidad final"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:197
+msgid "Final depth to apply"
+msgstr "Profundidad final que aplicar"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:399
+msgid "Start Angle"
+msgstr "Ángulo inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:400
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:282
+msgid "Initial angle"
+msgstr "Ángulo inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:415
+msgid "End Angle"
+msgstr "Ángulo final"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:416
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:300
+msgid "Final angle"
+msgstr "Ángulo final"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:431
+msgid "Angle x tilt"
+msgstr "Inclinación X del ángulo"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:432
+msgid "Tilt of the ellipse around x axis"
+msgstr "Inclinación de la elipse sobre el eje X"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:447
+msgid "Angle y tilt"
+msgstr "Inclinación Y del ángulo"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:448
+msgid "Tilt of the ellipse around y axis"
+msgstr "Inclinación de la elipse sobre el eje Y"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:463
+msgid "Angle z tilt"
+msgstr "Inclinación Z del ángulo"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:464
+msgid "Tilt of the ellipse around z axis"
+msgstr "Inclinación de la elipse sobre el eje Z"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:480
+msgid "Width of the ellipse"
+msgstr "Anchura de la elipse"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:496
+msgid "Height of ellipse"
+msgstr "Altura de la elipse"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:511
+msgid "Center"
+msgstr "Centro"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:512
+msgid "Center of ellipse"
+msgstr "Centro de la elipse"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:527
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:336
+msgid "Direction of rotation"
+msgstr "Dirección de la rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:183
+msgid "Opacity Start"
+msgstr "Opacidad inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:184
+msgid "Initial opacity level"
+msgstr "Nivel inicial de opacidad"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:201
+msgid "Opacity End"
+msgstr "Opacidad final"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:202
+msgid "Final opacity level"
+msgstr "Nivel final de opacidad"
+
+#: ../clutter/deprecated/clutter-behaviour-path.c:225
+msgid "The ClutterPath object representing the path to animate along"
+msgstr "El objeto «ClutterPath» que representa la ruta sobre la que animar"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:281
+msgid "Angle Begin"
+msgstr "Ángulo inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:299
+msgid "Angle End"
+msgstr "Ángulo final"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:317
+msgid "Axis"
+msgstr "Eje"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:318
+msgid "Axis of rotation"
+msgstr "Eje de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:353
+msgid "Center X"
+msgstr "Centro X"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:354
+msgid "X coordinate of the center of rotation"
+msgstr "Coordenada X del centro de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:371
+msgid "Center Y"
+msgstr "Centro Y"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:372
+msgid "Y coordinate of the center of rotation"
+msgstr "Coordenada Y del centro de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:389
+msgid "Center Z"
+msgstr "Centro Z"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:390
+msgid "Z coordinate of the center of rotation"
+msgstr "Coordenada Z del centro de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:224
+msgid "X Start Scale"
+msgstr "Escala X inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:225
+msgid "Initial scale on the X axis"
+msgstr "Escala inicial en el eje X"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:243
+msgid "X End Scale"
+msgstr "Escala X final"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:244
+msgid "Final scale on the X axis"
+msgstr "Escala final en el eje X"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:262
+msgid "Y Start Scale"
+msgstr "Escala Y inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:263
+msgid "Initial scale on the Y axis"
+msgstr "Escala inicial en el eje Y"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:281
+msgid "Y End Scale"
+msgstr "Escala Y final"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:282
+msgid "Final scale on the Y axis"
+msgstr "Escala final en el eje Y"
+
+#: ../clutter/deprecated/clutter-shader.c:257
+msgid "Vertex Source"
+msgstr "Origen del vértice"
+
+#: ../clutter/deprecated/clutter-shader.c:258
+msgid "Source of vertex shader"
+msgstr "Origen del sombreado del vértice"
+
+#: ../clutter/deprecated/clutter-shader.c:274
+msgid "Fragment Source"
+msgstr "Origen del fragmento"
+
+#: ../clutter/deprecated/clutter-shader.c:275
+msgid "Source of fragment shader"
+msgstr "Origen del sombreado del fragmento"
+
+#: ../clutter/deprecated/clutter-shader.c:292
+msgid "Compiled"
+msgstr "Compilado"
+
+#: ../clutter/deprecated/clutter-shader.c:293
+msgid "Whether the shader is compiled and linked"
+msgstr "Indica si el sombreado está compilado y enlazado"
+
+#: ../clutter/deprecated/clutter-shader.c:310
+msgid "Whether the shader is enabled"
+msgstr "Indica si el sombreado está activado"
+
+#: ../clutter/deprecated/clutter-shader.c:521
+#, c-format
+msgid "%s compilation failed: %s"
+msgstr "falló la compilación de %s: %s"
+
+#: ../clutter/deprecated/clutter-shader.c:522
+msgid "Vertex shader"
+msgstr "Sombreado del vértice"
+
+#: ../clutter/deprecated/clutter-shader.c:523
+msgid "Fragment shader"
+msgstr "Sombreado del fragmento"
+
#: ../clutter/evdev/clutter-input-device-evdev.c:147
msgid "sysfs Path"
msgstr "Ruta de sysfs"
@@ -2113,19 +2121,25 @@ msgstr "Ruta del dispositivo"
msgid "Path of the device node"
msgstr "Ruta al nodo del dispositivo"
-#: ../clutter/x11/clutter-backend-x11.c:483
+#: ../clutter/gdk/clutter-backend-gdk.c:287
+#, c-format
+msgid "Could not find a suitable CoglWinsys for a GdkDisplay of type %s"
+msgstr ""
+"No se pudo encontrar un CoglWinsys adecuado para un GdkDisplay de tipo %s"
+
+#: ../clutter/x11/clutter-backend-x11.c:506
msgid "X display to use"
msgstr "Pantalla X que usar"
-#: ../clutter/x11/clutter-backend-x11.c:489
+#: ../clutter/x11/clutter-backend-x11.c:512
msgid "X screen to use"
msgstr "Pantalla (screen) X que usar"
-#: ../clutter/x11/clutter-backend-x11.c:494
+#: ../clutter/x11/clutter-backend-x11.c:517
msgid "Make X calls synchronous"
msgstr "Hacer llamadas a X síncronas"
-#: ../clutter/x11/clutter-backend-x11.c:501
+#: ../clutter/x11/clutter-backend-x11.c:524
msgid "Enable XInput support"
msgstr "Activar soporte XInput"
@@ -2133,105 +2147,105 @@ msgstr "Activar soporte XInput"
msgid "The Clutter backend"
msgstr "El backend de Clutter"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:545
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:544
msgid "Pixmap"
msgstr "Mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:546
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:545
msgid "The X11 Pixmap to be bound"
msgstr "EL mapa de píxeles X11 que asociar"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:554
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:553
msgid "Pixmap width"
msgstr "Anchura del mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:555
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:554
msgid "The width of the pixmap bound to this texture"
msgstr "La anchura del mapa de píxeles asociado a esta textura"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:563
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:562
msgid "Pixmap height"
msgstr "Altura del mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:564
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:563
msgid "The height of the pixmap bound to this texture"
msgstr "La altura del mapa de píxeles asociado a esta textura"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:572
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:571
msgid "Pixmap Depth"
msgstr "Profundidad del mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:573
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:572
msgid "The depth (in number of bits) of the pixmap bound to this texture"
msgstr ""
"La profundidad (en número de bits) del mapa de píxeles asociado a esta "
"textura"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:581
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:580
msgid "Automatic Updates"
msgstr "Actualizaciones automáticas"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:582
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:581
msgid "If the texture should be kept in sync with any pixmap changes."
msgstr ""
"Indica si la textura se debe sincronizar con cualquier cambio en el mapa de "
"píxeles."
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:590
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:589
msgid "Window"
msgstr "Ventana"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:591
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:590
msgid "The X11 Window to be bound"
msgstr "La ventana X11 que asociar"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:599
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:598
msgid "Window Redirect Automatic"
msgstr "Redirección automática de la ventana"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:600
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:599
msgid "If composite window redirects are set to Automatic (or Manual if false)"
msgstr ""
"Indica si la redirección de la ventana compuesta está establecida a "
"«Automática» (o «Manual» si es falso)"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:610
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:609
msgid "Window Mapped"
msgstr "Ventana mapeada"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:611
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:610
msgid "If window is mapped"
msgstr "Indica si la ventana está mapeada"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:620
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:619
msgid "Destroyed"
msgstr "Destruida"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:621
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:620
msgid "If window has been destroyed"
msgstr "Indica si se ha destruido la ventana"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:629
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:628
msgid "Window X"
msgstr "Ventana X"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:630
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:629
msgid "X position of window on screen according to X11"
msgstr "Posición X de la ventana en la pantalla, de acuerdo con X11"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:638
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:637
msgid "Window Y"
msgstr "Ventana Y"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:639
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:638
msgid "Y position of window on screen according to X11"
msgstr "Posición Y de la ventana en la pantalla, de acuerdo con X11"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:646
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:645
msgid "Window Override Redirect"
msgstr "Omitir redirección de la ventana"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:647
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:646
msgid "If this is an override-redirect window"
msgstr "Indica si esta es una ventana que omite la redirección"
diff --git a/po/gl.po b/po/gl.po
index a543d0077..36591ef60 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: clutter\n"
"Report-Msgid-Bugs-To: http://bugzilla.clutter-project.org/enter_bug.cgi?"
"product=clutter\n"
-"POT-Creation-Date: 2011-10-15 15:21+0200\n"
-"PO-Revision-Date: 2011-10-15 15:23+0200\n"
+"POT-Creation-Date: 2011-11-13 18:51+0100\n"
+"PO-Revision-Date: 2011-11-13 18:51+0100\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
"Language: gl\n"
@@ -21,398 +21,398 @@ msgstr ""
"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-#: ../clutter/clutter-actor.c:3877
+#: ../clutter/clutter-actor.c:3886
msgid "X coordinate"
msgstr "Coordenada X"
-#: ../clutter/clutter-actor.c:3878
+#: ../clutter/clutter-actor.c:3887
msgid "X coordinate of the actor"
msgstr "Coordenada X do actor"
-#: ../clutter/clutter-actor.c:3893
+#: ../clutter/clutter-actor.c:3902
msgid "Y coordinate"
msgstr "Coordenada Y"
-#: ../clutter/clutter-actor.c:3894
+#: ../clutter/clutter-actor.c:3903
msgid "Y coordinate of the actor"
msgstr "Coordenada Y do actor"
-#: ../clutter/clutter-actor.c:3909
+#: ../clutter/clutter-actor.c:3918
#: ../clutter/deprecated/clutter-behaviour-ellipse.c:479
msgid "Width"
msgstr "Largura"
-#: ../clutter/clutter-actor.c:3910
+#: ../clutter/clutter-actor.c:3919
msgid "Width of the actor"
msgstr "Largura do actor"
-#: ../clutter/clutter-actor.c:3924
+#: ../clutter/clutter-actor.c:3933
#: ../clutter/deprecated/clutter-behaviour-ellipse.c:495
msgid "Height"
msgstr "Altura"
-#: ../clutter/clutter-actor.c:3925
+#: ../clutter/clutter-actor.c:3934
msgid "Height of the actor"
msgstr "Altura do actor"
-#: ../clutter/clutter-actor.c:3943
+#: ../clutter/clutter-actor.c:3952
msgid "Fixed X"
msgstr "X fixa"
-#: ../clutter/clutter-actor.c:3944
+#: ../clutter/clutter-actor.c:3953
msgid "Forced X position of the actor"
msgstr "Posición X forzada do actor"
-#: ../clutter/clutter-actor.c:3962
+#: ../clutter/clutter-actor.c:3971
msgid "Fixed Y"
msgstr "Y fixa"
-#: ../clutter/clutter-actor.c:3963
+#: ../clutter/clutter-actor.c:3972
msgid "Forced Y position of the actor"
msgstr "Posición Y forzada do actor"
-#: ../clutter/clutter-actor.c:3979
+#: ../clutter/clutter-actor.c:3988
msgid "Fixed position set"
msgstr "Estabelecer a posición fixa"
-#: ../clutter/clutter-actor.c:3980
+#: ../clutter/clutter-actor.c:3989
msgid "Whether to use fixed positioning for the actor"
msgstr "Cando se emprega o posicionamento fixo do actor"
-#: ../clutter/clutter-actor.c:4002
+#: ../clutter/clutter-actor.c:4011
msgid "Min Width"
msgstr "Largura mínima"
-#: ../clutter/clutter-actor.c:4003
+#: ../clutter/clutter-actor.c:4012
msgid "Forced minimum width request for the actor"
msgstr "Forzar a largura mínima requirida para o actor"
-#: ../clutter/clutter-actor.c:4022
+#: ../clutter/clutter-actor.c:4031
msgid "Min Height"
msgstr "Altura mínima"
-#: ../clutter/clutter-actor.c:4023
+#: ../clutter/clutter-actor.c:4032
msgid "Forced minimum height request for the actor"
msgstr "Forzar a altura mínima requirida para o actor"
-#: ../clutter/clutter-actor.c:4042
+#: ../clutter/clutter-actor.c:4051
msgid "Natural Width"
msgstr "Largura natural"
-#: ../clutter/clutter-actor.c:4043
+#: ../clutter/clutter-actor.c:4052
msgid "Forced natural width request for the actor"
msgstr "Forzar a largura natural requirida para o actor"
-#: ../clutter/clutter-actor.c:4062
+#: ../clutter/clutter-actor.c:4071
msgid "Natural Height"
msgstr "Altura natural"
-#: ../clutter/clutter-actor.c:4063
+#: ../clutter/clutter-actor.c:4072
msgid "Forced natural height request for the actor"
msgstr "Forzar a altura natural requirida para o actor"
-#: ../clutter/clutter-actor.c:4079
+#: ../clutter/clutter-actor.c:4088
msgid "Minimum width set"
msgstr "Estabelecer a largura mínima"
-#: ../clutter/clutter-actor.c:4080
+#: ../clutter/clutter-actor.c:4089
msgid "Whether to use the min-width property"
msgstr "Cando se emprega a propiedade de largura mínima"
-#: ../clutter/clutter-actor.c:4095
+#: ../clutter/clutter-actor.c:4104
msgid "Minimum height set"
msgstr "Estabelecer a altura mínima"
-#: ../clutter/clutter-actor.c:4096
+#: ../clutter/clutter-actor.c:4105
msgid "Whether to use the min-height property"
msgstr "Cando se emprega a propiedade de altura mínima"
-#: ../clutter/clutter-actor.c:4111
+#: ../clutter/clutter-actor.c:4120
msgid "Natural width set"
msgstr "Estabelecer a largura natural"
-#: ../clutter/clutter-actor.c:4112
+#: ../clutter/clutter-actor.c:4121
msgid "Whether to use the natural-width property"
msgstr "Cando se emprega a propiedade de largura natural"
-#: ../clutter/clutter-actor.c:4129
+#: ../clutter/clutter-actor.c:4138
msgid "Natural height set"
msgstr "Estabelecer a altura natural"
-#: ../clutter/clutter-actor.c:4130
+#: ../clutter/clutter-actor.c:4139
msgid "Whether to use the natural-height property"
msgstr "Cando se emprega a propiedade de altura natural"
-#: ../clutter/clutter-actor.c:4149
+#: ../clutter/clutter-actor.c:4158
msgid "Allocation"
msgstr "Asignación"
-#: ../clutter/clutter-actor.c:4150
+#: ../clutter/clutter-actor.c:4159
msgid "The actor's allocation"
msgstr "Asignación do actor"
-#: ../clutter/clutter-actor.c:4206
+#: ../clutter/clutter-actor.c:4215
msgid "Request Mode"
msgstr "Modo requirido"
-#: ../clutter/clutter-actor.c:4207
+#: ../clutter/clutter-actor.c:4216
msgid "The actor's request mode"
msgstr "Modo de requirimento do actor"
-#: ../clutter/clutter-actor.c:4222
+#: ../clutter/clutter-actor.c:4231
msgid "Depth"
msgstr "Profundidade"
-#: ../clutter/clutter-actor.c:4223
+#: ../clutter/clutter-actor.c:4232
msgid "Position on the Z axis"
msgstr "Posición no eixo Z"
-#: ../clutter/clutter-actor.c:4237
+#: ../clutter/clutter-actor.c:4246
msgid "Opacity"
msgstr "Opacidade"
-#: ../clutter/clutter-actor.c:4238
+#: ../clutter/clutter-actor.c:4247
msgid "Opacity of an actor"
msgstr "Opacidade dun actor"
-#: ../clutter/clutter-actor.c:4257
+#: ../clutter/clutter-actor.c:4266
msgid "Offscreen redirect"
msgstr "Redirección fóra da pantalal"
-#: ../clutter/clutter-actor.c:4258
+#: ../clutter/clutter-actor.c:4267
msgid "Flags controlling when to flatten the actor into a single image"
msgstr "Opcións que controlan se se debe aplanar o actor nunha única imaxe"
-#: ../clutter/clutter-actor.c:4276
+#: ../clutter/clutter-actor.c:4285
msgid "Visible"
msgstr "Visíbel"
-#: ../clutter/clutter-actor.c:4277
+#: ../clutter/clutter-actor.c:4286
msgid "Whether the actor is visible or not"
msgstr "Se o actor é visíbel ou non"
-#: ../clutter/clutter-actor.c:4292
+#: ../clutter/clutter-actor.c:4301
msgid "Mapped"
msgstr "Mapeamento"
-#: ../clutter/clutter-actor.c:4293
+#: ../clutter/clutter-actor.c:4302
msgid "Whether the actor will be painted"
msgstr "Cando o actor será pintado"
-#: ../clutter/clutter-actor.c:4307
+#: ../clutter/clutter-actor.c:4316
msgid "Realized"
msgstr "Decatado"
-#: ../clutter/clutter-actor.c:4308
+#: ../clutter/clutter-actor.c:4317
msgid "Whether the actor has been realized"
msgstr "Cando o actor se decata"
-#: ../clutter/clutter-actor.c:4324
+#: ../clutter/clutter-actor.c:4333
msgid "Reactive"
msgstr "Reactivo"
-#: ../clutter/clutter-actor.c:4325
+#: ../clutter/clutter-actor.c:4334
msgid "Whether the actor is reactive to events"
msgstr "Cando o actor reacciona a accións"
-#: ../clutter/clutter-actor.c:4337
+#: ../clutter/clutter-actor.c:4346
msgid "Has Clip"
msgstr "Ten recorte"
-#: ../clutter/clutter-actor.c:4338
+#: ../clutter/clutter-actor.c:4347
msgid "Whether the actor has a clip set"
msgstr "Cando o actor ten un conxunto de recorte"
-#: ../clutter/clutter-actor.c:4353
+#: ../clutter/clutter-actor.c:4362
msgid "Clip"
msgstr "Recorte"
-#: ../clutter/clutter-actor.c:4354
+#: ../clutter/clutter-actor.c:4363
msgid "The clip region for the actor"
msgstr "A rexión de recorte para o actor"
-#: ../clutter/clutter-actor.c:4368 ../clutter/clutter-actor-meta.c:207
+#: ../clutter/clutter-actor.c:4377 ../clutter/clutter-actor-meta.c:207
#: ../clutter/clutter-binding-pool.c:319 ../clutter/clutter-input-device.c:236
msgid "Name"
msgstr "Nome"
-#: ../clutter/clutter-actor.c:4369
+#: ../clutter/clutter-actor.c:4378
msgid "Name of the actor"
msgstr "Nome do actor"
-#: ../clutter/clutter-actor.c:4383
+#: ../clutter/clutter-actor.c:4392
msgid "Scale X"
msgstr "Escala X"
-#: ../clutter/clutter-actor.c:4384
+#: ../clutter/clutter-actor.c:4393
msgid "Scale factor on the X axis"
msgstr "Factor de escala para o eixo X"
-#: ../clutter/clutter-actor.c:4399
+#: ../clutter/clutter-actor.c:4408
msgid "Scale Y"
msgstr "Escala Y"
-#: ../clutter/clutter-actor.c:4400
+#: ../clutter/clutter-actor.c:4409
msgid "Scale factor on the Y axis"
msgstr "Factor de escala para o eixo Y"
-#: ../clutter/clutter-actor.c:4415
+#: ../clutter/clutter-actor.c:4424
msgid "Scale Center X"
msgstr "Centro da escala X"
-#: ../clutter/clutter-actor.c:4416
+#: ../clutter/clutter-actor.c:4425
msgid "Horizontal scale center"
msgstr "Centro na escala horizontal"
-#: ../clutter/clutter-actor.c:4431
+#: ../clutter/clutter-actor.c:4440
msgid "Scale Center Y"
msgstr "Centro da escala Y"
-#: ../clutter/clutter-actor.c:4432
+#: ../clutter/clutter-actor.c:4441
msgid "Vertical scale center"
msgstr "Centro na escala vertical"
-#: ../clutter/clutter-actor.c:4447
+#: ../clutter/clutter-actor.c:4456
msgid "Scale Gravity"
msgstr "Escala de gravidade"
-#: ../clutter/clutter-actor.c:4448
+#: ../clutter/clutter-actor.c:4457
msgid "The center of scaling"
msgstr "O centro da escala"
-#: ../clutter/clutter-actor.c:4465
+#: ../clutter/clutter-actor.c:4474
msgid "Rotation Angle X"
msgstr "Ángulo de rotación de X"
-#: ../clutter/clutter-actor.c:4466
+#: ../clutter/clutter-actor.c:4475
msgid "The rotation angle on the X axis"
msgstr "Ángulo de rotación do eixo X"
-#: ../clutter/clutter-actor.c:4481
+#: ../clutter/clutter-actor.c:4490
msgid "Rotation Angle Y"
msgstr "Ángulo de rotación Y"
-#: ../clutter/clutter-actor.c:4482
+#: ../clutter/clutter-actor.c:4491
msgid "The rotation angle on the Y axis"
msgstr "Ángulo de rotación do eixo Y"
-#: ../clutter/clutter-actor.c:4497
+#: ../clutter/clutter-actor.c:4506
msgid "Rotation Angle Z"
msgstr "Ángulo de rotación Z"
-#: ../clutter/clutter-actor.c:4498
+#: ../clutter/clutter-actor.c:4507
msgid "The rotation angle on the Z axis"
msgstr "Ángulo de rotación do eixo Z"
-#: ../clutter/clutter-actor.c:4513
+#: ../clutter/clutter-actor.c:4522
msgid "Rotation Center X"
msgstr "Centro de rotación X"
-#: ../clutter/clutter-actor.c:4514
+#: ../clutter/clutter-actor.c:4523
msgid "The rotation center on the X axis"
msgstr "O centro de rotación do eixo X"
-#: ../clutter/clutter-actor.c:4530
+#: ../clutter/clutter-actor.c:4539
msgid "Rotation Center Y"
msgstr "Centro de rotación Y"
-#: ../clutter/clutter-actor.c:4531
+#: ../clutter/clutter-actor.c:4540
msgid "The rotation center on the Y axis"
msgstr "O centro de rotación no eixo Y"
-#: ../clutter/clutter-actor.c:4547
+#: ../clutter/clutter-actor.c:4556
msgid "Rotation Center Z"
msgstr "Centro de rotación Z"
-#: ../clutter/clutter-actor.c:4548
+#: ../clutter/clutter-actor.c:4557
msgid "The rotation center on the Z axis"
msgstr "O centro de rotación no eixo Z"
-#: ../clutter/clutter-actor.c:4564
+#: ../clutter/clutter-actor.c:4573
msgid "Rotation Center Z Gravity"
msgstr "Gravidade do centro de rotación Z"
-#: ../clutter/clutter-actor.c:4565
+#: ../clutter/clutter-actor.c:4574
msgid "Center point for rotation around the Z axis"
msgstr "Punto central de rotación arredor do eixo Z"
-#: ../clutter/clutter-actor.c:4583
+#: ../clutter/clutter-actor.c:4592
msgid "Anchor X"
msgstr "Ancoraxe X"
-#: ../clutter/clutter-actor.c:4584
+#: ../clutter/clutter-actor.c:4593
msgid "X coordinate of the anchor point"
msgstr "Coordenada X do punto de ancoraxe"
-#: ../clutter/clutter-actor.c:4600
+#: ../clutter/clutter-actor.c:4609
msgid "Anchor Y"
msgstr "Ancoraxe Y"
-#: ../clutter/clutter-actor.c:4601
+#: ../clutter/clutter-actor.c:4610
msgid "Y coordinate of the anchor point"
msgstr "Coordenada Y do punto de ancoraxe"
-#: ../clutter/clutter-actor.c:4616
+#: ../clutter/clutter-actor.c:4625
msgid "Anchor Gravity"
msgstr "Gravidade do ancoraxe"
-#: ../clutter/clutter-actor.c:4617
+#: ../clutter/clutter-actor.c:4626
msgid "The anchor point as a ClutterGravity"
msgstr "O punto de ancoraxe como ClutterGravity"
-#: ../clutter/clutter-actor.c:4636
+#: ../clutter/clutter-actor.c:4645
msgid "Show on set parent"
msgstr "Mostrar no pai do conxunto"
-#: ../clutter/clutter-actor.c:4637
+#: ../clutter/clutter-actor.c:4646
msgid "Whether the actor is shown when parented"
msgstr "Especifica se o actor se mostra ao seren desenvolvido polo pai"
-#: ../clutter/clutter-actor.c:4657
+#: ../clutter/clutter-actor.c:4666
msgid "Clip to Allocation"
msgstr "Fragmento de asignación"
-#: ../clutter/clutter-actor.c:4658
+#: ../clutter/clutter-actor.c:4667
msgid "Sets the clip region to track the actor's allocation"
msgstr "Estabelece a rexión de recorte para rastrexar a asignación do actor"
-#: ../clutter/clutter-actor.c:4668
+#: ../clutter/clutter-actor.c:4677
msgid "Text Direction"
msgstr "Dirección do texto"
-#: ../clutter/clutter-actor.c:4669
+#: ../clutter/clutter-actor.c:4678
msgid "Direction of the text"
msgstr "A dirección do texto"
-#: ../clutter/clutter-actor.c:4687
+#: ../clutter/clutter-actor.c:4696
msgid "Has Pointer"
msgstr "Ten punteiro"
-#: ../clutter/clutter-actor.c:4688
+#: ../clutter/clutter-actor.c:4697
msgid "Whether the actor contains the pointer of an input device"
msgstr "Cando o actor ten un punteiro dun dispositivo de entrada"
-#: ../clutter/clutter-actor.c:4705
+#: ../clutter/clutter-actor.c:4714
msgid "Actions"
msgstr "Accións"
-#: ../clutter/clutter-actor.c:4706
+#: ../clutter/clutter-actor.c:4715
msgid "Adds an action to the actor"
msgstr "Engade unha acción ao actor"
-#: ../clutter/clutter-actor.c:4720
+#: ../clutter/clutter-actor.c:4729
msgid "Constraints"
msgstr "Restricións"
-#: ../clutter/clutter-actor.c:4721
+#: ../clutter/clutter-actor.c:4730
msgid "Adds a constraint to the actor"
msgstr "Engade unha restrición ao actor"
-#: ../clutter/clutter-actor.c:4735
+#: ../clutter/clutter-actor.c:4744
msgid "Effect"
msgstr "Efecto"
-#: ../clutter/clutter-actor.c:4736
+#: ../clutter/clutter-actor.c:4745
msgid "Add an effect to be applied on the actor"
msgstr "Engade un efecto para aplicato no actor"
@@ -437,30 +437,30 @@ msgstr "Activado"
msgid "Whether the meta is enabled"
msgstr "Cando o destino está activado"
-#: ../clutter/clutter-align-constraint.c:270
-#: ../clutter/clutter-bind-constraint.c:349 ../clutter/clutter-clone.c:340
+#: ../clutter/clutter-align-constraint.c:281
+#: ../clutter/clutter-bind-constraint.c:349 ../clutter/clutter-clone.c:345
#: ../clutter/clutter-snap-constraint.c:321
msgid "Source"
msgstr "Orixe"
-#: ../clutter/clutter-align-constraint.c:271
+#: ../clutter/clutter-align-constraint.c:282
msgid "The source of the alignment"
msgstr "A orixe do aliñamento"
-#: ../clutter/clutter-align-constraint.c:284
+#: ../clutter/clutter-align-constraint.c:295
msgid "Align Axis"
msgstr "Aliñar o eixo"
-#: ../clutter/clutter-align-constraint.c:285
+#: ../clutter/clutter-align-constraint.c:296
msgid "The axis to align the position to"
msgstr "Os eixos para aliñar a posición de"
-#: ../clutter/clutter-align-constraint.c:304
+#: ../clutter/clutter-align-constraint.c:315
#: ../clutter/clutter-desaturate-effect.c:304
msgid "Factor"
msgstr "Factor"
-#: ../clutter/clutter-align-constraint.c:305
+#: ../clutter/clutter-align-constraint.c:316
msgid "The alignment factor, between 0.0 and 1.0"
msgstr "Factor de aliñamento, entre 0,0 e 1,0"
@@ -540,191 +540,14 @@ msgstr "A duración da animación"
msgid "The timeline of the animation"
msgstr "Liña de tempo da animación"
-#: ../clutter/deprecated/clutter-behaviour.c:241
-msgid "Alpha Object to drive the behaviour"
-msgstr "Obxecto alfa para guiar o comportamento"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:180
-msgid "Start Depth"
-msgstr "Profundidade de inicio"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:181
-msgid "Initial depth to apply"
-msgstr "Profundidade inicial a aplicar"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:196
-msgid "End Depth"
-msgstr "Profundidade de remate"
-
-#: ../clutter/deprecated/clutter-behaviour-depth.c:197
-msgid "Final depth to apply"
-msgstr "Profundidade final a aplicar"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:399
-msgid "Start Angle"
-msgstr "Ángulo de inicio"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:400
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:282
-msgid "Initial angle"
-msgstr "Ángulo inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:415
-msgid "End Angle"
-msgstr "Ángulo de remate"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:416
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:300
-msgid "Final angle"
-msgstr "Ángulo final"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:431
-msgid "Angle x tilt"
-msgstr "Ángulo de inclinación X"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:432
-msgid "Tilt of the ellipse around x axis"
-msgstr "Inclinación da elipse arredor do eixo X"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:447
-msgid "Angle y tilt"
-msgstr "Ángulo de inclinación Y"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:448
-msgid "Tilt of the ellipse around y axis"
-msgstr "Inclinación da elipse arredor do eixo Y"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:463
-msgid "Angle z tilt"
-msgstr "Ángulo de inclinación Z"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:464
-msgid "Tilt of the ellipse around z axis"
-msgstr "Inclinación da elipse arredor do eixo Z"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:480
-msgid "Width of the ellipse"
-msgstr "Largo da elipse"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:496
-msgid "Height of ellipse"
-msgstr "Altura da elipse"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:511
-msgid "Center"
-msgstr "Centro"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:512
-msgid "Center of ellipse"
-msgstr "Centro da elipse"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:526
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:335
-#: ../clutter/clutter-timeline.c:310
-msgid "Direction"
-msgstr "Dirección"
-
-#: ../clutter/deprecated/clutter-behaviour-ellipse.c:527
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:336
-msgid "Direction of rotation"
-msgstr "Dirección da rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:183
-msgid "Opacity Start"
-msgstr "Opacidade de inicio"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:184
-msgid "Initial opacity level"
-msgstr "Nivel inicial de opacidade"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:201
-msgid "Opacity End"
-msgstr "Opacidade de remate"
-
-#: ../clutter/deprecated/clutter-behaviour-opacity.c:202
-msgid "Final opacity level"
-msgstr "Nivel final de opacidade"
-
-#: ../clutter/deprecated/clutter-behaviour-path.c:224
-#: ../clutter/clutter-path-constraint.c:212
-msgid "Path"
-msgstr "Ruta"
-
-#: ../clutter/deprecated/clutter-behaviour-path.c:225
-msgid "The ClutterPath object representing the path to animate along"
-msgstr "O obxecto ClutterPath representa a ruta ao longo da animación"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:281
-msgid "Angle Begin"
-msgstr "Ángulo inicial"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:299
-msgid "Angle End"
-msgstr "Ángulo de remate"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:317
-msgid "Axis"
-msgstr "Eixo"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:318
-msgid "Axis of rotation"
-msgstr "Eixo de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:353
-msgid "Center X"
-msgstr "Centro X"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:354
-msgid "X coordinate of the center of rotation"
-msgstr "Coordenada X do centro de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:371
-msgid "Center Y"
-msgstr "Centro Y"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:372
-msgid "Y coordinate of the center of rotation"
-msgstr "Coordenada Y do centro de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:389
-msgid "Center Z"
-msgstr "Centro Z"
-
-#: ../clutter/deprecated/clutter-behaviour-rotate.c:390
-msgid "Z coordinate of the center of rotation"
-msgstr "Coordenada Z do centro de rotación"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:224
-msgid "X Start Scale"
-msgstr "Escala X de inicio"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:225
-msgid "Initial scale on the X axis"
-msgstr "Escala inicial no eixo X"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:243
-msgid "X End Scale"
-msgstr "Escala X de remate"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:244
-msgid "Final scale on the X axis"
-msgstr "Escala final no eixo X"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:262
-msgid "Y Start Scale"
-msgstr "Escala Y de inicio"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:263
-msgid "Initial scale on the Y axis"
-msgstr "Escala inicial no eixo Y"
-
-#: ../clutter/deprecated/clutter-behaviour-scale.c:281
-msgid "Y End Scale"
-msgstr "Escala Y de remate"
+#: ../clutter/clutter-backend.c:333
+msgid "Unable to initialize the Clutter backend"
+msgstr "Non foi posíbel inicializar o motor de Clutter"
-#: ../clutter/deprecated/clutter-behaviour-scale.c:282
-msgid "Final scale on the Y axis"
-msgstr "Escala final no eixo Y"
+#: ../clutter/clutter-backend.c:407
+#, c-format
+msgid "The backend of type '%s' does not support creating multiple stages"
+msgstr "O motor do tipo «%s» non admite crear múltiples escenarios"
#: ../clutter/clutter-bind-constraint.c:350
msgid "The source of the binding"
@@ -971,7 +794,7 @@ msgstr "Límite da pulsación longa"
msgid "The maximum threshold before a long press is cancelled"
msgstr "O límite máximo antes de cancelar unha pulsación longa"
-#: ../clutter/clutter-clone.c:341
+#: ../clutter/clutter-clone.c:346
msgid "Specifies the actor to be cloned"
msgstr "Especifica o actor que clonar"
@@ -1196,59 +1019,59 @@ msgstr "O xestor que creou estes datos"
#. * Do NOT translate it to non-English e.g. "predefinito:LTR"! If
#. * it isn't default:LTR or default:RTL it will not work.
#.
-#: ../clutter/clutter-main.c:717
+#: ../clutter/clutter-main.c:752
msgid "default:LTR"
msgstr "default:LTR"
-#: ../clutter/clutter-main.c:1528
+#: ../clutter/clutter-main.c:1610
msgid "Show frames per second"
msgstr "Mostrar cadros por segundo"
-#: ../clutter/clutter-main.c:1530
+#: ../clutter/clutter-main.c:1612
msgid "Default frame rate"
msgstr "Taxa predeterminada de cadros"
-#: ../clutter/clutter-main.c:1532
+#: ../clutter/clutter-main.c:1614
msgid "Make all warnings fatal"
msgstr "Facer que todos os avisos sexan fatais"
-#: ../clutter/clutter-main.c:1535
+#: ../clutter/clutter-main.c:1617
msgid "Direction for the text"
msgstr "Dirección para o texto"
-#: ../clutter/clutter-main.c:1538
+#: ../clutter/clutter-main.c:1620
msgid "Disable mipmapping on text"
msgstr "Desactivar mipmapping no texto"
-#: ../clutter/clutter-main.c:1541
+#: ../clutter/clutter-main.c:1623
msgid "Use 'fuzzy' picking"
msgstr "Usar recolección «difusa»"
-#: ../clutter/clutter-main.c:1544
+#: ../clutter/clutter-main.c:1626
msgid "Clutter debugging flags to set"
msgstr "Bandeiras de depuración de Clutter que seleccionar"
-#: ../clutter/clutter-main.c:1546
+#: ../clutter/clutter-main.c:1628
msgid "Clutter debugging flags to unset"
msgstr "Bandeiras de depuración de Cluter que deseleccionar"
-#: ../clutter/clutter-main.c:1550
+#: ../clutter/clutter-main.c:1632
msgid "Clutter profiling flags to set"
msgstr "Bandeiras de perfilado de Clutter que estabelecer"
-#: ../clutter/clutter-main.c:1552
+#: ../clutter/clutter-main.c:1634
msgid "Clutter profiling flags to unset"
msgstr "Bandeiras de perfilado de Clutter que desestabelecer"
-#: ../clutter/clutter-main.c:1555
+#: ../clutter/clutter-main.c:1637
msgid "Enable accessibility"
msgstr "Activar a accesibilidade"
-#: ../clutter/clutter-main.c:1743
+#: ../clutter/clutter-main.c:1829
msgid "Clutter Options"
msgstr "Opcións de Clutter"
-#: ../clutter/clutter-main.c:1744
+#: ../clutter/clutter-main.c:1830
msgid "Show Clutter Options"
msgstr "Mostrar as opcións de Clutter"
@@ -1320,6 +1143,11 @@ msgstr "O nivel de ateigamento do búfer"
msgid "The duration of the stream, in seconds"
msgstr "A duración do fluxo, en segundos"
+#: ../clutter/clutter-path-constraint.c:212
+#: ../clutter/deprecated/clutter-behaviour-path.c:224
+msgid "Path"
+msgstr "Ruta"
+
#: ../clutter/clutter-path-constraint.c:213
msgid "The path used to constrain an actor"
msgstr "A ruta empregada para restrinxir a un actor"
@@ -1481,47 +1309,6 @@ msgid "How long to show the last input character in hidden entries"
msgstr ""
"Canto tempo se debe mostrar o último carácter escrito nas entradas ocultas"
-#: ../clutter/deprecated/clutter-shader.c:257
-msgid "Vertex Source"
-msgstr "Orixe do vértice"
-
-#: ../clutter/deprecated/clutter-shader.c:258
-msgid "Source of vertex shader"
-msgstr "Orixe do vértice de sombreado"
-
-#: ../clutter/deprecated/clutter-shader.c:274
-msgid "Fragment Source"
-msgstr "Orixe do fragmento"
-
-#: ../clutter/deprecated/clutter-shader.c:275
-msgid "Source of fragment shader"
-msgstr "Orixe do fragmento de sombreado"
-
-#: ../clutter/deprecated/clutter-shader.c:292
-msgid "Compiled"
-msgstr "Compilado"
-
-#: ../clutter/deprecated/clutter-shader.c:293
-msgid "Whether the shader is compiled and linked"
-msgstr "Cando o sombreado é compilado e ligado"
-
-#: ../clutter/deprecated/clutter-shader.c:310
-msgid "Whether the shader is enabled"
-msgstr "Cando o sombreado está activado"
-
-#: ../clutter/deprecated/clutter-shader.c:521
-#, c-format
-msgid "%s compilation failed: %s"
-msgstr "%s produciuse un fallo na compilación: %s"
-
-#: ../clutter/deprecated/clutter-shader.c:522
-msgid "Vertex shader"
-msgstr "Vértice de sombreado"
-
-#: ../clutter/deprecated/clutter-shader.c:523
-msgid "Fragment shader"
-msgstr "Sombreado de fragmentos"
-
#: ../clutter/clutter-shader-effect.c:482
msgid "Shader Type"
msgstr "Tipo de sombreado"
@@ -2078,6 +1865,12 @@ msgstr "Atraso antes de comezar"
msgid "Duration of the timeline in milliseconds"
msgstr "Duración da liña de tempo en milisegundos"
+#: ../clutter/clutter-timeline.c:310
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:526
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:335
+msgid "Direction"
+msgstr "Dirección"
+
#: ../clutter/clutter-timeline.c:311
msgid "Direction of the timeline"
msgstr "Dirección da liña de tempo"
@@ -2090,6 +1883,222 @@ msgstr "Inversión automática"
msgid "Whether the direction should be reversed when reaching the end"
msgstr "Se a dirección debe ser revertida cando chega a fin"
+#: ../clutter/deprecated/clutter-behaviour.c:241
+msgid "Alpha Object to drive the behaviour"
+msgstr "Obxecto alfa para guiar o comportamento"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:180
+msgid "Start Depth"
+msgstr "Profundidade de inicio"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:181
+msgid "Initial depth to apply"
+msgstr "Profundidade inicial a aplicar"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:196
+msgid "End Depth"
+msgstr "Profundidade de remate"
+
+#: ../clutter/deprecated/clutter-behaviour-depth.c:197
+msgid "Final depth to apply"
+msgstr "Profundidade final a aplicar"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:399
+msgid "Start Angle"
+msgstr "Ángulo de inicio"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:400
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:282
+msgid "Initial angle"
+msgstr "Ángulo inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:415
+msgid "End Angle"
+msgstr "Ángulo de remate"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:416
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:300
+msgid "Final angle"
+msgstr "Ángulo final"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:431
+msgid "Angle x tilt"
+msgstr "Ángulo de inclinación X"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:432
+msgid "Tilt of the ellipse around x axis"
+msgstr "Inclinación da elipse arredor do eixo X"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:447
+msgid "Angle y tilt"
+msgstr "Ángulo de inclinación Y"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:448
+msgid "Tilt of the ellipse around y axis"
+msgstr "Inclinación da elipse arredor do eixo Y"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:463
+msgid "Angle z tilt"
+msgstr "Ángulo de inclinación Z"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:464
+msgid "Tilt of the ellipse around z axis"
+msgstr "Inclinación da elipse arredor do eixo Z"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:480
+msgid "Width of the ellipse"
+msgstr "Largo da elipse"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:496
+msgid "Height of ellipse"
+msgstr "Altura da elipse"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:511
+msgid "Center"
+msgstr "Centro"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:512
+msgid "Center of ellipse"
+msgstr "Centro da elipse"
+
+#: ../clutter/deprecated/clutter-behaviour-ellipse.c:527
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:336
+msgid "Direction of rotation"
+msgstr "Dirección da rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:183
+msgid "Opacity Start"
+msgstr "Opacidade de inicio"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:184
+msgid "Initial opacity level"
+msgstr "Nivel inicial de opacidade"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:201
+msgid "Opacity End"
+msgstr "Opacidade de remate"
+
+#: ../clutter/deprecated/clutter-behaviour-opacity.c:202
+msgid "Final opacity level"
+msgstr "Nivel final de opacidade"
+
+#: ../clutter/deprecated/clutter-behaviour-path.c:225
+msgid "The ClutterPath object representing the path to animate along"
+msgstr "O obxecto ClutterPath representa a ruta ao longo da animación"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:281
+msgid "Angle Begin"
+msgstr "Ángulo inicial"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:299
+msgid "Angle End"
+msgstr "Ángulo de remate"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:317
+msgid "Axis"
+msgstr "Eixo"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:318
+msgid "Axis of rotation"
+msgstr "Eixo de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:353
+msgid "Center X"
+msgstr "Centro X"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:354
+msgid "X coordinate of the center of rotation"
+msgstr "Coordenada X do centro de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:371
+msgid "Center Y"
+msgstr "Centro Y"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:372
+msgid "Y coordinate of the center of rotation"
+msgstr "Coordenada Y do centro de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:389
+msgid "Center Z"
+msgstr "Centro Z"
+
+#: ../clutter/deprecated/clutter-behaviour-rotate.c:390
+msgid "Z coordinate of the center of rotation"
+msgstr "Coordenada Z do centro de rotación"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:224
+msgid "X Start Scale"
+msgstr "Escala X de inicio"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:225
+msgid "Initial scale on the X axis"
+msgstr "Escala inicial no eixo X"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:243
+msgid "X End Scale"
+msgstr "Escala X de remate"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:244
+msgid "Final scale on the X axis"
+msgstr "Escala final no eixo X"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:262
+msgid "Y Start Scale"
+msgstr "Escala Y de inicio"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:263
+msgid "Initial scale on the Y axis"
+msgstr "Escala inicial no eixo Y"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:281
+msgid "Y End Scale"
+msgstr "Escala Y de remate"
+
+#: ../clutter/deprecated/clutter-behaviour-scale.c:282
+msgid "Final scale on the Y axis"
+msgstr "Escala final no eixo Y"
+
+#: ../clutter/deprecated/clutter-shader.c:257
+msgid "Vertex Source"
+msgstr "Orixe do vértice"
+
+#: ../clutter/deprecated/clutter-shader.c:258
+msgid "Source of vertex shader"
+msgstr "Orixe do vértice de sombreado"
+
+#: ../clutter/deprecated/clutter-shader.c:274
+msgid "Fragment Source"
+msgstr "Orixe do fragmento"
+
+#: ../clutter/deprecated/clutter-shader.c:275
+msgid "Source of fragment shader"
+msgstr "Orixe do fragmento de sombreado"
+
+#: ../clutter/deprecated/clutter-shader.c:292
+msgid "Compiled"
+msgstr "Compilado"
+
+#: ../clutter/deprecated/clutter-shader.c:293
+msgid "Whether the shader is compiled and linked"
+msgstr "Cando o sombreado é compilado e ligado"
+
+#: ../clutter/deprecated/clutter-shader.c:310
+msgid "Whether the shader is enabled"
+msgstr "Cando o sombreado está activado"
+
+#: ../clutter/deprecated/clutter-shader.c:521
+#, c-format
+msgid "%s compilation failed: %s"
+msgstr "%s produciuse un fallo na compilación: %s"
+
+#: ../clutter/deprecated/clutter-shader.c:522
+msgid "Vertex shader"
+msgstr "Vértice de sombreado"
+
+#: ../clutter/deprecated/clutter-shader.c:523
+msgid "Fragment shader"
+msgstr "Sombreado de fragmentos"
+
#: ../clutter/evdev/clutter-input-device-evdev.c:147
msgid "sysfs Path"
msgstr "Ruta a «sysfs»"
@@ -2106,19 +2115,25 @@ msgstr "Ruta ao dispositivo"
msgid "Path of the device node"
msgstr "Ruta ao nodo dodispositivo"
-#: ../clutter/x11/clutter-backend-x11.c:483
+#: ../clutter/gdk/clutter-backend-gdk.c:287
+#, c-format
+msgid "Could not find a suitable CoglWinsys for a GdkDisplay of type %s"
+msgstr ""
+"Non foi posíbel atopar un CoglWinsys axeitado para un GdkDisplay do tipo %s"
+
+#: ../clutter/x11/clutter-backend-x11.c:506
msgid "X display to use"
msgstr "Visor [display] X que usar"
-#: ../clutter/x11/clutter-backend-x11.c:489
+#: ../clutter/x11/clutter-backend-x11.c:512
msgid "X screen to use"
msgstr "Pantalla [screen] X que usar"
-#: ../clutter/x11/clutter-backend-x11.c:494
+#: ../clutter/x11/clutter-backend-x11.c:517
msgid "Make X calls synchronous"
msgstr "Facer que as chamadas a X sexan síncronas"
-#: ../clutter/x11/clutter-backend-x11.c:501
+#: ../clutter/x11/clutter-backend-x11.c:524
msgid "Enable XInput support"
msgstr "Activar a compatibilidade con XInput"
@@ -2126,104 +2141,104 @@ msgstr "Activar a compatibilidade con XInput"
msgid "The Clutter backend"
msgstr "Infraestrutura do Clutter"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:545
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:544
msgid "Pixmap"
msgstr "Mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:546
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:545
msgid "The X11 Pixmap to be bound"
msgstr "Asociar o mapa de píxeles X11"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:554
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:553
msgid "Pixmap width"
msgstr "Largura do mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:555
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:554
msgid "The width of the pixmap bound to this texture"
msgstr "A largura do mapa de píxeles asociado a esta textura"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:563
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:562
msgid "Pixmap height"
msgstr "Altura do mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:564
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:563
msgid "The height of the pixmap bound to this texture"
msgstr "A altura do mapa de píxeles asociado a esta textura"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:572
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:571
msgid "Pixmap Depth"
msgstr "Profundidade do mapa de píxeles"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:573
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:572
msgid "The depth (in number of bits) of the pixmap bound to this texture"
msgstr ""
"A profundidade (en número de bits) do mapa de píxeles asociado a esta textura"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:581
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:580
msgid "Automatic Updates"
msgstr "Actualizacións automáticas"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:582
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:581
msgid "If the texture should be kept in sync with any pixmap changes."
msgstr ""
"Se a textura debe manterse sincronizada con calquera cambio do mapa de "
"píxeles."
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:590
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:589
msgid "Window"
msgstr "Xanela"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:591
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:590
msgid "The X11 Window to be bound"
msgstr "A xanela X11 que asociar"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:599
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:598
msgid "Window Redirect Automatic"
msgstr "Redirixir a xanela automaticamente"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:600
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:599
msgid "If composite window redirects are set to Automatic (or Manual if false)"
msgstr ""
"Se a redirección da xanela composta estabelecese en automática (ou manual de "
"ser falso)"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:610
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:609
msgid "Window Mapped"
msgstr "Mapeamento da xanela"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:611
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:610
msgid "If window is mapped"
msgstr "Se a xanela é mapeada"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:620
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:619
msgid "Destroyed"
msgstr "Destruída"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:621
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:620
msgid "If window has been destroyed"
msgstr "Se a xanela foi destruída"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:629
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:628
msgid "Window X"
msgstr "Xanela X"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:630
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:629
msgid "X position of window on screen according to X11"
msgstr "Posición X da xanela na pantalla conforme X11"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:638
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:637
msgid "Window Y"
msgstr "Xanela Y"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:639
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:638
msgid "Y position of window on screen according to X11"
msgstr "Posición Y da xanela na pantalla conforme X11"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:646
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:645
msgid "Window Override Redirect"
msgstr "Redireccionar substituír a xanela"
-#: ../clutter/x11/clutter-x11-texture-pixmap.c:647
+#: ../clutter/x11/clutter-x11-texture-pixmap.c:646
msgid "If this is an override-redirect window"
msgstr "De ser unha substitución-redirección da xanela"
diff --git a/tests/conform/test-color.c b/tests/conform/test-color.c
index a0eab9519..a212e8384 100644
--- a/tests/conform/test-color.c
+++ b/tests/conform/test-color.c
@@ -73,8 +73,24 @@ test_color_hls_roundtrip (TestConformSimpleFixture *fixture,
}
void
-test_color_from_string (TestConformSimpleFixture *fixture,
- gconstpointer data)
+test_color_from_string_invalid (TestConformSimpleFixture *fixture,
+ gconstpointer data)
+{
+ ClutterColor color;
+
+ g_assert (!clutter_color_from_string (&color, "ff0000ff"));
+ g_assert (!clutter_color_from_string (&color, "#decaffbad"));
+ g_assert (!clutter_color_from_string (&color, "ponies"));
+ g_assert (!clutter_color_from_string (&color, "rgb(255, 0, 0, 0)"));
+ g_assert (!clutter_color_from_string (&color, "rgba(1.0, 0, 0)"));
+ g_assert (!clutter_color_from_string (&color, "hsl(100, 0, 0)"));
+ g_assert (!clutter_color_from_string (&color, "hsla(10%, 0%, 50%)"));
+ g_assert (!clutter_color_from_string (&color, "hsla(100%, 0%, 50%, 20%)"));
+}
+
+void
+test_color_from_string_valid (TestConformSimpleFixture *fixture,
+ gconstpointer data)
{
ClutterColor color;
@@ -205,6 +221,20 @@ test_color_from_string (TestConformSimpleFixture *fixture,
g_assert_cmpint (color.green, ==, 0);
g_assert_cmpint (color.blue, ==, 0);
g_assert_cmpint (color.alpha, ==, 255);
+
+ g_assert (clutter_color_from_string (&color, "hsla( 0, 100%, 50%, 0.5 )"));
+ if (g_test_verbose ())
+ {
+ g_print ("color = { %x, %x, %x, %x }, expected = { 255, 0, 0, 127 }\n",
+ color.red,
+ color.green,
+ color.blue,
+ color.alpha);
+ }
+ g_assert_cmpint (color.red, ==, 255);
+ g_assert_cmpint (color.green, ==, 0);
+ g_assert_cmpint (color.blue, ==, 0);
+ g_assert_cmpint (color.alpha, ==, 127);
}
void
diff --git a/tests/conform/test-conform-main.c b/tests/conform/test-conform-main.c
index 50557724d..3373e9481 100644
--- a/tests/conform/test-conform-main.c
+++ b/tests/conform/test-conform-main.c
@@ -182,7 +182,8 @@ main (int argc, char **argv)
TEST_CONFORM_SIMPLE ("/model", test_list_model_from_script);
TEST_CONFORM_SIMPLE ("/model", test_list_model_row_changed);
- TEST_CONFORM_SIMPLE ("/color", test_color_from_string);
+ TEST_CONFORM_SIMPLE ("/color", test_color_from_string_valid);
+ TEST_CONFORM_SIMPLE ("/color", test_color_from_string_invalid);
TEST_CONFORM_SIMPLE ("/color", test_color_to_string);
TEST_CONFORM_SIMPLE ("/color", test_color_hls_roundtrip);
TEST_CONFORM_SIMPLE ("/color", test_color_operators);