Texture mipmap[TOTAL_IMAGE_UNITS];
const void *indices;
- struct VS
- {
- float4 c[VERTEX_UNIFORM_VECTORS + 1]; // One extra for indices out of range, c[VERTEX_UNIFORM_VECTORS] = {0, 0, 0, 0}
- byte* u[MAX_UNIFORM_BUFFER_BINDINGS];
- byte* t[MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS];
- unsigned int reg[MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]; // Offset used when reading from registers, in components
- unsigned int row[MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]; // Number of rows to read
- unsigned int col[MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]; // Number of columns to read
- unsigned int str[MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]; // Number of components between each varying in output buffer
- int4 i[16];
- bool b[16];
- };
-
- struct PS
- {
- float4 c[FRAGMENT_UNIFORM_VECTORS];
- byte* u[MAX_UNIFORM_BUFFER_BINDINGS];
- int4 i[16];
- bool b[16];
- };
-
- VS vs;
- PS ps;
-
int instanceID;
float lineWidth;
spirvShader->emitEpilog(&routine);
}
- RValue<Pointer<Byte>> VertexProgram::uniformAddress(int bufferIndex, unsigned int index)
- {
- if(bufferIndex == -1)
- {
- return data + OFFSET(DrawData, vs.c[index]);
- }
- else
- {
- return *Pointer<Pointer<Byte>>(data + OFFSET(DrawData, vs.u[bufferIndex])) + index;
- }
- }
-
- RValue<Pointer<Byte>> VertexProgram::uniformAddress(int bufferIndex, unsigned int index, Int &offset)
- {
- return uniformAddress(bufferIndex, index) + offset * sizeof(float4);
- }
-
Int4 VertexProgram::enableMask()
{
Int4 enable = true ? Int4(enableStack[enableIndex]) : Int4(0xFFFFFFFF);