diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-08-17 09:07:20 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-08-17 09:07:21 +0200 |
commit | ebd195c59fe50c49dd28f27828afa802384d7011 (patch) | |
tree | b19869be7f7458aa2569ff2afe2f38a48ee711f1 /src/render/backend | |
parent | db836a410555108adff3bd594cf75f4174069f0c (diff) | |
parent | ccfe440c34479377363679fc890f10b44ee57769 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: Id7c8d764f2b370522e3aa036faf51c2095b55afc
Diffstat (limited to 'src/render/backend')
-rw-r--r-- | src/render/backend/resourceaccessor.cpp | 16 | ||||
-rw-r--r-- | src/render/backend/resourceaccessor_p.h | 3 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/render/backend/resourceaccessor.cpp b/src/render/backend/resourceaccessor.cpp index 8ca11e7a7..c6496976a 100644 --- a/src/render/backend/resourceaccessor.cpp +++ b/src/render/backend/resourceaccessor.cpp @@ -73,7 +73,10 @@ bool ResourceAccessor::accessResource(ResourceType type, Qt3DCore::QNodeId nodeI { switch (type) { - case RenderBackendResourceAccessor::OGLTexture: { + case RenderBackendResourceAccessor::OGLTextureWrite: + Q_FALLTHROUGH(); + case RenderBackendResourceAccessor::OGLTextureRead: + { Texture *tex = m_textureManager->lookupResource(nodeId); if (!tex) return false; @@ -85,10 +88,15 @@ bool ResourceAccessor::accessResource(ResourceType type, Qt3DCore::QNodeId nodeI if (glTex->isDirty()) return false; - glTex->setExternalRenderingEnabled(true); + if (type == RenderBackendResourceAccessor::OGLTextureWrite) + glTex->setExternalRenderingEnabled(true); + QOpenGLTexture **glTextureHandle = reinterpret_cast<QOpenGLTexture **>(handle); - *glTextureHandle = glTex->getOrCreateGLTexture(); - *lock = glTex->externalRenderingLock(); + *glTextureHandle = glTex->getGLTexture(); + + if (type == RenderBackendResourceAccessor::OGLTextureWrite) + *lock = glTex->externalRenderingLock(); + return true; } diff --git a/src/render/backend/resourceaccessor_p.h b/src/render/backend/resourceaccessor_p.h index 10e4abaa9..627efcb0d 100644 --- a/src/render/backend/resourceaccessor_p.h +++ b/src/render/backend/resourceaccessor_p.h @@ -73,7 +73,8 @@ class RenderBackendResourceAccessor { public: enum ResourceType { - OGLTexture, + OGLTextureWrite, + OGLTextureRead, OutputAttachment, EntityHandle, }; |