Commit Graph

455 Commits

Author SHA1 Message Date
Emmanuele Bassi
89e26497de Add a CEx100-specific backend
Instead of piggybacking on the EGL backend, let's create a small
ClutterBackend for the CEx100 platforms. This allows us to handle the
CEx100-specific details in a much cleaner way.
2011-11-10 14:55:03 +00:00
Emmanuele Bassi
1f8915d2c8 Add a 'null' input backend symbol
We should have an input backend symbol that thoroughly disables all
input event handling.
2011-11-10 14:42:40 +00:00
Emmanuele Bassi
adb6ffbd0e backend: Unify the event initialization
Input backends are, in some cases, independent from the windowing system
backends; we can initialize input handling using a model similar to what
we use for windowing backends, including an environment variable and
compile-/run-time checks.

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

This requires some minor surgery to every single backend, to make sure
that the function exposed to initialize the event loop is similar and
performs roughly the same operations.
2011-11-10 14:42:40 +00:00
Emmanuele Bassi
7ab84f981c Remove CLUTTER_DISABLE_DEPRECATED from the build flags
We don't use it any more.
2011-11-03 15:35:01 +00:00
Emmanuele Bassi
7a2001436b build: Clean up the per-backend summary 2011-11-03 13:45:21 +00:00
Emmanuele Bassi
dc672b5c89 build: Use AC_CACHE_SAVE
Delimit the points in the configure script that should save the state,
so that running the script multiple times doesn't require starting from
scratch even if it didn't terminate successfully.
2011-11-03 13:45:21 +00:00
Emmanuele Bassi
9110fa1ee7 build: Disable tslib by default
The event handling through tslib hasn't been tested in a while, and it
hasn't been ported to the device manager machinery either. We are still
considering whether or not it should be entirely removed, since evdev is
supposed to be a better way to handle events not coming from an existing
windowing system.
2011-11-03 13:45:21 +00:00
Emmanuele Bassi
8249e48802 Clean up the windowing system defines
Instead of defining new symbols for the windowing systems enabled at
configure time, we can reuse the same symbols for both the compile time
and run time checks, e.g.:

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

This scheme allows us to ensure that the input system namespace is free
for us to use and select at run time in later versions of Clutter.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
b07756e0b3 build: Implement proper platform checking
Perform the check for enabling platform-specific backends conditionally
on the 'check' value, instead of unconditionally.

Also, rename the configure switches for the backends to have a '-backend'
suffix, to avoid collisions and provide a more descriptive name.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
405e72f2e4 egl: First attempt at cleaning up the EGL native backend
At least, let's make it compile when built along with the other
backends. In reality, it still needs to be verified as working.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
19508132df build: Move EGL-related files under egl/
Including the clutter-cex100.h.in header.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
0c919adf50 Minimal cosmetic fix to the configure output 2011-11-03 13:45:20 +00:00
Emmanuele Bassi
a09bbffd92 Implement multi-backend support
The Clutter backend split is opaque enough that should allow us to just
build all possible backends inside the same shared object, and select
the wanted backend at initialization time.

This requires some work in the build system, as well as the
initialization code, to remove duplicate functions that might cause
conflicts at build and link time. We also need to defer all the checks
of the internal state of the platform-specific API to run-time type
checks.
2011-11-03 13:45:19 +00:00
Giovanni Campagna
9c102b7c51 Rework the interaction between the Cogl and GDK / X11 backends.
Previously, the Cogl backend was at times a subclass of the X11
backend, and at times a standalone one. Now it is the other way
round, with GDK and X11 backends providing the concrete classes,
layered on top of the generic Cogl backend. A new EglNative backend
was introduced for direct to framebuffer rendering. This greatly
simplifies the API design (at the expense of some casts needed)
and reduces the amount of #ifdefs, without duplicating code.

