KWin/Xcb
XCB Porting
In order to go to Qt 5 KWin needs to be ported from XLib to XCB. Although it's technically not needed to port everything, we want to port all of KWin over to XCB as XCB has many advantages over XLib, most important that it is an async API.
This document is used to keep track of various parts which need to be ported and to organize an collaborative approach towards the porting. If you are interested in working on one of the parts just add yourself to the specific item.
XRender
One of KWin's compositing backends is based on XRender. The porting has a low priority for the core KWin team as the default compositing backend is OpenGL and it is possible to disable building KWin with XRender support. Nevertheless it should be ported as users of the XRender compositor would benefit from a port to xcb. XRender is also used in some effects directly and this is actually a good task to work on as the code areas are small and easy to verify.
Before starting to work on it, it might be a good idea to have a look at the X Rendering Extension Protocol Specification as the API is derived from the protocol description. There is also a render-util library available for which unfortunately the API documentation is lacking. The header file is xcb/xcb_renderutil.h.
Status | Component | Summary | Claimed By |
---|---|---|---|
TODO | MagnifierEffect | ||
TODO | MouseClickEffect | ||
TODO | MouseMarkEffect | ||
TODO | ResizeEffect | ||
TODO | ScreenshotEffect | ||
TODO | ShowFPSEffect | ||
TODO | ShowPaintEffect | ||
TODO | SnapHelperEffect | ||
TODO | TrackMouseEffect | ||
TODO | ZoomEffect | ||
TODO | libkwineffects/kwinxrenderutils | Note: in Qt 5 a QPixmap does no longer reference an X11 Pixmap | |
TODO | scene_xrender | ||
TODO | libkwineffects/kwineffects.cpp | PaintClipper |