this is the vertex array setup … but the bug cannot be in this code … infact it works fine with FlatSurface and Mesh … it fails only with Patch surface …
public void prepareArray(GL gl, int flags) {
gl.glClientActiveTextureARB(gl.GL_TEXTURE0_ARB);
if ((flags & VERTEX) > 0)
gl.glVertexPointer(3, gl.GL_FLOAT, 0, vertBuffer);
if ((flags & TEXTURE) > 0)
gl.glTexCoordPointer(2, gl.GL_FLOAT, 0, texBuffer );
if ((flags & LIGHTMAP) > 0)
{
gl.glClientActiveTextureARB(gl.GL_TEXTURE1_ARB);
gl.glEnable(gl.GL_TEXTURE_2D);
gl.glTexCoordPointer(2, gl.GL_FLOAT, 0, lmBuffer );
gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY);
}
gl.glEnableClientState(gl.GL_VERTEX_ARRAY);
gl.glActiveTextureARB(gl.GL_TEXTURE1_ARB);
gl.glTexEnvf (gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_MODE, gl.GL_COMBINE_EXT);
// Operator.
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_COMBINE_RGB_EXT, gl.GL_MODULATE);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_COMBINE_ALPHA_EXT, gl.GL_MODULATE );
// Arg0.
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_SOURCE0_RGB_EXT, gl.GL_PREVIOUS_EXT );
// gl.glTexEnvfv(gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_COLOR, new float [] { 0.3f, 0.3f, 0.3f, 0.0f} );
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_OPERAND0_RGB_EXT, gl.GL_SRC_COLOR);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_SOURCE0_ALPHA_EXT, gl.GL_PREVIOUS_EXT);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_OPERAND0_ALPHA_EXT, gl.GL_SRC_ALPHA );
// Arg1.
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_SOURCE1_RGB_EXT, gl.GL_TEXTURE);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_OPERAND1_RGB_EXT, gl.GL_SRC_COLOR);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_SOURCE1_ALPHA_EXT, gl.GL_TEXTURE );
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_OPERAND1_ALPHA_EXT, gl.GL_SRC_ALPHA );
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_SOURCE2_RGB_EXT, gl.GL_PRIMARY_COLOR_EXT);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_OPERAND2_RGB_EXT, gl.GL_SRC_COLOR);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_SOURCE2_ALPHA_EXT, gl.GL_PRIMARY_COLOR_EXT );
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_OPERAND2_ALPHA_EXT, gl.GL_SRC_ALPHA );
}
The engine works fine … but it doesn’t render curved surface … HELP PLEASE!