Previously used x11 plugin does not compile with Qt5, because Qt5 does
not use Xlib, it uses xcb. Rewrite screen capture plugin from Xlib to
xcb.
I made xcb libs compile required dependency, but availability of X
shared memory extension is checked at runtime. It is used to effectively
get image pixels data, instead of transfering 8Mb over the wire. Xdamage
is used to limit image getting operations only within actually changed
rectangles of screen.
BUG: 377998
Tested on single-monitor system and dual-monitor, where primary monitor
does not start at (0,0) coordinate. Image transfer works fine.
Dual-monitor only has problems with receiving mouse cursor position and
clicks, but this should be fixed outside of framebuffer plugin.
Differential Revision: https://phabricator.kde.org/D5211
- required for upcoming Git migration with repository per app / lib
- if nobody complains, I will backport it in a few days to the 4.10 branch also
- I will update trunk/l10n-kde4/scripts/documentation_paths in my next commit
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1340343
- full module build is still possible
- required for upcoming Git migration with repository per app / lib
- if nobody complains, I will backport it in a few days to the 4.10 branch also
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1340341
This is currently required to be able to split off the event processing code
in small functions so that it is possible to integrate libvncserver's event
loop code with Qt's event loop properly. This is also what vino does; the whole
event loop integration idea was taken from there.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1195283
This means that theoretically we can have more than one actual rfb server running at once.
In practice, some work is still needed like making KrfbServer and ConnectionController into abstract base classes
that the normal rfb server and the tubes rfb server can inherit from.
The configuration also needs fixing to apply to individual servers, not all of them.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1189032
It is meant to be used only by plugins built together with krfb, and does not make any binary compatability at all.
It should not be linked against by anything outside of the krfb source tree, so we definitely shouldn't be installing headers.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1053592
- Currently there is no configuration UI, so you have to edit the krfbrc by hand to select the framebuffer plugin to use. This will be fixed later.
- Framebuffers are shared, so that when krfb supports having mutliple servers running, the framebuffer can be shared between them (when appropriate) for better performance.
- Currently defaults to the X11 framebuffer, since this is what was hardcoded before.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1027330
Uses less cpu than Qt approach, but visually sucks. I suspect there are too many updates sent to the client, I need to group the rects and create a bigger one when sending the event to the client.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=653073