glslang preprocessing: Add -E option to print out preprocessed GLSL, and do the work needed to generate a preprocessed stream. From Andrew Woloszyn <awoloszyn@google.com>.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31508 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
9288f46b95
commit
c555dddd53
23 changed files with 609 additions and 55 deletions
|
|
@ -629,10 +629,15 @@ int TPpContext::CPPline(TPpToken* ppToken)
|
|||
return token;
|
||||
}
|
||||
|
||||
int lineRes = 0;
|
||||
int lineRes = 0; // Line number after macro expansion.
|
||||
int lineToken = 0;
|
||||
int fileRes = 0; // Source file number after macro expansion.
|
||||
bool hasFile = false;
|
||||
bool lineErr = false;
|
||||
bool fileErr = false;
|
||||
token = eval(token, MIN_PRECEDENCE, false, lineRes, lineErr, ppToken);
|
||||
if (! lineErr) {
|
||||
lineToken = lineRes;
|
||||
if (token == '\n')
|
||||
++lineRes;
|
||||
|
||||
|
|
@ -648,14 +653,15 @@ int TPpContext::CPPline(TPpToken* ppToken)
|
|||
parseContext.setCurrentLine(lineRes);
|
||||
|
||||
if (token != '\n') {
|
||||
int fileRes = 0;
|
||||
bool fileErr = false;
|
||||
token = eval(token, MIN_PRECEDENCE, false, fileRes, fileErr, ppToken);
|
||||
if (! fileErr)
|
||||
parseContext.setCurrentString(fileRes);
|
||||
hasFile = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!fileErr && !lineErr) {
|
||||
parseContext.notifyLineDirective(lineToken, hasFile, fileRes);
|
||||
}
|
||||
token = extraTokenCheck(lineAtom, ppToken, token);
|
||||
|
||||
return token;
|
||||
|
|
@ -680,6 +686,7 @@ int TPpContext::CPPerror(TPpToken* ppToken)
|
|||
message.append(" ");
|
||||
token = scanToken(ppToken);
|
||||
}
|
||||
parseContext.notifyErrorDirective(loc.line, message.c_str());
|
||||
//store this msg into the shader's information log..set the Compile Error flag!!!!
|
||||
parseContext.error(loc, message.c_str(), "#error", "");
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue