9e857180be
dp_doom: fix silly bug causing only the first frame to be published
2023-02-19 12:40:26 +01:00
c292aadb68
dp_doom: make errors from IB_StartupSound() non-fatal
...
Not sure if it actually runs without sound or die horribly. Needs testing.
2023-02-19 12:39:43 +01:00
c51f83a5fa
dp_doom: switch to own sdl sound impl because issues
...
Wasn't a bug in the sound code at all. This version is just cleaned up
and is not compatible with SDL1 anymore.
2023-02-19 12:38:25 +01:00
cd25a3380a
unique filenames for ib_{sound, system, video}/ implementation files
2023-02-19 10:54:31 +01:00
381b8bd03c
silence doomsim logging even more
2023-02-19 10:46:26 +01:00
236652be35
make dp_doom send out framebuffers via nng
2023-02-19 10:46:12 +01:00
366bf9b75c
ctrl: better networking, can render received frames, still a broken mess
2023-02-19 10:44:57 +01:00
0e7eb1f5b8
fill out some of the doom implementation
2023-02-19 03:08:56 +01:00
777d766035
rename clowndoom to dp_doom, add skeleton code, fix issues
2023-02-19 02:17:52 +01:00
c9c334ae57
add modified clowndoom
2023-02-19 01:52:56 +01:00
a191a82bdc
Squashed 'src/dp_doom/' content from commit 1909924
...
git-subtree-dir: src/dp_doom
git-subtree-split: 190992421c7c643afc99d7f7c511c162f65bea85
2023-02-19 01:52:56 +01:00
dfbfb4b08c
and back to spawning doomsims
2023-02-19 01:46:31 +01:00
773ea7341c
intermittent commit: do not spawn doomsim instances to test rendering
...
Without spawning doomsims the SDL_UpdateTexture()+SDL_RenderCopy() way does
scale well: with 1024 non-spawned dooms I'm at 19.4 fps, 51.5 ms/frame.
A single core is maxed out all the time and it's nicely jumping between
cores.
2023-02-19 01:45:51 +01:00
feb0bc995c
work on rendering - can draw rectangles into buffers and display those
...
Approach is to have one SDL_Texture per doom and use SDL_RenderCopy() with
different destination rectangles to compose the layout. Apart from
SDL_UpdateTexture() and SDL_RenderCopy() no work is done per doom.
This scales up to ~200 doomsim instances. After that the frametime
increases rapidly and all my cores are maxed out.
TODO: test without spawning doomsim processes!
2023-02-19 01:24:52 +01:00
9dab0ccf70
rename QuitDoom -> Endoom :)
2023-02-18 23:04:34 +01:00
e590bed17a
slight render call rearrangement
2023-02-18 22:41:05 +01:00
86dcd6f92d
get rid of the doomId concept, use the pid instead
...
The internal unique id should not be needed, the pid is unique enough :)
Also this can allow starting dooms externally without having to pass an id
parameter that's not already in use. The externally started doom sends its
pid with the DoomReady message and the controller can add a new entry if it
needs to. Of course the controller will not be able to kill() these
externally started dooms.
2023-02-18 22:28:15 +01:00
42a2d01f2a
build tiny messaging infrastructure, refactor, hack till it sort of works
...
When usleep()'ing in doomsim it misses most of the quit messages. I think
it's because the controller spams RunDoom all the time and the quit
messages get discarded while doomsim is sleeping.
2023-02-18 22:08:12 +01:00
cc4f66f8de
make logc an OBJECT library and enable clang-tidy for my code
2023-02-18 12:30:53 +01:00
67fba60f47
fix two "No newline at end of file" warnings
2023-02-18 12:30:53 +01:00
af41a870d6
playing with clang-tidy, needs more love
2023-02-18 12:30:53 +01:00
e26e406f29
caturday work: leak fixes, can now tell dooms to quit, nng util functions
2023-02-18 12:30:53 +01:00
7dbcf4bbb5
use _Static_assert to ensure DP_DoomState_Strings matches DP_Doomstate enum
2023-02-18 12:30:53 +01:00
01742f13d7
cmake: turn imgui from an INTERFACE library into an OBJECT library
...
Saves us from compiling imgui multiple times and makes cmake invoked
clang-tidy automatically skip the imgui header and implementation files
because they are not directly part of our targets.
2023-02-18 12:30:53 +01:00
823932af16
posix_spawn() doomsims
...
The doomsim startup routine or the controller startup publish are broken.
The doomsims never transition from DP_DS_Ready state.
2023-02-18 12:30:53 +01:00
c41066ebeb
remove the 'src/' prefix from file:line log output
2023-02-18 12:30:53 +01:00
17f4b34ea3
add comment to ExampleAppLog and mini refactoring
2023-02-18 12:30:53 +01:00
ddea47ba59
fix broken debugging due to -ffile-prefix-map
2023-02-18 12:30:53 +01:00
a75ffa940d
fix build under msys2
2023-02-18 12:30:40 +01:00
61a3d20dad
add first ui input elements and in-game logging
2023-02-12 22:21:06 +01:00
3dbf4f2255
custom imgui window title!
2023-02-12 16:12:01 +01:00
e4cf3deecc
First steps with Dear ImGui. It's awesome!
2023-02-12 15:48:15 +01:00
c5b68bedde
add test binary to make sure dp_common can be used from C
2023-02-12 13:46:52 +01:00
07033c9d13
mini refactoring and cleanup
2023-02-12 13:40:41 +01:00
9700ada079
add an imgui demo app + cmake cleanup
2023-02-12 13:39:48 +01:00
28489b9ee8
add my standard typedefs for integrals
2023-02-12 13:38:54 +01:00
7fc9a09063
turn imgui into an interface library
2023-02-12 13:37:50 +01:00
31aa3f049e
build and use imgui from externals, make the imgui demo work
2023-02-12 04:47:48 +01:00
6dcb5d8e8a
add imgui-v1.89.2
2023-02-12 03:32:19 +01:00
b73ad7ee1b
Squashed 'external/imgui/' content from commit d7c8516a4
...
git-subtree-dir: external/imgui
git-subtree-split: d7c8516a4b848c0291e3d75b627c0843f515f591
2023-02-12 03:32:19 +01:00
d6829aa9cd
ctrl: write some broken sdl and imgui code
2023-02-12 03:32:02 +01:00
cd99af391f
doomsim updates: state machine, nng_recvmsg/nng_sendmsg, first actual logic
2023-02-11 23:52:20 +01:00
3d2d6cc033
nng: fix warning: comparison of integer expressions of different signedness
2023-02-10 18:40:27 +01:00
a7b31a6f49
refactoring all the things
...
- Move from spdlog to log.c by rxi
- Create dp_common c library
- Create empty doomsim executable
2023-02-08 06:39:23 +01:00
5ca8329db1
buggy pub sub code
2023-02-04 01:56:30 +01:00
51441ff6e3
actually use the in-tree, patched version of nng
2023-02-04 01:56:09 +01:00
980386152f
nng: make nng_set_resolve_thread_max() apply on posix
...
Note: things will break if nng_set_resolve_thread_max() is modified at
runtime and more resolver are spawned. Not sure if this can actually
happen.
2023-02-04 00:00:14 +01:00
6c33ce8deb
create cmake project structure and c++ test app
2023-02-03 23:33:37 +01:00
1e357d1448
add spdlog-v1.11.0
2023-02-03 22:02:26 +01:00
208a78cc23
Squashed 'external/spdlog/' content from commit ad0e89cb
...
git-subtree-dir: external/spdlog
git-subtree-split: ad0e89cbfb4d0c1ce4d097e134eb7be67baebb36
2023-02-03 22:02:26 +01:00