weston/libweston
Pekka Paalanen 8636422309 libweston: add weston_renderer::resize_output()
Previously renderers were not told when the output (framebuffer they
need to draw) size changed. Renderers just pulled that information out
from weston_output::current_mode when they happened to need it. This
makes some things awkward, like resizing the shadow or intermediate
buffers. In fact, Pixman-renderer does not even support resizing its
shadow buffer, nor does GL-renderer. DRM-backend has to destroy and
re-create the renderer output state anyway, but rdp, x11 and wayland
backends would be natural users of resizing API.

This commit adds an API for resizing with empty implementations. Actual
implementations will be added in following patches for each renderer
while moving parts of resizing code from backends into the renderers.
No-op renderer needs no implementation.

Only wayland-backend has actual resizing code already, and that is made
to call the new API. Unfortunately, Pixman and GL renderers differ: one
does not blit them while the other does. In order to assert the
functionality of each renderer to keep the API consistent,
wayland-backend needs to lie to pixman-renderer. That's not new, it
already does so in wayland_output_get_shm_buffer() where the 'pm_image'
addresses only the interior area instead of the whole buffer.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2022-09-23 12:42:05 +00:00
..
backend-drm libweston: Remove x,y from weston_plane_init 2022-09-23 11:53:16 +00:00
backend-headless compositor: Use weston_load_module 2022-09-23 11:47:40 +00:00
backend-rdp backend-rdp/rdpclip: Avoid printing negative index 2022-09-23 11:32:19 +00:00
backend-wayland libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
backend-x11 compositor: Use weston_load_module 2022-09-23 11:47:40 +00:00
color-lcms build: consolidate lcms2 dependencies 2022-06-03 10:22:25 +00:00
desktop libweston/desktop: Migrate libweston-desktop/libweston-desktop.h 2022-09-23 13:57:26 +03:00
renderer-gl libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
animation.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
backend.h libweston: rename weston_output_region_from_global 2022-09-23 11:41:59 +00:00
bindings.c Don't send compositor's global key bindings to the input method 2022-02-23 15:40:33 +02:00
clipboard.c libweston: correct argument name in the handler of wl_data_source.accept 2022-04-14 12:05:57 +00:00
color-noop.c libweston: add HDR metadata to weston_output 2022-05-27 10:30:35 +00:00
color.c backend-drm: check for HDR_OUTPUT_METADATA 2022-05-02 12:19:24 +00:00
color.h color: simplify color manager API with weston_output_color_outcome 2022-05-06 09:33:35 +00:00
compositor.c libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
content-protection.c content-protection: Don't leak update timer on shutdown 2021-12-08 13:38:18 +00:00
data-device.c libweston: Add weston_surface_map() wrapper 2022-06-16 12:17:15 +03:00
dbus.c dbus: Don't return value from void function 2019-06-11 11:31:04 +01:00
dbus.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
drm-formats.c drm-formats: add weston_drm_format_array_count_pairs() 2021-11-25 10:47:45 -03:00
git-version.h.meson Add Meson build system 2018-12-09 14:50:54 +02:00
input.c libweston: Refactor point in output test 2022-09-23 12:08:34 +00:00
launcher-impl.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-libseat.c libweston: Enable logging for libseat launcher 2022-03-10 17:13:16 +02:00
launcher-logind.c launcher-logind: Don't check wl->vtnr before returning it. 2022-03-16 13:12:20 +00:00
launcher-util.c launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-util.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
libinput-device.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
libinput-device.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libinput-seat.c libinput-seat: Cascade errors and bail out in case of failure 2021-11-25 10:47:04 +02:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libweston-internal.h libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
linux-dmabuf.c build: fix possible race/error for some backends 2022-06-20 16:14:01 +03:00
linux-dmabuf.h build: fix possible race/error for some backends 2022-06-20 16:14:01 +03:00
linux-explicit-synchronization.c libweston: Advertise minor version 2 of zwp_linux_explicit_synchronization_v1 2019-08-02 15:00:08 +00:00
linux-explicit-synchronization.h libweston: Support zwp_surface_synchronization_v1.set_acquire_fence 2019-02-06 12:21:56 +00:00
linux-sync-file-uapi.h libweston: Introduce an internal linux sync file API 2019-02-06 12:21:56 +00:00
linux-sync-file.c libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
linux-sync-file.h libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
log.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
meson.build libweston/desktop: Migrate libweston-desktop/libweston-desktop.h 2022-09-23 13:57:26 +03:00
noop-renderer.c libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
pixel-formats.c libweston: add pixel_format_get_info_by_pixman() 2022-08-03 14:33:48 +03:00
pixel-formats.h libweston: add pixel_format_get_info_by_pixman() 2022-08-03 14:33:48 +03:00
pixman-renderer.c libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
pixman-renderer.h pixman-renderer: Replace output-create flags with struct 2020-03-20 15:25:24 +00:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
screenshooter.c libweston: use weston_region_global_to_output more often 2022-09-23 11:41:59 +00:00
spring-tool.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
timeline.c libweston: fix typos 2021-02-24 10:01:17 -05:00
timeline.h libweston: move TYPEVERIFY macro into shared 2021-02-17 12:52:33 +00:00
touch-calibration.c libweston: Add weston_surface_map() wrapper 2022-06-16 12:17:15 +03:00
vertex-clipping.c tests: make vertex-clip use WESTON_EXPORT_FOR_TESTS 2022-03-01 13:32:15 +00:00
vertex-clipping.h
weston-direct-display.c libweston: Add weston-direct-display server side implementation 2019-11-18 19:33:09 +02:00
weston-log-file.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-flight-rec.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-internal.h weston-log-wayland: make stream_destroy() use weston_log_subscriber_release() 2020-02-10 10:53:50 +00:00
weston-log-wayland.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
weston-log.c weston-log: Fix documentation for weston_log_subscription_create 2022-07-01 17:20:18 +03:00