Now when I run my code through debug mode and reduce my array size to 128x128 I am well within 65k now and my program doesn''t crash at glDrawElements() anymore but crashes when it comes to SwapBuffers()??? I completely lock my system up now. Any ideas? Here is my code for
void CTerrain::DrawTerrain(unsigned int *texture){ glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertex_buffer); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, index_buffer); /* glActiveTextureARB(GL_TEXTURE0_ARB); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[GRASS]); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glActiveTextureARB(GL_TEXTURE1_ARB); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[GRASS_DETAIL]); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_ARB, 2);*/ glEnable(GL_LIGHTING); glEnable(GL_LIGHT1); glEnable(GL_RESCALE_NORMAL); glEnableClientState(GL_VERTEX_ARRAY);// glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glVertexPointer(3, GL_FLOAT, 0, terrain);// glTexCoordPointer(2, GL_FLOAT, 0, tex_coord); glNormalPointer(GL_FLOAT, 0, normal); // glClientActiveTextureARB(GL_TEXTURE0_ARB); // glClientActiveTextureARB(GL_TEXTURE1_ARB); for(int z = 0; z < MAP_Z - 1; z++) glDrawElements(GL_TRIANGLE_STRIP, MAP_X * 2, GL_UNSIGNED_INT, &indexs[z * MAP_X * 2]);// glDisable(GL_TEXTURE_2D);// glActiveTextureARB(GL_TEXTURE0_ARB);// glDisable(GL_TEXTURE_2D); glDisable(GL_NORMALIZE); glDisable(GL_LIGHT1); glDisable(GL_LIGHTING); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY);// glDisableClientState(GL_TEXTURE_COORD_ARRAY);}
Here is my rendering function
void Render(CTerrain &terrain){ float radians = float(PI * (move_x - 90.0f) / 180.0f); camera_x = look_x + sin(radians) * move_y; camera_y = look_y + move_y / 2.0f; camera_z = look_z + cos(radians) * move_y; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); //glRotatef(30.0f, 1.0f, 0.0f, 0.0f); //top down gluLookAt(camera_x, camera_y, camera_z, look_x, look_y, look_z, 0.0, 1.0, 0.0); glCallList(terrain.skybox_list); terrain.DrawTerrain(textures); terrain.SetupLighting(); SwapBuffers(ghdc);}
Thanks