22515 Commits

Author SHA1 Message Date
Jasper St. Pierre
21fe5be026 display: Ignore _NET_WM_USER_TIME PropertyNotifies
These are spammy as well.

https://bugzilla.gnome.org/show_bug.cgi?id=703970
2013-07-15 12:47:46 -04:00
Jasper St. Pierre
57bc974a57 display: Ignore XSyncAlarmNotify in meta_spew_event
https://bugzilla.gnome.org/show_bug.cgi?id=703970
2013-07-15 12:47:46 -04:00
Jasper St. Pierre
3b51405255 main: Don't select for touch events on the stage
GNOME Shell's actors aren't touch capable, so we need to make sure that
they get the fallback pointer emulated events for now. This fixes the top
bar and other elements not working on a touchscreen without a grab.

https://bugzilla.gnome.org/show_bug.cgi?id=697192
2013-07-15 12:47:46 -04:00
Jasper St. Pierre
73dbb4b9a5 window-actor: Remove another unused field 2013-07-15 12:20:26 -04:00
Jasper St. Pierre
51acc3ee31 window-actor: Remove unused description
The desc field would never get filled in, as we can't have a window
actor without a MetaWindow, also, so remove the storage for the field.
2013-07-15 12:20:26 -04:00
Jasper St. Pierre
a6f206f07c window-actor: Remove a field we don't use 2013-07-15 12:20:13 -04:00
Neil Roberts
0cef63b837 win32: Disable event retrieval in Cogl
Since commit 4543ed6ac3af in Cogl, Cogl will now try to consume
Windows message itself. This doesn't really cause any problems because
both message loops just call DispatchMessage which will cause the
message to be routed through Clutter's window procedure either way.
However, it's not great to have two sources listening for messages so
this patch disables Cogl's message retrieval.

https://bugzilla.gnome.org/show_bug.cgi?id=701356
2013-07-12 17:59:54 +01:00
Neil Roberts
3715a6687c Update the dependencies for the MinGW build script
As the binaries from Tor Lillqvist are no longer being kept up-to-date
this also builds more of the deps from source.

https://bugzilla.gnome.org/show_bug.cgi?id=701356
2013-07-12 17:59:54 +01:00
Emmanuele Bassi
c2d5dd2d11 x11: Remove unused variable 2013-07-12 09:57:23 +01:00
Jasper St. Pierre
01707f0da9 input-device-x11: Remove more dead code
It seems this API has never been used..
2013-07-11 14:09:43 -04:00
Jasper St. Pierre
e62cf4745f device-manager: Select for events on XIAllMasterDevices
This removes a bit of work that we have to do for every device, and makes it
easy for mutter to patch out parts of the event mask it doesn't want.

https://bugzilla.gnome.org/show_bug.cgi?id=703969
2013-07-11 14:09:43 -04:00
Jasper St. Pierre
032688800c device-manager: Don't pass the event mask around
There's no point in doing this, as we always use a constant event mask.
Simply do what everything else does.

https://bugzilla.gnome.org/show_bug.cgi?id=703969
2013-07-11 14:09:43 -04:00
Jasper St. Pierre
e38ea7a20f x11: Remove support for XInput 1
Now we either use core X11 or XInput 2.

https://bugzilla.gnome.org/show_bug.cgi?id=703969
2013-07-11 14:03:43 -04:00
Neil Roberts
2f9a0a2c97 Initialise dirty_real_blend_enable in _cogl_pipeline_copy
When making a copy of a pipeline, the flag to mark whether the real
blend enable is valid was not being initialised.

Thanks to Damien Lespiau for pointing this out

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit f3adec1faeb651dd97095a02256932cc82761f40)
2013-07-11 16:05:34 +01:00
Neil Roberts
b3cc4d26d9 wayland: Send COGL_FRAME_EVENT_SYNC based on the frame callback
Instead of queuing the frame sync event immediately after a swap, the
Wayland winsys now installs a frame callback and queues the event when
Wayland reports that the frame is complete. It also reports the
COGL_FRAME_EVENT_COMPLETE event at the same time because there is no
more information we can give.

This patch is a bit of a divergence from how the events are handled in
the GLX winsys. Instead of installing its own idle function, the
_cogl_onscreen_queue_event() function has now been made non-static so
that it can be used by the Wayland winsys. The frame callback now just
queues an event using that. The pending_frame_infos queue on the
CoglOnscreen isn't used and instead the CoglFrameInfo is immediately
popped off the queue so that it can be stored as part of the closure
data when the frame callback is set up. That way it would use the
right frame info even if somehow the Wayland callbacks were invoked in
the wrong order and the code is a bit simpler.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit f7ea370a0d5013c9f0263f37c7f892adc8a2f087)
2013-07-11 14:22:12 +01:00
Neil Roberts
737806bcee wayland: Remove the Wayland socket FD if there are any errors
Previously if the Wayland socket gets closed then Cogl would ignore
the error when dispatching events which meant the socket would be
constantly ready for reading, the main loop would never go idle and it
would sit at 100% CPU. When Wayland encounters an error it will
actually close the socket which means if something else opened another
file then we might even end up polling on a completely unrelated FD.
This patch makes it remove the FD from the main loop as soon as it
hits an error so that it will at least avoid breaking the main loop.
However I think most applications would probably want to abort in this
case so we might also want to add a way to inform the application of
this or even just abort directly.

The cogl_poll_* functions have been changed so that they can cope if
the pending and dispatch callbacks remove their own FD while they are
invoked.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 85857b10687a5a246a0a4ef42711e560c7a6f45d)
2013-07-11 14:22:12 +01:00
Robert Bragg
b2452e2bd4 Post-release version bump to 1.15.3 2013-07-10 23:31:01 +01:00
Robert Bragg
6ac58bdbc8 Release 1.15.2 (snapshot) 2013-07-10 23:03:11 +01:00
Robert Bragg
6da4875d19 Updates NEWS for the 1.15.2 release 2013-07-10 23:03:07 +01:00
Jasper St. Pierre
0b32f99bd1 backend-x11: Remove bad branch prediction
This will only get once, at in Clutter initialization time.

https://bugzilla.gnome.org/show_bug.cgi?id=703969
2013-07-10 17:22:48 -04:00
Florian Müllner
9504fdd2cb Bump version to 3.9.4
Update NEWS.
3.9.4
2013-07-10 18:35:17 +02:00
Neil Roberts
78f20627ac wayland: Don't pass the shell and compositor down to Cogl
The Wayland 1.0 API allows orthoganal components of an application to
query the shell and compositor themselves by querying their own
wl_registry. The corresponding API in Cogl has been removed so Clutter
shouldn't call it anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=703878
2013-07-10 13:29:35 +01:00
Neil Roberts
6c66148faf Update ClutterWaylandSurface to use a resource instead of wl_buffer
The Wayland server API has changed so that wl_shm_buffer is no longer
a type of wl_buffer and wl_buffer will become an opaque type. This
changes ClutterWaylandSurface to accept resources for a wl_buffer
instead of directly taking the wl_buffer so that it can do different
things depending on whether the resource points to an SHM buffer or a
normal buffer. This matches similar changes to Cogl:

https://git.gnome.org/browse/cogl/commit/?id=9b35e1651ad0e46ed48989

https://bugzilla.gnome.org/show_bug.cgi?id=703608
2013-07-10 13:28:52 +01:00
Neil Roberts
fa8809d716 Add COGL_DISABLE_DEPRECATION_WARNINGS to the build flags
Cogl 1.16 has deprecated a lot of API which it will be difficult for
Clutter to catch up with. For the time being the warnings are just
being disabled to keep the build output clean.

