Commit Graph

6368 Commits

Author SHA1 Message Date
Jonas Ådahl
2ceff4ee9b Create cogl renderer in MetaRenderer
Instead of passing around the KMS file descriptor via clutter to cogl,
just make our own clutter backend create the cogl renderer and set the
KSM fd.

https://bugzilla.gnome.org/show_bug.cgi?id=768976
2016-07-20 14:23:48 +08:00
Jonas Ådahl
2facf26568 clutter: Add test .gitignore files
https://bugzilla.gnome.org/show_bug.cgi?id=768976
2016-07-20 14:23:48 +08:00
Jonas Ådahl
9c0fa583f5 clutter/tests/conform: Fix actor-offscreen-redirect
The actor-offscreen-redirect didn't initialize its state properly, so
it could potentially end up with the "was_painted" state being TRUE
from the start, effectively skipping the whole test.

Fixing so that the test even run resulted in the test getting stuck in
a dead lock due to the verification that a frame was drawn was done
from a paint callback. A paint callback had the mutex held, so when the
test case tried to run the main loop, the next paint callback caller
path taken would try to re-lock the same mutex, thus dead lock.

https://bugzilla.gnome.org/show_bug.cgi?id=768976
2016-07-20 14:23:48 +08:00
Jonas Ådahl
f1b7b41b8d Update .gitignore
The cogl/clutter merge made the .gitignore files in the respective
directories incorrect, due to the using absolute paths.

https://bugzilla.gnome.org/show_bug.cgi?id=768976
2016-07-20 14:23:48 +08:00
Jonas Ådahl
bf71cb2e3c Don't use config.h in clutter and cogl
In cogl use cogl-config.h and in clutter use clutter-build-config.h. We
can't use clutter-config.h in clutter because its already used and
installed.

https://bugzilla.gnome.org/show_bug.cgi?id=768976
2016-07-20 14:23:48 +08:00
Jonas Ådahl
90de521799 Make mutter manage its own clutter backends
Introduce two new clutter backends: MetaClutterBackendX11 and
MetaClutterBackendNative. They are so far only wrap ClutterBackendX11
and ClutterBackendEglNative respectively, but the aim is to move things
from the original clutter backends when needed.

https://bugzilla.gnome.org/show_bug.cgi?id=768976
2016-07-20 14:23:48 +08:00
Jonas Ådahl
a1bedd4b1c clutter: Remove leftover wayland backend references
https://bugzilla.gnome.org/show_bug.cgi?id=768976
2016-07-20 14:23:48 +08:00
Owen W. Taylor
d6b290ef77 Don't create the Cogl GLib source multiple times
Since the check for backend->cogl_context was accidentally moved
to clutter_backend_do_real_create_context, the Glib source that
is created at the end of clutter_backend_do_create_context() is
created and added each time create_context() is called, though
create_context() is supposed to be idempotent.

https://bugzilla.gnome.org/show_bug.cgi?id=768243
2016-06-30 11:20:21 -04:00
Rui Matos
3691eb6d70 clutter/x11: Add API to request video memory purges to be reported
https://bugzilla.gnome.org/show_bug.cgi?id=739178
2016-06-27 20:23:49 +02:00
Florian Müllner
434f22e820 text: Bind <ctrl>A in addition to <ctrl>a
The 'select-all' action is currently only bound to <ctrl>a, which makes
it awkward to use when caps-lock is active, and is inconsistent with GTK+.
Just accept both upper- and lower-case variants.

https://bugzilla.gnome.org/show_bug.cgi?id=766326
2016-05-12 19:51:54 +02:00
Carlos Garnacho
4c6dae0bae evdev: Avoid updating seat pointer position on tablet events 2016-05-03 13:05:06 +02:00
Carlos Garnacho
2b07a493c5 evdev: Implement ClutterInputDevice::update_from_tool
This vfunc pokes the libinput_tool in order to find out the currently
available axes, and updates the device as such.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
eafa04230b main: Allow updating device axes from the current tool
This way devices are ensured the proper axis status at the time
of processing the events.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
7004818508 evdev: Implement tablet events
Tablet proximity, motion and button events are translated into ClutterEvents,
and the device state is updated accordingly.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
bc8b3d9f39 evdev: Implement ClutterInputDeviceTool
This will be backed by a libinput_tool, the type and serial are
fetched from there.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
b63e73e422 events: Add proximity events
These events will be sent on tool proximity of tablet events.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
3602b49a30 event: Add ClutterInputDeviceTool information to clutter events
These can be used to determine the tool that's being in use for a given event
2016-05-03 13:05:06 +02:00
Carlos Garnacho
8b2c888368 input-device: Add ClutterInputDeviceTool
This is an unique opaque struct that identifies a given tool of
a given device.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
ec708fc1a9 enums: Add rotation/slider axes
These will be useful for the tablet tools that have these features.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
6e773389fd evdev: Map LIBINPUT_DEVICE_CAP_TABLET to CLUTTER_TABLET_DEVICE
This is so tablet devices have the correct ClutterInputDeviceType
2016-05-03 13:05:06 +02:00
Carlos Garnacho
fe59da43ef evdev: Pass axis parameters when notifying absolute motion events
This will be useful for tablet support, NULL is given in the current
callers.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
40a5eff5d4 input-device: Disconnect signals on actors where the device has a cursor
Otherwise the signals are left dangling if the device is removed, causing
possible invalid memory accesses afterwards.
2016-05-03 13:05:06 +02:00
Carlos Garnacho
9d32146edb evdev: Use device name rather than sysname
The device name is something more natural, similar to what's seen
in X11, the sysname is rather the event node basename, which may
also vary depending on device insertion/detection time.
2016-05-03 13:05:06 +02:00
Florian Müllner
3856622ff7 clutter: Add back support for non-wayland builds
Wayland support is only available on Linux, so keep it optional for
now.

