Commit Graph

386 Commits

Author SHA1 Message Date
Robert Bragg
723e5de4b6 cogl/configure.ac: Adds --enable-stub-winsys option
We want to be able to split Cogl out as a standalone project but there
are still some window systems that aren't natively supported by Cogl.
This allows Clutter to support those window systems directly but still
work with a standalone Cogl library.

This also ensures we set the SUPPORT_STUB conditional in clutter's
configure.ac when building for win32/osx and wayland.
2011-05-05 15:05:11 +01:00
Robert Bragg
825a51b898 Adds Cogl Hello World and "X11 foreign" example applications
This adds a simple standalone Cogl application that can be used to
smoke test a standalone build of Cogl without Clutter.

This also adds an x11-foreign app that shows how a toolkit can ask Cogl
to draw to an X Window that it owns instead of Cogl being responsible
for automatically creating and mapping an X Window for CoglOnscreen.
2011-05-05 14:46:03 +01:00
Robert Bragg
1c502fbbc8 cogl/configure.ac: add options to control driver/egl platform
This allows more detailed control over the driver and winsys features
that Cogl should have. Cogl is designed so it can support multiple
window systems simultaneously so we have enable/disable options for
the drivers (gl vs gles1 vs gles2) and options for the individual window
systems; currently glx and egl. Egl is broken down into an option
for each platform.
2011-05-05 14:46:03 +01:00
Robert Bragg
e26a59afc8 EGL: Updates GDL platform support
The GDL API is used for example on intel ce4100 (aka Sodaville) based
systems as a way to allocate memory that can be composited using the
platforms overlay hardware. This updates the Cogl EGL winsys and the
support in Clutter so we can continue to support these platforms.
2011-05-05 14:46:02 +01:00
Robert Bragg
c55cffbb6b Moves all EGL code down from Clutter to Cogl
As was recently done for the GLX window system code, this commit moves
the EGL window system code down from the Clutter backend code into a
Cogl winsys.

Note: currently the cogl/configure.ac is hard coded to only build the GLX
winsys so currently this is only available when building Cogl as part
of Clutter.
2011-05-05 14:46:01 +01:00
Robert Bragg
ce0dc2160c remove references to unused DRM_SURFACELESS EGL platform
The "DRM_SURFACELESS" EGL platform was invented when we were adding the
wayland backend to Clutter but in the end we added a dedicated backend
instead of extending the EGL backend so actually the platform name isn't
used.
2011-05-05 14:46:01 +01:00
Emmanuele Bassi
267de48c1e Point to GNOME for filing bugs
The canonical bug tracker for Clutter has been moved to
bugzilla.gnome.org.
2011-04-12 17:32:01 +01:00
Robert Bragg
af366ad750 backend: remove untested fruity backend
This backend hasn't been used for years now and so because it is
untested code and almost certainly doesn't work any more it would be a
burdon to continue trying to maintain it. Considering that we are now
looking at moving OpenGL window system integration code down from
Clutter backends into Cogl that will be easier if we don't have to
consider this backend.
2011-04-11 17:54:36 +01:00
Robert Bragg
70767f08dc Adds a --with-system-cogl config option for Clutter
This makes it possible to build Clutter against a standalone build of
Cogl instead of having the Clutter build traverse into the clutter/cogl
subdirectory.
2011-04-11 17:54:36 +01:00
Robert Bragg
31da46c799 Adds the ability to build Cogl standalone
This adds an autogen.sh, configure.ac and build/autotool files etc under
clutter/cogl and makes some corresponding Makefile.am changes that make
it possible to build and install Cogl as a standalone library.

Some notable things about this are:
A standalone installation of Cogl installs 3 pkg-config files;
cogl-1.0.pc, cogl-gl-1.0.pc and cogl-2.0.pc. The second is only for
compatibility with what clutter installed though I'm not sure that
anything uses it so maybe we could remove it. cogl-1.0.pc is what
Clutter would use if it were updated to build against a standalone cogl
library. cogl-2.0.pc is what you would use if you were writing a
standalone Cogl application.

A standalone installation results in two libraries currently, libcogl.so
and libcogl-pango.so. Notably we don't include a major number in the
sonames because libcogl supports two major API versions; 1.x as used by
Clutter and the experimental 2.x API for standalone applications.
Parallel installation of later versions e.g. 3.x and beyond will be
supportable either with new sonames or if we can maintain ABI then we'll
continue to share libcogl.so.

