diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2018-08-20 14:37:02 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2018-08-20 14:54:18 +0000 |
commit | 1861edec6c4bb8f6b641dda70d12a92d32a9caac (patch) | |
tree | c6ccb6e3186a7dbf13fd0c51fffa67e1728240d1 /src/runtime/aping/q3dsstudio3dengine.cpp | |
parent | e2c42ad7b48e158d83e1e3653c206551fe7e90f0 (diff) |
Move and share the Studio3D scenegraph node implementation
The material and node implementation is now shared between Studio3D,
View3D and Layer3D.
By not relying on QSGImageNode in View3D (and Layer3D), we have better
control and can eventually implement support for things like multisample
textures.
Change-Id: I34a3a590a3ec6cdccbdd8ffd4fec40fb3750a972
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'src/runtime/aping/q3dsstudio3dengine.cpp')
-rw-r--r-- | src/runtime/aping/q3dsstudio3dengine.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/runtime/aping/q3dsstudio3dengine.cpp b/src/runtime/aping/q3dsstudio3dengine.cpp index 3459d95..f6cc16e 100644 --- a/src/runtime/aping/q3dsstudio3dengine.cpp +++ b/src/runtime/aping/q3dsstudio3dengine.cpp @@ -29,6 +29,7 @@ #include "q3dsstudio3dengine_p.h" #include "q3dslayer3d_p.h" +#include "q3dslayer3dsgnode_p.h" #include <private/q3dsengine_p.h> #include <private/q3dsutils_p.h> #include <private/q3dslogging_p.h> @@ -39,7 +40,6 @@ #include <QOpenGLFramebufferObject> #include <QOffscreenSurface> #include <QQuickRenderControl> -#include <QSGImageNode> #include <QRunnable> #include <QThread> #include <Qt3DCore/QEntity> @@ -484,7 +484,7 @@ void Q3DSStudio3DEngine::Renderer::render() ra->accessResource(Qt3DRender::Render::ResourceAccessor::OGLTextureRead, layer.textureNodeId, (void**) &tex, nullptr); if (tex) { uint id = tex->textureId(); - QSGImageNode *viewNode = layer.item->node(); + Q3DSLayer3DSGNode *viewNode = layer.item->node(); if (viewNode) { if (uint(viewNode->texture()->textureId()) != id || viewNode->rect().size() != layer.itemSizeWithoutDpr) { QSGTexture *t = w->createTextureFromId(id, layer.pixelSize, QQuickWindow::TextureHasAlphaChannel); @@ -495,7 +495,6 @@ void Q3DSStudio3DEngine::Renderer::render() layer.item->notifyTextureChange(t); viewNode->setRect(QRectF(QPointF(0, 0), layer.itemSizeWithoutDpr)); - viewNode->setSourceRect(QRectF(QPointF(0, 0), layer.pixelSize)); } viewNode->markDirty(QSGNode::DirtyMaterial); |