KWin
Loading...
Searching...
No Matches
kwinxrenderutils.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2008 Lubos Lunak <l.lunak@kde.org>
6 SPDX-FileCopyrightText: 2022 MBition GmbH
7 SPDX-FileContributor: Kai Uwe Broulik <kai_uwe.broulik@mbition.io>
8
9 SPDX-License-Identifier: GPL-2.0-or-later
10*/
11
12#pragma once
13
14// KWin
15#include <kwin_export.h>
16// Qt
17#include <QExplicitlySharedDataPointer>
18// XCB
19#include <xcb/render.h>
20
21#include <memory>
22
23class QImage;
24
28namespace KWin
29{
30
32class KWIN_EXPORT XRenderPictureData
33 : public QSharedData
34{
35public:
36 explicit XRenderPictureData(xcb_render_picture_t pic = XCB_RENDER_PICTURE_NONE);
38 xcb_render_picture_t value();
39
40private:
41 xcb_render_picture_t picture;
42 Q_DISABLE_COPY(XRenderPictureData)
43};
44
52class KWIN_EXPORT XRenderPicture
53{
54public:
55 explicit XRenderPicture(xcb_render_picture_t pic = XCB_RENDER_PICTURE_NONE);
56 explicit XRenderPicture(const QImage &img);
57 XRenderPicture(xcb_pixmap_t pix, int depth);
58 operator xcb_render_picture_t();
59
60private:
61 void fromImage(const QImage &img);
62 std::unique_ptr<XRenderPictureData> d;
63};
64
65inline XRenderPictureData::XRenderPictureData(xcb_render_picture_t pic)
66 : picture(pic)
67{
68}
69
70inline xcb_render_picture_t XRenderPictureData::value()
71{
72 return picture;
73}
74
75inline XRenderPicture::XRenderPicture(xcb_render_picture_t pic)
76 : d(std::make_unique<XRenderPictureData>(pic))
77{
78}
79
80inline XRenderPicture::operator xcb_render_picture_t()
81{
82 return d->value();
83}
84
85namespace XRenderUtils
86{
90KWIN_EXPORT void init(xcb_connection_t *connection, xcb_window_t rootWindow);
91
95KWIN_EXPORT xcb_render_pictformat_t findPictFormat(xcb_visualid_t visual);
96
100KWIN_EXPORT const xcb_render_directformat_t *findPictFormatInfo(xcb_render_pictformat_t format);
101
105KWIN_EXPORT void cleanup();
106
107} // namespace XRenderUtils
108
109} // namespace KWin
110
xcb_render_picture_t value()
XRenderPictureData(xcb_render_picture_t pic=XCB_RENDER_PICTURE_NONE)
Wrapper around XRender Picture.
XRenderPicture(xcb_render_picture_t pic=XCB_RENDER_PICTURE_NONE)
void init(xcb_connection_t *connection, xcb_window_t rootWindow)
const xcb_render_directformat_t * findPictFormatInfo(xcb_render_pictformat_t format)
xcb_render_pictformat_t findPictFormat(xcb_visualid_t visual)
KWIN_EXPORT xcb_window_t rootWindow()
Definition xcb.h:24
GLenum format
Definition gltexture.cpp:49
KWIN_EXPORT xcb_connection_t * connection()
Definition xcb.h:19