weston/libweston
Daniel Stone 7cdf231c76 compositor-drm: Use plane_state_coords_for_view for scanout
Now that we have a helper to fill the plane state co-ordinates from a
view, use this for the scanout plane.

We now explicitly check that the view fills exactly the fullscreen area
and nothing else. We then use the new helper to fill out the plane state
values, and do further checks against the filled-in co-ordinates, i.e.
that we're not trying to show an offset into the buffer, or to scale the
image.

This now allows cases where the buffer -> surface -> view -> output
transform chain cancels each other out for scaling: previously, we would
never consider a buffer for scanout unless its scale matched the
output's. We now only look at the final result of the buffer -> output
transformation, to check that this does not result in translation or
scaling.

An audit of the error paths found some places where we would leave a
plane state hanging; this makes them all consistent.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Emre Ucan <eucan@de.adit-jv.com>
2018-07-06 14:52:05 +01:00
..
animation.c build,libweston: Use struct timespec for animations 2017-11-27 11:41:17 +02:00
bindings.c libweston: Use struct timespec for touch down events 2017-11-27 11:42:07 +02:00
clipboard.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
compositor-drm.c compositor-drm: Use plane_state_coords_for_view for scanout 2018-07-06 14:52:05 +01:00
compositor-drm.h libweston: set the seat automatically based on the XDG_SEAT environment variable 2018-07-02 15:29:38 +03:00
compositor-fbdev.c compositor-fbdev: detect the first fb device in the seat 2018-07-02 15:29:38 +03:00
compositor-fbdev.h compositor-fbdev: support the --seat option, (and XDG_SEAT variable) 2018-07-02 15:29:38 +03:00
compositor-headless.c pixman: make shadow buffer optional 2018-05-24 17:20:04 +03:00
compositor-headless.h weston: Port headless backend to new output handling API 2016-10-03 14:24:08 +03:00
compositor-rdp.c rdp-compositor: fix compilation against FreeRDP 2.0.0 rc2 2018-05-28 14:47:07 +03:00
compositor-rdp.h weston: Port RDP backend to new output handling API 2016-10-03 14:24:08 +03:00
compositor-wayland.c libweston: notify_touch API to use weston_touch_device 2018-05-30 14:45:58 +03:00
compositor-wayland.h compositor-wayland: Convert fullscreen flag to bool 2016-10-14 10:42:17 +02:00
compositor-x11.c pixman: make shadow buffer optional 2018-05-24 17:20:04 +03:00
compositor-x11.h weston: Port X11 backend to new output handling API 2016-10-05 14:59:09 +03:00
compositor.c libweston: fix output reflow on removal 2018-07-05 10:39:13 +03:00
compositor.h compositor-drm: Add aspect-ratio parsing support 2018-07-06 12:09:39 +03:00
data-device.c libweston: Make weston_seat release safe 2018-02-15 13:14:14 +02:00
dbus.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
dbus.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
gl-renderer.c gl-renderer: set num_images after import_simple_dmabuf 2018-03-28 13:09:50 +03:00
gl-renderer.h gl-renderer: Add <platform_attribs> param to gl_renderer_display_create 2016-11-07 17:06:44 +02:00
input.c libweston: implement touch calibration protocol 2018-05-30 14:46:24 +03:00
launcher-direct.c libweston: remove restore functionality 2018-02-09 15:16:07 +00:00
launcher-impl.h libweston: remove restore functionality 2018-02-09 15:16:07 +00:00
launcher-logind.c launcher-logind: only get a VT on seat0, as only seat0 supports VTs 2018-07-02 15:29:38 +03:00
launcher-util.c launcher-logind: only get a VT on seat0, as only seat0 supports VTs 2018-07-02 15:29:38 +03:00
launcher-util.h libweston: remove restore functionality 2018-02-09 15:16:07 +00:00
launcher-weston-launch.c libweston: remove restore functionality 2018-02-09 15:16:07 +00:00
libbacklight.c Switch to use safe_strtoint instead of strtol 2016-08-06 18:19:22 -07:00
libbacklight.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
libinput-device.c libweston: introduce notify_touch_normalized() and doc 2018-05-30 14:46:05 +03:00
libinput-device.h input: introduce weston_touch_device 2018-05-30 14:42:13 +03:00
libinput-seat.c libweston: require connected heads for input devices 2018-04-20 15:27:54 +03:00
libinput-seat.h libweston: require connected heads for input devices 2018-04-20 15:27:54 +03:00
libweston-uninstalled.pc.in buildsystem: add missing pkg-config stub for libweston uninstalled 2017-11-10 12:50:41 -06:00
libweston.pc.in libweston: fix major in libweston.pc 2016-08-02 14:19:11 +03:00
linux-dmabuf.c linux-dmabuf: send deprecated format events 2018-01-18 11:24:19 +00:00
linux-dmabuf.h linux-dmabuf: send deprecated format events 2018-01-18 11:24:19 +00:00
log.c log: improve handling of use-before-init 2018-05-28 16:38:05 +03:00
noop-renderer.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
pixel-formats.c libweston: Add pixel-format helpers 2017-04-07 12:28:36 +03:00
pixel-formats.h libweston: Add pixel-format helpers 2017-04-07 12:28:36 +03:00
pixman-renderer.c pixman: make shadow buffer optional 2018-05-24 17:20:04 +03:00
pixman-renderer.h pixman: make shadow buffer optional 2018-05-24 17:20:04 +03:00
plugin-registry.c compositor: add plugin-registry 2016-07-01 14:10:26 +03:00
plugin-registry.h compositor: add plugin-registry 2016-07-01 14:10:26 +03:00
screenshooter.c libweston: Use struct timespec for the output presentation timestamp 2017-11-27 11:42:07 +02:00
spring-tool.c build,libweston: Use struct timespec for animations 2017-11-27 11:41:17 +02:00
timeline-object.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
timeline.c file-util: allow specifying path separately in file_create_dated() 2018-02-09 15:16:07 +00:00
timeline.h timeline: Add GPU timestamp timepoint argument 2017-09-29 10:20:42 +03:00
touch-calibration.c libweston: implement touch calibration protocol 2018-05-30 14:46:24 +03:00
vaapi-recorder.c Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
vaapi-recorder.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
version.h.in Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
vertex-clipping.c Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
vertex-clipping.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
weston-launch.c weston-launch: always run through all groups 2018-06-11 16:20:39 +03:00
weston-launch.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
weston-sync-file.h libweston: Add check and fallback for linux/sync_file.h 2017-09-29 10:20:42 +03:00
windowed-output-api.h libweston: change windowed_output_api output_create to create_head 2018-04-17 15:19:57 +03:00
zoom.c libweston: Make weston_pointer destruction safe 2018-02-14 15:14:16 +02:00