diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-28 10:15:55 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-28 10:15:55 +0200 |
| commit | 97a1983c59152372dfdcd4ef5277d91382b6ade3 (patch) | |
| tree | 1e7c027d9cac6a38173bed433830883f16c9ebe4 /src/libtools | |
| parent | 42e60bc7c52d49805a74d19745574e28d76ab46f (diff) | |
| download | box64-97a1983c59152372dfdcd4ef5277d91382b6ade3.tar.gz box64-97a1983c59152372dfdcd4ef5277d91382b6ade3.zip | |
[BOX32][WRAPPER] Added a bunch of 32bits functions to SDL2 and libc
Diffstat (limited to 'src/libtools')
| -rw-r--r-- | src/libtools/sdl2align32.c | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/libtools/sdl2align32.c b/src/libtools/sdl2align32.c index dbef7722..7c417869 100644 --- a/src/libtools/sdl2align32.c +++ b/src/libtools/sdl2align32.c @@ -43,6 +43,116 @@ void convert_SDL2_DisplayMode_to_32(void* dst_, void* src_) dst->driverdata = to_ptrv(src->driverdata); } +void convert_SDL2_DisplayMode_to_64(void* dst_, void* src_) +{ + if (!src_ || !dst_) return; + my_SDL2_DisplayMode_32_t* src = src_; + my_SDL2_DisplayMode_t* dst = dst_; + dst->format = src->format; + dst->w = src->w; + dst->h = src->h; + dst->refresh_rate = src->refresh_rate; + dst->driverdata = from_ptrv(src->driverdata); +} + +void convert_SDL2_Event_to_64(void* dst_, const void* src_) +{ + if (!src_ || !dst_) return; + const my_SDL2_Event_32_t* src = src_; + my_SDL2_Event_t* dst = dst_; + dst->type = src->type; + switch (src->type) { + case SDL2_WINDOWEVENT: + dst->window.type = src->window.type; + dst->window.timestamp = src->window.timestamp; + dst->window.windowID = src->window.windowID; + dst->window.event = src->window.event; + dst->window.padding1 = src->window.padding1; + dst->window.padding2 = src->window.padding2; + dst->window.padding3 = src->window.padding3; + dst->window.data1 = src->window.data1; + dst->window.data2 = src->window.data2; + break; + case SDL2_MOUSEMOTION: + dst->motion.type = src->motion.type; + dst->motion.timestamp = src->motion.timestamp; + dst->motion.windowID = src->motion.windowID; + dst->motion.which = src->motion.which; + dst->motion.state = src->motion.state; + dst->motion.x = src->motion.x; + dst->motion.y = src->motion.y; + dst->motion.xrel = src->motion.xrel; + dst->motion.yrel = src->motion.yrel; + break; + case SDL2_MOUSEBUTTONDOWN: + case SDL2_MOUSEBUTTONUP: + dst->button.type = src->button.type; + dst->button.timestamp = src->button.timestamp; + dst->button.windowID = src->button.windowID; + dst->button.which = src->button.which; + dst->button.button = src->button.button; + dst->button.state = src->button.state; + dst->button.clicks = src->button.clicks; + dst->button.padding1 = src->button.padding1; + dst->button.x = src->button.x; + dst->button.y = src->button.y; + break; + case SDL2_AUDIODEVICEADDED: + case SDL2_AUDIODEVICEREMOVED: + dst->adevice.type = src->adevice.type; + dst->adevice.timestamp = src->adevice.timestamp; + dst->adevice.which = src->adevice.which; + dst->adevice.iscapture = src->adevice.iscapture; + dst->adevice.padding1 = src->adevice.padding1; + dst->adevice.padding2 = src->adevice.padding2; + dst->adevice.padding3 = src->adevice.padding3; + break; + case SDL2_KEYDOWN: + case SDL2_KEYUP: + dst->key.type = src->key.type; + dst->key.timestamp = src->key.timestamp; + dst->key.windowID = src->key.windowID; + dst->key.state = src->key.state; + dst->key.repeat = src->key.repeat; + dst->key.padding2 = src->key.padding2; + dst->key.padding3 = src->key.padding3; + dst->key.keysym.scancode = src->key.keysym.scancode; + dst->key.keysym.sym = src->key.keysym.sym; + dst->key.keysym.mod = src->key.keysym.mod; + dst->key.keysym.unused = src->key.keysym.unused; + break; + case SDL2_TEXTEDITING: + dst->edit.type = src->edit.type; + dst->edit.timestamp = src->edit.timestamp; + dst->edit.windowID = src->edit.windowID; + memcpy(dst->edit.text, src->edit.text, 32); + dst->edit.start = src->edit.start; + dst->edit.length = src->edit.length; + break; + case SDL2_TEXTINPUT: + dst->text.type = src->text.type; + dst->text.timestamp = src->text.timestamp; + dst->text.windowID = src->text.windowID; + memcpy(dst->text.text, src->text.text, 32); + break; + case SDL2_MOUSEWHEEL: + dst->wheel.type = src->wheel.type; + dst->wheel.timestamp = src->wheel.timestamp; + dst->wheel.windowID = src->wheel.windowID; + dst->wheel.which = src->wheel.which; + dst->wheel.x = src->wheel.x; + dst->wheel.y = src->wheel.y; + dst->wheel.direction = src->wheel.direction; + dst->wheel.preciseX = src->wheel.preciseX; + dst->wheel.preciseY = src->wheel.preciseY; + dst->wheel.mouseX = src->wheel.mouseX; + dst->wheel.mouseY = src->wheel.mouseY; + break; + default: + printf_log(LOG_INFO, "Warning, unsuported SDL2 event %d\n", src->type); + memcpy(dst, src, sizeof(my_SDL2_Event_32_t)); + } +} void convert_SDL2_Event_to_32(void* dst_, const void* src_) { if (!src_ || !dst_) return; |