The headers are similarly not installed into a directory with a major
version number since the same headers are shared to export the 1.x and
2.x APIs (The only difference is that cogl-2.0.pc ensures that
-DCOGL_ENABLE_EXPERIMENTAL_2_0_API is used). Parallel installation of
later versions is not precluded though since we can either continue
sharing or later add a major version suffix.
2011-04-11 17:54:36 +01:00
Robert Bragg
d6f110a4d2 Moves all GLX code down from Clutter to Cogl
This migrates all the GLX window system code down from the Clutter
backend code into a Cogl winsys. Moving OpenGL window system binding
code down from Clutter into Cogl is the biggest blocker to having Cogl
become a standalone 3D graphics library, so this is an important step in
that direction.
2011-04-11 17:54:36 +01:00
Emmanuele Bassi
42508e6091 build: Look for sed
Use AC_PROG_SED to find sed in a portable way.
2011-04-04 22:33:31 +01:00
Samuel Degrande
4594d1bafe Removes the addition of the .exe extension to unit-test scripts, on win32.
On win32, test scripts are created with a .exe extension.
Under mingw, a .exe script is launched in 16 bit compatibility mode (through
ntvdm), and so it just does not run.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2619
2011-04-01 17:08:25 +01:00
Emmanuele Bassi
a4d29ca2e1 build: Fix previous commit
The previous commit broke the backend-specific required pkg-config
packages.
2011-03-24 14:13:59 +00:00
Emmanuele Bassi
0eee5788df build: Remove bash-isms 2011-03-22 17:18:07 +00:00
Emmanuele Bassi
a5c87c74a6 build: Use AC_CANONICAL_HOST
Since we're checking the value of the $host variable, it's a good idea
to use the canonicalization support in autoconf.
2011-03-22 17:10:49 +00:00
Emmanuele Bassi
23c0dac231 build: Show CFLAGS in the configure summary
Don't show just the maintainer flags, but the whole shebang.
2011-02-28 14:16:24 +00:00
Emmanuele Bassi
0d14be1aec Start 1.7 development cycle 2011-02-28 11:24:14 +00:00
Emmanuele Bassi
b31cf80807 Post-release version bump to 1.6.7 2011-02-21 14:19:47 +00:00
Emmanuele Bassi
d5e6594ddd Release Clutter 1.6.6 (stable) 2011-02-21 12:47:09 +00:00
Emmanuele Bassi
e2bd848924 build: Centralize X11 extensions versioning
Similar to what we did for the base dependencies.
2011-02-19 09:02:51 +00:00
Emmanuele Bassi
8231c345dc build: Compress the CLUTTER_PC_FILES list
A bit of black magic, courtesy of gtk+'s configure.ac, to strip the
leading space from BACKEND_PC_FILES.
2011-02-16 16:42:30 +00:00
Neil Roberts
e52cc75f07 configure.ac: Add -Wpointer-arith to the maintainer CFLAGS
GCC by default allows pointer arithmetic on void* pointers and treats
them as having a size of 1 byte. This is non-standard behaviour and
causes errors on some compilers so we should try to avoid
it. -Wpointer-arith warns about these cases.
2011-02-15 14:26:17 +00:00
Emmanuele Bassi
fbaac155c5 build: Generate README
Use the configure script to generate the README from a template file, so
that we can keep the versions of the dependencies in one place.
2011-02-14 17:27:25 +00:00
Emmanuele Bassi
b91befaaca Post-release version bump to 1.6.5 2011-02-14 16:15:55 +00:00
Emmanuele Bassi
c9b87435d5 Release Clutter 1.6.4 (stable) 2011-02-14 15:53:02 +00:00
Emmanuele Bassi
c2c51b2950 build: Fix clutter-config.h defines
The checks for non-x11/glx platforms were using the wrong configure.ac
variables and values.
2011-02-11 16:53:28 +00:00
Emmanuele Bassi
75434b8a69 build: Modify maintainer compiler flags values
We use the micro version for distinguishing released tarballs and Git
builds; the maintainer compiler flags should be enabled for the latter,
and not just for unstable cycles, since it makes sense to have extra
warning flags even on stable cycles.

We also want to allow people to turn on -Werror on demand, so let's add
a third option to --enable-maintainer-flags.
2011-02-11 15:49:07 +00:00
Emmanuele Bassi
7decee300e docs: Clarify interface_age usage in configure.ac
The clutter_interface_age value should be changed only on stable cycles;
unstable cycles should reset the value to 0.
2011-02-11 15:44:03 +00:00
Emmanuele Bassi
4956152a11 Post-release version bump to 1.6.3 2011-02-07 15:59:42 +00:00
Emmanuele Bassi
bb5608532e Release Clutter 1.6.2 2011-02-07 15:42:45 +00:00
Emmanuele Bassi
adeb611934 Post-release version bump to 1.6.1 2011-01-31 15:04:48 +00:00
Emmanuele Bassi
01cbd47b19 Release Clutter 1.6.0 2011-01-31 14:47:37 +00:00
Emmanuele Bassi
b917285e24 Post-release version bump to 1.5.15 2011-01-24 10:51:06 +00:00
Emmanuele Bassi
3e05d2df8d Release Clutter 1.5.14 (1.6.0rc1) 2011-01-24 10:23:36 +00:00
Emmanuele Bassi
001f84875a Enable XInput support by default
Since we have a decent XI1 and XI2 implementation, now, we should turn
the support for XInput on by default.

