summaryrefslogtreecommitdiffstats
path: root/src/runtime/aping/q3dsstudio3dengine.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2018-08-20 14:37:02 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-08-20 14:54:18 +0000
commit1861edec6c4bb8f6b641dda70d12a92d32a9caac (patch)
treec6ccb6e3186a7dbf13fd0c51fffa67e1728240d1 /src/runtime/aping/q3dsstudio3dengine.cpp
parente2c42ad7b48e158d83e1e3653c206551fe7e90f0 (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.cpp5
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);