summaryrefslogtreecommitdiffstats
path: root/src/qtwaylandscanner
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-07-30 14:53:35 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:42 +0200
commitce58545b220a49354533a27ef79cdbc8d50186cd (patch)
tree660232f61bc971d68c29b37acfa9c709f617c697 /src/qtwaylandscanner
parent5edaac978e01ead8648aad91f0d050748f7a8915 (diff)
Rework how we manage extensions
Diffstat (limited to 'src/qtwaylandscanner')
-rw-r--r--src/qtwaylandscanner/qtwaylandscanner.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/qtwaylandscanner/qtwaylandscanner.cpp b/src/qtwaylandscanner/qtwaylandscanner.cpp
index 784687d26..1945f64c8 100644
--- a/src/qtwaylandscanner/qtwaylandscanner.cpp
+++ b/src/qtwaylandscanner/qtwaylandscanner.cpp
@@ -370,6 +370,7 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath, const QByteArr
printf("#include <QByteArray>\n");
printf("#include <QMultiMap>\n");
printf("#include <QString>\n");
+ printf("\n");
printf("\n");
printf("#ifndef WAYLAND_VERSION_CHECK\n");
@@ -381,7 +382,9 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath, const QByteArr
printf("\n");
printf("QT_BEGIN_NAMESPACE\n");
-
+ printf("\n");
+ printf("class QWaylandExtensionContainer;\n");
+ printf("\n");
QByteArray serverExport;
if (headerPath.size()) {
serverExport = QByteArray("Q_WAYLAND_SERVER_") + preProcessorProtocolName + "_EXPORT";
@@ -446,6 +449,11 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath, const QByteArr
printf("\n");
printf(" bool isGlobal() const { return m_global != 0; }\n");
printf(" bool isResource() const { return m_resource != 0; }\n");
+ printf("\n");
+ printf(" static const struct ::wl_interface *interface();\n");
+ printf(" static QByteArray name() { return interface()->name; }\n");
+ printf(" static int interfaceVersion() { return interface()->version; }\n");
+ printf("\n");
printEnums(interface.enums);
@@ -525,6 +533,7 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath, const QByteArr
printf("#include \"qwayland-server-%s.h\"\n", QByteArray(protocolName).replace('_', '-').constData());
else
printf("#include <%s/qwayland-server-%s.h>\n", headerPath.constData(), QByteArray(protocolName).replace('_', '-').constData());
+ printf("#include <QtCompositor/QWaylandExtension>\n");
printf("\n");
printf("QT_BEGIN_NAMESPACE\n");
printf("\n");
@@ -607,6 +616,12 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath, const QByteArr
printf(" }\n");
printf("\n");
+ printf(" const struct wl_interface *%s::interface()\n", interfaceName);
+ printf(" {\n");
+ printf(" return &::%s_interface;\n", interfaceName);
+ printf(" }\n");
+ printf("\n");
+
printf(" %s::Resource *%s::%s_allocate()\n", interfaceName, interfaceName, interfaceNameStripped);
printf(" {\n");
printf(" return new Resource;\n");