Tessellation partial implementation (not ready for use yet), including:

- the built-in constants
 - built-in variable declarations, some dependent on gl_MaxPatchVertices
 - layout qualifier for vertices (shared with geometry shader max_vertices)
 - layout qualifiers for vertex spacing, vertex order, point mode, and primitive type
 - link semantics for layout qualifiers

Still TBD:
 - patch qualifier and arrayed input handling
 - sizing of gl_out[]
 - additional semantic checking
 - supporting the extension on version 150

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24468 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-12-11 18:57:40 +00:00
parent 2fcc9ff1d2
commit 623833fabc
28 changed files with 831 additions and 342 deletions

View file

@ -523,7 +523,7 @@ bool CompileDeferred(
}
if (messages & EShMsgAST)
intermediate.outputTree(parseContext.infoSink);
intermediate.output(parseContext.infoSink, true);
delete [] lengths;
delete [] strings;
@ -1057,12 +1057,12 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages)
std::list<TShader*>::const_iterator it;
for (it = stages[stage].begin(); it != stages[stage].end(); ++it)
intermediate[stage]->merge(*infoSink, *(*it)->intermediate);
if (messages & EShMsgAST)
intermediate[stage]->outputTree(*infoSink);
}
intermediate[stage]->errorCheck(*infoSink);
intermediate[stage]->finalCheck(*infoSink);
if (messages & EShMsgAST)
intermediate[stage]->output(*infoSink, stages[stage].size() > 1);
return intermediate[stage]->getNumErrors() == 0;
}