Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/winex11.drv/x11drv.h | 16 ++++- dlls/winex11.drv/x11drv_main.c | 118 ++++++++++++++++++++++++++++----- dlls/winex11.drv/xim.c | 13 ++-- 3 files changed, 124 insertions(+), 23 deletions(-)
Greetings Jacek,
Been following your user32 -> win32u work for a while now. Glad to see it done(?).
What's the goal behind this follow-up work?
AFAICT the aim is ensure no unix code depends on code which is (should be) built only as PE. Thus ultimately, wine will ship only the .dll files, without the accompanying .a archives. Seems like that will lead to some duplication, although if it's getting too much, guess one and move it under lib/foobar.
Does that sound about right, is there more to it?
Thanks Emil
Hi Emil,
On 4/8/22 18:56, Emil Velikov wrote:
Greetings Jacek,
Been following your user32 -> win32u work for a while now. Glad to see it done(?).
Removing driver interface from user32 was an important milestone, but we still can't use syscall interface for a number of function. We will need to remove direct win32u->user32 calls (see user_callbacks struct) and avoid exposing "kernel" pointers from win32u (see WIN_GetPtr for an example). This will require moving more code from user32 to win32u.
What's the goal behind this follow-up work?
AFAICT the aim is ensure no unix code depends on code which is (should be) built only as PE. Thus ultimately, wine will ship only the .dll files, without the accompanying .a archives. Seems like that will lead to some duplication, although if it's getting too much, guess one and move it under lib/foobar.
Does that sound about right, is there more to it?
Conversion of display drivers to the new PE+unixlib interface has always been the primary reason for win32u work. In this case, winex11 needs to be able to call X libraries, so it needs to live in a Unix lib (.so file). At the same time, it currently also needs to be able to call gdi32 and user32 functions, which are PE functions. The plan is to replace PE calls with win32u calls, which is using Unix library.
Cheers,
Jacek