weston: Changes to 'debian-experimental'
.gitignore | 1
Makefile.am | 504 +-
README | 146
clients/clickdot.c | 1
clients/cliptest.c | 3
clients/confine.c | 531 +++
clients/desktop-shell.c | 70
clients/dnd.c | 1
clients/editor.c | 4
clients/eventdemo.c | 50
clients/flower.c | 2
clients/fullscreen.c | 7
clients/ivi-shell-user-interface.c | 43
clients/keyboard.c | 44
clients/multi-resource.c | 26
clients/nested-client.c | 1
clients/nested.c | 14
clients/presentation-shm.c | 75
clients/resizor.c | 159
clients/scaler.c | 46
clients/screenshot.c | 16
clients/simple-damage.c | 130
clients/simple-dmabuf-intel.c | 123
clients/simple-dmabuf-v4l.c | 126
clients/simple-egl.c | 124
clients/simple-shm.c | 108
clients/simple-touch.c | 3
clients/smoke.c | 2
clients/stacking.c | 1
clients/subsurfaces.c | 4
clients/terminal.c | 75
clients/weston-info.c | 55
clients/weston-simple-im.c | 9
clients/window.c | 688 +++-
clients/window.h | 78
compositor/cms-colord.c | 567 +++
compositor/cms-helper.c | 136
compositor/cms-helper.h | 75
compositor/cms-static.c | 119
compositor/main.c | 1791 ++++++++++
compositor/screen-share.c | 1129 ++++++
compositor/systemd-notify.c | 165
compositor/text-backend.c | 1085 ++++++
compositor/weston-screenshooter.c | 192 +
compositor/weston.desktop | 5
compositor/weston.h | 73
compositor/weston.pc.in | 12
compositor/xwayland.c | 209 +
configure.ac | 212 -
data/COPYING | 18
data/icon_editor.png |binary
data/icon_flower.png |binary
data/icon_terminal.png |binary
data/icons.svg | 1012 +++++
debian/changelog | 12
debian/control | 12
debian/weston.install | 23
desktop-shell/exposay.c | 14
desktop-shell/input-panel.c | 19
desktop-shell/shell.c | 3206 ++++--------------
desktop-shell/shell.h | 16
fullscreen-shell/fullscreen-shell.c | 117
ivi-shell/hmi-controller.c | 221 -
ivi-shell/input-panel-ivi.c | 27
ivi-shell/ivi-layout-export.h | 368 --
ivi-shell/ivi-layout-private.h | 72
ivi-shell/ivi-layout-shell.h | 60
ivi-shell/ivi-layout-transition.c | 45
ivi-shell/ivi-layout.c | 1324 +------
ivi-shell/ivi-shell.c | 109
ivi-shell/ivi-shell.h | 15
libweston-desktop/client.c | 212 +
libweston-desktop/internal.h | 236 +
libweston-desktop/libweston-desktop.c | 244 +
libweston-desktop/libweston-desktop.h | 166
libweston-desktop/libweston-desktop.pc.in | 11
libweston-desktop/seat.c | 368 ++
libweston-desktop/surface.c | 810 ++++
libweston-desktop/wl-shell.c | 466 ++
libweston-desktop/xdg-shell-v5.c | 798 ++++
libweston-desktop/xdg-shell-v6.c | 1237 +++++++
libweston-desktop/xwayland.c | 377 ++
libweston/animation.c | 502 ++
libweston/bindings.c | 580 +++
libweston/clipboard.c | 307 +
libweston/compositor-drm.c | 3285 +++++++++++++++++++
libweston/compositor-drm.h | 138
libweston/compositor-fbdev.c | 784 ++++
libweston/compositor-fbdev.h | 63
libweston/compositor-headless.c | 274 +
libweston/compositor-headless.h | 56
libweston/compositor-rdp.c | 1346 +++++++
libweston/compositor-rdp.h | 54
libweston/compositor-wayland.c | 2361 +++++++++++++
libweston/compositor-wayland.h | 63
libweston/compositor-x11.c | 1745 ++++++++++
libweston/compositor-x11.h | 64
libweston/compositor.c | 5119 ++++++++++++++++++++++++++++++
libweston/compositor.h | 1827 ++++++++++
libweston/data-device.c | 1343 +++++++
libweston/dbus.c | 408 ++
libweston/dbus.h | 110
libweston/gl-renderer.c | 3191 ++++++++++++++++++
libweston/gl-renderer.h | 117
libweston/input.c | 4558 ++++++++++++++++++++++++++
libweston/launcher-direct.c | 315 +
libweston/launcher-impl.h | 45
libweston/launcher-logind.c | 840 ++++
libweston/launcher-util.c | 118
libweston/launcher-util.h | 58
libweston/launcher-weston-launch.c | 286 +
libweston/libbacklight.c | 318 +
libweston/libbacklight.h | 79
libweston/libinput-device.c | 604 +++
libweston/libinput-device.h | 80
libweston/libinput-seat.c | 417 ++
libweston/libinput-seat.h | 72
libweston/libweston.pc.in | 11
libweston/linux-dmabuf.c | 498 ++
libweston/linux-dmabuf.h | 88
libweston/log.c | 98
libweston/noop-renderer.c | 122
libweston/pixman-renderer.c | 932 +++++
libweston/pixman-renderer.h | 40
libweston/plugin-registry.c | 156
libweston/plugin-registry.h | 55
libweston/screenshooter.c | 488 ++
libweston/spring-tool.c | 76
libweston/timeline-object.h | 55
libweston/timeline.c | 292 +
libweston/timeline.h | 65
libweston/vaapi-recorder.c | 1161 ++++++
libweston/vaapi-recorder.h | 38
libweston/version.h.in | 50
libweston/vertex-clipping.c | 330 +
libweston/vertex-clipping.h | 66
libweston/weston-egl-ext.h | 156
libweston/weston-launch.c | 782 ++++
libweston/weston-launch.h | 49
libweston/zoom.c | 178 +
m4/weston.m4 | 37
man/weston.ini.man | 25
protocol/ivi-application.xml | 2
protocol/presentation_timing.xml | 274 -
protocol/scaler.xml | 208 -
releasing.txt | 32
shared/config-parser.c | 83
shared/config-parser.h | 6
shared/frame.c | 1
shared/helpers.h | 11
shared/image-loader.c | 45
shared/option-parser.c | 55
shared/platform.h | 57
shared/string-helpers.h | 70
shared/xalloc.c | 50
shared/xalloc.h | 51
src/animation.c | 485 --
src/bindings.c | 579 ---
src/clipboard.c | 306 -
src/cms-colord.c | 568 ---
src/cms-helper.c | 135
src/cms-helper.h | 75
src/cms-static.c | 118
src/compositor-drm.c | 3260 -------------------
src/compositor-fbdev.c | 856 -----
src/compositor-headless.c | 292 -
src/compositor-rdp.c | 1319 -------
src/compositor-rpi.c | 575 ---
src/compositor-wayland.c | 2427 --------------
src/compositor-x11.c | 1762 ----------
src/compositor.c | 5050 -----------------------------
src/compositor.h | 1715 ----------
src/data-device.c | 1338 -------
src/dbus.c | 407 --
src/dbus.h | 110
src/gl-renderer.c | 3129 ------------------
src/gl-renderer.h | 132
src/input.c | 2750 ----------------
src/launcher-direct.c | 315 -
src/launcher-impl.h | 45
src/launcher-logind.c | 839 ----
src/launcher-util.c | 117
src/launcher-util.h | 58
src/launcher-weston-launch.c | 300 -
src/libbacklight.c | 310 -
src/libbacklight.h | 79
src/libinput-device.c | 624 ---
src/libinput-device.h | 78
src/libinput-seat.c | 414 --
src/libinput-seat.h | 65
src/linux-dmabuf.c | 497 --
src/linux-dmabuf.h | 88
src/log.c | 143
src/main.c | 892 -----
src/noop-renderer.c | 121
src/pixman-renderer.c | 931 -----
src/pixman-renderer.h | 40
src/rpi-bcm-stubs.h | 327 -
src/rpi-renderer.c | 1830 ----------
src/rpi-renderer.h | 52
src/screen-share.c | 1126 ------
src/screenshooter.c | 634 ---
src/spring-tool.c | 74
src/systemd-notify.c | 123
src/text-backend.c | 1082 ------
src/timeline-object.h | 55
src/timeline.c | 292 -
src/timeline.h | 65
src/vaapi-recorder.c | 1161 ------
src/vaapi-recorder.h | 38
src/version.h.in | 50
src/vertex-clipping.c | 330 -
src/vertex-clipping.h | 66
src/weston-egl-ext.h | 120
src/weston-launch.c | 770 ----
src/weston-launch.h | 49
src/weston.desktop | 5
src/weston.pc.in | 11
src/zoom.c | 177 -
tests/buffer-count-test.c | 1
tests/config-parser-test.c | 186 +
tests/event-test.c | 26
tests/internal-screenshot-test.c | 80
tests/ivi-test.h | 1
tests/ivi_layout-internal-test.c | 424 --
tests/ivi_layout-test-plugin.c | 266 -
tests/ivi_layout-test.c | 15
tests/keyboard-test.c | 2
tests/plugin-registry-test.c | 101
tests/presentation-test.c | 38
tests/string-test.c | 87
tests/surface-global-test.c | 3
tests/surface-screenshot.c | 1
tests/surface-test.c | 2
tests/text-test.c | 1
tests/vertex-clip-test.c | 2
tests/viewporter-test.c | 553 +++
tests/weston-test-client-helper.c | 617 ++-
tests/weston-test-client-helper.h | 55
tests/weston-test.c | 26
tests/weston-tests-env | 24
tools/zunitc/inc/zunitc/zunitc.h | 2
tools/zunitc/src/zuc_base_logger.c | 21
tools/zunitc/src/zuc_junit_reporter.c | 34
tools/zunitc/src/zunitc_impl.c | 11
wcap/wcap-decode.h | 2
weston.ini.in | 1
xwayland/dnd.c | 1
xwayland/hash.c | 2
xwayland/hash.h | 2
xwayland/launcher.c | 282 -
xwayland/selection.c | 33
xwayland/window-manager.c | 134
xwayland/xwayland-api.h | 176 +
xwayland/xwayland-internal-interface.h | 62
xwayland/xwayland.h | 10
256 files changed, 55608 insertions(+), 48432 deletions(-)
New commits:
commit d24c614b2d537f0ebb845c8348657fbb9697e136
Author: Héctor Orón Martínez <zumbi@debian.org>
Date: Thu Aug 18 17:52:24 2016 +0200
d/weston.install: update for libweston
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
diff --git a/debian/weston.install b/debian/weston.install
index 5be404e..c25b105 100644
--- a/debian/weston.install
+++ b/debian/weston.install
@@ -4,25 +4,34 @@ usr/bin/weston-info
usr/bin/weston-launch
usr/bin/weston-terminal
usr/include/weston
+usr/include/libweston-1
usr/lib/weston/weston-desktop-shell
usr/lib/weston/weston-keyboard
usr/lib/weston/weston-ivi-shell-user-interface
usr/lib/weston/weston-screenshooter
usr/lib/weston/weston-simple-im
+usr/lib/*/libweston-1.so
+usr/lib/*/libweston-1.so.0.11.91
+usr/lib/*/libweston-1.so.0
+usr/lib/*/libweston-desktop-1.so.0
+usr/lib/*/libweston-desktop-1.so
+usr/lib/*/libweston-desktop-1.so.0.11.91
+usr/lib/*/libweston-1/x11-backend.so
+usr/lib/*/libweston-1/xwayland.so
+usr/lib/*/libweston-1/headless-backend.so
+usr/lib/*/libweston-1/gl-renderer.so
+usr/lib/*/libweston-1/fbdev-backend.so
+usr/lib/*/libweston-1/wayland-backend.so
+usr/lib/*/libweston-1/drm-backend.so
+usr/lib/*/pkgconfig/libweston-desktop-1.pc
+usr/lib/*/pkgconfig/libweston-1.pc
usr/lib/*/pkgconfig/weston.pc
usr/lib/*/weston/cms-colord.so
usr/lib/*/weston/cms-static.so
usr/lib/*/weston/desktop-shell.so
-usr/lib/*/weston/drm-backend.so
-usr/lib/*/weston/fbdev-backend.so
usr/lib/*/weston/fullscreen-shell.so
-usr/lib/*/weston/gl-renderer.so
-usr/lib/*/weston/headless-backend.so
usr/lib/*/weston/hmi-controller.so
usr/lib/*/weston/ivi-shell.so
-usr/lib/*/weston/wayland-backend.so
-usr/lib/*/weston/x11-backend.so
-usr/lib/*/weston/xwayland.so
usr/share/man/man1/weston.1
usr/share/man/man5/weston.ini.5
usr/share/man/man7/weston-drm.7
commit 002c353300beb8633338f2ca7e53a14d1fe9805c
Author: Héctor Orón Martínez <zumbi@debian.org>
Date: Thu Aug 18 16:47:00 2016 +0200
d/control: add versioning to build dependencies
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
diff --git a/debian/control b/debian/control
index ae33749..f10d4b7 100644
--- a/debian/control
+++ b/debian/control
@@ -20,17 +20,17 @@ Build-Depends:
libegl1-mesa-dev (>= 9.0~),
libegl1-mesa-drivers (>= 9.0~),
libgles2-mesa-dev (>= 9.0~),
- libwayland-dev (>= 1.9.91),
+ libwayland-dev (>= 1.11.91),
libxcb1-dev,
libxcb-composite0-dev,
libxcb-xfixes0-dev,
libxcb-xkb-dev,
libx11-xcb-dev,
libx11-dev,
- libudev-dev,
- libgbm-dev,
+ libudev-dev (>= 136),
+ libgbm-dev (>= 10.2),
libxkbcommon-dev (>= 0.3.0),
- libcairo2-dev,
+ libcairo2-dev (>= 1.10.0),
libpango1.0-dev,
libgdk-pixbuf2.0-dev,
libxcursor-dev,
@@ -39,7 +39,7 @@ Build-Depends:
libvpx-dev,
libsystemd-dev,
libinput-dev (>= 0.8.0),
- wayland-protocols,
+ wayland-protocols (>= 1.7),
Standards-Version: 3.9.8
Homepage: http://wayland.freedesktop.org/
Vcs-Git: git://anonscm.debian.org/pkg-xorg/wayland/weston
commit eb07f3624dc66bc2fd2d8e594c541da3e77e7631
Author: Bryce Harrington <bryce@osg.samsung.com>
Date: Tue Aug 16 11:51:53 2016 -0700
configure.ac: bump to version 1.11.91 for the alpha release
diff --git a/configure.ac b/configure.ac
index cac3e7d..58fa04e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,11 +1,11 @@
m4_define([weston_major_version], [1])
m4_define([weston_minor_version], [11])
-m4_define([weston_micro_version], [90])
+m4_define([weston_micro_version], [91])
m4_define([weston_version],
[weston_major_version.weston_minor_version.weston_micro_version])
m4_define([libweston_major_version], [1])
m4_define([libweston_minor_version], [11])
-m4_define([libweston_patch_version], [90])
+m4_define([libweston_patch_version], [91])
AC_PREREQ([2.64])
AC_INIT([weston],
@@ -14,7 +14,7 @@ AC_INIT([weston],
[weston],
[http://wayland.freedesktop.org])
-WAYLAND_PREREQ_VERSION="1.11.90"
+WAYLAND_PREREQ_VERSION="1.11.91"
AC_SUBST([WESTON_VERSION_MAJOR], [weston_major_version])
AC_SUBST([WESTON_VERSION_MINOR], [weston_minor_version])
commit 6384edf0252e25b2b77d0156e247e8302f318657
Author: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Tue Aug 16 11:42:47 2016 +0200
libweston-desktop/{wl_shell, xwayland}: Fix changing between toplevel states
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Tested-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
diff --git a/libweston-desktop/wl-shell.c b/libweston-desktop/wl-shell.c
index 7c6a589..74ce473 100644
--- a/libweston-desktop/wl-shell.c
+++ b/libweston-desktop/wl-shell.c
@@ -151,8 +151,10 @@ weston_desktop_wl_shell_change_state(struct weston_desktop_wl_shell_surface *sur
assert(state != NONE);
- if (to_add && surface->added)
+ if (to_add && surface->added) {
+ surface->state = state;
return;
+ }
if (surface->state != state) {
if (surface->state == POPUP)
diff --git a/libweston-desktop/xwayland.c b/libweston-desktop/xwayland.c
index da04f7f..cb08323 100644
--- a/libweston-desktop/xwayland.c
+++ b/libweston-desktop/xwayland.c
@@ -75,8 +75,10 @@ weston_desktop_xwayland_surface_change_state(struct weston_desktop_xwayland_surf
assert(state != NONE);
- if (to_add && surface->added)
+ if (to_add && surface->added) {
+ surface->state = state;
return;
+ }
if (surface->state != state) {
if (surface->state == XWAYLAND) {
commit f6636a8dec24340b9ec4ec5a1171d3efabf3904a
Author: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Tue Aug 16 10:55:02 2016 +0200
libweston-desktop/xwayland: Actually destroy the view
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/libweston-desktop/xwayland.c b/libweston-desktop/xwayland.c
index 927afab..da04f7f 100644
--- a/libweston-desktop/xwayland.c
+++ b/libweston-desktop/xwayland.c
@@ -81,6 +81,7 @@ weston_desktop_xwayland_surface_change_state(struct weston_desktop_xwayland_surf
if (surface->state != state) {
if (surface->state == XWAYLAND) {
weston_desktop_surface_unlink_view(surface->view);
+ weston_view_destroy(surface->view);
surface->view = NULL;
}
@@ -149,11 +150,13 @@ weston_desktop_xwayland_surface_destroy(struct weston_desktop_surface *dsurface,
wl_list_remove(&surface->resource_destroy_listener.link);
weston_desktop_surface_unset_relative_to(surface->surface);
- if (surface->added)
+ if (surface->added) {
weston_desktop_api_surface_removed(surface->desktop,
surface->surface);
- else if (surface->state == XWAYLAND)
+ } else if (surface->state == XWAYLAND) {
weston_desktop_surface_unlink_view(surface->view);
+ weston_view_destroy(surface->view);
+ }
free(surface);
}
commit f01ecee75ae435e50910ca852819ee11b22e3b1a
Author: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Tue Aug 16 10:52:46 2016 +0200
libweston-desktop: Rename _destroy_view to _unlink_view
It doesn't destroy the view per se (except for internal surfaces) and
require the caller to also destroy the view itself at the appropriate
time.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 8023b0d..7bcaa8d 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2364,7 +2364,7 @@ desktop_surface_removed(struct weston_desktop_surface *desktop_surface,
weston_desktop_surface_set_user_data(shsurf->desktop_surface, NULL);
shsurf->desktop_surface = NULL;
- weston_desktop_surface_destroy_view(shsurf->view);
+ weston_desktop_surface_unlink_view(shsurf->view);
if (weston_surface_is_mapped(surface) &&
shsurf->shell->win_close_animation_type == ANIMATION_FADE) {
pixman_region32_fini(&surface->pending.input);
diff --git a/libweston-desktop/libweston-desktop.h b/libweston-desktop/libweston-desktop.h
index 0f0e031..f77ab55 100644
--- a/libweston-desktop/libweston-desktop.h
+++ b/libweston-desktop/libweston-desktop.h
@@ -111,7 +111,7 @@ weston_desktop_surface_set_user_data(struct weston_desktop_surface *self,
struct weston_view *
weston_desktop_surface_create_view(struct weston_desktop_surface *surface);
void
-weston_desktop_surface_destroy_view(struct weston_view *view);
+weston_desktop_surface_unlink_view(struct weston_view *view);
void
weston_desktop_surface_propagate_layer(struct weston_desktop_surface *surface);
void
diff --git a/libweston-desktop/surface.c b/libweston-desktop/surface.c
index 42258db..2205107 100644
--- a/libweston-desktop/surface.c
+++ b/libweston-desktop/surface.c
@@ -404,7 +404,7 @@ weston_desktop_surface_create_view(struct weston_desktop_surface *surface)
}
WL_EXPORT void
-weston_desktop_surface_destroy_view(struct weston_view *wview)
+weston_desktop_surface_unlink_view(struct weston_view *wview)
{
struct weston_desktop_surface *surface;
struct weston_desktop_view *view;
diff --git a/libweston-desktop/xwayland.c b/libweston-desktop/xwayland.c
index 6c63483..927afab 100644
--- a/libweston-desktop/xwayland.c
+++ b/libweston-desktop/xwayland.c
@@ -80,7 +80,7 @@ weston_desktop_xwayland_surface_change_state(struct weston_desktop_xwayland_surf
if (surface->state != state) {
if (surface->state == XWAYLAND) {
- weston_desktop_surface_destroy_view(surface->view);
+ weston_desktop_surface_unlink_view(surface->view);
surface->view = NULL;
}
@@ -153,7 +153,7 @@ weston_desktop_xwayland_surface_destroy(struct weston_desktop_surface *dsurface,
weston_desktop_api_surface_removed(surface->desktop,
surface->surface);
else if (surface->state == XWAYLAND)
- weston_desktop_surface_destroy_view(surface->view);
+ weston_desktop_surface_unlink_view(surface->view);
free(surface);
}
commit 729c7fa788822e5b0561f992d040e1bb8781cbaf
Author: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Tue Aug 16 10:28:21 2016 +0200
desktop-shell: Properly destroy the weston_desktop_view
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 786020b..8023b0d 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2364,6 +2364,7 @@ desktop_surface_removed(struct weston_desktop_surface *desktop_surface,
weston_desktop_surface_set_user_data(shsurf->desktop_surface, NULL);
shsurf->desktop_surface = NULL;
+ weston_desktop_surface_destroy_view(shsurf->view);
if (weston_surface_is_mapped(surface) &&
shsurf->shell->win_close_animation_type == ANIMATION_FADE) {
pixman_region32_fini(&surface->pending.input);
@@ -2373,7 +2374,6 @@ desktop_surface_removed(struct weston_desktop_surface *desktop_surface,
weston_fade_run(shsurf->view, 1.0, 0.0, 300.0,
fade_out_done, shsurf);
} else {
- weston_desktop_surface_destroy_view(shsurf->view);
weston_view_destroy(shsurf->view);
free(shsurf);
}
commit 154c5d23041cb51973dc07689ab195759e2b59df
Author: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Mon Aug 15 17:29:09 2016 +0200
Makefile.am: Fix libtool race
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/Makefile.am b/Makefile.am
index 6c3f4f7..1e63a58 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -61,6 +61,14 @@ CLEANFILES = weston.ini \
internal-screenshot-00.png \
$(BUILT_SOURCES)
+# Libtool race fix
+# libweston-desktop depends on libweston, and desktop-shell depends on both.
+# This leads to a libtool race at installation, because libtool re-links
+# everything.
+# If you add more fixes, you may need a workaround to keep automake generated
+# targets. See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328
+install-libweston_moduleLTLIBRARIES install-moduleLTLIBRARIES: install-libLTLIBRARIES
+
lib_LTLIBRARIES = libweston-@LIBWESTON_MAJOR@.la
libweston_@LIBWESTON_MAJOR@_la_CPPFLAGS = $(AM_CPPFLAGS) -DIN_WESTON
libweston_@LIBWESTON_MAJOR@_la_CFLAGS = $(AM_CFLAGS) $(COMPOSITOR_CFLAGS) $(LIBUNWIND_CFLAGS)
commit 2af7e208cf4a50222bb7874fb8daf7623b997bda
Author: Derek Foreman <derekf@osg.samsung.com>
Date: Thu Jul 7 10:52:17 2016 -0500
weston-editor: Close the data source after sending
We're leaking the fd when sending cut'n'paste. Failure to close can also
makes the other end unhappy because it doesn't know the paste is finished.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/clients/editor.c b/clients/editor.c
index b34ef42..6805d8a 100644
--- a/clients/editor.c
+++ b/clients/editor.c
@@ -576,6 +576,8 @@ data_source_send(void *data,
if (write(fd, editor->selected_text, strlen(editor->selected_text) + 1) < 0)
fprintf(stderr, "write failed: %m\n");
+
+ close(fd);
}
static void
commit e91b6e9c62847f4fa00be4f813da94ee050d0b94
Author: Arnaud Vrac <avrac@freebox.fr>
Date: Wed Jun 8 17:55:08 2016 +0200
fullscreen-shell: avoid access to freed data
Remove the output transform from the view transform list when its
surface is destroyed. The surface destruction also triggers the
freeing of its views, so the next access to the output transform link
could crash.
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
diff --git a/fullscreen-shell/fullscreen-shell.c b/fullscreen-shell/fullscreen-shell.c
index b9c82a8..b3083d8 100644
--- a/fullscreen-shell/fullscreen-shell.c
+++ b/fullscreen-shell/fullscreen-shell.c
@@ -293,6 +293,8 @@ surface_destroyed(struct wl_listener *listener, void *data)
surface_destroyed);
fsout->surface = NULL;
fsout->view = NULL;
+ wl_list_remove(&fsout->transform.link);
+ wl_list_init(&fsout->transform.link);
}
static void
commit 319397e050e2b4833e10093ccefd8ad77a6ef78d
Author: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Date: Mon Jul 4 16:25:16 2016 +0300
gl-renderer, simple-dmabuf-v4l: fix dmabuf y-invert
Invert the Y_INVERT flag for the EGL import fo dmabufs. This fixes
weston-simple-dmabuf-intel to show the same image on both GL-composited
and with direct scanout on a hardware plane. Before, the image would
y-flip when switching between these two cases. Now the orientation also
matches the color values written in simple-dmabuf-intel.c.
The GL-renderer uses the OpenGL convention of texture coordinates, where
the origin is at the bottom-left of an image. This can be observed in
texture_region() where the texcoords are inverted if y_invert is false,
since the surface coordinates have origin at top-left. Both wl_shm and
dmabuf buffers have origin at the top-left.
When wl_shm buffer is imported with glTexImage2D, it gets inverted
because glTexImage2D is defined to read in the bottom row first. The shm
data is top row first. This incidentally also means, that buffer pixel
0,0 ends up at texture coordinates 0,0. This is now inverted compared to
the GL coordinate convention, and therefore gl_renderer_attach_shm()
sets y_inverted to true. This causes texture_region() to NOT invert the
texcoords. Wayland surface coordinates have origin at top-left, hence
the double-inversion.
Dmabuf buffers also have the origin at top-left. However, they are
imported via EGL to GL, where they should get the GL oriented
coordinates but they do not. It is as if pixel 0,0 ends up at texcoords
0,0 - the same thing as with wl_shm buffers. Therefore we need to invert
the invert flag.
Too bad EGL_EXT_image_dma_buf_import does not seem to specify the image
orientation. The GL spec implied result seems to conflict with the
reality in Mesa 11.2.2.
I asked about this in the Mesa developer mailing list. The question with
no answers:
https://lists.freedesktop.org/archives/mesa-dev/2016-June/120249.html
and the thread I hijacked to get some answers:
https://lists.freedesktop.org/archives/mesa-dev/2016-June/120733.html
which culminated to the conclusion:
https://lists.freedesktop.org/archives/mesa-dev/2016-June/120955.html
that supports this patch.
simple-dmabuf-v4l is equally fixed to not add Y_INVERT. There is no
rational reason to have it, and removing is necessary together with the
GL-renderer change to keep the image the right way up. This has been
tested with VIVID.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
diff --git a/clients/simple-dmabuf-v4l.c b/clients/simple-dmabuf-v4l.c
index de77e36..af25d0e 100644
--- a/clients/simple-dmabuf-v4l.c
+++ b/clients/simple-dmabuf-v4l.c
@@ -360,7 +360,12 @@ create_dmabuf_buffer(struct display *display, struct buffer *buffer)
unsigned i;
modifier = 0;
- flags = ZWP_LINUX_BUFFER_PARAMS_V1_FLAGS_Y_INVERT;
+ flags = 0;
+
+ /* XXX: apparently some webcams may actually provide y-inverted images,
+ * in which case we should set
+ * flags = ZWP_LINUX_BUFFER_PARAMS_V1_FLAGS_Y_INVERT
+ */
params = zwp_linux_dmabuf_v1_create_params(display->dmabuf);
for (i = 0; i < display->format.num_planes; ++i)
diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
index ff48790..031576b 100644
--- a/libweston/gl-renderer.c
+++ b/libweston/gl-renderer.c
@@ -1824,8 +1824,14 @@ gl_renderer_attach_dmabuf(struct weston_surface *surface,
buffer->width = dmabuf->attributes.width;
buffer->height = dmabuf->attributes.height;
+
+ /*
+ * GL-renderer uses the OpenGL convention of texture coordinates, where
+ * the origin is at bottom-left. Because dmabuf buffers have the origin
+ * at top-left, we must invert the Y_INVERT flag to get the image right.
+ */
buffer->y_inverted =
- !!(dmabuf->attributes.flags & ZWP_LINUX_BUFFER_PARAMS_V1_FLAGS_Y_INVERT);
+ !(dmabuf->attributes.flags & ZWP_LINUX_BUFFER_PARAMS_V1_FLAGS_Y_INVERT);
for (i = 0; i < gs->num_images; i++)
egl_image_unref(gs->images[i]);
commit dbb85d717355f872e1fd71c4e63a66a1b52d81a2
Author: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Date: Mon Jul 4 16:25:15 2016 +0300
clients/dmabuf-v4l: explain vivid setup
Add very short explanation on how to set up Vivid driver, when you don't
have suitable V4L2 device to use.
Using the XR24 (DRM_FORMAT_XRGB8888) format practically guarantees that
you can test direct scanout on a hardware overlay, too. At least on PC
hardware that has overlays. Tested to work on Intel.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
diff --git a/clients/simple-dmabuf-v4l.c b/clients/simple-dmabuf-v4l.c
index ce124cc..de77e36 100644
--- a/clients/simple-dmabuf-v4l.c
+++ b/clients/simple-dmabuf-v4l.c
@@ -896,6 +896,23 @@ usage(const char *argv0)
"The default for both formats is YUYV.\n"
"If the V4L2 and DRM formats differ, the data is simply "
"reinterpreted rather than converted.\n", argv0);
+
+ printf("\n"
+ "How to set up Vivid the virtual video driver for testing:\n"
+ "- build your kernel with CONFIG_VIDEO_VIVID=m\n"
+ "- add this to a /etc/modprobe.d/ file:\n"
+ " options vivid node_types=0x1 num_inputs=1 input_types=0x00\n"
+ "- modprobe vivid and check which device was created,\n"
+ " here we assume /dev/video0\n"
+ "- set the pixel format:\n"
+ " $ v4l2-ctl -d /dev/video0 --set-fmt-video=width=640,pixelformat=XR24\n"
+ "- launch the demo:\n"
+ " $ %s /dev/video0 XR24 XR24\n"
+ "You should see a test pattern with color bars, and some text.\n"
+ "\n"
+ "More about vivid: https://www.kernel.org/doc/Documentation/video4linux/vivid.txt\n"
+ "\n", argv0);
+
exit(0);
}
commit 2eda27b7fbc6cde9ac8beb04cd0af2d4d04f73c6
Author: Emil Velikov <emil.velikov@collabora.com>
Date: Mon Aug 15 16:31:11 2016 +0100
README: fix s/libwayland/libweston/ typo
Since one is (about to be) using libweston, they should check for it as
opposed to libwayland.
Silly copy/paste mistake that would have caused a lot of confusion.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
diff --git a/README b/README
index 91a4953..84c30a4 100644
--- a/README
+++ b/README
@@ -133,7 +133,7 @@ weston_ham_sandwich(void);
In order to use the said symbol, the one will have a similar code in their
configure.ac:
-PKG_CHECK_MODULES(LIBWAYLAND, [libwayland-1 >= 1.1])
+PKG_CHECK_MODULES(LIBWESTON, [libweston-1 >= 1.1])
AC_DEFINE(REQUIRE_LIBWESTON_API_VERSION, [0x0101])
If the user is _not_ interested in forward compatibility, they can use 0xffff
commit 51c6f631c0100be32b41c407c89167d2f6d88a6e
Author: Benoit Gschwind <gschwind@gnu-log.net>
Date: Wed May 18 21:32:12 2016 +0200
compositor-x11: remove redundant state arg of x11_backend_deliver_button_event
The "state" variable in x11_backend_deliver_button_event is basically the
same as (event->response_type == XCB_BUTTON_PRESS), thus update the code
to use the last one.
Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
index 5562b9f..3e0d20f 100644
--- a/libweston/compositor-x11.c
+++ b/libweston/compositor-x11.c
@@ -1060,13 +1060,14 @@ update_xkb_state_from_core(struct x11_backend *b, uint16_t x11_mask)
static void
x11_backend_deliver_button_event(struct x11_backend *b,
- xcb_generic_event_t *event, int state)
+ xcb_generic_event_t *event)
{
xcb_button_press_event_t *button_event =
(xcb_button_press_event_t *) event;
uint32_t button;
struct x11_output *output;
struct weston_pointer_axis_event weston_event;
+ bool is_button_pressed = event->response_type == XCB_BUTTON_PRESS;
assert(event->response_type == XCB_BUTTON_PRESS ||
event->response_type == XCB_BUTTON_RELEASE);
@@ -1075,7 +1076,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
if (!output)
return;
- if (state)
+ if (is_button_pressed)
xcb_grab_pointer(b->conn, 0, output->window,
XCB_EVENT_MASK_BUTTON_PRESS |
XCB_EVENT_MASK_BUTTON_RELEASE |
@@ -1105,7 +1106,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
case 4:
/* Axis are measured in pixels, but the xcb events are discrete
* steps. Therefore move the axis by some pixels every step. */
- if (state) {
+ if (is_button_pressed) {
weston_event.value = -DEFAULT_AXIS_STEP_DISTANCE;
weston_event.discrete = -1;
weston_event.has_discrete = true;
@@ -1118,7 +1119,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
}
return;
case 5:
- if (state) {
+ if (is_button_pressed) {
weston_event.value = DEFAULT_AXIS_STEP_DISTANCE;
weston_event.discrete = 1;
weston_event.has_discrete = true;
@@ -1131,7 +1132,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
}
return;
case 6:
- if (state) {
+ if (is_button_pressed) {
weston_event.value = -DEFAULT_AXIS_STEP_DISTANCE;
weston_event.discrete = -1;
weston_event.has_discrete = true;
@@ -1144,7 +1145,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
}
return;
case 7:
- if (state) {
+ if (is_button_pressed) {
weston_event.value = DEFAULT_AXIS_STEP_DISTANCE;
weston_event.discrete = 1;
weston_event.has_discrete = true;
@@ -1163,8 +1164,8 @@ x11_backend_deliver_button_event(struct x11_backend *b,
notify_button(&b->core_seat,
weston_compositor_get_time(), button,
- state ? WL_POINTER_BUTTON_STATE_PRESSED :
- WL_POINTER_BUTTON_STATE_RELEASED);
+ is_button_pressed ? WL_POINTER_BUTTON_STATE_PRESSED :
+ WL_POINTER_BUTTON_STATE_RELEASED);
notify_pointer_frame(&b->core_seat);
}
@@ -1357,10 +1358,8 @@ x11_backend_handle_event(int fd, uint32_t mask, void *data)
STATE_UPDATE_NONE);
break;
case XCB_BUTTON_PRESS:
- x11_backend_deliver_button_event(b, event, 1);
- break;
case XCB_BUTTON_RELEASE:
- x11_backend_deliver_button_event(b, event, 0);
+ x11_backend_deliver_button_event(b, event);
break;
case XCB_MOTION_NOTIFY:
x11_backend_deliver_motion_event(b, event);
commit 4ddc4cc4fae83c48fc9d40ec4bd0cbb38ba183ff
Author: Benoit Gschwind <gschwind@gnu-log.net>
Date: Wed May 18 21:32:11 2016 +0200
compositor-x11: add assert to avoid misuse of x11_backend_deliver_button_event
The x11_backend_deliver_button_event can be called with any
xcb_generic_event. The assert check if the call is done with the
expected events.
Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
index b900184..5562b9f 100644
--- a/libweston/compositor-x11.c
+++ b/libweston/compositor-x11.c
@@ -1068,6 +1068,9 @@ x11_backend_deliver_button_event(struct x11_backend *b,
struct x11_output *output;
struct weston_pointer_axis_event weston_event;
+ assert(event->response_type == XCB_BUTTON_PRESS ||
+ event->response_type == XCB_BUTTON_RELEASE);
+
output = x11_backend_find_output(b, button_event->event);
if (!output)
return;
commit 482ffdf0064113f96aa09646fc21fc5109fc8b75
Author: Derek Foreman <derekf@osg.samsung.com>
Date: Fri Jul 8 12:50:57 2016 -0500
compositor-drm: Stop sending uninit data to the kernel
Valgrind noticed that we send uninit data to drmModeAddFB2. While
the kernel should never read this (because of the plane format),
it's probably still nicer to zero the data before we send it.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 5c9bfd9..4825b46 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -394,7 +394,7 @@ drm_fb_get_from_bo(struct gbm_bo *bo,
{
struct drm_fb *fb = gbm_bo_get_user_data(bo);
uint32_t width, height;
- uint32_t handles[4], pitches[4], offsets[4];
+ uint32_t handles[4] = { 0 }, pitches[4] = { 0 }, offsets[4] = { 0 };
int ret;
if (fb)
commit b40b827f83c476c52c1478f16b37db9facf905e3
Author: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Date: Mon Aug 15 14:06:15 2016 +0300
configure.ac: check weston vs. libweston versions
Check that the defined versions for Weston and libweston are consistent
and according to the version bumping rules:
- In pre-release and only pre-release versions the weston and libweston
may differ
- when they differ, libweston version must be exactly (weston.major+1).0.0
Reply to: