arrayspu.c revision 236b6e0fdf652661ff4c655314fe488998c5c17d
/* Copyright (c) 2001, Stanford University
* All rights reserved
*
* See the file LICENSE.txt for information on redistributing this software.
*/
#include <stdio.h>
#include "cr_spu.h"
#include "cr_error.h"
#include "state/cr_limits.h"
#include "arrayspu.h"
#ifdef CHROMIUM_THREADSAFE
#endif
{
unsigned char *p;
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
}
/*
* Vertex attribute arrays (GL_NV_vertex_program) have priority over
* the conventional vertex arrays.
*/
if (vpEnabled)
{
{
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
case GL_SHORT:
{
}
break;
case GL_INT:
{
}
break;
case GL_FLOAT:
{
}
break;
case GL_DOUBLE:
{
}
break;
default:
crWarning("Bad datatype for vertex attribute [%d] array: 0x%x\n",
}
}
}
}
/* Now do conventional arrays, unless overriden by generic arrays above */
{
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
case GL_SHORT:
{
}
break;
case GL_INT:
{
}
break;
case GL_FLOAT:
{
}
break;
case GL_DOUBLE:
{
}
break;
}
}
}
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
}
}
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
case GL_BYTE:
{
}
break;
case GL_UNSIGNED_BYTE:
{
}
break;
case GL_SHORT:
{
}
break;
case GL_UNSIGNED_SHORT:
{
}
break;
case GL_INT:
{
}
break;
case GL_UNSIGNED_INT:
{
}
break;
case GL_FLOAT:
{
}
break;
case GL_DOUBLE:
{
}
break;
}
}
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
}
}
#ifdef CR_EXT_secondary_color
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
case GL_BYTE:
case GL_UNSIGNED_BYTE:
case GL_SHORT:
case GL_UNSIGNED_SHORT:
case GL_INT:
case GL_UNSIGNED_INT:
case GL_FLOAT:
case GL_DOUBLE:
}
}
#endif // CR_EXT_secondary_color
#ifdef CR_EXT_fog_coord
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
}
#endif // CR_EXT_fog_coord
/* Need to do attrib[0] / vertex position last */
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
case GL_SHORT:
{
}
break;
case GL_INT:
{
}
break;
case GL_FLOAT:
{
}
break;
case GL_DOUBLE:
{
}
break;
default:
}
}
{
#ifdef CR_ARB_vertex_buffer_object
{
}
#endif
{
case GL_SHORT:
{
}
break;
case GL_INT:
{
}
break;
case GL_FLOAT:
{
}
break;
case GL_DOUBLE:
{
}
break;
default:
}
}
}
{
int i;
if (count < 0)
{
}
if (mode > GL_POLYGON)
{
}
for (i=0; i<count; i++)
{
}
}
{
int i;
#ifdef CR_ARB_vertex_buffer_object
#endif
if (count < 0)
{
}
if (mode > GL_POLYGON)
{
}
{
}
#ifdef CR_ARB_vertex_buffer_object
{
p = (unsigned char *)(elementsBuffer->data) + (unsigned long)p;
}
#endif
//crDebug("arrayspu_DrawElements mode:0x%x, count:%d, type:0x%x", mode, count, type);
switch (type)
{
case GL_UNSIGNED_BYTE:
for (i=0; i<count; i++)
{
}
break;
case GL_UNSIGNED_SHORT:
for (i=0; i<count; i++)
{
p+=sizeof (GLushort);
}
break;
case GL_UNSIGNED_INT:
for (i=0; i<count; i++)
{
p+=sizeof (GLuint);
}
break;
default:
crError( "this can't happen: array_spu.self.DrawElements" );
break;
}
}
static void ARRAYSPU_APIENTRY arrayspu_DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)
{
{
}
}
static void ARRAYSPU_APIENTRY arrayspu_ColorPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
{
}
static void ARRAYSPU_APIENTRY arrayspu_SecondaryColorPointerEXT( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
{
}
static void ARRAYSPU_APIENTRY arrayspu_VertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
{
}
static void ARRAYSPU_APIENTRY arrayspu_TexCoordPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
{
}
static void ARRAYSPU_APIENTRY arrayspu_NormalPointer( GLenum type, GLsizei stride, const GLvoid *pointer )
{
}
static void ARRAYSPU_APIENTRY arrayspu_IndexPointer( GLenum type, GLsizei stride, const GLvoid *pointer )
{
}
{
}
static void ARRAYSPU_APIENTRY arrayspu_VertexAttribPointerNV( GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer )
{
}
static void ARRAYSPU_APIENTRY arrayspu_FogCoordPointerEXT( GLenum type, GLsizei stride, const GLvoid *pointer )
{
}
{
}
{
}
{
}
{
}
static void ARRAYSPU_APIENTRY arrayspu_MultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
{
int i;
if (primcount < 0)
{
}
if (mode > GL_POLYGON)
{
}
for (i = 0; i < primcount; i++)
{
}
}
static void ARRAYSPU_APIENTRY arrayspu_MultiDrawElementsEXT(GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount)
{
int i;
if (primcount < 0)
{
}
if (mode > GL_POLYGON)
{
}
{
}
for (i = 0; i < primcount; i++)
{
}
}
/*
* in order to handle vertex attribute arrays correctly.
*/
{
if (cap == GL_VERTEX_PROGRAM_NV) {
}
}
{
if (cap == GL_VERTEX_PROGRAM_NV) {
}
}
/*@todo: it's a hack, as GLSL shouldn't blindly reuse this bit from nv_vertex_program*/
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
/* We need to implement Push/PopClientAttrib here so that _our_ state
* tracker gets used. Also, pass the call onto the next SPU (in case
* it's the GL_CLIENT_PIXEL_STORE_BIT, etc).
*/
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
arrayspu_PopClientAttrib( void )
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static GLboolean ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static void * ARRAYSPU_APIENTRY
{
}
static GLboolean ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static void ARRAYSPU_APIENTRY
{
}
static GLint ARRAYSPU_APIENTRY
{
#ifdef CHROMIUM_THREADSAFE
#endif
/* find an empty context slot */
/* found empty slot */
break;
}
}
}
#ifdef CR_ARB_vertex_buffer_object
#endif
#ifdef CHROMIUM_THREADSAFE
#endif
return ctx;
}
static void ARRAYSPU_APIENTRY
{
#ifdef CHROMIUM_THREADSAFE
#endif
if (ctx) {
int slot;
}
else
{
}
#ifdef CHROMIUM_THREADSAFE
#endif
}
static void ARRAYSPU_APIENTRY
{
#ifdef CHROMIUM_THREADSAFE
#endif
if (ctx) {
int slot;
}
#ifdef CHROMIUM_THREADSAFE
#endif
}
};