Build 5974
SVN-
General
Rename E_PostInitTables back to E_PostInit and move it back to where it belongs in engine.c (i.e. preinitengine, initengine, "postinitengine"). It should not have been changed.
SVN handles and Git names are merged into one person.
Rename E_PostInitTables back to E_PostInit and move it back to where it belongs in engine.c (i.e. preinitengine, initengine, "postinitengine"). It should not have been changed.
Fix linking of mdpause variable with POLYMER=0 in screens.c, exposed by Visual Studio. DONT_BUILD.
Add #ifdef USE_OPENGL forgotten in r5024 that causes an OOB access in scansector() and glitchy mirrors with USE_OPENGL=0.
Extend undefinetile to also remove voxels, hightile (including skyboxes) and models.
Add vox_undefine().
Amend r5910 so that the problem is mitigated even when the map load takes place with a different renderer.
Clear wsprinfo[] upon map load. This should address some remaining instances of wall-ornamented sprite z-fighting.
GL .blend support.
Consult me if you are interested in this feature. TODO: Polymer.
In 8-bit, change the precedence of .alpha and .blend.
Previously: Non-zero alpha stacked with cstat translucency in an imitation of Polymost, potentially clobbering .blend if alphatabs are used. Now: If cstat translucency is active, .alpha is ignored.
Remove the Polymer aspect ratio option, as it was always broken, and I don't know what purpose it has besides configuring non-square pixel stretching, which we have a long way to go in terms of configuring anyway.
Use r_pr_customaspect from the console instead.
Some float optimizations in the engine.
Fix ghost tsprite bug introduced in previous commit.
Correct an oversight in r3580.
Revert part of r5481. We can't rely on the sprite trackers to tell us when tsprites change.
Fix the oversight in handling tspr->extra from r5400 by setting it to zero in polymer_scansprites.
A quick hack so that Mapster can load more pre-v7 PALETTE.DAT files.
Factor out the ETC block preparation by moving the ETC function decision from Polymost_SendTexToDriver into Polymost_PickETCFunction.
Allow compressed ART tiles (r_texcompr 2) to be cached.
Tweak the "don't upload textures with dimension > xdim" GL ES rule to limit to the power of two greater than xdim instead of less than it.
Clean up and rearrange some texcache code. No functional changes.
Call texcache_calcid once per texture instead of twice. Clean it up a little while we're at it.
Add "artquality" subtoken to textures, model skins, and skyboxes, which grants the texture HICR_ARTIMMUNITY. In effect, this implies "nodownsize" and signals that texture compression would be undesirable, but okay using r_texcompr mode 2 (aggressive).
Fix shading on ART tiles with fullbrights displayed without masking, such as on a whitewall.
Clean up texcache_enabled.
Add one-bit alpha detection for hightile and model skins.
Add r_texcompr 2, which compresses ART in addition to hightile.
Add HICR_ARTIMMUNITY and DAMETH_ARTIMMUNITY, which currently function identically to NOTEXCOMPRESS and NODOWNSIZE combined, and are only used when:
1. Using an ART tile 2. Using a hightile defined through the tilefromtexture "texture" subtoken 3. Using a hightile that, if downsized, will be smaller than the ART tile for that tilenum (tenuous)
Move daskinloader into mdloadskin and clean up it and gloadtile_hi against one another.
Refactor all GL internal texture format decision making into uploadtexture().
This directly achieves the following: * Eliminated codedup. * Recently introduced GL ES performance downsampling now applies to model skins. * Replaces the alpha/art format distinction with {RGB/no alpha, RGBA/one-bit alpha (ART transparency), RGBA/full alpha}. * Cleanly allows multiple fallback formats for each type. * Ready for further commits.
Rename HICR_NOCOMPRESS to HICR_NODOWNSIZE, CACHEAD_NOCOMPRESS to CACHEAD_NODOWNSIZE, DAMETH_NOCOMPRESS to DAMETH_NODOWNSIZE, and HICR_NOSAVE to HICR_NOTEXCOMPRESS.
Introduce USE_GLEXT macro and use it to conditionally compile out all GL ARB function calls when compiling for GL ES platforms.
This replaces the previous hack where we kept the dynamic pointers null and simply never tried calling any of them by a conspiracy of default runtime settings and disabled menu options. Code affected: VBO support for models, VPX GLSL decoding, texture compression (texture cache), and multitexturing (glow/detail maps). This commit also replaces EDUKE32_GLES conditionals with USE_GLEXT where appropriate. I didn't touch polymer.c because it depends too heavily on extensions for conditionally compiling them to make sense.
Fix POLYMER=0 warnings introduced in r5496.