https://bugzilla.gnome.org/show_bug.cgi?id=657434
2011-11-03 13:45:17 +00:00
Giovanni Campagna
610a9c17ba Add a new GDK backend
This commit introduces a new flavour for Clutter, that uses GDK
for handling all window system specific interactions (except for
creating the cogl context, as cogl does not know about GDK), including
in particular events. This is not compatible with the X11 (glx)
flavour, and this is reflected by the different soname (libclutter-gdk-1.0.so),
as all X11 specific functions and classes are not available. If you
wish to be compatible, you should check for CLUTTER_WINDOWING_X11.
Other than that, this backend should be on feature parity with X11,
including XInput 2, XSettings and EMWH (with much, much less code)

https://bugzilla.gnome.org/show_bug.cgi?id=657434
2011-11-03 13:42:13 +00:00
Emmanuele Bassi
b751b90bc0 build: Bump up Cogl dependency
The newly added cogl-xlib.h header is available since Cogl 1.9, so we
need to bump up the dependency.
2011-11-02 13:03:26 +00:00
Emmanuele Bassi
f1d86071c3 build: Remove the GLES configuration option
The selector for GLES 1.1 or 2.0 is all in Cogl, now.
2011-10-19 15:32:41 +01:00
Robert Bragg
14b3ec8485 build: remove the experimental_image var from configure
Since the image backend is something now dealt with by Cogl there is no
need to check the experimental status of the backend in the Clutter
configure script.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
2011-10-19 15:27:20 +01:00
Robert Bragg
2ba1a19870 build: Don't actually check for glx for glx flavour
GLX is now totally abstracted by Cogl so the "glx" flavour is actually
only used to determine the soname of clutter now so we don't actually
have to check for the glx header or that libGL provides any GLX symbols.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
2011-10-19 15:26:43 +01:00
Emmanuele Bassi
d93e6ef6b9 Bump up the dependency on gtk-doc 2011-10-14 11:34:26 +01:00
Emmanuele Bassi
a05eb9177d build: Strip out G_DISABLE_DEPRECATED
We have compiler warnings, now.
2011-10-14 10:21:37 +01:00
Emmanuele Bassi
ef0e52f0e1 build: Disable deprecation warnings with --enable-deprecated
Just like we turn everything on with --disable-deprecated, we have to
turn everything off with --enable-deprecated. This means disabling the
deprecation warnings from the compiler as well.
2011-10-11 23:06:51 +01:00
Emmanuele Bassi
53e201f865 Show lib and sysconfdir in the configure summary 2011-10-11 17:52:17 +01:00
Emmanuele Bassi
1465aa04aa Depend on GLib 2.31
We need to switch away from GStaticMutex and use GMutex instead, as the
former has been deprecated.
2011-09-28 13:52:53 +01:00
Emmanuele Bassi
0b07a5ef04 Post branch version bump to 1.9.1 2011-09-19 20:04:11 +01:00
Emmanuele Bassi
2270335247 Depend on Cogl new stable release, 1.8.0 2011-09-19 20:02:17 +01:00
Emmanuele Bassi
14bd6eaad4 Bump GLib dependency
We have been using g_slist_free_full() which was added in GLib 2.28, and
yet we neved bumped the GLib dependency. Whoopsie.
2011-09-19 17:58:39 +01:00
Emmanuele Bassi
92d4197b2c Post-release version bump to 1.7.91 2011-09-12 13:59:30 +01:00
Emmanuele Bassi
8435549448 Release Clutter 1.7.90 (1.8.0-rc1) 2011-09-12 13:16:03 +01:00
Emmanuele Bassi
28ad23e7d7 Post-release version bump to 1.7.15 2011-09-05 21:39:51 +01:00
Emmanuele Bassi
d992c0cbff Release Clutter 1.7.14 2011-09-05 21:16:01 +01:00
Alejandro Piñeiro
f1a7cd7c0f Merge branch 'atkwindow' 2011-08-30 12:26:35 +02:00
Emmanuele Bassi
2212937788 Post-release version bump to 1.7.13 2011-08-29 23:29:07 +01:00
Emmanuele Bassi
c26dd3f008 Release Clutter 1.7.12 (snapshot) 2011-08-29 23:05:03 +01:00
Alejandro Piñeiro
a9690a4a5e a11y: Using AtkWindow on cally-stage 2011-08-23 17:22:11 +02:00
Emmanuele Bassi
e906d2cbde build: Depend on pangoft2 on X11
We need the fontconfig API to reinitialize the fontmap caches whenever
the system tells us that the user fonts have changed.
2011-08-18 15:32:29 +01:00
Emmanuele Bassi
98b3834d55 Post-release version bump to 1.7.11 2011-08-16 00:19:34 +01:00
Emmanuele Bassi
d80fef4c71 Release Clutter 1.7.10 (snapshot) 2011-08-15 23:52:55 +01:00
Emmanuele Bassi
8402e41332 build: Require the latest stable version of Cogl 2011-08-15 15:35:41 +01:00
Emmanuele Bassi
2c34f0b16c Post-release version bump to 1.7.9 2011-08-15 15:16:24 +01:00
Emmanuele Bassi
f6fe09fa24 Release Clutter 1.7.8 (snapshot) 2011-08-15 14:32:37 +01:00
Robert Bragg
d2763fd8a4 stage-cogl: pass top-left relative swap_region coords
All 2D coordinate spaces in Cogl have their origin at the top-left so we
shouldn't be flipping the coordinates we pass to
cogl_framebuffer_swap_region to be relative to the bottom of the
framebuffer.

