Age | Commit message (Collapse) | Author |
|
Move the global into wlr_gles2_renderer. This removes global state and
allows us to have multiple renderers with different GL loaders.
|
|
|
|
|
|
These functions are unused by compositors (see e.g. [1]) and prevent
wlr_gles2_texture from accessing wlr_gles2_renderer state. This is an
issue for proper teardown [2] and for accessing GLES2 extensions.
[1]: https://github.com/swaywm/wlroots/pull/1962#issuecomment-569511830
[2]: https://github.com/swaywm/wlroots/pull/1962
|
|
|
|
Certain clients require this property to be set for expected behavior.
Most notably, steam client CSD maximize button no longer worked
after unmaximizing once, unless the state was changed by another
method. The state is unset whenever another surface gains focus.
|
|
|
|
|
|
|
|
This avoids uninitialized items and makes it clear where the magic
number 2 is coming from.
|
|
This helps mitigate buffer overflows.
|
|
In case wl_event_loop_add_timer errors out, don't insert the free'd
wlr_xwayland_surface in the list.
Closes: https://github.com/swaywm/wlroots/issues/1721
|
|
|
|
|
|
|
|
It allows a compositor to do things like skip motion events on pointer
constraint unlock.
References: https://github.com/swaywm/sway/pull/5431
|
|
eglGetCurrentDisplay() returns EGL_NO_DISPLAY when there is no context current
and eglMakeCurrent() needs a display argument.
Fixes #2327
|
|
|
|
|
|
|
|
drm_connector_set_cursor wasn't checking the return value of the
drm_surface_make_current call. On failure, this results in a failed
assertion in wlr_renderer_begin (because no rendering context is
current).
|
|
|
|
This was rendered useless in 5cde359.
|
|
Closes #2303
|
|
Hopefully fixes #2056
|
|
This improves the failure cases when incremental transfers fail to
complete successfully for one reason or another.
|
|
This mirrors what the atomic code does in create_mode_blob.
Closes: https://github.com/swaywm/wlroots/issues/2312
|
|
|
|
Because wlr_renderer_blit_dmabuf() undoes y-inversion on the source
buffer, it is incorrect to pass the y-inversion flag of the source
buffer to the user.
|
|
|
|
If Xwayland is restarted, the ready handler assumes there is no xwm instance.
This means all of xwm was leaked on Xwayland restart. This caused compositors
to consume all cpu resources, where time is spent dispatching. Now we destroy
xwm if we get an event mask containing WL_EVENT_HANGUP or WL_EVENT_ERROR.
|
|
The xwayland ready signals are used to do initial setup like starting xwm.
Discarding the signals means that the handler functions will not be called
in the case that Xwayland is restarted and thus, xwm managed clients fail.
Fixes #2174."
|
|
|
|
|
|
wlr_drag sets up keyboard, pointer and touch grabs, which block 'enter'
events (and thus focus changes). For the compositor to be able to update
focus (e.g. to focus the drop target) from the destroy handler, the
grabs must be released before the destroy event is signalled.
|
|
This should match default XCURSORPATH, which is used by libwayland-cursor
and other xcursor loading libraries more closely.
|
|
|
|
|
|
|
|
|
|
Calling wlr_renderer_end after wlr_output_commit would make an
assertion fail.
|
|
3c5dbfd97c77 ("output: make rollback_render mandatory") makes a no-op
output init fail without this function.
|
|
attach_render was called without un-setting the current rendering
context afterwards.
Closes: https://github.com/swaywm/wlroots/issues/2164
|
|
If the output backend provides attach_render, assert it also provides a
way to revert it via rollback_render.
|
|
The output backend API is now mostly state-less thanks to the atomic
hooks (commit and test). There is one exception though: attach_render.
This function makes the rendering context current. However sometimes the
compositor might decide not to render after attach_render (e.g. when
there's nothing new to render to the back buffer). Thus
wlr_output_rollback has been introduced to revert the pending state.
Because the output backend API is mostly state-less, the only thing
wlr_output_impl.rollback needs to do is revert the current rendering
context. Rename the function to rollback_render to make this clear. Add
a check in the common wlr_output code to only call rollback_render when
attach_buffer has been previously called.
On the long term, we'll be able to remove attach_render and
rollback_render together.
|
|
Allows for easier debugging.
|
|
According to the viewporter protocol:
> If the wl_buffer is NULL, the surface has no content and therefore no size.
|
|
During surface finalization we may not have received a new buffer,
resetting width and height in this case is wrong since we display the
old buffer in this case.
|
|
Will fix Firefox bug
https://bugzilla.mozilla.org/show_bug.cgi?id=1643991.
Fixes swaywm/sway#5462.
|
|
Closes: https://github.com/swaywm/wlroots/issues/633
|