Leonardo Hernández Hernández
4de9c9c47f
scene: send wl_surface.preferred_buffer_scale
1 year ago
Simon Ser
37ef9d7356
backend/drm: stop checking for wlr_client_buffer
...
wlr_client_buffer is a bad indicator for direct scan-out.
Compositors might use the underlying wlr_buffer instead.
1 year ago
Simon Ser
67447d6cb4
presentation-time: add separate helper for zero-copy
...
The backend is not able to tell whether a surface is being
presented via direct scan-out or not. The backend will set
ZERO_COPY if the buffer submitted via the output commit was
presented in a zero-copy fashion, but will no know whether the
buffer comes from the compositor or the client.
1 year ago
Simon Ser
fe84bfc8d9
scene: add wlr_scene_output_sample_event
...
This contains the output and a bool indicating direct scan-out.
1 year ago
Simon Ser
88942d43fd
scene: rename output_present event to output_sample
...
Using "present" is confusing here: the event is emitted when the
buffer is being sampled to be displayed on an output, not when it's
being presented on-screen.
Rename to match the presentation-time terminology.
1 year ago
Alexander Orzechowski
d8585d661c
wlr_scene: Fix buffer damage for output state
...
We would transform the damage based on output state which might be
out of date.
1 year ago
Brett Ernst
cb5d9abf10
add minimalist cairo example
1 year ago
Simon Ser
1205f03ec9
render/gles2: wrap timer setup in push_gles2_debug()
...
With this, errors should be properly wrapped in the debug scope.
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
...
Let's not allow renderer implementations to mutate the passed in
options.
1 year ago
Simon Ser
fe06e5f49a
Use wl_container_of() instead of casts
...
This slightly improves type safety.
The culprits were found with:
git grep -E '\([a-z0-9_ ]+ \*\)\W?[a-z]'
1 year ago
Simon Ser
c2c536de03
render/gles2: drop unnecessary cast
...
We can just refer to the struct field here.
1 year ago
Rose Hudson
214df8eda0
scene_output: optionally record and report timings
1 year ago
Kirill Primak
f4eaab12a0
input-method-v2: don't remove inert role resource
1 year ago
Kirill Primak
fce7cb249f
xwayland-shell: don't remove inert role resource
1 year ago
Kirill Primak
dc7686c114
session-lock: don't remove inert role resource
1 year ago
Kirill Primak
7f2ed1e62c
layer-shell: don't remove inert role resource
1 year ago
Kirill Primak
7d176b6237
subcompositor: don't remove inert role resource
...
Now that role objects are stored as resources, we can distinguish
the inert object case from it being destroyed by the client:
- When the resource is destroyed by the client, role_resource == NULL
- When the resource is made inert, role_resource != NULL but its
user_data is NULL
1 year ago
Simon Ser
27edd024f8
xwayland: pass NULL as event data
...
This is more extensible: in the future we can introduce event
structs if we need to.
1 year ago
Simon Ser
76e2a74282
xwayland: use initializer for struct wlr_xwayland_resize_event
...
Ensures there are no fields with uninitialized memory.
Also remove an outdated TODO: Xwayland only supports a single seat.
1 year ago
Simon Ser
5bb0057794
xwayland: document event data
1 year ago
Simon Ser
19ba3f0c2a
xwayland: drop struct wlr_xwayland_move_event
...
This only contains the xsurface, which isn't particularly useful.
1 year ago
Simon Ser
972c5f0c11
xwayland: document associate/dissociate events
1 year ago
Simon Ser
7a9f8d8d6b
Use struct initializers instead of memset()
...
This is a bit more type-safe.
1 year ago
Kirill Primak
4966857f21
viewporter: check for an existing viewport
1 year ago
Simon Ser
77d5631e42
license: add copyright line for all contributors
...
Recently it has come up that someone wants to re-use part of
wlroots in their own project. The standard procedure is to copy
over the license text and copyright lines.
Let's make it clear that the wlroots copyright is held by all
wlroots contributors, and that the license file comes from the
wlroots project.
See [1] for more details.
[1]: https://www.linuxfoundation.org/blog/blog/copyright-notices-in-open-source-software-projects
2 years ago
Simon Ser
6f8287128b
output: drop wlr_output_cursor_set_image()
...
This function takes a pointer to memory with a hardcoded format
and many parameters to describe the pixel buffer.
wlr_output_cursor_set_buffer() can be used instead.
2 years ago
Simon Ser
f8d70fbece
cursor: remove usage of wlr_output_cursor_set_image()
...
Stop using wlr_output_cursor_set_image() because it's getting
dropped. Instead, use wlr_output_cursor_set_buffer().
This mirrors what wlr_output_cursor_set_image() is doing
under-the-hood.
2 years ago
Simon Ser
0fc532f8de
cursor: remove wlr_cursor_set_image()
...
Superseded by wlr_cursor_set_buffer().
2 years ago
Simon Ser
18bafbfc57
xcursor-manager: drop wlr_xcursor_manager_set_cursor_image()
2 years ago
Simon Ser
71c87ff4b8
cursor: add wlr_cursor_set_buffer()
...
A saner replacement for wlr_cursor_set_image():
- Takes a wlr_buffer instead of numerous parameters and a hardcoded
format.
- The scale is not used to filter outputs.
- A ref to the buffer is kept to apply it to new outputs.
2 years ago
Simon Ser
bb91787b5f
cursor: stop using set_image() in wlr_cursor_unset_image()
...
set_image() will go away.
2 years ago
Manuel Stoeckl
bbd53b3b46
screencopy-v1: fix logical->physical region transform
...
This now matches the transformations used for e.g. cursor scissor
regions and damage.
2 years ago
Alexander Orzechowski
57a0313779
wlr_scene: Don't recompute node location during rendering
...
We already compute it during the render list creation, we should cache
it and re-use the value.
2 years ago
Alexander Orzechowski
48f2a7a3a1
wlr_scene: Simplify direct scanout handling
...
By adding a sent_feedback bool into the list entry that we can mutate
we no longer need to maintain this `sent_direct_scanout_feedback` variable.
sent_feedback will also be useful for output layers.
2 years ago
Alexander Orzechowski
9613b3bc8a
wlr_scene: Wrap render_list nodes in struct
...
We will be able to add more state here
2 years ago
Simon Ser
9c2c906518
examples/pointer: use wlr_cursor_set_xcursor()
2 years ago
Simon Ser
53b07b5b72
cursor: set image for new outputs
...
When an output is added to wlr_cursor, update its cursor image.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2119
2 years ago
Simon Ser
d5581e42d4
cursor: add cursor_update_outputs()
...
Sets the cursor image for each output depending on the wlr_cursor
state.
2 years ago
Simon Ser
d1d6cd9008
cursor: keep track of XCursor manager and name
...
Will be useful to apply the current cursor to new outputs.
2 years ago
Simon Ser
69c44de22f
cursor: track surface globally, instead of per-output
...
Most of the surface-related state does not need to be per-output.
Move it to wlr_cursor_state.
2 years ago
Simon Ser
c46fabe45c
cursor: use wlr_cursor_unset_image() in wlr_cursor_set_surface()
2 years ago
Simon Ser
f0b8a68654
cursor: store wlr_cursor inline in wlr_cursor_state
...
Removes one allocation, makes this a bit more consistent with the
rest of wlroots.
2 years ago
Clayton Craft
aca48124ad
backend/drm: use panel_orientation if it is set
...
This fixes an issue where the panel_orientation parameter was set but wlroots was ignoring it and
returning OUTPUT_TRANSFORM_NORMAL.
Fixes 2e12de96
2 years ago
Simon Ser
aa1055134d
backend/drm: handle output layer damage
2 years ago
Simon Ser
7811f22250
backend/wayland: handle output layer damage
2 years ago
Simon Ser
13f096b0ac
output-layer: add wlr_output_layer_state.damage
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3593
2 years ago
Simon Ser
6eff8651d3
contributing: add instructions for forking
2 years ago
Evyatar Stalinsky
21e96c459d
util/log: fix buffer overflow
2 years ago
Alexander Orzechowski
c68c9f1685
wlr_scene_buffer: Publicize some state
...
The sway scene port relies on this to create a copy of the buffer for
saved surface purposes.
2 years ago