Build 9724
GIT-
add screenshot_dir CVar. Defaults to "screenshots".
SVN handles and Git names are merged into one person.
add screenshot_dir CVar. Defaults to "screenshots".
Apply tints on KV6 voxels; factor out shared code
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
move uninitsystem() into engineUnInit and remove atexit
rename r_windowpositioning var in source, default to 1
reset rotatesprite lerp value when interpolation should not be performed
Add wrand, intended to mimic the behaviors of Watcom C 10.0's rand.
Also add WRANDOM_MAX. This will be used in SW, preventing possible freezes.
Split krand definitions from build.h to a new header, random.h
polymer: show shader compile log on failure, not just link log
Mesa conveys most of the useful info through there, not linking.
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
Initialize blend to 0 when inserting sprites
This fixes a bug where stale blend values could be transferred over from a previously loaded map.
polymer: 'fix' texture scale on relative floors
Classic relative scaling apparently had some numerical artifacts related to length of firstwall. Cribbing the logic added in 6fc6b7d5 in Polymost along with bumping the precision of the intermediate terms seems to make it line up fully. Rooftop floor in E1L1 and surrounding ledges are good test cases for this.
polymer: fix angle precision with sector relative tile alignment
fix parsing of voxel definition in error cases
make 512px tall tile checks non inclusive
fix shading of tall tiles in ASM version of classic renderer
Plan B for commit b4f633d1, remove the conditional entirely
The previous attempt broke the window at the start of E1L3 of Duke3D. Whatever this was intended for doesn't work with animated maskwalls.
Always allow disabling vsync
Extend mapinfo DEF command to support mapart token
Usage: mapinfo { mapmd4 <md4sum> mapart "mapart/testart_XX.ART" } The specified path must end with the suffix "_XX.ART" (case-insensitive). The actual files need to be numbered from "_00.ART" to "_19.ART". Just like with maphacks, an md4 sum is required. This allows sharing the same per-map art between multiple levels.
correctly render 512px wide tiles in classic mode
Fix ancient identical branch warning in the Polymer code