DECO_SPEC_ID = 1,
DECO_ARRAY_STRIDE = 6,
DECO_MATRIX_STRIDE = 7,
+ DECO_BUILTIN = 11,
DECO_LOCATION = 30,
DECO_BINDING = 33,
DECO_DESCRIPTOR_SET = 34,
case DECO_ARRAY_STRIDE:
types[id].array_stride = *op;
break;
+ case DECO_BUILTIN:
+ variables[id].builtin = static_cast<BuiltinSemantic>(*op);
+ break;
case DECO_LOCATION:
variables[id].location = *op;
break;
case DECO_MATRIX_STRIDE:
member.matrix_stride = *op;
break;
+ case DECO_BUILTIN:
+ member.builtin = static_cast<BuiltinSemantic>(*op);
+ break;
case DECO_OFFSET:
member.offset = *op;
break;
OUTPUT = 3
};
+ enum BuiltinSemantic
+ {
+ NOT_BUILTIN = -1,
+ POSITION = 0,
+ CLIP_DISTANCE = 3,
+ LAYER = 9,
+ FRAG_DEPTH = 22
+ };
+
struct Constant;
struct Structure;
struct Variable;
const Constant *array_size_spec = 0;
unsigned array_stride = 0;
unsigned matrix_stride = 0;
+ BuiltinSemantic builtin = NOT_BUILTIN;
};
struct Structure
int location = -1;
int descriptor_set = -1;
int binding = -1;
+ BuiltinSemantic builtin = NOT_BUILTIN;
bool operator==(const Variable &) const;
};