mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
Allow simultaneous X11 and Wayland support (#3152)
* Allow simultaneous X11 and Wayland support * Add NativeWindowHandleType * Set default value for g_platformData.type * Use g_platformData.type to check for a native Wayland window * Stub getNativeWindowHandleType on platform where Wayland is not an option * Implement getNativeWindowHandleType for GLFW * Add getNativeWindowHandleType to the remaining C++ examples * Add getNativeWindowHandleType to the C example
This commit is contained in:
@@ -34,6 +34,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -149,6 +149,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -508,6 +508,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -121,6 +121,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -84,6 +84,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -104,6 +104,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -331,6 +331,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -247,6 +247,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -159,6 +159,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -73,6 +73,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -56,6 +56,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -48,6 +48,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -814,6 +814,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_viewState.m_width;
|
||||
init.resolution.height = m_viewState.m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -1786,6 +1786,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_viewState.m_width;
|
||||
init.resolution.height = m_viewState.m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -80,6 +80,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -1159,6 +1159,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_viewState.m_width;
|
||||
init.resolution.height = m_viewState.m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -131,6 +131,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -420,6 +420,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -171,6 +171,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -1404,6 +1404,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -213,6 +213,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -88,6 +88,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -132,6 +132,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
extern bool entry_process_events(uint32_t* _width, uint32_t* _height, uint32_t* _debug, uint32_t* _reset);
|
||||
extern void* entry_get_default_native_window_handle(void);
|
||||
extern void* entry_get_native_display_handle(void);
|
||||
extern bgfx_native_window_handle_type_t entry_get_native_window_handle_type(void);
|
||||
|
||||
uint16_t uint16_max(uint16_t _a, uint16_t _b)
|
||||
{
|
||||
@@ -29,6 +30,7 @@ int32_t _main_(int32_t _argc, char** _argv)
|
||||
|
||||
init.platformData.nwh = entry_get_default_native_window_handle();
|
||||
init.platformData.ndt = entry_get_native_display_handle();
|
||||
init.platformData.type = entry_get_native_window_handle_type();
|
||||
|
||||
bgfx_init(&init);
|
||||
bgfx_reset(width, height, reset, init.resolution.format);
|
||||
|
||||
@@ -84,6 +84,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -80,6 +80,7 @@ ExampleTerrain(const char* _name, const char* _description, const char* _url)
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -293,6 +293,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -780,6 +780,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -40,6 +40,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -213,6 +213,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -248,6 +248,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -130,6 +130,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -126,6 +126,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -104,6 +104,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -420,6 +420,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -330,6 +330,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -200,6 +200,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -271,6 +271,7 @@ namespace
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -82,6 +82,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -339,6 +339,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -264,6 +264,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -253,6 +253,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -265,6 +265,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -247,6 +247,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -429,6 +429,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -146,6 +146,7 @@ public:
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -85,6 +85,7 @@ namespace
|
||||
init.vendorId = args.m_pciId;
|
||||
init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
|
||||
init.platformData.ndt = entry::getNativeDisplayHandle();
|
||||
init.platformData.type = entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
init.resolution.width = m_width;
|
||||
init.resolution.height = m_height;
|
||||
init.resolution.reset = m_reset;
|
||||
|
||||
@@ -1037,3 +1037,8 @@ extern "C" void* entry_get_native_display_handle()
|
||||
{
|
||||
return entry::getNativeDisplayHandle();
|
||||
}
|
||||
|
||||
extern "C" bgfx::NativeWindowHandleType::Enum entry_get_native_window_handle_type()
|
||||
{
|
||||
return entry::getNativeWindowHandleType(entry::kDefaultWindowHandle);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define ENTRY_H_HEADER_GUARD
|
||||
|
||||
#include "dbg.h"
|
||||
#include <bgfx/bgfx.h>
|
||||
#include <bx/bx.h>
|
||||
#include <bx/filepath.h>
|
||||
#include <bx/string.h>
|
||||
@@ -297,6 +298,9 @@ namespace entry
|
||||
///
|
||||
void* getNativeDisplayHandle();
|
||||
|
||||
///
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle);
|
||||
|
||||
///
|
||||
void setCurrentDir(const char* _dir);
|
||||
|
||||
|
||||
@@ -550,6 +550,11 @@ namespace entry
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
|
||||
int32_t MainThreadEntry::threadFunc(bx::Thread* _thread, void* _userData)
|
||||
{
|
||||
BX_UNUSED(_thread);
|
||||
|
||||
@@ -875,6 +875,19 @@ namespace entry
|
||||
# endif // BX_PLATFORM_*
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
# if BX_PLATFORM_LINUX || BX_PLATFORM_BSD
|
||||
# if ENTRY_CONFIG_USE_WAYLAND
|
||||
return bgfx::NativeWindowHandleType::Wayland;
|
||||
# else
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
# endif // ENTRY_CONFIG_USE_WAYLAND
|
||||
# else
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
# endif // BX_PLATFORM_*
|
||||
}
|
||||
|
||||
int32_t MainThreadEntry::threadFunc(bx::Thread* _thread, void* _userData)
|
||||
{
|
||||
BX_UNUSED(_thread);
|
||||
|
||||
@@ -427,6 +427,11 @@ namespace entry
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int _argc, const char* const* _argv)
|
||||
|
||||
@@ -161,6 +161,11 @@ namespace entry
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
|
||||
} // namespace entry
|
||||
|
||||
using namespace entry;
|
||||
|
||||
@@ -78,6 +78,11 @@ namespace entry
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
|
||||
} // namespace entry
|
||||
|
||||
int main(int _argc, const char* const* _argv)
|
||||
|
||||
@@ -725,6 +725,11 @@ namespace entry
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
|
||||
} // namespace entry
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
@@ -50,21 +50,24 @@ namespace entry
|
||||
|
||||
# if BX_PLATFORM_LINUX || BX_PLATFORM_BSD
|
||||
# if ENTRY_CONFIG_USE_WAYLAND
|
||||
wl_egl_window *win_impl = (wl_egl_window*)SDL_GetWindowData(_window, "wl_egl_window");
|
||||
if(!win_impl)
|
||||
{
|
||||
int width, height;
|
||||
SDL_GetWindowSize(_window, &width, &height);
|
||||
struct wl_surface* surface = wmi.info.wl.surface;
|
||||
if(!surface)
|
||||
return nullptr;
|
||||
win_impl = wl_egl_window_create(surface, width, height);
|
||||
SDL_SetWindowData(_window, "wl_egl_window", win_impl);
|
||||
}
|
||||
return (void*)(uintptr_t)win_impl;
|
||||
# else
|
||||
return (void*)wmi.info.x11.window;
|
||||
# endif
|
||||
if (wmi.subsystem == SDL_SYSWM_WAYLAND)
|
||||
{
|
||||
wl_egl_window *win_impl = (wl_egl_window*)SDL_GetWindowData(_window, "wl_egl_window");
|
||||
if(!win_impl)
|
||||
{
|
||||
int width, height;
|
||||
SDL_GetWindowSize(_window, &width, &height);
|
||||
struct wl_surface* surface = wmi.info.wl.surface;
|
||||
if(!surface)
|
||||
return nullptr;
|
||||
win_impl = wl_egl_window_create(surface, width, height);
|
||||
SDL_SetWindowData(_window, "wl_egl_window", win_impl);
|
||||
}
|
||||
return (void*)(uintptr_t)win_impl;
|
||||
}
|
||||
else
|
||||
# endif // ENTRY_CONFIG_USE_WAYLAND
|
||||
return (void*)wmi.info.x11.window;
|
||||
# elif BX_PLATFORM_OSX || BX_PLATFORM_IOS
|
||||
return wmi.info.cocoa.window;
|
||||
# elif BX_PLATFORM_WINDOWS
|
||||
@@ -1145,18 +1148,38 @@ namespace entry
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
# if BX_PLATFORM_LINUX || BX_PLATFORM_BSD
|
||||
# if ENTRY_CONFIG_USE_WAYLAND
|
||||
return wmi.info.wl.display;
|
||||
# else
|
||||
return wmi.info.x11.display;
|
||||
if (wmi.subsystem == SDL_SYSWM_WAYLAND)
|
||||
return wmi.info.wl.display;
|
||||
else
|
||||
# endif // ENTRY_CONFIG_USE_WAYLAND
|
||||
return wmi.info.x11.display;
|
||||
# else
|
||||
return NULL;
|
||||
# endif // BX_PLATFORM_*
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
SDL_SysWMinfo wmi;
|
||||
SDL_VERSION(&wmi.version);
|
||||
if (!SDL_GetWindowWMInfo(s_ctx.m_window[_handle.idx], &wmi) )
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
# if BX_PLATFORM_LINUX || BX_PLATFORM_BSD
|
||||
# if ENTRY_CONFIG_USE_WAYLAND
|
||||
if (wmi.subsystem == SDL_SYSWM_WAYLAND)
|
||||
return bgfx::NativeWindowHandleType::Wayland;
|
||||
else
|
||||
# endif // ENTRY_CONFIG_USE_WAYLAND
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
# else
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
# endif // BX_PLATFORM_*
|
||||
}
|
||||
|
||||
int32_t MainThreadEntry::threadFunc(bx::Thread* _thread, void* _userData)
|
||||
{
|
||||
BX_UNUSED(_thread);
|
||||
|
||||
@@ -1169,6 +1169,11 @@ namespace entry
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
|
||||
int32_t MainThreadEntry::threadFunc(bx::Thread* /*_thread*/, void* _userData)
|
||||
{
|
||||
MainThreadEntry* self = (MainThreadEntry*)_userData;
|
||||
|
||||
@@ -771,6 +771,11 @@ namespace entry
|
||||
return s_ctx.m_display;
|
||||
}
|
||||
|
||||
bgfx::NativeWindowHandleType::Enum getNativeWindowHandleType(WindowHandle _handle)
|
||||
{
|
||||
return bgfx::NativeWindowHandleType::Default;
|
||||
}
|
||||
|
||||
} // namespace entry
|
||||
|
||||
int main(int _argc, const char* const* _argv)
|
||||
|
||||
Reference in New Issue
Block a user