summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire.ecortex@kdab.com>2014-12-23 10:04:59 +0100
committerSean Harmer <sean.harmer@kdab.com>2014-12-30 21:06:11 +0100
commita51e2b3d3b57a3f9179a1c217a23ead8ddc65c63 (patch)
tree173e595a67a63803a2e5e0a5908e296602ff396c /src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
parent1675b5968365b927e795e239a322c1351fcc5677 (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.cpp24
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