summaryrefslogtreecommitdiffstats
path: root/src/render/backend
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-12-09 13:23:07 +0100
committerPaul Lemire <paul.lemire@kdab.com>2016-01-13 16:10:10 +0000
commitd0ab2359f5b4b23dcd017ed6abb2c063deb98a85 (patch)
tree3e574c6172c58a27affb2474a6683a19e83a3794 /src/render/backend
parentd7f99a581d7a0430c25f68449240311152a51b1b (diff)
GraphicsContext: use GLBuffer instead of QOpenGLBuffer
This will be needed to simplify the process of binding SSBO/UBO buffers. Change-Id: Ice3bb97381328c5bddf1c9e46af30b4814ff2572 Note: ShaderData UBO handling temporarly disabled. Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/backend')
-rw-r--r--src/render/backend/managers_p.h2
-rw-r--r--src/render/backend/renderview.cpp71
2 files changed, 38 insertions, 35 deletions
diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h
index 94089795c..e3b9cb9d7 100644
--- a/src/render/backend/managers_p.h
+++ b/src/render/backend/managers_p.h
@@ -284,7 +284,7 @@ public:
class GLBufferManager : public Qt3DCore::QResourceManager<
GLBuffer,
- BufferShaderKey,
+ Qt3DCore::QNodeId,
16,
Qt3DCore::ArrayAllocatingPolicy,
Qt3DCore::ObjectLevelLockingPolicy>
diff --git a/src/render/backend/renderview.cpp b/src/render/backend/renderview.cpp
index 22aa581a7..120142c51 100644
--- a/src/render/backend/renderview.cpp
+++ b/src/render/backend/renderview.cpp
@@ -621,41 +621,44 @@ void RenderView::setUniformBlockValue(QUniformPack &uniformPack, Shader *shader,
// Note: we assume that if a buffer is shared accross multiple shaders
// then it implies that they share the same layout
- BufferShaderKey uboKey(shaderData->peerUuid(),
- shader->peerUuid());
-
- BlockToUBO uniformBlockUBO;
- uniformBlockUBO.m_blockIndex = block.m_index;
- uniformBlockUBO.m_shaderDataID = shaderData->peerUuid();
- bool uboNeedsUpdate = false;
-
- // build UBO at uboId if not created before
- if (!m_manager->glBufferManager()->contains(uboKey)) {
- m_manager->glBufferManager()->getOrCreateResource(uboKey);
- uboNeedsUpdate = true;
- }
-
- // If shaderData has been updated (property has changed or one of the nested properties has changed)
- // foreach property defined in the QShaderData, we try to fill the value of the corresponding active uniform(s)
- // for all the updated properties (all the properties if the UBO was just created)
- if (shaderData->updateViewTransform(*m_data->m_viewMatrix) || uboNeedsUpdate) {
- // Clear previous values remaining in the hash
- m_data->m_uniformBlockBuilder.activeUniformNamesToValue.clear();
- // Update only update properties if uboNeedsUpdate is true, otherwise update the whole block
- m_data->m_uniformBlockBuilder.updatedPropertiesOnly = uboNeedsUpdate;
- // Retrieve names and description of each active uniforms in the uniform block
- m_data->m_uniformBlockBuilder.uniforms = shader->activeUniformsForUniformBlock(block.m_index);
- // Builds the name-value map for the block
- m_data->m_uniformBlockBuilder.buildActiveUniformNameValueMapStructHelper(shaderData, block.m_name);
- if (!uboNeedsUpdate)
- shaderData->markDirty();
- // copy the name-value map into the BlockToUBO
- uniformBlockUBO.m_updatedProperties = m_data->m_uniformBlockBuilder.activeUniformNamesToValue;
- uboNeedsUpdate = true;
- }
- uniformBlockUBO.m_needsUpdate = uboNeedsUpdate;
- uniformPack.setUniformBuffer(uniformBlockUBO);
+ // Temporarly disabled
+
+ // BufferShaderKey uboKey(shaderData->peerUuid(),
+ // shader->peerUuid());
+
+ // BlockToUBO uniformBlockUBO;
+ // uniformBlockUBO.m_blockIndex = block.m_index;
+ // uniformBlockUBO.m_shaderDataID = shaderData->peerUuid();
+ // bool uboNeedsUpdate = false;
+
+ // // build UBO at uboId if not created before
+ // if (!m_manager->glBufferManager()->contains(uboKey)) {
+ // m_manager->glBufferManager()->getOrCreateResource(uboKey);
+ // uboNeedsUpdate = true;
+ // }
+
+ // // If shaderData has been updated (property has changed or one of the nested properties has changed)
+ // // foreach property defined in the QShaderData, we try to fill the value of the corresponding active uniform(s)
+ // // for all the updated properties (all the properties if the UBO was just created)
+ // if (shaderData->updateViewTransform(*m_data->m_viewMatrix) || uboNeedsUpdate) {
+ // // Clear previous values remaining in the hash
+ // m_data->m_uniformBlockBuilder.activeUniformNamesToValue.clear();
+ // // Update only update properties if uboNeedsUpdate is true, otherwise update the whole block
+ // m_data->m_uniformBlockBuilder.updatedPropertiesOnly = uboNeedsUpdate;
+ // // Retrieve names and description of each active uniforms in the uniform block
+ // m_data->m_uniformBlockBuilder.uniforms = shader->activeUniformsForUniformBlock(block.m_index);
+ // // Builds the name-value map for the block
+ // m_data->m_uniformBlockBuilder.buildActiveUniformNameValueMapStructHelper(shaderData, block.m_name);
+ // if (!uboNeedsUpdate)
+ // shaderData->markDirty();
+ // // copy the name-value map into the BlockToUBO
+ // uniformBlockUBO.m_updatedProperties = m_data->m_uniformBlockBuilder.activeUniformNamesToValue;
+ // uboNeedsUpdate = true;
+ // }
+
+ // uniformBlockUBO.m_needsUpdate = uboNeedsUpdate;
+ // uniformPack.setUniformBuffer(uniformBlockUBO);
}
}