diff options
author | Paul Lemire <paul.lemire.ecortex@kdab.com> | 2014-12-23 10:04:59 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-12-30 21:06:11 +0100 |
commit | a51e2b3d3b57a3f9179a1c217a23ead8ddc65c63 (patch) | |
tree | 173e595a67a63803a2e5e0a5908e296602ff396c /src/quick3d/imports/render/qt3dquick3drenderplugin.cpp | |
parent | 1675b5968365b927e795e239a322c1351fcc5677 (diff) |
QML default phong material and generate qrc file
Also registers types contained in the generated qrc file. This
allows us to provide types defined by QML files into the plugin
that mix seemlessly with the exported C++ types.
Change-Id: I19b4afc52130d6edf5aa67a9bce4eeeae9d8b1e5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d/imports/render/qt3dquick3drenderplugin.cpp')
-rw-r--r-- | src/quick3d/imports/render/qt3dquick3drenderplugin.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp index 27476bde0..cc813539a 100644 --- a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp +++ b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp @@ -105,8 +105,20 @@ #include <Qt3DQuickRenderer/quick3dshaderdata.h> #include <Qt3DQuickRenderer/quick3dshaderdataarray.h> +static void initResources() +{ + Q_INIT_RESOURCE(defaults); +} + QT_BEGIN_NAMESPACE +static const struct { + const char *type; + int major, minor; +} qmldir [] = { + { "PhongMaterial", 2, 0 } +}; + QVariantList QJSValueToVariantListConverter(const QJSValue &jsValue) { QVariantList values; @@ -131,6 +143,9 @@ QVariantList Quick3DShaderDataArrayToVariantListConverter(Qt3D::Render::Quick::Q void Qt3DQuick3DRenderPlugin::registerTypes(const char *uri) { + // Init resources for defaults QML files + initResources(); + // Converters from QJSValue QMetaType::registerConverter<QJSValue, QVariantList>(QJSValueToVariantListConverter); QMetaType::registerConverter<Qt3D::Render::Quick::Quick3DShaderDataArray*, QVariantList>(Quick3DShaderDataArrayToVariantListConverter); @@ -215,6 +230,15 @@ void Qt3DQuick3DRenderPlugin::registerTypes(const char *uri) qmlRegisterType<Qt3D::QScissorTest>(uri, 2, 0, "ScissorTest"); qmlRegisterType<Qt3D::QDithering>(uri, 2, 0, "Dithering"); qmlRegisterType<Qt3D::QAlphaCoverage>(uri, 2, 0, "AlphaCoverage"); + + // Register types provided as QML files compiled into the plugin + for (int i = 0; i < int(sizeof(qmldir) / sizeof(qmldir[0])); i++) { + QString path = QStringLiteral("qrc:/Qt3D/Render/defaults/qml/"); + qmlRegisterType(QUrl(path + qmldir[i].type + QStringLiteral(".qml")), + uri, + qmldir[i].major, qmldir[i].minor, + qmldir[i].type); + } } QT_END_NAMESPACE |