2982 Commits (master)

Author SHA1 Message Date
Simon Ser 1968ada213 tearing-control-v1: synchronize state with surface
11 months ago
Simon Ser 0ea6b6e2cc session-lock-v1: use wlr_surface_synced
11 months ago
Simon Ser 90e12fb978 pointer-constraints-v1: use wlr_surface_synced
11 months ago
Simon Ser a6122c3ec5 layer-shell-v1: use wlr_surface_synced
11 months ago
Simon Ser 0e3d2222c2 xdg-decoration: use wlr_surface_synced for toplevel
11 months ago
Simon Ser 96aec06b0a subcompositor: use wlr_surface_synced
11 months ago
Simon Ser 4b3553409a xdg-shell: use wlr_surface_synced for popups
11 months ago
Simon Ser 9201431c29 xdg-shell: use wlr_surface_synced for toplevel
11 months ago
Simon Ser 69d9a4e2cb xdg-shell: use wlr_surface_synced for wlr_xdg_surface
11 months ago
Simon Ser 7e1ae5548c compositor: add wlr_surface_role.client_commit
11 months ago
Simon Ser d847516765 compositor: add wlr_surface_synced
11 months ago
Simon Ser 34d5af4172 compositor: add wlr_surface_state_has_buffer()
11 months ago
Simon Ser 43734f7c62 compositor: fix wlr_surface_has_buffer() doc comment
11 months ago
Simon Ser 66b6c349e7 compositor: remove unnecessary wlr_surface.has_buffer
11 months ago
Simon Ser 85f44f3684 pointer-constraints-v1: add cursor_hint.enabled
11 months ago
Simon Ser fc7a0b93dd backend/drm: add wlr_drm_backend_get_parent()
12 months ago
Roman Gilg 3531007b75 render/pixman: add wlr_pixman_renderer_get_buffer_image()
12 months ago
Simon Ser 1f64f3925c render/gles2: add wlr_gles2_renderer_get_buffer_fbo()
12 months ago
Simon Ser 6a2ff0dffe compositor: drop surface precommit event
12 months ago
Manuel Stoeckl d6859da3b4 render/vulkan: use _SRGB image view when possible
12 months ago
Manuel Stoeckl 566c413d8f render/vulkan: constify vulkan_format_props_find_modifier
12 months ago
Manuel Stoeckl fd4548bb93 render/vulkan: detect which _UNORM formats support _SRGB views
12 months ago
Manuel Stoeckl eab89d6c76 render/vulkan: track and use _UNORM variants of _SRGB formats
12 months ago
Alexander Orzechowski 06d301bf1a wlr_scene: Track output damage separately
12 months ago
Alexander Orzechowski 6e03d3015e swapchain: Add wlr_swapchain_has_buffer
12 months ago
Alexander Orzechowski d3a339a03e renderer: Drop buffer binding
12 months ago
Alexander Orzechowski 3ed1268f64 render: Nuke old read pixels API
12 months ago
Alexander Orzechowski 57b18d26d0 wlr_texture: Introduce wlr_texture_preferred_read_format
12 months ago
Alexander Orzechowski 09f16b2a9c render/vulkan: Implement texture_read_pixels
12 months ago
Alexander Orzechowski e7055b4840 render/gles2: Implement texture_read_pixels
12 months ago
Alexander Orzechowski e85e8bc324 wlr_texture: Introduce wlr_texture_read_pixels_options helpers
12 months ago
Alexander Orzechowski 4c6caa7c48 wlr_texture: Introduce wlr_texture_read_pixels
12 months ago
Simon Ser a165261f7f output: replace wlr_render_timer arg with wlr_buffer_pass_options
12 months ago
Simon Ser e8b187cc92 render/gles2: save/restore context when creating/submitting a render pass
12 months ago
Simon Ser 1208ba6c28 render/gles2: document EGL context gotchas
12 months ago
Simon Ser c31ca04264 output: drop stale references to wlr_output_attach_render()
12 months ago
Simon Ser 876d789ad5 render/gles2: reword wlr_gles2_texture comments
12 months ago
Alexander Orzechowski 9bf51e744e render/gles2: Don't attach texture as buffer addon
12 months ago
Alexander Orzechowski 829e34b305 render/gles2: Don't track image in texture
12 months ago
Alexander Orzechowski cb5f67431b render/gles2: Don't double import dmabuf
12 months ago
Alexander Orzechowski 484e248446 renderer/gles2: Bail rendering to external buffers when binding them
12 months ago
Alexander Orzechowski 0d9cd6932a render/gles2: Lazily create buffer fbo
12 months ago
Simon Ser 67c77fdbdc backend/drm: remove wlr_drm_renderer.backend
12 months ago
Simon Ser f935ff0ef6 backend/drm: move drm_plane_finish_surface() to drm.c
12 months ago
Simon Ser 260dbdf704 backend/drm: split wlr_drm_fb related functions into separate file
12 months ago
Alexander Orzechowski d7ecdad4e0 render: Drop rendering_with_buffer
12 months ago
Alexander Orzechowski 7702a19739 output: Drop back_buffer
12 months ago
Alexander Orzechowski fc6000251c output: Drop wlr_output_attach_render
12 months ago
Alexander Orzechowski 3faf9883dc renderer: Drop wlr_renderer_begin
12 months ago
Simon Ser 2093564616 damage_ring: add wlr_damage_ring_rotate_buffer()
12 months ago
Alexander Orzechowski 9118226634 render/gles2: Don't track has_alpha in pixel_format
12 months ago
Simon Ser 9a0a4ce221 render/vulkan: drop current_command_buffer
12 months ago
Kirill Primak 4990ed99eb backend/x11: don't send ConfigureRequest with the same size
1 year ago
Kirill Primak 87346b3393 Revert "subcompositor: emit new_subsurface immediately"
1 year ago
Simon Ser 36cc698bc5 matrix: deprecate
1 year ago
Kirill Primak 7661ab2bf1 compositor: deprecate wlr/types/wlr_region.h
1 year ago
Alexander Orzechowski 26158d0718 output: Drop transform matrix
1 year ago
Kirill Primak e841366068 layer-shell: emit new_surface event at the proper time
1 year ago
Kirill Primak c85838892d xdg-{shell,decoration}: improve events
1 year ago
Simon Ser d61ec694b3 output: take wl_event_loop in wlr_output_init()
1 year ago
Simon Ser 5717e27c06 output: take wl_display in wlr_output_create_global()
1 year ago
Simon Ser 6a7463bb8e output-layout: take wl_display in constructor
1 year ago
Simon Ser 63792b38e4 backend/session: take wl_event_loop instead of wl_display
1 year ago
Simon Ser 2eb225236e util/transform: add wlr_output_transform_coords()
1 year ago
Simon Ser 9e702e9cfe util/transform: move over wl_output_transform helpers
1 year ago
Manuel Stoeckl a3d22dbe97 xdg-toplevel: check that title provided actually is UTF-8
1 year ago
Simon Ser 41494244df render: drop legacy rendering API
1 year ago
Simon Ser 40633ae7fd render: drop legacy render pass
1 year ago
Kirill Primak 5dd614b9ad input-inhibitor: drop
1 year ago
Simon Ser fe6a432299 linux-dmabuf-v1: skip import check on split render/display SoCs
1 year ago
Simon Ser 8c44e86077 backend/drm: add wlr_drm_connector_state.nonblock
1 year ago
Alexander Orzechowski b06d58fa8b backend/drm: Destroy page flips on backend destroy
1 year ago
Alexander Orzechowski 3aed24b8d4 backend/drm: Track page flips in list
1 year ago
Simon Ser 3b53d1cbf1 backend/drm: introduce page-flip tracking struct
1 year ago
Kirill Primak 86b2cac921 Add missing type declarations in headers
1 year ago
Alexander Orzechowski 3d3cca9164 wlr_scene: Introduce wlr_scene_subsurface_tree_set_clip
1 year ago
Alexander Orzechowski d1ddd4ca3a wlr_scene_surface: Introduce scene_surface_set_clip
1 year ago
Alexander Orzechowski 33b437d574 wlr_scene: Amend scene_buffer.point_accepts_input to take coordinate pointers
1 year ago
Simon Ser 319e4125ab xdg-shell: add wlr_xdg_{toplevel,popup}_try_from_wlr_surface()
1 year ago
Simon Ser 1c24b1182b backend: drop wlr_backend_get_presentation_clock()
1 year ago
John Lindgren af165acb42 xwayland: add wlr_xwayland_set_workareas()
1 year ago
Simon Ser 2410710a0f util/token: add docs
1 year ago
Simon Ser 55be74ad86 util/token: rename TOKEN_STRLEN to TOKEN_SIZE
1 year ago
Kirill Primak d253d70786 xdg-shell: use wlr_surface.unmap_commit
1 year ago
Kirill Primak d8515b3446 layer-shell: track surface init state
1 year ago
Kirill Primak 4d2e310122 compositor: add wlr_surface.unmap_commit
1 year ago
eri bfc42e0f62
linux_dmabuf_v1: convert to try_from
1 year ago
eri c46d3da976
drm: convert to try_from
1 year ago
eri 8ccbe45143
buffer: convert to try_from
1 year ago
John Lindgren 6114dd6a83 xwayland: stop translating _NET_WM_STRUT_PARTIAL coordinates
1 year ago
Simon Ser e519635cc2 xwayland: add wlr_xwayland_create_with_server()
1 year ago
Simon Ser bdcf997a89 xwayland/server: add ready flag
1 year ago
Simon Ser ccb153f024 security-context-v1: add commit event
1 year ago
Simon Ser c58deb7a7d security-context-v1: new protocol implementation
1 year ago
Kirill Primak 078540e086 xdg-shell: fix wlr_xdg_popup_destroy() docs
1 year ago
Kenny Levinsen 2cf78f4c5b output: allow_artifacts -> allow_reconfiguration
1 year ago
Alexander Orzechowski e1e911d425 scene_output_layout: Don't destroy output when output layout is destroyed
1 year ago
Alexander Orzechowski 5fb0007e02 output_event_commit: Remove committed and buffer
1 year ago
Alexander Orzechowski 03e240a7f2 wlr_output: Add applied state to commit event
1 year ago
Kirill Primak 86c30b8715 seat: remove wlr_seat_validate_grab_serial()
1 year ago
JiDe Zhang ca19014af0 xwayland: fix double free wlr_xwayland_shell_v1
1 year ago
Simon Ser e58c7bb792 render/drm_format_set: use published kernel doc URL
1 year ago
Manuel Stoeckl e0adaaffb6 render/vulkan: constrain blend to output subpass to redrawn region
1 year ago
Manuel Stoeckl d180f4d9b3 util: add struct to track union of rectangles
1 year ago
Simon Zeni a289f812d6 drop KDE idle protocol support
1 year ago
Simon Ser ddfec31b4c xdg-shell: document wlr_xdg_surface's initialized & initial_commit
1 year ago
Kirill Primak a09d649439 docs: replace the less commonly used "::" with "."
1 year ago
Kirill Primak 0fdbdc36c0 xdg-surface: fix init state flow
1 year ago
Rose Hudson 83af3202f9 output: defer fake present events until after commit
1 year ago
vaxerski c2aa7fd965 backend/drm: Add async page flip support to legacy
1 year ago
vaxerski 5dec1c8bcb staging/tearing-control: Add protocol support
1 year ago
John Lindgren 1a731596c5 wlr_scene: clarify wlr_scene_output ownership semantics
1 year ago
Alexander Orzechowski 5299d973d5 render/pass: Introduce wlr_render_rect_options_get_box
1 year ago
Simon Ser 65bbbbbf0c render/vulkan: de-duplicate VkImageUsageFlags
1 year ago
Kirill Primak 4565b07484 Unify signal data docs
1 year ago
Manuel Stoeckl a94168b5fe render: ensure wlr_render_rect_options->box is nonempty
1 year ago
Simon Ser e5fc8cd4c7 output: trigger frame/present events on all commits on enabled output
1 year ago
Rose Hudson f5917f0247 scene_output_layout: make output adding explicit
1 year ago
Rose Hudson 91f813ffb7 output_layout: return wlr_output_layout_output when adding output
1 year ago
Simon Ser 72787db98a compositor: drop wlr_surface_destroy_role_object()
1 year ago
Kirill Primak bd5c4f4a4a xdg-shell: rework roles
1 year ago
Kirill Primak f0cc712af1 xdg-shell: don't return anything from create_xdg_surface()
1 year ago
Simon Ser 9b8cd1f5d6 buffer: make wlr_client_buffer functions private
1 year ago
Leonardo Hernández Hernández bdc34401ba
xdg-decoration: store an xdg_toplevel instead of xdg_surface
1 year ago
Simon Ser 22b6581a18 backend/wayland: wait for xdg_surface.configure explicitly
1 year ago
Simon Ser d3d3e19ffd render: split render pass API into separate header
1 year ago
Alexander Orzechowski 568b1943b9 wlr_output: Nuke wlr_output_update_enabled
1 year ago
Alexander Orzechowski f1ba70ffa6 wlr_output: Make wlr_output_update_{custom,}_mode private
1 year ago
Alexander Orzechowski 6cda3e251c output: Add initialization state to wlr_output_init
1 year ago
Simon Ser 8678633fc9 backend/wayland: add wlr_wl_output_create_from_surface()
1 year ago
Simon Ser 4f88886199 backend/wayland: tag wl_surface
1 year ago
Simon Ser dd24991c9e backend/wayland: take existing wl_display in wlr_wl_backend_create()
1 year ago
Simon Ser 77dc1c28aa xwayland: drop wlr_xwayland_surface.events.set_pid
1 year ago
Kirill Primak 42a5b6f62a compositor: add "mapped" flag doc
1 year ago
Kirill Primak 529f1b82ee xwayland/shell: don't listen to wlr_surface.events.destroy
1 year ago
rewine 2f859f5bec
wlr_output: add comments for signal parameters
1 year ago
Leonardo Hernández Hernández e8d545a977
xdg-shell: add support for v6
1 year ago
Simon Ser 04e4e06986 cursor-shape-v1: new protocol implementation
1 year ago
rewine f3cf830e9a wlr_idle_inhibit_manager_v1: add comments for signal parameters
1 year ago
Kirill Primak 7791ffe058 data-device: remove undefined grab interface decls
1 year ago
Kirill Primak c6603288fb xdg-shell: update stale docs
1 year ago
Simon Ser 000081db19 cursor, output: apply viewport to cursor
1 year ago
John Lindgren 657ca2205f wlr_gamma_control: add missing forward declarations
1 year ago
Simon Ser 67447d6cb4 presentation-time: add separate helper for zero-copy
1 year ago
Simon Ser fe84bfc8d9 scene: add wlr_scene_output_sample_event
1 year ago
Simon Ser 88942d43fd scene: rename output_present event to output_sample
1 year ago
Simon Ser 4811d9fb18 render: document wlr_buffer_pass_options.timer
1 year ago
Simon Ser b7dca21c2b render: constify struct wlr_buffer_pass_options
1 year ago
Rose Hudson 214df8eda0 scene_output: optionally record and report timings
1 year ago
Simon Ser 5bb0057794 xwayland: document event data
1 year ago
Simon Ser 19ba3f0c2a xwayland: drop struct wlr_xwayland_move_event
1 year ago
Simon Ser 972c5f0c11 xwayland: document associate/dissociate events
1 year ago
Simon Ser 6f8287128b output: drop wlr_output_cursor_set_image()
1 year ago
Simon Ser 0fc532f8de cursor: remove wlr_cursor_set_image()
1 year ago
Simon Ser 18bafbfc57 xcursor-manager: drop wlr_xcursor_manager_set_cursor_image()
1 year ago
Simon Ser 71c87ff4b8 cursor: add wlr_cursor_set_buffer()
1 year ago
Simon Ser aa1055134d backend/drm: handle output layer damage
1 year ago
Simon Ser 13f096b0ac output-layer: add wlr_output_layer_state.damage
1 year ago
Alexander Orzechowski c68c9f1685 wlr_scene_buffer: Publicize some state
1 year ago
Simon Ser be05097968 output: add wlr_output_state_init()
1 year ago
Simon Ser 8a5b5e6f28 compositor: listen to role_resource destroy signal
1 year ago
Simon Ser 89cb484220 compositor: replace role_data with role_resource
1 year ago
Kirill Primak fc9b58e84d compositor: don't call role unmap hook without an object
1 year ago
Kirill Primak 0f67580aab compositor: introduce wlr_surface_set_role_object()
1 year ago
Alexander Orzechowski 4b7c526578 output: Introduce wlr_output_state_copy()
1 year ago
Simon Ser b625a13156 output: attach buffer to state in output_ensure_buffer()
1 year ago
Alexander Orzechowski 2ac31fc630 wlr_scene: Introduce wlr_scene_buffer_set_filter_mode
1 year ago
Alexander Orzechowski 2044cc2311 render: Introduce wlr_render_texture_options.blend_mode
1 year ago
Alexander Orzechowski 6bd44c4fcd renderer: Introduce wlr_scale_filter_mode
1 year ago
Alexander Orzechowski 3ee0f52e09 render/vulkan: Dynamically create texture views
1 year ago
Alexander Orzechowski 8a387b5558 render/vulkan: Dynamically create pipeline layouts
1 year ago
Alexander Orzechowski 3623005858 render/vulkan/pipeline_key: Add blending
1 year ago
Alexander Orzechowski 9d31372930 render/vulkan: Handle quad pipeline through generic pipeline path
1 year ago
Alexander Orzechowski 97fdd57eb2 render/vulkan: Dynamically handle pipeline creation for textures
1 year ago
Simon Ser 220402b717 cursor: add wlr_cursor_unset_image()
1 year ago
Simon Ser da04b066ea cursor: add wlr_cursor_set_xcursor()
1 year ago
Alexander Orzechowski 7ce9459715 output: add documentation for wlr_output_state
1 year ago
Kirill Primak 753f3cc4fa compositor: add wlr_surface_role.no_object
1 year ago
Simon Ser 670915eeea output: add wlr_output_state_set_layers()
1 year ago
Simon Ser 4339c37f99 backend/drm: clip FB damage
1 year ago
Kirill Primak 96f1fdd113 seat: remove a TODO comment about simulating keyboard events
1 year ago
Alexander Orzechowski 05dd08afe5 scene: introduce wlr_scene_output_build_state()
1 year ago
Alexander Orzechowski ae7bad86dd output: introduce wlr_output_state_set_damage()
1 year ago
Simon Ser 36376e2ddf gamma-control-v1: stop applying gamma LUTs implicitly
1 year ago
Simon Ser ec9b79ef19 gamma-control-v1: add wlr_gamma_control_v1_send_failed_and_destroy()
1 year ago
Simon Ser 026fc6eda0 gamma-control-v1: add wlr_gamma_control_v1_apply()
1 year ago
Simon Ser 5d5cf34486 output: add wlr_output_state_set_gamma_lut()
1 year ago
Simon Ser 6e635d2fd3 gamma-control-v1: add wlr_gamma_control_manager_v1_get_control()
1 year ago
Simon Ser 70c1a57248 gamma-control-v1: introduce set_gamma event
1 year ago
Kirill Primak 1bf245e0fe compositor: improve role-specific documentation
1 year ago
Kirill Primak 24a479a501 drag: don't set icon's role_data
1 year ago
Simon Ser 544c0622fa presentation-time: constify wlr_presentation_feedback_send_presented()
1 year ago
Kirill Primak 4c9eb6839d compositor: add a note about ignored input regions
1 year ago
Kirill Primak 3dc646ea88 Add some missing includes/declarations
1 year ago
Rose Hudson 45ca284eee render/gles2: implement timer API
1 year ago
Rose Hudson 9e8947e4d5 add render timer API
1 year ago
Rose Hudson bd834fe8d1 util: add timespec_to_nsec
1 year ago
Simon Ser 4c5eadecce backend/wayland: add scaling support for output layers
1 year ago
Kirill Primak 49e9be62ae subcompositor: consider mapping on parent map
1 year ago
Simon Ser 52b93f7eb4 output/cursor: fix scale and transform
1 year ago
Kirill Primak e75407fd4d session-lock: remove unused wlr_session_lock_surface_v1.events.map
1 year ago
Kirill Primak d086ee1b9e compositor: remove wlr_surface_role.precommit
1 year ago
Kirill Primak 26676c8c07 xwm: use unified map logic
1 year ago
Kirill Primak af4181f388 drag: use unified map logic
1 year ago
Kirill Primak 743da5c0ae input-method: use unified map logic
1 year ago
Kirill Primak 229abfae0c session-lock: use unified map logic
1 year ago
Kirill Primak c63f3659c5 layer-shell: use unified map logic
1 year ago
Kirill Primak b0437fc416 xdg-shell: use unified map logic
1 year ago
Kirill Primak c590bb600f subcompositor: use unified map logic
1 year ago
Kirill Primak 6b40e08148 compositor: introduce unified map logic
1 year ago
Kirill Primak 75d03f2b68 xwm: introduce associate/dissociate events
1 year ago
Simon Ser 0ba3ea3bcd render/vulkan: improve error handling in render_pass_submit()
1 year ago
Simon Ser 30aca4df0d backend/drm: introduce wlr_drm_mode_get_info()
1 year ago
Simon Ser 3f0487d310 backend/drm: move forward decl up for drmModeModeInfo
2 years ago
Simon Ser 93a6acae9f output: add wlr_output_begin_render_pass()
2 years ago
Alexander Orzechowski 95062904c7 wlr_scene: Introduce wlr_scene_buffer_set_opacity
2 years ago
Alexander Orzechowski 2346b90a9f wlr_scene: Make scene_rect_from_node public
2 years ago
Alexander Orzechowski 88f80c4a7c wlr_scene: Make scene_tree_from_node public
2 years ago
Alexander Orzechowski 61c157269e wlr_scene: Add documentation to wlr_scene_buffer_from_node
2 years ago
Simon Ser e07c77f846 render/vulkan: implement render pass API
2 years ago
Alexander Orzechowski 8af00d5534 renderer/gles2: Implement render pass interface
2 years ago
Alexander Orzechowski b1d26ed47b renderer/gles2: Compute texture coordinates based off of vertex positions
2 years ago
Simon Ser f60b367db7 render/vulkan: drop unused vulkan_has_extension()
2 years ago
Simon Ser 42eec38ab6 render/vulkan: drop unused vulkan_change_layout_queue()
2 years ago
Simon Ser c7ae9dfaf8 render/vulkan: generalize YCbCr format support
2 years ago
Simon Ser 5ea0eb3468 render/vulkan: add vulkan_get_pipeline_layout()
2 years ago
Simon Ser fd38761676 render/vulkan: introduce struct wlr_vk_pipeline_layout
2 years ago
Kirill Primak 5f4a35290d util/box: always treat NULL boxes as empty
2 years ago
Simon Ser 96f3f3c92e render/pixel-format: add support for block-based formats
2 years ago
Simon Ser 78a1ac540e render/pixel-format: add docs
2 years ago
Manuel Stoeckl 10dd416694 render/vulkan: allow rendering to non-8-bit buffers
2 years ago
Alexander Orzechowski 300bd80772 wlr_drm_format_set: Store formats on array
2 years ago
Alexander Orzechowski 90d08f8f1c wlr_drm_format: Rework wlr_drm_format_intersect
2 years ago
Alexander Orzechowski 340700cb70 wlr_drm_format: Change wlr_drm_format_dup to copy
2 years ago
Alexander Orzechowski 099a147439 wlr_drm_format: Change wlr_drm_format_create to init
2 years ago
Alexander Orzechowski e427e019c4 wlr_drm_format: Don't take double pointer in wlr_drm_format_add
2 years ago
Alexander Orzechowski e6879616e7 wlr_drm_format: Make structure constant length
2 years ago
Alexander Orzechowski 84d07e7119 wlr_drm_format_set: Remove redundant text in comment for finish function
2 years ago
Alexander Orzechowski b45396c790 wlr_drm_format: Introduce drm_format_finish
2 years ago
Simon Ser 2a1234a820 wlr-export-dmabuf-v1: handle output destroy
2 years ago
Simon Ser d933f5204b output: drop wlr_output_cursor_set_surface
2 years ago
Simon Ser b64e7e88bf output: add output_cursor_set_texture()
2 years ago
Simon Ser b03f71fe5f render/vulkan: add support for NV12
2 years ago
Alexander Orzechowski 5adb1be3a7 drm_format_set_intersect: Require initialized dst and remove assert
2 years ago
Alexander Orzechowski 1ee75786b4 drm_format_set_union: Require initialized dst and remove assert
2 years ago
novenary d7917d2076 xwayland: allow compositor to set withdrawn state
2 years ago
Alexander Orzechowski 394accbe4a wlr_compositer: Keep track if surface has committed a buffer before.
2 years ago
Alexander Orzechowski 2dd9549085 drm_format_set: Mark as unstable
2 years ago
Austin Shafer ec37d55a5e Add union function for format sets
2 years ago
Simon Ser a93fc8afd6 render: introduce blend mode
2 years ago