summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/3rdparty/xcb/README2
-rw-r--r--src/3rdparty/xcb/include/xcb/xcb_renderutil.h10
-rw-r--r--src/3rdparty/xcb/xcb-util-renderutil/util.c30
-rw-r--r--src/gui/configure.json35
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.cpp6
-rw-r--r--src/plugins/platforms/xcb/qxcbimage.cpp6
-rw-r--r--src/plugins/platforms/xcb/xcb_qpa_lib.pro2
7 files changed, 46 insertions, 45 deletions
diff --git a/src/3rdparty/xcb/README b/src/3rdparty/xcb/README
index 9e8ea30b51..2f1ee24079 100644
--- a/src/3rdparty/xcb/README
+++ b/src/3rdparty/xcb/README
@@ -8,7 +8,7 @@ Contains the header and sources files from selected xcb libraries:
Pointer Barriers API and SendExtensionEvent API)
libxcb-util-image-0.3.9
libxcb-util-keysyms-0.3.9
- libxcb-util-renderutil-0.3.8
+ libxcb-util-renderutil-0.3.9
libxcb-util-wm-0.3.9
The 'include' directory was obtained by compiling and installing all of the modules.
diff --git a/src/3rdparty/xcb/include/xcb/xcb_renderutil.h b/src/3rdparty/xcb/include/xcb/xcb_renderutil.h
index 6eb5923236..77c5b7f054 100644
--- a/src/3rdparty/xcb/include/xcb/xcb_renderutil.h
+++ b/src/3rdparty/xcb/include/xcb/xcb_renderutil.h
@@ -27,6 +27,10 @@
#define XCB_RENDERUTIL
#include <xcb/render.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef enum xcb_pict_format_t {
XCB_PICT_FORMAT_ID = (1 << 0),
XCB_PICT_FORMAT_TYPE = (1 << 1),
@@ -58,7 +62,7 @@ xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t
xcb_render_pictforminfo_t *
xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats,
unsigned long mask,
- const xcb_render_pictforminfo_t *template,
+ const xcb_render_pictforminfo_t *ptemplate,
int count);
xcb_render_pictforminfo_t *
@@ -139,4 +143,8 @@ void
xcb_render_util_composite_text_free (
xcb_render_util_composite_text_stream_t *stream );
+#ifdef __cplusplus
+}
+#endif
+
#endif /* XCB_RENDERUTIL */
diff --git a/src/3rdparty/xcb/xcb-util-renderutil/util.c b/src/3rdparty/xcb/xcb-util-renderutil/util.c
index 2d8840d204..7666c433dd 100644
--- a/src/3rdparty/xcb/xcb-util-renderutil/util.c
+++ b/src/3rdparty/xcb/xcb-util-renderutil/util.c
@@ -19,6 +19,10 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include "xcb_renderutil.h"
xcb_render_pictvisual_t *
@@ -41,7 +45,7 @@ xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t
xcb_render_pictforminfo_t *
xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats,
unsigned long mask,
- const xcb_render_pictforminfo_t *template,
+ const xcb_render_pictforminfo_t *ptemplate,
int count)
{
xcb_render_pictforminfo_iterator_t i;
@@ -50,40 +54,40 @@ xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *format
for (i = xcb_render_query_pict_formats_formats_iterator(formats); i.rem; xcb_render_pictforminfo_next(&i))
{
if (mask & XCB_PICT_FORMAT_ID)
- if (template->id != i.data->id)
+ if (ptemplate->id != i.data->id)
continue;
if (mask & XCB_PICT_FORMAT_TYPE)
- if (template->type != i.data->type)
+ if (ptemplate->type != i.data->type)
continue;
if (mask & XCB_PICT_FORMAT_DEPTH)
- if (template->depth != i.data->depth)
+ if (ptemplate->depth != i.data->depth)
continue;
if (mask & XCB_PICT_FORMAT_RED)
- if (template->direct.red_shift != i.data->direct.red_shift)
+ if (ptemplate->direct.red_shift != i.data->direct.red_shift)
continue;
if (mask & XCB_PICT_FORMAT_RED_MASK)
- if (template->direct.red_mask != i.data->direct.red_mask)
+ if (ptemplate->direct.red_mask != i.data->direct.red_mask)
continue;
if (mask & XCB_PICT_FORMAT_GREEN)
- if (template->direct.green_shift != i.data->direct.green_shift)
+ if (ptemplate->direct.green_shift != i.data->direct.green_shift)
continue;
if (mask & XCB_PICT_FORMAT_GREEN_MASK)
- if (template->direct.green_mask != i.data->direct.green_mask)
+ if (ptemplate->direct.green_mask != i.data->direct.green_mask)
continue;
if (mask & XCB_PICT_FORMAT_BLUE)
- if (template->direct.blue_shift != i.data->direct.blue_shift)
+ if (ptemplate->direct.blue_shift != i.data->direct.blue_shift)
continue;
if (mask & XCB_PICT_FORMAT_BLUE_MASK)
- if (template->direct.blue_mask != i.data->direct.blue_mask)
+ if (ptemplate->direct.blue_mask != i.data->direct.blue_mask)
continue;
if (mask & XCB_PICT_FORMAT_ALPHA)
- if (template->direct.alpha_shift != i.data->direct.alpha_shift)
+ if (ptemplate->direct.alpha_shift != i.data->direct.alpha_shift)
continue;
if (mask & XCB_PICT_FORMAT_ALPHA_MASK)
- if (template->direct.alpha_mask != i.data->direct.alpha_mask)
+ if (ptemplate->direct.alpha_mask != i.data->direct.alpha_mask)
continue;
if (mask & XCB_PICT_FORMAT_COLORMAP)
- if (template->colormap != i.data->colormap)
+ if (ptemplate->colormap != i.data->colormap)
continue;
if (count-- == 0)
return i.data;
diff --git a/src/gui/configure.json b/src/gui/configure.json
index caa6f065f0..7b861c80fe 100644
--- a/src/gui/configure.json
+++ b/src/gui/configure.json
@@ -615,6 +615,20 @@
],
"use": "xcb"
},
+ "xcb_renderutil": {
+ "label": "XCB Renderutil >= 0.3.9",
+ "test": {
+ "main": [
+ "xcb_render_util_find_standard_format(nullptr, XCB_PICT_STANDARD_ARGB_32);"
+ ]
+ },
+ "headers": "xcb/xcb_renderutil.h",
+ "sources": [
+ { "type": "pkgConfig", "args": "xcb-renderutil >= 0.3.9" },
+ "-lxcb-render-util"
+ ],
+ "use": "xcb xcb_render"
+ },
"xcb_randr": {
"label": "XCB RandR",
"headers": "xcb/randr.h",
@@ -704,32 +718,20 @@
"xcb_render": {
"label": "XCB XRender",
"test": {
- "tail": [
- "// 'template' is used as a function argument name in xcb_renderutil.h",
- "#define template template_param",
- "// extern \"C\" is missing, too",
- "extern \"C\" {",
- "#include <xcb/xcb_renderutil.h>",
- "}",
- "#undef template"
- ],
"main": [
- "int primaryScreen = 0;",
"xcb_generic_error_t *error = 0;",
"xcb_connection_t *connection = 0;",
"xcb_render_query_pict_formats_cookie_t formatsCookie =",
" xcb_render_query_pict_formats(connection);",
"xcb_render_query_pict_formats_reply_t *formatsReply =",
" xcb_render_query_pict_formats_reply(",
- " connection, formatsCookie, &error);",
- "xcb_render_util_find_standard_format(",
- " formatsReply, XCB_PICT_STANDARD_ARGB_32);"
+ " connection, formatsCookie, &error);"
]
},
"headers": "xcb/render.h",
"sources": [
- { "type": "pkgConfig", "args": "xcb-renderutil xcb-render" },
- "-lxcb-render-util -lxcb-render"
+ { "type": "pkgConfig", "args": "xcb-render" },
+ "-lxcb-render"
],
"use": "xcb"
},
@@ -737,7 +739,6 @@
"label": "XCB GLX",
"test": {
"main": [
- "int primaryScreen = 0;",
"xcb_connection_t *connection = 0;",
"xcb_generic_error_t *error = 0;",
"xcb_glx_query_version_cookie_t xglx_query_cookie = xcb_glx_query_version(",
@@ -1555,7 +1556,7 @@
"xcb-render": {
"label": "XCB render",
"emitIf": "features.xcb",
- "condition": "!features.system-xcb || libs.xcb_render",
+ "condition": "!features.system-xcb || (libs.xcb_render && libs.xcb_renderutil)",
"output": [ "privateFeature" ]
},
"xkb": {
diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.cpp b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
index ba9a3e68ee..e446933dac 100644
--- a/src/plugins/platforms/xcb/qxcbbackingstore.cpp
+++ b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
@@ -47,13 +47,7 @@
#include <xcb/xcb_image.h>
#if QT_CONFIG(xcb_render)
#include <xcb/render.h>
-// 'template' is used as a function argument name in xcb_renderutil.h
-#define template template_param
-// extern "C" is missing too
-extern "C" {
#include <xcb/xcb_renderutil.h>
-}
-#undef template
#endif
#include <sys/ipc.h>
diff --git a/src/plugins/platforms/xcb/qxcbimage.cpp b/src/plugins/platforms/xcb/qxcbimage.cpp
index 44c7d22344..31c24f40b4 100644
--- a/src/plugins/platforms/xcb/qxcbimage.cpp
+++ b/src/plugins/platforms/xcb/qxcbimage.cpp
@@ -44,13 +44,7 @@
#include <QtGui/private/qdrawhelper_p.h>
#if QT_CONFIG(xcb_render)
#include <xcb/render.h>
-// 'template' is used as a function argument name in xcb_renderutil.h
-#define template template_param
-// extern "C" is missing too
-extern "C" {
#include <xcb/xcb_renderutil.h>
-}
-#undef template
#endif
#include "qxcbconnection.h"
diff --git a/src/plugins/platforms/xcb/xcb_qpa_lib.pro b/src/plugins/platforms/xcb/xcb_qpa_lib.pro
index f4ca9cc81d..1369d3496e 100644
--- a/src/plugins/platforms/xcb/xcb_qpa_lib.pro
+++ b/src/plugins/platforms/xcb/xcb_qpa_lib.pro
@@ -97,7 +97,7 @@ qtConfig(vulkan) {
!qtConfig(system-xcb) {
QMAKE_USE += xcb-static
} else {
- qtConfig(xcb-render): QMAKE_USE += xcb_render
+ qtConfig(xcb-render): QMAKE_USE += xcb_render xcb_renderutil
qtConfig(xcb-xinput): QMAKE_USE += xcb_xinput
QMAKE_USE += xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama
}