diff --git a/bindings/bf/bgfx.bf b/bindings/bf/bgfx.bf
index 24b4ed595..e79d4c3e9 100644
--- a/bindings/bf/bgfx.bf
+++ b/bindings/bf/bgfx.bf
@@ -15,6 +15,8 @@ namespace Bgfx
{
public static class bgfx
{
+ public typealias ViewId = uint16;
+
[AllowDuplicates]
public enum StateFlags : uint64
{
@@ -2003,7 +2005,7 @@ public static class bgfx
public uint8 homogeneousDepth;
public uint8 originBottomLeft;
public uint8 numGPUs;
- public uint32[4] gpu;
+ public GPU[4] gpu;
public Limits limits;
public uint16[85] formats;
}
@@ -2143,7 +2145,7 @@ public static class bgfx
public struct ViewStats
{
public char8[256] name;
- public uint16 view;
+ public ViewId view;
public int64 cpuTimeBegin;
public int64 cpuTimeEnd;
public int64 gpuTimeBegin;
@@ -2616,7 +2618,7 @@ public static class bgfx
/// `printf` style format.
///
[LinkName("bgfx_dbg_text_printf")]
- public static extern void dbg_text_printf(uint16 _x, uint16 _y, uint8 _attr, char8* _format, params Object[] args );
+ public static extern void dbg_text_printf(uint16 _x, uint16 _y, uint8 _attr, char8* _format, ... );
///
/// Print formatted data from variable argument list to internal debug text character-buffer (VGA-compatible text mode).
@@ -3382,7 +3384,7 @@ public static class bgfx
/// View name.
///
[LinkName("bgfx_set_view_name")]
- public static extern void set_view_name(uint16 _id, char8* _name);
+ public static extern void set_view_name(ViewId _id, char8* _name);
///
/// Set view rectangle. Draw primitive outside view will be clipped.
@@ -3395,7 +3397,7 @@ public static class bgfx
/// Height of view port region.
///
[LinkName("bgfx_set_view_rect")]
- public static extern void set_view_rect(uint16 _id, uint16 _x, uint16 _y, uint16 _width, uint16 _height);
+ public static extern void set_view_rect(ViewId _id, uint16 _x, uint16 _y, uint16 _width, uint16 _height);
///
/// Set view rectangle. Draw primitive outside view will be clipped.
@@ -3407,7 +3409,7 @@ public static class bgfx
/// Width and height will be set in respect to back-buffer size. See: `BackbufferRatio::Enum`.
///
[LinkName("bgfx_set_view_rect_ratio")]
- public static extern void set_view_rect_ratio(uint16 _id, uint16 _x, uint16 _y, BackbufferRatio _ratio);
+ public static extern void set_view_rect_ratio(ViewId _id, uint16 _x, uint16 _y, BackbufferRatio _ratio);
///
/// Set view scissor. Draw primitive outside view will be clipped. When
@@ -3421,7 +3423,7 @@ public static class bgfx
/// Height of view scissor region.
///
[LinkName("bgfx_set_view_scissor")]
- public static extern void set_view_scissor(uint16 _id, uint16 _x, uint16 _y, uint16 _width, uint16 _height);
+ public static extern void set_view_scissor(ViewId _id, uint16 _x, uint16 _y, uint16 _width, uint16 _height);
///
/// Set view clear flags.
@@ -3434,7 +3436,7 @@ public static class bgfx
/// Stencil clear value.
///
[LinkName("bgfx_set_view_clear")]
- public static extern void set_view_clear(uint16 _id, uint16 _flags, uint32 _rgba, float _depth, uint8 _stencil);
+ public static extern void set_view_clear(ViewId _id, uint16 _flags, uint32 _rgba, float _depth, uint8 _stencil);
///
/// Set view clear flags with different clear color for each
@@ -3456,7 +3458,7 @@ public static class bgfx
/// Palette index for frame buffer attachment 7.
///
[LinkName("bgfx_set_view_clear_mrt")]
- public static extern void set_view_clear_mrt(uint16 _id, uint16 _flags, float _depth, uint8 _stencil, uint8 _c0, uint8 _c1, uint8 _c2, uint8 _c3, uint8 _c4, uint8 _c5, uint8 _c6, uint8 _c7);
+ public static extern void set_view_clear_mrt(ViewId _id, uint16 _flags, float _depth, uint8 _stencil, uint8 _c0, uint8 _c1, uint8 _c2, uint8 _c3, uint8 _c4, uint8 _c5, uint8 _c6, uint8 _c7);
///
/// Set view sorting mode.
@@ -3468,7 +3470,7 @@ public static class bgfx
/// View sort mode. See `ViewMode::Enum`.
///
[LinkName("bgfx_set_view_mode")]
- public static extern void set_view_mode(uint16 _id, ViewMode _mode);
+ public static extern void set_view_mode(ViewId _id, ViewMode _mode);
///
/// Set view frame buffer.
@@ -3480,7 +3482,7 @@ public static class bgfx
/// Frame buffer handle. Passing `BGFX_INVALID_HANDLE` as frame buffer handle will draw primitives from this view into default back buffer.
///
[LinkName("bgfx_set_view_frame_buffer")]
- public static extern void set_view_frame_buffer(uint16 _id, FrameBufferHandle _handle);
+ public static extern void set_view_frame_buffer(ViewId _id, FrameBufferHandle _handle);
///
/// Set view view and projection matrices, all draw primitives in this
@@ -3492,7 +3494,7 @@ public static class bgfx
/// Projection matrix.
///
[LinkName("bgfx_set_view_transform")]
- public static extern void set_view_transform(uint16 _id, void* _view, void* _proj);
+ public static extern void set_view_transform(ViewId _id, void* _view, void* _proj);
///
/// Post submit view reordering.
@@ -3503,14 +3505,14 @@ public static class bgfx
/// View remap id table. Passing `NULL` will reset view ids to default state.
///
[LinkName("bgfx_set_view_order")]
- public static extern void set_view_order(uint16 _id, uint16 _num, uint16* _order);
+ public static extern void set_view_order(ViewId _id, uint16 _num, ViewId* _order);
///
/// Reset all view settings to default.
///
///
[LinkName("bgfx_reset_view")]
- public static extern void reset_view(uint16 _id);
+ public static extern void reset_view(ViewId _id);
///
/// Begin submitting draw calls from thread.
@@ -3823,7 +3825,7 @@ public static class bgfx
/// View id.
///
[LinkName("bgfx_encoder_touch")]
- public static extern void encoder_touch(Encoder* _this, uint16 _id);
+ public static extern void encoder_touch(Encoder* _this, ViewId _id);
///
/// Submit primitive for rendering.
@@ -3835,7 +3837,7 @@ public static class bgfx
/// Discard or preserve states. See `BGFX_DISCARD_*`.
///
[LinkName("bgfx_encoder_submit")]
- public static extern void encoder_submit(Encoder* _this, uint16 _id, ProgramHandle _program, uint32 _depth, uint8 _flags);
+ public static extern void encoder_submit(Encoder* _this, ViewId _id, ProgramHandle _program, uint32 _depth, uint8 _flags);
///
/// Submit primitive with occlusion query for rendering.
@@ -3848,7 +3850,7 @@ public static class bgfx
/// Discard or preserve states. See `BGFX_DISCARD_*`.
///
[LinkName("bgfx_encoder_submit_occlusion_query")]
- public static extern void encoder_submit_occlusion_query(Encoder* _this, uint16 _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint32 _depth, uint8 _flags);
+ public static extern void encoder_submit_occlusion_query(Encoder* _this, ViewId _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint32 _depth, uint8 _flags);
///
/// Submit primitive for rendering with index and instance data info from
@@ -3864,7 +3866,7 @@ public static class bgfx
/// Discard or preserve states. See `BGFX_DISCARD_*`.
///
[LinkName("bgfx_encoder_submit_indirect")]
- public static extern void encoder_submit_indirect(Encoder* _this, uint16 _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint32 _depth, uint8 _flags);
+ public static extern void encoder_submit_indirect(Encoder* _this, ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint32 _depth, uint8 _flags);
///
/// Set compute index buffer.
@@ -3946,7 +3948,7 @@ public static class bgfx
/// Discard or preserve states. See `BGFX_DISCARD_*`.
///
[LinkName("bgfx_encoder_dispatch")]
- public static extern void encoder_dispatch(Encoder* _this, uint16 _id, ProgramHandle _program, uint32 _numX, uint32 _numY, uint32 _numZ, uint8 _flags);
+ public static extern void encoder_dispatch(Encoder* _this, ViewId _id, ProgramHandle _program, uint32 _numX, uint32 _numY, uint32 _numZ, uint8 _flags);
///
/// Dispatch compute indirect.
@@ -3960,7 +3962,7 @@ public static class bgfx
/// Discard or preserve states. See `BGFX_DISCARD_*`.
///
[LinkName("bgfx_encoder_dispatch_indirect")]
- public static extern void encoder_dispatch_indirect(Encoder* _this, uint16 _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint8 _flags);
+ public static extern void encoder_dispatch_indirect(Encoder* _this, ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint8 _flags);
///
/// Discard previously set state for draw or compute call.
@@ -3993,7 +3995,7 @@ public static class bgfx
/// If texture is 3D this argument represents depth of region, otherwise it's unused.
///
[LinkName("bgfx_encoder_blit")]
- public static extern void encoder_blit(Encoder* _this, uint16 _id, TextureHandle _dst, uint8 _dstMip, uint16 _dstX, uint16 _dstY, uint16 _dstZ, TextureHandle _src, uint8 _srcMip, uint16 _srcX, uint16 _srcY, uint16 _srcZ, uint16 _width, uint16 _height, uint16 _depth);
+ public static extern void encoder_blit(Encoder* _this, ViewId _id, TextureHandle _dst, uint8 _dstMip, uint16 _dstX, uint16 _dstY, uint16 _dstZ, TextureHandle _src, uint8 _srcMip, uint16 _srcX, uint16 _srcY, uint16 _srcZ, uint16 _width, uint16 _height, uint16 _depth);
///
/// Request screen shot of window back buffer.
@@ -4379,7 +4381,7 @@ public static class bgfx
/// View id.
///
[LinkName("bgfx_touch")]
- public static extern void touch(uint16 _id);
+ public static extern void touch(ViewId _id);
///
/// Submit primitive for rendering.
@@ -4391,7 +4393,7 @@ public static class bgfx
/// Which states to discard for next draw. See BGFX_DISCARD_
///
[LinkName("bgfx_submit")]
- public static extern void submit(uint16 _id, ProgramHandle _program, uint32 _depth, uint8 _flags);
+ public static extern void submit(ViewId _id, ProgramHandle _program, uint32 _depth, uint8 _flags);
///
/// Submit primitive with occlusion query for rendering.
@@ -4404,7 +4406,7 @@ public static class bgfx
/// Which states to discard for next draw. See BGFX_DISCARD_
///
[LinkName("bgfx_submit_occlusion_query")]
- public static extern void submit_occlusion_query(uint16 _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint32 _depth, uint8 _flags);
+ public static extern void submit_occlusion_query(ViewId _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint32 _depth, uint8 _flags);
///
/// Submit primitive for rendering with index and instance data info from
@@ -4420,7 +4422,7 @@ public static class bgfx
/// Which states to discard for next draw. See BGFX_DISCARD_
///
[LinkName("bgfx_submit_indirect")]
- public static extern void submit_indirect(uint16 _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint32 _depth, uint8 _flags);
+ public static extern void submit_indirect(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint32 _depth, uint8 _flags);
///
/// Set compute index buffer.
@@ -4502,7 +4504,7 @@ public static class bgfx
/// Discard or preserve states. See `BGFX_DISCARD_*`.
///
[LinkName("bgfx_dispatch")]
- public static extern void dispatch(uint16 _id, ProgramHandle _program, uint32 _numX, uint32 _numY, uint32 _numZ, uint8 _flags);
+ public static extern void dispatch(ViewId _id, ProgramHandle _program, uint32 _numX, uint32 _numY, uint32 _numZ, uint8 _flags);
///
/// Dispatch compute indirect.
@@ -4516,7 +4518,7 @@ public static class bgfx
/// Discard or preserve states. See `BGFX_DISCARD_*`.
///
[LinkName("bgfx_dispatch_indirect")]
- public static extern void dispatch_indirect(uint16 _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint8 _flags);
+ public static extern void dispatch_indirect(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16 _start, uint16 _num, uint8 _flags);
///
/// Discard previously set state for draw or compute call.
@@ -4549,7 +4551,7 @@ public static class bgfx
/// If texture is 3D this argument represents depth of region, otherwise it's unused.
///
[LinkName("bgfx_blit")]
- public static extern void blit(uint16 _id, TextureHandle _dst, uint8 _dstMip, uint16 _dstX, uint16 _dstY, uint16 _dstZ, TextureHandle _src, uint8 _srcMip, uint16 _srcX, uint16 _srcY, uint16 _srcZ, uint16 _width, uint16 _height, uint16 _depth);
+ public static extern void blit(ViewId _id, TextureHandle _dst, uint8 _dstMip, uint16 _dstX, uint16 _dstY, uint16 _dstZ, TextureHandle _src, uint8 _srcMip, uint16 _srcX, uint16 _srcY, uint16 _srcZ, uint16 _width, uint16 _height, uint16 _depth);
public static bgfx.StateFlags blend_function_separate(bgfx.StateFlags _srcRGB, bgfx.StateFlags _dstRGB, bgfx.StateFlags _srcA, bgfx.StateFlags _dstA)
diff --git a/scripts/bindings-bf.lua b/scripts/bindings-bf.lua
index a02b1360d..ef0df58d7 100644
--- a/scripts/bindings-bf.lua
+++ b/scripts/bindings-bf.lua
@@ -19,6 +19,8 @@ namespace Bgfx
{
public static class bgfx
{
+ public typealias ViewId = uint16;
+
$types
$funcs
@@ -56,31 +58,21 @@ local function convert_type_0(arg)
return arg.ctype:gsub("int32_t", "int")
elseif hasPrefix(arg.ctype, "uint16_t") then
return arg.ctype:gsub("uint16_t", "uint16")
- elseif hasPrefix(arg.ctype, "bgfx_view_id_t") then
- return arg.ctype:gsub("bgfx_view_id_t", "uint16")
elseif hasPrefix(arg.ctype, "uint8_t") then
return arg.ctype:gsub("uint8_t", "uint8")
elseif hasPrefix(arg.ctype, "uintptr_t") then
return arg.ctype:gsub("uintptr_t", "void*")
- elseif arg.ctype == "bgfx_caps_gpu_t" then
- return arg.ctype:gsub("bgfx_caps_gpu_t", "uint32")
elseif arg.ctype == "const char*" then
return "char8*"
elseif hasPrefix(arg.ctype, "char") then
return arg.ctype:gsub("char", "char8")
elseif hasPrefix(arg.ctype, "byte") then
return arg.ctype:gsub("byte", "uint8")
- elseif hasSuffix(arg.fulltype, "Handle") then
- return arg.fulltype
- elseif arg.ctype == "..." then
- return "params Object[] args"
elseif arg.ctype == "va_list"
or arg.fulltype == "bx::AllocatorI*"
or arg.fulltype == "CallbackI*"
or arg.fulltype == "ReleaseFn" then
return "void*"
- elseif arg.fulltype == "const ViewId*" then
- return "uint16*"
end
return arg.fulltype