Bläddra i källkod

Fix Native Window Type IDL/Bindings; (#3163)

Nuno Silva 2 år sedan
förälder
incheckning
b68dc2b13e
5 ändrade filer med 68 tillägg och 9 borttagningar
  1. 17 0
      bindings/bf/bgfx.bf
  2. 16 0
      bindings/cs/bgfx.cs
  3. 8 0
      bindings/d/package.d
  4. 11 0
      bindings/zig/bgfx.zig
  5. 16 9
      scripts/bgfx.idl

+ 17 - 0
bindings/bf/bgfx.bf

@@ -2016,6 +2016,22 @@ public static class bgfx
 		Count
 	}
 	
+	[AllowDuplicates]
+	public enum NativeWindowHandleType : uint32
+	{
+		/// <summary>
+		/// Platform default handle type (X11 on Linux).
+		/// </summary>
+		Default,
+	
+		/// <summary>
+		/// Wayland.
+		/// </summary>
+		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]

+ 16 - 0
bindings/cs/bgfx.cs

@@ -2002,6 +2002,21 @@ public static partial class bgfx
 		Count
 	}
 	
+	public enum NativeWindowHandleType
+	{
+		/// <summary>
+		/// Platform default handle type (X11 on Linux).
+		/// </summary>
+		Default,
+	
+		/// <summary>
+		/// Wayland.
+		/// </summary>
+		Wayland,
+	
+		Count
+	}
+	
 	public enum RenderFrame
 	{
 		/// <summary>
@@ -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

+ 8 - 0
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.

+ 11 - 0
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 {

+ 16 - 9
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 }