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) + --enable-tslib-input=[yes/no] + Enable the TSLib input backend. (default=no) [EXPERIMENTAL] - --with-evdev=[yes/no] - Use evdev for the input events. (default=yes) - - --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--.so + + to: + + libclutter-.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 + * + * 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 . + + * Authors: + * Matthew Allum + * Emmanuele Bassi + * Robert Bragg + * Neil Roberts + */ + +#include "config.h" + +#include +#include +#include +#include + +#include + +#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). + * + * This function has to be called before clutter_init() + * + * 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. + * + * This function has to be called before clutter_init() + * + * 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 + * + * 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 . + * + * Authors: + * Matthew Allum + * Robert Bragg + */ + +#ifndef __CLUTTER_BACKEND_CEX100_H__ +#define __CLUTTER_BACKEND_CEX100_H__ + +#include +#include +#include +#include + +#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 similarity index 61% rename from clutter/egl/clutter-cex100.h.in rename to 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 - * <clutter/egl/clutter-cex100.h> + * <clutter/cex100/clutter-cex100.h> * to have access to the functions documented here. */ @@ -43,28 +43,14 @@ 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). - * - * This function has to be called before clutter_init() - */ -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. - * - * This function has to be called before clutter_init() - */ -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 +#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 . - - * Authors: - * Matthew Allum - * Emmanuele Bassi - * Robert Bragg - * Neil Roberts - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include - -#include - -#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 . - * - * Authors: - * Matthew Allum - * Robert Bragg - */ - -#ifndef __CLUTTER_BACKEND_COGL_H__ -#define __CLUTTER_BACKEND_COGL_H__ - -#include -#include -#include -#include - -#ifdef COGL_HAS_XLIB_SUPPORT -#include -#include -#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 #include +#include #include #ifdef COGL_HAS_X11_SUPPORT @@ -11,8 +11,6 @@ #include #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 #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; - - 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 == 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; + return renderer; } -static ClutterStageWindow * -clutter_backend_gdk_create_stage (ClutterBackend *backend, - ClutterStage *wrapper, - GError **error) +static CoglDisplay * +clutter_backend_gdk_get_display (ClutterBackend *backend, + CoglRenderer *renderer, + CoglSwapChain *swap_chain, + GError **error) { - return g_object_new (CLUTTER_TYPE_STAGE_GDK, - "backend", backend, - "wrapper", wrapper, - NULL); + ClutterBackendGdk *backend_gdk = CLUTTER_BACKEND_GDK (backend); + CoglOnscreenTemplate *onscreen_template; + GError *internal_error = NULL; + CoglDisplay *display; + gboolean has_rgba_visual; + gboolean res; + + has_rgba_visual = gdk_screen_get_rgba_visual (backend_gdk->screen) == NULL; + + CLUTTER_NOTE (BACKEND, "Alpha on Cogl swap chain: %s", + has_rgba_visual ? "enabled" : "disabled"); + + cogl_swap_chain_set_has_alpha (swap_chain, has_rgba_visual); + + onscreen_template = cogl_onscreen_template_new (swap_chain); + + res = cogl_renderer_check_onscreen_template (renderer, + onscreen_template, + &internal_error); + if (!res && has_rgba_visual) + { + 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 (!res) + { + 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; + } + + 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 -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 +#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; + 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; -} - -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 +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] @@ -601,24 +609,6 @@ clutter_stage_window_iface_init (ClutterStageWindowIface *iface) iface->redraw = clutter_stage_osx_redraw; } -/*************************************************************************/ -ClutterStageWindow * -_clutter_stage_osx_new (ClutterBackend *backend, - ClutterStage *wrapper) -{ - ClutterStageOSX *self; - - 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) @@ -626,6 +616,35 @@ clutter_stage_osx_init (ClutterStageOSX *self) self->requisition_width = 640; self->requisition_height = 480; self->acceptFocus = TRUE; + + self->isHiding = false; + self->haveRealized = false; + self->view = NULL; + self->window = NULL; +} + +static void +clutter_stage_osx_set_property (GObject *gobject, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + 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 @@ -484,12 +484,6 @@ clutter_backend_wayland_create_context (ClutterBackend *backend, return status; } -static void -clutter_backend_wayland_ensure_context (ClutterBackend *backend, - ClutterStage *stage) -{ -} - static void clutter_backend_wayland_redraw (ClutterBackend *backend, ClutterStage *stage) @@ -505,11 +499,6 @@ clutter_backend_wayland_redraw (ClutterBackend *backend, _clutter_stage_wayland_redraw (CLUTTER_STAGE_WAYLAND (impl), stage); } -static void -clutter_backend_wayland_init_events (ClutterBackend *backend) -{ -} - static void clutter_backend_wayland_finalize (GObject *gobject) { @@ -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, @@ -427,9 +435,38 @@ clutter_stage_window_iface_init (ClutterStageWindowIface *iface) iface->ignoring_redraw_clips = clutter_stage_wayland_ignoring_redraw_clips; } +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 - * 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 . - * - * - */ - -#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; + 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; +} + +static CoglDisplay * +clutter_backend_x11_get_display (ClutterBackend *backend, + CoglRenderer *renderer, + CoglSwapChain *swap_chain, + GError **error) +{ + CoglOnscreenTemplate *onscreen_template; GError *internal_error = NULL; - gboolean status; + CoglDisplay *display; + gboolean res; - if (backend->cogl_context != NULL) - return TRUE; + CLUTTER_NOTE (BACKEND, "Alpha on Cogl swap chain: %s", + clutter_enable_argb ? "enabled" : "disabled"); - 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; - - 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); + + return NULL; } - if (backend->cogl_display != NULL) - { - cogl_object_unref (backend->cogl_display); - backend->cogl_display = NULL; - } + display = cogl_display_new (renderer, onscreen_template); + cogl_object_unref (onscreen_template); - 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; + 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; +void _clutter_backend_x11_events_init (ClutterBackend *backend); + +GSource * _clutter_x11_event_source_new (ClutterBackendX11 *backend_x11); + /* Private to glx/eglx backends */ -XVisualInfo * -_clutter_backend_x11_get_visual_info (ClutterBackendX11 *backend_x11); +XVisualInfo * _clutter_backend_x11_get_visual_info (ClutterBackendX11 *backend_x11); -void -_clutter_x11_select_events (Window xwin); +void _clutter_x11_select_events (Window xwin); -ClutterEventX11 * -_clutter_event_x11_new (void); +ClutterEventX11 * _clutter_event_x11_new (void); +ClutterEventX11 * _clutter_event_x11_copy (ClutterEventX11 *event_x11); +void _clutter_event_x11_free (ClutterEventX11 *event_x11); -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 * +_clutter_x11_event_source_new (ClutterBackendX11 *backend_x11) { - 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) -{ - 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,10 +321,46 @@ AS_IF([test "x$enable_wayland" = "xyes"], AC_DEFINE([HAVE_CLUTTER_WAYLAND], [1], [Have the Wayland backend]) ]) +AS_IF([test "x$enable_cex100" = "xyes"], + [ + CLUTTER_BACKENDS="$CLUTTER_BACKENDS cex100" + + experimental_backend="yes" + + SUPPORT_COGL=1 + SUPPORT_EGL_PLATFORM_GDL=1 + + have_gdl=no + AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes]) + + 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/ + ]) + ]) + + AS_IF([test "x$have_gdl" = "xno"], + [AC_MSG_ERROR([libgdl.h not found but the CEx100 backend has been explicitly enabled])]) + + AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX) + + FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl" + + 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$enable_egl" = "xyes"], [ CLUTTER_BACKENDS="$CLUTTER_BACKENDS egl" + experimental_backend="yes" + SUPPORT_EGL=1 SUPPORT_COGL=1 @@ -327,71 +371,6 @@ AS_IF([test "x$enable_egl" = "xyes"], ], []) - 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]) - - AC_ARG_WITH([gdl], - [AS_HELP_STRING([--with-gdl=@<:@yes/no@:>@], [Use libgdl for CE3100/CE4100 support (default=no)])], - [], - [with_gdl=no]) - - 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]) - - AS_IF([test "x$with_evdev" = "xyes"], - [ - 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]) - - AS_IF([test "x$with_gdl" = "xyes"], - [ - have_gdl=no - - AC_CHECK_HEADERS([libgdl.h], [have_gdl=yes]) - - 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/ - ]) - ]) - - AC_SUBST(CLUTTER_CEX100_LIBGDL_PREFIX) - - AS_IF([test "x$have_gdl" = "xno"], [AC_MSG_ERROR([libgdl.h not found])]) - - FLAVOUR_LIBS="$FLAVOUR_LIBS -lgdl" - - SUPPORT_EGL_PLATFORM_GDL=1 - - AC_DEFINE([CLUTTER_EGL_BACKEND_CEX100], [1], [Use CEX100 EGL backend]) - ], - [have_gdl=no]) - 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 , 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 \n" "Language-Team: LANGUAGE \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" +#: ../clutter/clutter-backend.c:333 +msgid "Unable to initialize the Clutter backend" msgstr "" -#: clutter/clutter-behaviour-depth.c:178 -msgid "Start Depth" +#: ../clutter/clutter-backend.c:407 +#, c-format +msgid "The backend of type '%s' does not support creating multiple stages" 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" -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" -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" +#: ../clutter/clutter-settings.c:624 +msgid "Password Hint Time" msgstr "" -#: clutter/clutter-shader.c:256 -msgid "Source of vertex shader" +#: ../clutter/clutter-settings.c:625 +msgid "How long to show the last input character in hidden entries" 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" -msgstr "" - -#: clutter/clutter-shader.c:291 -msgid "Whether the shader is compiled and linked" -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 , 2011. # Jorge González , 2011. +# Daniel Mustieles , 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 \n" -"Language-Team: Español; Castellano \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 \n" +"Language-Team: Español \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/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-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/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 \n" "Language-Team: Galician \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/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-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/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);