Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/emu/x64printer.c
Original file line number Diff line number Diff line change
Expand Up @@ -931,6 +931,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX);
} else if (w == vFppV) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8));
} else if (w == vFppA) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX);
} else if (w == cFpdp) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIf ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, emu->xmm[0].d[0], (void*)R_RSI);
} else if (w == wFppp) {
Expand Down Expand Up @@ -4345,6 +4347,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8);
} else if (w == iFEppppp) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8);
} else if (w == iFEppppV) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8));
} else if (w == iFiiiipp) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9);
} else if (w == iFiiiuwp) {
Expand Down Expand Up @@ -6317,6 +6321,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24));
} else if (w == uFEipuppppp) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIu32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16));
} else if (w == uFEppuipppp) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIu32 ", %" PRIi32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16));
} else if (w == uFEpppufppp) {
snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ", %" PRIf ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, emu->xmm[0].f[0], (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8));
} else if (w == uFuulpiuiuf) {
Expand Down
14 changes: 14 additions & 0 deletions src/wrapped/generated/functions_list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,7 @@
#() vFppL
#() vFppp
#() vFppV
#() vFppA
#() vFpHi
#() vFSpi
#() vFSpL
Expand Down Expand Up @@ -2380,6 +2381,7 @@
#() iFEppupp
#() iFEppppi
#() iFEppppp
#() iFEppppV
#() iFiiiipp
#() iFiiiuwp
#() iFiippiu
Expand Down Expand Up @@ -3421,6 +3423,7 @@
#() iFppppppppu
#() iFppppppppp
#() uFEipuppppp
#() uFEppuipppp
#() uFEpppufppp
#() uFuulpiuiuf
#() uFpuupuppuu
Expand Down Expand Up @@ -4193,7 +4196,11 @@ wrappedgdk3:
- gdk_threads_add_idle_full
- uFiuppp:
- gdk_threads_add_timeout_full
- uFppuipppp:
- gdk_seat_grab
wrappedgdkpixbuf2:
- iFppppV:
- gdk_pixbuf_save
- pFpiiiiiipp:
- gdk_pixbuf_new_from_data
wrappedgdkx112:
Expand Down Expand Up @@ -4350,6 +4357,7 @@ wrappedglib2:
- g_array_sort_with_data
- g_hash_table_foreach
- g_list_foreach
- g_log_set_writer_func
- g_main_context_invoke
- g_option_context_add_main_entries
- g_option_group_set_parse_hooks
Expand Down Expand Up @@ -4736,13 +4744,18 @@ wrappedgtk3:
- gtk_container_forall
- gtk_container_foreach
- gtk_menu_attach_to_widget
- gtk_widget_class_bind_template_callback_full
- vFppV:
- gtk_dialog_add_buttons
- gtk_list_store_set
- gtk_message_dialog_format_secondary_markup
- gtk_message_dialog_format_secondary_text
- gtk_tree_model_get
- gtk_tree_store_set
- gtk_widget_style_get
- vFppA:
- gtk_list_store_set_valist
- gtk_tree_model_get_valist
- gtk_tree_store_set_valist
- vFppiV:
- gtk_list_store_insert_with_values
Expand Down Expand Up @@ -5131,6 +5144,7 @@ wrappedlibc:
- iFppV:
- __asprintf
- __isoc23_sscanf
- __isoc23_swscanf
- __isoc99_fscanf
- __isoc99_sscanf
- __isoc99_swscanf
Expand Down
4 changes: 3 additions & 1 deletion src/wrapped/generated/wrappedgdk3types.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ typedef uint32_t (*uFpp_t)(void*, void*);
typedef void (*vFppp_t)(void*, void*, void*);
typedef uint32_t (*uFippp_t)(int32_t, void*, void*, void*);
typedef uint32_t (*uFiuppp_t)(int32_t, uint32_t, void*, void*, void*);
typedef uint32_t (*uFppuipppp_t)(void*, void*, uint32_t, int32_t, void*, void*, void*, void*);

#define SUPER() ADDED_FUNCTIONS() \
GO(gdk_init, vFpp_t) \
Expand All @@ -27,6 +28,7 @@ typedef uint32_t (*uFiuppp_t)(int32_t, uint32_t, void*, void*, void*);
GO(gdk_window_add_filter, vFppp_t) \
GO(gdk_window_remove_filter, vFppp_t) \
GO(gdk_threads_add_idle_full, uFippp_t) \
GO(gdk_threads_add_timeout_full, uFiuppp_t)
GO(gdk_threads_add_timeout_full, uFiuppp_t) \
GO(gdk_seat_grab, uFppuipppp_t)

#endif // __wrappedgdk3TYPES_H_
2 changes: 2 additions & 0 deletions src/wrapped/generated/wrappedgdkpixbuf2types.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@
#define ADDED_FUNCTIONS()
#endif

typedef int32_t (*iFppppV_t)(void*, void*, void*, void*, ...);
typedef void* (*pFpiiiiiipp_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*, void*);

#define SUPER() ADDED_FUNCTIONS() \
GO(gdk_pixbuf_save, iFppppV_t) \
GO(gdk_pixbuf_new_from_data, pFpiiiiiipp_t)

#endif // __wrappedgdkpixbuf2TYPES_H_
1 change: 1 addition & 0 deletions src/wrapped/generated/wrappedglib2types.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ typedef int32_t (*iFpppuppppppp_t)(void*, void*, void*, uint32_t, void*, void*,
GO(g_array_sort_with_data, vFppp_t) \
GO(g_hash_table_foreach, vFppp_t) \
GO(g_list_foreach, vFppp_t) \
GO(g_log_set_writer_func, vFppp_t) \
GO(g_main_context_invoke, vFppp_t) \
GO(g_option_context_add_main_entries, vFppp_t) \
GO(g_option_group_set_parse_hooks, vFppp_t) \
Expand Down
5 changes: 5 additions & 0 deletions src/wrapped/generated/wrappedgtk3types.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,16 @@ typedef void (*vFpppppuu_t)(void*, void*, void*, void*, void*, uint32_t, uint32_
GO(gtk_container_forall, vFppp_t) \
GO(gtk_container_foreach, vFppp_t) \
GO(gtk_menu_attach_to_widget, vFppp_t) \
GO(gtk_widget_class_bind_template_callback_full, vFppp_t) \
GO(gtk_dialog_add_buttons, vFppV_t) \
GO(gtk_list_store_set, vFppV_t) \
GO(gtk_message_dialog_format_secondary_markup, vFppV_t) \
GO(gtk_message_dialog_format_secondary_text, vFppV_t) \
GO(gtk_tree_model_get, vFppV_t) \
GO(gtk_tree_store_set, vFppV_t) \
GO(gtk_widget_style_get, vFppV_t) \
GO(gtk_list_store_set_valist, vFppA_t) \
GO(gtk_tree_model_get_valist, vFppA_t) \
GO(gtk_tree_store_set_valist, vFppA_t) \
GO(gtk_list_store_insert_with_values, vFppiV_t) \
GO(gtk_enumerate_printers, vFpppi_t) \
Expand Down
1 change: 1 addition & 0 deletions src/wrapped/generated/wrappedlibctypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*
GO(execvpe, iFppp_t) \
GO(__asprintf, iFppV_t) \
GO(__isoc23_sscanf, iFppV_t) \
GO(__isoc23_swscanf, iFppV_t) \
GO(__isoc99_fscanf, iFppV_t) \
GO(__isoc99_sscanf, iFppV_t) \
GO(__isoc99_swscanf, iFppV_t) \
Expand Down
6 changes: 6 additions & 0 deletions src/wrapped/generated/wrapper.c
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,7 @@ typedef void (*vFppl_t)(void*, void*, intptr_t);
typedef void (*vFppL_t)(void*, void*, uintptr_t);
typedef void (*vFppp_t)(void*, void*, void*);
typedef void (*vFppV_t)(void*, void*, void*);
typedef void (*vFppA_t)(void*, void*, void*);
typedef void (*vFpHi_t)(void*, unsigned __int128, int32_t);
typedef void (*vFSpi_t)(void*, void*, int32_t);
typedef void (*vFSpL_t)(void*, void*, uintptr_t);
Expand Down Expand Up @@ -2408,6 +2409,7 @@ typedef int32_t (*iFEpUppp_t)(x64emu_t*, void*, uint64_t, void*, void*, void*);
typedef int32_t (*iFEppupp_t)(x64emu_t*, void*, void*, uint32_t, void*, void*);
typedef int32_t (*iFEppppi_t)(x64emu_t*, void*, void*, void*, void*, int32_t);
typedef int32_t (*iFEppppp_t)(x64emu_t*, void*, void*, void*, void*, void*);
typedef int32_t (*iFEppppV_t)(x64emu_t*, void*, void*, void*, void*, void*);
typedef int32_t (*iFiiiipp_t)(int32_t, int32_t, int32_t, int32_t, void*, void*);
typedef int32_t (*iFiiiuwp_t)(int32_t, int32_t, int32_t, uint32_t, int16_t, void*);
typedef int32_t (*iFiippiu_t)(int32_t, int32_t, void*, void*, int32_t, uint32_t);
Expand Down Expand Up @@ -3447,6 +3449,7 @@ typedef int32_t (*iFppppppupp_t)(void*, void*, void*, void*, void*, void*, uint3
typedef int32_t (*iFppppppppu_t)(void*, void*, void*, void*, void*, void*, void*, void*, uint32_t);
typedef int32_t (*iFppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*);
typedef uint32_t (*uFEipuppppp_t)(x64emu_t*, int32_t, void*, uint32_t, void*, void*, void*, void*, void*);
typedef uint32_t (*uFEppuipppp_t)(x64emu_t*, void*, void*, uint32_t, int32_t, void*, void*, void*, void*);
typedef uint32_t (*uFEpppufppp_t)(x64emu_t*, void*, void*, void*, uint32_t, float, void*, void*, void*);
typedef uint32_t (*uFuulpiuiuf_t)(uint32_t, uint32_t, intptr_t, void*, int32_t, uint32_t, int32_t, uint32_t, float);
typedef uint32_t (*uFpuupuppuu_t)(void*, uint32_t, uint32_t, void*, uint32_t, void*, void*, uint32_t, uint32_t);
Expand Down Expand Up @@ -4435,6 +4438,7 @@ void vFppl(x64emu_t *emu, uintptr_t fcn) { vFppl_t fn = (vFppl_t)fcn; fn((void*)
void vFppL(x64emu_t *emu, uintptr_t fcn) { vFppL_t fn = (vFppL_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
void vFppp(x64emu_t *emu, uintptr_t fcn) { vFppp_t fn = (vFppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
void vFppV(x64emu_t *emu, uintptr_t fcn) { vFppV_t fn = (vFppV_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); }
void vFppA(x64emu_t *emu, uintptr_t fcn) { vFppA_t fn = (vFppA_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
void vFpHi(x64emu_t *emu, uintptr_t fcn) { vFpHi_t fn = (vFpHi_t)fcn; fn((void*)R_RDI, (unsigned __int128)R_RSI + ((unsigned __int128)R_RDX << 64), (int32_t)R_RCX); }
void vFSpi(x64emu_t *emu, uintptr_t fcn) { vFSpi_t fn = (vFSpi_t)fcn; fn(io_convert((void*)R_RDI), (void*)R_RSI, (int32_t)R_RDX); }
void vFSpL(x64emu_t *emu, uintptr_t fcn) { vFSpL_t fn = (vFSpL_t)fcn; fn(io_convert((void*)R_RDI), (void*)R_RSI, (uintptr_t)R_RDX); }
Expand Down Expand Up @@ -6294,6 +6298,7 @@ void iFEpUppp(x64emu_t *emu, uintptr_t fcn) { iFEpUppp_t fn = (iFEpUppp_t)fcn; R
void iFEppupp(x64emu_t *emu, uintptr_t fcn) { iFEppupp_t fn = (iFEppupp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
void iFEppppi(x64emu_t *emu, uintptr_t fcn) { iFEppppi_t fn = (iFEppppi_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
void iFEppppp(x64emu_t *emu, uintptr_t fcn) { iFEppppp_t fn = (iFEppppp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
void iFEppppV(x64emu_t *emu, uintptr_t fcn) { iFEppppV_t fn = (iFEppppV_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); }
void iFiiiipp(x64emu_t *emu, uintptr_t fcn) { iFiiiipp_t fn = (iFiiiipp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
void iFiiiuwp(x64emu_t *emu, uintptr_t fcn) { iFiiiuwp_t fn = (iFiiiuwp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int16_t)R_R8, (void*)R_R9); }
void iFiippiu(x64emu_t *emu, uintptr_t fcn) { iFiippiu_t fn = (iFiippiu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9); }
Expand Down Expand Up @@ -7333,6 +7338,7 @@ void iFppppppupp(x64emu_t *emu, uintptr_t fcn) { iFppppppupp_t fn = (iFppppppupp
void iFppppppppu(x64emu_t *emu, uintptr_t fcn) { iFppppppppu_t fn = (iFppppppppu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
void iFppppppppp(x64emu_t *emu, uintptr_t fcn) { iFppppppppp_t fn = (iFppppppppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
void uFEipuppppp(x64emu_t *emu, uintptr_t fcn) { uFEipuppppp_t fn = (uFEipuppppp_t)fcn; R_RAX=(uint32_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
void uFEppuipppp(x64emu_t *emu, uintptr_t fcn) { uFEppuipppp_t fn = (uFEppuipppp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
void uFEpppufppp(x64emu_t *emu, uintptr_t fcn) { uFEpppufppp_t fn = (uFEpppufppp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, emu->xmm[0].f[0], (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
void uFuulpiuiuf(x64emu_t *emu, uintptr_t fcn) { uFuulpiuiuf_t fn = (uFuulpiuiuf_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (intptr_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), emu->xmm[0].f[0]); }
void uFpuupuppuu(x64emu_t *emu, uintptr_t fcn) { uFpuupuppuu_t fn = (uFpuupuppuu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
Expand Down
3 changes: 3 additions & 0 deletions src/wrapped/generated/wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,7 @@ void vFppl(x64emu_t *emu, uintptr_t fnc);
void vFppL(x64emu_t *emu, uintptr_t fnc);
void vFppp(x64emu_t *emu, uintptr_t fnc);
void vFppV(x64emu_t *emu, uintptr_t fnc);
void vFppA(x64emu_t *emu, uintptr_t fnc);
void vFpHi(x64emu_t *emu, uintptr_t fnc);
void vFSpi(x64emu_t *emu, uintptr_t fnc);
void vFSpL(x64emu_t *emu, uintptr_t fnc);
Expand Down Expand Up @@ -2417,6 +2418,7 @@ void iFEpUppp(x64emu_t *emu, uintptr_t fnc);
void iFEppupp(x64emu_t *emu, uintptr_t fnc);
void iFEppppi(x64emu_t *emu, uintptr_t fnc);
void iFEppppp(x64emu_t *emu, uintptr_t fnc);
void iFEppppV(x64emu_t *emu, uintptr_t fnc);
void iFiiiipp(x64emu_t *emu, uintptr_t fnc);
void iFiiiuwp(x64emu_t *emu, uintptr_t fnc);
void iFiippiu(x64emu_t *emu, uintptr_t fnc);
Expand Down Expand Up @@ -3458,6 +3460,7 @@ void iFppppppupp(x64emu_t *emu, uintptr_t fnc);
void iFppppppppu(x64emu_t *emu, uintptr_t fnc);
void iFppppppppp(x64emu_t *emu, uintptr_t fnc);
void uFEipuppppp(x64emu_t *emu, uintptr_t fnc);
void uFEppuipppp(x64emu_t *emu, uintptr_t fnc);
void uFEpppufppp(x64emu_t *emu, uintptr_t fnc);
void uFuulpiuiuf(x64emu_t *emu, uintptr_t fnc);
void uFpuupuppuu(x64emu_t *emu, uintptr_t fnc);
Expand Down
33 changes: 33 additions & 0 deletions src/wrapped/wrappedgdk3.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,34 @@ static void* findEventHandlerFct(void* fct)
return NULL;
}

// GdkSeatGrabPrepareFunc
#define GO(A) \
static uintptr_t my_GdkSeatGrabPrepareFunc_fct_##A = 0; \
static void* my_GdkSeatGrabPrepareFunc_##A(void* a, void* b, void* c) \
{ \
return (void*)RunFunctionFmt(my_GdkSeatGrabPrepareFunc_fct_##A, "ppp", a, b, c); \
}
SUPER()
#undef GO
static void* findGdkSeatGrabPrepareFuncFct(void* fct)
{
if (!fct) return fct;
if (GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
#define GO(A) \
if (my_GdkSeatGrabPrepareFunc_fct_##A == (uintptr_t)fct) return my_GdkSeatGrabPrepareFunc_##A;
SUPER()
#undef GO
#define GO(A) \
if (my_GdkSeatGrabPrepareFunc_fct_##A == 0) { \
my_GdkSeatGrabPrepareFunc_fct_##A = (uintptr_t)fct; \
return my_GdkSeatGrabPrepareFunc_##A; \
}
SUPER()
#undef GO
printf_log(LOG_NONE, "Warning, no more slot for gdk3 GdkSeatGrabPrepareFunc\n");
return NULL;
}

#undef SUPER


Expand Down Expand Up @@ -198,6 +226,11 @@ EXPORT void my3_gdk_threads_set_lock_functions(x64emu_t* emu, void* enter_fn, vo
my->gdk_threads_set_lock_functions(findGCallbackFct(enter_fn), findGCallbackFct(leave_fn));
}

EXPORT uint32_t my3_gdk_seat_grab(x64emu_t* emu, void* seat, void* window, uint32_t cap, int oes, void* cursor, void* ev, void* func, void* data)
{
return my->gdk_seat_grab(seat, window, cap, oes, cursor, ev, findGdkSeatGrabPrepareFuncFct(func), data);
}

#define PRE_INIT \
if (BOX64ENV(nogtk)) return -2;

Expand Down
4 changes: 2 additions & 2 deletions src/wrapped/wrappedgdk3_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ GO(gdk_seat_get_keyboard, pFp)
GO(gdk_seat_get_pointer, pFp)
GO(gdk_seat_get_slaves, pFpu)
GO(gdk_seat_get_type, LFv)
//GOM(gdk_seat_grab, uFppuipppp)
GOM(gdk_seat_grab, uFEppuipppp)
GO(gdk_seat_ungrab, vFp)
GO(gdk_selection_convert, vFpppu)
GO(gdk_selection_owner_get, pFp)
Expand Down Expand Up @@ -756,7 +756,7 @@ GO(gdk_x11_screen_get_number_of_desktops, uFp)
GO(gdk_x11_screen_get_screen_number, iFp)
GO(gdk_x11_screen_get_type, LFv)
GO(gdk_x11_screen_get_window_manager_name, pFp)
//GOM(gdk_x11_screen_get_xscreen, pFp)
GO(gdk_x11_screen_get_xscreen, pFp)
GO(gdk_x11_screen_lookup_visual, pFpL)
GO(gdk_x11_screen_supports_net_wm_hint, iFpp)
GO(gdk_x11_set_sm_client_id, vFp)
Expand Down
21 changes: 21 additions & 0 deletions src/wrapped/wrappedgdkpixbuf2.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,18 @@
#include "librarian.h"
#include "box64context.h"
#include "emu/x64emu_private.h"
#include "myalign.h"

const char* gdkpixbuf2Name = "libgdk_pixbuf-2.0.so.0";
#define ALTNAME "libgdk_pixbuf-2.0.so"

#define LIBNAME gdkpixbuf2

typedef int32_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*);

#define ADDED_FUNCTIONS() \
GO(gdk_pixbuf_savev, iFpppppp_t)

#include "generated/wrappedgdkpixbuf2types.h"

#include "wrappercallback.h"
Expand Down Expand Up @@ -62,6 +68,21 @@ EXPORT void* my_gdk_pixbuf_new_from_data(x64emu_t* emu, void* data, int32_t colo
return my->gdk_pixbuf_new_from_data(data, colorspace, has_alpha, bpp, w, h, stride, finddestroy_pixbufFct(destroy_func), destroy_data);
}

EXPORT int my_gdk_pixbuf_save(x64emu_t* emu, void* pixbuf, void* filename, void* type, void* error, uintptr_t* b)
{
int n = 0;
while ((((void*)getVArgs(emu, 4, b, n * 2))) != NULL)
n += 1;
char* keys[n];
char* vals[n];
for (int i = 0; i < n; ++i) {
keys[i] = (char*)getVArgs(emu, 4, b, i * 2 + 0);
vals[i] = (char*)getVArgs(emu, 4, b, i * 2 + 1);
}

return my->gdk_pixbuf_savev(pixbuf, filename, type, keys, vals, error);
}

#define PRE_INIT \
if (BOX64ENV(nogtk)) return -2;

Expand Down
2 changes: 1 addition & 1 deletion src/wrapped/wrappedgdkpixbuf2_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ GO(gdk_pixbuf_ref, pFp)
GO(gdk_pixbuf_rotate_simple, pFpi)
//GO(gdk_pixbuf_rotation_get_type,
GO(gdk_pixbuf_saturate_and_pixelate, vFppfi)
//GO(gdk_pixbuf_save, iFpppppppppppppp) //vaarg, wrap with gdk_pixbuf_save?
GOM(gdk_pixbuf_save, iFEppppV)
//GO(gdk_pixbuf_save_to_buffer, iFpppppppppppppp) //vaarg, wrap with gdk_pixbuf_save_to_bufferv ?
GO(gdk_pixbuf_save_to_bufferv, iFppppppp)
//GOM(gdk_pixbuf_save_to_callback, iFEpppppV) //wrap with gdk_pixbuf_save_to_callbackv
Expand Down
Loading
Loading