Бранимир Караџић 6 gadi atpakaļ
vecāks
revīzija
bd9600e167
5 mainītis faili ar 45 papildinājumiem un 43 dzēšanām
  1. 5 0
      bindings/cs/bgfx.cs
  2. 2 1
      bindings/d/types.d
  3. 2 4
      include/bgfx/defines.h
  4. 16 20
      scripts/bgfx.idl
  5. 20 18
      src/bgfx.cpp

+ 5 - 0
bindings/cs/bgfx.cs

@@ -248,6 +248,11 @@ public static partial class bgfx
 		/// </summary>
 		None                   = 0x0000000000000000,
 	
+		/// <summary>
+		/// Front counter-clockwise (default is clockwise).
+		/// </summary>
+		FrontCcw               = 0x0000008000000000,
+	
 		/// <summary>
 		/// Enable blend independent.
 		/// </summary>

+ 2 - 1
bindings/d/types.d

@@ -10,7 +10,7 @@ public import core.stdc.stdarg : va_list;
 
 extern(C) @nogc nothrow:
 
-enum uint BGFX_API_VERSION = 100;
+enum uint BGFX_API_VERSION = 101;
 
 alias bgfx_view_id_t = ushort;
 
@@ -100,6 +100,7 @@ enum ulong BGFX_STATE_MSAA = 0x0100000000000000; /// Enable MSAA rasterization.
 enum ulong BGFX_STATE_LINEAA = 0x0200000000000000; /// Enable line AA rasterization.
 enum ulong BGFX_STATE_CONSERVATIVE_RASTER = 0x0400000000000000; /// Enable conservative rasterization.
 enum ulong BGFX_STATE_NONE = 0x0000000000000000; /// No state.
+enum ulong BGFX_STATE_FRONT_CCW = 0x0000008000000000; /// Front counter-clockwise (default is clockwise).
 enum ulong BGFX_STATE_BLEND_INDEPENDENT = 0x0000000400000000; /// Enable blend independent.
 enum ulong BGFX_STATE_BLEND_ALPHA_TO_COVERAGE = 0x0000000800000000; /// Enable alpha to coverage.
 /**

+ 2 - 4
include/bgfx/defines.h

@@ -6,7 +6,7 @@
 #ifndef BGFX_DEFINES_H_HEADER_GUARD
 #define BGFX_DEFINES_H_HEADER_GUARD
 
-#define BGFX_API_VERSION UINT32_C(100)
+#define BGFX_API_VERSION UINT32_C(101)
 
 /**
  * Color RGB/alpha/depth write. When it's not specified write will be disabled.
@@ -90,9 +90,6 @@
 #define BGFX_STATE_CULL_SHIFT               36                           //!< Culling mode bit shift
 #define BGFX_STATE_CULL_MASK                UINT64_C(0x0000003000000000) //!< Culling mode bit mask
 
-/// Front winding direction. Will default to clockwise unless otherwise specified.
-#define BGFX_STATE_FRONT_CCW                UINT64_C(0x0000008000000000) //!< Front counter-clockwise (default is clockwise).
-
 /**
  * Alpha reference value.
  *
@@ -125,6 +122,7 @@
 #define BGFX_STATE_LINEAA                   UINT64_C(0x0200000000000000) //!< Enable line AA rasterization.
 #define BGFX_STATE_CONSERVATIVE_RASTER      UINT64_C(0x0400000000000000) //!< Enable conservative rasterization.
 #define BGFX_STATE_NONE                     UINT64_C(0x0000000000000000) //!< No state.
+#define BGFX_STATE_FRONT_CCW                UINT64_C(0x0000008000000000) //!< Front counter-clockwise (default is clockwise).
 #define BGFX_STATE_BLEND_INDEPENDENT        UINT64_C(0x0000000400000000) //!< Enable blend independent.
 #define BGFX_STATE_BLEND_ALPHA_TO_COVERAGE  UINT64_C(0x0000000800000000) //!< Enable alpha to coverage.
 /// Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise

+ 16 - 20
scripts/bgfx.idl

@@ -1,7 +1,7 @@
 -- vim: syntax=lua
 -- bgfx interface
 
-version(100)
+version(101)
 
 typedef "bool"
 typedef "char"
@@ -79,22 +79,18 @@ flag.StateBlendEquation { bits = 64, shift = 28, range = 6, base = 0, desc = "Bl
 
 --- Cull state. When `BGFX_STATE_CULL_*` is not specified culling will be disabled.
 flag.StateCull { bits = 64, shift = 36, range = 2, base = 1, desc = "Culling mode" }
-	.Cw               --- Cull clockwise triangles.
-	.Ccw		  --- Cull counter-clockwise triangles.
-	()
-
---- Font facing. When BGFX_STATE_FRONT_CCW is not specified, front facing is CW
-flag.StateFrontCCW { bits = 64, shift = 39, range = 1, base = 1, desc = "Front facing" }
+	.Cw  --- Cull clockwise triangles.
+	.Ccw --- Cull counter-clockwise triangles.
 	()
 
 --- Alpha reference value.
 flag.StateAlphaRef { bits = 64, shift = 40, range = 8, desc = "Alpha reference", "helper" }
 
 flag.StatePt { bits = 64, shift = 48, range = 3, base = 1, desc = "Primitive type" }
-	.Tristrip             --- Tristrip.
-	.Lines                --- Lines.
-	.Linestrip            --- Line strip.
-	.Points               --- Points.
+	.Tristrip  --- Tristrip.
+	.Lines     --- Lines.
+	.Linestrip --- Line strip.
+	.Points    --- Points.
 	()
 
 --- Point size value.
@@ -103,16 +99,16 @@ flag.StatePointSize { bits = 64, shift = 52, range = 4, desc = "Point size", "he
 --- Enable MSAA write when writing into MSAA frame buffer.
 --- This flag is ignored when not writing into MSAA frame buffer.
 flag.State { bits = 64 , range = 64 , desc = "State" }
-	.Msaa (57)               --- Enable MSAA rasterization.
-	.Lineaa (58)             --- Enable line AA rasterization.
-	.ConservativeRaster (59) --- Enable conservative rasterization.
-	.None (0)                --- No state.
-	.BlendIndependent(35)    --- Enable blend independent.
-	.BlendAlphaToCoverage (36)     --- Enable alpha to coverage.
+	.Msaa (57)                 --- Enable MSAA rasterization.
+	.Lineaa (58)               --- Enable line AA rasterization.
+	.ConservativeRaster (59)   --- Enable conservative rasterization.
+	.None (0)                  --- No state.
+	.FrontCcw(40)              --- Front counter-clockwise (default is clockwise).
+	.BlendIndependent(35)      --- Enable blend independent.
+	.BlendAlphaToCoverage (36) --- Enable alpha to coverage.
 	.Default { "WriteRgb", "WriteA", "WriteZ", "DepthTestLess", "CullCw", "Msaa" }
-				 --- Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise
-				 --- culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored).
-
+	 --- Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise
+	 --- culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored).
 
 --- Do not use!
 flag.StateReserved { bits = 64, shift = 61, range = 3 }

+ 20 - 18
src/bgfx.cpp

@@ -5153,35 +5153,37 @@ BX_STATIC_ASSERT(FLAGS_MASK_TEST(0
 	) );
 
 BX_STATIC_ASSERT( (0
-	| BGFX_STATE_WRITE_MASK
-	| BGFX_STATE_DEPTH_TEST_MASK
-	| BGFX_STATE_BLEND_MASK
+	| BGFX_STATE_ALPHA_REF_MASK
+	| BGFX_STATE_BLEND_ALPHA_TO_COVERAGE
 	| BGFX_STATE_BLEND_EQUATION_MASK
 	| BGFX_STATE_BLEND_INDEPENDENT
-	| BGFX_STATE_BLEND_ALPHA_TO_COVERAGE
+	| BGFX_STATE_BLEND_MASK
+	| BGFX_STATE_CONSERVATIVE_RASTER
 	| BGFX_STATE_CULL_MASK
-	| BGFX_STATE_ALPHA_REF_MASK
-	| BGFX_STATE_PT_MASK
-	| BGFX_STATE_POINT_SIZE_MASK
-	| BGFX_STATE_MSAA
+	| BGFX_STATE_DEPTH_TEST_MASK
+	| BGFX_STATE_FRONT_CCW
 	| BGFX_STATE_LINEAA
-	| BGFX_STATE_CONSERVATIVE_RASTER
+	| BGFX_STATE_MSAA
+	| BGFX_STATE_POINT_SIZE_MASK
+	| BGFX_STATE_PT_MASK
 	| BGFX_STATE_RESERVED_MASK
+	| BGFX_STATE_WRITE_MASK
 	) == (0
-	^ BGFX_STATE_WRITE_MASK
-	^ BGFX_STATE_DEPTH_TEST_MASK
-	^ BGFX_STATE_BLEND_MASK
+	^ BGFX_STATE_ALPHA_REF_MASK
+	^ BGFX_STATE_BLEND_ALPHA_TO_COVERAGE
 	^ BGFX_STATE_BLEND_EQUATION_MASK
 	^ BGFX_STATE_BLEND_INDEPENDENT
-	^ BGFX_STATE_BLEND_ALPHA_TO_COVERAGE
+	^ BGFX_STATE_BLEND_MASK
+	^ BGFX_STATE_CONSERVATIVE_RASTER
 	^ BGFX_STATE_CULL_MASK
-	^ BGFX_STATE_ALPHA_REF_MASK
-	^ BGFX_STATE_PT_MASK
-	^ BGFX_STATE_POINT_SIZE_MASK
-	^ BGFX_STATE_MSAA
+	^ BGFX_STATE_DEPTH_TEST_MASK
+	^ BGFX_STATE_FRONT_CCW
 	^ BGFX_STATE_LINEAA
-	^ BGFX_STATE_CONSERVATIVE_RASTER
+	^ BGFX_STATE_MSAA
+	^ BGFX_STATE_POINT_SIZE_MASK
+	^ BGFX_STATE_PT_MASK
 	^ BGFX_STATE_RESERVED_MASK
+	^ BGFX_STATE_WRITE_MASK
 	) );
 
 BX_STATIC_ASSERT(FLAGS_MASK_TEST(BGFX_CAPS_TEXTURE_COMPARE_LEQUAL, BGFX_CAPS_TEXTURE_COMPARE_ALL) );