diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2014-07-07 13:08:17 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-07-07 14:18:03 +0200 |
commit | 188f4d75cdf330f47fa71ade81525b6afde63a58 (patch) | |
tree | e20135e4ad04877a436a141ff97bd1c5194846bc /src/render/io | |
parent | f5c6560547f9d4a1dc08b1f4f0eec5d9653010fc (diff) |
Automatic uniform binding
If the shader contains a uniform with a standard uniform name,
it will automatically be set. If a custom name is used within a shader for a
standard uniform variable, the user can add a ParameterMapper with
parameterName set to the Qt3D standardUniform name and shaderVariableName to
the custom name.
For user specified uniform parameters, if the parameter name is the same as
the shader uniform name, the binding is done automatically. Otherwise, a
ParameterMapper can be used.
At the moment automatic binding for Attributes still has to be sorted out as
default attribute names are dependent on a given MeshData.
Change-Id: If244b26e5c2b01c8b319ba78c57fb1e131736dcb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/io')
-rw-r--r-- | src/render/io/gltfparser.cpp | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/src/render/io/gltfparser.cpp b/src/render/io/gltfparser.cpp index e0777efc7..dffd1ee7e 100644 --- a/src/render/io/gltfparser.cpp +++ b/src/render/io/gltfparser.cpp @@ -137,31 +137,31 @@ const QString KEY_VERTEX_SHADER = QStringLiteral("vertexShader"); const QString KEY_FRAGMENT_SHADER = QStringLiteral("fragmentShader"); const QString KEY_INTERNAL_FORMAT = QStringLiteral("internalFormat"); -Parameter::StandardUniform parseSemanticName(const QByteArray& s) -{ - if (s == "MODEL") return Parameter::ModelMatrix; - if (s == "VIEW") return Parameter::ViewMatrix; - if (s == "PROJECTION") return Parameter::ProjectionMatrix; - if (s == "MODELVIEW") return Parameter::ModelView; - if (s == "MODELVIEWPROJECTION") - return Parameter::ModelViewProjection; - - if (s == "MODELINVERSE") return Parameter::ModelInverse; - if (s == "VIEWINVERSE") return Parameter::ViewInverse; - if (s == "PROJECTIONINVERSE") - return Parameter::ProjectionInverse; - if (s == "MODELVIEWINVERSE") - return Parameter::ModelViewInverse; - if (s == "MODELVIEWPROJECTIONINVERSE") - return Parameter::ModelViewProjectionInverse; - - if (s == "MODELINVERSETRANSPOSE") - return Parameter::ModelNormal; - if (s == "MODELVIEWINVERSETRANSPOSE") - return Parameter::ModelViewNormal; - - return Parameter::None; -} +//Parameter::StandardUniform parseSemanticName(const QByteArray& s) +//{ +// if (s == "MODEL") return Parameter::ModelMatrix; +// if (s == "VIEW") return Parameter::ViewMatrix; +// if (s == "PROJECTION") return Parameter::ProjectionMatrix; +// if (s == "MODELVIEW") return Parameter::ModelView; +// if (s == "MODELVIEWPROJECTION") +// return Parameter::ModelViewProjection; + +// if (s == "MODELINVERSE") return Parameter::ModelInverse; +// if (s == "VIEWINVERSE") return Parameter::ViewInverse; +// if (s == "PROJECTIONINVERSE") +// return Parameter::ProjectionInverse; +// if (s == "MODELVIEWINVERSE") +// return Parameter::ModelViewInverse; +// if (s == "MODELVIEWPROJECTIONINVERSE") +// return Parameter::ModelViewProjectionInverse; + +// if (s == "MODELINVERSETRANSPOSE") +// return Parameter::ModelNormal; +// if (s == "MODELVIEWINVERSETRANSPOSE") +// return Parameter::ModelViewNormal; + +// return Parameter::None; +//} Parameter::OpenGLTypes parseType(const QByteArray &s) { @@ -798,7 +798,7 @@ void GLTFParser::processJSONTechnique( QString id, QJsonObject jsonObj ) // The Standard has changed, it doesn't return the raw int value for a type // But a string Parameter* p = new Parameter(t, pname, parseType(po.value(KEY_TYPE).toString().toUtf8())); - Parameter::StandardUniform su = parseSemanticName(semantic.toUtf8()); +// Parameter::StandardUniform su = parseSemanticName(semantic.toUtf8()); // if (su != Parameter::None) { // p->setStandardUniform(su); // } else { |