summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/render/backend/renderer.cpp21
-rw-r--r--src/render/frontend/parameter.cpp30
-rw-r--r--src/render/frontend/parameter.h16
-rw-r--r--src/render/frontend/parameterbinder.h3
-rw-r--r--src/render/io/gltfparser.cpp16
5 files changed, 19 insertions, 67 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp
index 11270b6bb..a5cbd84e7 100644
--- a/src/render/backend/renderer.cpp
+++ b/src/render/backend/renderer.cpp
@@ -166,30 +166,25 @@ void Renderer::buildDefaultTechnique()
m_defaultTechnique->addPass(basicPass);
Parameter* vp = new Parameter(m_defaultTechnique, QStringLiteral("position"), Parameter::FloatVec3);
- vp->setMeshAttributeName(QStringLiteral("position"));
m_defaultTechnique->addParameter(vp);
basicPass->addBinding(new ParameterBinder(QStringLiteral("position"), QStringLiteral("vertexPosition"), ParameterBinder::Attribute));
Parameter* np = new Parameter(m_defaultTechnique, QStringLiteral("normal"), Parameter::FloatVec3);
- np->setMeshAttributeName(QStringLiteral("normal"));
m_defaultTechnique->addParameter(np);
basicPass->addBinding(new ParameterBinder(QStringLiteral("normal"), QStringLiteral("vertexNormal"), ParameterBinder::Attribute));
// matrix uniforms from standard
Parameter* mvMat = new Parameter(m_defaultTechnique, QStringLiteral("modelView"), Parameter::FloatMat4);
- mvMat->setStandardUniform(Parameter::ModelView);
m_defaultTechnique->addParameter(mvMat);
- basicPass->addBinding(new ParameterBinder(QStringLiteral("modelView"), QStringLiteral("modelViewMatrix"), ParameterBinder::Uniform));
+ basicPass->addBinding(new ParameterBinder(QStringLiteral("modelView"), QStringLiteral("modelViewMatrix"), ParameterBinder::StandardUniform));
Parameter* nMat = new Parameter(m_defaultTechnique, QStringLiteral("normalMat"), Parameter::FloatMat4);
- nMat->setStandardUniform(Parameter::ModelViewNormal);
m_defaultTechnique->addParameter(nMat);
- basicPass->addBinding(new ParameterBinder(QStringLiteral("normalMat"), QStringLiteral("normalMatrix"), ParameterBinder::Uniform));
+ basicPass->addBinding(new ParameterBinder(QStringLiteral("normalMat"), QStringLiteral("normalMatrix"), ParameterBinder::StandardUniform));
Parameter* mvpMat = new Parameter(m_defaultTechnique, QStringLiteral("mvp"), Parameter::FloatMat4);
- mvpMat->setStandardUniform(Parameter::ModelViewProjection);
m_defaultTechnique->addParameter(mvpMat);
- basicPass->addBinding(new ParameterBinder(QStringLiteral("mvp"), QStringLiteral("mvp"), ParameterBinder::Uniform));
+ basicPass->addBinding(new ParameterBinder(QStringLiteral("mvp"), QStringLiteral("mvp"), ParameterBinder::StandardUniform));
// diffuse lighting uniforms
Parameter* lightPos = new Parameter(m_defaultTechnique, QStringLiteral("lightPos"), Parameter::FloatVec4, QVector4D(10.0f, 10.0f, 0.0f, 1.0f));
@@ -230,12 +225,10 @@ void Renderer::buildDefaultMaterial()
if (binding->bindingType() == ParameterBinder::Uniform) {
Q_FOREACH (Parameter *param, m_defaultTechnique->parameters()) {
if (param->name() == binding->parameterName()) {
- if (!param->isStandardUniform()) {
- if (param->datatype() >= Parameter::Float && param->datatype() <= Parameter::FloatMat4)
- m_defaultUniformPack.setUniform(binding->shaderVariableName(), QUniformValue(QUniformValue::Float, param->value()));
- else if (param->datatype() >= Parameter::Int)
- m_defaultUniformPack.setUniform(binding->shaderVariableName(), QUniformValue(QUniformValue::Int, param->value()));
- }
+ if (param->datatype() >= Parameter::Float && param->datatype() <= Parameter::FloatMat4)
+ m_defaultUniformPack.setUniform(binding->shaderVariableName(), QUniformValue(QUniformValue::Float, param->value()));
+ else if (param->datatype() >= Parameter::Int)
+ m_defaultUniformPack.setUniform(binding->shaderVariableName(), QUniformValue(QUniformValue::Int, param->value()));
}
}
}
diff --git a/src/render/frontend/parameter.cpp b/src/render/frontend/parameter.cpp
index a721ec711..2f595e702 100644
--- a/src/render/frontend/parameter.cpp
+++ b/src/render/frontend/parameter.cpp
@@ -50,18 +50,14 @@ namespace Qt3D {
Parameter::Parameter(Node *parent, const QString &name, OpenGLTypes ty) :
Node(parent),
m_name(name),
- m_type(ty),
- m_standardUniform(None)
+ m_type(ty)
{
-
}
Parameter::Parameter(Node *parent)
: Node(parent)
, m_type(Undefined)
- , m_standardUniform(None)
{
-
}
Parameter::Parameter(Node *parent, const QString &name, Parameter::OpenGLTypes ty, const QVariant &value)
@@ -69,7 +65,6 @@ Parameter::Parameter(Node *parent, const QString &name, Parameter::OpenGLTypes t
, m_name(name)
, m_type(ty)
, m_value(value)
- , m_standardUniform(None)
{
}
@@ -82,29 +77,6 @@ void Parameter::setName(const QString &name)
}
}
-void Parameter::setMeshAttributeName(QString name)
-{
- if (m_meshName != name) {
- m_meshName = name;
- emit meshAttributeNameChanged();
- }
-}
-
-bool Parameter::isStandardUniform() const
-{
- return (m_standardUniform != None);
-}
-
-void Parameter::setStandardUniform(Parameter::StandardUniform su)
-{
- m_standardUniform = su;
-}
-
-Parameter::StandardUniform Parameter::standardUniform() const
-{
- return m_standardUniform;
-}
-
void Parameter::setValue(const QVariant &dv)
{
if (m_value != dv) {
diff --git a/src/render/frontend/parameter.h b/src/render/frontend/parameter.h
index f0090dc35..54091702d 100644
--- a/src/render/frontend/parameter.h
+++ b/src/render/frontend/parameter.h
@@ -56,15 +56,14 @@ class QT3DRENDERERSHARED_EXPORT Parameter : public Node
Q_ENUMS(OpenGLTypes)
Q_ENUMS(StandardUniform)
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
- Q_PROPERTY(QString meshAttributeName READ meshAttributeName WRITE setMeshAttributeName NOTIFY meshAttributeNameChanged)
Q_PROPERTY(OpenGLTypes datatype READ datatype WRITE setDatatype NOTIFY datatypeChanged)
Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged)
- Q_PROPERTY(StandardUniform standardUniform WRITE setStandardUniform READ standardUniform CONSTANT)
public:
// FIXME - sort this by frequency, to minimize the size of the
// vector in RenderShader. (We want to use compact storage, but we index
// by this enum, and resize to the largest value)
+ // Will be moved out of parameter
enum StandardUniform
{
None = -1,
@@ -121,17 +120,6 @@ public:
QString name() const
{ return m_name; }
- // permit one extra level of indrection in mesh naming of
- // attributes (glTf at least does this)
- void setMeshAttributeName(QString name);
- QString meshAttributeName() const
- { return m_meshName; }
-
- bool isStandardUniform() const;
-
- void setStandardUniform(StandardUniform su);
- StandardUniform standardUniform() const;
-
/**
* @brief setDefaultValue - for non-texture uniform parameters
* @param dv
@@ -153,7 +141,6 @@ public:
Q_SIGNALS:
void valueChanged();
void nameChanged();
- void meshAttributeNameChanged();
void datatypeChanged();
private:
@@ -161,7 +148,6 @@ private:
OpenGLTypes m_type;
QVariant m_value;
QString m_meshName;
- StandardUniform m_standardUniform;
};
} // Qt3D
diff --git a/src/render/frontend/parameterbinder.h b/src/render/frontend/parameterbinder.h
index 992947335..87e041e7d 100644
--- a/src/render/frontend/parameterbinder.h
+++ b/src/render/frontend/parameterbinder.h
@@ -60,7 +60,8 @@ public:
enum Binding
{
Uniform = 0,
- Attribute
+ Attribute,
+ StandardUniform
};
explicit ParameterBinder(QObject *parent = 0);
diff --git a/src/render/io/gltfparser.cpp b/src/render/io/gltfparser.cpp
index 8a0796f1e..0728ff05e 100644
--- a/src/render/io/gltfparser.cpp
+++ b/src/render/io/gltfparser.cpp
@@ -799,14 +799,14 @@ void GLTFParser::processJSONTechnique( QString id, QJsonObject jsonObj )
// But a string
Parameter* p = new Parameter(t, pname, parseType(po.value(KEY_TYPE).toString().toUtf8()));
Parameter::StandardUniform su = parseSemanticName(semantic.toUtf8());
- if (su != Parameter::None) {
- p->setStandardUniform(su);
- } else {
- // should really verify it's an attribute parameter?
- // but what would be the way to do that?
- // check the accessor dict?
- p->setMeshAttributeName(semantic);
- }
+// if (su != Parameter::None) {
+// p->setStandardUniform(su);
+// } else {
+// // should really verify it's an attribute parameter?
+// // but what would be the way to do that?
+// // check the accessor dict?
+// p->setMeshAttributeName(semantic);
+// }
t->addParameter(p);