August 2023
-
Factor out rendering tests for whether a sprite is a voxel
January 2021
-
fix transparent floor/ceiling double drawing
August 2020
February 2020
-
Fix flipped HUD model rendering
Show details
Patch from Nuke.YKT.
January 2020
-
fix NPOT tile rendering when hightile option is disabled
March 2018
-
center texel fetches for palette lookups and add various optimizations related to indexed texture changes
February 2018
-
workaround for texcache expecting all mipmap levels to be available
-
fix typo causing bug where persistentStreamBuffer was being reset to the config value when it should be disabled
-
fix bug where polymost2_drawVBO() wouldn't reset the bound buffer state properly for polymost1
-
adjust parenthesis to cease compiler warnings
-
streaming VBO optimizations for polymost_drawpoly()
-
Avoid generation of mipmaps if filter mode isn't set to use them
-
texture format optimizations
December 2017
-
Account for yscale when deciding if the sky is tall enough to repeat or not. Comment out code that is not working as expected.
Show details
Patch from Fox.
November 2017
-
Set r_parallaxskypanning to 1 by default.
Show details
This enables sky panning, which allows the effect of CLOUDYSKIES to work properly. Patch from Fox.
-
Display paper-skies correctly when looking up or down.
Show details
Show a solid color for skies taller than 256 px, otherwise repeat. Patch from Fox.
October 2017
-
New projection hack algorithm: Keep zoom equivalent to Classic when looking straight ahead.
Show details
Patch from Fox.
June 2017
October 2016
-
Clear wsprinfo[] upon map load. This should address some remaining instances of wall-ornamented sprite z-fighting.
May 2016
-
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.
April 2016
-
Fix shading on ART tiles with fullbrights displayed without masking, such as on a whitewall.
March 2016
-
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:
Show details
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)
February 2016
-
Refactor all GL internal texture format decision making into uploadtexture().
Show details
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.
December 2015
November 2015
-
Bookend the recursive call to polymost_drawpoly as part of the fullbright pass with bglDepthFunc(GL_EQUAL) and bglDepthFunc(GL_LEQUAL) to ensure that the fullbright overlay is always visible and never fights with the sprite itself.
-
Remove "indrawroomsandmasks" variable and its only use in polymost_drawpoly as a condition for the fullbright pass.
-
Connect spriteext[].x/ypanning to model UVs (range 0-255).
-
Clean up formatting of parallax sky code and comments, in part so that the floor and ceiling sections are line-for-line consistent. DONT_BUILD.
August 2015
January 2015
-
fix wall and floor sprites clipping into or z-fighting with surfaces (replaces glDepthRange() hacks for sprites), add r_nofog cvar for debugging, reduce the total number of OpenGL calls by only calling glFogi() to set the fog mode when initializing the renderer or changing r_usenewshading.
June 2014
-
r_npotwallmode, emulating 8-bit for walls w/ nonpow2 height textures.
Show details
When that mode is enabled (see below for caveats), wall textures that have a non-power-of-two height (call it 'h') will be modified to look like in classic: Let 'H' be the next power of two greater than 'h'. The texture will be uploaded with height 'H', made up from 'h' hlines of the original texture, followed by 'H'-'h' first hlines of the same. No panning "corrections" will take place. The mode is disabled by default. Caveats/notes: * the mode requires that r_hightile is disabled * it is not implemented in Polymer * in the Lunatic build, it is ineffective when a VX map is loaded, as those display walls with NPOT height textures correctly
May 2014
-
in NPOT wall ypanning "correction", behave like Polymer in one corner case.
Show details
Specifically, the handling of one-way walls ([1] in Mapster32) was slightly different.
-
make r_usetileshades 2 the default.
Show details
This mode does not take a sector's visibility values into account for uniform darkening of a texture. It is more faithful to classic with respect to fog/visibility *distances*, but may be less so as far as the "tint" of the texture due to visibility attenuation is concerned.
March 2014
-
introduce r_usenewshading 3 and make it the default.
Show details
With this mode, the near distance of the linear fog is always 0, unlike being negative with r_usenewshading 2.
November 2013
-
handle HUD model 'fov' DEF token.
Show details
This "simply" requires an appropriate factor in the projection matrix. Also, get rid of a special-case factor for >=1.6 aspects (making HUD models wider then, I think).
September 2013
-
make spriteext[].{x,y,z}off independent of xdimen/viewingrange/aspect.
Show details
The offsets (that will translate the axes for .pitch/.roll rotation) were calculated improperly with screen sizes other than 1280 x 1024 and were dependent on other related variables. The fix proceeded empirically, i.e. mostly trial, error, and some educated guesswork. (It's telling that the magic constant 1280 is needed.) A test for Lunatic is added to test.lua that will rotate SEENINES. Bug pointed out by Mblackwell.
August 2013
-
fix my r_usetileshades==2 sub-method.
Show details
Don't touch TerminX's r_usetileshades==1 or it being the default.
May 2013
-
fix 'zadd' DEF token handling. (Polymer has it right.)
March 2013
-
Fix ART offset and face sprite flipping interaction.