summaryrefslogtreecommitdiffstats
path: root/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp')
-rw-r--r--src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp b/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
index 47779dded..3a619f361 100644
--- a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
+++ b/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
@@ -54,14 +54,15 @@
#include <Qt3DRender/private/rendertarget_p.h>
#include <Qt3DRender/private/graphicshelperinterface_p.h>
#include <Qt3DRender/private/renderer_p.h>
+#include <Qt3DRender/private/glresourcemanagers_p.h>
#include <Qt3DRender/private/nodemanagers_p.h>
#include <Qt3DRender/private/buffermanager_p.h>
#include <Qt3DRender/private/managers_p.h>
-#include <Qt3DRender/private/gltexturemanager_p.h>
#include <Qt3DRender/private/attachmentpack_p.h>
#include <Qt3DRender/private/qbuffer_p.h>
#include <Qt3DRender/private/renderbuffer_p.h>
#include <Qt3DRender/private/stringtoint_p.h>
+#include <Qt3DRender/private/openglvertexarrayobject_p.h>
#include <QOpenGLShaderProgram>
#if !defined(QT_OPENGL_ES_2)
@@ -530,7 +531,7 @@ GLuint SubmissionContext::updateRenderTarget(Qt3DCore::QNodeId renderTargetNodeI
bool needsResize = !m_renderTargetsSize.contains(fboId); // not even initialized yet?
if (!needsResize) {
// render target exists, has attachment been resized?
- GLTextureManager *glTextureManager = m_renderer->nodeManagers()->glTextureManager();
+ GLTextureManager *glTextureManager = m_renderer->glResourceManagers()->glTextureManager();
const QSize s = m_renderTargetsSize[fboId];
const auto attachments_ = attachments.attachments();
for (const Attachment &attachment : attachments_) {
@@ -814,7 +815,7 @@ void SubmissionContext::bindFrameBufferAttachmentHelper(GLuint fboId, const Atta
// stencil before 3.1 with the appropriate extension).
QSize fboSize;
- GLTextureManager *glTextureManager = m_renderer->nodeManagers()->glTextureManager();
+ GLTextureManager *glTextureManager = m_renderer->glResourceManagers()->glTextureManager();
const auto attachments_ = attachments.attachments();
for (const Attachment &attachment : attachments_) {
GLTexture *rTex = glTextureManager->lookupResource(attachment.m_textureUuid);
@@ -1157,8 +1158,6 @@ bool SubmissionContext::setParameters(ShaderParameterPack &parameterPack)
// Set the pinned texture of the previous material texture
// to pinable so that we should easily find an available texture unit
- NodeManagers *manager = m_renderer->nodeManagers();
-
m_textureContext.deactivateTexturesWithScope(TextureSubmissionContext::TextureScopeMaterial);
// Update the uniforms with the correct texture unit id's
PackUniformHash &uniformValues = parameterPack.uniforms();
@@ -1169,7 +1168,7 @@ bool SubmissionContext::setParameters(ShaderParameterPack &parameterPack)
const ShaderParameterPack::NamedResource &namedTex = parameterPack.textures().at(i);
// Given a Texture QNodeId, we retrieve the associated shared GLTexture
if (uniformValues.contains(namedTex.glslNameId)) {
- GLTexture *t = manager->glTextureManager()->lookupResource(namedTex.nodeId);
+ GLTexture *t = m_renderer->glResourceManagers()->glTextureManager()->lookupResource(namedTex.nodeId);
if (t != nullptr) {
UniformValue &texUniform = uniformValues.value(namedTex.glslNameId);
if (texUniform.valueType() == UniformValue::TextureValue) {
@@ -1194,9 +1193,9 @@ bool SubmissionContext::setParameters(ShaderParameterPack &parameterPack)
const ShaderParameterPack::NamedResource &namedTex = parameterPack.images().at(i);
// Given a Texture QNodeId, we retrieve the associated shared GLTexture
if (uniformValues.contains(namedTex.glslNameId)) {
- ShaderImage *img = manager->shaderImageManager()->lookupResource(namedTex.nodeId);
+ ShaderImage *img = m_renderer->nodeManagers()->shaderImageManager()->lookupResource(namedTex.nodeId);
if (img != nullptr) {
- GLTexture *t = manager->glTextureManager()->lookupResource(img->textureId());
+ GLTexture *t = m_renderer->glResourceManagers()->glTextureManager()->lookupResource(img->textureId());
if (t == nullptr) {
qCWarning(Backend) << "Shader Image referencing invalid texture";
continue;
@@ -1277,7 +1276,7 @@ bool SubmissionContext::setParameters(ShaderParameterPack &parameterPack)
void SubmissionContext::enableAttribute(const VAOVertexAttribute &attr)
{
// Bind buffer within the current VAO
- GLBuffer *buf = m_renderer->nodeManagers()->glBufferManager()->data(attr.bufferHandle);
+ GLBuffer *buf = m_renderer->glResourceManagers()->glBufferManager()->data(attr.bufferHandle);
Q_ASSERT(buf);
bindGLBuffer(buf, attr.attributeType);
@@ -1316,7 +1315,7 @@ void SubmissionContext::specifyAttribute(const Attribute *attribute,
}
const GLint attributeDataType = glDataTypeFromAttributeDataType(attribute->vertexBaseType());
- const HGLBuffer glBufferHandle = m_renderer->nodeManagers()->glBufferManager()->lookupHandle(buffer->peerId());
+ const HGLBuffer glBufferHandle = m_renderer->glResourceManagers()->glBufferManager()->lookupHandle(buffer->peerId());
Q_ASSERT(!glBufferHandle.isNull());
const GLBuffer::Type attributeType = attributeTypeToGLBufferType(attribute->attributeType());
@@ -1365,21 +1364,21 @@ void SubmissionContext::specifyIndices(Buffer *buffer)
// bound within the current VAO
// Save this in the current emulated VAO
if (m_currentVAO)
- m_currentVAO->saveIndexAttribute(m_renderer->nodeManagers()->glBufferManager()->lookupHandle(buffer->peerId()));
+ m_currentVAO->saveIndexAttribute(m_renderer->glResourceManagers()->glBufferManager()->lookupHandle(buffer->peerId()));
}
void SubmissionContext::updateBuffer(Buffer *buffer)
{
const QHash<Qt3DCore::QNodeId, HGLBuffer>::iterator it = m_renderBufferHash.find(buffer->peerId());
if (it != m_renderBufferHash.end())
- uploadDataToGLBuffer(buffer, m_renderer->nodeManagers()->glBufferManager()->data(it.value()));
+ uploadDataToGLBuffer(buffer, m_renderer->glResourceManagers()->glBufferManager()->data(it.value()));
}
QByteArray SubmissionContext::downloadBufferContent(Buffer *buffer)
{
const QHash<Qt3DCore::QNodeId, HGLBuffer>::iterator it = m_renderBufferHash.find(buffer->peerId());
if (it != m_renderBufferHash.end())
- return downloadDataFromGLBuffer(buffer, m_renderer->nodeManagers()->glBufferManager()->data(it.value()));
+ return downloadDataFromGLBuffer(buffer, m_renderer->glResourceManagers()->glBufferManager()->data(it.value()));
return QByteArray();
}
@@ -1388,13 +1387,13 @@ void SubmissionContext::releaseBuffer(Qt3DCore::QNodeId bufferId)
auto it = m_renderBufferHash.find(bufferId);
if (it != m_renderBufferHash.end()) {
HGLBuffer glBuffHandle = it.value();
- GLBuffer *glBuff = m_renderer->nodeManagers()->glBufferManager()->data(glBuffHandle);
+ GLBuffer *glBuff = m_renderer->glResourceManagers()->glBufferManager()->data(glBuffHandle);
Q_ASSERT(glBuff);
// Destroy the GPU resource
glBuff->destroy(this);
// Destroy the GLBuffer instance
- m_renderer->nodeManagers()->glBufferManager()->releaseResource(bufferId);
+ m_renderer->glResourceManagers()->glBufferManager()->releaseResource(bufferId);
// Remove Id - HGLBuffer entry
m_renderBufferHash.erase(it);
}
@@ -1410,12 +1409,12 @@ GLBuffer *SubmissionContext::glBufferForRenderBuffer(Buffer *buf, GLBuffer::Type
{
if (!m_renderBufferHash.contains(buf->peerId()))
m_renderBufferHash.insert(buf->peerId(), createGLBufferFor(buf, type));
- return m_renderer->nodeManagers()->glBufferManager()->data(m_renderBufferHash.value(buf->peerId()));
+ return m_renderer->glResourceManagers()->glBufferManager()->data(m_renderBufferHash.value(buf->peerId()));
}
HGLBuffer SubmissionContext::createGLBufferFor(Buffer *buffer, GLBuffer::Type type)
{
- GLBuffer *b = m_renderer->nodeManagers()->glBufferManager()->getOrCreateResource(buffer->peerId());
+ GLBuffer *b = m_renderer->glResourceManagers()->glBufferManager()->getOrCreateResource(buffer->peerId());
// b.setUsagePattern(static_cast<QOpenGLBuffer::UsagePattern>(buffer->usage()));
Q_ASSERT(b);
if (!b->create(this))
@@ -1424,7 +1423,7 @@ HGLBuffer SubmissionContext::createGLBufferFor(Buffer *buffer, GLBuffer::Type ty
if (!bindGLBuffer(b, type))
qCWarning(Render::Io) << Q_FUNC_INFO << "buffer binding failed";
- return m_renderer->nodeManagers()->glBufferManager()->lookupHandle(buffer->peerId());
+ return m_renderer->glResourceManagers()->glBufferManager()->lookupHandle(buffer->peerId());
}
bool SubmissionContext::bindGLBuffer(GLBuffer *buffer, GLBuffer::Type type)