diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-26 13:20:07 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-26 13:20:07 +0200 |
| commit | b80e4c552aa7ba61e8b9bb41079e34a1c7512464 (patch) | |
| tree | 51993243acb33b662d299576da19c448fd703513 /src | |
| parent | 933dc0f5c83016345bef0dd7c5b5b88de495c9c3 (diff) | |
| download | box64-b80e4c552aa7ba61e8b9bb41079e34a1c7512464.tar.gz box64-b80e4c552aa7ba61e8b9bb41079e34a1c7512464.zip | |
[BOX32] Minor changes to 32bits freetype wrapping
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x86int3.c | 8 | ||||
| -rw-r--r-- | src/wrapped32/wrappedfreetype.c | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/emu/x86int3.c b/src/emu/x86int3.c index 79f18a5e..52920c02 100755 --- a/src/emu/x86int3.c +++ b/src/emu/x86int3.c @@ -305,6 +305,8 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr) snprintf(buff, 255, "%04d|%p: Calling %s(%p, \"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8))); } else if(strstr(s, "glXGetProcAddress")==s) { snprintf(buff, 255, "%04d|%p: Calling %s(\"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4))); + } else if (!strcmp(s, "glTexImage2D")) { + snprintf(buff, 256, "%04d|%p: Calling %s(0x%x, %d, 0x%x, %d, %d, %d, 0x%x, 0x%x, %p)", tid, from_ptrv(*(ptr_t*)from_ptrv(R_ESP)), s, *(uint32_t*)from_ptrv(R_ESP+4), *(int*)from_ptrv(R_ESP+8), *(int*)from_ptrv(R_ESP+12), *(int*)from_ptrv(R_ESP+16), *(int*)from_ptrv(R_ESP+20), *(int*)from_ptrv(R_ESP+24), *(uint32_t*)from_ptrv(R_ESP+28), *(uint32_t*)from_ptrv(R_ESP+32), from_ptrv(*(ptr_t*)from_ptrv(R_ESP+36))); } else if(strstr(s, "sscanf")==s) { snprintf(buff, 255, "%04d|%p: Calling %s(\"%s\", \"%s\", ...)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8))); } else if(!strcmp(s, "vsscanf")) { @@ -340,6 +342,10 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr) snprintf(buff, 255, "%04d|%p: Calling %s(%p)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4))); } else if(strstr(s, "___tls_get_addr")) { snprintf(buff, 255, "%04d|%p: Calling %s(%p[%d, %d])", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(R_EAX), ((int*)from_ptrv(R_EAX))[0], ((int*)from_ptrv(R_EAX))[1]); + } else if (!strcmp(s, "FT_Outline_Get_CBox")) { + pu32 = *(uint32_t**)from_ptrv(R_ESP+8); + snprintf(buff, 256, "%04d|%p: Calling %s(%p, %p)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8))); + post = 11; } else if(strstr(s, "udev_monitor_new_from_netlink")==s) { post = 5; snprintf(buff, 255, "%04d|%p: Calling %s(%p, \"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8))); @@ -388,6 +394,8 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr) snprintf(buff2, 63, " [type=%hhd]", *pu8); } break; + case 11: snprintf(buff2, 63, " [%d / %d / %d /%d]", pu32[0], pu32[1], pu32[2], pu32[3]); + break; } if(perr==1 && ((int)R_EAX)<0) diff --git a/src/wrapped32/wrappedfreetype.c b/src/wrapped32/wrappedfreetype.c index acafc404..f55bcab5 100644 --- a/src/wrapped32/wrappedfreetype.c +++ b/src/wrapped32/wrappedfreetype.c @@ -433,8 +433,8 @@ void inplace_FT_GlyphSlot_enlarge(void* a) dst->outline.points = from_ptrv(src->outline.points); dst->outline.n_points = src->outline.n_points; for(int i=dst->outline.n_points-1; i>=0; --i) { - dst->outline.points[i].y = from_long(((FT_Vector_32_t*)from_ptrv(src->outline.points))[i].y); - dst->outline.points[i].x = from_long(((FT_Vector_32_t*)from_ptrv(src->outline.points))[i].x); + dst->outline.points[i].y = from_long(((FT_Vector_32_t*)dst->outline.points)[i].y); + dst->outline.points[i].x = from_long(((FT_Vector_32_t*)dst->outline.points)[i].x); } dst->outline.n_contours = src->outline.n_contours; dst->bitmap_top = src->bitmap_top; |