This library provides a "Mouse, Keyboard, and Screen" to QEMU using the D-Bus device support in QEMU and GTK 4.
Go to file
Bilal Elmoussaoui c259212be5 dmabuf: Properly propagate damage area
The current approach makes use of
- A tiled rendering to work around gdk_texture_diff only doing pointer
comparaison
- Assumes that we would only recieve a scanout cmd followed by multiple
flush ones

In reality, with virtio-gpu at least, the scanout cmd is always
submitted followed by a flush one containing the damaged region.

With the assumption currently made, we end up creating a new paintable
for every scanout cmd causing a full redraw instead
of only redrawing the damaged areas.
Isntead we create the paintable once and call import whenever
we receive a flush cmd (UpdateDMABUF) so we can properly
pass the damage area when creating a GdkGLTexture making
the tiled rendering no longer needed.
2023-05-17 13:08:37 -07:00
data/icons data: provide a symbolic and an emblem 2023-03-09 12:27:45 +01:00
docs build: Add gi-docgen based docs option 2023-03-30 13:15:00 +02:00
lib dmabuf: Properly propagate damage area 2023-05-17 13:08:37 -07:00
subprojects build: Depend on gtk main for GdkGLTextureBuilder 2023-05-17 13:08:31 -07:00
tools tools/mks: Cosmetic changes 2023-05-09 18:58:16 +00:00
.editorconfig initial commit 2023-02-08 18:06:08 -08:00
.gitignore build: Depend on gtk main for GdkGLTextureBuilder 2023-05-17 13:08:31 -07:00
.gitlab-ci.yml build: Depend on gtk main for GdkGLTextureBuilder 2023-05-17 13:08:31 -07:00
COPYING initial commit 2023-02-08 18:06:08 -08:00
meson_options.txt build: allow -Dtracing for more logging information 2023-04-20 14:00:04 -07:00
meson.build build: Depend on gtk main for GdkGLTextureBuilder 2023-05-17 13:08:31 -07:00
org.gnome.libmks.mks.json build: add flatpak manifest to testing in Builder 2023-02-17 16:28:25 -08:00
README.md Merge branch 'bilelmoussaoui-main-patch-78694' into 'main' 2023-04-20 20:42:27 +00:00

libmks

This library provides a "Mouse, Keyboard, and Screen" to Qemu using the D-Bus device support in Qemu and GTK 4.

Documentation

Nightly documentation can be found here.

Testing

By default, Qemu will connect to your user session D-Bus if you do not provide an address for -display dbus. Therefore, it is pretty easy to test things by running Qemu manually and then connecting with the test program ./tools/mks.

qemu-img create -f qcow2 fedora.img 30G
qemu-system-x86_64 \
    -enable-kvm \
    -cpu host \
    -device virtio-vga-gl,xres=1920,yres=1080 \
    -m 8G \
    -smp 4 \
    -display dbus,gl=on \
    -cdrom Fedora-Workstation.iso \
    -hda fedora.img \
    -boot d

and then to run the test widget

meson setup build
cd build
ninja
./tools/mks