Common: Add a render_window field to WindowSystemInfo

We need this because we need to pass the layer to MoltenVK, not
the view handle. But the input subsystem still needs the window.
This commit is contained in:
Stenzek
2020-03-11 23:09:28 +10:00
parent bb7623e3ba
commit 86db015c23
8 changed files with 24 additions and 10 deletions

View File

@ -18,8 +18,10 @@ enum class WindowSystemType
struct WindowSystemInfo
{
WindowSystemInfo() = default;
WindowSystemInfo(WindowSystemType type_, void* display_connection_, void* render_surface_)
: type(type_), display_connection(display_connection_), render_surface(render_surface_)
WindowSystemInfo(WindowSystemType type_, void* display_connection_, void* render_window_,
void* render_surface_)
: type(type_), display_connection(display_connection_), render_window(render_window_),
render_surface(render_surface_)
{
}
@ -29,9 +31,14 @@ struct WindowSystemInfo
// Connection to a display server. This is used on X11 and Wayland platforms.
void* display_connection = nullptr;
// Render surface. This is a pointer to the native window handle, which depends
// Render window. This is a pointer to the native window handle, which depends
// on the platform. e.g. HWND for Windows, Window for X11. If the surface is
// set to nullptr, the video backend will run in headless mode.
void* render_window = nullptr;
// Render surface. Depending on the host platform, this may differ from the window.
// This is kept seperate as input may require a different handle to rendering, and
// during video backend startup the surface pointer may change (MoltenVK).
void* render_surface = nullptr;
// Scale of the render surface. For hidpi systems, this will be >1.