mirror of
https://github.com/phoboslab/wipeout-rewrite
synced 2024-12-26 09:59:04 +01:00
Update sokol headers to fix a build issue on Windows
For some reason, the private method `_sapp_win32_init_console` used `freopens` instead of `freopen_s`. Instead of fixing that, just upgrade all the Sokol headers instead. Also, the GLES2 renderer is no longer available for Emscripten, so bump it up to GLES3.
This commit is contained in:
parent
9207839c80
commit
90b9cffc60
3 changed files with 2376 additions and 1920 deletions
4227
src/libs/sokol_app.h
4227
src/libs/sokol_app.h
File diff suppressed because it is too large
Load diff
|
@ -61,6 +61,8 @@
|
||||||
The main purpose of this function is to remove jitter/inaccuracies from
|
The main purpose of this function is to remove jitter/inaccuracies from
|
||||||
measured frame times, and instead use the display refresh rate as
|
measured frame times, and instead use the display refresh rate as
|
||||||
frame duration.
|
frame duration.
|
||||||
|
NOTE: for more robust frame timing, consider using the
|
||||||
|
sokol_app.h function sapp_frame_duration()
|
||||||
|
|
||||||
Use the following functions to convert a duration in ticks into
|
Use the following functions to convert a duration in ticks into
|
||||||
useful time units:
|
useful time units:
|
||||||
|
@ -77,7 +79,7 @@
|
||||||
|
|
||||||
Windows: QueryPerformanceFrequency() / QueryPerformanceCounter()
|
Windows: QueryPerformanceFrequency() / QueryPerformanceCounter()
|
||||||
MacOS/iOS: mach_absolute_time()
|
MacOS/iOS: mach_absolute_time()
|
||||||
emscripten: performance.now()
|
emscripten: emscripten_get_now()
|
||||||
Linux+others: clock_gettime(CLOCK_MONOTONIC)
|
Linux+others: clock_gettime(CLOCK_MONOTONIC)
|
||||||
|
|
||||||
zlib/libpng license
|
zlib/libpng license
|
||||||
|
@ -199,19 +201,13 @@ static _stm_state_t _stm;
|
||||||
see https://gist.github.com/jspohr/3dc4f00033d79ec5bdaf67bc46c813e3
|
see https://gist.github.com/jspohr/3dc4f00033d79ec5bdaf67bc46c813e3
|
||||||
*/
|
*/
|
||||||
#if defined(_WIN32) || (defined(__APPLE__) && defined(__MACH__))
|
#if defined(_WIN32) || (defined(__APPLE__) && defined(__MACH__))
|
||||||
_SOKOL_PRIVATE int64_t int64_muldiv(int64_t value, int64_t numer, int64_t denom) {
|
_SOKOL_PRIVATE int64_t _stm_int64_muldiv(int64_t value, int64_t numer, int64_t denom) {
|
||||||
int64_t q = value / denom;
|
int64_t q = value / denom;
|
||||||
int64_t r = value % denom;
|
int64_t r = value % denom;
|
||||||
return q * numer + r * numer / denom;
|
return q * numer + r * numer / denom;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__EMSCRIPTEN__)
|
|
||||||
EM_JS(double, stm_js_perfnow, (void), {
|
|
||||||
return performance.now();
|
|
||||||
});
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOKOL_API_IMPL void stm_setup(void) {
|
SOKOL_API_IMPL void stm_setup(void) {
|
||||||
memset(&_stm, 0, sizeof(_stm));
|
memset(&_stm, 0, sizeof(_stm));
|
||||||
_stm.initialized = 0xABCDABCD;
|
_stm.initialized = 0xABCDABCD;
|
||||||
|
@ -222,7 +218,7 @@ SOKOL_API_IMPL void stm_setup(void) {
|
||||||
mach_timebase_info(&_stm.timebase);
|
mach_timebase_info(&_stm.timebase);
|
||||||
_stm.start = mach_absolute_time();
|
_stm.start = mach_absolute_time();
|
||||||
#elif defined(__EMSCRIPTEN__)
|
#elif defined(__EMSCRIPTEN__)
|
||||||
_stm.start = stm_js_perfnow();
|
_stm.start = emscripten_get_now();
|
||||||
#else
|
#else
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||||
|
@ -236,13 +232,12 @@ SOKOL_API_IMPL uint64_t stm_now(void) {
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
LARGE_INTEGER qpc_t;
|
LARGE_INTEGER qpc_t;
|
||||||
QueryPerformanceCounter(&qpc_t);
|
QueryPerformanceCounter(&qpc_t);
|
||||||
now = (uint64_t) int64_muldiv(qpc_t.QuadPart - _stm.start.QuadPart, 1000000000, _stm.freq.QuadPart);
|
now = (uint64_t) _stm_int64_muldiv(qpc_t.QuadPart - _stm.start.QuadPart, 1000000000, _stm.freq.QuadPart);
|
||||||
#elif defined(__APPLE__) && defined(__MACH__)
|
#elif defined(__APPLE__) && defined(__MACH__)
|
||||||
const uint64_t mach_now = mach_absolute_time() - _stm.start;
|
const uint64_t mach_now = mach_absolute_time() - _stm.start;
|
||||||
now = (uint64_t) int64_muldiv((int64_t)mach_now, (int64_t)_stm.timebase.numer, (int64_t)_stm.timebase.denom);
|
now = (uint64_t) _stm_int64_muldiv((int64_t)mach_now, (int64_t)_stm.timebase.numer, (int64_t)_stm.timebase.denom);
|
||||||
#elif defined(__EMSCRIPTEN__)
|
#elif defined(__EMSCRIPTEN__)
|
||||||
double js_now = stm_js_perfnow() - _stm.start;
|
double js_now = emscripten_get_now() - _stm.start;
|
||||||
SOKOL_ASSERT(js_now >= 0.0);
|
|
||||||
now = (uint64_t) (js_now * 1000000.0);
|
now = (uint64_t) (js_now * 1000000.0);
|
||||||
#else
|
#else
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
#if defined(RENDERER_GL)
|
#if defined(RENDERER_GL)
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
#define SOKOL_GLES2
|
#define SOKOL_GLES3
|
||||||
#else
|
#else
|
||||||
#define SOKOL_GLCORE33
|
#define SOKOL_GLCORE33
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue