The D3D12 swapchain code is currently quite messy, probably because it was originally designed around the direct usage of the Vulkan swapchain images, then the support for user buffers was added, and the original design was later phased out. Currently the internal state can be divided in two different sets of objects: the "D3D12 side", which is visible to the `IDXGISwapChain` client and must be preserved at all times (except on the client's request, i.e., when `UpdateBuffers()` is called) and the "Vulkan side" which is private and can be destroyed and recreated more or less transparently (in case the Vulkan swapchain goes out of date or some settings are updated).
This MR begins the process of de-intertwining the helpers that act on one or the other sides, so that the structure of the code is made clearer. The full patch set is at https://gitlab.winehq.org/giomasce/wine/-/commits/chianti.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2930
This is to prevent NULL pointers when creating a TextService with no rows in it.
This NULL pointers doesn't happen when creating a richedit windows, because
it sets an empty text when the richedit window procedure handles the WM_CREATE event.
--
v4: riched20: Call ME_UpdateRepaint instead of editor_ensure_visible in set_selection.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2941
This is to prevent NULL pointers when creating a standalone text service
that doesn't have any text set and then using functions like EM_SETSEL.
This NULL pointers doesn't happen when creating a richedit windows, because
it sets an empty text when the richedit window procedure handles the WM_CREATE event.
--
v3: riched20: Check if row is null in editor_ensure_visible.
riched20: Return NULL if no row is found in row_from_cursor.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2941
On Fri Jun 2 17:22:54 2023 +0000, Huw Davies wrote:
> Could you split this MR into two or three smaller ones? - just force
> push the first few commits to this one, then, once this is merged, send
> the next one.
Done.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2934#note_34477