configure: properly atomize render vs. renderutil
xcb-render is a C interface for X11 extension. xcb-render-util is a utility library that complements xcb-render by providing convenience functions and interfaces which make the raw X protocol more usable. Bumped xcb-render-util version to avoid having include hacks. We were bundling 8 years old release 0.3.8 (Apr, 2011). 0.3.9 is the latest release and it was relesed 4,5 years ago (Jun, 2014). All CI machines have 0.3.9. The only thing that have changed in xcb-render-util sources since 2011 is that we don't need to have various hacks to include xcb_renderutil.h in C++ files. Upgrading bundled XCB libs was also requested in QTBUG-71109. Task-number: QTBUG-71109 Change-Id: Ib261f7584ad81be95660123b007e2200a3042f4c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
This commit is contained in:
parent
ceddc14af1
commit
6899117a59
2
src/3rdparty/xcb/README
vendored
2
src/3rdparty/xcb/README
vendored
@ -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.
|
||||
|
10
src/3rdparty/xcb/include/xcb/xcb_renderutil.h
vendored
10
src/3rdparty/xcb/include/xcb/xcb_renderutil.h
vendored
@ -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 */
|
||||
|
30
src/3rdparty/xcb/xcb-util-renderutil/util.c
vendored
30
src/3rdparty/xcb/xcb-util-renderutil/util.c
vendored
@ -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;
|
||||
|
@ -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": {
|
||||
|
@ -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>
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user