Commit graph

730 commits

Author SHA1 Message Date
Sebastian Krzyszkowiak
ddfe7cc50a
properly unset default mixer on engine destroy
fixes a segfault/broken assertion that could happen right before quiting
2019-04-22 01:34:53 +02:00
Sebastian Krzyszkowiak
26089d86e6
move SUPPRESS_WARNING macros to public header 2019-04-21 15:46:03 +02:00
Sebastian Krzyszkowiak
d93e1a1aca
imgui: scale the whole UI by factor from configuration 2019-04-07 23:26:54 +02:00
Sebastian Krzyszkowiak
6aedf685b6
update imgui to 1.69 2019-04-06 20:45:32 +02:00
Sebastian Krzyszkowiak
472ed0a1b4
timeline: fine-tune semantics and fix bugs shown by tests 2019-04-03 03:00:14 +02:00
Sebastian Krzyszkowiak
1e7fe215c4
timeline: gracefullly handle out of bounds indexes in TM_GetArg 2019-03-30 04:06:40 +01:00
Sebastian Krzyszkowiak
9706f61116
don't abort when there's no loading screen available 2019-03-30 03:34:55 +01:00
Sebastian Krzyszkowiak
44bee57f55
fix an endless loop on platforms where "char" is unsigned by default 2019-03-30 00:26:21 +01:00
Sebastian Krzyszkowiak
834b1028f5
support a case where width, height and ratio in params are all zeros 2019-03-29 21:26:25 +01:00
Sebastian Krzyszkowiak
deb38e778c
don't fail on missing icon file 2019-03-29 20:54:14 +01:00
Sebastian Krzyszkowiak
db0d8da708
utils: add FindDataFilePath, which just returns NULL on failure 2019-03-29 20:53:45 +01:00
Sebastian Krzyszkowiak
993e9884e6
adjust to clang-tidy 8.0 2019-03-29 03:24:36 +01:00
Sebastian Krzyszkowiak
d54b311a3c
fix a case where SetupViewport wasn't called when it should after a display resize 2019-03-28 16:58:15 +01:00
Sebastian Krzyszkowiak
a309b8cb2b
support a command line switch "--debug" (or "-d") to enable debug mode 2019-03-28 15:33:21 +01:00
Sebastian Krzyszkowiak
6d7007b39e
don't rely on the game name string pointer to be valid for a whole lifetime 2019-03-28 15:25:37 +01:00
Sebastian Krzyszkowiak
cdc99444e0
fix clang-analyzer warnings and reformat 2019-03-26 04:31:24 +01:00
Sebastian Krzyszkowiak
1350fe9437
timeline: use floating-point seconds instead of integer miliseconds for delays in API 2019-03-16 01:58:28 +01:00
Sebastian Krzyszkowiak
6e07719beb
timeline: add STOP action state 2019-03-16 01:44:02 +01:00
Sebastian Krzyszkowiak
52e128ed28
make sure to clear the screen completely on initial flips 2019-03-12 15:16:50 +01:00
Sebastian Krzyszkowiak
6899ea5f52
resize event handling tweaks
Fixes Android and somehow optimizes resizing with lots of gamestates
2019-03-09 03:18:42 +01:00
Sebastian Krzyszkowiak
f375b6f0b1
use 48kHz as a default audio sample rate 2019-03-05 03:48:39 +01:00
Sebastian Krzyszkowiak
5a6e212de1
make sure to redraw the gamestates after a resize
Also affects compositor toggling
2019-03-05 03:48:11 +01:00
Sebastian Krzyszkowiak
c7ebc51f16
move SetupViewport to internal functions 2019-03-05 03:42:59 +01:00
Sebastian Krzyszkowiak
151e11d371
utils: add ToggleFullscreen and ToggleMute 2019-03-05 03:42:25 +01:00
Sebastian Krzyszkowiak
c93c22cf04
make Gamestate structure private and add API for accessing it 2019-03-05 03:20:06 +01:00
Sebastian Krzyszkowiak
ae9cf19778
utils: Push/PopTransform functions for easier transforming 2019-02-26 18:14:19 +01:00
Sebastian Krzyszkowiak
b84727bff0
utils: add transform-aware clipping rectangle functions 2019-02-26 01:59:49 +01:00
Sebastian Krzyszkowiak
43c830bf99
drop "libsuperderpy-" prefix from game-specific shared libraries 2019-02-26 01:42:16 +01:00
Sebastian Krzyszkowiak
d05e683171
add a hack for window size correction at launch 2019-02-24 04:20:36 +01:00
Sebastian Krzyszkowiak
c80a3c5717
report Allegro version and better format the OpenGL version 2019-02-23 13:36:27 +01:00
Sebastian Krzyszkowiak
7c89ef74e2
don't react to ALLEGRO_EVENT_DISPLAY_RESIZE if the new size is the same as the old one 2019-02-19 03:49:53 +01:00
Sebastian Krzyszkowiak
199ad64bac
ReloadGamestates: also reload loading gamestate 2019-02-14 05:35:17 +01:00
Sebastian Krzyszkowiak
0ba9c7bbae
move first al_flip_display() way earlier 2019-02-13 23:00:33 +01:00
Sebastian Krzyszkowiak
f8306f80c1
ReloadShaders: actually don't reload already loaded stuff unless forced 2019-02-13 22:59:45 +01:00
Sebastian Krzyszkowiak
d9dd73bfc8
make sure shaders are loaded in-between Load and PostLoad calls + call PostLoad for loading 2019-02-13 22:59:11 +01:00
Sebastian Krzyszkowiak
886034e596
use ALLEGRO_NO_PRESERVE_TEXTURE on SDL2
seems there's no reason not to; it even fixes some stuff
2019-02-13 22:54:49 +01:00
Sebastian Krzyszkowiak
26a32fd083
destroy and recreate voice on suspend and resume 2019-02-07 04:11:40 +01:00
Sebastian Krzyszkowiak
9e0a1ddb36
IsOnCharacter: properly support subbitmaps (for instance spritesheets) 2019-02-01 05:45:26 +01:00
Sebastian Krzyszkowiak
10164293ba
add ability to enable multisampling via init params 2019-02-01 03:37:15 +01:00
Sebastian Krzyszkowiak
45d36870ad
PrintConsole: print current time when in verbose mode 2019-01-17 02:42:33 +01:00
Sebastian Krzyszkowiak
a6b6062be4
recompress flac to opus and images to lossy webp for emscripten and android builds, with asset cache 2019-01-13 18:45:17 +01:00
Sebastian Krzyszkowiak
6211dcbf57
precache glyphs in fonts 2019-01-13 18:19:44 +01:00
Sebastian Krzyszkowiak
ef77bedeae
clean up 2019-01-11 15:26:12 +01:00
Sebastian Krzyszkowiak
1334fc6b1d
fix a NULL pointer dereference in ResizeGamestates 2019-01-11 15:25:24 +01:00
Sebastian Krzyszkowiak
9006427278
clean up a duplicated framebuffer of the loading gamestate 2019-01-11 12:28:08 +01:00
Sebastian Krzyszkowiak
2333ff1187
emscripten: pause the mainloop during loading
Fixes blinks of a blank screen when async calls are made.
2019-01-11 02:34:22 +01:00
Sebastian Krzyszkowiak
08ee8f142c
loading screen drawing tweaks 2019-01-11 02:33:48 +01:00
Sebastian Krzyszkowiak
0d32d00890
emscripten: detach/attach the voice during loading
Should prevent audio artifacts when the browser is busy...

