aboutsummaryrefslogtreecommitdiff
path: root/backend
AgeCommit message (Collapse)Author
2018-06-30drm backend: overflow fixesDominique Martinet
These operations are done in 32-bit arithmetics before being casted to 64-bit, thus can overflow before the cast. Casting early fixes the issue. Found through static analysis
2018-06-22Merge pull request #992 from emersion/screencontentDrew DeVault
Implement wlr_export_dmabuf_unstable_v1 protocol
2018-06-20FIX: Suprocess loops endlessly when the control socket closes.Tobias Blass
recvmsg(3) returns 0 if the connection partner has shut down its socket. The communicate function considered 0 a successful message, though, and keeps calling recvmsg(3) again and again.
2018-06-17Merge branch 'master' into screencontentemersion
2018-06-14Check for seat0 properlyScott Anderson
2018-06-14Multiseat fixesScott Anderson
2018-06-03backend/wayland: fix keyboard keys not pressed/released when focus changesemersion
2018-05-31Merge branch 'master' into screencontentemersion
2018-05-30Only allow one modifier per DMA-BUF, split attributes struct in render/emersion
2018-05-29backend/drm: support multi-planar DMA-BUFs when exportingemersion
2018-05-29output, backend/drm: add wlr_output_export_dmabufemersion
2018-05-27backend/drm: better connector cleanup, add more logsemersion
2018-05-25Merge pull request #993 from emersion/bind-wl-drm-in-rendereremersion
render: bind wl_drm in renderer
2018-05-25backends: implement custom EGL and renderer initializationIlia Bozhinov
Compositors now have more control over how the backend creates its renderer. Currently all backends create an EGL/GLES2 renderer, so the necessary attributes for creating the context are passed to a user-provided callback function. It is responsible for initializing provided wlr_egl and to return a renderer. On fail, return 0. Fixes #987
2018-05-21render: bind wl_drm in rendereremersion
2018-05-19backend/wayland: fix segfault when destroying backend before starting itemersion
2018-05-19backend: support creating DRM and libinput via WLR_BACKENDSemersion
2018-05-19backend: allow multiple backends in WLR_BACKENDSemersion
2018-05-19backend/multi: disallow multiple renderers at the same timeemersion
2018-05-19backend: add WLR_BACKEND env variableemersion
2018-05-16recalculate cursor projection matrix on set_cursorMarkus Ongyerth
Updates the projection matrix for the cursor plane in the DRM backend, when the cursor is set, so new cursor are uploaded with the correct transformation.
2018-05-15backend/wayland: print output name in window titleemersion
2018-05-12Add support for discrete axis valuesemersion
2018-05-09Fix hardware cursors scale & transformemersion
2018-05-04Merge pull request #936 from emersion/full-hardware-cursorsemersion
output: always use hardware cursors if available
2018-05-03Fix typos in comments and stringsmorganamilo
2018-05-03drm: only disable atomic modesetting when WLR_DRM_NO_ATOMIC == 1Guido Günther
Don't allow any value of the env var to disable atomic mode setting.
2018-05-03backend/wayland: don't transform pointer eventsGuido Günther
We do this in a backend independent way in wlr_cursor now.
2018-05-03backend/x11: don't transform pointer eventsGuido Günther
We do this in a backend independent way in wlr_cursor now.
2018-05-01output: always use hardware cursors if availableemersion
This changes the `wlr_output_impl.set_cursor` function to take a `wlr_texture` instead of a byte buffer. This simplifies the DRM and Wayland backends since they were creating textures from the byte buffer anyway. With this commit, performance should be improved when moving the cursor since outputs don't need to be re-rendered anymore.
2018-04-30backend/{wayland,x11}: fix pointer coords for transformed outputsemersion
2018-04-29backend/x11: add one pointer per outputemersion
2018-04-29backend/wayland: only set one pointer listeneremersion
2018-04-29backend/wayland: create one virtual pointer per outputemersion
2018-04-29input-device: add output_name field, populate it from libinputemersion
2018-04-28backend/x11: correctly destroy input devicesemersion
2018-04-28backend/headless: remove useless destructoremersion
2018-04-28backend/wayland: add proper error handling to wlr_wl_backend_createemersion
2018-04-26Merge pull request #902 from emersion/various-memory-leaksDrew DeVault
Various memory leaks
2018-04-25backend: destroy renderer when destroying backendemersion
2018-04-25Don't use the wlr_ prefix for static functionsemersion
2018-04-25Make sure we don't use others' prefixesemersion
2018-04-25Remove wlr_ prefix from local symbolsemersion
2018-04-25render/egl: allow passing NULL to surface and image destructorsemersion
2018-04-24render/egl: add wlr_egl_destroy_surfaceemersion
2018-04-17Merge pull request #873 from emersion/output-dont-emit-mode-twiceDrew DeVault
output: don't emit the mode event if it hasn't changed
2018-04-18output: don't emit the mode event if it hasn't changedemersion
This also fixes #535.
2018-04-15x11 backend: Expose events mean "needs swap"Uli Schlachter
When the X11 server sends an expose event, that means that "this rectangle here (the event contains x,y,width,height) has undefined contents on your window; please redraw that". This means that we need a swap. However, so far the code does not actually enforce that a swap happens. For example, start rootston, switch to another workspace and then switch back. The rootston window will not be redrawn (before commit 52b058c2a31fb, it would just be fully white; after that commit it will show whatever was visible on the old workspace). This is because the drawing code concludes that nothing needs to be done. However, in fact a swap is necessary. This reverts commit e79d92458852373, because its optimisation is already done now: wlr_output_update_needs_swap() emits a signal, which is handled by wlr_output_damage with a call to wlr_output_schedule_frame(). This function does nothing if a frame is already pending. Thus, the optimisation from commit e79d92458852373 now happens implicitly. Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-04-15x11 backend: Ignore expose if frame is pendingUli Schlachter
When resizing rootston with the mouse, the result is really slow. One can see that rootston needs quite a while for drawing the newly visible area. This is because every single expose event is handled on its own and causes (apparently) a full repaint or at least a swap. This commit improves things by only causing a new frame if none is pending already. With this change, there is almost no delay in rootston drawing the newly visible area. Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-04-15x11 backend: Do not set a back pixel on windowsUli Schlachter
Before this commit, the x11 server would fill any exposed area with white before the wlroots x11 backend got a chance to do anything. This was e.g. visible when running rootston and resizing the window: When the window becomes larger, the new area is filled with black. By just not setting a back pixel value, this commit gets rid of this behaviour. Signed-off-by: Uli Schlachter <psychon@znc.in>