> being able to register wrappers from win32u makes things simpler because we then don't need a manual function in winevulkan to register the objects, and the winevulkan thunks can call directly into win32u functions.
So you plan to manage some of rbtree handling in winevulkan while others in win32u? That doesn't sound like a clean separation if the only benefit is avoiding a few manual thunks in winevulkan. It seems cleaner to have all of that on one side (probably winevulkan, but win32u is also a possibility).
win32u doesn't need client handles for anything else, unless I'm missing something. It means that if we'd keep that in winevulkan, the only thing from `vulkan_object` struct that's needed by win32u would be a handle and a parent. The handle requires an unpleasant union and the parent needs casting to be useful. That makes me question if `vulkan_object` is really all that useful... Having a dedicated per-type structs would avoid both of those. You needs it for both the device and instance, why not have two or so more?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6427#note_81105
(From https://gitlab.winehq.org/wine/wine/-/merge_requests/6323)
--
v5: winewayland: Get rid of the window surface individual locks.
winewayland: Introduce a new wayland_client_surface_create helper.
winewayland: Get rid of window_surface reference from wayland_win_data.
winewayland: Get rid of wayland_surface reference from window_surface.
winewayland: Move window contents buffer to wayland_win_data struct.
winewayland: Reset the buffer damage region immediately after copy.
winewayland: Introduce a new get_window_surface_contents helper.
winewayland: Introduce a new set_window_surface_contents helper.
winewayland: Introduce a new ensure_window_surface_contents helper.
winewayland: Post WM_WAYLAND_CONFIGURE outside of the surface lock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6374
(From https://gitlab.winehq.org/wine/wine/-/merge_requests/6323)
--
v4: winewayland: Get rid of the window surface individual locks.
winewayland: Introduce a new wayland_client_surface_create helper.
winewayland: Get rid of window_surface reference from wayland_win_data.
winewayland: Get rid of wayland_surface reference from window_surface.
winewayland: Move window contents buffer to wayland_win_data struct.
winewayland: Reset the buffer damage region immediately after copy.
winewayland: Introduce a new get_window_surface_contents helper.
winewayland: Introduce a new set_window_surface_contents helper.
winewayland: Introduce a new ensure_window_surface_contents helper.
winewayland: Post WM_WAYLAND_CONFIGURE outside of the surface lock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6374