initial work on sdl events

This commit is contained in:
georgemoralis 2023-09-14 16:49:47 +03:00
parent 8954a35eec
commit 61280cb6cf
2 changed files with 26 additions and 0 deletions

View file

@ -44,8 +44,24 @@ void emuRun() {
g_window_ctx->m_graphic_initialized_cond.SignalCondVar(); g_window_ctx->m_graphic_initialized_cond.SignalCondVar();
} }
g_window_ctx->m_mutex.UnlockMutex(); g_window_ctx->m_mutex.UnlockMutex();
auto* pdata = new EmuPrivate;
pdata->m_graphic_ctx = static_cast<HLE::Libs::Graphics::GraphicCtx*>(&g_window_ctx->m_graphic_ctx);
pdata->data1 = pdata;
pdata->data2 = new SDL_Event;
pdata->m_screen_width = pdata->m_graphic_ctx->screen_width;
pdata->m_screen_height = pdata->m_graphic_ctx->screen_height;
for (;;) { for (;;) {
SDL_Event* ev = static_cast<SDL_Event*>(pdata->data2);
if (SDL_PollEvent(ev)!= 0)
{
printf("Event: 0x%04\n", ev->type);
printf("]");
}
HLE::Libs::Graphics::VideoOut::videoOutFlip(100000); // flip every 0.1 sec HLE::Libs::Graphics::VideoOut::videoOutFlip(100000); // flip every 0.1 sec
} }
std::_Exit(0); std::_Exit(0);

View file

@ -12,6 +12,16 @@ struct WindowCtx {
SDL_Window* m_window = nullptr; SDL_Window* m_window = nullptr;
bool is_window_hidden = true; bool is_window_hidden = true;
}; };
struct EmuPrivate {
EmuPrivate() = default;
Lib::Mutex m_mutex;
HLE::Libs::Graphics::GraphicCtx* m_graphic_ctx = nullptr;
void* data1 = nullptr;
void* data2 = nullptr;
u32 m_screen_width = {0};
u32 m_screen_height = {0};
};
void emuInit(u32 width, u32 height); void emuInit(u32 width, u32 height);
void emuRun(); void emuRun();
} // namespace Emulator } // namespace Emulator