Compare commits
101 Commits
Author | SHA1 | Date | |
---|---|---|---|
76175a48d5 | |||
c8392e025f | |||
820ffa2781 | |||
51f7892600 | |||
de1464f88f | |||
aebd5ba6e0 | |||
a310ba7649 | |||
daf5a112fb | |||
0745734ba5 | |||
a75e2ace82 | |||
f18e2a8c31 | |||
ff6186f1ec | |||
cd0f8e5cd1 | |||
75c3cf0589 | |||
a40e4634a6 | |||
d62d780a95 | |||
eed71654ba | |||
835ded3f02 | |||
3450b51da1 | |||
1ca9d8ac02 | |||
aafdb6baaa | |||
2547a7cd9c | |||
b4b13ac996 | |||
21f2f52269 | |||
ea64e0abfa | |||
e891a8b628 | |||
aecd98b847 | |||
d7b87799c8 | |||
28a898a22f | |||
92341e7c30 | |||
2eb843268a | |||
44b163e39b | |||
566c28bdaf | |||
749237a28e | |||
c498bce9e4 | |||
7f0e6b9b4b | |||
a465e4c5b8 | |||
767e12125b | |||
df0805fb0a | |||
14dbdfe483 | |||
c3d2352a9e | |||
55726e787b | |||
085df1170e | |||
f31d71ce63 | |||
2c439dec75 | |||
942feadffd | |||
8bebb8126c | |||
12ef1a5e4b | |||
ec1da588cf | |||
44628bf224 | |||
27ac0b7f27 | |||
e420f386d2 | |||
2ceff4ee9b | |||
b2a62e6d5a | |||
a54042e938 | |||
2facf26568 | |||
9c0fa583f5 | |||
feb4c36659 | |||
dd1eaeb262 | |||
f096cc327d | |||
e05f48fc53 | |||
95a68854ad | |||
d63e9452d9 | |||
f1b7b41b8d | |||
bdc68efe45 | |||
bf71cb2e3c | |||
4d13f6e2d0 | |||
d6cde4b043 | |||
e2f5579391 | |||
90de521799 | |||
a1bedd4b1c | |||
b281f9566d | |||
5ee0f24ab9 | |||
fcc7501eb8 | |||
492854e14d | |||
c325a0bebf | |||
d6b290ef77 | |||
b112d98278 | |||
cc6efeb14f | |||
53993ba4d2 | |||
7f6bcea331 | |||
7ed14e0ee8 | |||
3691eb6d70 | |||
d4d2bf0f6c | |||
0f2be43af4 | |||
87f9927375 | |||
21fd87c4af | |||
1d2bead358 | |||
a174c18fb5 | |||
c61dfa71ed | |||
65cc1c711a | |||
2f74ecd469 | |||
53a9411255 | |||
989ec7fc60 | |||
c72efc90cb | |||
e7430a4535 | |||
2292458f5e | |||
d62491f46e | |||
8f7a36c53f | |||
8d7ae52565 | |||
cffd2a658b |
2
.gitignore
vendored
2
.gitignore
vendored
@ -36,6 +36,8 @@ mutter-wayland.desktop
|
||||
stamp-h1
|
||||
*.gmo
|
||||
*.make
|
||||
*.log
|
||||
*.trs
|
||||
*~
|
||||
stamp-it
|
||||
.intltool-merge-cache
|
||||
|
35
NEWS
35
NEWS
@ -1,3 +1,38 @@
|
||||
3.21.4
|
||||
======
|
||||
* Fix missing frame border around GTK+ dialogs [Florian; #745060]
|
||||
* Improve X11 <-> wayland copy and paste interaction [Carlos; #768007]
|
||||
* Add support for NV_robustness_video_memory_purge extension [Rui; #739178]
|
||||
* Fix restoring the old focused window on restart [Owen; #766243]
|
||||
* Fix fullscreen windows on other monitors stealing focus after closing
|
||||
a window [Rui; #768221]
|
||||
* Draw monitor content to individual framebuffer [Jonas; #768976]
|
||||
* Provide screen capture API [Jonas; #768978]
|
||||
* Misc. bug fixes and cleanups [Rui, Owen, Luca, Olivier, Jonas, Carlos;
|
||||
#767969, #768243, #762407, #767997, #768039, #768977, #768977]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Luca Bruno, Olivier Fourdan, Carlos Garnacho, Rui Matos,
|
||||
Florian Müllner, Owen W. Taylor
|
||||
|
||||
Translations:
|
||||
Andika Triwidada [id]
|
||||
|
||||
3.21.3
|
||||
======
|
||||
* Don't create invalid UTF-8 window description strings [Rui; #765535]
|
||||
* Convert window titles and wm_class to UTF-8 [Rui; #752788]
|
||||
* Communicate tiled state to GTK+ on wayland [Olivier; #766860]
|
||||
* Use kill() to force-quit unresponsive wayland clients [Olivier; #767464]
|
||||
* Fix window position when unmaximizing via DND on wayland [Olivier; #764180]
|
||||
* Avoid full window redraws when using extended frame sync [Florian; #767798]
|
||||
|
||||
Contributors:
|
||||
Olivier Fourdan, Rui Matos, Florian Müllner
|
||||
|
||||
Translations:
|
||||
Cédric Valmary [oc]
|
||||
|
||||
3.21.2
|
||||
======
|
||||
* Clean up surface <-> shell interaction [Jonas; #763431]
|
||||
|
20
clutter/.gitignore
vendored
20
clutter/.gitignore
vendored
@ -18,16 +18,16 @@ stamp-enum-types
|
||||
stamp-marshal
|
||||
tags
|
||||
/ChangeLog*
|
||||
/clutter/clutter-config.h
|
||||
/clutter/clutter-enum-types.[ch]
|
||||
/clutter/clutter-marshal.[ch]
|
||||
/clutter/clutter-version.h
|
||||
/clutter/gcov-report.txt
|
||||
/clutter/clutter-json.h
|
||||
/clutter/*.log
|
||||
/clutter/*.trs
|
||||
/clutter-lcov.info
|
||||
/clutter-lcov
|
||||
clutter-build-config.h
|
||||
clutter-build-config.h.in
|
||||
clutter-config.h
|
||||
clutter-enum-types.[ch]
|
||||
clutter-marshal.[ch]
|
||||
clutter-version.h
|
||||
gcov-report.txt
|
||||
clutter-json.h
|
||||
clutter-lcov.info
|
||||
clutter-lcov
|
||||
!/build/autotools/introspection.m4
|
||||
!/build/autotools/as-linguas.m4
|
||||
!/build/autotools/as-compiler-flag.m4
|
||||
|
@ -16,7 +16,6 @@ AM_CPPFLAGS = \
|
||||
-DCLUTTER_LOCALEDIR=\""$(localedir)"\" \
|
||||
-DCLUTTER_SYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DCLUTTER_COMPILATION=1 \
|
||||
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
||||
-DCOGL_DISABLE_DEPRECATION_WARNINGS \
|
||||
-DG_LOG_DOMAIN=\"Clutter\" \
|
||||
-I$(top_srcdir) \
|
||||
@ -62,7 +61,6 @@ source_h = \
|
||||
clutter-canvas.h \
|
||||
clutter-child-meta.h \
|
||||
clutter-click-action.h \
|
||||
clutter-cogl-compat.h \
|
||||
clutter-clone.h \
|
||||
clutter-color-static.h \
|
||||
clutter-color.h \
|
||||
@ -114,6 +112,7 @@ source_h = \
|
||||
clutter-snap-constraint.h \
|
||||
clutter-stage.h \
|
||||
clutter-stage-manager.h \
|
||||
clutter-stage-view.h \
|
||||
clutter-tap-action.h \
|
||||
clutter-test-utils.h \
|
||||
clutter-texture.h \
|
||||
@ -197,6 +196,7 @@ source_c = \
|
||||
clutter-snap-constraint.c \
|
||||
clutter-stage.c \
|
||||
clutter-stage-manager.c \
|
||||
clutter-stage-view.c \
|
||||
clutter-stage-window.c \
|
||||
clutter-tap-action.c \
|
||||
clutter-test-utils.c \
|
||||
@ -267,7 +267,6 @@ deprecated_h = \
|
||||
deprecated/clutter-box.h \
|
||||
deprecated/clutter-cairo-texture.h \
|
||||
deprecated/clutter-container.h \
|
||||
deprecated/clutter-fixed.h \
|
||||
deprecated/clutter-frame-source.h \
|
||||
deprecated/clutter-group.h \
|
||||
deprecated/clutter-input-device.h \
|
||||
@ -304,7 +303,6 @@ deprecated_c = \
|
||||
deprecated/clutter-behaviour-scale.c \
|
||||
deprecated/clutter-box.c \
|
||||
deprecated/clutter-cairo-texture.c \
|
||||
deprecated/clutter-fixed.c \
|
||||
deprecated/clutter-frame-source.c \
|
||||
deprecated/clutter-group.c \
|
||||
deprecated/clutter-input-device-deprecated.c \
|
||||
@ -487,8 +485,8 @@ egl_source_h = \
|
||||
egl/clutter-egl.h \
|
||||
$(NULL)
|
||||
|
||||
egl_source_h_priv = egl/clutter-backend-eglnative.h egl/clutter-stage-eglnative.h
|
||||
egl_source_c = egl/clutter-backend-eglnative.c egl/clutter-stage-eglnative.c
|
||||
egl_source_h_priv = egl/clutter-backend-eglnative.h
|
||||
egl_source_c = egl/clutter-backend-eglnative.c
|
||||
|
||||
wayland_compositor_source_h = \
|
||||
wayland/clutter-wayland-compositor.h \
|
||||
@ -562,7 +560,7 @@ pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = $(pc_files)
|
||||
DISTCLEANFILES += $(pc_files)
|
||||
|
||||
clutter_include_HEADERS = $(source_h) clutter.h clutter-version.h clutter-autocleanups.h
|
||||
clutter_include_HEADERS = $(source_h) clutter.h clutter-version.h clutter-autocleanups.h clutter-mutter.h
|
||||
nodist_clutter_include_HEADERS = clutter-config.h $(built_source_h)
|
||||
|
||||
clutter_deprecated_HEADERS = $(deprecated_h)
|
||||
|
@ -68,7 +68,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
|
@ -69,7 +69,7 @@
|
||||
* a11y POV should still be managed as a image (with the proper properties,
|
||||
* position, size, etc.).
|
||||
*/
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include "cally-clone.h"
|
||||
#include "cally-actor-private.h"
|
||||
|
@ -34,7 +34,7 @@
|
||||
* group.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include "cally-group.h"
|
||||
#include "cally-actor-private.h"
|
||||
|
@ -30,7 +30,7 @@
|
||||
* In particular it sets a proper role for the rectangle.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
||||
* #ClutterStageManager).
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include "cally-root.h"
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
* being a canvas. Anyway, this is required for applications using
|
||||
* just clutter, or directly #ClutterStage
|
||||
*/
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include "cally-stage.h"
|
||||
#include "cally-actor-private.h"
|
||||
|
@ -40,7 +40,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "cally-text.h"
|
||||
|
@ -30,7 +30,7 @@
|
||||
*
|
||||
* In particular it sets a proper role for the texture.
|
||||
*/
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
@ -30,7 +30,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
|
@ -42,7 +42,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-action.h"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -42,7 +42,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-actor-meta-private.h"
|
||||
|
@ -605,7 +605,7 @@
|
||||
* #ClutterActor:reactive property instead of this macro.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
@ -856,8 +856,6 @@ CLUTTER_AVAILABLE_IN_1_10
|
||||
void clutter_actor_remove_all_transitions (ClutterActor *self);
|
||||
|
||||
|
||||
/* Experimental API */
|
||||
#ifdef CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
CLUTTER_AVAILABLE_IN_1_16
|
||||
gboolean clutter_actor_has_mapped_clones (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_22
|
||||
@ -865,7 +863,6 @@ void clutter_actor_set_opacity_override
|
||||
gint opacity);
|
||||
CLUTTER_AVAILABLE_IN_1_22
|
||||
gint clutter_actor_get_opacity_override (ClutterActor *self);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ClutterActorCreateChildFunc:
|
||||
|
@ -35,7 +35,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-align-constraint.h"
|
||||
|
@ -46,7 +46,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
|
@ -65,8 +65,6 @@ struct _ClutterBackendClass
|
||||
/*< private >*/
|
||||
GObjectClass parent_class;
|
||||
|
||||
GType stage_window_type;
|
||||
|
||||
/* vfuncs */
|
||||
gboolean (* pre_parse) (ClutterBackend *backend,
|
||||
GError **error);
|
||||
@ -88,8 +86,6 @@ struct _ClutterBackendClass
|
||||
GError **error);
|
||||
gboolean (* create_context) (ClutterBackend *backend,
|
||||
GError **error);
|
||||
void (* ensure_context) (ClutterBackend *backend,
|
||||
ClutterStage *stage);
|
||||
ClutterDeviceManager *(* get_device_manager) (ClutterBackend *backend);
|
||||
|
||||
void (* copy_event_data) (ClutterBackend *backend,
|
||||
@ -115,10 +111,6 @@ ClutterBackend * _clutter_create_backend (void);
|
||||
ClutterStageWindow * _clutter_backend_create_stage (ClutterBackend *backend,
|
||||
ClutterStage *wrapper,
|
||||
GError **error);
|
||||
void _clutter_backend_ensure_context (ClutterBackend *backend,
|
||||
ClutterStage *stage);
|
||||
void _clutter_backend_ensure_context_internal (ClutterBackend *backend,
|
||||
ClutterStage *stage);
|
||||
gboolean _clutter_backend_create_context (ClutterBackend *backend,
|
||||
GError **error);
|
||||
|
||||
@ -138,8 +130,11 @@ void _clutter_backend_free_event_data (Clutter
|
||||
gboolean _clutter_backend_translate_event (ClutterBackend *backend,
|
||||
gpointer native,
|
||||
ClutterEvent *event);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
void _clutter_backend_add_event_translator (ClutterBackend *backend,
|
||||
ClutterEventTranslator *translator);
|
||||
|
||||
void _clutter_backend_remove_event_translator (ClutterBackend *backend,
|
||||
ClutterEventTranslator *translator);
|
||||
|
||||
@ -151,6 +146,7 @@ gint32 _clutter_backend_get_units_serial (Clutter
|
||||
|
||||
PangoDirection _clutter_backend_get_keymap_direction (ClutterBackend *backend);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
void _clutter_backend_reset_cogl_framebuffer (ClutterBackend *backend);
|
||||
|
||||
void clutter_set_allowed_drivers (const char *drivers);
|
||||
|
@ -39,7 +39,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
@ -48,6 +48,7 @@
|
||||
#include "clutter-debug.h"
|
||||
#include "clutter-event-private.h"
|
||||
#include "clutter-marshal.h"
|
||||
#include "clutter-mutter.h"
|
||||
#include "clutter-private.h"
|
||||
#include "clutter-stage-manager-private.h"
|
||||
#include "clutter-stage-private.h"
|
||||
@ -230,31 +231,17 @@ clutter_backend_do_real_create_context (ClutterBackend *backend,
|
||||
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 ();
|
||||
backend->cogl_renderer = klass->get_renderer (backend, &internal_error);
|
||||
|
||||
if (backend->cogl_renderer == NULL)
|
||||
goto error;
|
||||
|
||||
#ifdef CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT
|
||||
/* If the application is trying to act as a Wayland compositor then
|
||||
it needs to have an EGL-based renderer backend */
|
||||
if (_wayland_compositor_display)
|
||||
cogl_renderer_add_constraint (backend->cogl_renderer,
|
||||
COGL_RENDERER_CONSTRAINT_USES_EGL);
|
||||
#endif
|
||||
|
||||
CLUTTER_NOTE (BACKEND, "Connecting the renderer");
|
||||
cogl_renderer_set_driver (backend->cogl_renderer, driver_id);
|
||||
if (!cogl_renderer_connect (backend->cogl_renderer, &internal_error))
|
||||
@ -361,6 +348,9 @@ clutter_backend_real_create_context (ClutterBackend *backend,
|
||||
gboolean allow_any;
|
||||
int i;
|
||||
|
||||
if (backend->cogl_context != NULL)
|
||||
return TRUE;
|
||||
|
||||
if (allowed_drivers == NULL)
|
||||
allowed_drivers = CLUTTER_DRIVERS;
|
||||
|
||||
@ -423,27 +413,6 @@ clutter_backend_real_create_context (ClutterBackend *backend,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
@ -477,39 +446,10 @@ clutter_backend_real_get_features (ClutterBackend *backend)
|
||||
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 const char *allowed_backends;
|
||||
|
||||
static ClutterBackend * (* custom_backend_func) (void);
|
||||
|
||||
static const struct {
|
||||
const char *name;
|
||||
ClutterBackend * (* create_backend) (void);
|
||||
@ -517,15 +457,18 @@ static const struct {
|
||||
#ifdef CLUTTER_WINDOWING_X11
|
||||
{ CLUTTER_WINDOWING_X11, clutter_backend_x11_new },
|
||||
#endif
|
||||
#ifdef CLUTTER_WINDOWING_WAYLAND
|
||||
{ CLUTTER_WINDOWING_WAYLAND, clutter_backend_wayland_new },
|
||||
#endif
|
||||
#ifdef CLUTTER_WINDOWING_EGL
|
||||
{ CLUTTER_WINDOWING_EGL, clutter_backend_egl_native_new },
|
||||
#endif
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
||||
void
|
||||
clutter_set_custom_backend_func (ClutterBackend *(* func) (void))
|
||||
{
|
||||
custom_backend_func = func;
|
||||
}
|
||||
|
||||
ClutterBackend *
|
||||
_clutter_create_backend (void)
|
||||
{
|
||||
@ -535,6 +478,16 @@ _clutter_create_backend (void)
|
||||
char **backends;
|
||||
int i;
|
||||
|
||||
if (custom_backend_func)
|
||||
{
|
||||
retval = custom_backend_func ();
|
||||
|
||||
if (!retval)
|
||||
g_error ("Failed to create custom backend.");
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (allowed_backends == NULL)
|
||||
allowed_backends = "*";
|
||||
|
||||
@ -662,8 +615,6 @@ clutter_backend_class_init (ClutterBackendClass *klass)
|
||||
gobject_class->dispose = clutter_backend_dispose;
|
||||
gobject_class->finalize = clutter_backend_finalize;
|
||||
|
||||
klass->stage_window_type = G_TYPE_INVALID;
|
||||
|
||||
/**
|
||||
* ClutterBackend::resolution-changed:
|
||||
* @backend: the #ClutterBackend that emitted the signal
|
||||
@ -725,9 +676,7 @@ clutter_backend_class_init (ClutterBackendClass *klass)
|
||||
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;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -818,87 +767,6 @@ _clutter_backend_create_context (ClutterBackend *backend,
|
||||
return klass->create_context (backend, error);
|
||||
}
|
||||
|
||||
void
|
||||
_clutter_backend_ensure_context_internal (ClutterBackend *backend,
|
||||
ClutterStage *stage)
|
||||
{
|
||||
ClutterBackendClass *klass = CLUTTER_BACKEND_GET_CLASS (backend);
|
||||
if (G_LIKELY (klass->ensure_context))
|
||||
klass->ensure_context (backend, stage);
|
||||
}
|
||||
|
||||
void
|
||||
_clutter_backend_ensure_context (ClutterBackend *backend,
|
||||
ClutterStage *stage)
|
||||
{
|
||||
static ClutterStage *current_context_stage = NULL;
|
||||
|
||||
g_assert (CLUTTER_IS_BACKEND (backend));
|
||||
g_assert (CLUTTER_IS_STAGE (stage));
|
||||
|
||||
if (current_context_stage != stage ||
|
||||
!clutter_actor_is_realized (CLUTTER_ACTOR (stage)))
|
||||
{
|
||||
ClutterStage *new_stage = NULL;
|
||||
|
||||
if (!clutter_actor_is_realized (CLUTTER_ACTOR (stage)))
|
||||
{
|
||||
new_stage = NULL;
|
||||
|
||||
CLUTTER_NOTE (BACKEND,
|
||||
"Stage [%p] is not realized, unsetting the stage",
|
||||
stage);
|
||||
}
|
||||
else
|
||||
{
|
||||
new_stage = stage;
|
||||
|
||||
CLUTTER_NOTE (BACKEND,
|
||||
"Setting the new stage [%p]",
|
||||
new_stage);
|
||||
}
|
||||
|
||||
/* XXX: Until Cogl becomes fully responsible for backend windows
|
||||
* Clutter need to manually keep it informed of the current window size
|
||||
*
|
||||
* NB: This must be done after we ensure_context above because Cogl
|
||||
* always assumes there is a current GL context.
|
||||
*/
|
||||
if (new_stage != NULL)
|
||||
{
|
||||
float width, height;
|
||||
|
||||
_clutter_backend_ensure_context_internal (backend, new_stage);
|
||||
|
||||
clutter_actor_get_size (CLUTTER_ACTOR (stage), &width, &height);
|
||||
|
||||
cogl_onscreen_clutter_backend_set_size (width, height);
|
||||
|
||||
/* Eventually we will have a separate CoglFramebuffer for
|
||||
* each stage and each one will track private projection
|
||||
* matrix and viewport state, but until then we need to make
|
||||
* sure we update the projection and viewport whenever we
|
||||
* switch between stages.
|
||||
*
|
||||
* This dirty mechanism will ensure they are asserted before
|
||||
* the next paint...
|
||||
*/
|
||||
_clutter_stage_dirty_viewport (stage);
|
||||
_clutter_stage_dirty_projection (stage);
|
||||
}
|
||||
|
||||
/* FIXME: With a NULL stage and thus no active context it may make more
|
||||
* sense to clean the context but then re call with the default stage
|
||||
* so at least there is some kind of context in place (as to avoid
|
||||
* potential issue of GL calls with no context).
|
||||
*/
|
||||
current_context_stage = new_stage;
|
||||
}
|
||||
else
|
||||
CLUTTER_NOTE (BACKEND, "Stage is the same");
|
||||
}
|
||||
|
||||
|
||||
ClutterFeatureFlags
|
||||
_clutter_backend_get_features (ClutterBackend *backend)
|
||||
{
|
||||
@ -1346,7 +1214,7 @@ _clutter_backend_remove_event_translator (ClutterBackend *backend,
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_get_cogl_context:
|
||||
* clutter_backend_get_cogl_context: (skip)
|
||||
* @backend: a #ClutterBackend
|
||||
*
|
||||
* Retrieves the #CoglContext associated with the given clutter
|
||||
|
@ -31,9 +31,7 @@
|
||||
#include <cairo.h>
|
||||
#include <pango/pango.h>
|
||||
|
||||
#ifdef COGL_ENABLE_EXPERIMENTAL_API
|
||||
#include <cogl/cogl.h>
|
||||
#endif
|
||||
|
||||
#include <clutter/clutter-config.h>
|
||||
#include <clutter/clutter-types.h>
|
||||
@ -73,10 +71,8 @@ void clutter_backend_set_font_options (Clutter
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
const cairo_font_options_t * clutter_backend_get_font_options (ClutterBackend *backend);
|
||||
|
||||
#if defined (COGL_ENABLE_EXPERIMENTAL_API) && defined (CLUTTER_ENABLE_EXPERIMENTAL_API)
|
||||
CLUTTER_AVAILABLE_IN_1_8
|
||||
CoglContext * clutter_backend_get_cogl_context (ClutterBackend *backend);
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-types.h"
|
||||
|
@ -21,6 +21,8 @@
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include <glib.h>
|
||||
#include <string.h>
|
||||
#include "clutter-bezier.h"
|
||||
@ -57,6 +59,10 @@
|
||||
#define CBZ_T_STEP (CBZ_T_ONE / CBZ_T_SAMPLES)
|
||||
#define CBZ_L_STEP (CBZ_T_ONE / CBZ_T_SAMPLES)
|
||||
|
||||
#define FIXED_BITS (32)
|
||||
#define FIXED_Q (FIXED_BITS - 16)
|
||||
#define FIXED_FROM_INT(x) ((x) << FIXED_Q)
|
||||
|
||||
typedef gint32 _FixedT;
|
||||
|
||||
/*
|
||||
@ -186,6 +192,90 @@ _clutter_bezier_advance (const ClutterBezier *b, gint L, ClutterKnot * knot)
|
||||
knot->x, knot->y);
|
||||
}
|
||||
|
||||
static int
|
||||
sqrti (int number)
|
||||
{
|
||||
#if defined __SSE2__
|
||||
/* The GCC built-in with SSE2 (sqrtsd) is up to twice as fast as
|
||||
* the pure integer code below. It is also more accurate.
|
||||
*/
|
||||
return __builtin_sqrt (number);
|
||||
#else
|
||||
/* This is a fixed point implementation of the Quake III sqrt algorithm,
|
||||
* described, for example, at
|
||||
* http://www.codemaestro.com/reviews/review00000105.html
|
||||
*
|
||||
* While the original QIII is extremely fast, the use of floating division
|
||||
* and multiplication makes it perform very on arm processors without FPU.
|
||||
*
|
||||
* The key to successfully replacing the floating point operations with
|
||||
* fixed point is in the choice of the fixed point format. The QIII
|
||||
* algorithm does not calculate the square root, but its reciprocal ('y'
|
||||
* below), which is only at the end turned to the inverse value. In order
|
||||
* for the algorithm to produce satisfactory results, the reciprocal value
|
||||
* must be represented with sufficient precission; the 16.16 we use
|
||||
* elsewhere in clutter is not good enough, and 10.22 is used instead.
|
||||
*/
|
||||
_FixedT x;
|
||||
uint32_t y_1; /* 10.22 fixed point */
|
||||
uint32_t f = 0x600000; /* '1.5' as 10.22 fixed */
|
||||
|
||||
union
|
||||
{
|
||||
float f;
|
||||
uint32_t i;
|
||||
} flt, flt2;
|
||||
|
||||
flt.f = number;
|
||||
|
||||
x = FIXED_FROM_INT (number) / 2;
|
||||
|
||||
/* The QIII initial estimate */
|
||||
flt.i = 0x5f3759df - ( flt.i >> 1 );
|
||||
|
||||
/* Now, we convert the float to 10.22 fixed. We exploit the mechanism
|
||||
* described at http://www.d6.com/users/checker/pdfs/gdmfp.pdf.
|
||||
*
|
||||
* We want 22 bit fraction; a single precission float uses 23 bit
|
||||
* mantisa, so we only need to add 2^(23-22) (no need for the 1.5
|
||||
* multiplier as we are only dealing with positive numbers).
|
||||
*
|
||||
* Note: we have to use two separate variables here -- for some reason,
|
||||
* if we try to use just the flt variable, gcc on ARM optimises the whole
|
||||
* addition out, and it all goes pear shape, since without it, the bits
|
||||
* in the float will not be correctly aligned.
|
||||
*/
|
||||
flt2.f = flt.f + 2.0;
|
||||
flt2.i &= 0x7FFFFF;
|
||||
|
||||
/* Now we correct the estimate */
|
||||
y_1 = (flt2.i >> 11) * (flt2.i >> 11);
|
||||
y_1 = (y_1 >> 8) * (x >> 8);
|
||||
|
||||
y_1 = f - y_1;
|
||||
flt2.i = (flt2.i >> 11) * (y_1 >> 11);
|
||||
|
||||
/* If the original argument is less than 342, we do another
|
||||
* iteration to improve precission (for arguments >= 342, the single
|
||||
* iteration produces generally better results).
|
||||
*/
|
||||
if (x < 171)
|
||||
{
|
||||
y_1 = (flt2.i >> 11) * (flt2.i >> 11);
|
||||
y_1 = (y_1 >> 8) * (x >> 8);
|
||||
|
||||
y_1 = f - y_1;
|
||||
flt2.i = (flt2.i >> 11) * (y_1 >> 11);
|
||||
}
|
||||
|
||||
/* Invert, round and convert from 10.22 to an integer
|
||||
* 0x1e3c68 is a magical rounding constant that produces slightly
|
||||
* better results than 0x200000.
|
||||
*/
|
||||
return (number * flt2.i + 0x1e3c68) >> 22;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
_clutter_bezier_init (ClutterBezier *b,
|
||||
gint x_0, gint y_0,
|
||||
@ -250,7 +340,7 @@ _clutter_bezier_init (ClutterBezier *b,
|
||||
int x = _clutter_bezier_t2x (b, t);
|
||||
int y = _clutter_bezier_t2y (b, t);
|
||||
|
||||
guint l = cogl_sqrti ((y - yp)*(y - yp) + (x - xp)*(x - xp));
|
||||
guint l = sqrti ((y - yp)*(y - yp) + (x - xp)*(x - xp));
|
||||
|
||||
l += length[i-1];
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -81,7 +81,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -95,7 +95,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-binding-pool.h"
|
||||
|
@ -38,7 +38,7 @@
|
||||
#define CLUTTER_BLUR_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BLUR_EFFECT, ClutterBlurEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
@ -49,7 +49,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -38,7 +38,7 @@
|
||||
#define CLUTTER_BRIGHTNESS_CONTRAST_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BRIGHTNESS_CONTRAST_EFFECT, ClutterBrightnessContrastEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -28,7 +28,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-cairo.h"
|
||||
|
@ -43,7 +43,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <cogl/cogl.h>
|
||||
|
@ -37,7 +37,7 @@
|
||||
* #ClutterChildMeta is available since Clutter 0.8
|
||||
*/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-child-meta.h"
|
||||
|
@ -93,7 +93,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-click-action.h"
|
||||
|
@ -38,7 +38,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
@ -1,52 +0,0 @@
|
||||
/*
|
||||
* Clutter.
|
||||
*
|
||||
* An OpenGL based 'interactive canvas' library.
|
||||
*
|
||||
* Copyright (C) 2012 Intel Corporation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __CLUTTER_COGL_COMPAT_H__
|
||||
#define __CLUTTER_COGL_COMPAT_H__
|
||||
|
||||
#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
|
||||
#error "Only <clutter/clutter.h> can be included directly."
|
||||
#endif
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/* XXX: Some public Clutter apis depend on Cogl types that have been
|
||||
* removed from the Cogl 2.0 experimental api.
|
||||
*
|
||||
* If somone has opted to use the Cogl 2.0 experimental api by
|
||||
* defining COGL_ENABLE_EXPERIMENTAL_2_0_API then we need to define
|
||||
* some place holder typdefs for compatability.
|
||||
*
|
||||
* NB: we build all clutter internals with COGL_ENABLE_EXPERIMENTAL_2_0_API
|
||||
* defined.
|
||||
*/
|
||||
|
||||
#ifdef COGL_ENABLE_EXPERIMENTAL_2_0_API
|
||||
|
||||
/* CoglMaterial has been replaced with CoglPipeline in Cogl 2.0 */
|
||||
typedef struct _CoglMaterial CoglMaterial;
|
||||
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __CLUTTER_COGL_COMPAT_H__ */
|
@ -34,7 +34,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -38,7 +38,7 @@
|
||||
#define CLUTTER_COLORIZE_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_COLORIZE_EFFECT, ClutterColorizeEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
@ -129,7 +129,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
@ -27,7 +27,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <stdarg.h>
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-content-private.h"
|
||||
|
@ -52,7 +52,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include "deprecated/clutter-box.h"
|
||||
#include "deprecated/clutter-cairo-texture.h"
|
||||
#include "deprecated/clutter-container.h"
|
||||
#include "deprecated/clutter-fixed.h"
|
||||
#include "deprecated/clutter-frame-source.h"
|
||||
#include "deprecated/clutter-group.h"
|
||||
#include "deprecated/clutter-input-device.h"
|
||||
|
@ -40,7 +40,7 @@
|
||||
#define CLUTTER_DESATURATE_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_DESATURATE_EFFECT, ClutterDesaturateEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-backend-private.h"
|
||||
|
@ -64,7 +64,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-drag-action.h"
|
||||
|
@ -59,7 +59,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-drop-action.h"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include "clutter-easing.h"
|
||||
|
||||
|
@ -161,7 +161,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-effect.h"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*** BEGIN file-header ***/
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#include "clutter-enum-types.h"
|
||||
/*** END file-header ***/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include "clutter-event-translator.h"
|
||||
|
||||
|
@ -29,6 +29,7 @@ struct _ClutterEventTranslatorIface
|
||||
ClutterEvent *translated);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
GType _clutter_event_translator_get_type (void) G_GNUC_CONST;
|
||||
|
||||
ClutterTranslateReturn _clutter_event_translator_translate_event (ClutterEventTranslator *translator,
|
||||
|
@ -24,7 +24,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-backend-private.h"
|
||||
|
@ -38,7 +38,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
@ -35,7 +35,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-debug.h"
|
||||
|
@ -28,7 +28,7 @@
|
||||
it only exists because that class is abstract */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-flatten-effect.h"
|
||||
|
@ -53,7 +53,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -84,7 +84,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-gesture-action-private.h"
|
||||
|
@ -27,7 +27,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
@ -29,7 +29,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-debug.h"
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
@ -131,10 +131,8 @@ gboolean clutter_image_set_bytes (ClutterImage
|
||||
guint row_stride,
|
||||
GError **error);
|
||||
|
||||
#if defined(COGL_ENABLE_EXPERIMENTAL_API) && defined(CLUTTER_ENABLE_EXPERIMENTAL_API)
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CoglTexture * clutter_image_get_texture (ClutterImage *image);
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-input-device-tool.h"
|
||||
|
@ -32,7 +32,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-input-device.h"
|
||||
|
@ -46,7 +46,7 @@
|
||||
* #ClutterInterval is available since Clutter 1.0
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -62,9 +62,6 @@
|
||||
#include "clutter-scriptable.h"
|
||||
#include "clutter-script-private.h"
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
#include "deprecated/clutter-fixed.h"
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
@ -110,25 +107,6 @@ clutter_interval_real_validate (ClutterInterval *interval,
|
||||
{
|
||||
GType pspec_gtype = G_PARAM_SPEC_VALUE_TYPE (pspec);
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
|
||||
|
||||
/* check the GTypes we provide first */
|
||||
if (pspec_gtype == COGL_TYPE_FIXED)
|
||||
{
|
||||
ClutterParamSpecFixed *pspec_fixed = CLUTTER_PARAM_SPEC_FIXED (pspec);
|
||||
CoglFixed a, b;
|
||||
|
||||
a = b = 0;
|
||||
clutter_interval_get_interval (interval, &a, &b);
|
||||
if ((a >= pspec_fixed->minimum && a <= pspec_fixed->maximum) &&
|
||||
(b >= pspec_fixed->minimum && b <= pspec_fixed->maximum))
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS;
|
||||
|
||||
/* then check the fundamental types */
|
||||
switch (G_TYPE_FUNDAMENTAL (pspec_gtype))
|
||||
{
|
||||
|
@ -63,7 +63,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-keyframe-transition.h"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
|
@ -130,7 +130,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <glib-object.h>
|
||||
|
@ -35,7 +35,7 @@
|
||||
* #ClutterLayoutMeta is available since Clutter 1.2
|
||||
*/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-layout-meta.h"
|
||||
|
@ -128,6 +128,8 @@
|
||||
|
||||
#define CLUTTER_AVAILABLE_IN_ALL _CLUTTER_EXTERN
|
||||
|
||||
#define CLUTTER_AVAILABLE_IN_MUTTER _CLUTTER_EXTERN
|
||||
|
||||
/**
|
||||
* CLUTTER_VERSION_MIN_REQUIRED:
|
||||
*
|
||||
@ -276,6 +278,8 @@
|
||||
# define CLUTTER_DEPRECATED_IN_1_12_FOR(f) _CLUTTER_EXTERN
|
||||
#endif
|
||||
|
||||
#define CLUTTER_DEPRECATED_IN_MUTTER CLUTTER_DEPRECATED
|
||||
|
||||
#if CLUTTER_VERSION_MAX_ALLOWED < CLUTTER_VERSION_1_12
|
||||
# define CLUTTER_AVAILABLE_IN_1_12 CLUTTER_UNAVAILABLE(1, 12)
|
||||
#else
|
||||
|
@ -48,7 +48,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
@ -62,6 +62,7 @@
|
||||
#include "clutter-feature.h"
|
||||
#include "clutter-main.h"
|
||||
#include "clutter-master-clock.h"
|
||||
#include "clutter-mutter.h"
|
||||
#include "clutter-private.h"
|
||||
#include "clutter-settings-private.h"
|
||||
#include "clutter-stage-manager.h"
|
||||
|
@ -30,7 +30,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-master-clock.h"
|
||||
|
@ -32,7 +32,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-master-clock.h"
|
||||
|
45
clutter/clutter/clutter-mutter.h
Normal file
45
clutter/clutter/clutter-mutter.h
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Clutter.
|
||||
*
|
||||
* An OpenGL based 'interactive canvas' library.
|
||||
*
|
||||
* Copyright (C) 2016 Red Hat Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __CLUTTER_MUTTER_H__
|
||||
#define __CLUTTER_MUTTER_H__
|
||||
|
||||
#define __CLUTTER_H_INSIDE__
|
||||
|
||||
#include "clutter-backend.h"
|
||||
#include "clutter-macros.h"
|
||||
#include "clutter-stage-view.h"
|
||||
#include "cogl/clutter-stage-cogl.h"
|
||||
#include "x11/clutter-stage-x11.h"
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
void clutter_set_custom_backend_func (ClutterBackend *(* func) (void));
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
gboolean _clutter_get_sync_to_vblank (void);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
int64_t clutter_stage_get_frame_counter (ClutterStage *stage);
|
||||
|
||||
#undef __CLUTTER_H_INSIDE__
|
||||
|
||||
#endif /* __CLUTTER_MUTTER_H__ */
|
@ -63,11 +63,9 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
#include "clutter-offscreen-effect.h"
|
||||
|
||||
#include "cogl/cogl.h"
|
||||
@ -520,7 +518,7 @@ clutter_offscreen_effect_get_texture (ClutterOffscreenEffect *effect)
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_offscreen_effect_get_target:
|
||||
* clutter_offscreen_effect_get_target: (skip)
|
||||
* @effect: a #ClutterOffscreenEffect
|
||||
*
|
||||
* Retrieves the material used as a render target for the offscreen
|
||||
|
@ -31,7 +31,6 @@
|
||||
|
||||
#include <cogl/cogl.h>
|
||||
#include <clutter/clutter-effect.h>
|
||||
#include <clutter/clutter-cogl-compat.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -59,7 +59,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
@ -884,7 +884,7 @@ clutter_paint_node_add_texture_rectangle (ClutterPaintNode *node,
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_paint_node_add_path:
|
||||
* clutter_paint_node_add_path: (skip)
|
||||
* @node: a #ClutterPaintNode
|
||||
* @path: a Cogl path
|
||||
*
|
||||
@ -912,7 +912,7 @@ clutter_paint_node_add_path (ClutterPaintNode *node,
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_paint_node_add_primitive:
|
||||
* clutter_paint_node_add_primitive: (skip)
|
||||
* @node: a #ClutterPaintNode
|
||||
* @primitive: a Cogl primitive
|
||||
*
|
||||
|
@ -66,14 +66,13 @@ void clutter_paint_node_add_texture_rectangle (Clutter
|
||||
float y_1,
|
||||
float x_2,
|
||||
float y_2);
|
||||
#if defined(COGL_ENABLE_EXPERIMENTAL_API) && defined(CLUTTER_ENABLE_EXPERIMENTAL_API)
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
void clutter_paint_node_add_path (ClutterPaintNode *node,
|
||||
CoglPath *path);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
void clutter_paint_node_add_primitive (ClutterPaintNode *node,
|
||||
CoglPrimitive *primitive);
|
||||
#endif /* COGL_ENABLE_EXPERIMENTAL_API && CLUTTER_ENABLE_EXPERIMENTAL_API */
|
||||
|
||||
/**
|
||||
* CLUTTER_VALUE_HOLDS_PAINT_NODE:
|
||||
|
@ -32,7 +32,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
@ -511,7 +511,7 @@ clutter_pipeline_node_init (ClutterPipelineNode *self)
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_pipeline_node_new:
|
||||
* clutter_pipeline_node_new: (skip)
|
||||
* @pipeline: (allow-none): a Cogl pipeline state object, or %NULL
|
||||
*
|
||||
* Creates a new #ClutterPaintNode that will use the @pipeline to
|
||||
|
@ -118,10 +118,8 @@ typedef struct _ClutterPipelineNodeClass ClutterPipelineNodeClass;
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
GType clutter_pipeline_node_get_type (void) G_GNUC_CONST;
|
||||
|
||||
#if defined(COGL_ENABLE_EXPERIMENTAL_API) && defined(CLUTTER_ENABLE_EXPERIMENTAL_API)
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
ClutterPaintNode * clutter_pipeline_node_new (CoglPipeline *pipeline);
|
||||
#endif /* COGL_ENABLE_EXPERIMENTAL_API && CLUTTER_ENABLE_EXPERIMENTAL_API */
|
||||
|
||||
#define CLUTTER_TYPE_TEXT_NODE (clutter_text_node_get_type ())
|
||||
#define CLUTTER_TEXT_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_TEXT_NODE, ClutterTextNode))
|
||||
|
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
@ -54,7 +54,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-pan-action.h"
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-path-constraint.h"
|
||||
|
@ -62,7 +62,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
@ -210,7 +210,6 @@ void _clutter_id_to_color (guint id,
|
||||
ClutterColor *col);
|
||||
|
||||
void _clutter_set_sync_to_vblank (gboolean sync_to_vblank);
|
||||
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
|
||||
@ -245,6 +244,10 @@ void _clutter_util_rectangle_union (const cairo_rectangle_int_t *src1,
|
||||
const cairo_rectangle_int_t *src2,
|
||||
cairo_rectangle_int_t *dest);
|
||||
|
||||
gboolean _clutter_util_rectangle_intersection (const cairo_rectangle_int_t *src1,
|
||||
const cairo_rectangle_int_t *src2,
|
||||
cairo_rectangle_int_t *dest);
|
||||
|
||||
|
||||
struct _ClutterVertex4
|
||||
{
|
||||
|
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-property-transition.h"
|
||||
|
@ -34,7 +34,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
@ -221,7 +221,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
@ -43,7 +43,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-scroll-actor.h"
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-settings.h"
|
||||
|
@ -112,13 +112,9 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
/* XXX: This file depends on the cogl_program_ api with has been
|
||||
* removed for Cogl 2.0 so we undef COGL_ENABLE_EXPERIMENTAL_2_0_API
|
||||
* for this file for now */
|
||||
#undef COGL_ENABLE_EXPERIMENTAL_2_0_API
|
||||
#include "cogl/cogl.h"
|
||||
|
||||
#include "clutter-shader-effect.h"
|
||||
|
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <glib-object.h>
|
||||
|
@ -36,7 +36,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-stage-manager-private.h"
|
||||
|
@ -36,7 +36,8 @@ typedef struct _ClutterStageQueueRedrawEntry ClutterStageQueueRedrawEntry;
|
||||
/* stage */
|
||||
ClutterStageWindow *_clutter_stage_get_default_window (void);
|
||||
|
||||
void _clutter_stage_do_paint (ClutterStage *stage,
|
||||
void _clutter_stage_paint_view (ClutterStage *stage,
|
||||
ClutterStageView *view,
|
||||
const cairo_rectangle_int_t *clip);
|
||||
|
||||
void _clutter_stage_set_window (ClutterStage *stage,
|
||||
@ -56,7 +57,8 @@ void _clutter_stage_get_viewport (ClutterStage
|
||||
float *width,
|
||||
float *height);
|
||||
void _clutter_stage_dirty_viewport (ClutterStage *stage);
|
||||
void _clutter_stage_maybe_setup_viewport (ClutterStage *stage);
|
||||
void _clutter_stage_maybe_setup_viewport (ClutterStage *stage,
|
||||
ClutterStageView *view);
|
||||
void _clutter_stage_maybe_relayout (ClutterActor *stage);
|
||||
gboolean _clutter_stage_needs_update (ClutterStage *stage);
|
||||
gboolean _clutter_stage_do_update (ClutterStage *stage);
|
||||
@ -123,6 +125,10 @@ gboolean _clutter_stage_update_state (ClutterStage *stag
|
||||
void _clutter_stage_set_scale_factor (ClutterStage *stage,
|
||||
int factor);
|
||||
|
||||
void _clutter_stage_presented (ClutterStage *stage,
|
||||
CoglFrameEvent frame_event,
|
||||
ClutterFrameInfo *frame_info);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __CLUTTER_STAGE_PRIVATE_H__ */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user