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
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