GLSL: Allow desktop shaders to call functions from outside main().
Fixes issue #239.
This commit is contained in:
parent
ec2e27adf8
commit
9df6aa5361
@ -1,9 +1,8 @@
|
|||||||
110scope.vert
|
110scope.vert
|
||||||
ERROR: 0:5: 'a' : redefinition
|
ERROR: 0:5: 'a' : redefinition
|
||||||
ERROR: 0:34: 'f' : can't call user function from global scope
|
|
||||||
ERROR: 0:57: 'z' : undeclared identifier
|
ERROR: 0:57: 'z' : undeclared identifier
|
||||||
ERROR: 0:57: 'z' : redefinition
|
ERROR: 0:57: 'z' : redefinition
|
||||||
ERROR: 4 compilation errors. No code generated.
|
ERROR: 3 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 110
|
Shader version: 110
|
||||||
|
|||||||
@ -2,5 +2,5 @@
|
|||||||
// For the version, it uses the latest git tag followed by the number of commits.
|
// For the version, it uses the latest git tag followed by the number of commits.
|
||||||
// For the date, it uses the current date (when then script is run).
|
// For the date, it uses the current date (when then script is run).
|
||||||
|
|
||||||
#define GLSLANG_REVISION "Overload400-PrecQual.1674"
|
#define GLSLANG_REVISION "Overload400-PrecQual.1676"
|
||||||
#define GLSLANG_DATE "03-Dec-2016"
|
#define GLSLANG_DATE "05-Dec-2016"
|
||||||
|
|||||||
@ -1109,9 +1109,10 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction
|
|||||||
// if builtIn == true, it's definitely a built-in function with EOpNull
|
// if builtIn == true, it's definitely a built-in function with EOpNull
|
||||||
if (! builtIn) {
|
if (! builtIn) {
|
||||||
call->setUserDefined();
|
call->setUserDefined();
|
||||||
if (symbolTable.atGlobalLevel())
|
if (symbolTable.atGlobalLevel()) {
|
||||||
error(loc, "can't call user function from global scope", fnCandidate->getName().c_str(), "");
|
requireProfile(loc, ~EEsProfile, "calling user function from global scope");
|
||||||
else
|
intermediate.addToCallGraph(infoSink, "main(", fnCandidate->getMangledName());
|
||||||
|
} else
|
||||||
intermediate.addToCallGraph(infoSink, currentCaller, fnCandidate->getMangledName());
|
intermediate.addToCallGraph(infoSink, currentCaller, fnCandidate->getMangledName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user