Closed bkaradzic closed 5 years ago
This is generated with latest version of IDL:
using System;
using System.Runtime.InteropServices;
using System.Security;
internal struct bgfx
{
[Flags]
public enum StateFlags : ulong
{
WriteR = 0x0000000000000001,
WriteG = 0x0000000000000002,
WriteB = 0x0000000000000004,
WriteA = 0x0000000000000008,
WriteZ = 0x0000004000000000,
WriteRgb = 0x0000000000000007,
WriteMask = 0x000000400000000f,
DepthTestLess = 0x0000000000000010,
DepthTestLequal = 0x0000000000000020,
DepthTestEqual = 0x0000000000000030,
DepthTestGequal = 0x0000000000000040,
DepthTestGreater = 0x0000000000000050,
DepthTestNotequal = 0x0000000000000060,
DepthTestNever = 0x0000000000000070,
DepthTestAlways = 0x0000000000000080,
DepthTestShift = 4,
DepthTestMask = 0x00000000000000f0,
BlendZero = 0x0000000000001000,
BlendOne = 0x0000000000002000,
BlendSrcColor = 0x0000000000003000,
BlendInvSrcColor = 0x0000000000004000,
BlendSrcAlpha = 0x0000000000005000,
BlendInvSrcAlpha = 0x0000000000006000,
BlendDstAlpha = 0x0000000000007000,
BlendInvDstAlpha = 0x0000000000008000,
BlendDstColor = 0x0000000000009000,
BlendInvDstColor = 0x000000000000a000,
BlendSrcAlphaSat = 0x000000000000b000,
BlendFactor = 0x000000000000c000,
BlendInvFactor = 0x000000000000d000,
BlendShift = 12,
BlendMask = 0x000000000ffff000,
BlendEquationAdd = 0x0000000000000000,
BlendEquationSub = 0x0000000010000000,
BlendEquationRevsub = 0x0000000020000000,
BlendEquationMin = 0x0000000030000000,
BlendEquationMax = 0x0000000040000000,
BlendEquationShift = 28,
BlendEquationMask = 0x00000003f0000000,
CullCw = 0x0000001000000000,
CullCcw = 0x0000002000000000,
CullShift = 36,
CullMask = 0x0000003000000000,
AlphaRefShift = 40,
AlphaRefMask = 0x0000ff0000000000,
PtTristrip = 0x0001000000000000,
PtLines = 0x0002000000000000,
PtLinestrip = 0x0003000000000000,
PtPoints = 0x0004000000000000,
PtShift = 48,
PtMask = 0x0007000000000000,
PointSizeShift = 52,
PointSizeMask = 0x00f0000000000000,
Msaa = 0x0100000000000000,
Lineaa = 0x0200000000000000,
ConservativeRaster = 0x0400000000000000,
None = 0x0000000000000000,
BlendIndependent = 0x0000000400000000,
BlendAlphaToCoverage = 0x0000000800000000,
Default = 0x010000500000001f,
Mask = 0xffffffffffffffff,
ReservedShift = 61,
ReservedMask = 0xe000000000000000,
}
[Flags]
public enum StencilFlags : uint
{
FuncRefShift = 0,
FuncRefMask = 0x000000ff,
FuncRmaskShift = 8,
FuncRmaskMask = 0x0000ff00,
None = 0x00000000,
Mask = 0xffffffff,
Default = 0x00000000,
TestLess = 0x00010000,
TestLequal = 0x00020000,
TestEqual = 0x00030000,
TestGequal = 0x00040000,
TestGreater = 0x00050000,
TestNotequal = 0x00060000,
TestNever = 0x00070000,
TestAlways = 0x00080000,
TestShift = 16,
TestMask = 0x000f0000,
OpFailSZero = 0x00000000,
OpFailSKeep = 0x00100000,
OpFailSReplace = 0x00200000,
OpFailSIncr = 0x00300000,
OpFailSIncrsat = 0x00400000,
OpFailSDecr = 0x00500000,
OpFailSDecrsat = 0x00600000,
OpFailSInvert = 0x00700000,
OpFailSShift = 20,
OpFailSMask = 0x00f00000,
OpFailZZero = 0x00000000,
OpFailZKeep = 0x01000000,
OpFailZReplace = 0x02000000,
OpFailZIncr = 0x03000000,
OpFailZIncrsat = 0x04000000,
OpFailZDecr = 0x05000000,
OpFailZDecrsat = 0x06000000,
OpFailZInvert = 0x07000000,
OpFailZShift = 24,
OpFailZMask = 0x0f000000,
OpPassZZero = 0x00000000,
OpPassZKeep = 0x10000000,
OpPassZReplace = 0x20000000,
OpPassZIncr = 0x30000000,
OpPassZIncrsat = 0x40000000,
OpPassZDecr = 0x50000000,
OpPassZDecrsat = 0x60000000,
OpPassZInvert = 0x70000000,
OpPassZShift = 28,
OpPassZMask = 0xf0000000,
}
[Flags]
public enum ClearFlags : ushort
{
None = 0x0000,
Color = 0x0001,
Depth = 0x0002,
Stencil = 0x0004,
DiscardColor0 = 0x0008,
DiscardColor1 = 0x0010,
DiscardColor2 = 0x0020,
DiscardColor3 = 0x0040,
DiscardColor4 = 0x0080,
DiscardColor5 = 0x0100,
DiscardColor6 = 0x0200,
DiscardColor7 = 0x0400,
DiscardDepth = 0x0800,
DiscardStencil = 0x1000,
DiscardColorMask = 0x07f8,
DiscardMask = 0x1ff8,
}
[Flags]
public enum DebugFlags : uint
{
None = 0x00000000,
Wireframe = 0x00000001,
Ifh = 0x00000002,
Stats = 0x00000004,
Text = 0x00000008,
Profiler = 0x00000010,
}
[Flags]
public enum BufferFlags : ushort
{
ComputeFormat8x1 = 0x0001,
ComputeFormat8x2 = 0x0002,
ComputeFormat8x4 = 0x0003,
ComputeFormat16x1 = 0x0004,
ComputeFormat16x2 = 0x0005,
ComputeFormat16x4 = 0x0006,
ComputeFormat32x1 = 0x0007,
ComputeFormat32x2 = 0x0008,
ComputeFormat32x4 = 0x0009,
ComputeFormatShift = 0,
ComputeFormatMask = 0x000f,
ComputeTypeInt = 0x0010,
ComputeTypeUint = 0x0020,
ComputeTypeFloat = 0x0030,
ComputeTypeShift = 4,
ComputeTypeMask = 0x0030,
None = 0x0000,
ComputeRead = 0x0100,
ComputeWrite = 0x0200,
DrawIndirect = 0x0400,
AllowResize = 0x0800,
Index32 = 0x1000,
ComputeReadWrite = 0x0300,
}
[Flags]
public enum TextureFlags : ulong
{
None = 0x0000000000000000,
MsaaSample = 0x0000000800000000,
Rt = 0x0000001000000000,
ComputeWrite = 0x0000100000000000,
Srgb = 0x0000200000000000,
BlitDst = 0x0000400000000000,
ReadBack = 0x0000800000000000,
RtMsaaX2 = 0x0000002000000000,
RtMsaaX4 = 0x0000003000000000,
RtMsaaX8 = 0x0000004000000000,
RtMsaaX16 = 0x0000005000000000,
RtMsaaShift = 36,
RtMsaaMask = 0x0000007000000000,
RtWriteOnly = 0x0000008000000000,
RtShift = 36,
RtMask = 0x000000f000000000,
}
[Flags]
public enum SamplerFlags : uint
{
UMirror = 0x00000001,
UClamp = 0x00000002,
UBorder = 0x00000003,
UShift = 0,
UMask = 0x00000003,
VMirror = 0x00000004,
VClamp = 0x00000008,
VBorder = 0x0000000c,
VShift = 2,
VMask = 0x0000000c,
WMirror = 0x00000010,
WClamp = 0x00000020,
WBorder = 0x00000030,
WShift = 4,
WMask = 0x00000030,
MinPoint = 0x00000040,
MinAnisotropic = 0x00000080,
MinShift = 6,
MinMask = 0x000000c0,
MagPoint = 0x00000100,
MagAnisotropic = 0x00000200,
MagShift = 8,
MagMask = 0x00000300,
MipPoint = 0x00000400,
MipShift = 10,
MipMask = 0x00000400,
CompareLess = 0x00010000,
CompareLequal = 0x00020000,
CompareEqual = 0x00030000,
CompareGequal = 0x00040000,
CompareGreater = 0x00050000,
CompareNotequal = 0x00060000,
CompareNever = 0x00070000,
CompareAlways = 0x00080000,
CompareShift = 16,
CompareMask = 0x000f0000,
BorderColorShift = 24,
BorderColorMask = 0x0f000000,
ReservedShift = 28,
ReservedMask = 0xf0000000,
None = 0x00000000,
SampleStencil = 0x00100000,
Point = 0x00000540,
UvwMirror = 0x00000015,
UvwClamp = 0x0000002a,
UvwBorder = 0x0000003f,
BitsMask = 0x000f07ff,
}
[Flags]
public enum ResetFlags : uint
{
MsaaX2 = 0x00000010,
MsaaX4 = 0x00000020,
MsaaX8 = 0x00000030,
MsaaX16 = 0x00000040,
MsaaShift = 4,
MsaaMask = 0x00000070,
None = 0x00000000,
Fullscreen = 0x00000001,
Vsync = 0x00000080,
Maxanisotropy = 0x00000100,
Capture = 0x00000200,
FlushAfterRender = 0x00002000,
FlipAfterRender = 0x00004000,
SrgbBackbuffer = 0x00008000,
Hdr10 = 0x00010000,
Hidpi = 0x00020000,
DepthClamp = 0x00040000,
Suspend = 0x00080000,
FullscreenShift = 0,
FullscreenMask = 0x00000001,
ReservedShift = 31,
ReservedMask = 0x80000000,
}
[Flags]
public enum CapsFlags : ulong
{
AlphaToCoverage = 0x0000000000000001,
BlendIndependent = 0x0000000000000002,
Compute = 0x0000000000000004,
ConservativeRaster = 0x0000000000000008,
DrawIndirect = 0x0000000000000010,
FragmentDepth = 0x0000000000000020,
FragmentOrdering = 0x0000000000000040,
FramebufferRw = 0x0000000000000080,
GraphicsDebugger = 0x0000000000000100,
Reserved = 0x0000000000000200,
Hdr10 = 0x0000000000000400,
Hidpi = 0x0000000000000800,
Index32 = 0x0000000000001000,
Instancing = 0x0000000000002000,
OcclusionQuery = 0x0000000000004000,
RendererMultithreaded = 0x0000000000008000,
SwapChain = 0x0000000000010000,
Texture2dArray = 0x0000000000020000,
Texture3d = 0x0000000000040000,
TextureBlit = 0x0000000000080000,
TextureCompareReserved = 0x0000000000100000,
TextureCompareLequal = 0x0000000000200000,
TextureCubeArray = 0x0000000000400000,
TextureDirectAccess = 0x0000000000800000,
TextureReadBack = 0x0000000001000000,
VertexAttribHalf = 0x0000000002000000,
VertexAttribUint10 = 0x0000000004000000,
VertexId = 0x0000000008000000,
TextureCompareAll = 0x0000000000300000,
}
[Flags]
public enum CapsFormatFlags : ushort
{
TextureNone = 0x0000,
Texture2d = 0x0001,
Texture2dSrgb = 0x0002,
Texture2dEmulated = 0x0004,
Texture3d = 0x0008,
Texture3dSrgb = 0x0010,
Texture3dEmulated = 0x0020,
TextureCube = 0x0040,
TextureCubeSrgb = 0x0080,
TextureCubeEmulated = 0x0100,
TextureVertex = 0x0200,
TextureImage = 0x0400,
TextureFramebuffer = 0x0800,
TextureFramebufferMsaa = 0x1000,
TextureMsaa = 0x2000,
TextureMipAutogen = 0x4000,
}
[Flags]
public enum ResolveFlags : uint
{
None = 0x00000000,
AutoGenMips = 0x00000001,
}
[Flags]
public enum PciIdFlags : ushort
{
None = 0x0000,
SoftwareRasterizer = 0x0001,
Amd = 0x1002,
Intel = 0x8086,
Nvidia = 0x10de,
}
[Flags]
public enum CubeMapFlags : uint
{
PositiveX = 0x00000000,
NegativeX = 0x00000001,
PositiveY = 0x00000002,
NegativeY = 0x00000003,
PositiveZ = 0x00000004,
NegativeZ = 0x00000005,
}
public enum Fatal
{
DebugCheck,
InvalidShader,
UnableToInitialize,
UnableToCreateTexture,
DeviceLost,
}
public enum RendererType
{
Noop,
Direct3D9,
Direct3D11,
Direct3D12,
Gnm,
Metal,
Nvn,
OpenGLES,
OpenGL,
Vulkan,
}
public enum Access
{
Read,
Write,
ReadWrite,
}
public enum Attrib
{
Position,
Normal,
Tangent,
Bitangent,
Color0,
Color1,
Color2,
Color3,
Indices,
Weight,
TexCoord0,
TexCoord1,
TexCoord2,
TexCoord3,
TexCoord4,
TexCoord5,
TexCoord6,
TexCoord7,
}
public enum AttribType
{
Uint8,
Uint10,
Int16,
Half,
Float,
}
public enum TextureFormat
{
BC1,
BC2,
BC3,
BC4,
BC5,
BC6H,
BC7,
ETC1,
ETC2,
ETC2A,
ETC2A1,
PTC12,
PTC14,
PTC12A,
PTC14A,
PTC22,
PTC24,
ATC,
ATCE,
ATCI,
ASTC4x4,
ASTC5x5,
ASTC6x6,
ASTC8x5,
ASTC8x6,
ASTC10x5,
Unknown,
R1,
A8,
R8,
R8I,
R8U,
R8S,
R16,
R16I,
R16U,
R16F,
R16S,
R32I,
R32U,
R32F,
RG8,
RG8I,
RG8U,
RG8S,
RG16,
RG16I,
RG16U,
RG16F,
RG16S,
RG32I,
RG32U,
RG32F,
RGB8,
RGB8I,
RGB8U,
RGB8S,
RGB9E5F,
BGRA8,
RGBA8,
RGBA8I,
RGBA8U,
RGBA8S,
RGBA16,
RGBA16I,
RGBA16U,
RGBA16F,
RGBA16S,
RGBA32I,
RGBA32U,
RGBA32F,
R5G6B5,
RGBA4,
RGB5A1,
RGB10A2,
RG11B10F,
UnknownDepth,
D16,
D24,
D24S8,
D32,
D16F,
D24F,
D32F,
D0S8,
}
public enum UniformType
{
Sampler,
End,
Vec4,
Mat3,
Mat4,
}
public enum BackbufferRatio
{
Equal,
Half,
Quarter,
Eighth,
Sixteenth,
Double,
}
public enum OcclusionQueryResult
{
Invisible,
Visible,
NoResult,
}
public enum Topology
{
TriList,
TriStrip,
LineList,
LineStrip,
PointList,
}
public enum TopologyConvert
{
TriListFlipWinding,
TriStripFlipWinding,
TriListToLineList,
TriStripToTriList,
LineStripToLineList,
}
public enum TopologySort
{
DirectionFrontToBackMin,
DirectionFrontToBackAvg,
DirectionFrontToBackMax,
DirectionBackToFrontMin,
DirectionBackToFrontAvg,
DirectionBackToFrontMax,
DistanceFrontToBackMin,
DistanceFrontToBackAvg,
DistanceFrontToBackMax,
DistanceBackToFrontMin,
DistanceBackToFrontAvg,
DistanceBackToFrontMax,
}
public enum ViewMode
{
Default,
Sequential,
DepthAscending,
DepthDescending,
}
public enum RenderFrame
{
NoContext,
Render,
Timeout,
Exiting,
}
public unsafe struct CapsGPU
{
public ushort vendorId;
public ushort deviceId;
}
public unsafe struct CapsLimits
{
public uint maxDrawCalls;
public uint maxBlits;
public uint maxTextureSize;
public uint maxTextureLayers;
public uint maxViews;
public uint maxFrameBuffers;
public uint maxFBAttachments;
public uint maxPrograms;
public uint maxShaders;
public uint maxTextures;
public uint maxTextureSamplers;
public uint maxComputeBindings;
public uint maxVertexDecls;
public uint maxVertexStreams;
public uint maxIndexBuffers;
public uint maxVertexBuffers;
public uint maxDynamicIndexBuffers;
public uint maxDynamicVertexBuffers;
public uint maxUniforms;
public uint maxOcclusionQueries;
public uint maxEncoders;
public uint transientVbSize;
public uint transientIbSize;
}
public unsafe struct Caps
{
public RendererType rendererType;
public ulong supported;
public ushort vendorId;
public ushort deviceId;
public bool homogeneousDepth;
public bool originBottomLeft;
public byte numGPUs;
public CapsGPU gpu;
public CapsLimits limits;
public ushort formats;
}
public unsafe struct InternalData
{
public Caps* caps;
public void* context;
}
public unsafe struct PlatformData
{
public void* ndt;
public void* nwh;
public void* context;
public void* backBuffer;
public void* backBufferDS;
}
public unsafe struct Resolution
{
public TextureFormat format;
public uint width;
public uint height;
public uint reset;
public byte numBackBuffers;
public byte maxFrameLatency;
}
public unsafe struct InitLimits
{
public ushort maxEncoders;
public uint transientVbSize;
public uint transientIbSize;
}
public unsafe struct Init
{
public RendererType type;
public ushort vendorId;
public ushort deviceId;
public bool debug;
public bool profile;
public PlatformData platformData;
public Resolution resolution;
public InitLimits limits;
public IntPtr callback;
public IntPtr allocator;
}
public unsafe struct Memory
{
public byte* data;
public uint size;
}
public unsafe struct TransientIndexBuffer
{
public byte* data;
public uint size;
public uint startIndex;
public IndexBufferHandle handle;
}
public unsafe struct TransientVertexBuffer
{
public byte* data;
public uint size;
public uint startVertex;
public ushort stride;
public VertexBufferHandle handle;
public VertexDeclHandle decl;
}
public unsafe struct InstanceDataBuffer
{
public byte* data;
public uint size;
public uint offset;
public uint num;
public ushort stride;
public VertexBufferHandle handle;
}
public unsafe struct TextureInfo
{
public TextureFormat format;
public uint storageSize;
public ushort width;
public ushort height;
public ushort depth;
public ushort numLayers;
public byte numMips;
public byte bitsPerPixel;
public bool cubeMap;
}
public unsafe struct UniformInfo
{
public char name;
public UniformType type;
public ushort num;
}
public unsafe struct Attachment
{
public Access access;
public TextureHandle handle;
public ushort mip;
public ushort layer;
public byte resolve;
}
public unsafe struct Transform
{
public float* data;
public ushort num;
}
public unsafe struct ViewStats
{
public char name;
public ushort view;
public long cpuTimeElapsed;
public long gpuTimeElapsed;
}
public unsafe struct EncoderStats
{
public long cpuTimeBegin;
public long cpuTimeEnd;
}
public unsafe struct Stats
{
public long cpuTimeFrame;
public long cpuTimeBegin;
public long cpuTimeEnd;
public long cpuTimerFreq;
public long gpuTimeBegin;
public long gpuTimeEnd;
public long gpuTimerFreq;
public long waitRender;
public long waitSubmit;
public uint numDraw;
public uint numCompute;
public uint numBlit;
public uint maxGpuLatency;
public ushort numDynamicIndexBuffers;
public ushort numDynamicVertexBuffers;
public ushort numFrameBuffers;
public ushort numIndexBuffers;
public ushort numOcclusionQueries;
public ushort numPrograms;
public ushort numShaders;
public ushort numTextures;
public ushort numUniforms;
public ushort numVertexBuffers;
public ushort numVertexDecls;
public long textureMemoryUsed;
public long rtMemoryUsed;
public int transientVbUsed;
public int transientIbUsed;
public uint numPrims;
public long gpuMemoryMax;
public long gpuMemoryUsed;
public ushort width;
public ushort height;
public ushort textWidth;
public ushort textHeight;
public ushort numViews;
public ViewStats* viewStats;
public byte numEncoders;
public EncoderStats* encoderStats;
}
public unsafe struct VertexDecl
{
public uint hash;
public ushort stride;
public ushort offset;
public ushort attributes;
}
public unsafe struct Encoder
{
}
public struct DynamicIndexBufferHandle{ public ushort idx; }
public struct DynamicVertexBufferHandle{ public ushort idx; }
public struct FrameBufferHandle{ public ushort idx; }
public struct IndexBufferHandle{ public ushort idx; }
public struct IndirectBufferHandle{ public ushort idx; }
public struct OcclusionQueryHandle{ public ushort idx; }
public struct ProgramHandle{ public ushort idx; }
public struct ShaderHandle{ public ushort idx; }
public struct TextureHandle{ public ushort idx; }
public struct UniformHandle{ public ushort idx; }
public struct VertexBufferHandle{ public ushort idx; }
public struct VertexDeclHandle{ public ushort idx; }
[DllImport(DllName, EntryPoint="bgfx_attachment_init", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void attachment_init(Attachment* _this, TextureHandle _handle, Access _access, ushort _layer, ushort _mip, byte _resolve);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_begin", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe VertexDecl* vertex_decl_begin(VertexDecl* _this, RendererType _rendererType);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_add", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe VertexDecl* vertex_decl_add(VertexDecl* _this, Attrib _attrib, byte _num, AttribType _type, bool _normalized, bool _asInt);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_decode", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void vertex_decl_decode(VertexDecl* _this, Attrib _attrib, byte * _num, AttribType* _type, bool* _normalized, bool* _asInt);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_has", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
internal static extern unsafe bool vertex_decl_has(VertexDecl* _this, Attrib _attrib);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_skip", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe VertexDecl* vertex_decl_skip(VertexDecl* _this, byte _num);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_end", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void vertex_decl_end(VertexDecl* _this);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_get_offset", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ushort vertex_decl_get_offset(VertexDecl* _this, Attrib _attrib);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_get_stride", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ushort vertex_decl_get_stride(VertexDecl* _this);
[DllImport(DllName, EntryPoint="bgfx_vertex_decl_get_size", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint vertex_decl_get_size(VertexDecl* _this, uint _num);
[DllImport(DllName, EntryPoint="bgfx_vertex_pack", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void vertex_pack(float _input, bool _inputNormalized, Attrib _attr, VertexDecl* _decl, void* _data, uint _index);
[DllImport(DllName, EntryPoint="bgfx_vertex_unpack", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void vertex_unpack(float _output, Attrib _attr, VertexDecl* _decl, void* _data, uint _index);
[DllImport(DllName, EntryPoint="bgfx_vertex_convert", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void vertex_convert(VertexDecl* _dstDecl, void* _dstData, VertexDecl* _srcDecl, void* _srcData, uint _num);
[DllImport(DllName, EntryPoint="bgfx_weld_vertices", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ushort weld_vertices(ushort* _output, VertexDecl* _decl, void* _data, ushort _num, float _epsilon);
[DllImport(DllName, EntryPoint="bgfx_topology_convert", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint topology_convert(TopologyConvert _conversion, void* _dst, uint _dstSize, void* _indices, uint _numIndices, bool _index32);
[DllImport(DllName, EntryPoint="bgfx_topology_sort_tri_list", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void topology_sort_tri_list(TopologySort _sort, void* _dst, uint _dstSize, float _dir, float _pos, void* _vertices, uint _stride, void* _indices, uint _numIndices, bool _index32);
[DllImport(DllName, EntryPoint="bgfx_get_supported_renderers", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe byte get_supported_renderers(byte _max, RendererType* _enum);
[DllImport(DllName, EntryPoint="bgfx_get_renderer_name", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.LPStr)]
internal static extern unsafe string get_renderer_name(RendererType _type);
[DllImport(DllName, EntryPoint="bgfx_init_ctor", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void init_ctor(Init* _init);
[DllImport(DllName, EntryPoint="bgfx_init", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
internal static extern unsafe bool init(Init* _init);
[DllImport(DllName, EntryPoint="bgfx_shutdown", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void shutdown();
[DllImport(DllName, EntryPoint="bgfx_reset", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void reset(uint _width, uint _height, uint _flags, TextureFormat _format);
[DllImport(DllName, EntryPoint="bgfx_frame", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint frame(bool _capture);
[DllImport(DllName, EntryPoint="bgfx_get_renderer_type", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe RendererType get_renderer_type();
[DllImport(DllName, EntryPoint="bgfx_get_caps", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe Caps* get_caps();
[DllImport(DllName, EntryPoint="bgfx_get_stats", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe Stats* get_stats();
[DllImport(DllName, EntryPoint="bgfx_alloc", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe Memory* alloc(uint _size);
[DllImport(DllName, EntryPoint="bgfx_copy", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe Memory* copy(void* _data, uint _size);
[DllImport(DllName, EntryPoint="bgfx_make_ref", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe Memory* make_ref(void* _data, uint _size);
[DllImport(DllName, EntryPoint="bgfx_make_ref_release", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe Memory* make_ref_release(void* _data, uint _size, IntPtr _releaseFn, void* _userData);
[DllImport(DllName, EntryPoint="bgfx_set_debug", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_debug(uint _debug);
[DllImport(DllName, EntryPoint="bgfx_dbg_text_clear", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void dbg_text_clear(byte _attr, bool _small);
[DllImport(DllName, EntryPoint="bgfx_dbg_text_printf", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void dbg_text_printf(ushort _x, ushort _y, byte _attr, [MarshalAs(UnmanagedType.LPStr)] string _format, [MarshalAs(UnmanagedType.LPStr)] string args );
[DllImport(DllName, EntryPoint="bgfx_dbg_text_vprintf", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void dbg_text_vprintf(ushort _x, ushort _y, byte _attr, [MarshalAs(UnmanagedType.LPStr)] string _format, IntPtr _argList);
[DllImport(DllName, EntryPoint="bgfx_dbg_text_image", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void dbg_text_image(ushort _x, ushort _y, ushort _width, ushort _height, void* _data, ushort _pitch);
[DllImport(DllName, EntryPoint="bgfx_create_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe IndexBufferHandle create_index_buffer(Memory* _mem, ushort _flags);
[DllImport(DllName, EntryPoint="bgfx_set_index_buffer_name", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_index_buffer_name(IndexBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len);
[DllImport(DllName, EntryPoint="bgfx_destroy_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_index_buffer(IndexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_vertex_decl", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe VertexDeclHandle create_vertex_decl(VertexDecl* _decl);
[DllImport(DllName, EntryPoint="bgfx_destroy_vertex_decl", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_vertex_decl(VertexDeclHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe VertexBufferHandle create_vertex_buffer(Memory* _mem, VertexDecl* _decl, ushort _flags);
[DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer_name", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_vertex_buffer_name(VertexBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len);
[DllImport(DllName, EntryPoint="bgfx_destroy_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_vertex_buffer(VertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe DynamicIndexBufferHandle create_dynamic_index_buffer(uint _num, ushort _flags);
[DllImport(DllName, EntryPoint="bgfx_create_dynamic_index_buffer_mem", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe DynamicIndexBufferHandle create_dynamic_index_buffer_mem(Memory* _mem, ushort _flags);
[DllImport(DllName, EntryPoint="bgfx_update_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void update_dynamic_index_buffer(DynamicIndexBufferHandle _handle, uint _startIndex, Memory* _mem);
[DllImport(DllName, EntryPoint="bgfx_destroy_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_dynamic_index_buffer(DynamicIndexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe DynamicVertexBufferHandle create_dynamic_vertex_buffer(uint _num, VertexDecl* _decl, ushort _flags);
[DllImport(DllName, EntryPoint="bgfx_create_dynamic_vertex_buffer_mem", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe DynamicVertexBufferHandle create_dynamic_vertex_buffer_mem(Memory* _mem, VertexDecl* _decl, ushort _flags);
[DllImport(DllName, EntryPoint="bgfx_update_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void update_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle, uint _startVertex, Memory* _mem);
[DllImport(DllName, EntryPoint="bgfx_destroy_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_get_avail_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint get_avail_transient_index_buffer(uint _num);
[DllImport(DllName, EntryPoint="bgfx_get_avail_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint get_avail_transient_vertex_buffer(uint _num, VertexDecl* _decl);
[DllImport(DllName, EntryPoint="bgfx_get_avail_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint get_avail_instance_data_buffer(uint _num, ushort _stride);
[DllImport(DllName, EntryPoint="bgfx_alloc_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void alloc_transient_index_buffer(TransientIndexBuffer* _tib, uint _num);
[DllImport(DllName, EntryPoint="bgfx_alloc_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void alloc_transient_vertex_buffer(TransientVertexBuffer* _tvb, uint _num, VertexDecl* _decl);
[DllImport(DllName, EntryPoint="bgfx_alloc_transient_buffers", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
internal static extern unsafe bool alloc_transient_buffers(TransientVertexBuffer* _tvb, VertexDecl* _decl, uint _numVertices, TransientIndexBuffer* _tib, uint _numIndices);
[DllImport(DllName, EntryPoint="bgfx_alloc_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void alloc_instance_data_buffer(InstanceDataBuffer* _idb, uint _num, ushort _stride);
[DllImport(DllName, EntryPoint="bgfx_create_indirect_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe IndirectBufferHandle create_indirect_buffer(uint _num);
[DllImport(DllName, EntryPoint="bgfx_destroy_indirect_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_indirect_buffer(IndirectBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_shader", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ShaderHandle create_shader(Memory* _mem);
[DllImport(DllName, EntryPoint="bgfx_get_shader_uniforms", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ushort get_shader_uniforms(ShaderHandle _handle, UniformHandle* _uniforms, ushort _max);
[DllImport(DllName, EntryPoint="bgfx_set_shader_name", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_shader_name(ShaderHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len);
[DllImport(DllName, EntryPoint="bgfx_destroy_shader", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_shader(ShaderHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_program", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ProgramHandle create_program(ShaderHandle _vsh, ShaderHandle _fsh, bool _destroyShaders);
[DllImport(DllName, EntryPoint="bgfx_create_compute_program", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ProgramHandle create_compute_program(ShaderHandle _csh, bool _destroyShaders);
[DllImport(DllName, EntryPoint="bgfx_destroy_program", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_program(ProgramHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_is_texture_valid", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
internal static extern unsafe bool is_texture_valid(ushort _depth, bool _cubeMap, ushort _numLayers, TextureFormat _format, ulong _flags);
[DllImport(DllName, EntryPoint="bgfx_calc_texture_size", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void calc_texture_size(TextureInfo* _info, ushort _width, ushort _height, ushort _depth, bool _cubeMap, bool _hasMips, ushort _numLayers, TextureFormat _format);
[DllImport(DllName, EntryPoint="bgfx_create_texture", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe TextureHandle create_texture(Memory* _mem, ulong _flags, byte _skip, TextureInfo* _info);
[DllImport(DllName, EntryPoint="bgfx_create_texture_2d", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe TextureHandle create_texture_2d(ushort _width, ushort _height, bool _hasMips, ushort _numLayers, TextureFormat _format, ulong _flags, Memory* _mem);
[DllImport(DllName, EntryPoint="bgfx_create_texture_2d_scaled", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe TextureHandle create_texture_2d_scaled(BackbufferRatio _ratio, bool _hasMips, ushort _numLayers, TextureFormat _format, ulong _flags);
[DllImport(DllName, EntryPoint="bgfx_create_texture_3d", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe TextureHandle create_texture_3d(ushort _width, ushort _height, ushort _depth, bool _hasMips, TextureFormat _format, ulong _flags, Memory* _mem);
[DllImport(DllName, EntryPoint="bgfx_create_texture_cube", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe TextureHandle create_texture_cube(ushort _size, bool _hasMips, ushort _numLayers, TextureFormat _format, ulong _flags, Memory* _mem);
[DllImport(DllName, EntryPoint="bgfx_update_texture_2d", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void update_texture_2d(TextureHandle _handle, ushort _layer, byte _mip, ushort _x, ushort _y, ushort _width, ushort _height, Memory* _mem, ushort _pitch);
[DllImport(DllName, EntryPoint="bgfx_update_texture_3d", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void update_texture_3d(TextureHandle _handle, byte _mip, ushort _x, ushort _y, ushort _z, ushort _width, ushort _height, ushort _depth, Memory* _mem);
[DllImport(DllName, EntryPoint="bgfx_update_texture_cube", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void update_texture_cube(TextureHandle _handle, ushort _layer, byte _side, byte _mip, ushort _x, ushort _y, ushort _width, ushort _height, Memory* _mem, ushort _pitch);
[DllImport(DllName, EntryPoint="bgfx_read_texture", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint read_texture(TextureHandle _handle, void* _data, byte _mip);
[DllImport(DllName, EntryPoint="bgfx_set_texture_name", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_texture_name(TextureHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len);
[DllImport(DllName, EntryPoint="bgfx_get_direct_access_ptr", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void* get_direct_access_ptr(TextureHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_destroy_texture", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_texture(TextureHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_frame_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe FrameBufferHandle create_frame_buffer(ushort _width, ushort _height, TextureFormat _format, ulong _textureFlags);
[DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_scaled", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe FrameBufferHandle create_frame_buffer_scaled(BackbufferRatio _ratio, TextureFormat _format, ulong _textureFlags);
[DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_from_handles", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe FrameBufferHandle create_frame_buffer_from_handles(byte _num, TextureHandle* _handles, bool _destroyTexture);
[DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_from_attachment", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe FrameBufferHandle create_frame_buffer_from_attachment(byte _num, Attachment* _attachment, bool _destroyTexture);
[DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_from_nwh", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe FrameBufferHandle create_frame_buffer_from_nwh(void* _nwh, ushort _width, ushort _height, TextureFormat _format, TextureFormat _depthFormat);
[DllImport(DllName, EntryPoint="bgfx_set_frame_buffer_name", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_frame_buffer_name(FrameBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len);
[DllImport(DllName, EntryPoint="bgfx_get_texture", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe TextureHandle get_texture(FrameBufferHandle _handle, byte _attachment);
[DllImport(DllName, EntryPoint="bgfx_destroy_frame_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_frame_buffer(FrameBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_uniform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe UniformHandle create_uniform([MarshalAs(UnmanagedType.LPStr)] string _name, UniformType _type, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_get_uniform_info", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void get_uniform_info(UniformHandle _handle, UniformInfo* _info);
[DllImport(DllName, EntryPoint="bgfx_destroy_uniform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_uniform(UniformHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_create_occlusion_query", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe OcclusionQueryHandle create_occlusion_query();
[DllImport(DllName, EntryPoint="bgfx_get_result", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe OcclusionQueryResult get_result(OcclusionQueryHandle _handle, int* _result);
[DllImport(DllName, EntryPoint="bgfx_destroy_occlusion_query", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void destroy_occlusion_query(OcclusionQueryHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_palette_color", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_palette_color(byte _index, float _rgba);
[DllImport(DllName, EntryPoint="bgfx_set_palette_color_rgba8", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_palette_color_rgba8(byte _index, uint _rgba);
[DllImport(DllName, EntryPoint="bgfx_set_view_name", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_name(ushort _id, [MarshalAs(UnmanagedType.LPStr)] string _name);
[DllImport(DllName, EntryPoint="bgfx_set_view_rect", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_rect(ushort _id, ushort _x, ushort _y, ushort _width, ushort _height);
[DllImport(DllName, EntryPoint="bgfx_set_view_rect_ratio", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_rect_ratio(ushort _id, ushort _x, ushort _y, BackbufferRatio _ratio);
[DllImport(DllName, EntryPoint="bgfx_set_view_scissor", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_scissor(ushort _id, ushort _x, ushort _y, ushort _width, ushort _height);
[DllImport(DllName, EntryPoint="bgfx_set_view_clear", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_clear(ushort _id, ushort _flags, uint _rgba, float _depth, byte _stencil);
[DllImport(DllName, EntryPoint="bgfx_set_view_clear_mrt", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_clear_mrt(ushort _id, ushort _flags, float _depth, byte _stencil, byte _c0, byte _c1, byte _c2, byte _c3, byte _c4, byte _c5, byte _c6, byte _c7);
[DllImport(DllName, EntryPoint="bgfx_set_view_mode", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_mode(ushort _id, ViewMode _mode);
[DllImport(DllName, EntryPoint="bgfx_set_view_frame_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_frame_buffer(ushort _id, FrameBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_view_transform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_transform(ushort _id, void* _view, void* _proj);
[DllImport(DllName, EntryPoint="bgfx_set_view_order", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_view_order(ushort _id, ushort _num, ushort* _order);
[DllImport(DllName, EntryPoint="bgfx_encoder_begin", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe Encoder* encoder_begin(bool _forThread);
[DllImport(DllName, EntryPoint="bgfx_encoder_end", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_end(Encoder* _encoder);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_marker", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_marker(Encoder* _this, [MarshalAs(UnmanagedType.LPStr)] string _marker);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_state", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_state(Encoder* _this, ulong _state, uint _rgba);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_condition", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_condition(Encoder* _this, OcclusionQueryHandle _handle, bool _visible);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_stencil", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_stencil(Encoder* _this, uint _fstencil, uint _bstencil);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_scissor", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ushort encoder_set_scissor(Encoder* _this, ushort _x, ushort _y, ushort _width, ushort _height);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_scissor_cached", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_scissor_cached(Encoder* _this, ushort _cache);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_transform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint encoder_set_transform(Encoder* _this, void* _mtx, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_transform_cached", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_transform_cached(Encoder* _this, uint _cache, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_alloc_transform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint encoder_alloc_transform(Encoder* _this, Transform* _transform, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_uniform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_uniform(Encoder* _this, UniformHandle _handle, void* _value, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_index_buffer(Encoder* _this, IndexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_index_buffer(Encoder* _this, IndexBufferHandle _handle, uint _firstIndex, uint _numIndices);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_index_buffer(Encoder* _this, DynamicIndexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_dynamic_index_buffer(Encoder* _this, DynamicIndexBufferHandle _handle, uint _firstIndex, uint _numIndices);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_index_buffer(Encoder* _this, TransientIndexBuffer* _tib);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_transient_index_buffer(Encoder* _this, TransientIndexBuffer* _tib, uint _firstIndex, uint _numIndices);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_vertex_buffer(Encoder* _this, byte _stream, VertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_vertex_buffer(Encoder* _this, byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexDeclHandle _declHandle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_vertex_buffer(Encoder* _this, byte _stream, DynamicVertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_dynamic_vertex_buffer(Encoder* _this, byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexDeclHandle _declHandle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_vertex_buffer(Encoder* _this, byte _stream, TransientVertexBuffer* _tvb);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_transient_vertex_buffer(Encoder* _this, byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices, VertexDeclHandle _declHandle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_count", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_vertex_count(Encoder* _this, uint _numVertices);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_instance_data_buffer(Encoder* _this, InstanceDataBuffer* _idb);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_instance_data_buffer(Encoder* _this, InstanceDataBuffer* _idb, uint _start, uint _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_instance_data_buffer(Encoder* _this, VertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_from_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_instance_data_from_vertex_buffer(Encoder* _this, VertexBufferHandle _handle, uint _startVertex, uint _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_instance_data_buffer(Encoder* _this, DynamicVertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_from_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_instance_data_from_dynamic_vertex_buffer(Encoder* _this, DynamicVertexBufferHandle _handle, uint _startVertex, uint _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_count", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_instance_count(Encoder* _this, uint _numInstances);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_texture", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_texture(Encoder* _this, byte _stage, UniformHandle _sampler, TextureHandle _handle, uint _flags);
[DllImport(DllName, EntryPoint="bgfx_encoder_touch", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_touch(Encoder* _this, ushort _id);
[DllImport(DllName, EntryPoint="bgfx_encoder_submit", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_submit(Encoder* _this, ushort _id, ProgramHandle _program, uint _depth, bool _preserveState);
[DllImport(DllName, EntryPoint="bgfx_encoder_submit_occlusion_query", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_submit_occlusion_query(Encoder* _this, ushort _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint _depth, bool _preserveState);
[DllImport(DllName, EntryPoint="bgfx_encoder_submit_indirect", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_submit_indirect(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num, uint _depth, bool _preserveState);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_compute_index_buffer(Encoder* _this, byte _stage, IndexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_compute_vertex_buffer(Encoder* _this, byte _stage, VertexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_compute_dynamic_index_buffer(Encoder* _this, byte _stage, DynamicIndexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_compute_dynamic_vertex_buffer(Encoder* _this, byte _stage, DynamicVertexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_indirect_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_compute_indirect_buffer(Encoder* _this, byte _stage, IndirectBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_encoder_set_image", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_set_image(Encoder* _this, byte _stage, TextureHandle _handle, byte _mip, Access _access, TextureFormat _format);
[DllImport(DllName, EntryPoint="bgfx_encoder_dispatch", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_dispatch(Encoder* _this, ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ);
[DllImport(DllName, EntryPoint="bgfx_encoder_dispatch_indirect", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_dispatch_indirect(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_encoder_discard", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_discard(Encoder* _this);
[DllImport(DllName, EntryPoint="bgfx_encoder_blit", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_blit(Encoder* _this, ushort _id, TextureHandle _dst, ushort _dstX, ushort _dstY, TextureHandle _src, ushort _srcX, ushort _srcY, ushort _width, ushort _height);
[DllImport(DllName, EntryPoint="bgfx_encoder_blit", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void encoder_blit(Encoder* _this, ushort _id, TextureHandle _dst, byte _dstMip, ushort _dstX, ushort _dstY, ushort _dstZ, TextureHandle _src, byte _srcMip, ushort _srcX, ushort _srcY, ushort _srcZ, ushort _width, ushort _height, ushort _depth);
[DllImport(DllName, EntryPoint="bgfx_request_screen_shot", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void request_screen_shot(FrameBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _filePath);
[DllImport(DllName, EntryPoint="bgfx_render_frame", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe RenderFrame render_frame(int _msecs);
[DllImport(DllName, EntryPoint="bgfx_set_platform_data", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_platform_data(PlatformData* _data);
[DllImport(DllName, EntryPoint="bgfx_get_internal_data", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe InternalData* get_internal_data();
[DllImport(DllName, EntryPoint="bgfx_override_internal_texture_ptr", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe UIntPtr override_internal_texture_ptr(TextureHandle _handle, UIntPtr _ptr);
[DllImport(DllName, EntryPoint="bgfx_override_internal_texture", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe UIntPtr override_internal_texture(TextureHandle _handle, ushort _width, ushort _height, byte _numMips, TextureFormat _format, ulong _flags);
[DllImport(DllName, EntryPoint="bgfx_set_marker", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_marker([MarshalAs(UnmanagedType.LPStr)] string _marker);
[DllImport(DllName, EntryPoint="bgfx_set_state", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_state(ulong _state, uint _rgba);
[DllImport(DllName, EntryPoint="bgfx_set_condition", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_condition(OcclusionQueryHandle _handle, bool _visible);
[DllImport(DllName, EntryPoint="bgfx_set_stencil", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_stencil(uint _fstencil, uint _bstencil);
[DllImport(DllName, EntryPoint="bgfx_set_scissor", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe ushort set_scissor(ushort _x, ushort _y, ushort _width, ushort _height);
[DllImport(DllName, EntryPoint="bgfx_set_scissor_cached", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_scissor_cached(ushort _cache);
[DllImport(DllName, EntryPoint="bgfx_set_transform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint set_transform(void* _mtx, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_set_transform_cached", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_transform_cached(uint _cache, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_alloc_transform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe uint alloc_transform(Transform* _transform, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_set_uniform", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_uniform(UniformHandle _handle, void* _value, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_index_buffer(IndexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_index_buffer(IndexBufferHandle _handle, uint _firstIndex, uint _numIndices);
[DllImport(DllName, EntryPoint="bgfx_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_index_buffer(DynamicIndexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_dynamic_index_buffer(DynamicIndexBufferHandle _handle, uint _firstIndex, uint _numIndices);
[DllImport(DllName, EntryPoint="bgfx_set_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_index_buffer(TransientIndexBuffer* _tib);
[DllImport(DllName, EntryPoint="bgfx_set_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_transient_index_buffer(TransientIndexBuffer* _tib, uint _firstIndex, uint _numIndices);
[DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_vertex_buffer(byte _stream, VertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_vertex_buffer(byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices);
[DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_vertex_buffer(byte _stream, DynamicVertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_dynamic_vertex_buffer(byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices);
[DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_vertex_buffer(byte _stream, TransientVertexBuffer* _tvb);
[DllImport(DllName, EntryPoint="bgfx_set_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_transient_vertex_buffer(byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices);
[DllImport(DllName, EntryPoint="bgfx_set_vertex_count", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_vertex_count(uint _numVertices);
[DllImport(DllName, EntryPoint="bgfx_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_instance_data_buffer(InstanceDataBuffer* _idb);
[DllImport(DllName, EntryPoint="bgfx_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_instance_data_buffer(InstanceDataBuffer* _idb, uint _start, uint _num);
[DllImport(DllName, EntryPoint="bgfx_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_instance_data_buffer(VertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_instance_data_from_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_instance_data_from_vertex_buffer(VertexBufferHandle _handle, uint _startVertex, uint _num);
[DllImport(DllName, EntryPoint="bgfx_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_instance_data_buffer(DynamicVertexBufferHandle _handle);
[DllImport(DllName, EntryPoint="bgfx_set_instance_data_from_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_instance_data_from_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle, uint _startVertex, uint _num);
[DllImport(DllName, EntryPoint="bgfx_set_instance_count", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_instance_count(uint _numInstances);
[DllImport(DllName, EntryPoint="bgfx_set_texture", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_texture(byte _stage, UniformHandle _sampler, TextureHandle _handle, uint _flags);
[DllImport(DllName, EntryPoint="bgfx_touch", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void touch(ushort _id);
[DllImport(DllName, EntryPoint="bgfx_submit", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void submit(ushort _id, ProgramHandle _program, uint _depth, bool _preserveState);
[DllImport(DllName, EntryPoint="bgfx_submit_occlusion_query", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void submit_occlusion_query(ushort _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint _depth, bool _preserveState);
[DllImport(DllName, EntryPoint="bgfx_submit_indirect", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void submit_indirect(ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num, uint _depth, bool _preserveState);
[DllImport(DllName, EntryPoint="bgfx_set_compute_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_compute_index_buffer(byte _stage, IndexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_set_compute_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_compute_vertex_buffer(byte _stage, VertexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_set_compute_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_compute_dynamic_index_buffer(byte _stage, DynamicIndexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_set_compute_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_compute_dynamic_vertex_buffer(byte _stage, DynamicVertexBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_set_compute_indirect_buffer", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_compute_indirect_buffer(byte _stage, IndirectBufferHandle _handle, Access _access);
[DllImport(DllName, EntryPoint="bgfx_set_image", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void set_image(byte _stage, TextureHandle _handle, byte _mip, Access _access, TextureFormat _format);
[DllImport(DllName, EntryPoint="bgfx_dispatch", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void dispatch(ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ);
[DllImport(DllName, EntryPoint="bgfx_dispatch_indirect", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void dispatch_indirect(ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, ushort _start, ushort _num);
[DllImport(DllName, EntryPoint="bgfx_discard", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void discard();
[DllImport(DllName, EntryPoint="bgfx_blit", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void blit(ushort _id, TextureHandle _dst, ushort _dstX, ushort _dstY, TextureHandle _src, ushort _srcX, ushort _srcY, ushort _width, ushort _height);
[DllImport(DllName, EntryPoint="bgfx_blit", CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void blit(ushort _id, TextureHandle _dst, byte _dstMip, ushort _dstX, ushort _dstY, ushort _dstZ, TextureHandle _src, byte _srcMip, ushort _srcX, ushort _srcY, ushort _srcZ, ushort _width, ushort _height, ushort _depth);
#if DEBUG
const string DllName = "bgfx_debug.dll";
#else
const string DllName = "bgfx.dll";
#endif
}
Nice, I guess I can just close this repo then, people can use the official bindings instead.
Bindings are just import of C99 functions all marked as unsafe. There is still value in providing proper C# typesafe bindings which would use bindings from main repo.
Now that bgfx supports IDL, you should consider using it to generate bindings instead maintaining this library manually.
Here is simple example of C# bindings I started working on: