2
* $Id: RAS_VAOpenGLRasterizer.cpp,v 1.5 2004/04/11 02:50:02 kester Exp $
2
* $Id: RAS_VAOpenGLRasterizer.cpp,v 1.12 2005/01/03 18:05:24 sirdude Exp $
3
3
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
5
5
* This program is free software; you can redistribute it and/or
76
76
glEnableClientState(GL_VERTEX_ARRAY);
77
77
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
78
glDisableClientState(GL_NORMAL_ARRAY);
78
glEnableClientState(GL_NORMAL_ARRAY);
79
79
glDisableClientState(GL_COLOR_ARRAY);
81
81
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
125
125
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
126
126
glDisableClientState(GL_COLOR_ARRAY);
127
127
glDisableClientState(GL_NORMAL_ARRAY);
128
glDisable(GL_COLOR_MATERIAL);
130
129
RAS_OpenGLRasterizer::Exit();
183
181
glColor3d(0,0,0);
185
183
// use glDrawElements to draw each vertexarray
186
static bool doWarning = true;
187
if (vertexarrays.size() > 1 && doWarning)
189
/* TODO: if vertexarrays.size() == 1 then if we are multitexturing
190
we can glLockArraysEXT the vertex arrays - GL will be able to cache
191
the vertex transforms. */
192
std::cout << "# vertex arrays: " << vertexarrays.size() << std::endl;
193
std::cout << "I wondered if this could happen: please inform the proper authorities." << std::endl;
197
184
for (vt=0;vt<vertexarrays.size();vt++)
199
186
vertexarray = &((*vertexarrays[vt]) [0]);
200
187
const KX_IndexArray & indexarray = (*indexarrays[vt]);
201
188
numindices = indexarray.size();
202
int numverts = vertexarrays[vt]->size();
189
// int numverts = vertexarrays[vt]->size();
207
194
glVertexPointer(3,GL_FLOAT,vtxstride,vertexarray->getLocalXYZ());
208
195
glTexCoordPointer(2,GL_FLOAT,vtxstride,vertexarray->getUV1());
209
glColorPointer(4,GL_UNSIGNED_BYTE,vtxstride,&vertexarray->getRGBA());
210
glNormalPointer(GL_SHORT,vtxstride,vertexarray->getNormal());
196
glColorPointer(4,GL_UNSIGNED_BYTE,vtxstride,vertexarray->getRGBA());
197
glNormalPointer(GL_FLOAT,vtxstride,vertexarray->getNormal());
211
198
//glLockArraysEXT(0,numverts);
212
199
// here the actual drawing takes places
213
glDrawElements(drawmode,numindices,GL_UNSIGNED_INT,&(indexarray[0]));
200
glDrawElements(drawmode,numindices,GL_UNSIGNED_SHORT,&(indexarray[0]));
214
201
//glUnlockArraysEXT();