Commit graph

161 commits

Author SHA1 Message Date
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
5fcb55591c
fix cppcheck warnings 2018-12-11 00:26:51 +01:00
Sebastian Krzyszkowiak
0ebb85a660
make audio sample rate configurable 2018-12-06 05:37:51 +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
2179d6cdc2
synchronize with the main thread on BSoD 2018-12-02 00:26:33 +01:00
Sebastian Krzyszkowiak
58cb054a18
add missing al_destroy_mixer 2018-12-02 00:24:31 +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
440e6c41e6
Dear ImGui integration 2018-11-29 04:37:08 +01:00
Sebastian Krzyszkowiak
48189e7715
make depth buffer creation configurable 2018-11-27 03:06:43 +01:00
Sebastian Krzyszkowiak
9ecd29a7c3
include allegro_color and platform specific headers already in libsuperderpy.h, clean up 2018-11-26 01:40:19 +01:00
Sebastian Krzyszkowiak
6c59ef1049
add support for routing the loading gamestate through compositor 2018-11-22 04:53:51 +01:00
Sebastian Krzyszkowiak
a6abd01ec2
libsuperderpy_start: load shaders before loading the loading gamestate
Allows the loading gamestate to use shaders created in common resources.
2018-11-22 03:37:32 +01:00
Sebastian Krzyszkowiak
e04a52ea35
init: set libsuperderpy's default mixer as Allegro's default one 2018-11-02 06:10:15 +01:00
Sebastian Krzyszkowiak
de835593c8
set the default window size according to the viewport aspect ratio 2018-10-27 05:18:02 +02:00
Sebastian Krzyszkowiak
7c30291d95
Load shaders created before libsuperderpy_start already when starting 2018-10-11 06:15:07 +02:00
Sebastian Krzyszkowiak
3e7d9812a3
Refactor the engine's main loop. 2018-09-10 03:22:45 +02:00
Sebastian Krzyszkowiak
c5fcba57cb
Fix a segfault when there's no postdraw handler 2018-09-10 03:12:19 +02:00
Sebastian Krzyszkowiak
916094b371
debug: decouple livereload from autopause 2018-08-09 00:42:53 +02:00
Sebastian Krzyszkowiak
7d4575308d
add config switches for various debug options 2018-08-09 00:05:25 +02:00
Sebastian Krzyszkowiak
e5dd715eb2
fix and update debug function keys 2018-08-08 23:59:38 +02:00
Sebastian Krzyszkowiak
6684847424
send filename, line number and function name to PrintConsole and FatalError for verbose debug output 2018-08-08 22:19:50 +02:00
Sebastian Krzyszkowiak
942fd043fd
lock the timeline debug view to debug mode 2018-08-07 00:43:42 +02:00
Sebastian Krzyszkowiak
9953d3f171
gamestate: add optional Gamestate_Tick function for logic with fixed interval 2018-08-05 02:01:21 +02:00
Sebastian Krzyszkowiak
4c12939afe
set ALLEGRO_NO_PRESERVE_TEXTURE by default on desktop platforms
This almost halves RAM usage on desktop. On mobile, a more elaborate
approach will have to be developed.
2018-08-05 01:17:41 +02:00
Sebastian Krzyszkowiak
a03a031c6c
call postdraw hook also after drawing loading screen 2018-08-05 00:23:05 +02:00
Sebastian Krzyszkowiak
51d9fad1d6
export libsuperderpy's git revision and print on initializing 2018-08-04 18:25:30 +02:00
Sebastian Krzyszkowiak
7bde25fe84 add a public field with in-game total passed time 2018-08-03 13:15:06 +02:00
Sebastian Krzyszkowiak
05c75a9437 init: set app name as window title by default 2018-08-03 01:39:05 +02:00
Sebastian Krzyszkowiak
8ff2a57b64 fix broken fullscreen toggle on Windows 2018-07-30 17:00:31 +02:00
Sebastian Krzyszkowiak
f215bc0c83 mute audio by setting main mixer gain to 0.0
using al_set_mixer_playing causes high CPU usage for some reason
2018-07-26 16:19:32 +02:00
Sebastian Krzyszkowiak
7c92d1e05e add global audio mute config option 2018-07-26 15:33:02 +02:00
Sebastian Krzyszkowiak
7a5c2f9ed3 loading: stop time in loading when converting memory bitmaps
Avoids annoying framedrops, just stops the animation for a while instead.
2018-07-06 23:29:16 +02:00
Sebastian Krzyszkowiak
c4ceb188f5 gamestate: move loading time counter to main thread to include PostLoad 2018-07-05 20:59:54 +02:00
Sebastian Krzyszkowiak
521e6bf431 gamestate: add optional PostLoad hook for stuff that needs to be done on GPU thread 2018-07-05 20:55:32 +02:00
Sebastian Krzyszkowiak
a314ad2d6d don't reload shaders multiple times when loading multiple gamestates 2018-07-05 20:47:30 +02:00
Sebastian Krzyszkowiak
e293047aba gamestate: make some API endpoints optional 2018-07-05 20:42:51 +02:00
Sebastian Krzyszkowiak
96ab7a12ce use ALLEGRO_FRAMELESS for fullscreen windows only on Android
It will be needed for immersive mode, while it can break
fullscreen toggling on other platforms.
2018-07-05 03:28:32 +02:00
Sebastian Krzyszkowiak
2d905ce3c0 update the timestamp after Gamestate_Start to prevent high delta jump 2018-07-05 02:33:59 +02:00
Sebastian Krzyszkowiak
7b93ced844 it's libsuperderpy 2 now 2018-07-03 04:22:12 +02:00
Sebastian Krzyszkowiak
23ffcae034 better handling of joystick, mouse and font initialization failures
Now libsuperderpy works on FreeBSD \o/
2018-07-03 00:41:57 +02:00
Sebastian Krzyszkowiak
993a6fd2e7 Add more PrintConsoles around gamestate handling. 2018-06-30 00:59:54 +02:00
Sebastian Krzyszkowiak
016c482154 convert bitmaps to video textures on every progress() when loading gamestate in threaded mode 2018-06-23 04:44:36 +02:00
Sebastian Krzyszkowiak
71ec8b396e shader: auto rebuild and auto destroy shaders 2018-05-31 20:52:16 +02:00
Sebastian Krzyszkowiak
9182cabf79 Add abstraction for GPU shaders 2018-05-30 21:11:46 +02:00
Sebastian Krzyszkowiak
01ae741558 loading: call Gamestate_Logic in single thread mode as well 2018-04-21 01:08:39 +02:00
Sebastian Krzyszkowiak
a9c318dd78 loading: call Gamestate_Logic 2018-04-21 00:11:34 +02:00
Sebastian Krzyszkowiak
3938a78503 live reloading 2018-04-16 01:06:58 +02:00
Sebastian Krzyszkowiak
adb15a9caf libsuperderpy: init video addon 2018-04-08 01:33:13 +02:00
Sebastian Krzyszkowiak
8d0df727cb fix gameplay speed 2018-03-20 21:38:34 +01:00
Sebastian Krzyszkowiak
c85381644c rumina hacks 3 2018-03-15 00:46:52 +01:00
Sebastian Krzyszkowiak
ae70770f77 rumina hacks 2018-03-15 00:42:24 +01:00
Sebastian Krzyszkowiak
686dab729a Remove ALLEGRO_RENDER_METHOD sanity check
See liballeg/allegro5#887
2018-03-03 20:50:50 +01:00
Sebastian Krzyszkowiak
fc37ec592e Add bunch of debug output on launch 2018-02-03 03:53:52 +01:00
Sebastian Krzyszkowiak
52fbb86d2f Add pre/post logic/draw handlers 2018-02-03 03:39:30 +01:00
Sebastian Krzyszkowiak
c6b71f1686 Add delta parameter to Gamestate_Logic calls 2018-02-03 03:37:44 +01:00
Sebastian Krzyszkowiak
977a03db1e future-proof Android support by using ALLEGRO_FRAMELESS when fullscreen 2017-10-12 21:04:18 +02:00
Sebastian Krzyszkowiak
bf4aa069a4 don't use empty initializers (it's a GNU extension) 2017-09-10 22:07:02 +02:00
Sebastian Krzyszkowiak
2b1248ce14 clang-tidy support; clang-tidy and clang-format fixes 2017-09-10 21:35:14 +02:00
Sebastian Krzyszkowiak
0a4580a762 Android: honor tilde button for console toggling (you can attach a keyboard to Android device) 2017-09-09 02:46:07 +02:00
Sebastian Krzyszkowiak
a906b14e08 threaded screenshoting (now with gamestates redraw!) 2017-09-09 00:42:57 +02:00
Sebastian Krzyszkowiak
450e33b2e3 support of loading in separate thread; thread-safe console; various fixes from clang code model warnings 2017-09-09 00:11:43 +02:00
Sebastian Krzyszkowiak
4a2e2a3d25 try to create INT16 voice if FLOAT32 one fails
Seems to be some bug in Allegro, as it fails on OS X.
2017-09-05 03:01:18 +02:00
Sebastian Krzyszkowiak
3581c6060c full emscripten support, plus flac->ogg encoding for emscripten and android 2017-08-24 21:09:07 +02:00
Sebastian Krzyszkowiak
a955820e8f emscripten support 2017-08-24 00:51:58 +02:00
Sebastian Krzyszkowiak
07d4c22199 init: call al_install_audio before al_init_acodec_addon 2017-08-19 01:27:34 +02:00
Sebastian Krzyszkowiak
b7346ea330 use leak sanitizer for debug build and break the build in case of unresolved symbols in libraries 2017-08-19 01:26:53 +02:00
Sebastian Krzyszkowiak
417d34ef1a fix stuff reported by static analyzer 2017-08-16 01:47:07 +02:00
Sebastian Krzyszkowiak
3fe7df2982 timeline: make debug draw optional and automatic 2017-08-07 02:26:36 +02:00
Sebastian Krzyszkowiak
505de9086d fix whitespace style 2017-07-22 21:01:29 +02:00
Sebastian Krzyszkowiak
e9bd4eefa5 update license to GPLv3+ 2017-07-22 18:22:28 +02:00
Sebastian Krzyszkowiak
2dbabc502b always require OpenGL context 2017-06-26 03:19:32 +02:00
Sebastian Krzyszkowiak
de7311dabf fixed screen orientation support 2017-06-26 03:18:54 +02:00
Sebastian Krzyszkowiak
c97e163b31 don't require debug mode to be enabled in order to make a screenshot 2017-06-25 17:37:41 +02:00
Sebastian Krzyszkowiak
7241476886 use NotPreservedBitmap for game console 2017-06-13 14:21:17 +02:00
Sebastian Krzyszkowiak
bd57582b01 enable joystick support 2016-12-05 23:56:41 +01:00
Sebastian Krzyszkowiak
fdd48433bc gamestate reloading and fix for calling Gamestate_Pause/Gamestate_Resume 2016-11-11 19:38:26 +01:00
Sebastian Krzyszkowiak
4b53b59e05 proper gamestate freezing on suspending android activity 2016-11-09 00:40:13 +01:00
Sebastian Krzyszkowiak
625f202156 add ability to define game-specific global event handler 2016-11-08 22:11:10 +01:00
Sebastian Krzyszkowiak
a4ce032c8b don't crash on devices with no touchscreen 2016-11-08 17:56:19 +01:00
Sebastian Krzyszkowiak
6ac268f50b Revert "don't call al_get_touch_input_event_source on OSX, seems buggy"
This reverts commit d65873d63b.
2016-11-08 17:43:10 +01:00
Sebastian Krzyszkowiak
4d749b3ad1 make screen rotation working on Android
libsuperderpy now requires Allegro 5.2.2 for Android
2016-11-08 17:42:23 +01:00
Sebastian Krzyszkowiak
d65873d63b don't call al_get_touch_input_event_source on OSX, seems buggy 2016-11-08 11:17:27 +01:00
Sebastian Krzyszkowiak
51590d9788 fix blinking borders outside clipping rectangle 2016-11-08 10:34:32 +01:00
Sebastian Krzyszkowiak
c3fb2e06f1 more robust Android support 2016-11-07 01:45:12 +01:00
Sebastian Krzyszkowiak
4c09151dae basic Android support 2016-11-06 03:10:43 +01:00
Sebastian Krzyszkowiak
f7362d3d74 added DrawWrappedText, some clean up 2016-09-08 00:32:57 +02:00
Sebastian Krzyszkowiak
9c3d284a90 fix type warning on some platforms in screenshoting code 2016-09-06 01:47:12 +02:00
Sebastian Krzyszkowiak
c7741be51a streamline al_set_new_display_flags usage 2016-09-04 21:09:19 +02:00
Sebastian Krzyszkowiak
26843776a2 gamestates: mark gamestate as started before launching Gamestate_Start
This change allows to stop the current gamestate from Gamestate_Start.
2016-09-04 01:26:41 +02:00
Sebastian Krzyszkowiak
96a33c1a37 make windowed display resizable and try to fix flickering border around the viewport 2016-09-02 00:07:43 +02:00
Sebastian Krzyszkowiak
40cdf33bb8 add support for user events 2016-08-29 22:47:55 +02:00
Sebastian Krzyszkowiak
b4d9d01c01 don't dlclose gamestates when running on valgrind, so it can show its report correctly 2016-08-27 00:46:38 +02:00
Sebastian Krzyszkowiak
af6636009e make viewport configurable 2016-08-23 02:13:15 +02:00
Sebastian Krzyszkowiak
39eeeb44fd use al_resume_timer where appropriate 2016-08-21 21:58:47 +02:00
Sebastian Krzyszkowiak
97d62e4c04 make showing loading screen on launch configurable 2016-08-20 03:32:32 +02:00
Sebastian Krzyszkowiak
4aad8fabac add ability to manually register gamestate API 2016-08-20 03:02:39 +02:00
Sebastian Krzyszkowiak
1afc4a3f31 don't create and destroy bitmap on every PrintConsole call 2016-08-16 23:20:00 +02:00
Sebastian Krzyszkowiak
2dfc565178 fix gamestate lifecycle management when game logic frame takes longer than 1/60s and implement SwitchCurrentGamestate 2016-08-16 18:41:50 +02:00
Sebastian Krzyszkowiak
686514fba5 fix memory leaks and other mem-bugs 2016-08-16 18:01:12 +02:00