...when Emscripten gets it fixed, that is :P
2019-01-11 02:33:17 +01:00
Sebastian Krzyszkowiak
f5604b95fb
emscripten: output wasm submodules to .wasm.so files, so preload plugins can find them 2019-01-10 06:31:28 +01:00
Sebastian Krzyszkowiak
fe9b6f5384
emscripten: use __attribute__(used) in code instead of EXPORTED_FUNCTIONS in cmake 2019-01-10 06:04:29 +01:00
Sebastian Krzyszkowiak
871cdf115e
emscripten: fix a crash when onvisibilitychange fired during loading 2019-01-10 06:03:57 +01:00
Sebastian Krzyszkowiak
8c7068b48d
PrintConsole: use emscripten_log; don't use printf on Android and Emscripten; unify outputs 2019-01-10 02:32:23 +01:00
Sebastian Krzyszkowiak
d55fbebe4d
add more drawing (and sleeping in emscripten) to improve responsiveness around loading 2019-01-08 05:21:41 +01:00
Sebastian Krzyszkowiak
f07b075052
emscripten: install a callback for visibility changes
Fixes an issue where focus blur event was being dispatched only after
the game has been focused again.
2019-01-08 04:57:30 +01:00
Sebastian Krzyszkowiak
2ad77b071f
move autopause feature out of debug events 2019-01-08 04:54:53 +01:00
Sebastian Krzyszkowiak
d0316cd789
don't use timer for ticking; rely on delta instead
Timer was causing an infinite loop in cases where ticking took
more time than 1/60 sec.
2019-01-08 04:53:13 +01:00
Sebastian Krzyszkowiak
f648d661e6
emscripten: set ALLEGRO_NO_PRESERVE_TEXTURE
Doesn't seem to break anything there despite of using SDL2 backend.
2019-01-07 00:40:01 +01:00
Sebastian Krzyszkowiak
fdb4a29a13
emscripten_seek_audio_stream_secs: return end position after the sample has ended
Samples in Allegro return 0.0 in this case, while streams return the stream length.
2019-01-07 00:39:06 +01:00
Sebastian Krzyszkowiak
5fb99a97f8
emscripten: revise compiler settings and add a pre-js file with audio autoplay workaround 2019-01-07 00:37:34 +01:00
Sebastian Krzyszkowiak
f357d75591
emscripten: use emterpreter for displaying loading screen 2019-01-03 23:22:26 +01:00
Sebastian Krzyszkowiak
7d9adc8d14
emscripten: fix a typo in al_get_audio_stream_length_secs stub 2019-01-03 06:57:26 +01:00
Sebastian Krzyszkowiak
dbd047c64e
emscripten: force fullscreen as off on init 2018-12-22 02:21:46 +01:00
Sebastian Krzyszkowiak
cb0f4f6ba7
audio: always try INT16 depth first and use FLOAT32 as a fallback 2018-12-18 20:32:09 +01:00
Sebastian Krzyszkowiak
6e69d5410e
fix building with LIBSUPERDERPY_SINGLE_THREAD 2018-12-18 14:34:27 +01:00
Sebastian Krzyszkowiak
1b9b16cf15
more member name cleanup 2018-12-18 14:29:48 +01:00
Sebastian Krzyszkowiak
db096e7e97
GetDataFilePath: add "maemo5" directory handling similar to what's already done for android 2018-12-18 13:19:16 +01:00
Sebastian Krzyszkowiak
4da588cbb2
API consistency tweaks 2018-12-16 15:35:53 +01:00
Sebastian Krzyszkowiak
df1790d242
doxygen tweaks 2018-12-16 15:15:38 +01:00
Sebastian Krzyszkowiak
09e6b321b6
streamline the ability to access internal fields a bit 2018-12-15 05:29:32 +01:00
Sebastian Krzyszkowiak
b9b231a438
put debug config into public config struct 2018-12-15 01:09:44 +01:00
Sebastian Krzyszkowiak
ce66ba8060
reorganize Game structure, deprecate access to _priv fields 2018-12-15 00:59:34 +01:00
Sebastian Krzyszkowiak
d8f975300d
PrintConsole/DrawConsole: guard console data usage with mutexes 2018-12-14 02:18:05 +01:00
Sebastian Krzyszkowiak
4f438400fb
TestDataFilePath: accomodate also QtCreator's build directories 2018-12-13 03:56:23 +01:00
Sebastian Krzyszkowiak
fe23d33273
character: support advanced atlases in spritesheets 2018-12-12 01:46:16 +01:00
Sebastian Krzyszkowiak
f1933fc7ba
GetDataFilePath: support launching straight from the build directory 2018-12-11 01:20:57 +01:00
Sebastian Krzyszkowiak
ee058b439a
more warnings fixed 2018-12-11 00:54:43 +01:00
Sebastian Krzyszkowiak
5fcb55591c
fix cppcheck warnings 2018-12-11 00:26:51 +01:00
Sebastian Krzyszkowiak
d17a927a82
tween: add HasTweenEnded function 2018-12-10 21:24:59 +01:00
Sebastian Krzyszkowiak
f82dc24a88
don't use warning suppression on Maemo
"#pragma GCC diagnostic not allowed inside functions"
2018-12-08 06:27:51 +01:00
Sebastian Krzyszkowiak
b737d64ce8
improve SUPPRESS_WARNING macro 2018-12-08 05:50:27 +01:00
Sebastian Krzyszkowiak
d42955789c
clean up cmake files and import include templates into the engine 2018-12-08 03:30:09 +01:00
Sebastian Krzyszkowiak
37bf1ca1c6
particle: remove the destructor concept from FaderParticle, it's unnecessary 2018-12-07 07:11:18 +01:00
Sebastian Krzyszkowiak
3faa50165c
update imgui and clean up the allegro5 impl 2018-12-07 07:11:00 +01:00
Sebastian Krzyszkowiak
ad26fe14ad
add a separate flag to indicate that the loading screen is being shown 2018-12-07 06:14:52 +01:00
Sebastian Krzyszkowiak
0ebb85a660
make audio sample rate configurable 2018-12-06 05:37:51 +01:00
Sebastian Krzyszkowiak
f0910b63f7
remove phantom (never implemented) viewport option 2018-12-05 02:40:27 +01:00
Sebastian Krzyszkowiak
bffe816037
don't export functions from imgui integration implementation 2018-12-05 02:31:53 +01:00
Sebastian Krzyszkowiak
3586f49762
ensure that the game operates on UTF-8 on Windows
Should fix issues with Unicode filenames.
2018-12-05 02:09:06 +01:00
Sebastian Krzyszkowiak
178b45968d
utils: fix DrawCentered* function to take float for bitmap position 2018-12-02 03:16:12 +01:00
Sebastian Krzyszkowiak
2179d6cdc2
synchronize with the main thread on BSoD 2018-12-02 00:26:33 +01:00
Sebastian Krzyszkowiak
d5d923daa6
don't go into infinite loop when loading a gamestate fails 2018-12-02 00:25:08 +01:00
Sebastian Krzyszkowiak
58cb054a18
add missing al_destroy_mixer 2018-12-02 00:24:31 +01:00
Sebastian Krzyszkowiak
a961845698
code model, clang-tidy related tweaks and fixes 2018-11-30 04:20:35 +01:00
Sebastian Krzyszkowiak
c8ee56fc2c
utils: add StrToLower and StrToUpper functions 2018-11-30 02:45:39 +01:00
Sebastian Krzyszkowiak
2149c11ace
imgui: handle touch input, set style and don't call al_set_mouse_cursor, which isn't implemented on some platforms 2018-11-29 21:09:20 +01:00
Sebastian Krzyszkowiak
71fec20936
clean up 2018-11-29 04:39:51 +01:00
Sebastian Krzyszkowiak
440e6c41e6
Dear ImGui integration 2018-11-29 04:37:08 +01:00
Sebastian Krzyszkowiak
52030b67e3
particle: fix tint preservation in FaderParticle 2018-11-27 04:44:15 +01:00
Sebastian Krzyszkowiak
91180024a1
add CopyCharacter util function 2018-11-27 04:43:58 +01:00
Sebastian Krzyszkowiak
97495fa2aa
require the compositor to clear the screen by itself 2018-11-27 03:08:21 +01:00