OUTLINE_RESOLUTION = 4096, // Maximum vertical resolution of the render target\r
MIPMAP_LEVELS = 14,\r
MAX_COLOR_ATTACHMENTS = 8,\r
+ VERTEX_ATTRIBUTES = 16,\r
TEXTURE_IMAGE_UNITS = 16,\r
VERTEX_TEXTURE_IMAGE_UNITS = 16,\r
TOTAL_IMAGE_UNITS = TEXTURE_IMAGE_UNITS + VERTEX_TEXTURE_IMAGE_UNITS,\r
\r
enum\r
{\r
- MAX_VERTEX_ATTRIBS = 16,\r
+ MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,\r
MAX_VARYING_VECTORS = 10,\r
MAX_TEXTURE_UNITS = 2,\r
MAX_DRAW_BUFFERS = 1,\r
\r
enum\r
{\r
- MAX_VERTEX_ATTRIBS = 16,\r
+ MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,\r
MAX_UNIFORM_VECTORS = 256, // Device limit\r
MAX_VERTEX_UNIFORM_VECTORS = VERTEX_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange\r
MAX_VARYING_VECTORS = 10,\r
}
// Set vertex streams to null stream
- for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+ for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
{
input[i].defaults();
}
bool colorUsed();\r
\r
Resource *texture[TOTAL_IMAGE_UNITS];\r
- Stream input[TEXTURE_IMAGE_UNITS];\r
+ Stream input[VERTEX_ATTRIBUTES];\r
Resource *indexBuffer;\r
\r
bool preTransformed; // FIXME: Private\r
draw->setupPrimitives = setupPrimitives;
draw->setupState = setupState;
- for(int i = 0; i < 16; i++)
+ for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
{
draw->vertexStream[i] = context->input[i].resource;
data->input[i] = context->input[i].buffer;
}
}
- for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+ for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
{
if(draw.vertexStream[i])
{
{
const void *constants;
- const void *input[TEXTURE_IMAGE_UNITS];
- unsigned int stride[TEXTURE_IMAGE_UNITS];
+ const void *input[VERTEX_ATTRIBUTES];
+ unsigned int stride[VERTEX_ATTRIBUTES];
Texture mipmap[TOTAL_IMAGE_UNITS];
const void *indices;
int (*setupPrimitives)(Renderer *renderer, int batch, int count);
SetupProcessor::State setupState;
- Resource *vertexStream[TEXTURE_IMAGE_UNITS];
+ Resource *vertexStream[VERTEX_ATTRIBUTES];
Resource *indexBuffer;
Surface *renderTarget[4];
Surface *depthStencil;
void VertexProcessor::resetInputStreams(bool preTransformed)
{
- for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+ for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
{
context->input[i].defaults();
}
state.superSampling = context->getSuperSampleCount() > 1;
state.multiSampling = context->getMultiSampleCount() > 1;
- for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+ for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
{
state.input[i].type = context->input[i].type;
state.input[i].count = context->input[i].count;
};\r
};\r
\r
- Input input[TEXTURE_IMAGE_UNITS];\r
+ Input input[VERTEX_ATTRIBUTES];\r
Output output[12];\r
};\r
\r
void VertexRoutine::readInput(Registers &r, UInt &index)
{
- for(int i = 0; i < TEXTURE_IMAGE_UNITS; i++)
+ for(int i = 0; i < VERTEX_ATTRIBUTES; i++)
{
Pointer<Byte> input = *Pointer<Pointer<Byte> >(r.data + OFFSET(DrawData,input) + sizeof(void*) * i);
UInt stride = *Pointer<UInt>(r.data + OFFSET(DrawData,stride) + sizeof(unsigned int) * i);