diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-18 10:23:08 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-18 10:23:08 +0200 |
| commit | 3598f2855f48f2a50feaa834afd4da1bc7291f91 (patch) | |
| tree | ef0dd09f5c67c6360600519bceaa1754aa895ef0 /src | |
| parent | f36a479d0f759aa0687cb361ac7b2bdcc906dbb6 (diff) | |
| download | box64-3598f2855f48f2a50feaa834afd4da1bc7291f91.tar.gz box64-3598f2855f48f2a50feaa834afd4da1bc7291f91.zip | |
[BOX32] A few more X11 wrapped functions and fixes
Diffstat (limited to 'src')
| -rw-r--r-- | src/libtools/my_x11_conv.c | 13 | ||||
| -rw-r--r-- | src/libtools/my_x11_conv.h | 1 | ||||
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedlibx11types32.h | 1 | ||||
| -rw-r--r-- | src/wrapped32/wrappedlibx11.c | 13 | ||||
| -rw-r--r-- | src/wrapped32/wrappedlibx11_private.h | 2 |
6 files changed, 29 insertions, 2 deletions
diff --git a/src/libtools/my_x11_conv.c b/src/libtools/my_x11_conv.c index 89709a9f..720b9e19 100644 --- a/src/libtools/my_x11_conv.c +++ b/src/libtools/my_x11_conv.c @@ -434,6 +434,19 @@ void convert_XVisualInfo_to_32(void* dpy, my_XVisualInfo_32_t* dst, my_XVisualIn dst->colormap_size = src->colormap_size; dst->bits_per_rgb = src->bits_per_rgb; } +void convert_XVisualInfo_to_64_novisual(void* dpy, my_XVisualInfo_t* dst, my_XVisualInfo_32_t* src) +{ + dst->bits_per_rgb = src->bits_per_rgb; + dst->colormap_size = src->colormap_size; + dst->blue_mask = from_ulong(src->blue_mask); + dst->green_mask = from_ulong(src->green_mask); + dst->red_mask = from_ulong(src->red_mask); + dst->c_class = src->c_class; + dst->depth = src->depth; + dst->screen = src->screen; + dst->visualid = from_ulong(src->visualid); + dst->visual = NULL; +} void convert_XVisualInfo_to_64(void* dpy, my_XVisualInfo_t* dst, my_XVisualInfo_32_t* src) { dst->bits_per_rgb = src->bits_per_rgb; diff --git a/src/libtools/my_x11_conv.h b/src/libtools/my_x11_conv.h index b6dc28fd..96a75ca3 100644 --- a/src/libtools/my_x11_conv.h +++ b/src/libtools/my_x11_conv.h @@ -42,6 +42,7 @@ void inplace_XModifierKeymap_enlarge(void* a); void convert_XVisualInfo_to_32(void* dpy, my_XVisualInfo_32_t* dst, my_XVisualInfo_t* src); void convert_XVisualInfo_to_64(void* dpy, my_XVisualInfo_t* dst, my_XVisualInfo_32_t* src); +void convert_XVisualInfo_to_64_novisual(void* dpy, my_XVisualInfo_t* dst, my_XVisualInfo_32_t* src); void inplace_XVisualInfo_shrink(void* dpy, void *a); void inplace_XVisualInfo_enlarge(void* dpy, void *a); diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index 793db726..74d64986 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -2094,6 +2094,7 @@ wrappedlibx11: - iFXLpi: - XQueryColors - XSetWMProtocols + - XStoreColors - iFXLpp: - XGetWMNormalHints - iFXppp: diff --git a/src/wrapped32/generated/wrappedlibx11types32.h b/src/wrapped32/generated/wrappedlibx11types32.h index 055fee0d..ae0d36f1 100644 --- a/src/wrapped32/generated/wrappedlibx11types32.h +++ b/src/wrapped32/generated/wrappedlibx11types32.h @@ -113,6 +113,7 @@ typedef uintptr_t (*LFXLiiuuuiupLp_t)(void*, uintptr_t, int32_t, int32_t, uint32 GO(XChangeWindowAttributes, iFXLLp_t) \ GO(XQueryColors, iFXLpi_t) \ GO(XSetWMProtocols, iFXLpi_t) \ + GO(XStoreColors, iFXLpi_t) \ GO(XGetWMNormalHints, iFXLpp_t) \ GO(XCheckIfEvent, iFXppp_t) \ GO(XIfEvent, iFXppp_t) \ diff --git a/src/wrapped32/wrappedlibx11.c b/src/wrapped32/wrappedlibx11.c index e2256ba5..003d47d2 100644 --- a/src/wrapped32/wrappedlibx11.c +++ b/src/wrapped32/wrappedlibx11.c @@ -2143,7 +2143,7 @@ EXPORT void* my32_XGetIMValues(x64emu_t* emu, void* xim, ptr_t* b) EXPORT void* my32_XGetVisualInfo(x64emu_t* emu, void* dpy, long mask, my_XVisualInfo_32_t* template, int* n) { my_XVisualInfo_t template_l = {0}; - if(template) convert_XVisualInfo_to_64(dpy, &template_l, template); + if(template) convert_XVisualInfo_to_64_novisual(dpy, &template_l, template); my_XVisualInfo_t* ret = my->XGetVisualInfo(dpy, mask, template?(&template_l):NULL, n); inplace_XVisualInfo_shrink(dpy, ret); return ret; @@ -2170,6 +2170,17 @@ EXPORT int my32_XQueryColors(x64emu_t* emu, void* dpy, XID map, my_XColor_32_t* return ret; } +EXPORT int my32_XStoreColors(x64emu_t* emu, void* dpy, XID map, my_XColor_32_t* defs, int ncolor) +{ + struct_LWWWcc_t defs_l[ncolor]; + for(int i=0; i<ncolor; ++i) + from_struct_LWWWcc(defs_l+i, to_ptrv(defs+i)); + int ret = my->XStoreColors(dpy, map, defs_l, ncolor); + for(int i=0; i<ncolor; ++i) + to_struct_LWWWcc(to_ptrv(defs+i), defs_l+i); + return ret; +} + EXPORT int my32_XFreeFont(x64emu_t* emu, void* dpy, void* f) { inplace_XFontStruct_enlarge(f); diff --git a/src/wrapped32/wrappedlibx11_private.h b/src/wrapped32/wrappedlibx11_private.h index a32c5d46..d94475c5 100644 --- a/src/wrapped32/wrappedlibx11_private.h +++ b/src/wrapped32/wrappedlibx11_private.h @@ -1120,7 +1120,7 @@ GO(XShrinkRegion, iFpii) GO(XStoreBuffer, iFXpii) GO(XStoreBytes, iFXpi) GO(XStoreColor, iFXLbLWWWcc_) -GO(XStoreColors, iFXLbLWWWcc_i) +GOM(XStoreColors, iFEXLpi) //GO(_XStoreEventCookie, vFpp) GO(XStoreName, iFXLp) GO(XStoreNamedColor, iFXLpLi) |