Bug 377998 - x11 plugin needs porting/rewriting to xcb
Summary: x11 plugin needs porting/rewriting to xcb
Status: RESOLVED FIXED
Alias: None
Product: krfb
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: George Goldberg
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-23 23:24 UTC by Albert Astals Cid
Modified: 2017-06-15 21:22 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Albert Astals Cid 2017-03-23 23:24:13 UTC
It's broken as it is right now and we're using the less optimal Qt plugin
Comment 1 Albert Astals Cid 2017-03-23 23:25:02 UTC
Alexei kind of volunteered to try to fix it :)
Comment 2 Alexey Min 2017-04-21 19:56:03 UTC
(In reply to Albert Astals Cid from comment #1)
> Alexei kind of volunteered to try to fix it :)

https://phabricator.kde.org/D5211

I hope it at least get a chance to get a review till Applications 17.08. A month has passed, I'm starting to forget what I did there...

Anything I can do to help?
Comment 3 Albert Astals Cid 2017-04-25 20:07:09 UTC
Yes i know, it's on my todo list, just wasn't very prioritary since it came in too late for 17.04, i'll get to it "soon" (TM) if nobody beats me to it.
Comment 4 Albert Astals Cid 2017-06-15 21:22:08 UTC
Git commit b2cb3e8204aa86a11f9f597f2a5d8a7a22f387fc by Albert Astals Cid, on behalf of Alexey Min.
Committed on 15/06/2017 at 21:21.
Pushed by aacid into branch 'master'.

Implement XCB framebuffer plugin (port from x11)

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.

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

M  +11   -10   CMakeLists.txt
M  +3    -1    framebuffers/CMakeLists.txt
A  +28   -0    framebuffers/xcb/CMakeLists.txt
A  +107  -0    framebuffers/xcb/krfb_framebuffer_xcb.desktop
A  +81   -0    framebuffers/xcb/krfb_framebuffer_xcb.json
A  +685  -0    framebuffers/xcb/xcb_framebuffer.cpp     [License: GPL (v2+)]
A  +48   -0    framebuffers/xcb/xcb_framebuffer.h     [License: GPL (v2+)]
A  +46   -0    framebuffers/xcb/xcb_framebufferplugin.cpp     [License: GPL (v2+)]
A  +45   -0    framebuffers/xcb/xcb_framebufferplugin.h     [License: GPL (v2+)]
M  +1    -1    krfb/krfb.kcfg

https://commits.kde.org/krfb/b2cb3e8204aa86a11f9f597f2a5d8a7a22f387fc