- void C3D_StaticTerrain::RenderImmediate(void)
 - {
 - // Buffer erzeugen
 - SVertex3f* pvCoords = NULL;
 - pvCoords = new SVertex3f[usBlockRes * usBlockRes];
 - if(pvCoords == NULL)
 - {
 - delete[] pvCoords;
 - return;
 - }
 - float fx = -fSmallestBlockSize * 0.5f;
 - float fz;
 - float fstep = fSmallestBlockSize / float(usBlockRes);
 - unsigned short x, z, i=0;
 - for(x=0; x<usBlockRes; ++x)
 - {
 - fz = -fSmallestBlockSize * 0.5f;
 - for(z=0; z<usBlockRes; ++z)
 - {
 - pvCoords[i].x = fx;
 - pvCoords[i].y = 0.0f;
 - pvCoords[i].z = fz;
 - fz += fstep;
 - ++i;
 - }
 - fx += fstep;
 - }
 - // Rendern
 - glBegin(GL_TRIANGLE_STRIP);
 - for(x=0; x<usBlockRes-1; ++x)
 - {
 - z = 0;
 - i = x*usBlockRes;
 - glVertex3fv((float*) &pvCoords[i]);
 - glVertex3fv((float*) &pvCoords[i]);
 - i += usBlockRes;
 - glVertex3fv((float*) &pvCoords[i]);
 - for(z=1; z<usBlockRes; ++z)
 - {
 - i -= usBlockRes -1;
 - glVertex3fv((float*) &pvCoords[i]);
 - i += usBlockRes;
 - glVertex3fv((float*) &pvCoords[i]);
 - }
 - glVertex3fv((float*) &pvCoords[i]);
 - }
 - glEnd();
 - delete[] pvCoords;
 - }
 
