Build 9879
GIT-
fix building against SDL older than 2.0.9
SVN handles and Git names are merged into one person.
fix building against SDL older than 2.0.9
extra const in libtess2
fix use of value before validation in polymer_updatewall()
prevent potential deferencing of null ptr
this sort of type punning isn't necessary anymore
fix copy/paste error in screentextRender()
For some reason, this error didn't propagate into screentextGetSize().
tiny polymost optimization; swap 4 floating point divisions for multiplications in polymost_bindPth()
fix more stupid errors in b6740a7b32d352e6d71a5be0bc118f381599933e
fix dumbass GL state oversights
fix stupid copy/paste error in b6740a7b32d352e6d71a5be0bc118f381599933e
work on controller features
fix animvpx
unify some code duplication between gloadtile_hi() and mdloadskin()
allow r_pr_shadowdetail 6 (8192x8192)
add missing buildgl_bindSamplerObject() calls
add SAMPLER_NEAREST_NEAREST_CLAMP and SAMPLER_NEAREST_NEAREST_WRAP, samplers which use GL_NEAREST_MIPMAP_NEAREST for the minification filter
It looks like mipmapping actually works with the indexed color texture shader in Polymost as-is, but it doesn't work with Polymer art mapping so we're disabling it there.
oops, this still needs to be called here for Polymer to work in the editor
fix warning
add amalgamated version of the vector math library found at https://github.com/glampert/vectormath
clean up r_persistentstreambuffer so you can turn it on and off without having to restart anything
move all the cvars in polymost.cpp so that they're at least in the same spot
improve GL state management, add support for GL sampler objects, add libtess2 and implement in polymer in place of the GLU tesselator, drop dependency on libGLU, improve GL debug output (in debug builds), fix various GL resource leaks
This should prevent a few more state changes, and address issues arising from rendermode changes wiping our state but not any of our accounting data for said state. Because libtess2 seems to be abandoned and because there were a few issues I needed to fix anyway, I went ahead and made a custom single-file header-only version for improved performance.
detect GL_ARB_sampler_objects, drop detection of GL_ARB_vertex_buffer_object, GL_EXT_texture_edge_clamp, and GL_SGIS_texture_edge_clamp
remove unfinished x86_64 port of the original x86 classic renderer
It never worked.
move yax_updown[] reset to yax_update()
don't use SDL_WINDOW_FULLSCREEN_DESKTOP and don't call SDL_SetWindowBordered in fullscreen
ignore SDL_WINDOWEVENT_MOVED and SDL_WINDOWEVENT_RESIZED in fullscreen
I'm not sure if this is going to end up being the correct thing to do here, but it's what we shipped in the Fury 2.0 binary.
better multi-monitor support
fix console logging issue on Linux introduced by logging rework
TIL vsnprintf and _vsnprintf are not, in fact, the same thing.
add "notrans" .def token for voxels to disable drawing with translucency in GL modes
address defect in c653ba7fc09257ed3590cd2ce29d155ef6752032
add libasync (async++), https://github.com/Amanieu/asyncplusplus/
update libdivide to b322221677351ebb11f0a42fe9a9a2794da5bfe5, add libdivide_config.h
engine: update libdivide to b322221677351ebb11f0a42fe9a9a2794da5bfe5, add libdivide_config.h
print commit hash from SDL_GetRevision() to log at startup when using SDL dev builds (odd-numbered patch level)
This is admittedly terrible, but it shouldn't break unless the SDL_GetRevision() output format changes, in which case it just won't print the string anymore.
prune SDL_mixer stuff from sdl_inc.h
We will never NEED_SDL_MIXER.
fix tabs in random.h
fix SDL fullscreen issues
remove r_pr_vbos cvar and the code paths used for values 0 and 1
r_pr_vbos 0 was broken and r_pr_vbos 1 became useless once it was clear r_pr_vbos 2 wasn't causing issues.
add GL context version to glinfo, allow in 8 bpp mode (it's still backed by a GL surface, after all...)
manually flush console log file ptr in crash handler
add coordinates to log output from clipmove()
make floor sprites clip a little more like floors
bump MAXCLIPNUM to 4096
This isn't really ideal, but neither is hitting the limit due to maps with an excessive number of sprites that use clipshapes.
fix double free on exit
implement buildvfs_exists() using GetFileAttributes() on Windows and stat() elsewhere, FORCE_INLINE some stuff in vfs.h
The rationale behind this change is that I was profiling CPU use during loads of particularly heavy .def files (10000+ items) and discovered an inappropriate amount of CPU time was being spent inside access(). So, I did some research and found several cases where people on stackoverflow etc had asked what the fastest method of determining whether or not a file exists was, with the results of several benchmarks being given as answers. GetFileAttributes() seemed to win on Windows and stat() seemed to win on Linux, and I did not see any results where access() was a serious contender when included in the spread of tested functions, with the best I saw being 1100-something nanoseconds for access() and 800-something for stat(). This whole thing would be faster if we just read in the entire directory index and matched files against it ourselves with just the few API calls involved with retrieving the index, but access to uncooked data littered across a directory tree isn't really something I give a shit about optimizing further at the moment.
fix incorrect lower bound for r_anisotropy
inline openfrompath_internal
disable SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING if _MSC_VER is defined
include mimalloc-new-delete.h in smmalloc_generic.cpp
This defines global new/delete overrides, so look here if problems stemming from those ever arise.
AddressSanitizer-guarded sm::GenericAllocator implementation using mimalloc as backend
rename r_windowpositioning var in source, default to 1
allow pasting into the console from the system clipboard with RMB
Disable with "osdclipboard 0".
clear mouse buttons when toggling the console
use bitmap_set/bitmap_test in cansee()
improvements to the updatesector family of functions
Implements the concept outlined in MR 114 and adds some additional checks to prevent more calls to getsectordist() than necessary
guard some modified behavior in pushmove() with an enginecompatibilitymode == ENGINE_EDUKE32 check
move compatibility loops at the end of clipmove() to their own clipmove_compat() function
I think this needs to be set for interaction with clipshapes through TROR to work correctly