Commit graph

92 commits

Author SHA1 Message Date
eace519ea1 broken SDL input handling (WIP) 2023-03-11 12:44:36 +01:00
af1ef76c70 build fixes for FreeBSD-13.1 2023-03-11 12:44:27 +01:00
d8907d184b cmake: do not require clang-tidy 2023-03-11 12:11:27 +01:00
b9f045afb8 dp_doom: silence warning about empty translation unit on little endian 2023-03-03 05:55:04 +01:00
93b401420c dp_doom: disable screen size up/down and save/load keybindings 2023-03-03 05:54:47 +01:00
a85d8bb821 dp_doom: fix turn left/right default keybindings 2023-03-03 05:53:39 +01:00
062980d465 implement input publishing and receiving
Input publishing is currently toggled via Ctrl-A. This needs to be changed
because pressing Ctrl makes doomguy attack. So every time input publishing
is disabled the guy continues attacking. Use one of the unused F keys if
there is one.
2023-02-23 22:00:24 +01:00
e2830e3d68 be lazy, always transmit dooms MaxEvents (64) input events 2023-02-23 21:58:08 +01:00
b3d54ff160 add doomlib which includes doomdef.h to fill out dp_doom_event_t structures
Those dp_doom_event_t structs are doom even_t structs...
2023-02-23 21:57:17 +01:00
6d03cf86f9 ctrl: fix bogus elapsed time calculation. doh! 2023-02-23 21:55:19 +01:00
663be5c54b prep for input publishing to dooms 2023-02-23 07:12:18 +01:00
8b9f391c53 dp_doom: force C11 for _Static_assert() 2023-02-23 06:17:38 +01:00
92bfba237f dp_doom: fix two warnings in old linuxdoom code 2023-02-23 06:16:43 +01:00
f1281295ee add cmake option to force using the included version of SDL2 2023-02-23 06:16:09 +01:00
9ef9e71a46 ctrl: add menu entries to show dear imgui userguide and about window 2023-02-22 22:35:51 +01:00
407dded717 cleanup and revive the debug drawing code 2023-02-22 21:23:31 +01:00
abb563440d add comment about DoomFrames from unregistered dooms 2023-02-22 21:15:22 +01:00
ff89a984fb set ui log level from trace to debug 2023-02-22 21:15:03 +01:00
390413c09d yes, it's buggy 2023-02-22 21:13:18 +01:00
9d097277cd copy wildmidi.cfg to the build directory so that music works by default 2023-02-22 20:31:00 +01:00
4efcc3cb95 look for doom1.wad and create a link in the build directory if found 2023-02-22 20:30:12 +01:00
348bcc9997 use the included SDL if not appropriate system-wide SDL was found 2023-02-22 20:29:41 +01:00
b6f81cf375 add SDL-2.26.3 2023-02-22 19:20:36 +01:00
8d141da463 Squashed 'external/SDL/' content from commit adf31f6ec
git-subtree-dir: external/SDL
git-subtree-split: adf31f6ec0be0f9ba562889398f71172c7941023
2023-02-22 19:20:36 +01:00
98c44f66df preparations for also using nng_tcp as a transport 2023-02-22 19:17:06 +01:00
8b5231a782 ctrl: reenable the waitpid() code to catch crashing/killed dooms
TODO: implement DoomState::tLastActive timeout logic
2023-02-21 23:05:53 +01:00
eea3377406 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
0639476d91 cleanup ib_sound_nng.c There never was an issue there... 2023-02-21 23:01:31 +01:00
fb3441f5d3 toggle fullscreen, toggle ui, invert mouse panning 2023-02-20 22:50:17 +01:00
4a0117af36 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
e7c98a490e disable texture info debug 2023-02-20 00:01:29 +01:00
284e5d1b0e ctrl: fix rendering, erase Endooms, implement zooming and panning 2023-02-19 23:52:54 +01:00
cbe6f76920 dp_doom: use 4 bytes per pixel and fix the colors 2023-02-19 23:48:02 +01:00
3c5b3ae4e9 it's alive! not pretty but alive! also remove the fork() spawner 2023-02-19 16:33:23 +01:00
df9cf1c14a intermittent ctrl commit: fork() based spawn code which makes nng panic 2023-02-19 16:23:29 +01:00
fc302969f6 dp_doom: hacky way to run without audio
This needs fixing in the controller. Try something similar to xdg-open
where a doomgrandchild would execvp() the doom.
2023-02-19 16:22:51 +01:00
e53023079e 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
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