1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| 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);
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 ); gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_SOURCE0_RGB_EXT, gl.GL_PREVIOUS_EXT ); 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 );
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 );
} |