summaryrefslogtreecommitdiffstats
path: root/src/render/jobs/renderviewjobutils.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire350@gmail.com>2016-05-14 15:37:51 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-07-02 19:41:34 +0000
commit72b193068e2671f744fab0fd092b4c0243f9556c (patch)
treed33da48dde7fff98f420f4ca705558f07e6e9efb /src/render/jobs/renderviewjobutils.cpp
parent2c436fc2619621c2d2548020c9a2533ec93a7216 (diff)
RenderViewJobUtils: small cleanup
Change-Id: I981903c6263735b33c53cfc92423e5463fe3de21 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/jobs/renderviewjobutils.cpp')
-rw-r--r--src/render/jobs/renderviewjobutils.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/render/jobs/renderviewjobutils.cpp b/src/render/jobs/renderviewjobutils.cpp
index 834490699..d411f4de7 100644
--- a/src/render/jobs/renderviewjobutils.cpp
+++ b/src/render/jobs/renderviewjobutils.cpp
@@ -238,7 +238,7 @@ void setRenderViewConfigFromFrameGraphLeafNode(RenderView *rv, const FrameGraphN
\a effect specified by the \a renderView.
*/
Technique *findTechniqueForEffect(Renderer *renderer,
- RenderView *renderView,
+ const TechniqueFilter *techniqueFilter,
Effect *effect)
{
if (!effect)
@@ -259,7 +259,6 @@ Technique *findTechniqueForEffect(Renderer *renderer,
if (renderer->isRunning() && *renderer->contextInfo() == *technique->graphicsApiFilter()) {
// If no techniqueFilter is present, we return the technique as it satisfies OpenGL version
- const TechniqueFilter *techniqueFilter = renderView->techniqueFilter();
bool foundMatch = (techniqueFilter == nullptr || techniqueFilter->filters().isEmpty());
if (foundMatch) {
matchingTechniques.append(technique);
@@ -319,20 +318,19 @@ Technique *findTechniqueForEffect(Renderer *renderer,
}
-RenderRenderPassList findRenderPassesForTechnique(NodeManagers *manager,
- RenderView *renderView,
- Technique *technique)
+RenderPassList findRenderPassesForTechnique(NodeManagers *manager,
+ const RenderPassFilter *passFilter,
+ Technique *technique)
{
Q_ASSERT(manager);
Q_ASSERT(technique);
- RenderRenderPassList passes;
+ RenderPassList passes;
const auto passIds = technique->renderPasses();
for (const QNodeId passId : passIds) {
RenderPass *renderPass = manager->renderPassManager()->lookupResource(passId);
if (renderPass && renderPass->isEnabled()) {
- const RenderPassFilter *passFilter = renderView->renderPassFilter();
bool foundMatch = (!passFilter || passFilter->filters().size() == 0);
// A pass filter is present so we need to check for matching criteria
@@ -379,12 +377,10 @@ ParameterInfoList::const_iterator findParamInfo(ParameterInfoList *params, const
}
void addParametersForIds(ParameterInfoList *params, ParameterManager *manager,
- const QVector<Qt3DCore::QNodeId> &parameterIds)
+ const Qt3DCore::QNodeIdVector &parameterIds)
{
for (const QNodeId paramId : parameterIds) {
Parameter *param = manager->lookupResource(paramId);
- if (Q_UNLIKELY(!param))
- continue;
ParameterInfoList::iterator it = std::lower_bound(params->begin(), params->end(), param->nameId());
if (it == params->end() || it->nameId != param->nameId())
params->insert(it, ParameterInfo(param->nameId(), param->value()));
@@ -488,6 +484,21 @@ void UniformBlockValueBuilder::buildActiveUniformNameValueMapStructHelper(Shader
}
}
+ParameterInfo::ParameterInfo(const int nameId, const QVariant &value)
+ : nameId(nameId)
+ , value(value)
+{}
+
+bool ParameterInfo::operator<(const ParameterInfo &other) const Q_DECL_NOEXCEPT
+{
+ return nameId < other.nameId;
+}
+
+bool ParameterInfo::operator<(const int otherNameId) const Q_DECL_NOEXCEPT
+{
+ return nameId < otherNameId;
+}
+
} // namespace Render
} // namespace Qt3DRender