initial work on sdl events
This commit is contained in:
parent
8954a35eec
commit
61280cb6cf
|
@ -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);
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue