From 0e1c095c3b25e2fc93abce8bff82bcf7d282d70f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Wed, 2 Sep 2020 11:19:14 +0800 Subject: [PATCH] add *_with_layout APIs (#2251) --- bindings/cs/bgfx.cs | 83 +++++++++++++++++++--- bindings/d/funcs.d | 150 ++++++++++++++++++++++++++++++++++------ bindings/d/types.d | 2 +- include/bgfx/c99/bgfx.h | 94 +++++++++++++++++++++---- include/bgfx/defines.h | 2 +- scripts/bgfx.idl | 65 +++++++++++++++-- src/bgfx.idl.inl | 54 +++++++++++++-- 7 files changed, 393 insertions(+), 57 deletions(-) diff --git a/bindings/cs/bgfx.cs b/bindings/cs/bgfx.cs index 01f7044d1..33d6e90e8 100644 --- a/bindings/cs/bgfx.cs +++ b/bindings/cs/bgfx.cs @@ -3638,10 +3638,22 @@ public static partial class bgfx /// Vertex buffer. /// First vertex to render. /// Number of vertices to render. - /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe void encoder_set_vertex_buffer(Encoder* _this, byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + public static extern unsafe void encoder_set_vertex_buffer(Encoder* _this, byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices); + + /// + /// Set vertex buffer for draw primitive. + /// + /// + /// Vertex stream. + /// Vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. + /// + [DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void encoder_set_vertex_buffer_with_layout(Encoder* _this, byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); /// /// Set vertex buffer for draw primitive. @@ -3651,10 +3663,24 @@ public static partial class bgfx /// Dynamic vertex buffer. /// First vertex to render. /// Number of vertices to render. - /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe void encoder_set_dynamic_vertex_buffer(Encoder* _this, byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + public static extern unsafe void encoder_set_dynamic_vertex_buffer(Encoder* _this, byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices); + + [DllImport(DllName, EntryPoint="bgfx_encoder_set_dynamic_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void encoder_set_dynamic_vertex_buffer_with_layout(Encoder* _this, byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + + /// + /// Set vertex buffer for draw primitive. + /// + /// + /// Vertex stream. + /// Transient vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + /// + [DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void encoder_set_transient_vertex_buffer(Encoder* _this, byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices); /// /// Set vertex buffer for draw primitive. @@ -3666,8 +3692,8 @@ public static partial class bgfx /// Number of vertices to render. /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. /// - [DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe void encoder_set_transient_vertex_buffer(Encoder* _this, byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + [DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void encoder_set_transient_vertex_buffer_with_layout(Encoder* _this, byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); /// /// Set number of vertices for auto generated vertices use in conjuction @@ -4160,10 +4186,34 @@ public static partial class bgfx /// Vertex buffer. /// First vertex to render. /// Number of vertices to render. - /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. /// [DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe void set_vertex_buffer(byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + public static extern unsafe void set_vertex_buffer(byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices); + + /// + /// Set vertex buffer for draw primitive. + /// + /// + /// Vertex stream. + /// Vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. + /// + [DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void set_vertex_buffer_with_layout(byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + + /// + /// Set vertex buffer for draw primitive. + /// + /// + /// Vertex stream. + /// Dynamic vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + /// + [DllImport(DllName, EntryPoint="bgfx_set_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void set_dynamic_vertex_buffer(byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices); /// /// Set vertex buffer for draw primitive. @@ -4175,8 +4225,8 @@ public static partial class bgfx /// Number of vertices to render. /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. /// - [DllImport(DllName, EntryPoint="bgfx_set_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe void set_dynamic_vertex_buffer(byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + [DllImport(DllName, EntryPoint="bgfx_set_dynamic_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void set_dynamic_vertex_buffer_with_layout(byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); /// /// Set vertex buffer for draw primitive. @@ -4190,6 +4240,19 @@ public static partial class bgfx [DllImport(DllName, EntryPoint="bgfx_set_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_transient_vertex_buffer(byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices); + /// + /// Set vertex buffer for draw primitive. + /// + /// + /// Vertex stream. + /// Transient vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. + /// + [DllImport(DllName, EntryPoint="bgfx_set_transient_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe void set_transient_vertex_buffer_with_layout(byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); + /// /// Set number of vertices for auto generated vertices use in conjuction /// with gl_VertexID. diff --git a/bindings/d/funcs.d b/bindings/d/funcs.d index dc6ae0e74..ce0c0dbee 100644 --- a/bindings/d/funcs.d +++ b/bindings/d/funcs.d @@ -1361,6 +1361,16 @@ version(BindBgfx_Static) */ void bgfx_encoder_set_transient_index_buffer(bgfx_encoder_t* _this, const(bgfx_transient_index_buffer_t)* _tib, uint _firstIndex, uint _numIndices); + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _handle = Vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); + /** * Set vertex buffer for draw primitive. * Params: @@ -1372,7 +1382,7 @@ version(BindBgfx_Static) * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void bgfx_encoder_set_vertex_buffer_with_layout(bgfx_encoder_t* _this, byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); /** * Set vertex buffer for draw primitive. @@ -1381,11 +1391,20 @@ version(BindBgfx_Static) * _handle = Dynamic vertex buffer. * _startVertex = First vertex to render. * _numVertices = Number of vertices to render. - * _layoutHandle = Vertex layout for aliasing vertex buffer. If invalid - * handle is used, vertex layout used for creation - * of vertex buffer will be used. */ - void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); + + void bgfx_encoder_set_dynamic_vertex_buffer_with_layout(bgfx_encoder_t* _this, byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _tvb = Transient vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + void bgfx_encoder_set_transient_vertex_buffer(bgfx_encoder_t* _this, byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices); /** * Set vertex buffer for draw primitive. @@ -1398,7 +1417,7 @@ version(BindBgfx_Static) * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - void bgfx_encoder_set_transient_vertex_buffer(bgfx_encoder_t* _this, byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void bgfx_encoder_set_transient_vertex_buffer_with_layout(bgfx_encoder_t* _this, byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); /** * Set number of vertices for auto generated vertices use in conjuction @@ -1833,6 +1852,16 @@ version(BindBgfx_Static) */ void bgfx_set_transient_index_buffer(const(bgfx_transient_index_buffer_t)* _tib, uint _firstIndex, uint _numIndices); + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _handle = Vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + void bgfx_set_vertex_buffer(byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); + /** * Set vertex buffer for draw primitive. * Params: @@ -1844,7 +1873,17 @@ version(BindBgfx_Static) * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - void bgfx_set_vertex_buffer(byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void bgfx_set_vertex_buffer_with_layout(byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _handle = Dynamic vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + void bgfx_set_dynamic_vertex_buffer(byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); /** * Set vertex buffer for draw primitive. @@ -1857,7 +1896,7 @@ version(BindBgfx_Static) * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - void bgfx_set_dynamic_vertex_buffer(byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void bgfx_set_dynamic_vertex_buffer_with_layout(byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); /** * Set vertex buffer for draw primitive. @@ -1869,6 +1908,19 @@ version(BindBgfx_Static) */ void bgfx_set_transient_vertex_buffer(byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices); + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _tvb = Transient vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + * _layoutHandle = Vertex layout for aliasing vertex buffer. If invalid + * handle is used, vertex layout used for creation + * of vertex buffer will be used. + */ + void bgfx_set_transient_vertex_buffer_with_layout(byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + /** * Set number of vertices for auto generated vertices use in conjuction * with gl_VertexID. @@ -3561,6 +3613,17 @@ else alias da_bgfx_encoder_set_transient_index_buffer = void function(bgfx_encoder_t* _this, const(bgfx_transient_index_buffer_t)* _tib, uint _firstIndex, uint _numIndices); da_bgfx_encoder_set_transient_index_buffer bgfx_encoder_set_transient_index_buffer; + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _handle = Vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + alias da_bgfx_encoder_set_vertex_buffer = void function(bgfx_encoder_t* _this, byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); + da_bgfx_encoder_set_vertex_buffer bgfx_encoder_set_vertex_buffer; + /** * Set vertex buffer for draw primitive. * Params: @@ -3572,8 +3635,8 @@ else * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - alias da_bgfx_encoder_set_vertex_buffer = void function(bgfx_encoder_t* _this, byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); - da_bgfx_encoder_set_vertex_buffer bgfx_encoder_set_vertex_buffer; + alias da_bgfx_encoder_set_vertex_buffer_with_layout = void function(bgfx_encoder_t* _this, byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + da_bgfx_encoder_set_vertex_buffer_with_layout bgfx_encoder_set_vertex_buffer_with_layout; /** * Set vertex buffer for draw primitive. @@ -3582,13 +3645,24 @@ else * _handle = Dynamic vertex buffer. * _startVertex = First vertex to render. * _numVertices = Number of vertices to render. - * _layoutHandle = Vertex layout for aliasing vertex buffer. If invalid - * handle is used, vertex layout used for creation - * of vertex buffer will be used. */ - alias da_bgfx_encoder_set_dynamic_vertex_buffer = void function(bgfx_encoder_t* _this, byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + alias da_bgfx_encoder_set_dynamic_vertex_buffer = void function(bgfx_encoder_t* _this, byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); da_bgfx_encoder_set_dynamic_vertex_buffer bgfx_encoder_set_dynamic_vertex_buffer; + alias da_bgfx_encoder_set_dynamic_vertex_buffer_with_layout = void function(bgfx_encoder_t* _this, byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + da_bgfx_encoder_set_dynamic_vertex_buffer_with_layout bgfx_encoder_set_dynamic_vertex_buffer_with_layout; + + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _tvb = Transient vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + alias da_bgfx_encoder_set_transient_vertex_buffer = void function(bgfx_encoder_t* _this, byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices); + da_bgfx_encoder_set_transient_vertex_buffer bgfx_encoder_set_transient_vertex_buffer; + /** * Set vertex buffer for draw primitive. * Params: @@ -3600,8 +3674,8 @@ else * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - alias da_bgfx_encoder_set_transient_vertex_buffer = void function(bgfx_encoder_t* _this, byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); - da_bgfx_encoder_set_transient_vertex_buffer bgfx_encoder_set_transient_vertex_buffer; + alias da_bgfx_encoder_set_transient_vertex_buffer_with_layout = void function(bgfx_encoder_t* _this, byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + da_bgfx_encoder_set_transient_vertex_buffer_with_layout bgfx_encoder_set_transient_vertex_buffer_with_layout; /** * Set number of vertices for auto generated vertices use in conjuction @@ -4075,6 +4149,17 @@ else alias da_bgfx_set_transient_index_buffer = void function(const(bgfx_transient_index_buffer_t)* _tib, uint _firstIndex, uint _numIndices); da_bgfx_set_transient_index_buffer bgfx_set_transient_index_buffer; + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _handle = Vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + alias da_bgfx_set_vertex_buffer = void function(byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); + da_bgfx_set_vertex_buffer bgfx_set_vertex_buffer; + /** * Set vertex buffer for draw primitive. * Params: @@ -4086,8 +4171,19 @@ else * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - alias da_bgfx_set_vertex_buffer = void function(byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); - da_bgfx_set_vertex_buffer bgfx_set_vertex_buffer; + alias da_bgfx_set_vertex_buffer_with_layout = void function(byte _stream, bgfx_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + da_bgfx_set_vertex_buffer_with_layout bgfx_set_vertex_buffer_with_layout; + + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _handle = Dynamic vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + */ + alias da_bgfx_set_dynamic_vertex_buffer = void function(byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices); + da_bgfx_set_dynamic_vertex_buffer bgfx_set_dynamic_vertex_buffer; /** * Set vertex buffer for draw primitive. @@ -4100,8 +4196,8 @@ else * handle is used, vertex layout used for creation * of vertex buffer will be used. */ - alias da_bgfx_set_dynamic_vertex_buffer = void function(byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); - da_bgfx_set_dynamic_vertex_buffer bgfx_set_dynamic_vertex_buffer; + alias da_bgfx_set_dynamic_vertex_buffer_with_layout = void function(byte _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + da_bgfx_set_dynamic_vertex_buffer_with_layout bgfx_set_dynamic_vertex_buffer_with_layout; /** * Set vertex buffer for draw primitive. @@ -4114,6 +4210,20 @@ else alias da_bgfx_set_transient_vertex_buffer = void function(byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices); da_bgfx_set_transient_vertex_buffer bgfx_set_transient_vertex_buffer; + /** + * Set vertex buffer for draw primitive. + * Params: + * _stream = Vertex stream. + * _tvb = Transient vertex buffer. + * _startVertex = First vertex to render. + * _numVertices = Number of vertices to render. + * _layoutHandle = Vertex layout for aliasing vertex buffer. If invalid + * handle is used, vertex layout used for creation + * of vertex buffer will be used. + */ + alias da_bgfx_set_transient_vertex_buffer_with_layout = void function(byte _stream, const(bgfx_transient_vertex_buffer_t)* _tvb, uint _startVertex, uint _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + da_bgfx_set_transient_vertex_buffer_with_layout bgfx_set_transient_vertex_buffer_with_layout; + /** * Set number of vertices for auto generated vertices use in conjuction * with gl_VertexID. diff --git a/bindings/d/types.d b/bindings/d/types.d index 008677811..37c3f6d52 100644 --- a/bindings/d/types.d +++ b/bindings/d/types.d @@ -10,7 +10,7 @@ public import core.stdc.stdarg : va_list; extern(C) @nogc nothrow: -enum uint BGFX_API_VERSION = 108; +enum uint BGFX_API_VERSION = 109; alias bgfx_view_id_t = ushort; diff --git a/include/bgfx/c99/bgfx.h b/include/bgfx/c99/bgfx.h index a6137cc1e..d7b5efcc7 100644 --- a/include/bgfx/c99/bgfx.h +++ b/include/bgfx/c99/bgfx.h @@ -2462,6 +2462,17 @@ BGFX_C_API void bgfx_encoder_set_dynamic_index_buffer(bgfx_encoder_t* _this, bgf */ BGFX_C_API void bgfx_encoder_set_transient_index_buffer(bgfx_encoder_t* _this, const bgfx_transient_index_buffer_t* _tib, uint32_t _firstIndex, uint32_t _numIndices); +/** + * Set vertex buffer for draw primitive. + * + * @param[in] _stream Vertex stream. + * @param[in] _handle Vertex buffer. + * @param[in] _startVertex First vertex to render. + * @param[in] _numVertices Number of vertices to render. + * + */ +BGFX_C_API void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); + /** * Set vertex buffer for draw primitive. * @@ -2474,7 +2485,7 @@ BGFX_C_API void bgfx_encoder_set_transient_index_buffer(bgfx_encoder_t* _this, c * of vertex buffer will be used. * */ -BGFX_C_API void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); +BGFX_C_API void bgfx_encoder_set_vertex_buffer_with_layout(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); /** * Set vertex buffer for draw primitive. @@ -2483,12 +2494,21 @@ BGFX_C_API void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, uint8_t _s * @param[in] _handle Dynamic vertex buffer. * @param[in] _startVertex First vertex to render. * @param[in] _numVertices Number of vertices to render. - * @param[in] _layoutHandle Vertex layout for aliasing vertex buffer. If invalid - * handle is used, vertex layout used for creation - * of vertex buffer will be used. * */ -BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); +BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); +BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer_with_layout(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + +/** + * Set vertex buffer for draw primitive. + * + * @param[in] _stream Vertex stream. + * @param[in] _tvb Transient vertex buffer. + * @param[in] _startVertex First vertex to render. + * @param[in] _numVertices Number of vertices to render. + * + */ +BGFX_C_API void bgfx_encoder_set_transient_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices); /** * Set vertex buffer for draw primitive. @@ -2502,7 +2522,7 @@ BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, ui * of vertex buffer will be used. * */ -BGFX_C_API void bgfx_encoder_set_transient_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); +BGFX_C_API void bgfx_encoder_set_transient_vertex_buffer_with_layout(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); /** * Set number of vertices for auto generated vertices use in conjuction @@ -2993,6 +3013,17 @@ BGFX_C_API void bgfx_set_dynamic_index_buffer(bgfx_dynamic_index_buffer_handle_t */ BGFX_C_API void bgfx_set_transient_index_buffer(const bgfx_transient_index_buffer_t* _tib, uint32_t _firstIndex, uint32_t _numIndices); +/** + * Set vertex buffer for draw primitive. + * + * @param[in] _stream Vertex stream. + * @param[in] _handle Vertex buffer. + * @param[in] _startVertex First vertex to render. + * @param[in] _numVertices Number of vertices to render. + * + */ +BGFX_C_API void bgfx_set_vertex_buffer(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); + /** * Set vertex buffer for draw primitive. * @@ -3005,7 +3036,18 @@ BGFX_C_API void bgfx_set_transient_index_buffer(const bgfx_transient_index_buffe * of vertex buffer will be used. * */ -BGFX_C_API void bgfx_set_vertex_buffer(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); +BGFX_C_API void bgfx_set_vertex_buffer_with_layout(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + +/** + * Set vertex buffer for draw primitive. + * + * @param[in] _stream Vertex stream. + * @param[in] _handle Dynamic vertex buffer. + * @param[in] _startVertex First vertex to render. + * @param[in] _numVertices Number of vertices to render. + * + */ +BGFX_C_API void bgfx_set_dynamic_vertex_buffer(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); /** * Set vertex buffer for draw primitive. @@ -3019,7 +3061,7 @@ BGFX_C_API void bgfx_set_vertex_buffer(uint8_t _stream, bgfx_vertex_buffer_handl * of vertex buffer will be used. * */ -BGFX_C_API void bgfx_set_dynamic_vertex_buffer(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); +BGFX_C_API void bgfx_set_dynamic_vertex_buffer_with_layout(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); /** * Set vertex buffer for draw primitive. @@ -3032,6 +3074,20 @@ BGFX_C_API void bgfx_set_dynamic_vertex_buffer(uint8_t _stream, bgfx_dynamic_ver */ BGFX_C_API void bgfx_set_transient_vertex_buffer(uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices); +/** + * Set vertex buffer for draw primitive. + * + * @param[in] _stream Vertex stream. + * @param[in] _tvb Transient vertex buffer. + * @param[in] _startVertex First vertex to render. + * @param[in] _numVertices Number of vertices to render. + * @param[in] _layoutHandle Vertex layout for aliasing vertex buffer. If invalid + * handle is used, vertex layout used for creation + * of vertex buffer will be used. + * + */ +BGFX_C_API void bgfx_set_transient_vertex_buffer_with_layout(uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + /** * Set number of vertices for auto generated vertices use in conjuction * with gl_VertexID. @@ -3396,8 +3452,11 @@ typedef enum bgfx_function_id BGFX_FUNCTION_ID_ENCODER_SET_DYNAMIC_INDEX_BUFFER, BGFX_FUNCTION_ID_ENCODER_SET_TRANSIENT_INDEX_BUFFER, BGFX_FUNCTION_ID_ENCODER_SET_VERTEX_BUFFER, + BGFX_FUNCTION_ID_ENCODER_SET_VERTEX_BUFFER_WITH_LAYOUT, BGFX_FUNCTION_ID_ENCODER_SET_DYNAMIC_VERTEX_BUFFER, + BGFX_FUNCTION_ID_ENCODER_SET_DYNAMIC_VERTEX_BUFFER_WITH_LAYOUT, BGFX_FUNCTION_ID_ENCODER_SET_TRANSIENT_VERTEX_BUFFER, + BGFX_FUNCTION_ID_ENCODER_SET_TRANSIENT_VERTEX_BUFFER_WITH_LAYOUT, BGFX_FUNCTION_ID_ENCODER_SET_VERTEX_COUNT, BGFX_FUNCTION_ID_ENCODER_SET_INSTANCE_DATA_BUFFER, BGFX_FUNCTION_ID_ENCODER_SET_INSTANCE_DATA_FROM_VERTEX_BUFFER, @@ -3438,8 +3497,11 @@ typedef enum bgfx_function_id BGFX_FUNCTION_ID_SET_DYNAMIC_INDEX_BUFFER, BGFX_FUNCTION_ID_SET_TRANSIENT_INDEX_BUFFER, BGFX_FUNCTION_ID_SET_VERTEX_BUFFER, + BGFX_FUNCTION_ID_SET_VERTEX_BUFFER_WITH_LAYOUT, BGFX_FUNCTION_ID_SET_DYNAMIC_VERTEX_BUFFER, + BGFX_FUNCTION_ID_SET_DYNAMIC_VERTEX_BUFFER_WITH_LAYOUT, BGFX_FUNCTION_ID_SET_TRANSIENT_VERTEX_BUFFER, + BGFX_FUNCTION_ID_SET_TRANSIENT_VERTEX_BUFFER_WITH_LAYOUT, BGFX_FUNCTION_ID_SET_VERTEX_COUNT, BGFX_FUNCTION_ID_SET_INSTANCE_DATA_BUFFER, BGFX_FUNCTION_ID_SET_INSTANCE_DATA_FROM_VERTEX_BUFFER, @@ -3588,9 +3650,12 @@ struct bgfx_interface_vtbl void (*encoder_set_index_buffer)(bgfx_encoder_t* _this, bgfx_index_buffer_handle_t _handle, uint32_t _firstIndex, uint32_t _numIndices); void (*encoder_set_dynamic_index_buffer)(bgfx_encoder_t* _this, bgfx_dynamic_index_buffer_handle_t _handle, uint32_t _firstIndex, uint32_t _numIndices); void (*encoder_set_transient_index_buffer)(bgfx_encoder_t* _this, const bgfx_transient_index_buffer_t* _tib, uint32_t _firstIndex, uint32_t _numIndices); - void (*encoder_set_vertex_buffer)(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); - void (*encoder_set_dynamic_vertex_buffer)(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); - void (*encoder_set_transient_vertex_buffer)(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void (*encoder_set_vertex_buffer)(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); + void (*encoder_set_vertex_buffer_with_layout)(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void (*encoder_set_dynamic_vertex_buffer)(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); + void (*encoder_set_dynamic_vertex_buffer_with_layout)(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void (*encoder_set_transient_vertex_buffer)(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices); + void (*encoder_set_transient_vertex_buffer_with_layout)(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); void (*encoder_set_vertex_count)(bgfx_encoder_t* _this, uint32_t _numVertices); void (*encoder_set_instance_data_buffer)(bgfx_encoder_t* _this, const bgfx_instance_data_buffer_t* _idb, uint32_t _start, uint32_t _num); void (*encoder_set_instance_data_from_vertex_buffer)(bgfx_encoder_t* _this, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _num); @@ -3630,9 +3695,12 @@ struct bgfx_interface_vtbl void (*set_index_buffer)(bgfx_index_buffer_handle_t _handle, uint32_t _firstIndex, uint32_t _numIndices); void (*set_dynamic_index_buffer)(bgfx_dynamic_index_buffer_handle_t _handle, uint32_t _firstIndex, uint32_t _numIndices); void (*set_transient_index_buffer)(const bgfx_transient_index_buffer_t* _tib, uint32_t _firstIndex, uint32_t _numIndices); - void (*set_vertex_buffer)(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); - void (*set_dynamic_vertex_buffer)(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void (*set_vertex_buffer)(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); + void (*set_vertex_buffer_with_layout)(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); + void (*set_dynamic_vertex_buffer)(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices); + void (*set_dynamic_vertex_buffer_with_layout)(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); void (*set_transient_vertex_buffer)(uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices); + void (*set_transient_vertex_buffer_with_layout)(uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle); void (*set_vertex_count)(uint32_t _numVertices); void (*set_instance_data_buffer)(const bgfx_instance_data_buffer_t* _idb, uint32_t _start, uint32_t _num); void (*set_instance_data_from_vertex_buffer)(bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _num); diff --git a/include/bgfx/defines.h b/include/bgfx/defines.h index 96c48294b..7af964980 100644 --- a/include/bgfx/defines.h +++ b/include/bgfx/defines.h @@ -15,7 +15,7 @@ #ifndef BGFX_DEFINES_H_HEADER_GUARD #define BGFX_DEFINES_H_HEADER_GUARD -#define BGFX_API_VERSION UINT32_C(108) +#define BGFX_API_VERSION UINT32_C(109) /** * Color RGB/alpha/depth write. When it's not specified write will be disabled. diff --git a/scripts/bgfx.idl b/scripts/bgfx.idl index efcb0b04b..6d6694960 100644 --- a/scripts/bgfx.idl +++ b/scripts/bgfx.idl @@ -1,7 +1,7 @@ -- vim: syntax=lua -- bgfx interface -version(108) +version(109) typedef "bool" typedef "char" @@ -2240,7 +2240,15 @@ func.Encoder.setVertexBuffer { cpponly } .handle "VertexBufferHandle" --- Vertex buffer. --- Set vertex buffer for draw primitive. -func.Encoder.setVertexBuffer +func.Encoder.setVertexBuffer { conly } + "void" + .stream "uint8_t" --- Vertex stream. + .handle "VertexBufferHandle" --- Vertex buffer. + .startVertex "uint32_t" --- First vertex to render. + .numVertices "uint32_t" --- Number of vertices to render. + +--- Set vertex buffer for draw primitive. +func.Encoder.setVertexBuffer { cname = "set_vertex_buffer_with_layout" } "void" .stream "uint8_t" --- Vertex stream. .handle "VertexBufferHandle" --- Vertex buffer. @@ -2258,7 +2266,14 @@ func.Encoder.setVertexBuffer { cpponly } .handle "DynamicVertexBufferHandle" --- Dynamic vertex buffer. --- Set vertex buffer for draw primitive. -func.Encoder.setVertexBuffer { cname = "set_dynamic_vertex_buffer" } +func.Encoder.setVertexBuffer { conly, cname = "set_dynamic_vertex_buffer" } + "void" + .stream "uint8_t" --- Vertex stream. + .handle "DynamicVertexBufferHandle" --- Dynamic vertex buffer. + .startVertex "uint32_t" --- First vertex to render. + .numVertices "uint32_t" --- Number of vertices to render. + +func.Encoder.setVertexBuffer { cname = "set_dynamic_vertex_buffer_with_layout" } "void" .stream "uint8_t" --- Vertex stream. .handle "DynamicVertexBufferHandle" --- Dynamic vertex buffer. @@ -2276,7 +2291,15 @@ func.Encoder.setVertexBuffer { cpponly } .tvb "const TransientVertexBuffer*" --- Transient vertex buffer. --- Set vertex buffer for draw primitive. -func.Encoder.setVertexBuffer { cname = "set_transient_vertex_buffer" } +func.Encoder.setVertexBuffer { conly, cname = "set_transient_vertex_buffer" } + "void" + .stream "uint8_t" --- Vertex stream. + .tvb "const TransientVertexBuffer*" --- Transient vertex buffer. + .startVertex "uint32_t" --- First vertex to render. + .numVertices "uint32_t" --- Number of vertices to render. + +--- Set vertex buffer for draw primitive. +func.Encoder.setVertexBuffer { cname = "set_transient_vertex_buffer_with_layout" } "void" .stream "uint8_t" --- Vertex stream. .tvb "const TransientVertexBuffer*" --- Transient vertex buffer. @@ -2770,7 +2793,15 @@ func.setVertexBuffer { cpponly } .handle "VertexBufferHandle" --- Vertex buffer. --- Set vertex buffer for draw primitive. -func.setVertexBuffer +func.setVertexBuffer { conly } + "void" + .stream "uint8_t" --- Vertex stream. + .handle "VertexBufferHandle" --- Vertex buffer. + .startVertex "uint32_t" --- First vertex to render. + .numVertices "uint32_t" --- Number of vertices to render. + +--- Set vertex buffer for draw primitive. +func.setVertexBuffer { cname = "set_vertex_buffer_with_layout" } "void" .stream "uint8_t" --- Vertex stream. .handle "VertexBufferHandle" --- Vertex buffer. @@ -2788,7 +2819,15 @@ func.setVertexBuffer { cpponly } .handle "DynamicVertexBufferHandle" --- Dynamic vertex buffer. --- Set vertex buffer for draw primitive. -func.setVertexBuffer { cname = "set_dynamic_vertex_buffer" } +func.setVertexBuffer { conly, cname = "set_dynamic_vertex_buffer" } + "void" + .stream "uint8_t" --- Vertex stream. + .handle "DynamicVertexBufferHandle" --- Dynamic vertex buffer. + .startVertex "uint32_t" --- First vertex to render. + .numVertices "uint32_t" --- Number of vertices to render. + +--- Set vertex buffer for draw primitive. +func.setVertexBuffer { cname = "set_dynamic_vertex_buffer_with_layout" } "void" .stream "uint8_t" --- Vertex stream. .handle "DynamicVertexBufferHandle" --- Dynamic vertex buffer. @@ -2807,13 +2846,25 @@ func.setVertexBuffer { cpponly } .tvb "const TransientVertexBuffer*" --- Transient vertex buffer. --- Set vertex buffer for draw primitive. -func.setVertexBuffer { cname = "set_transient_vertex_buffer" } +func.setVertexBuffer { conly, cname = "set_transient_vertex_buffer" } "void" .stream "uint8_t" --- Vertex stream. .tvb "const TransientVertexBuffer*" --- Transient vertex buffer. .startVertex "uint32_t" --- First vertex to render. .numVertices "uint32_t" --- Number of vertices to render. +--- Set vertex buffer for draw primitive. +func.setVertexBuffer { cname = "set_transient_vertex_buffer_with_layout" } + "void" + .stream "uint8_t" --- Vertex stream. + .tvb "const TransientVertexBuffer*" --- Transient vertex buffer. + .startVertex "uint32_t" --- First vertex to render. + .numVertices "uint32_t" --- Number of vertices to render. + .layoutHandle "VertexLayoutHandle" --- Vertex layout for aliasing vertex buffer. If invalid + --- handle is used, vertex layout used for creation + --- of vertex buffer will be used. + { default = "BGFX_INVALID_HANDLE" } + --- Set number of vertices for auto generated vertices use in conjuction --- with gl_VertexID. --- diff --git a/src/bgfx.idl.inl b/src/bgfx.idl.inl index a9b358801..b2632f51c 100644 --- a/src/bgfx.idl.inl +++ b/src/bgfx.idl.inl @@ -768,7 +768,14 @@ BGFX_C_API void bgfx_encoder_set_transient_index_buffer(bgfx_encoder_t* _this, c This->setIndexBuffer((const bgfx::TransientIndexBuffer*)_tib, _firstIndex, _numIndices); } -BGFX_C_API void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) +BGFX_C_API void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices) +{ + bgfx::Encoder* This = (bgfx::Encoder*)_this; + union { bgfx_vertex_buffer_handle_t c; bgfx::VertexBufferHandle cpp; } handle = { _handle }; + This->setVertexBuffer(_stream, handle.cpp, _startVertex, _numVertices); +} + +BGFX_C_API void bgfx_encoder_set_vertex_buffer_with_layout(bgfx_encoder_t* _this, uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) { bgfx::Encoder* This = (bgfx::Encoder*)_this; union { bgfx_vertex_buffer_handle_t c; bgfx::VertexBufferHandle cpp; } handle = { _handle }; @@ -776,7 +783,14 @@ BGFX_C_API void bgfx_encoder_set_vertex_buffer(bgfx_encoder_t* _this, uint8_t _s This->setVertexBuffer(_stream, handle.cpp, _startVertex, _numVertices, layoutHandle.cpp); } -BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) +BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices) +{ + bgfx::Encoder* This = (bgfx::Encoder*)_this; + union { bgfx_dynamic_vertex_buffer_handle_t c; bgfx::DynamicVertexBufferHandle cpp; } handle = { _handle }; + This->setVertexBuffer(_stream, handle.cpp, _startVertex, _numVertices); +} + +BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer_with_layout(bgfx_encoder_t* _this, uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) { bgfx::Encoder* This = (bgfx::Encoder*)_this; union { bgfx_dynamic_vertex_buffer_handle_t c; bgfx::DynamicVertexBufferHandle cpp; } handle = { _handle }; @@ -784,7 +798,13 @@ BGFX_C_API void bgfx_encoder_set_dynamic_vertex_buffer(bgfx_encoder_t* _this, ui This->setVertexBuffer(_stream, handle.cpp, _startVertex, _numVertices, layoutHandle.cpp); } -BGFX_C_API void bgfx_encoder_set_transient_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) +BGFX_C_API void bgfx_encoder_set_transient_vertex_buffer(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices) +{ + bgfx::Encoder* This = (bgfx::Encoder*)_this; + This->setVertexBuffer(_stream, (const bgfx::TransientVertexBuffer*)_tvb, _startVertex, _numVertices); +} + +BGFX_C_API void bgfx_encoder_set_transient_vertex_buffer_with_layout(bgfx_encoder_t* _this, uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) { bgfx::Encoder* This = (bgfx::Encoder*)_this; union { bgfx_vertex_layout_handle_t c; bgfx::VertexLayoutHandle cpp; } layoutHandle = { _layoutHandle }; @@ -1034,14 +1054,26 @@ BGFX_C_API void bgfx_set_transient_index_buffer(const bgfx_transient_index_buffe bgfx::setIndexBuffer((const bgfx::TransientIndexBuffer*)_tib, _firstIndex, _numIndices); } -BGFX_C_API void bgfx_set_vertex_buffer(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) +BGFX_C_API void bgfx_set_vertex_buffer(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices) +{ + union { bgfx_vertex_buffer_handle_t c; bgfx::VertexBufferHandle cpp; } handle = { _handle }; + bgfx::setVertexBuffer(_stream, handle.cpp, _startVertex, _numVertices); +} + +BGFX_C_API void bgfx_set_vertex_buffer_with_layout(uint8_t _stream, bgfx_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) { union { bgfx_vertex_buffer_handle_t c; bgfx::VertexBufferHandle cpp; } handle = { _handle }; union { bgfx_vertex_layout_handle_t c; bgfx::VertexLayoutHandle cpp; } layoutHandle = { _layoutHandle }; bgfx::setVertexBuffer(_stream, handle.cpp, _startVertex, _numVertices, layoutHandle.cpp); } -BGFX_C_API void bgfx_set_dynamic_vertex_buffer(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) +BGFX_C_API void bgfx_set_dynamic_vertex_buffer(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices) +{ + union { bgfx_dynamic_vertex_buffer_handle_t c; bgfx::DynamicVertexBufferHandle cpp; } handle = { _handle }; + bgfx::setVertexBuffer(_stream, handle.cpp, _startVertex, _numVertices); +} + +BGFX_C_API void bgfx_set_dynamic_vertex_buffer_with_layout(uint8_t _stream, bgfx_dynamic_vertex_buffer_handle_t _handle, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) { union { bgfx_dynamic_vertex_buffer_handle_t c; bgfx::DynamicVertexBufferHandle cpp; } handle = { _handle }; union { bgfx_vertex_layout_handle_t c; bgfx::VertexLayoutHandle cpp; } layoutHandle = { _layoutHandle }; @@ -1053,6 +1085,12 @@ BGFX_C_API void bgfx_set_transient_vertex_buffer(uint8_t _stream, const bgfx_tra bgfx::setVertexBuffer(_stream, (const bgfx::TransientVertexBuffer*)_tvb, _startVertex, _numVertices); } +BGFX_C_API void bgfx_set_transient_vertex_buffer_with_layout(uint8_t _stream, const bgfx_transient_vertex_buffer_t* _tvb, uint32_t _startVertex, uint32_t _numVertices, bgfx_vertex_layout_handle_t _layoutHandle) +{ + union { bgfx_vertex_layout_handle_t c; bgfx::VertexLayoutHandle cpp; } layoutHandle = { _layoutHandle }; + bgfx::setVertexBuffer(_stream, (const bgfx::TransientVertexBuffer*)_tvb, _startVertex, _numVertices, layoutHandle.cpp); +} + BGFX_C_API void bgfx_set_vertex_count(uint32_t _numVertices) { bgfx::setVertexCount(_numVertices); @@ -1334,8 +1372,11 @@ BGFX_C_API bgfx_interface_vtbl_t* bgfx_get_interface(uint32_t _version) bgfx_encoder_set_dynamic_index_buffer, bgfx_encoder_set_transient_index_buffer, bgfx_encoder_set_vertex_buffer, + bgfx_encoder_set_vertex_buffer_with_layout, bgfx_encoder_set_dynamic_vertex_buffer, + bgfx_encoder_set_dynamic_vertex_buffer_with_layout, bgfx_encoder_set_transient_vertex_buffer, + bgfx_encoder_set_transient_vertex_buffer_with_layout, bgfx_encoder_set_vertex_count, bgfx_encoder_set_instance_data_buffer, bgfx_encoder_set_instance_data_from_vertex_buffer, @@ -1376,8 +1417,11 @@ BGFX_C_API bgfx_interface_vtbl_t* bgfx_get_interface(uint32_t _version) bgfx_set_dynamic_index_buffer, bgfx_set_transient_index_buffer, bgfx_set_vertex_buffer, + bgfx_set_vertex_buffer_with_layout, bgfx_set_dynamic_vertex_buffer, + bgfx_set_dynamic_vertex_buffer_with_layout, bgfx_set_transient_vertex_buffer, + bgfx_set_transient_vertex_buffer_with_layout, bgfx_set_vertex_count, bgfx_set_instance_data_buffer, bgfx_set_instance_data_from_vertex_buffer,