diff --git a/bindings/bf/bgfx.bf b/bindings/bf/bgfx.bf
index 906a2377c..cc13110fc 100644
--- a/bindings/bf/bgfx.bf
+++ b/bindings/bf/bgfx.bf
@@ -2016,6 +2016,22 @@ public static class bgfx
Count
}
+ [AllowDuplicates]
+ public enum NativeWindowHandleType : uint32
+ {
+ ///
+ /// Platform default handle type (X11 on Linux).
+ ///
+ Default,
+
+ ///
+ /// Wayland.
+ ///
+ Wayland,
+
+ Count
+ }
+
[AllowDuplicates]
public enum RenderFrame : uint32
{
@@ -2108,6 +2124,7 @@ public static class bgfx
public void* context;
public void* backBuffer;
public void* backBufferDS;
+ public NativeWindowHandleType type;
}
[CRepr]
diff --git a/bindings/cs/bgfx.cs b/bindings/cs/bgfx.cs
index b8676ea61..baccff2c3 100644
--- a/bindings/cs/bgfx.cs
+++ b/bindings/cs/bgfx.cs
@@ -2002,6 +2002,21 @@ public static partial class bgfx
Count
}
+ public enum NativeWindowHandleType
+ {
+ ///
+ /// Platform default handle type (X11 on Linux).
+ ///
+ Default,
+
+ ///
+ /// Wayland.
+ ///
+ Wayland,
+
+ Count
+ }
+
public enum RenderFrame
{
///
@@ -2088,6 +2103,7 @@ public static partial class bgfx
public void* context;
public void* backBuffer;
public void* backBufferDS;
+ public NativeWindowHandleType type;
}
public unsafe struct Resolution
diff --git a/bindings/d/package.d b/bindings/d/package.d
index d05b8c89d..606959c60 100644
--- a/bindings/d/package.d
+++ b/bindings/d/package.d
@@ -839,6 +839,13 @@ enum ViewMode: bgfx.fakeenum.ViewMode.Enum{
count = bgfx.fakeenum.ViewMode.Enum.count,
}
+///Native window handle type.
+enum NativeWindowHandleType: bgfx.fakeenum.NativeWindowHandleType.Enum{
+ default_ = bgfx.fakeenum.NativeWindowHandleType.Enum.default_,
+ wayland = bgfx.fakeenum.NativeWindowHandleType.Enum.wayland,
+ count = bgfx.fakeenum.NativeWindowHandleType.Enum.count,
+}
+
///Render frame enum.
enum RenderFrame: bgfx.fakeenum.RenderFrame.Enum{
noContext = bgfx.fakeenum.RenderFrame.Enum.noContext,
@@ -1073,6 +1080,7 @@ extern(C++, "bgfx") struct PlatformData{
depth/stencil surface.
*/
void* backBufferDS;
+ NativeWindowHandleType type; ///Handle type. Needed for platforms having more than one option.
}
///Backbuffer resolution and reset parameters.
diff --git a/bindings/zig/bgfx.zig b/bindings/zig/bgfx.zig
index 757888b0f..592926858 100644
--- a/bindings/zig/bgfx.zig
+++ b/bindings/zig/bgfx.zig
@@ -1260,6 +1260,16 @@ pub const ViewMode = enum(c_int) {
Count
};
+pub const NativeWindowHandleType = enum(c_int) {
+ /// Platform default handle type (X11 on Linux).
+ Default,
+
+ /// Wayland.
+ Wayland,
+
+ Count
+};
+
pub const RenderFrame = enum(c_int) {
/// Renderer context is not created yet.
NoContext,
@@ -1332,6 +1342,7 @@ pub const Caps = extern struct {
context: ?*anyopaque,
backBuffer: ?*anyopaque,
backBufferDS: ?*anyopaque,
+ type: NativeWindowHandleType,
};
pub const Resolution = extern struct {
diff --git a/scripts/bgfx.idl b/scripts/bgfx.idl
index 2852fbef7..32f143d23 100644
--- a/scripts/bgfx.idl
+++ b/scripts/bgfx.idl
@@ -690,6 +690,12 @@ enum.ViewMode { underscore, comment = "View modes:" }
.DepthDescending --- Sort draw call depth in descending order.
()
+--- Native window handle type.
+enum.NativeWindowHandleType { underscore, comment = "Native Window handle type:" }
+ .Default --- Platform default handle type (X11 on Linux).
+ .Wayland --- Wayland.
+ ()
+
--- Render frame enum.
enum.RenderFrame { underscore, comment = "" }
.NoContext --- Renderer context is not created yet.
@@ -774,15 +780,16 @@ struct.InternalData
--- Platform data.
struct.PlatformData { ctor }
- .ndt "void*" --- Native display type (*nix specific).
- .nwh "void*" --- Native window handle. If `NULL`, bgfx will create a headless
- --- context/device, provided the rendering API supports it.
- .context "void*" --- GL context, D3D device, or Vulkan device. If `NULL`, bgfx
- --- will create context/device.
- .backBuffer "void*" --- GL back-buffer, or D3D render target view. If `NULL` bgfx will
- --- create back-buffer color surface.
- .backBufferDS "void*" --- Backbuffer depth/stencil. If `NULL`, bgfx will create a back-buffer
- --- depth/stencil surface.
+ .ndt "void*" --- Native display type (*nix specific).
+ .nwh "void*" --- Native window handle. If `NULL`, bgfx will create a headless
+ --- context/device, provided the rendering API supports it.
+ .context "void*" --- GL context, D3D device, or Vulkan device. If `NULL`, bgfx
+ --- will create context/device.
+ .backBuffer "void*" --- GL back-buffer, or D3D render target view. If `NULL` bgfx will
+ --- create back-buffer color surface.
+ .backBufferDS "void*" --- Backbuffer depth/stencil. If `NULL`, bgfx will create a back-buffer
+ --- depth/stencil surface.
+ .type "NativeWindowHandleType::Enum" --- Handle type. Needed for platforms having more than one option.
--- Backbuffer resolution and reset parameters.
struct.Resolution { ctor }