https://bugzilla.gnome.org/show_bug.cgi?id=760439
2016-04-29 16:13:59 +02:00
Florian Müllner
28c9b6e1d7 build: Namespace installed tests of private libraries
Currently our private cogl/clutter forks still install tests as
cogl/clutter, which conflicts with the original libraries.
2016-04-29 14:49:03 +02:00
Rico Tzschichholz
29752b6b63 cogl/clutter: Drop soname versions of private libraries 2016-04-28 15:34:51 +02:00
Florian Müllner
6e5888853e build: Export correct pkg-config names in .girs 2016-04-28 15:22:50 +02:00
Emmanuele Bassi
0f78357a5f Include libdrm and gbm when building Clutter
Clutter out of tree depends on Cogl's required dependencies via the
pkg-config file. Since Clutter and Cogl moved in tree, it means that
those dependencies need to be checked by Clutter itself, otherwise
headers and libraries won't be found.
2016-04-28 12:41:34 +01:00
Rico Tzschichholz
ba786d4fae clutter/tests/conform: Link against libmutter-cogl as needed 2016-04-28 11:59:05 +02:00
Rui Matos
1fa540bcb7 Fix the merged build
https://bugzilla.gnome.org/show_bug.cgi?id=760439
2016-04-27 20:37:47 +02:00
Rui Matos
9710e4a8c0 move everything into a clutter/ directory 2016-04-12 20:04:26 +02:00
Ray Strode
a4fb7ef5a3 po: drop translations 2016-04-12 20:03:30 +02:00
Ray Strode
eb959c73ab build: move glib marshaller/enum generation to src dir
the build/ dir is getting gutted so this commit moves
the two still needed bits to the source dir.
2016-04-12 19:57:35 +02:00
Ray Strode
7bd9bc2913 build: get rid of specialized makefile snippets
mutter won't have them, and we don't need them
2016-04-12 19:57:35 +02:00
Rui Matos
ed0051d0b4 clutter: make library private to mutter 2016-04-12 19:57:35 +02:00
Ray Strode
8675400191 configure: hardcode backends 2016-04-12 19:57:35 +02:00
Ray Strode
b1c59579ff clutter-glx: drop old clutter-glx stuff 2016-04-12 19:57:35 +02:00
Ray Strode
2cdd4b8250 tslib: drop tslib support 2016-04-12 19:57:35 +02:00
Ray Strode
89daa8d4fa wayland: drop wayland backend 2016-04-12 19:57:35 +02:00
Ray Strode
04c84b049f gdk: drop gdk backend 2016-04-12 19:57:35 +02:00
Ray Strode
0777de1757 osx: drop osx support 2016-04-12 19:57:35 +02:00
Ray Strode
6d0829b0d2 cex100: drop GDL support 2016-04-12 19:57:35 +02:00
Ray Strode
8f205d76e1 mir: drop mir backend 2016-04-12 19:57:35 +02:00
Ray Strode
c7472841b1 win32: drop win32 support 2016-04-12 19:57:35 +02:00
Emmanuele Bassi
c6e40de500 actor: Warn on adding/removing itself as a child
ClutterActor should warn if a user tries to add or remove an actor to,
and from, itself on the scene graph.

Clutter will likely crash, or warn way down the line, but if we can make
debugging simpler then we should.
2016-03-29 15:09:26 +01:00
Emmanuele Bassi
e62a6376a5 gdk: Disable deprecation warnings
For the GDK backend We're using the GdkDeviceManager API, which maps to
Clutter's own device manager API. GDK has now moved to a per-seat device
management model, and deprecated the device manager singleton one.

In order to avoid the deprecation warnings, we'd have to implement a
model similar to the GDK one inside the generic Clutter API, but that
would also require moving all the others backend to it, which is pretty
pointless.

Instead, we can disable deprecation warnings for the
ClutterDeviceManager implementation inside the GDK backend.
2016-02-28 12:43:43 +00:00
Chun-wei Fan
a99dd7555b clutter/config.h.win32.in: Keep in sync with autotools builds
This updates config.h.win32.in to be in-sync with the entries that are in
the config.h.in that is generated by the autotools builds.  In particular,
for Visual Studio builds, we default to enable all available drivers ("*").
2016-02-27 20:48:51 +08:00
Emmanuele Bassi
2b0ff2f2ba cally: Avoid clone spamming state changes
Clones may generate a temporary map/unmap on their source when painting;
this, in turn, will generate unnecessary ATK state changes.

https://bugzilla.gnome.org/show_bug.cgi?id=756371
2016-02-24 12:03:37 +00:00
Emmanuele Bassi
c867e9d941 actor: Expand is_in_clone_paint() check
The function should return true not only if the actor is being painted
by a ClutterClone, but also if it's inside a sub-graph being painted by
a ClutterClone.

https://bugzilla.gnome.org/show_bug.cgi?id=756371
2016-02-24 12:03:37 +00:00
Jonas Ådahl
8181ef15d6 evdev: Pass a motion delta to pointer constrain callback
The constrain callback cannot rely on the pointer position of the
corresponding ClutterInputDevice to get the actual delta of the motion
event that is to be constrained since it is only updated when an event is
dispatched. So change the API to pass the previous pointer position when
constraining.

https://bugzilla.gnome.org/show_bug.cgi?id=752752
2016-02-16 18:53:58 +08:00