The actual implementation to be used at run-time is still left to be
decided by the user.
2011-01-21 10:25:43 +00:00
Emmanuele Bassi
1b1e77b469 event/x11: Rework the way we translate X11 events
This is a lump commit that is fairly difficult to break down without
either breaking bisecting or breaking the test cases.

The new design for handling X11 event translation works this way:

  - ClutterBackend::translate_event() has been added as the central
    point used by a ClutterBackend implementation to translate a
    native event into a ClutterEvent;

  - ClutterEventTranslator is a private interface that should be
    implemented by backend-specific objects, like stage
    implementations and ClutterDeviceManager sub-classes, and
    allows dealing with class-specific event translation;

  - ClutterStageX11 implements EventTranslator, and deals with the
    stage-relative X11 events coming from the X11 event source;

  - ClutterStageGLX overrides EventTranslator, in order to
    deal with the INTEL_GLX_swap_event extension, and it chains up
    to the X11 default implementation;

  - ClutterDeviceManagerX11 has been split into two separate classes,
    one that deals with core and (optionally) XI1 events, and the
    other that deals with XI2 events; the selection is done at run-time,
    since the core+XI1 and XI2 mechanisms are mutually exclusive.

All the other backends we officially support still use their own
custom event source and translation function, but the end goal is to
migrate them to the translate_event() virtual function, and have the
event source be a shared part of Clutter core.
2011-01-21 10:25:43 +00:00
Emmanuele Bassi
94b905b9e1 build: Generate an instealled config header
Clutter has some platform-specific API that is accessible only if the
right backend has been compiled in. Third party applications that wish
to be portable across backends might want to use defines and other
pre-processor tricks to determine header inclusion and API usage.

While Clutter has an internal set of symbols it can use, third party
applications don't have the luxury of being able to access the config.h
generated by Clutter's configure script.

For this reason, Clutter should install a configuration header with a
series of namespaced defines that can be picked up by applications and
other third party code.
2011-01-19 14:33:27 +00:00
Emmanuele Bassi
12ceae548d Post-release version bump to 1.5.13 2011-01-11 21:34:37 +00:00
Emmanuele Bassi
09d5c309ca Release 1.5.12 2011-01-11 20:29:47 +00:00
Neil Roberts
b3058c097d cogl-util: Add an internal wrapper for the ffs function
The ffs function is defined in C99 so if we want to use it in Cogl we
need to provide a fallback for MSVC. This adds a configure check for
the function and then a fallback using a while loop if it is not
available.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2491
2011-01-10 16:55:00 +00:00
Emmanuele Bassi
b9f7ef1110 build: Remove Cogl2 reference from the build scripts
Keeping the Cogl 2.0 API reference in the build is getting far more
troublesome than it's worth.

It's breaking distcheck far too often, and it makes it impossible to
rebuild the build environment from tarballs - which is something that
some distributions (namely: the Debian-based ones, but not limited to
them) do in order to change build scripts using their own rules.
2010-12-18 21:33:37 +00:00
Emmanuele Bassi
45c884307e Post-release version bump to 1.5.11 2010-12-17 16:04:25 +00:00
Emmanuele Bassi
339a680552 Release Clutter 1.5.10 (snapshot) 2010-12-17 15:43:38 +00:00
Emmanuele Bassi
987a50be91 build: Fix release-check for cogl2 reference 2010-12-17 15:43:38 +00:00
Emmanuele Bassi
8c7298b0c1 build: Check NEWS file during release, not distcheck
The check-news option in configure.ac conflicts with the idea of using a
buildbot to do a distcheck.

Since we're doing some validation on the state of the build during the
release-check phase we should add the NEWS file check there.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2468
2010-12-09 13:49:01 +00:00
Damien Lespiau
9ba5447c9b evdev: Enable the compilation of the evdev backend for eglnative
Not tested (but checked that it compiles).

There's no reason to only enable the check for the cex100. Hopefully
should work.

We make sure not to enable both the evdev and the tslib backend at the
same time as the DeviceManager is a singleton and we can't have both
subclasses at the same time for now.
2010-11-30 14:40:38 +00:00
Damien Lespiau
c6493885c3 evdev: First stab at an evdev backend
This backend is a event backend that can be enabled for EGL (for now).
It uses udev (gudev) to query input devices on a linux system, listens to
keyboard events from input devices and xkbcommon to translate raw key
codes into key keysyms.

This commit only supports key events, more to follow.
2010-11-30 14:40:37 +00:00
Emmanuele Bassi
5e085e8d7f Post-release version bump to 1.5.9 2010-11-29 14:21:21 +00:00
Emmanuele Bassi
8cebec6bdc Release Clutter 1.5.8 (snapshot) 2010-11-29 14:09:09 +00:00