Additional semantic checking for tessellation shaders and related clean up:
- non-arrayed geometry inputs and tessellation-control outputs - include user blocks in i/o array resizing based on primitive type - things belonging only to 'in' or 'out' are verified only on 'in' or 'out' - invocation number changing - move shader-scoped qualifier checking into its class - remove an incidental union of two levels of the node hierarchy in the yacc stack - remove layout(location=) default tracking when setting on a variable git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24551 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
76ea74afe0
commit
7c908d2543
20 changed files with 280 additions and 206 deletions
|
|
@ -471,6 +471,28 @@ struct TShaderQualifiers {
|
|||
order = EvoNone;
|
||||
pointMode = false;
|
||||
}
|
||||
|
||||
// Merge in characteristics from the 'src' qualifier. They can override when
|
||||
// set, but never erase when not set.
|
||||
void merge(const TShaderQualifiers& src)
|
||||
{
|
||||
if (src.geometry != ElgNone)
|
||||
geometry = src.geometry;
|
||||
if (src.pixelCenterInteger)
|
||||
pixelCenterInteger = src.pixelCenterInteger;
|
||||
if (src.originUpperLeft)
|
||||
originUpperLeft = src.originUpperLeft;
|
||||
if (src.invocations != 0)
|
||||
invocations = src.invocations;
|
||||
if (src.vertices != 0)
|
||||
vertices = src.vertices;
|
||||
if (src.spacing != EvsNone)
|
||||
spacing = src.spacing;
|
||||
if (src.order != EvoNone)
|
||||
order = src.order;
|
||||
if (src.pointMode)
|
||||
pointMode = true;
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue