From: Carsten W. <ca...@us...> - 2005-10-24 22:41:19
|
Update of /cvsroot/jake2/jake2/src/jake2/render/fastjogl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4342/src/jake2/render/fastjogl Modified Files: Tag: render-refactoring Image.java Misc.java Mesh.java Warp.java Model.java Base.java Surf.java Draw.java Main.java Light.java Log Message: now uses QGL interface for OpenGL calls Index: Base.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fastjogl/Base.java,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -C2 -d -r1.3 -r1.3.4.1 *** Base.java 8 Jun 2005 20:43:07 -0000 1.3 --- Base.java 24 Oct 2005 22:41:12 -0000 1.3.4.1 *************** *** 26,31 **** package jake2.render.fastjogl; ! import jake2.render.JoglBase; ! import net.java.games.jogl.GL; /** --- 26,34 ---- package jake2.render.fastjogl; ! 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"; *************** *** 153,155 **** --- 156,199 ---- static final int GL_RENDERER_OTHER = 0x80000000; + + /* + * base members + */ + + protected viddef_t vid = new viddef_t(); + + protected cvar_t vid_fullscreen; + + // protected QGL gl = JoglGL.getInstance(); //DummyGL.getInstance(); + 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 + } } \ No newline at end of file Index: Image.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fastjogl/Image.java,v retrieving revision 1.8 retrieving revision 1.8.8.1 diff -C2 -d -r1.8 -r1.8.8.1 *** Image.java 10 Nov 2004 20:35:36 -0000 1.8 --- Image.java 24 Oct 2005 22:41:11 -0000 1.8.8.1 *************** *** 39,43 **** import java.util.Arrays; - import net.java.games.jogl.GL; /** --- 39,42 ---- *************** *** 70,76 **** int gl_tex_alpha_format = 4; ! int gl_filter_min = GL.GL_LINEAR_MIPMAP_NEAREST; ! int gl_filter_max = GL.GL_LINEAR; Image() { --- 69,75 ---- int gl_tex_alpha_format = 4; ! int gl_filter_min = GL_LINEAR_MIPMAP_NEAREST; ! int gl_filter_max = GL_LINEAR; Image() { *************** *** 86,101 **** 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); } } --- 85,98 ---- 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); } } *************** *** 104,116 **** 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); } --- 101,113 ---- 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); } *************** *** 135,139 **** if (mode != lastmodes[gl_state.currenttmu]) { ! gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, mode); lastmodes[gl_state.currenttmu] = mode; } --- 132,136 ---- if (mode != lastmodes[gl_state.currenttmu]) { ! gl.glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode); lastmodes[gl_state.currenttmu] = mode; } *************** *** 150,154 **** gl_state.currenttextures[gl_state.currenttmu] = texnum; ! gl.glBindTexture(GL.GL_TEXTURE_2D, texnum); } --- 147,151 ---- gl_state.currenttextures[gl_state.currenttmu] = texnum; ! gl.glBindTexture(GL_TEXTURE_2D, texnum); } *************** *** 179,192 **** 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; --- 176,189 ---- 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; *************** *** 205,223 **** 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), ! new gltmode_t("GL_RGB2", GL.GL_RGB2_EXT) }; static final int NUM_GL_SOLID_MODES = gl_solid_modes.length; --- 202,220 ---- 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) }; ! /* new gltmode_t("GL_RGB2", GL_RGB2_EXT) */ static final int NUM_GL_SOLID_MODES = gl_solid_modes.length; *************** *** 251,257 **** 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); } --- 248,254 ---- 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); } *************** *** 980,984 **** * Returns has_alpha */ ! void GL_BuildPalettedTexture(byte[] paletted_texture, int[] scaled, int scaled_width, int scaled_height) { --- 977,981 ---- * Returns has_alpha */ ! void GL_BuildPalettedTexture(ByteBuffer paletted_texture, int[] scaled, int scaled_width, int scaled_height) { *************** *** 994,998 **** c = r | (g << 5) | (b << 11); ! paletted_texture[i] = gl_state.d_16to8table[c]; } } --- 991,995 ---- c = r | (g << 5) | (b << 11); ! paletted_texture.put(i, gl_state.d_16to8table[c]); } } *************** *** 1004,1008 **** int[] scaled = new int[256 * 256]; ! byte[] paletted_texture = new byte[256 * 256]; IntBuffer tex = Lib.newIntBuffer(512 * 256, ByteOrder.LITTLE_ENDIAN); --- 1001,1005 ---- int[] scaled = new int[256 * 256]; ! ByteBuffer paletted_texture = Lib.newByteBuffer(256*256); IntBuffer tex = Lib.newIntBuffer(512 * 256, ByteOrder.LITTLE_ENDIAN); *************** *** 1020,1024 **** Arrays.fill(scaled, 0); ! Arrays.fill(paletted_texture, (byte) 0); uploaded_paletted = false; --- 1017,1022 ---- Arrays.fill(scaled, 0); ! paletted_texture.clear(); ! for (int j=0; j<256*256; j++) paletted_texture.put(j,(byte)0); uploaded_paletted = false; *************** *** 1087,1100 **** 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, 0, scaled_width * scaled_height); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, comp, ! scaled_width, scaled_height, 0, GL.GL_RGBA, ! GL.GL_UNSIGNED_BYTE, tex); } //goto done; --- 1085,1098 ---- 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, 0, scaled_width * scaled_height).flip(); ! gl.glTexImage2D(GL_TEXTURE_2D, 0, comp, ! scaled_width, scaled_height, 0, GL_RGBA, ! GL_UNSIGNED_BYTE, tex); } //goto done; *************** *** 1114,1125 **** 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, 0, scaled_width * scaled_height); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, comp, scaled_width, ! scaled_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, tex); } --- 1112,1123 ---- 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, 0, scaled_width * scaled_height).flip(); ! gl.glTexImage2D(GL_TEXTURE_2D, 0, comp, scaled_width, ! scaled_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex); } *************** *** 1143,1156 **** 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, 0, scaled_width * scaled_height); ! gl.glTexImage2D(GL.GL_TEXTURE_2D, miplevel, comp, ! scaled_width, scaled_height, 0, GL.GL_RGBA, ! GL.GL_UNSIGNED_BYTE, tex); } } --- 1141,1154 ---- 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, 0, scaled_width * scaled_height).flip(); ! gl.glTexImage2D(GL_TEXTURE_2D, miplevel, comp, ! scaled_width, scaled_height, 0, GL_RGBA, ! GL_UNSIGNED_BYTE, tex); } } *************** *** 1162,1173 **** 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); } --- 1160,1171 ---- 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); } *************** *** 1194,1203 **** 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); --- 1192,1201 ---- 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); *************** *** 1459,1462 **** --- 1457,1462 ---- } + private IntBuffer texnum = Lib.newIntBuffer(1); + /* * GL_FreeUnusedImages *************** *** 1485,1489 **** // free it ! gl.glDeleteTextures(1, new int[] { image.texnum }); image.clear(); } --- 1485,1490 ---- // free it ! texnum.put(0, image.texnum); ! gl.glDeleteTextures(texnum); image.clear(); } *************** *** 1585,1589 **** continue; // free image_t slot // free it ! gl.glDeleteTextures(1, new int[] { image.texnum }); image.clear(); } --- 1586,1591 ---- continue; // free image_t slot // free it ! texnum.put(0, image.texnum); ! gl.glDeleteTextures(texnum); image.clear(); } Index: Surf.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fastjogl/Surf.java,v retrieving revision 1.10 retrieving revision 1.10.4.1 diff -C2 -d -r1.10 -r1.10.4.1 *** Surf.java 8 Jun 2005 21:27:09 -0000 1.10 --- Surf.java 24 Oct 2005 22:41:12 -0000 1.10.4.1 *************** *** 38,44 **** import java.util.Arrays; - import net.java.games.jogl.GL; - import net.java.games.jogl.util.BufferUtils; - /** * Surf --- 38,41 ---- *************** *** 69,73 **** int c_visible_textures; ! static final int GL_LIGHTMAP_FORMAT = GL.GL_RGBA; static class gllightmapstate_t { --- 66,70 ---- int c_visible_textures; ! static final int GL_LIGHTMAP_FORMAT = GL_RGBA; static class gllightmapstate_t { *************** *** 153,157 **** */ void DrawGLPoly(glpoly_t p) { ! gl.glDrawArrays(GL.GL_POLYGON, p.pos, p.numverts); } --- 150,154 ---- */ void DrawGLPoly(glpoly_t p) { ! gl.glDrawArrays(GL_POLYGON, p.pos, p.numverts); } *************** *** 169,173 **** p.beginScrolling(scroll); ! gl.glDrawArrays(GL.GL_POLYGON, p.pos, p.numverts); p.endScrolling(); } --- 166,170 ---- p.beginScrolling(scroll); ! gl.glDrawArrays(GL_POLYGON, p.pos, p.numverts); p.endScrolling(); } *************** *** 183,188 **** return; ! gl.glDisable(GL.GL_TEXTURE_2D); ! gl.glDisable(GL.GL_DEPTH_TEST); gl.glColor4f(1, 1, 1, 1); --- 180,185 ---- return; ! gl.glDisable(GL_TEXTURE_2D); ! gl.glDisable(GL_DEPTH_TEST); gl.glColor4f(1, 1, 1, 1); *************** *** 191,195 **** for (glpoly_t p = surf.polys; p != null; p = p.chain) { 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)); --- 188,192 ---- for (glpoly_t p = surf.polys; p != null; p = p.chain) { 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)); *************** *** 202,207 **** } ! gl.glEnable(GL.GL_DEPTH_TEST); ! gl.glEnable(GL.GL_TEXTURE_2D); } --- 199,204 ---- } ! gl.glEnable(GL_DEPTH_TEST); ! gl.glEnable(GL_TEXTURE_2D); } *************** *** 225,239 **** // warp texture, no lightmaps ! GL_TexEnv(GL.GL_MODULATE); gl.glColor4f(gl_state.inverse_intensity, gl_state.inverse_intensity, gl_state.inverse_intensity, 1.0F); EmitWaterPolys(fa); ! GL_TexEnv(GL.GL_REPLACE); return; } else { GL_Bind(image.texnum); ! GL_TexEnv(GL.GL_REPLACE); } --- 222,236 ---- // warp texture, no lightmaps ! GL_TexEnv(GL_MODULATE); gl.glColor4f(gl_state.inverse_intensity, gl_state.inverse_intensity, gl_state.inverse_intensity, 1.0F); EmitWaterPolys(fa); ! GL_TexEnv(GL_REPLACE); return; } else { GL_Bind(image.texnum); ! GL_TexEnv(GL_REPLACE); } *************** *** 289,294 **** 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); --- 286,291 ---- 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); *************** *** 319,326 **** // 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, --- 316,323 ---- // go back to the world matrix // ! gl.glLoadMatrix(r_world_matrix); ! gl.glEnable(GL_BLEND); ! GL_TexEnv(GL_MODULATE); // the textures are prescaled up for a better lighting range, *************** *** 328,332 **** intens = gl_state.inverse_intensity; ! gl.glInterleavedArrays(GL.GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf); --- 325,329 ---- intens = gl_state.inverse_intensity; ! gl.glInterleavedArrays(GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf); *************** *** 349,355 **** } ! GL_TexEnv(GL.GL_REPLACE); gl.glColor4f(1, 1, 1, 1); ! gl.glDisable(GL.GL_BLEND); r_alpha_surfaces = null; --- 346,352 ---- } ! GL_TexEnv(GL_REPLACE); gl.glColor4f(1, 1, 1, 1); ! gl.glDisable(GL_BLEND); r_alpha_surfaces = null; *************** *** 399,403 **** } ! GL_TexEnv(GL.GL_REPLACE); } --- 396,400 ---- } ! GL_TexEnv(GL_REPLACE); } *************** *** 460,466 **** 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); } else { --- 457,463 ---- lmtex = surf.lightmaptexturenum; ! gl.glTexSubImage2D(GL_TEXTURE_2D, 0, surf.light_s, surf.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, temp); } else { *************** *** 474,480 **** 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); } --- 471,477 ---- lmtex = 0; ! gl.glTexSubImage2D(GL_TEXTURE_2D, 0, surf.light_s, surf.light_t, smax, tmax, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, temp); } *************** *** 497,506 **** for (p = surf.polys; p != null; p = p.chain) { p.beginScrolling(scroll); ! gl.glDrawArrays(GL.GL_POLYGON, p.pos, p.numverts); p.endScrolling(); } } else { for (p = surf.polys; p != null; p = p.chain) { ! gl.glDrawArrays(GL.GL_POLYGON, p.pos, p.numverts); } } --- 494,503 ---- for (p = surf.polys; p != null; p = p.chain) { p.beginScrolling(scroll); ! gl.glDrawArrays(GL_POLYGON, p.pos, p.numverts); p.endScrolling(); } } else { for (p = surf.polys; p != null; p = p.chain) { ! gl.glDrawArrays(GL_POLYGON, p.pos, p.numverts); } } *************** *** 525,529 **** for (p = surf.polys; p != null; p = p.chain) { p.beginScrolling(scroll); ! gl.glDrawArrays(GL.GL_POLYGON, p.pos, p.numverts); p.endScrolling(); } --- 522,526 ---- for (p = surf.polys; p != null; p = p.chain) { p.beginScrolling(scroll); ! gl.glDrawArrays(GL_POLYGON, p.pos, p.numverts); p.endScrolling(); } *************** *** 532,536 **** // ========== for (p = surf.polys; p != null; p = p.chain) { ! gl.glDrawArrays(GL.GL_POLYGON, p.pos, p.numverts); } --- 529,533 ---- // ========== for (p = surf.polys; p != null; p = p.chain) { ! gl.glDrawArrays(GL_POLYGON, p.pos, p.numverts); } *************** *** 569,575 **** if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glEnable(GL.GL_BLEND); gl.glColor4f(1, 1, 1, 0.25f); ! GL_TexEnv(GL.GL_MODULATE); } --- 566,572 ---- if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glEnable(GL_BLEND); gl.glColor4f(1, 1, 1, 0.25f); ! GL_TexEnv(GL_MODULATE); } *************** *** 602,608 **** if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glDisable(GL.GL_BLEND); gl.glColor4f(1, 1, 1, 1); ! GL_TexEnv(GL.GL_REPLACE); } } --- 599,605 ---- if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glDisable(GL_BLEND); gl.glColor4f(1, 1, 1, 1); ! GL_TexEnv(GL_REPLACE); } } *************** *** 674,690 **** GL_EnableMultitexture(true); GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv(GL.GL_REPLACE); ! gl.glInterleavedArrays(GL.GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf); GL_SelectTexture(GL_TEXTURE1); ! GL_TexEnv(GL.GL_MODULATE); ! gl.glTexCoordPointer(2, GL.GL_FLOAT, Polygon.BYTE_STRIDE, globalPolygonTexCoord1Buf); ! gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY); R_DrawInlineBModel(); gl.glClientActiveTextureARB(GL_TEXTURE1); ! gl.glDisableClientState(GL.GL_TEXTURE_COORD_ARRAY); GL_EnableMultitexture(false); --- 671,687 ---- GL_EnableMultitexture(true); GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv(GL_REPLACE); ! gl.glInterleavedArrays(GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf); GL_SelectTexture(GL_TEXTURE1); ! GL_TexEnv(GL_MODULATE); ! gl.glTexCoordPointer(2, Polygon.BYTE_STRIDE, globalPolygonTexCoord1Buf); ! gl.glEnableClientState(GL_TEXTURE_COORD_ARRAY); R_DrawInlineBModel(); gl.glClientActiveTextureARB(GL_TEXTURE1); ! gl.glDisableClientState(GL_TEXTURE_COORD_ARRAY); GL_EnableMultitexture(false); *************** *** 851,871 **** GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv(GL.GL_REPLACE); ! gl.glInterleavedArrays(GL.GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf); GL_SelectTexture(GL_TEXTURE1); ! gl.glTexCoordPointer(2, GL.GL_FLOAT, Polygon.BYTE_STRIDE, globalPolygonTexCoord1Buf); ! gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY); if (gl_lightmap.value != 0) ! GL_TexEnv(GL.GL_REPLACE); else ! GL_TexEnv(GL.GL_MODULATE); R_RecursiveWorldNode(r_worldmodel.nodes[0]); // root node gl.glClientActiveTextureARB(GL_TEXTURE1); ! gl.glDisableClientState(GL.GL_TEXTURE_COORD_ARRAY); GL_EnableMultitexture(false); --- 848,868 ---- GL_SelectTexture(GL_TEXTURE0); ! GL_TexEnv(GL_REPLACE); ! gl.glInterleavedArrays(GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf); GL_SelectTexture(GL_TEXTURE1); ! gl.glTexCoordPointer(2, Polygon.BYTE_STRIDE, globalPolygonTexCoord1Buf); ! gl.glEnableClientState(GL_TEXTURE_COORD_ARRAY); if (gl_lightmap.value != 0) ! GL_TexEnv(GL_REPLACE); else ! GL_TexEnv(GL_MODULATE); R_RecursiveWorldNode(r_worldmodel.nodes[0]); // root node gl.glClientActiveTextureARB(GL_TEXTURE1); ! gl.glDisableClientState(GL_TEXTURE_COORD_ARRAY); GL_EnableMultitexture(false); *************** *** 979,986 **** 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) { --- 976,983 ---- 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) { *************** *** 992,1007 **** } ! 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, BLOCK_WIDTH, BLOCK_HEIGHT, 0, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, gl_lms.lightmap_buffer); if (++gl_lms.current_lightmap_texture == MAX_LIGHTMAPS) Com.Error(Defines.ERR_DROP, "LM_UploadBlock() - MAX_LIGHTMAPS exceeded\n"); ! //debugLightmap(gl_lms.lightmap_buffer, 128, 128, 4); } --- 989,1004 ---- } ! 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, BLOCK_WIDTH, BLOCK_HEIGHT, 0, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, gl_lms.lightmap_buffer); if (++gl_lms.current_lightmap_texture == MAX_LIGHTMAPS) Com.Error(Defines.ERR_DROP, "LM_UploadBlock() - MAX_LIGHTMAPS exceeded\n"); ! // debugLightmap(gl_lms.lightmap_buffer, 128, 128, 4); } *************** *** 1153,1157 **** lightstyle_t[] lightstyles; ! IntBuffer dummy = BufferUtils.newIntBuffer(128 * 128); /* --- 1150,1154 ---- lightstyle_t[] lightstyles; ! IntBuffer dummy = Lib.newIntBuffer(128 * 128); /* *************** *** 1219,1225 **** gl_lms.internal_format = gl_tex_alpha_format; } else if (format == 'I') { ! gl_lms.internal_format = GL.GL_INTENSITY8; } else if (format == 'L') { ! gl_lms.internal_format = GL.GL_LUMINANCE8; } else { gl_lms.internal_format = gl_tex_solid_format; --- 1216,1222 ---- gl_lms.internal_format = gl_tex_alpha_format; } else if (format == 'I') { ! gl_lms.internal_format = GL_INTENSITY8; } else if (format == 'L') { ! gl_lms.internal_format = GL_LUMINANCE8; } else { gl_lms.internal_format = gl_tex_solid_format; *************** *** 1230,1240 **** */ 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, BLOCK_WIDTH, BLOCK_HEIGHT, 0, GL_LIGHTMAP_FORMAT, ! GL.GL_UNSIGNED_BYTE, dummy); } --- 1227,1237 ---- */ 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, BLOCK_WIDTH, BLOCK_HEIGHT, 0, GL_LIGHTMAP_FORMAT, ! GL_UNSIGNED_BYTE, dummy); } Index: Light.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fastjogl/Light.java,v retrieving revision 1.12 retrieving revision 1.12.6.1 diff -C2 -d -r1.12 -r1.12.6.1 *** Light.java 7 May 2005 17:17:48 -0000 1.12 --- Light.java 24 Oct 2005 22:41:12 -0000 1.12.6.1 *************** *** 39,44 **** import java.util.Arrays; - import net.java.games.jogl.GL; - /** * Light --- 39,42 ---- *************** *** 66,70 **** 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); --- 64,68 ---- 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); *************** *** 96,103 **** // 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 (int i = 0; i < r_newrefdef.num_dlights; i++) { --- 94,101 ---- // 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 (int i = 0; i < r_newrefdef.num_dlights; i++) { *************** *** 106,112 **** 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); } --- 104,110 ---- 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); } *************** *** 607,612 **** if (monolightmap == '0') { for (i = 0; i < tmax; i++, destp += stride) { - //dest.position(destp); - for (j = 0; j < smax; j++) { --- 605,608 ---- *************** *** 658,663 **** } else { for (i = 0; i < tmax; i++, destp += stride) { - //dest.position(destp); - for (j = 0; j < smax; j++) { --- 654,657 ---- Index: Mesh.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fastjogl/Mesh.java,v retrieving revision 1.12 retrieving revision 1.12.4.1 diff -C2 -d -r1.12 -r1.12.4.1 *** Mesh.java 9 Jun 2005 07:59:58 -0000 1.12 --- Mesh.java 24 Oct 2005 22:41:11 -0000 1.12.4.1 *************** *** 31,43 **** import jake2.qcommon.qfiles; import jake2.render.image_t; ! import jake2.util.Math3D; ! import jake2.util.Vec3Cache; import java.nio.FloatBuffer; import java.nio.IntBuffer; - import net.java.games.jogl.GL; - import net.java.games.jogl.util.BufferUtils; - /** * Mesh --- 31,39 ---- import jake2.qcommon.qfiles; import jake2.render.image_t; ! import jake2.util.*; import java.nio.FloatBuffer; import java.nio.IntBuffer; /** * Mesh *************** *** 108,119 **** } ! FloatBuffer colorArrayBuf = BufferUtils ! .newFloatBuffer(qfiles.MAX_VERTS * 4); ! FloatBuffer vertexArrayBuf = BufferUtils ! .newFloatBuffer(qfiles.MAX_VERTS * 3); ! FloatBuffer textureArrayBuf = BufferUtils ! .newFloatBuffer(qfiles.MAX_VERTS * 2); boolean isFilled = false; --- 104,112 ---- } ! FloatBuffer colorArrayBuf = Lib.newFloatBuffer(qfiles.MAX_VERTS * 4); ! FloatBuffer vertexArrayBuf = Lib.newFloatBuffer(qfiles.MAX_VERTS * 3); ! FloatBuffer textureArrayBuf = Lib.newFloatBuffer(qfiles.MAX_VERTS * 2); boolean isFilled = false; *************** *** 153,157 **** | Defines.RF_SHELL_GREEN | Defines.RF_SHELL_BLUE | Defines.RF_SHELL_DOUBLE | Defines.RF_SHELL_HALF_DAM)) != 0) ! gl.glDisable(GL.GL_TEXTURE_2D); float frontlerp = 1.0f - backlerp; --- 146,150 ---- | Defines.RF_SHELL_GREEN | Defines.RF_SHELL_BLUE | Defines.RF_SHELL_DOUBLE | Defines.RF_SHELL_HALF_DAM)) != 0) ! gl.glDisable(GL_TEXTURE_2D); float frontlerp = 1.0f - backlerp; *************** *** 184,189 **** Vec3Cache.release(3); // frontv, move, backv ! //gl.glEnableClientState( GL.GL_VERTEX_ARRAY ); ! gl.glVertexPointer(3, GL.GL_FLOAT, 0, vertexArrayBuf); // PMM - added double damage shell --- 177,182 ---- Vec3Cache.release(3); // frontv, move, backv ! //gl.glEnableClientState( GL_VERTEX_ARRAY ); ! gl.glVertexPointer(3, 0, vertexArrayBuf); // PMM - added double damage shell *************** *** 193,198 **** gl.glColor4f(shadelight[0], shadelight[1], shadelight[2], alpha); } else { ! gl.glEnableClientState(GL.GL_COLOR_ARRAY); ! gl.glColorPointer(4, GL.GL_FLOAT, 0, colorArrayBuf); // --- 186,191 ---- gl.glColor4f(shadelight[0], shadelight[1], shadelight[2], alpha); } else { ! gl.glEnableClientState(GL_COLOR_ARRAY); ! gl.glColorPointer(4, 0, colorArrayBuf); // *************** *** 213,218 **** gl.glClientActiveTextureARB(GL_TEXTURE0); ! gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, textureArrayBuf); ! //gl.glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY); int pos = 0; --- 206,211 ---- gl.glClientActiveTextureARB(GL_TEXTURE0); ! gl.glTexCoordPointer(2, 0, textureArrayBuf); ! //gl.glEnableClientState( GL_TEXTURE_COORD_ARRAY); int pos = 0; *************** *** 236,242 **** srcIndexBuf = paliashdr.indexElements[j]; ! int mode = GL.GL_TRIANGLE_STRIP; if (count < 0) { ! mode = GL.GL_TRIANGLE_FAN; count = -count; } --- 229,235 ---- srcIndexBuf = paliashdr.indexElements[j]; ! int mode = GL_TRIANGLE_STRIP; if (count < 0) { ! mode = GL_TRIANGLE_FAN; count = -count; } *************** *** 250,254 **** } ! gl.glDrawElements(mode, count, GL.GL_UNSIGNED_INT, srcIndexBuf); pos += count; --- 243,247 ---- } ! gl.glDrawElements(mode, srcIndexBuf); pos += count; *************** *** 259,265 **** | Defines.RF_SHELL_GREEN | Defines.RF_SHELL_BLUE | Defines.RF_SHELL_DOUBLE | Defines.RF_SHELL_HALF_DAM)) != 0) ! gl.glEnable(GL.GL_TEXTURE_2D); ! gl.glDisableClientState(GL.GL_COLOR_ARRAY); } --- 252,258 ---- | Defines.RF_SHELL_GREEN | Defines.RF_SHELL_BLUE | Defines.RF_SHELL_DOUBLE | Defines.RF_SHELL_HALF_DAM)) != 0) ! gl.glEnable(GL_TEXTURE_2D); ! gl.glDisableClientState(GL_COLOR_ARRAY); } *************** *** 297,303 **** if (count < 0) { count = -count; ! gl.glBegin(GL.GL_TRIANGLE_FAN); } else ! gl.glBegin(GL.GL_TRIANGLE_STRIP); do { --- 290,296 ---- if (count < 0) { count = -count; ! gl.glBegin(GL_TRIANGLE_FAN); } else ! gl.glBegin(GL_TRIANGLE_STRIP); do { *************** *** 595,599 **** if ((currententity.flags & Defines.RF_WEAPONMODEL) != 0 && (r_lefthand.value == 1.0f)) { ! gl.glMatrixMode(GL.GL_PROJECTION); gl.glPushMatrix(); gl.glLoadIdentity(); --- 588,592 ---- if ((currententity.flags & Defines.RF_WEAPONMODEL) != 0 && (r_lefthand.value == 1.0f)) { ! gl.glMatrixMode(GL_PROJECTION); gl.glPushMatrix(); gl.glLoadIdentity(); *************** *** 601,607 **** MYgluPerspective(r_newrefdef.fov_y, (float) r_newrefdef.width / r_newrefdef.height, 4, 4096); ! gl.glMatrixMode(GL.GL_MODELVIEW); ! gl.glCullFace(GL.GL_BACK); } --- 594,600 ---- MYgluPerspective(r_newrefdef.fov_y, (float) r_newrefdef.width / r_newrefdef.height, 4, 4096); ! gl.glMatrixMode(GL_MODELVIEW); ! gl.glCullFace(GL_BACK); } *************** *** 629,637 **** // draw it ! gl.glShadeModel(GL.GL_SMOOTH); ! GL_TexEnv(GL.GL_MODULATE); if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glEnable(GL.GL_BLEND); } --- 622,630 ---- // draw it ! gl.glShadeModel(GL_SMOOTH); ! GL_TexEnv(GL_MODULATE); if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glEnable(GL_BLEND); } *************** *** 659,664 **** GL_DrawAliasFrameLerp(paliashdr, currententity.backlerp); ! GL_TexEnv(GL.GL_REPLACE); ! gl.glShadeModel(GL.GL_FLAT); gl.glPopMatrix(); --- 652,657 ---- GL_DrawAliasFrameLerp(paliashdr, currententity.backlerp); ! GL_TexEnv(GL_REPLACE); ! gl.glShadeModel(GL_FLAT); gl.glPopMatrix(); *************** *** 666,677 **** if ((currententity.flags & Defines.RF_WEAPONMODEL) != 0 && (r_lefthand.value == 1.0F)) { ! gl.glMatrixMode(GL.GL_PROJECTION); gl.glPopMatrix(); ! gl.glMatrixMode(GL.GL_MODELVIEW); ! gl.glCullFace(GL.GL_FRONT); } if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glDisable(GL.GL_BLEND); } --- 659,670 ---- if ((currententity.flags & Defines.RF_WEAPONMODEL) != 0 && (r_lefthand.value == 1.0F)) { ! gl.glMatrixMode(GL_PROJECTION); gl.glPopMatrix(); ! gl.glMatrixMode(GL_MODELVIEW); ! gl.glCullFace(GL_FRONT); } if ((currententity.flags & Defines.RF_TRANSLUCENT) != 0) { ! gl.glDisable(GL_BLEND); } *************** *** 683,692 **** gl.glPushMatrix(); R_RotateForEntity(e); ! gl.glDisable(GL.GL_TEXTURE_2D); ! gl.glEnable(GL.GL_BLEND); gl.glColor4f(0, 0, 0, 0.5f); GL_DrawAliasShadow(paliashdr, currententity.frame); ! gl.glEnable(GL.GL_TEXTURE_2D); ! gl.glDisable(GL.GL_BLEND); gl.glPopMatrix(); } --- 676,685 ---- gl.glPushMatrix(); R_RotateForEntity(e); ! gl.glDisable(GL_TEXTURE_2D); ! gl.glEnable(GL_BLEND); gl.glColor4f(0, 0, 0, 0.5f); GL_DrawAliasShadow(paliashdr, currententity.frame); ! gl.glEnable(GL_TEXTURE_2D); ! gl.glDisable(GL_BLEND); gl.glPopMatrix(); } Index: Model.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fastjogl/Model.java,v retrieving revision 1.12 retrieving revision 1.12.6.1 diff -C2 -d -r1.12 -r1.12.6.1 *** Model.java 15 May 2005 16:06:15 -0000 1.12 --- Model.java 24 Oct 2005 22:41:11 -0000 1.12.6.1 *************** *** 32,37 **** import jake2.qcommon.*; import jake2.render.*; ! import jake2.util.Math3D; ! import jake2.util.Vargs; import java.nio.*; --- 32,36 ---- import jake2.qcommon.*; import jake2.render.*; ! import jake2.util.*; import java.nio.*; *************** *** 39,44 **** import java.util.Vector; - import net.java.games.jogl.util.BufferUtils; - /** * Model --- 38,41 ---- *************** *** 1196,1204 **** static final int MODEL_BUFFER_SIZE = 50000; ! static FloatBuffer globalModelTextureCoordBuf = BufferUtils ! .newFloatBuffer(MODEL_BUFFER_SIZE * 2); ! static IntBuffer globalModelVertexIndexBuf = BufferUtils ! .newIntBuffer(MODEL_BUFFER_SIZE); void precompileGLCmds(qfiles.dmdl_t model) { --- 1193,1199 ---- static final int MODEL_BUFFER_SIZE = 50000; ! static FloatBuffer globalModelTextureCoordBuf = Lib.newFloatBuffer(MODEL_BUFFER_SIZE * 2); ! static IntBuffer globalModelVertexIndexBuf = Lib.newIntBuffer(MODEL_BUFFER_SIZE); void precompileGLCmds(qfiles.dmdl_t model) { Index: Main.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fastjogl/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 24 Oct 2005 22:41:12 -0000 1.8.6.1 *************** *** 34,37 **** --- 34,38 ---- import jake2.qcommon.*; import jake2.render.*; + import jake2.util.*; import jake2.util.Math3D; import jake2.util.Vargs; *************** *** 41,45 **** import java.nio.IntBuffer; - import net.java.games.jogl.GL; import net.java.games.jogl.Version; --- 42,45 ---- *************** *** 113,120 **** */ - int GL_TEXTURE0 = GL.GL_TEXTURE0; - int GL_TEXTURE1 = GL.GL_TEXTURE1; - - model_t r_worldmodel; --- 113,116 ---- *************** *** 147,151 **** float[] r_origin = { 0, 0, 0 }; ! float r_world_matrix[] = new float[16]; float r_base_world_matrix[] = new float[16]; --- 143,147 ---- 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); --- 285,289 ---- 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); --- 291,302 ---- 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); --- 322,330 ---- 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; --- 354,364 ---- 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--) { --- 368,372 ---- 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); } --- 374,381 ---- } 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; --- 476,483 ---- 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; *************** *** 521,528 **** 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); } --- 516,523 ---- gl.glEnd(); ! gl.glDisable(GL_BLEND); gl.glColor4f(1, 1, 1, 1); gl.glDepthMask(true); // back to normal Z buffering ! GL_TexEnv(GL_REPLACE); } *************** *** 536,558 **** 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); } --- 531,553 ---- 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); } *************** *** 574,581 **** 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(); --- 569,576 ---- return; ! gl.glDisable(GL_ALPHA_TEST); ! gl.glEnable(GL_BLEND); ! gl.glDisable(GL_DEPTH_TEST); ! gl.glDisable(GL_TEXTURE_2D); gl.glLoadIdentity(); *************** *** 587,591 **** gl.glColor4f(v_blend[0], v_blend[1], v_blend[2], v_blend[3]); ! gl.glBegin(GL.GL_QUADS); gl.glVertex3f(10, 100, 100); --- 582,586 ---- gl.glColor4f(v_blend[0], v_blend[1], v_blend[2], v_blend[3]); ! gl.glBegin(GL_QUADS); gl.glVertex3f(10, 100, 100); *************** *** 595,601 **** 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); --- 590,596 ---- 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( --- 679,683 ---- // 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); } } --- 686,692 ---- 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); } } *************** *** 740,750 **** // float 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(); --- 735,745 ---- // float 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(); *************** *** 756,760 **** gl.glTranslatef(-r_newrefdef.vieworg[0], -r_newrefdef.vieworg[1], -r_newrefdef.vieworg[2]); ! gl.glGetFloatv(GL.GL_MODELVIEW_MATRIX, r_world_matrix); // --- 751,755 ---- gl.glTranslatef(-r_newrefdef.vieworg[0], -r_newrefdef.vieworg[1], -r_newrefdef.vieworg[2]); ! gl.glGetFloat(GL_MODELVIEW_MATRIX, r_world_matrix); // *************** *** 762,772 **** // 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); } --- 757,767 ---- // 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); } *************** *** 782,786 **** if (gl_clear.value != 0.0f) { ! gl.glClear(GL.GL_COLOR_BUFFER_BIT); } --- 777,781 ---- if (gl_clear.value != 0.0f) { ! gl.glClear(GL_COLOR_BUFFER_BIT); } *************** *** 789,809 **** 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); --- 784,804 ---- 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); *************** *** 877,889 **** // 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... [truncated message content] |