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:
parent
2fcc9ff1d2
commit
623833fabc
28 changed files with 831 additions and 342 deletions
|
|
@ -577,22 +577,46 @@ bool OutputSwitch(bool /* preVisit */, TIntermSwitch* node, TIntermTraverser* it
|
|||
// Individual functions can be initialized to 0 to skip processing of that
|
||||
// type of node. It's children will still be processed.
|
||||
//
|
||||
void TIntermediate::outputTree(TInfoSink& infoSink)
|
||||
void TIntermediate::output(TInfoSink& infoSink, bool tree)
|
||||
{
|
||||
if (language == EShLangGeometry) {
|
||||
switch (language) {
|
||||
case EShLangVertex:
|
||||
break;
|
||||
|
||||
case EShLangTessControl:
|
||||
infoSink.debug << "vertices = " << vertices << "\n";
|
||||
break;
|
||||
|
||||
case EShLangTessEvaluation:
|
||||
infoSink.debug << "input primitive = " << TQualifier::getGeometryString(inputPrimitive) << "\n";
|
||||
infoSink.debug << "vertex spacing = " << TQualifier::getVertexSpacingString(vertexSpacing) << "\n";
|
||||
infoSink.debug << "triangle order = " << TQualifier::getVertexOrderString(vertexOrder) << "\n";
|
||||
if (pointMode)
|
||||
infoSink.debug << "using point mode\n";
|
||||
break;
|
||||
|
||||
case EShLangGeometry:
|
||||
infoSink.debug << "invocations = " << invocations << "\n";
|
||||
infoSink.debug << "max_vertices = " << maxVertices << "\n";
|
||||
infoSink.debug << "max_vertices = " << vertices << "\n";
|
||||
infoSink.debug << "input primitive = " << TQualifier::getGeometryString(inputPrimitive) << "\n";
|
||||
infoSink.debug << "output primitive = " << TQualifier::getGeometryString(outputPrimitive) << "\n";
|
||||
}
|
||||
if (language == EShLangFragment) {
|
||||
break;
|
||||
|
||||
case EShLangFragment:
|
||||
if (pixelCenterInteger)
|
||||
infoSink.debug << "gl_FragCoord pixel center is integer\n";
|
||||
if (originUpperLeft)
|
||||
infoSink.debug << "gl_FragCoord origin is upper left\n";
|
||||
break;
|
||||
|
||||
case EShLangCompute:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (treeRoot == 0)
|
||||
if (treeRoot == 0 || ! tree)
|
||||
return;
|
||||
|
||||
TOutputTraverser it(infoSink);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue