Fixed shader generation bug for array variables.
This commit is contained in:
parent
c6143ae640
commit
98a9f5c628
@ -258,7 +258,7 @@ public class Glsl100ShaderGenerator extends ShaderGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (ShaderNodeVariable var : shaderNode.getDefinition().getOutputs()) {
|
for (ShaderNodeVariable var : shaderNode.getDefinition().getOutputs()) {
|
||||||
ShaderNodeVariable v = new ShaderNodeVariable(var.getType(), shaderNode.getName(), var.getName());
|
ShaderNodeVariable v = new ShaderNodeVariable(var.getType(), shaderNode.getName(), var.getName(), var.getMultiplicity());
|
||||||
if (!declaredInputs.contains(shaderNode.getName() + "_" + var.getName())) {
|
if (!declaredInputs.contains(shaderNode.getName() + "_" + var.getName())) {
|
||||||
if (!isVarying(info, v)) {
|
if (!isVarying(info, v)) {
|
||||||
declareVariable(source, v);
|
declareVariable(source, v);
|
||||||
@ -397,6 +397,11 @@ public class Glsl100ShaderGenerator extends ShaderGenerator {
|
|||||||
source.append(mapping.getLeftVariable().getNameSpace());
|
source.append(mapping.getLeftVariable().getNameSpace());
|
||||||
source.append("_");
|
source.append("_");
|
||||||
source.append(mapping.getLeftVariable().getName());
|
source.append(mapping.getLeftVariable().getName());
|
||||||
|
if (mapping.getLeftVariable().getMultiplicity() != null){
|
||||||
|
source.append("[");
|
||||||
|
source.append(mapping.getLeftVariable().getMultiplicity());
|
||||||
|
source.append("]");
|
||||||
|
}
|
||||||
|
|
||||||
//left swizzle, the variable can't be declared and assigned on the same line.
|
//left swizzle, the variable can't be declared and assigned on the same line.
|
||||||
if (mapping.getLeftSwizzling().length() > 0) {
|
if (mapping.getLeftSwizzling().length() > 0) {
|
||||||
|
@ -752,6 +752,7 @@ public class ShaderNodeLoaderDelegate {
|
|||||||
}
|
}
|
||||||
right.setNameSpace(node.getName());
|
right.setNameSpace(node.getName());
|
||||||
right.setType(var.getType());
|
right.setType(var.getType());
|
||||||
|
right.setMultiplicity(var.getMultiplicity());
|
||||||
mapping.setRightVariable(right);
|
mapping.setRightVariable(right);
|
||||||
storeVaryings(node, mapping.getRightVariable());
|
storeVaryings(node, mapping.getRightVariable());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user