https://bugzilla.gnome.org/show_bug.cgi?id=703877
2013-07-10 13:28:12 +01:00
Neil Roberts
2db5ae56cf Bump the required Cogl version to 1.15.1
The unstable Wayland API which Clutter is using has changed so it will
soon no longer build with Cogl 1.14 when Wayland support is enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=703877
2013-07-10 13:28:11 +01:00
Emmanuele Bassi
dfe6198563 Post-release version bump to 1.15.3 2013-07-10 13:24:12 +01:00
Rob Bradford
3d646804d1 wayland: Use a fake millisecond monotonic time source for event times
The majority of Clutter input events require a time so that that the
upper levels of abstraction can identify the ordering of events and also
work out a click count.

Although some Wayland events have microsecond timestamps not all those
that Clutter expects do have. Therefore we would need to create some
fake times for those events. Instead we always calculate our own time
using the monotonic time.

https://bugzilla.gnome.org/show_bug.cgi?id=697285
2013-07-10 13:11:23 +01:00
Emmanuele Bassi
88f6bcdf73 Release Clutter 1.15.2 (snapshot) 2013-07-10 12:32:25 +01:00
Emmanuele Bassi
edb6e66d90 build: Fix distcheck for conformance tests
We need to export G_TEST_SRCDIR and G_TEST_BUILDDIR if we want to be
able to build the path to the tests data.
2013-07-10 12:31:32 +01:00
Emmanuele Bassi
7fe7d56ae9 docs: Add missing symbols 2013-07-10 11:54:24 +01:00
Lionel Landwerlin
eed9496056 clutter-text: prevent text buffer creation if not needed
When allocating or asking for preferred width/height on a ClutterText,
it can notify a change on buffer/text/max-length if no text has been
set.

https://bugzilla.gnome.org/show_bug.cgi?id=703882
2013-07-10 11:16:09 +01:00
Emmanuele Bassi
6227f7a0f5 actor: Deprecate realize and unrealize
There is no reasonable use case for having the functions, the virtual
functions, and the signals for realization and unrealization; the
concept belongs to an older era, when we though it would have been
possible to migrate actors across different GL contexts, of in case a GL
context would not have been available until the main loop started
spinning. That is most definitely not possible today, and too much code
would utterly break if we ever supported that.
2013-07-10 11:16:09 +01:00
Rob Bradford
7df59887d7 wayland: Use a fake millisecond monotonic time source for event times
The majority of Clutter input events require a time so that that the
upper levels of abstraction can identify the ordering of events and also
work out a click count.

Although some Wayland events have microsecond timestamps not all those
that Clutter expects do have. Therefore we would need to create some
fake times for those events. Instead we always calculate our own time
using the monotonic time.

https://bugzilla.gnome.org/show_bug.cgi?id=697285
2013-07-10 10:30:17 +01:00
Robert Bragg
c281b6dd93 release: update documentation links for release notes
The release notes now link to http://cogl3d.org/cogl2-reference/
for the experimental 2.0 api reference
2013-07-09 23:19:51 +01:00
Robert Bragg
8caa116325 README: misc updates
Reviewed-by: Neil Roberts <neil@linux.intel.com>

(cherry picked from commit 141014b50a3106d58f476b562aeb87c087ac31c8)
2013-07-09 22:54:02 +01:00
Matthias Clasen
5e26d17ea7 Install conformance tests
Install the conformance tests, and metadata to run them
with gnome-desktop-testing-runner.

https://bugzilla.gnome.org/show_bug.cgi?id=702942

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 53f3eb421239982b69569ad03ccbfa4b4f601cf3)
2013-07-09 22:52:50 +01:00
Damien Lespiau
1c3cd74211 tests: Add a test for the RGB <-> HSL functions
Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 32d67c2bf40641b2d1d30fa2d994013c3e6ce5bc)
2013-07-09 22:52:49 +01:00
Damien Lespiau
5858cac873 color: Add HSL conversion functions
This allows to easily caculate shades of the same color or pick colors
with the same saturation/luminance. In short, all sorts of interesting
things.

Reviewed-by: Robert Bragg <robert@linux.intel.com>
Reviewed-by: Neil Roberts <neil@linux.intel.com>

