diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-28 12:27:00 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-28 12:27:00 +0200 |
| commit | 578bae3c37269d2db3f202d761a09e95ee35bff7 (patch) | |
| tree | bbac7daa53da8295a7a0663bd622026836625b51 /src | |
| parent | 37490d1a44d0182b8c1079162e727038688db0c4 (diff) | |
| download | box64-578bae3c37269d2db3f202d761a09e95ee35bff7.tar.gz box64-578bae3c37269d2db3f202d761a09e95ee35bff7.zip | |
[BOX32][WRAPPER] Added some more 32bits wrapped function, and fixed one from SDL2
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped32/generated/converter32.c | 23 | ||||
| -rw-r--r-- | src/wrapped32/generated/converter32.h | 12 | ||||
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 7 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedfreetypetypes32.h | 3 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 4 | ||||
| -rw-r--r-- | src/wrapped32/wrappedfreetype.c | 51 | ||||
| -rw-r--r-- | src/wrapped32/wrappedfreetype_private.h | 14 | ||||
| -rw-r--r-- | src/wrapped32/wrappedsdl2.c | 6 | ||||
| -rw-r--r-- | src/wrapped32/wrappedsdl2_private.h | 6 |
10 files changed, 122 insertions, 12 deletions
diff --git a/src/wrapped32/generated/converter32.c b/src/wrapped32/generated/converter32.c index 7bed63d4..861db942 100644 --- a/src/wrapped32/generated/converter32.c +++ b/src/wrapped32/generated/converter32.c @@ -209,3 +209,26 @@ void to_struct_pLiL(ptr_t d, const struct_pLiL_t *src) { *(int*)dest = src->i2; dest += 4; *(ulong_t*)dest = to_ulong(src->L3); dest += 4; } +void from_struct_uuipWCCp(struct_uuipWCCp_t *dest, ptr_t s) { + uint8_t* src = (uint8_t*)from_ptrv(s); + dest->u0 = *(uint32_t*)src; src += 4; + dest->u1 = *(uint32_t*)src; src += 4; + dest->i2 = *(int*)src; src += 4; + dest->p3 = from_ptrv(*(ptr_t*)src); src += 4; + dest->u4 = *(uint16_t*)src; src += 2; + dest->u5 = *(uint8_t*)src; src += 1; + dest->u6 = *(uint8_t*)src; src += 1; + dest->p7 = from_ptrv(*(ptr_t*)src); src += 4; +} +void to_struct_uuipWCCp(ptr_t d, const struct_uuipWCCp_t *src) { + if (!src) return; + uint8_t* dest = (uint8_t*)from_ptrv(d); + *(uint32_t*)dest = src->u0; dest += 4; + *(uint32_t*)dest = src->u1; dest += 4; + *(int*)dest = src->i2; dest += 4; + *(ptr_t*)dest = to_ptrv(src->p3); dest += 4; + *(uint16_t*)dest = src->u4; dest += 2; + *(uint8_t*)dest = src->u5; dest += 1; + *(uint8_t*)dest = src->u6; dest += 1; + *(ptr_t*)dest = to_ptrv(src->p7); dest += 4; +} diff --git a/src/wrapped32/generated/converter32.h b/src/wrapped32/generated/converter32.h index 7260ab01..d404397c 100644 --- a/src/wrapped32/generated/converter32.h +++ b/src/wrapped32/generated/converter32.h @@ -108,5 +108,17 @@ typedef struct struct_pLiL_s { } struct_pLiL_t; void from_struct_pLiL(struct_pLiL_t *dest, ptr_t src); void to_struct_pLiL(ptr_t dest, const struct_pLiL_t *src); +typedef struct struct_uuipWCCp_s { + uint32_t u0; + uint32_t u1; + int i2; + void* p3; + uint16_t u4; + uint8_t u5; + uint8_t u6; + void* p7; +} struct_uuipWCCp_t; +void from_struct_uuipWCCp(struct_uuipWCCp_t *dest, ptr_t src); +void to_struct_uuipWCCp(ptr_t dest, const struct_uuipWCCp_t *src); #endif // __CONVERTER_H_ diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index 19cf1462..b2e74f4d 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -75,6 +75,7 @@ #() iFBp_ -> iFB #() LFrL_ -> LFB #() pFrL_ -> pFB +#() vFbuuipWCCp_ -> vFB #() LFriiiiiiiiilt_ -> LFB #() pFriiiiiiiiilt_ -> pFB #() vFEv -> vFEv @@ -220,6 +221,7 @@ #() iFpbup_ -> iFpB #() iFBLL_p -> iFBp #() iFrLL_BLL_ -> iFBB +#() iFpruuipWCCp_ -> iFpB #() pFriiiiiiiiilt_p -> pFBp #() iFiBLLLLLLLLLLLLLLLLLL_ -> iFiB #() vFEip -> vFEip @@ -608,6 +610,7 @@ #() iFuirLL_BLL_ -> iFuiBB #() iFXLpBLWWWcc_ -> iFXLpB #() LFpLpriiiiiiiiilt_ -> LFpLpB +#() iFpruuipWCCp_buuipWCCp_i -> iFpBBi #() vFEuipp -> vFEuipp #() vFEpLLp -> vFEpLLp #() vFiiiii -> vFiiiii @@ -820,6 +823,7 @@ #() iFEuppup -> iFEuppup #() iFEuppLp -> iFEuppLp #() iFEpiLpp -> iFEpiLpp +#() iFEpuuup -> iFEpuuup #() iFEplluu -> iFEplluu #() iFEpLlpp -> iFEpLlpp #() iFEppipp -> iFEppipp @@ -1087,6 +1091,7 @@ wrappedfreetype: - FT_Render_Glyph - iFpp: - FT_Get_PS_Font_Info + - FT_Request_Size - uFpL: - FT_Get_Char_Index - LFpp: @@ -1109,6 +1114,8 @@ wrappedfreetype: - FT_Get_Glyph_Name - iFpplp: - FT_New_Face +- iFpuuup: + - FT_Get_Kerning - iFplluu: - FT_Set_Char_Size - iFpLlpp: diff --git a/src/wrapped32/generated/wrappedfreetypetypes32.h b/src/wrapped32/generated/wrappedfreetypetypes32.h index eea13522..363e3d72 100644 --- a/src/wrapped32/generated/wrappedfreetypetypes32.h +++ b/src/wrapped32/generated/wrappedfreetypetypes32.h @@ -29,6 +29,7 @@ typedef int32_t (*iFppp_t)(void*, void*, void*); typedef uintptr_t (*LFpLp_t)(void*, uintptr_t, void*); typedef int32_t (*iFpupu_t)(void*, uint32_t, void*, uint32_t); typedef int32_t (*iFpplp_t)(void*, void*, intptr_t, void*); +typedef int32_t (*iFpuuup_t)(void*, uint32_t, uint32_t, uint32_t, void*); typedef int32_t (*iFplluu_t)(void*, intptr_t, intptr_t, uint32_t, uint32_t); typedef int32_t (*iFpLlpp_t)(void*, uintptr_t, intptr_t, void*, void*); typedef int32_t (*iFppllp_t)(void*, void*, intptr_t, intptr_t, void*); @@ -44,6 +45,7 @@ typedef int32_t (*iFppllp_t)(void*, void*, intptr_t, intptr_t, void*); GO(FT_Select_Size, iFpi_t) \ GO(FT_Render_Glyph, iFpu_t) \ GO(FT_Get_PS_Font_Info, iFpp_t) \ + GO(FT_Request_Size, iFpp_t) \ GO(FT_Get_Char_Index, uFpL_t) \ GO(FT_Get_First_Char, LFpp_t) \ GO(FT_Get_Sfnt_Table, pFpi_t) \ @@ -55,6 +57,7 @@ typedef int32_t (*iFppllp_t)(void*, void*, intptr_t, intptr_t, void*); GO(FT_Get_Next_Char, LFpLp_t) \ GO(FT_Get_Glyph_Name, iFpupu_t) \ GO(FT_New_Face, iFpplp_t) \ + GO(FT_Get_Kerning, iFpuuup_t) \ GO(FT_Set_Char_Size, iFplluu_t) \ GO(FT_Load_Sfnt_Table, iFpLlpp_t) \ GO(FT_New_Memory_Face, iFppllp_t) diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index 3546f5f3..060788e5 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -165,6 +165,7 @@ typedef void* (*XFv_t)(void); typedef int32_t (*iFBp__t)(struct_p_t*); typedef uintptr_t (*LFrL__t)(struct_L_t*); typedef void* (*pFrL__t)(struct_L_t*); +typedef void (*vFbuuipWCCp__t)(struct_uuipWCCp_t*); typedef uintptr_t (*LFriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*); typedef void* (*pFriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*); typedef void (*vFEv_t)(x64emu_t*); @@ -310,6 +311,7 @@ typedef int32_t (*iFprLL__t)(void*, struct_LL_t*); typedef int32_t (*iFpbup__t)(void*, struct_up_t*); typedef int32_t (*iFBLL_p_t)(struct_LL_t*, void*); typedef int32_t (*iFrLL_BLL__t)(struct_LL_t*, struct_LL_t*); +typedef int32_t (*iFpruuipWCCp__t)(void*, struct_uuipWCCp_t*); typedef void* (*pFriiiiiiiiilt_p_t)(struct_iiiiiiiiilt_t*, void*); typedef int32_t (*iFiBLLLLLLLLLLLLLLLLLL__t)(int32_t, struct_LLLLLLLLLLLLLLLLLL_t*); typedef void (*vFEip_t)(x64emu_t*, int32_t, void*); @@ -698,6 +700,7 @@ typedef void (*vFXLrpLiL_L_t)(void*, uintptr_t, struct_pLiL_t*, uintptr_t); typedef int32_t (*iFuirLL_BLL__t)(uint32_t, int32_t, struct_LL_t*, struct_LL_t*); typedef int32_t (*iFXLpBLWWWcc__t)(void*, uintptr_t, void*, struct_LWWWcc_t*); typedef uintptr_t (*LFpLpriiiiiiiiilt__t)(void*, uintptr_t, void*, struct_iiiiiiiiilt_t*); +typedef int32_t (*iFpruuipWCCp_buuipWCCp_i_t)(void*, struct_uuipWCCp_t*, struct_uuipWCCp_t*, int32_t); typedef void (*vFEuipp_t)(x64emu_t*, uint32_t, int32_t, void*, void*); typedef void (*vFEpLLp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, void*); typedef void (*vFiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t); @@ -910,6 +913,7 @@ typedef void (*vFXLiiii_t)(void*, uintptr_t, int32_t, int32_t, int32_t, int32_t) typedef int32_t (*iFEuppup_t)(x64emu_t*, uint32_t, void*, void*, uint32_t, void*); typedef int32_t (*iFEuppLp_t)(x64emu_t*, uint32_t, void*, void*, uintptr_t, void*); typedef int32_t (*iFEpiLpp_t)(x64emu_t*, void*, int32_t, uintptr_t, void*, void*); +typedef int32_t (*iFEpuuup_t)(x64emu_t*, void*, uint32_t, uint32_t, uint32_t, void*); typedef int32_t (*iFEplluu_t)(x64emu_t*, void*, intptr_t, intptr_t, uint32_t, uint32_t); typedef int32_t (*iFEpLlpp_t)(x64emu_t*, void*, uintptr_t, intptr_t, void*, void*); typedef int32_t (*iFEppipp_t)(x64emu_t*, void*, void*, int32_t, void*, void*); @@ -1229,6 +1233,7 @@ void XFv_32(x64emu_t *emu, uintptr_t fcn) { XFv_t fn = (XFv_t)fcn; R_EAX = to_pt void iFBp__32(x64emu_t *emu, uintptr_t fcn) { iFBp__t fn = (iFBp__t)fcn; struct_p_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void LFrL__32(x64emu_t *emu, uintptr_t fcn) { LFrL__t fn = (LFrL__t)fcn; struct_L_t arg_4={0}; from_struct_L(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ulong(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); } void pFrL__32(x64emu_t *emu, uintptr_t fcn) { pFrL__t fn = (pFrL__t)fcn; struct_L_t arg_4={0}; from_struct_L(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); } +void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fcn) { vFbuuipWCCp__t fn = (vFbuuipWCCp__t)fcn; struct_uuipWCCp_t arg_4={0}; from_struct_uuipWCCp(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_uuipWCCp(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void LFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { LFriiiiiiiiilt__t fn = (LFriiiiiiiiilt__t)fcn; struct_iiiiiiiiilt_t arg_4={0}; from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ulong(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); } void pFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { pFriiiiiiiiilt__t fn = (pFriiiiiiiiilt__t)fcn; struct_iiiiiiiiilt_t arg_4={0}; from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); } void vFEv_32(x64emu_t *emu, uintptr_t fcn) { vFEv_t fn = (vFEv_t)fcn; fn(emu); } @@ -1374,6 +1379,7 @@ void iFprLL__32(x64emu_t *emu, uintptr_t fcn) { iFprLL__t fn = (iFprLL__t)fcn; s void iFpbup__32(x64emu_t *emu, uintptr_t fcn) { iFpbup__t fn = (iFpbup__t)fcn; struct_up_t arg_8={0}; from_struct_up(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_up(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void iFBLL_p_32(x64emu_t *emu, uintptr_t fcn) { iFBLL_p_t fn = (iFBLL_p_t)fcn; struct_LL_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fcn) { iFrLL_BLL__t fn = (iFrLL_BLL__t)fcn; struct_LL_t arg_4={0}; from_struct_LL(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_LL_t arg_8={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } +void iFpruuipWCCp__32(x64emu_t *emu, uintptr_t fcn) { iFpruuipWCCp__t fn = (iFpruuipWCCp__t)fcn; struct_uuipWCCp_t arg_8={0}; from_struct_uuipWCCp(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); } void pFriiiiiiiiilt_p_32(x64emu_t *emu, uintptr_t fcn) { pFriiiiiiiiilt_p_t fn = (pFriiiiiiiiilt_p_t)fcn; struct_iiiiiiiiilt_t arg_4={0}; from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8))); } void iFiBLLLLLLLLLLLLLLLLLL__32(x64emu_t *emu, uintptr_t fcn) { iFiBLLLLLLLLLLLLLLLLLL__t fn = (iFiBLLLLLLLLLLLLLLLLLL__t)fcn; struct_LLLLLLLLLLLLLLLLLL_t arg_8={0}; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LLLLLLLLLLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void vFEip_32(x64emu_t *emu, uintptr_t fcn) { vFEip_t fn = (vFEip_t)fcn; fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8)); } @@ -1762,6 +1768,7 @@ void vFXLrpLiL_L_32(x64emu_t *emu, uintptr_t fcn) { vFXLrpLiL_L_t fn = (vFXLrpLi void iFuirLL_BLL__32(x64emu_t *emu, uintptr_t fcn) { iFuirLL_BLL__t fn = (iFuirLL_BLL__t)fcn; struct_LL_t arg_12={0}; from_struct_LL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_LL_t arg_16={0}; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } void iFXLpBLWWWcc__32(x64emu_t *emu, uintptr_t fcn) { iFXLpBLWWWcc__t fn = (iFXLpBLWWWcc__t)fcn; struct_LWWWcc_t arg_16={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), to_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } void LFpLpriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { LFpLpriiiiiiiiilt__t fn = (LFpLpriiiiiiiiilt__t)fcn; struct_iiiiiiiiilt_t arg_16={0}; from_struct_iiiiiiiiilt(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL)); } +void iFpruuipWCCp_buuipWCCp_i_32(x64emu_t *emu, uintptr_t fcn) { iFpruuipWCCp_buuipWCCp_i_t fn = (iFpruuipWCCp_buuipWCCp_i_t)fcn; struct_uuipWCCp_t arg_8={0}; from_struct_uuipWCCp(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_uuipWCCp_t arg_12={0}; from_struct_uuipWCCp(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_uuipWCCp(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); } void vFEuipp_32(x64emu_t *emu, uintptr_t fcn) { vFEuipp_t fn = (vFEuipp_t)fcn; fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); } void vFEpLLp_32(x64emu_t *emu, uintptr_t fcn) { vFEpLLp_t fn = (vFEpLLp_t)fcn; fn(emu, from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), to_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); } void vFiiiii_32(x64emu_t *emu, uintptr_t fcn) { vFiiiii_t fn = (vFiiiii_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); } @@ -1974,6 +1981,7 @@ void vFXLiiii_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiii_t fn = (vFXLiiii_t)fcn void iFEuppup_32(x64emu_t *emu, uintptr_t fcn) { iFEuppup_t fn = (iFEuppup_t)fcn; R_EAX = fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); } void iFEuppLp_32(x64emu_t *emu, uintptr_t fcn) { iFEuppLp_t fn = (iFEuppLp_t)fcn; R_EAX = fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), to_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20)); } void iFEpiLpp_32(x64emu_t *emu, uintptr_t fcn) { iFEpiLpp_t fn = (iFEpiLpp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } +void iFEpuuup_32(x64emu_t *emu, uintptr_t fcn) { iFEpuuup_t fn = (iFEpuuup_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); } void iFEplluu_32(x64emu_t *emu, uintptr_t fcn) { iFEplluu_t fn = (iFEplluu_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), to_long(from_ptri(long_t, R_ESP + 8)), to_long(from_ptri(long_t, R_ESP + 12)), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20)); } void iFEpLlpp_32(x64emu_t *emu, uintptr_t fcn) { iFEpLlpp_t fn = (iFEpLlpp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), to_long(from_ptri(long_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } void iFEppipp_32(x64emu_t *emu, uintptr_t fcn) { iFEppipp_t fn = (iFEppipp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index 1b16db48..1ef62f5c 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -116,6 +116,7 @@ void XFv_32(x64emu_t *emu, uintptr_t fnc); void iFBp__32(x64emu_t *emu, uintptr_t fnc); void LFrL__32(x64emu_t *emu, uintptr_t fnc); void pFrL__32(x64emu_t *emu, uintptr_t fnc); +void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fnc); void LFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc); void pFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc); void vFEv_32(x64emu_t *emu, uintptr_t fnc); @@ -261,6 +262,7 @@ void iFprLL__32(x64emu_t *emu, uintptr_t fnc); void iFpbup__32(x64emu_t *emu, uintptr_t fnc); void iFBLL_p_32(x64emu_t *emu, uintptr_t fnc); void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fnc); +void iFpruuipWCCp__32(x64emu_t *emu, uintptr_t fnc); void pFriiiiiiiiilt_p_32(x64emu_t *emu, uintptr_t fnc); void iFiBLLLLLLLLLLLLLLLLLL__32(x64emu_t *emu, uintptr_t fnc); void vFEip_32(x64emu_t *emu, uintptr_t fnc); @@ -649,6 +651,7 @@ void vFXLrpLiL_L_32(x64emu_t *emu, uintptr_t fnc); void iFuirLL_BLL__32(x64emu_t *emu, uintptr_t fnc); void iFXLpBLWWWcc__32(x64emu_t *emu, uintptr_t fnc); void LFpLpriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc); +void iFpruuipWCCp_buuipWCCp_i_32(x64emu_t *emu, uintptr_t fnc); void vFEuipp_32(x64emu_t *emu, uintptr_t fnc); void vFEpLLp_32(x64emu_t *emu, uintptr_t fnc); void vFiiiii_32(x64emu_t *emu, uintptr_t fnc); @@ -861,6 +864,7 @@ void vFXLiiii_32(x64emu_t *emu, uintptr_t fnc); void iFEuppup_32(x64emu_t *emu, uintptr_t fnc); void iFEuppLp_32(x64emu_t *emu, uintptr_t fnc); void iFEpiLpp_32(x64emu_t *emu, uintptr_t fnc); +void iFEpuuup_32(x64emu_t *emu, uintptr_t fnc); void iFEplluu_32(x64emu_t *emu, uintptr_t fnc); void iFEpLlpp_32(x64emu_t *emu, uintptr_t fnc); void iFEppipp_32(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped32/wrappedfreetype.c b/src/wrapped32/wrappedfreetype.c index 685ad760..df091d9c 100644 --- a/src/wrapped32/wrappedfreetype.c +++ b/src/wrapped32/wrappedfreetype.c @@ -241,6 +241,15 @@ typedef struct BDF_PropertyRec_s } u; } BDF_PropertyRec_t; +typedef struct FT_Size_RequestRec_s +{ + int type; + long width; + long height; + uint32_t horiResolution; + uint32_t vertResolution; +} FT_Size_RequestRec_t; + // 32bits FreeType structures typedef union FT_StreamDesc_32_s { @@ -452,6 +461,15 @@ typedef struct BDF_PropertyRec_32_s } u; } BDF_PropertyRec_32_t; +typedef struct FT_Size_RequestRec_32_s +{ + int type; + long_t width; + long_t height; + uint32_t horiResolution; + uint32_t vertResolution; +} FT_Size_RequestRec_32_t; + void inplace_FT_GlyphSlot_shrink(void* a) { @@ -737,6 +755,18 @@ void convert_BDF_PropertyRec_to_32(void* d, void* s) } } +void convert_FT_Size_RequestRec_to_64(void* d, void* s) +{ + FT_Size_RequestRec_t* src = s; + FT_Size_RequestRec_32_t* dst = d; + + dst->type = src->type; + dst->width = from_long(src->width); + dst->height = from_long(src->height); + dst->horiResolution = src->horiResolution; + dst->vertResolution = src->vertResolution; +} + #define ADDED_FUNCTIONS() \ #include "generated/wrappedfreetypetypes32.h" @@ -1207,6 +1237,17 @@ EXPORT int my32_FT_Done_Face(x64emu_t* emu, void* face) return my->FT_Done_Face(face); } +EXPORT int my32_FT_Get_Kerning(x64emu_t* emu, void* face, uint32_t left, uint32_t right, uint32_t kern, FT_Vector_32_t* kerning) +{ + FT_Vector_t kerning_l = {0}; + inplace_FT_FaceRec_enlarge(face); + int ret = my->FT_Get_Kerning(face, left, right, kern, &kerning_l); + inplace_FT_FaceRec_shrink(face); + kerning->x = kerning_l.x; + kerning->y = kerning_l.y; + return ret; +} + EXPORT int my32_FT_Set_Char_Size(x64emu_t* emu, void* face, long char_width, long char_height, uint32_t horz, uint32_t vert) { inplace_FT_FaceRec_enlarge(face); @@ -1223,6 +1264,16 @@ EXPORT int my32_FT_Set_Pixel_Sizes(x64emu_t* emu, void* face, uint32_t width, ui return ret; } +EXPORT int my32_FT_Request_Size(x64emu_t* emu, void* face, FT_Size_RequestRec_32_t* req) +{ + FT_Size_RequestRec_t req_l = {0}; + convert_FT_Size_RequestRec_to_64(&req_l, req); + inplace_FT_FaceRec_enlarge(face); + int ret = my->FT_Request_Size(face, &req_l); + inplace_FT_FaceRec_enlarge(face); + return ret; +} + EXPORT uint32_t my32_FT_Get_Char_Index(x64emu_t* emu, void* face, unsigned long code) { inplace_FT_FaceRec_enlarge(face); diff --git a/src/wrapped32/wrappedfreetype_private.h b/src/wrapped32/wrappedfreetype_private.h index cb2ca559..683fb531 100644 --- a/src/wrapped32/wrappedfreetype_private.h +++ b/src/wrapped32/wrappedfreetype_private.h @@ -2,6 +2,8 @@ #error meh! #endif +// FT_Bitmap is struct uuipWCCp + //GO(FT_Activate_Size, iFp) //GO(FT_Add_Default_Modules, vFp) //GO(FT_Add_Module, @@ -9,12 +11,12 @@ //GO(FT_Atan2, lFll) //GO(FT_Attach_File, iFpp) //GO(FT_Attach_Stream, iFpp) -//GO(FT_Bitmap_Convert, iFpppi) +GO(FT_Bitmap_Convert, iFpruuipWCCp_buuipWCCp_i) //GO(FT_Bitmap_Copy, iFppp) -//GO(FT_Bitmap_Done, iFpp) +GO(FT_Bitmap_Done, iFpruuipWCCp_) //GO(FT_Bitmap_Embolden, iFppll) -//GO(FT_Bitmap_Init, vFp) -//GO(FT_Bitmap_New, vFp) +GO(FT_Bitmap_Init, vFbuuipWCCp_) +GO(FT_Bitmap_New, vFbuuipWCCp_) //GO(FT_CeilFix, //GO(FT_ClassicKern_Free, //GO(FT_ClassicKern_Validate, @@ -56,7 +58,7 @@ GOM(FT_Get_First_Char, LFEpp) //GO(FT_Get_Gasp, //GO(FT_Get_Glyph, iFpp) GOM(FT_Get_Glyph_Name, iFEpupu) -//GO(FT_Get_Kerning, iFpuuup) +GOM(FT_Get_Kerning, iFEpuuup) //GO(FT_Get_MM_Blend_Coordinates, //GO(FT_Get_MM_Var, iFpp) //GO(FT_Get_Module, pFpp) @@ -147,7 +149,7 @@ GOM(FT_Outline_Get_CBox, vFEpp) //GO(FT_Reference_Library, //GO(FT_Remove_Module, iFpp) GOM(FT_Render_Glyph, iFEpu) -//GO(FT_Request_Size, iFpp) +GOM(FT_Request_Size, iFEpp) //GO(FT_RoundFix, GOM(FT_Select_Charmap, iFEpi) GOM(FT_Select_Size, iFEpi) diff --git a/src/wrapped32/wrappedsdl2.c b/src/wrapped32/wrappedsdl2.c index 2c355306..6b5d9b15 100644 --- a/src/wrapped32/wrappedsdl2.c +++ b/src/wrapped32/wrappedsdl2.c @@ -4,7 +4,7 @@ #include <string.h> #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <dlfcn.h> - +#include <sys/mman.h> #include "wrappedlibs.h" #include "debug.h" @@ -84,7 +84,7 @@ typedef void (*vFiupV_t)(int, uint32_t, void*, va_list); static uintptr_t my_eventfilter_fct_##A = 0; \ static int my_eventfilter_##A(void* userdata, void* event) \ { \ - my_SDL2_Event_32_t evt = {0}; \ + static my_SDL2_Event_32_t evt = {0}; \ convert_SDL2_Event_to_32(&evt, event); \ return (int)RunFunctionFmt(my_eventfilter_fct_##A, "pp", userdata, &evt); \ } @@ -170,7 +170,7 @@ EXPORT int my32_2_SDL_GetWindowDisplayMode(void* window, void* mode) EXPORT int my32_2_SDL_SetWindowDisplayMode(void* window, void* mode) { - my_SDL2_DisplayMode_t* mode_l = { 0 }; + my_SDL2_DisplayMode_t mode_l = { 0 }; convert_SDL2_DisplayMode_to_64(&mode_l, mode); return my->SDL_SetWindowDisplayMode(window, &mode_l); } diff --git a/src/wrapped32/wrappedsdl2_private.h b/src/wrapped32/wrappedsdl2_private.h index c00e8cfb..33c08739 100644 --- a/src/wrapped32/wrappedsdl2_private.h +++ b/src/wrapped32/wrappedsdl2_private.h @@ -183,7 +183,7 @@ GO(SDL_GameControllerOpen, pFi) // GO(SDL_GetAudioDeviceSpec, iFiip) // GO(SDL_GetAudioStatus, uFv) GOM(SDL_GetBasePath, pFEv) -// GO(SDL_GetClipboardText, pFv) +GO(SDL_GetClipboardText, pFv) // GO(SDL_GetClipRect, vFpp) // GO(SDL_GetClosestDisplayMode, pFipp) // GO(SDL_GetColorKey, iFpp) @@ -347,7 +347,7 @@ GO(SDL_HapticRumblePlay, iFpfu) // GOM(SDL_HasAVX, iFv) // GOM(SDL_HasAVX2, iFv) // GOM(SDL_HasAVX512F, iFv) -// GO(SDL_HasClipboardText, iFv) +GO(SDL_HasClipboardText, iFv) // GO(SDL_HasColorKey, uFp) // GO(SDL_HasEvent, uFu) // GO(SDL_HasEvents, uFuu) @@ -584,7 +584,7 @@ GO(SDL_scalbnf, fFfi) // GO(SDL_SensorOpen, pFi) // GO(SDL_SensorUpdate, vFv) // SDL_SetAssertionHandler -// GO(SDL_SetClipboardText, iFp) +GO(SDL_SetClipboardText, iFp) // GO(SDL_SetClipRect, uFpp) // GO(SDL_SetColorKey, iFpiu) GO(SDL_SetCursor, vFp) |