Fixed discard flags.

This commit is contained in:
Бранимир Караџић
2020-04-02 19:04:13 -07:00
parent 83a211efac
commit 06460b8ac2
10 changed files with 210 additions and 163 deletions

View File

@@ -533,37 +533,42 @@ public static partial class bgfx
public enum DiscardFlags : uint
{
/// <summary>
/// Discard nothing
/// Preserve everything.
/// </summary>
None = 0x00000000,
/// <summary>
/// Discard only Index Buffer
/// Discard texture sampler and buffer bindings.
/// </summary>
IndexBuffer = 0x00000001,
Bindings = 0x00000001,
/// <summary>
/// Discard only Vertex Streams
/// Discard index buffer.
/// </summary>
VertexStreams = 0x00000002,
IndexBuffer = 0x00000002,
/// <summary>
/// Discard only texture samplers
/// Discard instance data.
/// </summary>
TextureSamplers = 0x00000004,
InstanceData = 0x00000004,
/// <summary>
/// Discard only Compute shader related state
/// Discard state.
/// </summary>
Compute = 0x00000008,
State = 0x00000008,
/// <summary>
/// Discard only state
/// Discard transform.
/// </summary>
State = 0x00000010,
Transform = 0x00000010,
/// <summary>
/// Discard every rendering states
/// Discard vertex streams.
/// </summary>
VertexStreams = 0x00000020,
/// <summary>
/// Discard all states.
/// </summary>
All = 0x000000ff,
}
@@ -3733,7 +3738,7 @@ public static partial class bgfx
/// <param name="_id">View id.</param>
/// <param name="_program">Program.</param>
/// <param name="_depth">Depth for sorting.</param>
/// <param name="_flags">Which states to discard for next draw. See BGFX_DISCARD_</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_encoder_submit", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void encoder_submit(Encoder* _this, ushort _id, ProgramHandle _program, uint _depth, byte _flags);
@@ -3746,7 +3751,7 @@ public static partial class bgfx
/// <param name="_program">Program.</param>
/// <param name="_occlusionQuery">Occlusion query.</param>
/// <param name="_depth">Depth for sorting.</param>
/// <param name="_flags">Which states to discard for next draw. See BGFX_DISCARD_</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_encoder_submit_occlusion_query", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void encoder_submit_occlusion_query(Encoder* _this, ushort _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint _depth, byte _flags);
@@ -3762,7 +3767,7 @@ public static partial class bgfx
/// <param name="_start">First element in indirect buffer.</param>
/// <param name="_num">Number of dispatches.</param>
/// <param name="_depth">Depth for sorting.</param>
/// <param name="_flags">Which states to discard for next draw. See BGFX_DISCARD_</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_encoder_submit_indirect", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void encoder_submit_indirect(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num, uint _depth, byte _flags);
@@ -3844,9 +3849,10 @@ public static partial class bgfx
/// <param name="_numX">Number of groups X.</param>
/// <param name="_numY">Number of groups Y.</param>
/// <param name="_numZ">Number of groups Z.</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_encoder_dispatch", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void encoder_dispatch(Encoder* _this, ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ);
public static extern unsafe void encoder_dispatch(Encoder* _this, ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ, byte _flags);
/// <summary>
/// Dispatch compute indirect.
@@ -3857,15 +3863,16 @@ public static partial class bgfx
/// <param name="_indirectHandle">Indirect buffer.</param>
/// <param name="_start">First element in indirect buffer.</param>
/// <param name="_num">Number of dispatches.</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_encoder_dispatch_indirect", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void encoder_dispatch_indirect(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num);
public static extern unsafe void encoder_dispatch_indirect(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num, byte _flags);
/// <summary>
/// Discard previously set state for draw or compute call.
/// </summary>
///
/// <param name="_flags">Draw/compute states to discard.</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_encoder_discard", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void encoder_discard(Encoder* _this, byte _flags);
@@ -4359,9 +4366,10 @@ public static partial class bgfx
/// <param name="_numX">Number of groups X.</param>
/// <param name="_numY">Number of groups Y.</param>
/// <param name="_numZ">Number of groups Z.</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_dispatch", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void dispatch(ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ);
public static extern unsafe void dispatch(ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ, byte _flags);
/// <summary>
/// Dispatch compute indirect.
@@ -4372,9 +4380,10 @@ public static partial class bgfx
/// <param name="_indirectHandle">Indirect buffer.</param>
/// <param name="_start">First element in indirect buffer.</param>
/// <param name="_num">Number of dispatches.</param>
/// <param name="_flags">Discard or preserve states. See `BGFX_DISCARD_*`.</param>
///
[DllImport(DllName, EntryPoint="bgfx_dispatch_indirect", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe void dispatch_indirect(ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num);
public static extern unsafe void dispatch_indirect(ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num, byte _flags);
/// <summary>
/// Discard previously set state for draw or compute call.

View File

@@ -1463,7 +1463,7 @@ version(BindBgfx_Static)
* _id = View id.
* _program = Program.
* _depth = Depth for sorting.
* _flags = Which states to discard for next draw. See BGFX_DISCARD_
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_encoder_submit(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _depth, byte _flags);
@@ -1474,7 +1474,7 @@ version(BindBgfx_Static)
* _program = Program.
* _occlusionQuery = Occlusion query.
* _depth = Depth for sorting.
* _flags = Which states to discard for next draw. See BGFX_DISCARD_
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_encoder_submit_occlusion_query(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_occlusion_query_handle_t _occlusionQuery, uint _depth, byte _flags);
@@ -1488,7 +1488,7 @@ version(BindBgfx_Static)
* _start = First element in indirect buffer.
* _num = Number of dispatches.
* _depth = Depth for sorting.
* _flags = Which states to discard for next draw. See BGFX_DISCARD_
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_encoder_submit_indirect(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num, uint _depth, byte _flags);
@@ -1556,8 +1556,9 @@ version(BindBgfx_Static)
* _numX = Number of groups X.
* _numY = Number of groups Y.
* _numZ = Number of groups Z.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_encoder_dispatch(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ);
void bgfx_encoder_dispatch(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ, byte _flags);
/**
* Dispatch compute indirect.
@@ -1567,13 +1568,14 @@ version(BindBgfx_Static)
* _indirectHandle = Indirect buffer.
* _start = First element in indirect buffer.
* _num = Number of dispatches.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_encoder_dispatch_indirect(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num);
void bgfx_encoder_dispatch_indirect(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num, byte _flags);
/**
* Discard previously set state for draw or compute call.
* Params:
* _flags = Draw/compute states to discard.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_encoder_discard(bgfx_encoder_t* _this, byte _flags);
@@ -2015,8 +2017,9 @@ version(BindBgfx_Static)
* _numX = Number of groups X.
* _numY = Number of groups Y.
* _numZ = Number of groups Z.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_dispatch(bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ);
void bgfx_dispatch(bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ, byte _flags);
/**
* Dispatch compute indirect.
@@ -2026,8 +2029,9 @@ version(BindBgfx_Static)
* _indirectHandle = Indirect buffer.
* _start = First element in indirect buffer.
* _num = Number of dispatches.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
void bgfx_dispatch_indirect(bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num);
void bgfx_dispatch_indirect(bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num, byte _flags);
/**
* Discard previously set state for draw or compute call.
@@ -3648,7 +3652,7 @@ else
* _id = View id.
* _program = Program.
* _depth = Depth for sorting.
* _flags = Which states to discard for next draw. See BGFX_DISCARD_
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_encoder_submit = void function(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _depth, byte _flags);
da_bgfx_encoder_submit bgfx_encoder_submit;
@@ -3660,7 +3664,7 @@ else
* _program = Program.
* _occlusionQuery = Occlusion query.
* _depth = Depth for sorting.
* _flags = Which states to discard for next draw. See BGFX_DISCARD_
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_encoder_submit_occlusion_query = void function(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_occlusion_query_handle_t _occlusionQuery, uint _depth, byte _flags);
da_bgfx_encoder_submit_occlusion_query bgfx_encoder_submit_occlusion_query;
@@ -3675,7 +3679,7 @@ else
* _start = First element in indirect buffer.
* _num = Number of dispatches.
* _depth = Depth for sorting.
* _flags = Which states to discard for next draw. See BGFX_DISCARD_
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_encoder_submit_indirect = void function(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num, uint _depth, byte _flags);
da_bgfx_encoder_submit_indirect bgfx_encoder_submit_indirect;
@@ -3750,8 +3754,9 @@ else
* _numX = Number of groups X.
* _numY = Number of groups Y.
* _numZ = Number of groups Z.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_encoder_dispatch = void function(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ);
alias da_bgfx_encoder_dispatch = void function(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ, byte _flags);
da_bgfx_encoder_dispatch bgfx_encoder_dispatch;
/**
@@ -3762,14 +3767,15 @@ else
* _indirectHandle = Indirect buffer.
* _start = First element in indirect buffer.
* _num = Number of dispatches.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_encoder_dispatch_indirect = void function(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num);
alias da_bgfx_encoder_dispatch_indirect = void function(bgfx_encoder_t* _this, bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num, byte _flags);
da_bgfx_encoder_dispatch_indirect bgfx_encoder_dispatch_indirect;
/**
* Discard previously set state for draw or compute call.
* Params:
* _flags = Draw/compute states to discard.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_encoder_discard = void function(bgfx_encoder_t* _this, byte _flags);
da_bgfx_encoder_discard bgfx_encoder_discard;
@@ -4251,8 +4257,9 @@ else
* _numX = Number of groups X.
* _numY = Number of groups Y.
* _numZ = Number of groups Z.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_dispatch = void function(bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ);
alias da_bgfx_dispatch = void function(bgfx_view_id_t _id, bgfx_program_handle_t _program, uint _numX, uint _numY, uint _numZ, byte _flags);
da_bgfx_dispatch bgfx_dispatch;
/**
@@ -4263,8 +4270,9 @@ else
* _indirectHandle = Indirect buffer.
* _start = First element in indirect buffer.
* _num = Number of dispatches.
* _flags = Discard or preserve states. See `BGFX_DISCARD_*`.
*/
alias da_bgfx_dispatch_indirect = void function(bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num);
alias da_bgfx_dispatch_indirect = void function(bgfx_view_id_t _id, bgfx_program_handle_t _program, bgfx_indirect_buffer_handle_t _indirectHandle, ushort _start, ushort _num, byte _flags);
da_bgfx_dispatch_indirect bgfx_dispatch_indirect;
/**

View File

@@ -10,7 +10,7 @@ public import core.stdc.stdarg : va_list;
extern(C) @nogc nothrow:
enum uint BGFX_API_VERSION = 104;
enum uint BGFX_API_VERSION = 105;
alias bgfx_view_id_t = ushort;
@@ -193,13 +193,14 @@ enum ushort BGFX_CLEAR_DISCARD_MASK = 0x1ff8;
* Rendering state discard. When state is preserved in submit, rendering states can be discarded
* on a finer grain.
*/
enum ubyte BGFX_DISCARD_NONE = 0x00; /// Discard nothing
enum ubyte BGFX_DISCARD_INDEX_BUFFER = 0x01; /// Discard only Index Buffer
enum ubyte BGFX_DISCARD_VERTEX_STREAMS = 0x02; /// Discard only Vertex Streams
enum ubyte BGFX_DISCARD_TEXTURE_SAMPLERS = 0x04; /// Discard only texture samplers
enum ubyte BGFX_DISCARD_COMPUTE = 0x08; /// Discard only Compute shader related state
enum ubyte BGFX_DISCARD_STATE = 0x10; /// Discard only state
enum ubyte BGFX_DISCARD_ALL = 0xff; /// Discard every rendering states
enum ubyte BGFX_DISCARD_NONE = 0x00; /// Preserve everything.
enum ubyte BGFX_DISCARD_BINDINGS = 0x01; /// Discard texture sampler and buffer bindings.
enum ubyte BGFX_DISCARD_INDEX_BUFFER = 0x02; /// Discard index buffer.
enum ubyte BGFX_DISCARD_INSTANCE_DATA = 0x04; /// Discard instance data.
enum ubyte BGFX_DISCARD_STATE = 0x08; /// Discard state.
enum ubyte BGFX_DISCARD_TRANSFORM = 0x10; /// Discard transform.
enum ubyte BGFX_DISCARD_VERTEX_STREAMS = 0x20; /// Discard vertex streams.
enum ubyte BGFX_DISCARD_ALL = 0xff; /// Discard all states.
enum uint BGFX_DEBUG_NONE = 0x00000000; /// No debug.
enum uint BGFX_DEBUG_WIREFRAME = 0x00000001; /// Enable wireframe for all primitives.