// Add a branch to the innermost switch's merge block.
voidaddSwitchBreak();
...
...
@@ -569,10 +587,13 @@ public:
std::vector<Id>indexChain;
Idinstr;// cache the instruction that generates this access chain
std::vector<unsigned>swizzle;// each std::vector element selects the next GLSL component number
Idcomponent;// a dynamic component index, can coexist with a swizzle, done after the swizzle, NoResult if not present
IdpreSwizzleBaseType;// dereferenced type, before swizzle or component is applied; NoType unless a swizzle or component is present
Idcomponent;// a dynamic component index, can coexist with a swizzle,
// done after the swizzle, NoResult if not present
IdpreSwizzleBaseType;// dereferenced type, before swizzle or component is applied;
// NoType unless a swizzle or component is present
boolisRValue;// true if 'base' is an r-value, otherwise, base is an l-value
unsignedintalignment;// bitwise OR of alignment values passed in. Accumulates worst alignment. Only tracks base and (optional) component selection alignment.
unsignedintalignment;// bitwise OR of alignment values passed in. Accumulates worst alignment.
// Only tracks base and (optional) component selection alignment.
// Accumulate whether anything in the chain of structures has coherent decorations.
structCoherentFlags{
...
...
@@ -655,11 +676,13 @@ public:
}
// push new swizzle onto the end of any existing swizzle, merging into a single swizzle