From: Carsten W. <ca...@us...> - 2005-07-16 18:25:47
|
Update of /cvsroot/jake2/jake2/src/jake2/render/jogl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10687/src/jake2/render/jogl Modified Files: Tag: render-refactoring Image.java Base.java Draw.java Misc.java Main.java Warp.java Surf.java Mesh.java Light.java Log Message: modified to use the QGL interface Index: Base.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/jogl/Base.java,v retrieving revision 1.2 retrieving revision 1.2.12.1 diff -C2 -d -r1.2 -r1.2.12.1 *** Base.java 15 Jul 2004 14:37:34 -0000 1.2 --- Base.java 16 Jul 2005 18:25:37 -0000 1.2.12.1 *************** *** 26,31 **** package jake2.render.jogl; ! import jake2.render.JoglBase; ! import net.java.games.jogl.GL; /** --- 26,34 ---- package jake2.render.jogl; ! import jake2.client.viddef_t; ! import jake2.game.cvar_t; ! import jake2.render.*; ! ! import java.awt.Dimension; /** *************** *** 34,40 **** * @author cwei */ ! public abstract class Base extends JoglBase { ! static final int GL_COLOR_INDEX8_EXT = GL.GL_COLOR_INDEX; static final String REF_VERSION = "GL 0.01"; --- 37,43 ---- * @author cwei */ ! public abstract class Base implements QGLConst { ! static final int GL_COLOR_INDEX8_EXT = GL_COLOR_INDEX; static final String REF_VERSION = "GL 0.01"; *************** *** 230,295 **** static final int GL_RENDERER_OTHER = 0x80000000; ! // typedef struct ! // { ! // int renderer; ! // const char *renderer_string; ! // const char *vendor_string; ! // const char *version_string; ! // const char *extensions_string; ! // ! // qboolean allow_cds; ! // } glconfig_t; ! // ! // typedef struct ! // { ! // float inverse_intensity; ! // qboolean fullscreen; ! // ! // int prev_mode; ! // ! // unsigned char *d_16to8table; ! // ! // int lightmap_textures; ! // ! // int currenttextures[2]; ! // int currenttmu; ! // ! // float camera_separation; ! // qboolean stereo_enabled; ! // ! // unsigned char originalRedGammaTable[256]; ! // unsigned char originalGreenGammaTable[256]; ! // unsigned char originalBlueGammaTable[256]; ! // } glstate_t; ! // ! // /* ! // ==================================================================== ! // ! // IMPORTED FUNCTIONS ! // ! // ==================================================================== ! // */ ! // ! // extern refimport_t ri; ! // ! // ! // /* ! // ==================================================================== ! // ! // IMPLEMENTATION SPECIFIC FUNCTIONS ! // ! // ==================================================================== ! // */ ! // ! // void GLimp_BeginFrame( float camera_separation ); ! // void GLimp_EndFrame( void ); ! // int GLimp_Init( void *hinstance, void *hWnd ); ! // void GLimp_Shutdown( void ); ! // int GLimp_SetMode( int *pwidth, int *pheight, int mode, qboolean fullscreen ); ! // void GLimp_AppActivate( qboolean active ); ! // void GLimp_EnableLogging( qboolean enable ); ! // void GLimp_LogNewFrame( void ); ! // } --- 233,275 ---- static final int GL_RENDERER_OTHER = 0x80000000; + /* + * base members + */ ! protected viddef_t vid = new viddef_t(); ! ! protected cvar_t vid_fullscreen; ! ! protected QGL gl = LwjglGL.getInstance();//DummyGL.getInstance(); ! ! // enum rserr_t ! protected static final int rserr_ok = 0; ! ! protected static final int rserr_invalid_fullscreen = 1; ! ! protected static final int rserr_invalid_mode = 2; ! ! protected static final int rserr_unknown = 3; ! ! protected abstract int GLimp_SetMode(Dimension dim, int mode, ! boolean fullscreen); ! ! protected abstract void GLimp_Shutdown(); ! ! protected void GLimp_BeginFrame(float camera_separation) { ! // do nothing ! } ! ! protected void GLimp_AppActivate(boolean activate) { ! // do nothing ! } ! ! protected void GLimp_EnableLogging(boolean enable) { ! // do nothing ! } ! ! protected void GLimp_LogNewFrame() { ! // do nothing ! } } Index: Image.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/jogl/Image.java,v retrieving revision 1.6 retrieving revision 1.6.12.1 diff -C2 -d -r1.6 -r1.6.12.1 *** Image.java 22 Sep 2004 19:22:16 -0000 1.6 --- Image.java 16 Jul 2005 18:25:37 -0000 1.6.12.1 *************** *** 43,52 **** import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; ! import java.nio.ByteBuffer; ! import java.nio.ByteOrder; ! import java.nio.IntBuffer; import java.util.Arrays; - import net.java.games.jogl.GL; /** --- 43,49 ---- import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; ! import java.nio.*; import java.util.Arrays; /** *************** *** 87,93 **** int gl_tex_alpha_format = 4; ! int gl_filter_min = GL.GL_LINEAR_MIPMAP_NEAREST; ! int gl_filter_max = GL.GL_LINEAR; Image() { --- 84,90 ---- int gl_tex_alpha_format = 4; ! int gl_filter_min = GL_LINEAR_MIPMAP_NEAREST; ! int gl_filter_max = GL_LINEAR; Image() { *************** *** 103,118 **** assert (palette != null && palette.length == 256) : "int palette[256] bug"; - int i; - byte[] temptable = new byte[768]; - if (qglColorTableEXT && gl_ext_palettedtexture.value != 0.0f) { ! for (i = 0; i < 256; i++) { ! temptable[i * 3 + 0] = (byte) ((palette[i] >> 0) & 0xff); ! temptable[i * 3 + 1] = (byte) ((palette[i] >> 8) & 0xff); ! temptable[i * 3 + 2] = (byte) ((palette[i] >> 16) & 0xff); } ! gl.glColorTableEXT(GL.GL_SHARED_TEXTURE_PALETTE_EXT, GL.GL_RGB, ! 256, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, temptable); } } --- 100,112 ---- assert (palette != null && palette.length == 256) : "int palette[256] bug"; if (qglColorTableEXT && gl_ext_palettedtexture.value != 0.0f) { ! ByteBuffer temptable = Lib.newByteBuffer(768); ! for (int i = 0; i < 256; i++) { ! temptable.put(i * 3 + 0, (byte) ((palette[i] >> 0) & 0xff)); ! temptable.put(i * 3 + 1, (byte) ((palette[i] >> 8) & 0xff)); ! temptable.put(i * 3 + 2, (byte) ((palette[i] >> 16) & 0xff)); } ! gl.glColorTable(GL_SHARED_TEXTURE_PALETTE_EXT, GL_RGB, 256, GL_RGB, GL_UNSIGNED_BYTE, temptable); } } *************** *** 124,136 **** if (enable) { GL_SelectTexture(GL_TEXTURE1); ! gl.glEnable(GL.GL_TEXTURE_2D); ! GL_TexEnv(GL.GL_REPLACE); } else { GL_SelectTexture(GL_TEXTURE1); ! gl.glDisable(GL.GL_TEXTURE_2D); ! GL_TexEnv(GL.GL_REPLACE); } GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv(GL.GL_REPLACE); } --- 118,130 ---- if (enable) { GL_SelectTexture(GL_TEXTURE1); ! gl.glEnable(GL_TEXTURE_2D); ! GL_TexEnv(GL_REPLACE); } else { GL_SelectTexture(GL_TEXTURE1); ! gl.glDisable(GL_TEXTURE_2D); ! GL_TexEnv(GL_REPLACE); } GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv(GL_REPLACE); } *************** *** 155,159 **** if (qglSelectTextureSGIS) { // TODO handle this: gl.glSelectTextureSGIS(texture); ! gl.glActiveTexture(texture); } else if (qglActiveTextureARB) { gl.glActiveTextureARB(texture); --- 149,153 ---- if (qglSelectTextureSGIS) { // TODO handle this: gl.glSelectTextureSGIS(texture); ! gl.glActiveTextureARB(texture); } else if (qglActiveTextureARB) { gl.glActiveTextureARB(texture); *************** *** 168,172 **** if (mode != lastmodes[gl_state.currenttmu]) { ! gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, mode); lastmodes[gl_state.currenttmu] = mode; } --- 162,166 ---- if (mode != lastmodes[gl_state.currenttmu]) { ! gl.glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode); lastmodes[gl_state.currenttmu] = mode; } *************** *** 183,187 **** gl_state.currenttextures[gl_state.currenttmu] = texnum; ! gl.glBindTexture(GL.GL_TEXTURE_2D, texnum); } --- 177,181 ---- gl_state.currenttextures[gl_state.currenttmu] = texnum; ! gl.glBindTexture(GL_TEXTURE_2D, texnum); } *************** *** 213,226 **** static final glmode_t modes[] = { ! new glmode_t("GL_NEAREST", GL.GL_NEAREST, GL.GL_NEAREST), ! new glmode_t("GL_LINEAR", GL.GL_LINEAR, GL.GL_LINEAR), new glmode_t("GL_NEAREST_MIPMAP_NEAREST", ! GL.GL_NEAREST_MIPMAP_NEAREST, GL.GL_NEAREST), new glmode_t("GL_LINEAR_MIPMAP_NEAREST", ! GL.GL_LINEAR_MIPMAP_NEAREST, GL.GL_LINEAR), new glmode_t("GL_NEAREST_MIPMAP_LINEAR", ! GL.GL_NEAREST_MIPMAP_LINEAR, GL.GL_NEAREST), ! new glmode_t("GL_LINEAR_MIPMAP_LINEAR", GL.GL_LINEAR_MIPMAP_LINEAR, ! GL.GL_LINEAR) }; static final int NUM_GL_MODES = modes.length; --- 207,220 ---- static final glmode_t modes[] = { ! new glmode_t("GL_NEAREST", GL_NEAREST, GL_NEAREST), ! new glmode_t("GL_LINEAR", GL_LINEAR, GL_LINEAR), new glmode_t("GL_NEAREST_MIPMAP_NEAREST", ! GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST), new glmode_t("GL_LINEAR_MIPMAP_NEAREST", ! GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR), new glmode_t("GL_NEAREST_MIPMAP_LINEAR", ! GL_NEAREST_MIPMAP_LINEAR, GL_NEAREST), ! new glmode_t("GL_LINEAR_MIPMAP_LINEAR", GL_LINEAR_MIPMAP_LINEAR, ! GL_LINEAR) }; static final int NUM_GL_MODES = modes.length; *************** *** 239,259 **** static final gltmode_t[] gl_alpha_modes = { new gltmode_t("default", 4), ! new gltmode_t("GL_RGBA", GL.GL_RGBA), ! new gltmode_t("GL_RGBA8", GL.GL_RGBA8), ! new gltmode_t("GL_RGB5_A1", GL.GL_RGB5_A1), ! new gltmode_t("GL_RGBA4", GL.GL_RGBA4), ! new gltmode_t("GL_RGBA2", GL.GL_RGBA2), }; static final int NUM_GL_ALPHA_MODES = gl_alpha_modes.length; static final gltmode_t[] gl_solid_modes = { new gltmode_t("default", 3), ! new gltmode_t("GL_RGB", GL.GL_RGB), ! new gltmode_t("GL_RGB8", GL.GL_RGB8), ! new gltmode_t("GL_RGB5", GL.GL_RGB5), ! new gltmode_t("GL_RGB4", GL.GL_RGB4), ! new gltmode_t("GL_R3_G3_B2", GL.GL_R3_G3_B2), ! // #ifdef GL_RGB2_EXT ! new gltmode_t("GL_RGB2", GL.GL_RGB2_EXT) ! // #endif }; --- 233,250 ---- static final gltmode_t[] gl_alpha_modes = { new gltmode_t("default", 4), ! new gltmode_t("GL_RGBA", GL_RGBA), ! new gltmode_t("GL_RGBA8", GL_RGBA8), ! new gltmode_t("GL_RGB5_A1", GL_RGB5_A1), ! new gltmode_t("GL_RGBA4", GL_RGBA4), ! new gltmode_t("GL_RGBA2", GL_RGBA2), }; static final int NUM_GL_ALPHA_MODES = gl_alpha_modes.length; static final gltmode_t[] gl_solid_modes = { new gltmode_t("default", 3), ! new gltmode_t("GL_RGB", GL_RGB), ! new gltmode_t("GL_RGB8", GL_RGB8), ! new gltmode_t("GL_RGB5", GL_RGB5), ! new gltmode_t("GL_RGB4", GL_RGB4), ! new gltmode_t("GL_R3_G3_B2", GL_R3_G3_B2), }; *************** *** 288,294 **** if (glt.type != it_pic && glt.type != it_sky) { GL_Bind(glt.texnum); ! gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, gl_filter_min); ! gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, gl_filter_max); } --- 279,285 ---- if (glt.type != it_pic && glt.type != it_sky) { GL_Bind(glt.texnum); ! gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_min); ! gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max); } *************** *** 1039,1043 **** * Returns has_alpha =============== */ ! void GL_BuildPalettedTexture(byte[] paletted_texture, int[] scaled, int scaled_width, int scaled_height) { --- 1030,1034 ---- * Returns has_alpha =============== */ ! void GL_BuildPalettedTexture(ByteBuffer paletted_texture, int[] scaled, int scaled_width, int scaled_height) { *************** *** 1053,1057 **** c = r | (g << 5) | (b << 11); ! paletted_texture[i] = gl_state.d_16to8table[c]; } } --- 1044,1048 ---- c = r | (g << 5) | (b << 11); ! paletted_texture.put(i, gl_state.d_16to8table[c]); } } *************** *** 1068,1072 **** int[] scaled = new int[256 * 256]; ! byte[] paletted_texture = new byte[256 * 256]; IntBuffer tex = Lib.newIntBuffer(512 * 256, ByteOrder.LITTLE_ENDIAN); --- 1059,1063 ---- int[] scaled = new int[256 * 256]; ! ByteBuffer paletted_texture = Lib.newByteBuffer(256*256); IntBuffer tex = Lib.newIntBuffer(512 * 256, ByteOrder.LITTLE_ENDIAN); *************** *** 1079,1084 **** Arrays.fill(scaled, 0); ! Arrays.fill(paletted_texture, (byte) 0); ! uploaded_paletted = false; --- 1070,1076 ---- Arrays.fill(scaled, 0); ! paletted_texture.clear(); ! for (int j=0; j<256*256; j++) paletted_texture.put(j,(byte)0); ! uploaded_paletted = false; *************** *** 1146,1159 **** GL_BuildPalettedTexture(paletted_texture, data, scaled_width, scaled_height); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, scaled_width, ! scaled_height, 0, GL.GL_COLOR_INDEX, ! GL.GL_UNSIGNED_BYTE, paletted_texture); } else { ! tex.rewind(); ! tex.put(data); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, comp, ! scaled_width, scaled_height, 0, GL.GL_RGBA, ! GL.GL_UNSIGNED_BYTE, tex); } //goto done; --- 1138,1151 ---- GL_BuildPalettedTexture(paletted_texture, data, scaled_width, scaled_height); ! gl.glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, scaled_width, ! scaled_height, 0, GL_COLOR_INDEX, ! GL_UNSIGNED_BYTE, paletted_texture); } else { ! tex.clear(); ! tex.put(data).flip(); ! gl.glTexImage2D(GL_TEXTURE_2D, 0, comp, ! scaled_width, scaled_height, 0, GL_RGBA, ! GL_UNSIGNED_BYTE, tex); } //goto done; *************** *** 1174,1185 **** GL_BuildPalettedTexture(paletted_texture, scaled, scaled_width, scaled_height); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, ! scaled_width, scaled_height, 0, GL.GL_COLOR_INDEX, ! GL.GL_UNSIGNED_BYTE, paletted_texture); } else { ! tex.rewind(); ! tex.put(scaled); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, comp, scaled_width, ! scaled_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, tex); } --- 1166,1177 ---- GL_BuildPalettedTexture(paletted_texture, scaled, scaled_width, scaled_height); ! gl.glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, ! scaled_width, scaled_height, 0, GL_COLOR_INDEX, ! GL_UNSIGNED_BYTE, paletted_texture); } else { ! tex.clear(); ! tex.put(scaled).flip(); ! gl.glTexImage2D(GL_TEXTURE_2D, 0, comp, scaled_width, ! scaled_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex); } *************** *** 1203,1216 **** GL_BuildPalettedTexture(paletted_texture, scaled, scaled_width, scaled_height); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, miplevel, GL_COLOR_INDEX8_EXT, scaled_width, ! scaled_height, 0, GL.GL_COLOR_INDEX, ! GL.GL_UNSIGNED_BYTE, paletted_texture); } else { ! tex.rewind(); ! tex.put(scaled); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, miplevel, comp, ! scaled_width, scaled_height, 0, GL.GL_RGBA, ! GL.GL_UNSIGNED_BYTE, tex); } } --- 1195,1208 ---- GL_BuildPalettedTexture(paletted_texture, scaled, scaled_width, scaled_height); ! gl.glTexImage2D(GL_TEXTURE_2D, miplevel, GL_COLOR_INDEX8_EXT, scaled_width, ! scaled_height, 0, GL_COLOR_INDEX, ! GL_UNSIGNED_BYTE, paletted_texture); } else { ! tex.clear(); ! tex.put(scaled).flip(); ! gl.glTexImage2D(GL_TEXTURE_2D, miplevel, comp, ! scaled_width, scaled_height, 0, GL_RGBA, ! GL_UNSIGNED_BYTE, tex); } } *************** *** 1222,1233 **** if (mipmap) { ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, gl_filter_min); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, gl_filter_max); } else { ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, gl_filter_max); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, gl_filter_max); } --- 1214,1225 ---- if (mipmap) { ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_min); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max); } else { ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_max); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max); } *************** *** 1255,1264 **** if (qglColorTableEXT && gl_ext_palettedtexture.value != 0.0f && is_sky) { ! gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, width, ! height, 0, GL.GL_COLOR_INDEX, GL.GL_UNSIGNED_BYTE, data); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, gl_filter_max); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, gl_filter_max); --- 1247,1256 ---- if (qglColorTableEXT && gl_ext_palettedtexture.value != 0.0f && is_sky) { ! gl.glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, width, ! height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, ByteBuffer.wrap(data)); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_max); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max); *************** *** 1533,1536 **** --- 1525,1530 ---- } + private IntBuffer texnum = Lib.newIntBuffer(1); + /* * ================ GL_FreeUnusedImages *************** *** 1560,1565 **** // free it ! // TODO jogl bug ! gl.glDeleteTextures(1, new int[] { image.texnum }); image.clear(); } --- 1554,1559 ---- // free it ! texnum.put(0, image.texnum); ! gl.glDeleteTextures(texnum); image.clear(); } *************** *** 1662,1667 **** continue; // free image_t slot // free it ! // TODO jogl bug ! gl.glDeleteTextures(1, new int[] { image.texnum }); image.clear(); } --- 1656,1661 ---- continue; // free image_t slot // free it ! texnum.put(0, image.texnum); ! gl.glDeleteTextures(texnum); image.clear(); } Index: Main.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/jogl/Main.java,v retrieving revision 1.8 retrieving revision 1.8.6.1 diff -C2 -d -r1.8 -r1.8.6.1 *** Main.java 7 May 2005 18:23:26 -0000 1.8 --- Main.java 16 Jul 2005 18:25:37 -0000 1.8.6.1 *************** *** 30,39 **** import jake2.client.*; import jake2.game.*; - import jake2.game.cplane_t; - import jake2.game.cvar_t; import jake2.qcommon.*; import jake2.render.*; ! import jake2.util.Math3D; ! import jake2.util.Vargs; import java.awt.Dimension; --- 30,36 ---- import jake2.client.*; import jake2.game.*; import jake2.qcommon.*; import jake2.render.*; ! import jake2.util.*; import java.awt.Dimension; *************** *** 41,47 **** import java.nio.IntBuffer; - import net.java.games.jogl.GL; - import net.java.games.jogl.Version; - /** * Main --- 38,41 ---- *************** *** 114,120 **** */ - int GL_TEXTURE0 = GL.GL_TEXTURE0; - int GL_TEXTURE1 = GL.GL_TEXTURE1; - model_t r_worldmodel; --- 108,111 ---- *************** *** 147,151 **** float[] r_origin = { 0, 0, 0 }; ! float r_world_matrix[] = new float[16]; float r_base_world_matrix[] = new float[16]; --- 138,142 ---- float[] r_origin = { 0, 0, 0 }; ! FloatBuffer r_world_matrix = Lib.newFloatBuffer(16); float r_base_world_matrix[] = new float[16]; *************** *** 289,293 **** if (alpha != 1.0F) ! gl.glEnable(GL.GL_BLEND); gl.glColor4f(1, 1, 1, alpha); --- 280,284 ---- if (alpha != 1.0F) ! gl.glEnable(GL_BLEND); gl.glColor4f(1, 1, 1, alpha); *************** *** 295,306 **** GL_Bind(currentmodel.skins[e.frame].texnum); ! GL_TexEnv(GL.GL_MODULATE); if (alpha == 1.0) ! gl.glEnable(GL.GL_ALPHA_TEST); else ! gl.glDisable(GL.GL_ALPHA_TEST); ! gl.glBegin(GL.GL_QUADS); gl.glTexCoord2f(0, 1); --- 286,297 ---- GL_Bind(currentmodel.skins[e.frame].texnum); ! GL_TexEnv(GL_MODULATE); if (alpha == 1.0) ! gl.glEnable(GL_ALPHA_TEST); else ! gl.glDisable(GL_ALPHA_TEST); ! gl.glBegin(GL_QUADS); gl.glTexCoord2f(0, 1); *************** *** 326,334 **** gl.glEnd(); ! gl.glDisable(GL.GL_ALPHA_TEST); ! GL_TexEnv(GL.GL_REPLACE); if (alpha != 1.0F) ! gl.glDisable(GL.GL_BLEND); gl.glColor4f(1, 1, 1, 1); --- 317,325 ---- gl.glEnd(); ! gl.glDisable(GL_ALPHA_TEST); ! GL_TexEnv(GL_REPLACE); if (alpha != 1.0F) ! gl.glDisable(GL_BLEND); gl.glColor4f(1, 1, 1, 1); *************** *** 358,369 **** R_RotateForEntity(currententity); ! gl.glDisable(GL.GL_TEXTURE_2D); gl.glColor3f(shadelight[0], shadelight[1], shadelight[2]); ! // this replaces the TRIANGLE_FAN ! glut.glutWireCube(gl, 20); ! /* ! gl.glBegin(GL.GL_TRIANGLE_FAN); gl.glVertex3f(0, 0, -16); int i; --- 349,360 ---- R_RotateForEntity(currententity); ! gl.glDisable(GL_TEXTURE_2D); gl.glColor3f(shadelight[0], shadelight[1], shadelight[2]); ! // // this replaces the TRIANGLE_FAN ! // glut.glutWireCube(gl, 20); ! ! gl.glBegin(GL_TRIANGLE_FAN); gl.glVertex3f(0, 0, -16); int i; *************** *** 373,377 **** gl.glEnd(); ! gl.glBegin(GL.GL_TRIANGLE_FAN); gl.glVertex3f (0, 0, 16); for (i=4 ; i>=0 ; i--) { --- 364,368 ---- gl.glEnd(); ! gl.glBegin(GL_TRIANGLE_FAN); gl.glVertex3f (0, 0, 16); for (i=4 ; i>=0 ; i--) { *************** *** 379,386 **** } gl.glEnd(); ! */ gl.glColor3f(1, 1, 1); gl.glPopMatrix(); ! gl.glEnable(GL.GL_TEXTURE_2D); } --- 370,377 ---- } gl.glEnd(); ! gl.glColor3f(1, 1, 1); gl.glPopMatrix(); ! gl.glEnable(GL_TEXTURE_2D); } *************** *** 481,488 **** GL_Bind(r_particletexture.texnum); gl.glDepthMask(false); // no z buffering ! gl.glEnable(GL.GL_BLEND); ! GL_TexEnv(GL.GL_MODULATE); ! gl.glBegin(GL.GL_TRIANGLES); FloatBuffer sourceVertices = particle_t.vertexArray; --- 472,479 ---- GL_Bind(r_particletexture.texnum); gl.glDepthMask(false); // no z buffering ! gl.glEnable(GL_BLEND); ! GL_TexEnv(GL_MODULATE); ! gl.glBegin(GL_TRIANGLES); FloatBuffer sourceVertices = particle_t.vertexArray; *************** *** 520,527 **** gl.glEnd(); ! gl.glDisable(GL.GL_BLEND); gl.glColor4f(1, 1, 1, 1); gl.glDepthMask(true); // back to normal Z buffering ! GL_TexEnv(GL.GL_REPLACE); } --- 511,518 ---- gl.glEnd(); ! gl.glDisable(GL_BLEND); gl.glColor4f(1, 1, 1, 1); gl.glDepthMask(true); // back to normal Z buffering ! GL_TexEnv(GL_REPLACE); } *************** *** 535,557 **** if (gl_ext_pointparameters.value != 0.0f && qglPointParameterfEXT) { ! gl.glEnableClientState(GL.GL_VERTEX_ARRAY); ! gl.glVertexPointer(3, GL.GL_FLOAT, 0, particle_t.vertexArray); ! gl.glEnableClientState(GL.GL_COLOR_ARRAY); ! gl.glColorPointer(4, GL.GL_UNSIGNED_BYTE, 0, particle_t.colorArray); gl.glDepthMask(false); ! gl.glEnable(GL.GL_BLEND); ! gl.glDisable(GL.GL_TEXTURE_2D); gl.glPointSize(gl_particle_size.value); ! gl.glDrawArrays(GL.GL_POINTS, 0, r_newrefdef.num_particles); ! gl.glDisableClientState(GL.GL_COLOR_ARRAY); ! gl.glDisableClientState(GL.GL_VERTEX_ARRAY); ! gl.glDisable(GL.GL_BLEND); gl.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); gl.glDepthMask(true); ! gl.glEnable(GL.GL_TEXTURE_2D); } --- 526,548 ---- if (gl_ext_pointparameters.value != 0.0f && qglPointParameterfEXT) { ! gl.glEnableClientState(GL_VERTEX_ARRAY); ! gl.glVertexPointer(3, 0, particle_t.vertexArray); ! gl.glEnableClientState(GL_COLOR_ARRAY); ! gl.glColorPointer(4, true, 0, particle_t.getColorAsByteBuffer()); gl.glDepthMask(false); ! gl.glEnable(GL_BLEND); ! gl.glDisable(GL_TEXTURE_2D); gl.glPointSize(gl_particle_size.value); ! gl.glDrawArrays(GL_POINTS, 0, r_newrefdef.num_particles); ! gl.glDisableClientState(GL_COLOR_ARRAY); ! gl.glDisableClientState(GL_VERTEX_ARRAY); ! gl.glDisable(GL_BLEND); gl.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); gl.glDepthMask(true); ! gl.glEnable(GL_TEXTURE_2D); } *************** *** 573,580 **** return; ! gl.glDisable(GL.GL_ALPHA_TEST); ! gl.glEnable(GL.GL_BLEND); ! gl.glDisable(GL.GL_DEPTH_TEST); ! gl.glDisable(GL.GL_TEXTURE_2D); gl.glLoadIdentity(); --- 564,571 ---- return; ! gl.glDisable(GL_ALPHA_TEST); ! gl.glEnable(GL_BLEND); ! gl.glDisable(GL_DEPTH_TEST); ! gl.glDisable(GL_TEXTURE_2D); gl.glLoadIdentity(); *************** *** 586,590 **** gl.glColor4f(v_blend[0], v_blend[1], v_blend[2], v_blend[3]); ! gl.glBegin(GL.GL_QUADS); gl.glVertex3f(10, 100, 100); --- 577,581 ---- gl.glColor4f(v_blend[0], v_blend[1], v_blend[2], v_blend[3]); ! gl.glBegin(GL_QUADS); gl.glVertex3f(10, 100, 100); *************** *** 594,600 **** gl.glEnd(); ! gl.glDisable(GL.GL_BLEND); ! gl.glEnable(GL.GL_TEXTURE_2D); ! gl.glEnable(GL.GL_ALPHA_TEST); gl.glColor4f(1, 1, 1, 1); --- 585,591 ---- gl.glEnd(); ! gl.glDisable(GL_BLEND); ! gl.glEnable(GL_TEXTURE_2D); ! gl.glEnable(GL_ALPHA_TEST); gl.glColor4f(1, 1, 1, 1); *************** *** 684,688 **** // clear out the portion of the screen that the NOWORLDMODEL defines if ((r_newrefdef.rdflags & Defines.RDF_NOWORLDMODEL) != 0) { ! gl.glEnable(GL.GL_SCISSOR_TEST); gl.glClearColor(0.3f, 0.3f, 0.3f, 1.0f); gl.glScissor( --- 675,679 ---- // clear out the portion of the screen that the NOWORLDMODEL defines if ((r_newrefdef.rdflags & Defines.RDF_NOWORLDMODEL) != 0) { ! gl.glEnable(GL_SCISSOR_TEST); gl.glClearColor(0.3f, 0.3f, 0.3f, 1.0f); gl.glScissor( *************** *** 691,697 **** r_newrefdef.width, r_newrefdef.height); ! gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); gl.glClearColor(1.0f, 0.0f, 0.5f, 0.5f); ! gl.glDisable(GL.GL_SCISSOR_TEST); } } --- 682,688 ---- r_newrefdef.width, r_newrefdef.height); ! gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); gl.glClearColor(1.0f, 0.0f, 0.5f, 0.5f); ! gl.glDisable(GL_SCISSOR_TEST); } } *************** *** 738,748 **** // screenaspect = (float) r_newrefdef.width / r_newrefdef.height; ! gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); MYgluPerspective(r_newrefdef.fov_y, screenaspect, 4, 4096); ! gl.glCullFace(GL.GL_FRONT); ! gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); --- 729,739 ---- // screenaspect = (float) r_newrefdef.width / r_newrefdef.height; ! gl.glMatrixMode(GL_PROJECTION); gl.glLoadIdentity(); MYgluPerspective(r_newrefdef.fov_y, screenaspect, 4, 4096); ! gl.glCullFace(GL_FRONT); ! gl.glMatrixMode(GL_MODELVIEW); gl.glLoadIdentity(); *************** *** 754,758 **** gl.glTranslatef(-r_newrefdef.vieworg[0], -r_newrefdef.vieworg[1], -r_newrefdef.vieworg[2]); ! gl.glGetFloatv(GL.GL_MODELVIEW_MATRIX, r_world_matrix); // --- 745,750 ---- gl.glTranslatef(-r_newrefdef.vieworg[0], -r_newrefdef.vieworg[1], -r_newrefdef.vieworg[2]); ! gl.glGetFloat(GL_MODELVIEW_MATRIX, r_world_matrix); ! r_world_matrix.clear(); // *************** *** 760,770 **** // if (gl_cull.value != 0.0f) ! gl.glEnable(GL.GL_CULL_FACE); else ! gl.glDisable(GL.GL_CULL_FACE); ! gl.glDisable(GL.GL_BLEND); ! gl.glDisable(GL.GL_ALPHA_TEST); ! gl.glEnable(GL.GL_DEPTH_TEST); } --- 752,762 ---- // if (gl_cull.value != 0.0f) ! gl.glEnable(GL_CULL_FACE); else ! gl.glDisable(GL_CULL_FACE); ! gl.glDisable(GL_BLEND); ! gl.glDisable(GL_ALPHA_TEST); ! gl.glEnable(GL_DEPTH_TEST); } *************** *** 780,784 **** if (gl_clear.value != 0.0f) { ! gl.glClear(GL.GL_COLOR_BUFFER_BIT); } --- 772,776 ---- if (gl_clear.value != 0.0f) { ! gl.glClear(GL_COLOR_BUFFER_BIT); } *************** *** 787,807 **** gldepthmin = 0; gldepthmax = 0.49999f; ! gl.glDepthFunc(GL.GL_LEQUAL); } else { gldepthmin = 1; gldepthmax = 0.5f; ! gl.glDepthFunc(GL.GL_GEQUAL); } } else { if (gl_clear.value != 0.0f) ! gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); else ! gl.glClear(GL.GL_DEPTH_BUFFER_BIT); gldepthmin = 0; gldepthmax = 1; ! gl.glDepthFunc(GL.GL_LEQUAL); } gl.glDepthRange(gldepthmin, gldepthmax); --- 779,799 ---- gldepthmin = 0; gldepthmax = 0.49999f; ! gl.glDepthFunc(GL_LEQUAL); } else { gldepthmin = 1; gldepthmax = 0.5f; ! gl.glDepthFunc(GL_GEQUAL); } } else { if (gl_clear.value != 0.0f) ! gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); else ! gl.glClear(GL_DEPTH_BUFFER_BIT); gldepthmin = 0; gldepthmax = 1; ! gl.glDepthFunc(GL_LEQUAL); } gl.glDepthRange(gldepthmin, gldepthmax); *************** *** 875,887 **** // set 2D virtual screen size gl.glViewport(0, 0, vid.width, vid.height); ! gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); gl.glOrtho(0, vid.width, vid.height, 0, -99999, 99999); ! gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); ! gl.glDisable(GL.GL_DEPTH_TEST); ! gl.glDisable(GL.GL_CULL_FACE); ! gl.glDisable(GL.GL_BLEND); ! gl.glEnable(GL.GL_ALPHA_TEST); gl.glColor4f(1, 1, 1, 1); } --- 867,879 ---- // set 2D virtual screen size gl.glViewport(0, 0, vid.width, vid.height); ! gl.glMatrixMode(GL_PROJECTION); gl.glLoadIdentity(); gl.glOrtho(0, vid.width, vid.height, 0, -99999, 99999); ! gl.glMatrixMode(GL_MODELVIEW); gl.glLoadIdentity(); ! gl.glDisable(GL_DEPTH_TEST); ! gl.glDisable(GL_CULL_FACE); ! gl.glDisable(GL_BLEND); ! gl.glEnable(GL_ALPHA_TEST); gl.glColor4f(1, 1, 1, 1); } *************** *** 1106,1121 **** protected boolean R_Init2() { VID.MenuInit(); ! /* ** get our various GL strings */ ! VID.Printf(Defines.PRINT_ALL, "JOGL_VERSION: " + Version.getVersion() + '\n'); ! gl_config.vendor_string = gl.glGetString(GL.GL_VENDOR); VID.Printf(Defines.PRINT_ALL, "GL_VENDOR: " + gl_config.vendor_string + '\n'); ! gl_config.renderer_string = gl.glGetString(GL.GL_RENDERER); VID.Printf(Defines.PRINT_ALL, "GL_RENDERER: " + gl_config.renderer_string + '\n'); ! gl_config.version_string = gl.glGetString(GL.GL_VERSION); VID.Printf(Defines.PRINT_ALL, "GL_VERSION: " + gl_config.version_string + '\n'); ! gl_config.extensions_string = gl.glGetString(GL.GL_EXTENSIONS); VID.Printf(Defines.PRINT_ALL, "GL_EXTENSIONS: " + gl_config.extensions_string + '\n'); --- 1098,1113 ---- protected boolean R_Init2() { VID.MenuInit(); ! /* ** get our various GL strings */ ! // VID.Printf(Defines.PRINT_ALL, "JOGL_VERSION: " + Version.getVersion() + '\n'); ! gl_config.vendor_string = gl.glGetString(GL_VENDOR); VID.Printf(Defines.PRINT_ALL, "GL_VENDOR: " + gl_config.vendor_string + '\n'); ! gl_config.renderer_string = gl.glGetString(GL_RENDERER); VID.Printf(Defines.PRINT_ALL, "GL_RENDERER: " + gl_config.renderer_string + '\n'); ! gl_config.version_string = gl.glGetString(GL_VERSION); VID.Printf(Defines.PRINT_ALL, "GL_VERSION: " + gl_config.version_string + '\n'); ! gl_config.extensions_string = gl.glGetString(GL_EXTENSIONS); VID.Printf(Defines.PRINT_ALL, "GL_EXTENSIONS: " + gl_config.extensions_string + '\n'); *************** *** 1280,1285 **** qglActiveTextureARB = true; qglMTexCoord2fSGIS = true; ! GL_TEXTURE0 = GL.GL_TEXTURE0_ARB; ! GL_TEXTURE1 = GL.GL_TEXTURE1_ARB; Cvar.SetValue("r_fullbright", 1); } --- 1272,1277 ---- qglActiveTextureARB = true; qglMTexCoord2fSGIS = true; ! // GL_TEXTURE0 = GL_TEXTURE0_ARB; ! // GL_TEXTURE1 = GL_TEXTURE1_ARB; Cvar.SetValue("r_fullbright", 1); } *************** *** 1305,1310 **** qglMTexCoord2fSGIS = true; Cvar.SetValue("r_fullbright", 1); ! // //GL_TEXTURE0 = GL.GL_TEXTURE0_SGIS; ! // //GL_TEXTURE1 = GL.GL_TEXTURE1_SGIS; } else { VID.Printf(Defines.PRINT_ALL, "...ignoring GL_SGIS_multitexture\n"); --- 1297,1302 ---- qglMTexCoord2fSGIS = true; Cvar.SetValue("r_fullbright", 1); ! // //GL_TEXTURE0 = GL_TEXTURE0_SGIS; ! // //GL_TEXTURE1 = GL_TEXTURE1_SGIS; } else { VID.Printf(Defines.PRINT_ALL, "...ignoring GL_SGIS_multitexture\n"); *************** *** 1326,1330 **** int err = gl.glGetError(); ! if (err != GL.GL_NO_ERROR) VID.Printf( Defines.PRINT_ALL, --- 1318,1322 ---- int err = gl.glGetError(); ! if (err != GL_NO_ERROR) VID.Printf( Defines.PRINT_ALL, *************** *** 1372,1376 **** cvar_t ref; ! ref = Cvar.Get("vid_ref", "jogl", 0); ref.modified = true; } --- 1364,1368 ---- cvar_t ref; ! ref = Cvar.Get("vid_ref", "lwjgl", 0); ref.modified = true; } *************** *** 1415,1427 **** */ gl.glViewport(0, 0, vid.width, vid.height); ! gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); gl.glOrtho(0, vid.width, vid.height, 0, -99999, 99999); ! gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); ! gl.glDisable(GL.GL_DEPTH_TEST); ! gl.glDisable(GL.GL_CULL_FACE); ! gl.glDisable(GL.GL_BLEND); ! gl.glEnable(GL.GL_ALPHA_TEST); gl.glColor4f(1, 1, 1, 1); --- 1407,1419 ---- */ gl.glViewport(0, 0, vid.width, vid.height); ! gl.glMatrixMode(GL_PROJECTION); gl.glLoadIdentity(); gl.glOrtho(0, vid.width, vid.height, 0, -99999, 99999); ! gl.glMatrixMode(GL_MODELVIEW); gl.glLoadIdentity(); ! gl.glDisable(GL_DEPTH_TEST); ! gl.glDisable(GL_CULL_FACE); ! gl.glDisable(GL_BLEND); ! gl.glEnable(GL_ALPHA_TEST); gl.glColor4f(1, 1, 1, 1); *************** *** 1434,1440 **** if (gl_state.camera_separation == 0 || !gl_state.stereo_enabled) { if (gl_drawbuffer.string.equalsIgnoreCase("GL_FRONT")) ! gl.glDrawBuffer(GL.GL_FRONT); else ! gl.glDrawBuffer(GL.GL_BACK); } } --- 1426,1432 ---- if (gl_state.camera_separation == 0 || !gl_state.stereo_enabled) { if (gl_drawbuffer.string.equalsIgnoreCase("GL_FRONT")) ! gl.glDrawBuffer(GL_FRONT); else ! gl.glDrawBuffer(GL_BACK); } } *************** *** 1500,1504 **** gl.glClearColor(0, 0, 0, 0); ! gl.glClear(GL.GL_COLOR_BUFFER_BIT); gl.glClearColor(1f, 0f, 0.5f, 0.5f); } --- 1492,1496 ---- gl.glClearColor(0, 0, 0, 0); ! gl.glClear(GL_COLOR_BUFFER_BIT); gl.glClearColor(1f, 0f, 0.5f, 0.5f); } *************** *** 1553,1558 **** } ! gl.glDisable(GL.GL_TEXTURE_2D); ! gl.glEnable(GL.GL_BLEND); gl.glDepthMask(false); --- 1545,1550 ---- } ! gl.glDisable(GL_TEXTURE_2D); ! gl.glEnable(GL_BLEND); gl.glDepthMask(false); *************** *** 1567,1571 **** gl.glColor4f(r, g, b, e.alpha); ! gl.glBegin(GL.GL_TRIANGLE_STRIP); float[] v; --- 1559,1563 ---- gl.glColor4f(r, g, b, e.alpha); ! gl.glBegin(GL_TRIANGLE_STRIP); float[] v; *************** *** 1583,1588 **** gl.glEnd(); ! gl.glEnable(GL.GL_TEXTURE_2D); ! gl.glDisable(GL.GL_BLEND); gl.glDepthMask(true); } --- 1575,1580 ---- gl.glEnd(); ! gl.glEnable(GL_TEXTURE_2D); ! gl.glDisable(GL_BLEND); gl.glDepthMask(true); } Index: Surf.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/jogl/Surf.java,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -C2 -d -r1.6 -r1.6.6.1 *** Surf.java 9 Jan 2005 22:34:21 -0000 1.6 --- Surf.java 16 Jul 2005 18:25:37 -0000 1.6.6.1 *************** *** 38,43 **** import java.util.Arrays; - import net.java.games.jogl.GL; - /** * Surf --- 38,41 ---- *************** *** 65,69 **** int c_visible_textures; ! static final int GL_LIGHTMAP_FORMAT = GL.GL_RGBA; static class gllightmapstate_t --- 63,67 ---- int c_visible_textures; ! static final int GL_LIGHTMAP_FORMAT = GL_RGBA; static class gllightmapstate_t *************** *** 155,159 **** void DrawGLPoly(glpoly_t p) { ! gl.glBegin(GL.GL_POLYGON); for (int i=0 ; i<p.numverts ; i++) { --- 153,157 ---- void DrawGLPoly(glpoly_t p) { ! gl.glBegin(GL_POLYGON); for (int i=0 ; i<p.numverts ; i++) { *************** *** 177,181 **** scroll = -64.0f; ! gl.glBegin (GL.GL_POLYGON); glpoly_t p = fa.polys; for (int i=0 ; i<p.numverts ; i++) --- 175,179 ---- scroll = -64.0f; ! gl.glBegin (GL_POLYGON); glpoly_t p = fa.polys; for (int i=0 ; i<p.numverts ; i++) *************** *** 197,202 **** return; ! gl.glDisable (GL.GL_TEXTURE_2D); ! gl.glDisable (GL.GL_DEPTH_TEST); gl.glColor4f (1,1,1,1); --- 195,200 ---- return; ! gl.glDisable (GL_TEXTURE_2D); ! gl.glDisable (GL_DEPTH_TEST); gl.glColor4f (1,1,1,1); *************** *** 212,216 **** for (int j=2 ; j<p.numverts ; j++ ) { ! gl.glBegin (GL.GL_LINE_STRIP); gl.glVertex3f(p.x(0), p.y(0), p.z(0)); gl.glVertex3f(p.x(j-1), p.y(j-1), p.z(j-1)); --- 210,214 ---- for (int j=2 ; j<p.numverts ; j++ ) { ! gl.glBegin (GL_LINE_STRIP); gl.glVertex3f(p.x(0), p.y(0), p.z(0)); gl.glVertex3f(p.x(j-1), p.y(j-1), p.z(j-1)); *************** *** 222,227 **** } } ! gl.glEnable (GL.GL_DEPTH_TEST); ! gl.glEnable (GL.GL_TEXTURE_2D); } --- 220,225 ---- } } ! gl.glEnable (GL_DEPTH_TEST); ! gl.glEnable (GL_TEXTURE_2D); } *************** *** 235,239 **** for ( ; p != null; p = p.chain ) { ! gl.glBegin(GL.GL_POLYGON); for (int j=0 ; j<p.numverts ; j++) { --- 233,237 ---- for ( ; p != null; p = p.chain ) { ! gl.glBegin(GL_POLYGON); for (int j=0 ; j<p.numverts ; j++) { *************** *** 248,252 **** for ( ; p != null; p = p.chain ) { ! gl.glBegin(GL.GL_POLYGON); for (int j=0 ; j<p.numverts ; j++) { --- 246,250 ---- for ( ; p != null; p = p.chain ) { ! gl.glBegin(GL_POLYGON); for (int j=0 ; j<p.numverts ; j++) { *************** *** 286,294 **** if (gl_lightmap.value == 0) { ! gl.glEnable(GL.GL_BLEND); if ( gl_saturatelighting.value != 0) { ! gl.glBlendFunc( GL.GL_ONE, GL.GL_ONE ); } else --- 284,292 ---- if (gl_lightmap.value == 0) { ! gl.glEnable(GL_BLEND); if ( gl_saturatelighting.value != 0) { ! gl.glBlendFunc( GL_ONE, GL_ONE ); } else *************** *** 300,311 **** { case 'I': ! gl.glBlendFunc(GL.GL_ZERO, GL.GL_SRC_COLOR ); break; case 'L': ! gl.glBlendFunc(GL.GL_ZERO, GL.GL_SRC_COLOR ); break; case 'A': default: ! gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA ); break; } --- 298,309 ---- { case 'I': ! gl.glBlendFunc(GL_ZERO, GL_SRC_COLOR ); break; case 'L': ! gl.glBlendFunc(GL_ZERO, GL_SRC_COLOR ); break; case 'A': default: ! gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); break; } *************** *** 313,317 **** else { ! gl.glBlendFunc(GL.GL_ZERO, GL.GL_SRC_COLOR ); } } --- 311,315 ---- else { ! gl.glBlendFunc(GL_ZERO, GL_SRC_COLOR ); } } *************** *** 433,438 **** ** restore state */ ! gl.glDisable(GL.GL_BLEND); ! gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA); gl.glDepthMask( true ); } --- 431,436 ---- ** restore state */ ! gl.glDisable(GL_BLEND); ! gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); gl.glDepthMask( true ); } *************** *** 460,464 **** // warp texture, no lightmaps ! GL_TexEnv( GL.GL_MODULATE ); gl.glColor4f( gl_state.inverse_intensity, gl_state.inverse_intensity, --- 458,462 ---- // warp texture, no lightmaps ! GL_TexEnv( GL_MODULATE ); gl.glColor4f( gl_state.inverse_intensity, gl_state.inverse_intensity, *************** *** 466,470 **** 1.0F ); EmitWaterPolys (fa); ! GL_TexEnv( GL.GL_REPLACE ); return; --- 464,468 ---- 1.0F ); EmitWaterPolys (fa); ! GL_TexEnv( GL_REPLACE ); return; *************** *** 473,477 **** { GL_Bind( image.texnum ); ! GL_TexEnv( GL.GL_REPLACE ); } --- 471,475 ---- { GL_Bind( image.texnum ); ! GL_TexEnv( GL_REPLACE ); } *************** *** 529,537 **** GL_Bind( gl_state.lightmap_textures + fa.lightmaptexturenum ); ! gl.glTexSubImage2D( GL.GL_TEXTURE_2D, 0, fa.light_s, fa.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, temp2 ); fa.lightmapchain = gl_lms.lightmap_surfaces[fa.lightmaptexturenum]; --- 527,535 ---- GL_Bind( gl_state.lightmap_textures + fa.lightmaptexturenum ); ! gl.glTexSubImage2D( GL_TEXTURE_2D, 0, fa.light_s, fa.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, temp2 ); fa.lightmapchain = gl_lms.lightmap_surfaces[fa.lightmaptexturenum]; *************** *** 569,576 **** // go back to the world matrix // ! gl.glLoadMatrixf(r_world_matrix); ! gl.glEnable (GL.GL_BLEND); ! GL_TexEnv(GL.GL_MODULATE ); // the textures are prescaled up for a better lighting range, --- 567,575 ---- // go back to the world matrix // ! r_world_matrix.clear(); ! gl.glLoadMatrix(r_world_matrix); ! gl.glEnable (GL_BLEND); ! GL_TexEnv(GL_MODULATE ); // the textures are prescaled up for a better lighting range, *************** *** 596,602 **** } ! GL_TexEnv( GL.GL_REPLACE ); gl.glColor4f (1,1,1,1); ! gl.glDisable (GL.GL_BLEND); r_alpha_surfaces = null; --- 595,601 ---- } ! GL_TexEnv( GL_REPLACE ); gl.glColor4f (1,1,1,1); ! gl.glDisable (GL_BLEND); r_alpha_surfaces = null; *************** *** 675,679 **** } ! GL_TexEnv( GL.GL_REPLACE ); } --- 674,678 ---- } ! GL_TexEnv( GL_REPLACE ); } *************** *** 735,743 **** lmtex = surf.lightmaptexturenum; ! gl.glTexSubImage2D( GL.GL_TEXTURE_2D, 0, surf.light_s, surf.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, temp ); } --- 734,742 ---- lmtex = surf.lightmaptexturenum; ! gl.glTexSubImage2D( GL_TEXTURE_2D, 0, surf.light_s, surf.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, temp ); } *************** *** 753,761 **** lmtex = 0; ! gl.glTexSubImage2D( GL.GL_TEXTURE_2D, 0, surf.light_s, surf.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, temp ); } --- 752,760 ---- lmtex = 0; ! gl.glTexSubImage2D( GL_TEXTURE_2D, 0, surf.light_s, surf.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, temp ); } *************** *** 778,786 **** for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin (GL.GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2fARB(GL_TEXTURE0, p.s1(i) + scroll, p.t1(i)); ! gl.glMultiTexCoord2fARB(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3] + scroll, v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); --- 777,785 ---- for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin (GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2f(GL_TEXTURE0, p.s1(i) + scroll, p.t1(i)); ! gl.glMultiTexCoord2f(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3] + scroll, v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); *************** *** 794,802 **** for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin (GL.GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2fARB(GL_TEXTURE0, p.s1(i), p.t1(i)); ! gl.glMultiTexCoord2fARB(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3], v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); --- 793,801 ---- for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin (GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2f(GL_TEXTURE0, p.s1(i), p.t1(i)); ! gl.glMultiTexCoord2f(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3], v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); *************** *** 828,836 **** for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin(GL.GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2fARB(GL_TEXTURE0, p.s1(i) + scroll, p.t1(i)); ! gl.glMultiTexCoord2fARB(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3] + scroll, v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); --- 827,835 ---- for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin(GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2f(GL_TEXTURE0, p.s1(i) + scroll, p.t1(i)); ! gl.glMultiTexCoord2f(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3] + scroll, v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); *************** *** 846,854 **** for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin (GL.GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2fARB(GL_TEXTURE0, p.s1(i), p.t1(i)); ! gl.glMultiTexCoord2fARB(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3], v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); --- 845,853 ---- for ( p = surf.polys; p != null; p = p.chain ) { ! gl.glBegin (GL_POLYGON); for (i=0 ; i< nv; i++) { ! gl.glMultiTexCoord2f(GL_TEXTURE0, p.s1(i), p.t1(i)); ! gl.glMultiTexCoord2f(GL_TEXTURE1, p.s2(i), p.t2(i)); //gglMTexCoord2fSGIS( GL_TEXTURE0, v[3], v[4]); //gglMTexCoord2fSGIS( GL_TEXTURE1, v[5], v[6]); *************** *** 896,902 **** if ( (currententity.flags & Defines.RF_TRANSLUCENT) != 0 ) { ! gl.glEnable (GL.GL_BLEND); gl.glColor4f (1,1,1,0.25f); ! GL_TexEnv( GL.GL_MODULATE ); } --- 895,901 ---- if ( (currententity.flags & Defines.RF_TRANSLUCENT) != 0 ) { ! gl.glEnable (GL_BLEND); gl.glColor4f (1,1,1,0.25f); ! GL_TexEnv( GL_MODULATE ); } *************** *** 941,947 **** else { ! gl.glDisable (GL.GL_BLEND); gl.glColor4f (1,1,1,1); ! GL_TexEnv( GL.GL_REPLACE ); } } --- 940,946 ---- else { ! gl.glDisable (GL_BLEND); gl.glColor4f (1,1,1,1); ! GL_TexEnv( GL_REPLACE ); } } *************** *** 1018,1024 **** GL_EnableMultitexture( true ); GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv( GL.GL_REPLACE ); GL_SelectTexture(GL_TEXTURE1); ! GL_TexEnv( GL.GL_MODULATE ); R_DrawInlineBModel(); --- 1017,1023 ---- GL_EnableMultitexture( true ); GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv( GL_REPLACE ); GL_SelectTexture(GL_TEXTURE1); ! GL_TexEnv( GL_MODULATE ); R_DrawInlineBModel(); *************** *** 1202,1212 **** GL_SelectTexture( GL_TEXTURE0); ! GL_TexEnv( GL.GL_REPLACE ); GL_SelectTexture( GL_TEXTURE1); if ( gl_lightmap.value != 0) ! GL_TexEnv( GL.GL_REPLACE ); else ! GL_TexEnv( GL.GL_MODULATE ); R_RecursiveWorldNode(r_worldmodel.nodes[0]); // root node --- 1201,1211 ---- GL_SelectTexture( GL_TEXTURE0); ! GL_TexEnv( GL_REPLACE ); GL_SelectTexture( GL_TEXTURE1); if ( gl_lightmap.value != 0) ! GL_TexEnv( GL_REPLACE ); else ! GL_TexEnv( GL_MODULATE ); R_RecursiveWorldNode(r_worldmodel.nodes[0]); // root node *************** *** 1344,1350 **** GL_Bind( gl_state.lightmap_textures + texture ); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); if ( dynamic ) { --- 1343,1350 ---- GL_Bind( gl_state.lightmap_textures + texture ); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + gl_lms.lightmap_buffer.rewind(); if ( dynamic ) { *************** *** 1357,1371 **** } ! gl.glTexSubImage2D( GL.GL_TEXTURE_2D, 0, 0, 0, BLOCK_WIDTH, height, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, gl_lms.lightmap_buffer ); } else { ! gl.glTexImage2D( GL.GL_TEXTURE_2D, 0, gl_lms.internal_format, --- 1357,1371 ---- } ! gl.glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, BLOCK_WIDTH, height, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, gl_lms.lightmap_buffer ); } else { ! gl.glTexImage2D( GL_TEXTURE_2D, 0, gl_lms.internal_format, *************** *** 1373,1377 **** 0, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, gl_lms.lightmap_buffer ); if ( ++gl_lms.current_lightmap_texture == MAX_LIGHTMAPS ) --- 1373,1377 ---- 0, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, gl_lms.lightmap_buffer ); if ( ++gl_lms.current_lightmap_texture == MAX_LIGHTMAPS ) *************** *** 1550,1554 **** lightstyle_t[] lightstyles; ! /* ================== --- 1550,1554 ---- lightstyle_t[] lightstyles; ! private final IntBuffer dummy = Lib.newIntBuffer(128*128); /* ================== *************** *** 1561,1566 **** // static lightstyle_t lightstyles[MAX_LIGHTSTYLES]; int i; - int[] dummy = new int[128*128]; - // init lightstyles if ( lightstyles == null ) { --- 1561,1564 ---- *************** *** 1629,1637 **** else if ( format == 'I' ) { ! gl_lms.internal_format = GL.GL_INTENSITY8; } else if ( format == 'L' ) { ! gl_lms.internal_format = GL.GL_LUMINANCE8; } else --- 1627,1635 ---- else if ( format == 'I' ) { ! gl_lms.internal_format = GL_INTENSITY8; } else if ( format == 'L' ) { ! gl_lms.internal_format = GL_LUMINANCE8; } else *************** *** 1644,1650 **** */ GL_Bind( gl_state.lightmap_textures + 0 ); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR); ! gl.glTexParameterf(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); ! gl.glTexImage2D( GL.GL_TEXTURE_2D, 0, gl_lms.internal_format, --- 1642,1648 ---- */ GL_Bind( gl_state.lightmap_textures + 0 ); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); ! gl.glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); ! gl.glTexImage2D( GL_TEXTURE_2D, 0, gl_lms.internal_format, *************** *** 1652,1656 **** 0, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, dummy ); } --- 1650,1654 ---- 0, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, dummy ); } Index: Light.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/jogl/Light.java,v retrieving revision 1.7 retrieving revision 1.7.12.1 diff -C2 -d -r1.7 -r1.7.12.1 *** Light.java 22 Sep 2004 19:22:16 -0000 1.7 --- Light.java 16 Jul 2005 18:25:37 -0000 1.7.12.1 *************** *** 42,47 **** import java.util.Arrays; - import net.java.games.jogl.GL; - /** * Light --- 42,45 ---- *************** *** 74,78 **** Math3D.VectorSubtract(light.origin, r_origin, v); ! gl.glBegin(GL.GL_TRIANGLE_FAN); gl.glColor3f(light.color[0] * 0.2f, light.color[1] * 0.2f, light.color[2] * 0.2f); --- 72,76 ---- Math3D.VectorSubtract(light.origin, r_origin, v); ! gl.glBegin(GL_TRIANGLE_FAN); gl.glColor3f(light.color[0] * 0.2f, light.color[1] * 0.2f, light.color[2] * 0.2f); *************** *** 104,111 **** // advanced yet for this frame gl.glDepthMask(false); ! gl.glDisable(GL.GL_TEXTURE_2D); ! gl.glShadeModel(GL.GL_SMOOTH); ! gl.glEnable(GL.GL_BLEND); ! gl.glBlendFunc(GL.GL_ONE, GL.GL_ONE); for (i = 0; i < r_newrefdef.num_dlights; i++) { --- 102,109 ---- // advanced yet for this frame gl.glDepthMask(false); ! gl.glDisable(GL_TEXTURE_2D); ! gl.glShadeModel(GL_SMOOTH); ! gl.glEnable(GL_BLEND); ! gl.glBlendFunc(GL_ONE, GL_ONE); for (i = 0; i < r_newrefdef.num_dlights; i++) { *************** *** 115,121 **** gl.glColor3f(1, 1, 1); ! gl.glDisable(GL.GL_BLEND); ! gl.glEnable(GL.GL_TEXTURE_2D); ! gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA); gl.glDepthMask(true); } --- 113,119 ---- gl.glColor3f(1, 1, 1); ! gl.glDisable(GL_BLEND); ! gl.glEnable(GL_TEXTURE_2D); ! gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); gl.glDepthMask(true); } *************** *** 593,599 **** if (monolightmap == '0') { for (i = 0; i < tmax; i++, destp += stride) { ! dest.position(destp); ! ! for (j = 0; j < smax; j++) { r = (int) bl[blp++]; --- 591,595 ---- if (monolightmap == '0') { for (i = 0; i < tmax; i++, destp += stride) { ! for (j = 0; j < smax; j++, destp++) { r = (int) bl[blp++]; *************** *** 642,646 **** b &= 0xFF; a &= 0xFF; ! dest.put(destp++, (a << 24) | (b << 16) | (g << 8) | (r << 0)); } --- 638,642 ---- b &= 0xFF; a &= 0xFF; ! dest.put(destp, (a << 24) | (b << 16) | (g << 8) | (r << 0)); } *************** *** 648,654 **** } else { for (i = 0; i < tmax; i++, destp += stride) { ! dest.position(destp); ! ! for (j = 0; j < smax; j++) { r = (int) bl[blp++]; --- 644,648 ---- } else { for (i = 0; i < tmax; i++, destp += stride) { ! for (j = 0; j < smax; j++, destp++) { r = (int) bl[blp++]; *************** *** 722,726 **** b &= 0xFF; a &= 0xFF; ! dest.put(destp++, (a << 24) | (b << 16) | (g << 8) | (r << 0)); } --- 716,720 ---- b &= 0xFF; a &= 0xFF; ! dest.put(destp, (a << 24) | (b << 16) | (g << 8) | (r << 0)); } Index: Warp.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/jogl/Warp.java,v retrieving revision 1.9 retrieving revision 1.9.6.1 diff -C2 -d -r1.9 -r1.9.6.1 *** Warp.java 10 Jan 2005 00:05:23 -0000 1.9 --- Warp.java 16 Jul 2005 18:25:37 -0000 1.9.6.1 *************** *** 31,35 **** import jake2.render.*; import jake2.util.Math3D; - import net.java.games.jogl.GL; /** --- 31,34 ---- *************** *** 294,298 **** p = bp; ! gl.glBegin(GL.GL_TRIANGLE_FAN); for (i = 0; i < p.numverts; i++) { os = p.s1(i); --- 293,297 ---- p = bp; ! gl.glBegin(GL_TRIANGLE_FAN); for (i = 0; i < p.numverts; i++) { ... [truncated message content] |