(cherry picked from commit edcbeaf3c941f7a2335fbec47d5248cd9b0e8088)
2013-07-09 22:52:49 +01:00
Lionel Landwerlin
6cc9074cfb cogl-gst: move initialization code so CoglGstVideoSink can be subclassed
Reviewed-by: Robert Bragg <robert@linux.intel.com>
(cherry picked from commit 2f6068cb6783edf6e05d6e55e9700e22f31cb233)
2013-07-09 22:52:49 +01:00
Neil Roberts
3d9eaef3ac wayland: Add API to prevent Cogl from dispatching the wayland display
This adds cogl_wayland_renderer_set_event_dispatch_enabled() which can
be used to prevent Cogl from adding the socket for the Wayland display
to its list of file descriptors to poll. This can be used in
applications that want to integrate Cogl with existing code that is
reading from the Wayland socket itself.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit f5b8d98676ab3e90ad80459019c737ec2ff90aa4)
2013-07-09 15:46:46 +01:00
Neil Roberts
18ce7ad7f5 Get rid of the foreign shell and compositor APIs
The Wayland 1.0 protocol supports multiple independent components querying the
available interfaces by retreiving their own wl_registry object so the
application doesn't need to pass them down anymore.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 8ca36a1d1ab7236fec0f4d7b7361ca96e14c32be)
2013-07-09 15:46:46 +01:00
Neil Roberts
8911da794e Implicitly allocate on cogl_wayland_onscreen_get_(shell_)?surface
The idea with the framebuffer allocation is that it will lazily
allocate so that if you don't want to handle errors then you don't
have to be aware that there is an allocation step. In order for this
to work any accessors that get data that is only available after
allocation should implicitly allocate the framebuffer. This patch
makes that change for cogl_wayland_onscreen_get_surface and
cogl_wayland_onscreen_get_shell_surface.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 0c4ba78787323fedd162d7b71b86b460908b9b98)
2013-07-09 15:46:46 +01:00
Neil Roberts
3060d44365 Allow cogl_wayland_onscreen_get_surface to be used non-foreignly
cogl_wayland_onscreen_get_surface previously only worked if the
onscreen had a foreign surface on it. However there is no reason why
this shouldn't also work fine for manipulating the surface that Cogl
created as well. We may want to consider adding a separate getter for
the foreign surface that can be used before the framebuffer is
allocated.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 6bc12947a51224b70525893143bfe421723ce255)
2013-07-09 15:46:46 +01:00
Lionel Landwerlin
86cd26b67c cogl-gst: protect public API using type checks
(cherry picked from commit 9a8c6536088368060a85f74d082c3dd8487b877c)
2013-07-09 13:32:16 +01:00
Rob Bradford
6521701e29 wayland: add support for connecting to a foreign display
This allows the reuse of the display connection and hence objects with
existing code that is using Wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=703566
2013-07-09 12:36:49 +01:00
Rob Bradford
8df5aba361 wayland: add support for connecting to a foreign display
This allows the reuse of the display connection and hence objects with
existing code that is using Wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=703566
2013-07-09 12:35:29 +01:00
Emmanuele Bassi
5b614cda1c paint-nodes: Use the correct wrap mode for TextureNode
If we allow content repeats on the texture nodes, then we need to use
the "automatic" wrap mode for the texture layer in the pipeline, instead
of the clamp-to-edge one.

Reported-by: Matthew Watson <matthew@endlessm.com>
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2013-07-04 16:32:58 +01:00
Emmanuele Bassi
1f37798b4c Revert "cogl: Replace deprecated Cogl API"
This reverts commit 6dd9da05c788473a7d19693036f814154e1a37dc.

Windowing system features we need are not mapped on cogl_has_feature().

Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2013-07-04 16:12:27 +01:00
Emmanuele Bassi
52e0ec92b7 build: Remove the wrappers directory on clean 2013-07-04 15:48:39 +01:00
Neil Roberts
7b645d51cc cogland: Use wl_resource_get_user_data instead of resource->data
wl_resource may become an opaque type in future so we should probably
be using the accessors instead of directly prodding into the struct.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 8ab07725734b8b2151470cc44bb3f88798ac5538)
2013-07-04 11:50:31 +01:00