This bumps the Cogl version requirement to 1.7.5 since we've had to fix
a bug in the semantics of cogl_framebuffer_swap_region.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
2011-08-12 15:42:42 +01:00
Emmanuele Bassi
fdba569213 Post-release version bump to 1.7.7 2011-07-26 14:12:08 +01:00
Emmanuele Bassi
0a008b98e7 Release Clutter 1.7.6 (snapshot) 2011-07-26 13:55:58 +01:00
Emmanuele Bassi
c89de4324e docs: Remove manual/
The programmers manual never materialized, and its role has been taken
by both the cookbook and the API reference.
2011-07-20 11:32:15 +01:00
Emmanuele Bassi
2dc69dc63d build: Escape AC_DEFINE arguments 2011-07-15 16:02:19 +01:00
Carlos Garnacho
075a4ed86c x11: Improve XGenericEventCookie data allocation
https://bugzilla.gnome.org/show_bug.cgi?id=654656

Clutter may be used together with GTK+, which indirectly may use
XInput2 too, so the cookie data must persist when both are handling
events.

What happens now in a nutshell is, Clutter is only guaranteed to allocate
the cookie itself after XNextEvent(), and only frees the cookie if its
XGetEventData() call allocated the cookie data.

The X[Get|Free]EventData() calls happen now in clutter-event-x11.c as
hypothetically different event translators could also handle other set
of X Generic Events, or other libraries handling events for that matter.
2011-07-15 13:46:33 +02:00
Emmanuele Bassi
f45b12dac4 build: Unescape conditionally defined defaults in AS_HELP_STRING
AS_HELP_STRING() escapes everything, so m4 doesn't have a chance to run
expansions.
2011-07-13 14:49:55 +01:00
Emmanuele Bassi
ab89f9b9e8 build: Detect the appropriate default flavour
If we're building on/for Windows, set 'win32' as the default flavour; if
we're building on OS X, set 'osx' as the default flavour. For everything
else, use 'glx'.
2011-07-13 14:27:39 +01:00
Emmanuele Bassi
9a3b97b55e Revert "build: Detect the appropriate default flavour"
Ouch, butterfingers and git commit -a.

This reverts commit 81e8c8dec9.
2011-07-13 14:26:05 +01:00