a72253131c
prep for input publishing to dooms
2023-02-23 07:12:18 +01:00
ccba88e3b7
ctrl: add menu entries to show dear imgui userguide and about window
2023-02-22 22:35:51 +01:00
b8fbfd718b
cleanup and revive the debug drawing code
2023-02-22 21:23:31 +01:00
5a355773f8
add comment about DoomFrames from unregistered dooms
2023-02-22 21:15:22 +01:00
383d2ad324
set ui log level from trace to debug
2023-02-22 21:15:03 +01:00
38ba303ba8
use the included SDL if not appropriate system-wide SDL was found
2023-02-22 20:29:41 +01:00
65e8f5eec1
preparations for also using nng_tcp as a transport
2023-02-22 19:17:06 +01:00
4f05f5e2ff
ctrl: reenable the waitpid() code to catch crashing/killed dooms
...
TODO: implement DoomState::tLastActive timeout logic
2023-02-21 23:05:53 +01:00
d86f701fd0
finally fix dooms not being able to output sound
...
It was just the empty environment after posix_spawn() that caused
SDL_INIT_AUDIO to fail. __environ fixes that.
2023-02-21 23:03:39 +01:00
e2094cd1ce
toggle fullscreen, toggle ui, invert mouse panning
2023-02-20 22:50:17 +01:00
888e9459c5
fix crash due to logging during shutdown from class based DoomState
...
Crash was double free in ImGui::AppendLog() during shutdown. Will have to
disable the logging callback if logging should happen at that point.
2023-02-20 00:06:28 +01:00
1a0c22ae09
disable texture info debug
2023-02-20 00:01:29 +01:00
957e367c89
ctrl: fix rendering, erase Endooms, implement zooming and panning
2023-02-19 23:52:54 +01:00
25bea999e2
it's alive! not pretty but alive! also remove the fork() spawner
2023-02-19 16:33:23 +01:00
6f683676be
intermittent ctrl commit: fork() based spawn code which makes nng panic
2023-02-19 16:23:29 +01:00
5072cee454
ctrl: register externally started dooms that introduce themselves
...
TODO: Check on those via kill(pid, 0) or store the last activity time in
DoomState and let dooms time out if they don't send more updates.
2023-02-19 12:46:17 +01:00
af517ab00b
ctrl: better networking, can render received frames, still a broken mess
2023-02-19 10:44:57 +01:00
b93e6bf8f0
and back to spawning doomsims
2023-02-19 01:46:31 +01:00
a9f054968d
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
5502ab3b53
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
c2726d1881
rename QuitDoom -> Endoom :)
2023-02-18 23:04:34 +01:00
2f18d5771d
slight render call rearrangement
2023-02-18 22:41:05 +01:00
3ab1f6eee3
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
26c7f69b42
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
7d8978f6b8
caturday work: leak fixes, can now tell dooms to quit, nng util functions
2023-02-18 12:30:53 +01:00
3d9da20335
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
17ba021843
add comment to ExampleAppLog and mini refactoring
2023-02-18 12:30:53 +01:00
c583573b0b
fix build under msys2
2023-02-18 12:30:40 +01:00
09d2bd715b
add first ui input elements and in-game logging
2023-02-12 22:21:06 +01:00
4a3dce5ef5
custom imgui window title!
2023-02-12 16:12:01 +01:00
1674946bed
First steps with Dear ImGui. It's awesome!
2023-02-12 15:48:15 +01:00
fcd47b7aa5
mini refactoring and cleanup
2023-02-12 13:40:41 +01:00
53775fbdf2
build and use imgui from externals, make the imgui demo work
2023-02-12 04:47:48 +01:00
de463a6747
ctrl: write some broken sdl and imgui code
2023-02-12 03:32:02 +01:00
aa6438783a
doomsim updates: state machine, nng_recvmsg/nng_sendmsg, first actual logic
2023-02-11 23:52:20 +01:00
ec041cf83b
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
dc754c2885
buggy pub sub code
2023-02-04 01:56:30 +01:00
ef97762930
create cmake project structure and c++ test app
2023-02-03 23:33:37 +01:00