prep for input publishing to dooms
This commit is contained in:
parent
8b9f391c53
commit
663be5c54b
3 changed files with 36 additions and 1 deletions
|
@ -609,7 +609,15 @@ int doom_controller_loop(ControllerContext &ctx)
|
|||
}
|
||||
|
||||
if (ImGui::IsKeyPressed(ImGuiKey_F10, false))
|
||||
{
|
||||
ctx.uiVisible = !ctx.uiVisible;
|
||||
// FIXME: sadly this has issues: after toggling the ui off and
|
||||
// on again the mouse cursor is invisible. Even using
|
||||
// SDL_ShowCursor() unconditionally did not fix it. I suspect
|
||||
// it's caused by some interaction between SLD and ImGui.
|
||||
//if (SDL_SetRelativeMouseMode(ctx.uiVisible ? SDL_TRUE : SDL_FALSE) < 0)
|
||||
// log_warn("SDL_SetRelativeMouseMode: %s", SDL_GetError());
|
||||
}
|
||||
}
|
||||
|
||||
static ImVec2 panStartPos;
|
||||
|
@ -707,7 +715,7 @@ int main(int argc, char *argv[])
|
|||
dp_sdl_fatal("SDL_CreateRenderer");
|
||||
|
||||
IMGUI_CHECKVERSION();
|
||||
auto imgui = ImGui::CreateContext();
|
||||
/*auto imgui = */ImGui::CreateContext();
|
||||
ImGui::GetIO().IniFilename = "doompanning_ui.ini";
|
||||
ImGui::StyleColorsDark();
|
||||
ImGui_ImplSDL2_InitForSDLRenderer(window, renderer);
|
||||
|
|
|
@ -82,9 +82,29 @@ typedef struct __attribute__((packed, aligned(4)))
|
|||
DP_DoomCommand cmd;
|
||||
} MsgMcstCommand;
|
||||
|
||||
// Doom input event types (from d_event.h).
|
||||
typedef enum doom_evtype_t
|
||||
{
|
||||
DP_ev_keydown,
|
||||
DP_ev_keyup,
|
||||
DP_ev_mouse,
|
||||
DP_ev_joystick
|
||||
} dp_doom_evtype_t;
|
||||
|
||||
// Doom event structure (from d_event.h).
|
||||
typedef struct
|
||||
{
|
||||
dp_doom_evtype_t type;
|
||||
int data1; // keys / mouse/joystick buttons
|
||||
int data2; // mouse/joystick x move
|
||||
int data3; // mouse/joystick y move
|
||||
} dp_doom_event_t;
|
||||
|
||||
typedef struct __attribute__((packed, aligned(4)))
|
||||
{
|
||||
MessageBase head;
|
||||
u8 eventCount;
|
||||
dp_doom_event_t events[1];
|
||||
} MsgInputs;
|
||||
|
||||
void dp_errno_fatal(const char *const msg);
|
||||
|
|
|
@ -55,6 +55,8 @@ struct DoomContext
|
|||
nng_socket sub;
|
||||
doomid_t id;
|
||||
DP_DoomState state;
|
||||
u8 eventCount;
|
||||
dp_doom_event_t events[MAXEVENTS];
|
||||
DoomStateFunc *f;
|
||||
};
|
||||
|
||||
|
@ -206,6 +208,11 @@ void IB_StartTic (void)
|
|||
event.data1 = xlatekey(sdl_event.key.keysym.sym);
|
||||
D_PostEvent(&event);
|
||||
*/
|
||||
_Static_assert(sizeof(event_t) == sizeof(dp_doom_event_t),
|
||||
"Size mismatch between dooms event_t and doompannings dp_doom_event_t. Packing?");
|
||||
event_t event;
|
||||
static int button_state;
|
||||
//SDL_Event sdl_event;
|
||||
}
|
||||
|
||||
void IB_GetFramebuffer(unsigned char **pixels, size_t *pitch)
|
||||
|
|
Loading…
Reference in a new issue