Updated docs.

This commit is contained in:
Branimir Karadžić 2015-05-14 20:33:33 -07:00
parent 1f241e3cc1
commit 8964e68c87
2 changed files with 362 additions and 824 deletions

File diff suppressed because it is too large Load diff

View file

@ -622,12 +622,21 @@ namespace bgfx
const Caps* getCaps(); const Caps* getCaps();
/// Returns HMD info. /// Returns HMD info.
///
/// @attention C99 equivalent is `bgfx_get_hmd`.
///
const HMD* getHMD(); const HMD* getHMD();
/// Allocate buffer to pass to bgfx calls. Data will be freed inside bgfx. /// Allocate buffer to pass to bgfx calls. Data will be freed inside bgfx.
///
/// @attention C99 equivalent is `bgfx_alloc`.
///
const Memory* alloc(uint32_t _size); const Memory* alloc(uint32_t _size);
/// Allocate buffer and copy data into it. Data will be freed inside bgfx. /// Allocate buffer and copy data into it. Data will be freed inside bgfx.
///
/// @attention C99 equivalent is `bgfx_copy`.
///
const Memory* copy(const void* _data, uint32_t _size); const Memory* copy(const void* _data, uint32_t _size);
/// Make reference to data to pass to bgfx. Unlike `bgfx::alloc` this call /// Make reference to data to pass to bgfx. Unlike `bgfx::alloc` this call
@ -636,6 +645,9 @@ namespace bgfx
/// consumed, or you must make sure data is available for at least 2 /// consumed, or you must make sure data is available for at least 2
/// `bgfx::frame` calls. `ReleaseFn` function must be able to be called /// `bgfx::frame` calls. `ReleaseFn` function must be able to be called
/// called from any thread. /// called from any thread.
///
/// @attention C99 equivalent are `bgfx_make_ref`, `bgfx_make_ref_release`.
///
const Memory* makeRef(const void* _data, uint32_t _size, ReleaseFn _releaseFn = NULL, void* _userData = NULL); const Memory* makeRef(const void* _data, uint32_t _size, ReleaseFn _releaseFn = NULL, void* _userData = NULL);
/// Set debug flags. /// Set debug flags.
@ -649,12 +661,20 @@ namespace bgfx
/// - `BGFX_DEBUG_WIREFRAME` - Wireframe rendering. All rendering /// - `BGFX_DEBUG_WIREFRAME` - Wireframe rendering. All rendering
/// primitives will be rendered as lines. /// primitives will be rendered as lines.
/// ///
/// @attention C99 equivalent is `bgfx_set_debug`.
///
void setDebug(uint32_t _debug); void setDebug(uint32_t _debug);
/// Clear internal debug text buffer. /// Clear internal debug text buffer.
///
/// @attention C99 equivalent is `bgfx_dbg_text_clear`.
///
void dbgTextClear(uint8_t _attr = 0, bool _small = false); void dbgTextClear(uint8_t _attr = 0, bool _small = false);
/// Print into internal debug text buffer. /// Print into internal debug text buffer.
///
/// @attention C99 equivalent is `bgfx_dbg_text_printf`.
///
void dbgTextPrintf(uint16_t _x, uint16_t _y, uint8_t _attr, const char* _format, ...); void dbgTextPrintf(uint16_t _x, uint16_t _y, uint8_t _attr, const char* _format, ...);
/// Draw image into internal debug text buffer. /// Draw image into internal debug text buffer.
@ -666,6 +686,8 @@ namespace bgfx
/// @param _data Raw image data (character/attribute raw encoding). /// @param _data Raw image data (character/attribute raw encoding).
/// @param _pitch Image pitch in bytes. /// @param _pitch Image pitch in bytes.
/// ///
/// @attention C99 equivalent is `bgfx_dbg_text_image`.
///
void dbgTextImage(uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const void* _data, uint16_t _pitch); void dbgTextImage(uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const void* _data, uint16_t _pitch);
/// Create static index buffer. /// Create static index buffer.
@ -684,9 +706,14 @@ namespace bgfx
/// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on /// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on
/// index buffers. /// index buffers.
/// ///
/// @attention C99 equivalent is `bgfx_create_index_buffer`.
///
IndexBufferHandle createIndexBuffer(const Memory* _mem, uint16_t _flags = BGFX_BUFFER_NONE); IndexBufferHandle createIndexBuffer(const Memory* _mem, uint16_t _flags = BGFX_BUFFER_NONE);
/// Destroy static index buffer. /// Destroy static index buffer.
///
/// @attention C99 equivalent is `bgfx_destroy_index_buffer`.
///
void destroyIndexBuffer(IndexBufferHandle _handle); void destroyIndexBuffer(IndexBufferHandle _handle);
/// Create static vertex buffer. /// Create static vertex buffer.
@ -695,12 +722,16 @@ namespace bgfx
/// @param _decl Vertex declaration. /// @param _decl Vertex declaration.
/// @returns Static vertex buffer handle. /// @returns Static vertex buffer handle.
/// ///
/// @attention C99 equivalent is `bgfx_create_vertex_buffer`.
///
VertexBufferHandle createVertexBuffer(const Memory* _mem, const VertexDecl& _decl, uint16_t _flags = BGFX_BUFFER_NONE); VertexBufferHandle createVertexBuffer(const Memory* _mem, const VertexDecl& _decl, uint16_t _flags = BGFX_BUFFER_NONE);
/// Destroy static vertex buffer. /// Destroy static vertex buffer.
/// ///
/// @param _handle Static vertex buffer handle. /// @param _handle Static vertex buffer handle.
/// ///
/// @attention C99 equivalent is `bgfx_destroy_vertex_buffer`.
///
void destroyVertexBuffer(VertexBufferHandle _handle); void destroyVertexBuffer(VertexBufferHandle _handle);
/// Create empty dynamic index buffer. /// Create empty dynamic index buffer.
@ -719,6 +750,8 @@ namespace bgfx
/// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on /// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on
/// index buffers. /// index buffers.
/// ///
/// @attention C99 equivalent is `bgfx_create_dynamic_index_buffer`.
///
DynamicIndexBufferHandle createDynamicIndexBuffer(uint32_t _num, uint16_t _flags = BGFX_BUFFER_NONE); DynamicIndexBufferHandle createDynamicIndexBuffer(uint32_t _num, uint16_t _flags = BGFX_BUFFER_NONE);
/// Create dynamic index buffer and initialized it. /// Create dynamic index buffer and initialized it.
@ -737,6 +770,8 @@ namespace bgfx
/// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on /// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on
/// index buffers. /// index buffers.
/// ///
/// @attention C99 equivalent is `bgfx_create_dynamic_index_buffer_mem`.
///
DynamicIndexBufferHandle createDynamicIndexBuffer(const Memory* _mem, uint16_t _flags = BGFX_BUFFER_NONE); DynamicIndexBufferHandle createDynamicIndexBuffer(const Memory* _mem, uint16_t _flags = BGFX_BUFFER_NONE);
/// Update dynamic index buffer. /// Update dynamic index buffer.
@ -744,12 +779,16 @@ namespace bgfx
/// @param _handle Dynamic index buffer handle. /// @param _handle Dynamic index buffer handle.
/// @param _mem Index buffer data. /// @param _mem Index buffer data.
/// ///
/// @attention C99 equivalent is `bgfx_update_dynamic_index_buffer`.
///
void updateDynamicIndexBuffer(DynamicIndexBufferHandle _handle, const Memory* _mem); void updateDynamicIndexBuffer(DynamicIndexBufferHandle _handle, const Memory* _mem);
/// Destroy dynamic index buffer. /// Destroy dynamic index buffer.
/// ///
/// @param _handle Dynamic index buffer handle. /// @param _handle Dynamic index buffer handle.
/// ///
/// @attention C99 equivalent is `bgfx_destroy_dynamic_index_buffer`.
///
void destroyDynamicIndexBuffer(DynamicIndexBufferHandle _handle); void destroyDynamicIndexBuffer(DynamicIndexBufferHandle _handle);
/// Create empty dynamic vertex buffer. /// Create empty dynamic vertex buffer.
@ -769,6 +808,8 @@ namespace bgfx
/// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on /// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on
/// index buffers. /// index buffers.
/// ///
/// @attention C99 equivalent is `bgfx_create_dynamic_vertex_buffer`.
///
DynamicVertexBufferHandle createDynamicVertexBuffer(uint32_t _num, const VertexDecl& _decl, uint16_t _flags = BGFX_BUFFER_NONE); DynamicVertexBufferHandle createDynamicVertexBuffer(uint32_t _num, const VertexDecl& _decl, uint16_t _flags = BGFX_BUFFER_NONE);
/// Create dynamic vertex buffer and initialize it. /// Create dynamic vertex buffer and initialize it.
@ -788,18 +829,28 @@ namespace bgfx
/// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on /// - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on
/// index buffers. /// index buffers.
/// ///
/// @attention C99 equivalent is `bgfx_create_dynamic_vertex_buffer_mem`.
///
DynamicVertexBufferHandle createDynamicVertexBuffer(const Memory* _mem, const VertexDecl& _decl, uint16_t _flags = BGFX_BUFFER_NONE); DynamicVertexBufferHandle createDynamicVertexBuffer(const Memory* _mem, const VertexDecl& _decl, uint16_t _flags = BGFX_BUFFER_NONE);
/// Update dynamic vertex buffer. /// Update dynamic vertex buffer.
///
/// @attention C99 equivalent is `bgfx_update_dynamic_vertex_buffer`.
///
void updateDynamicVertexBuffer(DynamicVertexBufferHandle _handle, const Memory* _mem); void updateDynamicVertexBuffer(DynamicVertexBufferHandle _handle, const Memory* _mem);
/// Destroy dynamic vertex buffer. /// Destroy dynamic vertex buffer.
///
/// @attention C99 equivalent is `bgfx_destroy_dynamic_vertex_buffer`.
///
void destroyDynamicVertexBuffer(DynamicVertexBufferHandle _handle); void destroyDynamicVertexBuffer(DynamicVertexBufferHandle _handle);
/// Returns true if internal transient index buffer has enough space. /// Returns true if internal transient index buffer has enough space.
/// ///
/// @param _num Number of indices. /// @param _num Number of indices.
/// ///
/// @attention C99 equivalent is `bgfx_check_avail_transient_index_buffer`.
///
bool checkAvailTransientIndexBuffer(uint32_t _num); bool checkAvailTransientIndexBuffer(uint32_t _num);
/// Returns true if internal transient vertex buffer has enough space. /// Returns true if internal transient vertex buffer has enough space.
@ -807,6 +858,8 @@ namespace bgfx
/// @param _num Number of vertices. /// @param _num Number of vertices.
/// @param _decl Vertex declaration. /// @param _decl Vertex declaration.
/// ///
/// @attention C99 equivalent is `bgfx_check_avail_transient_vertex_buffer`.
///
bool checkAvailTransientVertexBuffer(uint32_t _num, const VertexDecl& _decl); bool checkAvailTransientVertexBuffer(uint32_t _num, const VertexDecl& _decl);
/// Returns true if internal instance data buffer has enough space. /// Returns true if internal instance data buffer has enough space.
@ -814,6 +867,8 @@ namespace bgfx
/// @param _num Number of instances. /// @param _num Number of instances.
/// @param _stride Stride per instance. /// @param _stride Stride per instance.
/// ///
/// @attention C99 equivalent is `bgfx_check_avail_instance_data_buffer`.
///
bool checkAvailInstanceDataBuffer(uint32_t _num, uint16_t _stride); bool checkAvailInstanceDataBuffer(uint32_t _num, uint16_t _stride);
/// Returns true if both internal transient index and vertex buffer have /// Returns true if both internal transient index and vertex buffer have
@ -823,6 +878,8 @@ namespace bgfx
/// @param _decl Vertex declaration. /// @param _decl Vertex declaration.
/// @param _numIndices Number of indices. /// @param _numIndices Number of indices.
/// ///
/// @attention C99 equivalent is `bgfx_check_avail_transient_buffers`.
///
bool checkAvailTransientBuffers(uint32_t _numVertices, const VertexDecl& _decl, uint32_t _numIndices); bool checkAvailTransientBuffers(uint32_t _numVertices, const VertexDecl& _decl, uint32_t _numIndices);
/// Allocate transient index buffer. /// Allocate transient index buffer.
@ -837,6 +894,8 @@ namespace bgfx
/// leak. /// leak.
/// 2. Only 16-bit index buffer is supported. /// 2. Only 16-bit index buffer is supported.
/// ///
/// @attention C99 equivalent is `bgfx_alloc_transient_index_buffer`.
///
void allocTransientIndexBuffer(TransientIndexBuffer* _tib, uint32_t _num); void allocTransientIndexBuffer(TransientIndexBuffer* _tib, uint32_t _num);
/// Allocate transient vertex buffer. /// Allocate transient vertex buffer.
@ -851,6 +910,8 @@ namespace bgfx
/// You must call setVertexBuffer after alloc in order to avoid memory /// You must call setVertexBuffer after alloc in order to avoid memory
/// leak. /// leak.
/// ///
/// @attention C99 equivalent is `bgfx_alloc_transient_vertex_buffer`.
///
void allocTransientVertexBuffer(TransientVertexBuffer* _tvb, uint32_t _num, const VertexDecl& _decl); void allocTransientVertexBuffer(TransientVertexBuffer* _tvb, uint32_t _num, const VertexDecl& _decl);
/// Check for required space and allocate transient vertex and index /// Check for required space and allocate transient vertex and index
@ -860,6 +921,8 @@ namespace bgfx
/// @remarks /// @remarks
/// Only 16-bit index buffer is supported. /// Only 16-bit index buffer is supported.
/// ///
/// @attention C99 equivalent is `bgfx_alloc_transient_buffers`.
///
bool allocTransientBuffers(TransientVertexBuffer* _tvb, const VertexDecl& _decl, uint32_t _numVertices, TransientIndexBuffer* _tib, uint32_t _numIndices); bool allocTransientBuffers(TransientVertexBuffer* _tvb, const VertexDecl& _decl, uint32_t _numVertices, TransientIndexBuffer* _tib, uint32_t _numIndices);
/// Allocate instance data buffer. /// Allocate instance data buffer.
@ -868,15 +931,26 @@ namespace bgfx
/// You must call setInstanceDataBuffer after alloc in order to avoid /// You must call setInstanceDataBuffer after alloc in order to avoid
/// memory leak. /// memory leak.
/// ///
/// @attention C99 equivalent is `bgfx_alloc_instance_data_buffer`.
///
const InstanceDataBuffer* allocInstanceDataBuffer(uint32_t _num, uint16_t _stride); const InstanceDataBuffer* allocInstanceDataBuffer(uint32_t _num, uint16_t _stride);
/// Create draw indirect buffer.
///
/// @attention C99 equivalent is `bgfx_create_indirect_buffer`.
/// ///
IndirectBufferHandle createIndirectBuffer(uint32_t _num); IndirectBufferHandle createIndirectBuffer(uint32_t _num);
/// Destroy draw indirect buffer.
///
/// @attention C99 equivalent is `bgfx_destroy_indirect_buffer`.
/// ///
void destroyIndirectBuffer(IndirectBufferHandle _handle); void destroyIndirectBuffer(IndirectBufferHandle _handle);
/// Create shader from memory buffer. /// Create shader from memory buffer.
///
/// @attention C99 equivalent is `bgfx_create_shader`.
///
ShaderHandle createShader(const Memory* _mem); ShaderHandle createShader(const Memory* _mem);
/// Returns num of uniforms, and uniform handles used inside shader. /// Returns num of uniforms, and uniform handles used inside shader.
@ -889,10 +963,15 @@ namespace bgfx
/// @remarks /// @remarks
/// Only non-predefined uniforms are returned. /// Only non-predefined uniforms are returned.
/// ///
/// @attention C99 equivalent is `bgfx_get_shader_uniforms`.
///
uint16_t getShaderUniforms(ShaderHandle _handle, UniformHandle* _uniforms = NULL, uint16_t _max = 0); uint16_t getShaderUniforms(ShaderHandle _handle, UniformHandle* _uniforms = NULL, uint16_t _max = 0);
/// Destroy shader. Once program is created with shader it is safe to /// Destroy shader. Once program is created with shader it is safe to
/// destroy shader. /// destroy shader.
///
/// @attention C99 equivalent is `bgfx_destroy_shader`.
///
void destroyShader(ShaderHandle _handle); void destroyShader(ShaderHandle _handle);
/// Create program with vertex and fragment shaders. /// Create program with vertex and fragment shaders.
@ -904,6 +983,8 @@ namespace bgfx
/// @returns Program handle if vertex shader output and fragment shader /// @returns Program handle if vertex shader output and fragment shader
/// input are matching, otherwise returns invalid program handle. /// input are matching, otherwise returns invalid program handle.
/// ///
/// @attention C99 equivalent is `bgfx_create_program`.
///
ProgramHandle createProgram(ShaderHandle _vsh, ShaderHandle _fsh, bool _destroyShaders = false); ProgramHandle createProgram(ShaderHandle _vsh, ShaderHandle _fsh, bool _destroyShaders = false);
/// Create program with compute shader. /// Create program with compute shader.
@ -913,12 +994,20 @@ namespace bgfx
/// program is destroyed. /// program is destroyed.
/// @returns Program handle. /// @returns Program handle.
/// ///
/// @attention C99 equivalent is ``.
///
ProgramHandle createProgram(ShaderHandle _csh, bool _destroyShader = false); ProgramHandle createProgram(ShaderHandle _csh, bool _destroyShader = false);
/// Destroy program. /// Destroy program.
///
/// @attention C99 equivalent is `bgfx_destroy_program`.
///
void destroyProgram(ProgramHandle _handle); void destroyProgram(ProgramHandle _handle);
/// Calculate amount of memory required for texture. /// Calculate amount of memory required for texture.
///
/// @attention C99 equivalent is `bgfx_calc_texture_size`.
///
void calcTextureSize(TextureInfo& _info, uint16_t _width, uint16_t _height, uint16_t _depth, bool _cubeMap, uint8_t _numMips, TextureFormat::Enum _format); void calcTextureSize(TextureInfo& _info, uint16_t _width, uint16_t _height, uint16_t _depth, bool _cubeMap, uint8_t _numMips, TextureFormat::Enum _format);
/// Create texture from memory buffer. /// Create texture from memory buffer.
@ -935,6 +1024,8 @@ namespace bgfx
/// @param[out] _info When non-`NULL` is specified it returns parsed texture information. /// @param[out] _info When non-`NULL` is specified it returns parsed texture information.
/// @returns Texture handle. /// @returns Texture handle.
/// ///
/// @attention C99 equivalent is `bgfx_create_texture`.
///
TextureHandle createTexture(const Memory* _mem, uint32_t _flags = BGFX_TEXTURE_NONE, uint8_t _skip = 0, TextureInfo* _info = NULL); TextureHandle createTexture(const Memory* _mem, uint32_t _flags = BGFX_TEXTURE_NONE, uint8_t _skip = 0, TextureInfo* _info = NULL);
/// Create 2D texture. /// Create 2D texture.
@ -946,8 +1037,12 @@ namespace bgfx
/// @param _flags /// @param _flags
/// @param _mem /// @param _mem
/// ///
/// @attention C99 equivalent is `bgfx_create_texture_2d`.
///
TextureHandle createTexture2D(uint16_t _width, uint16_t _height, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE, const Memory* _mem = NULL); TextureHandle createTexture2D(uint16_t _width, uint16_t _height, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE, const Memory* _mem = NULL);
///
/// @attention C99 equivalent is `bgfx_create_texture_2d_scaled`.
/// ///
TextureHandle createTexture2D(BackbufferRatio::Enum _ratio, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE); TextureHandle createTexture2D(BackbufferRatio::Enum _ratio, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE);
@ -961,6 +1056,8 @@ namespace bgfx
/// @param _flags /// @param _flags
/// @param _mem /// @param _mem
/// ///
/// @attention C99 equivalent is `bgfx_create_texture_3d`.
///
TextureHandle createTexture3D(uint16_t _width, uint16_t _height, uint16_t _depth, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE, const Memory* _mem = NULL); TextureHandle createTexture3D(uint16_t _width, uint16_t _height, uint16_t _depth, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE, const Memory* _mem = NULL);
/// Create Cube texture. /// Create Cube texture.
@ -971,6 +1068,8 @@ namespace bgfx
/// @param _flags /// @param _flags
/// @param _mem /// @param _mem
/// ///
/// @attention C99 equivalent is `bgfx_create_texture_cube`.
///
TextureHandle createTextureCube(uint16_t _size, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE, const Memory* _mem = NULL); TextureHandle createTextureCube(uint16_t _size, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags = BGFX_TEXTURE_NONE, const Memory* _mem = NULL);
/// Update 2D texture. /// Update 2D texture.
@ -985,6 +1084,8 @@ namespace bgfx
/// @param _pitch Pitch of input image (bytes). When _pitch is set to /// @param _pitch Pitch of input image (bytes). When _pitch is set to
/// UINT16_MAX, it will be calculated internally based on _width. /// UINT16_MAX, it will be calculated internally based on _width.
/// ///
/// @attention C99 equivalent is `bgfx_update_texture_2d`.
///
void updateTexture2D(TextureHandle _handle, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const Memory* _mem, uint16_t _pitch = UINT16_MAX); void updateTexture2D(TextureHandle _handle, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const Memory* _mem, uint16_t _pitch = UINT16_MAX);
/// Update 3D texture. /// Update 3D texture.
@ -999,6 +1100,8 @@ namespace bgfx
/// @param _depth /// @param _depth
/// @param _mem /// @param _mem
/// ///
/// @attention C99 equivalent is `bgfx_update_texture_3d`.
///
void updateTexture3D(TextureHandle _handle, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _z, uint16_t _width, uint16_t _height, uint16_t _depth, const Memory* _mem); void updateTexture3D(TextureHandle _handle, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _z, uint16_t _width, uint16_t _height, uint16_t _depth, const Memory* _mem);
/// Update Cube texture. /// Update Cube texture.
@ -1033,9 +1136,14 @@ namespace bgfx
/// @param _pitch Pitch of input image (bytes). When _pitch is set to /// @param _pitch Pitch of input image (bytes). When _pitch is set to
/// UINT16_MAX, it will be calculated internally based on _width. /// UINT16_MAX, it will be calculated internally based on _width.
/// ///
/// @attention C99 equivalent is `bgfx_update_texture_cube`.
///
void updateTextureCube(TextureHandle _handle, uint8_t _side, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const Memory* _mem, uint16_t _pitch = UINT16_MAX); void updateTextureCube(TextureHandle _handle, uint8_t _side, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const Memory* _mem, uint16_t _pitch = UINT16_MAX);
/// Destroy texture. /// Destroy texture.
///
/// @attention C99 equivalent is `bgfx_destroy_texture`.
///
void destroyTexture(TextureHandle _handle); void destroyTexture(TextureHandle _handle);
/// Create frame buffer (simple). /// Create frame buffer (simple).
@ -1045,8 +1153,12 @@ namespace bgfx
/// @param _format Texture format. /// @param _format Texture format.
/// @param _textureFlags Texture flags. /// @param _textureFlags Texture flags.
/// ///
/// @attention C99 equivalent is `bgfx_create_frame_buffer`.
///
FrameBufferHandle createFrameBuffer(uint16_t _width, uint16_t _height, TextureFormat::Enum _format, uint32_t _textureFlags = BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP); FrameBufferHandle createFrameBuffer(uint16_t _width, uint16_t _height, TextureFormat::Enum _format, uint32_t _textureFlags = BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP);
///
/// @attention C99 equivalent is `bgfx_create_frame_buffer_scaled`.
/// ///
FrameBufferHandle createFrameBuffer(BackbufferRatio::Enum _ratio, TextureFormat::Enum _format, uint32_t _textureFlags = BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP); FrameBufferHandle createFrameBuffer(BackbufferRatio::Enum _ratio, TextureFormat::Enum _format, uint32_t _textureFlags = BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP);
@ -1057,6 +1169,8 @@ namespace bgfx
/// @param _destroyTextures If true, textures will be destroyed when /// @param _destroyTextures If true, textures will be destroyed when
/// frame buffer is destroyed. /// frame buffer is destroyed.
/// ///
/// @attention C99 equivalent is `bgfx_create_frame_buffer_from_handles`.
///
FrameBufferHandle createFrameBuffer(uint8_t _num, TextureHandle* _handles, bool _destroyTextures = false); FrameBufferHandle createFrameBuffer(uint8_t _num, TextureHandle* _handles, bool _destroyTextures = false);
/// Create frame buffer for multiple window rendering. /// Create frame buffer for multiple window rendering.
@ -1071,9 +1185,14 @@ namespace bgfx
/// @remarks /// @remarks
/// Frame buffer cannnot be used for sampling. /// Frame buffer cannnot be used for sampling.
/// ///
/// @attention C99 equivalent is `bgfx_create_frame_buffer_from_nwh`.
///
FrameBufferHandle createFrameBuffer(void* _nwh, uint16_t _width, uint16_t _height, TextureFormat::Enum _depthFormat = TextureFormat::UnknownDepth); FrameBufferHandle createFrameBuffer(void* _nwh, uint16_t _width, uint16_t _height, TextureFormat::Enum _depthFormat = TextureFormat::UnknownDepth);
/// Destroy frame buffer. /// Destroy frame buffer.
///
/// @attention C99 equivalent is `bgfx_destroy_frame_buffer`.
///
void destroyFrameBuffer(FrameBufferHandle _handle); void destroyFrameBuffer(FrameBufferHandle _handle);
/// Create shader uniform parameter. /// Create shader uniform parameter.
@ -1102,12 +1221,16 @@ namespace bgfx
/// - `u_modelViewProj mat4` - concatenated model view projection matrix. /// - `u_modelViewProj mat4` - concatenated model view projection matrix.
/// - `u_alphaRef float` - alpha reference value for alpha test. /// - `u_alphaRef float` - alpha reference value for alpha test.
/// ///
/// @attention C99 equivalent is `bgfx_create_uniform`.
///
UniformHandle createUniform(const char* _name, UniformType::Enum _type, uint16_t _num = 1); UniformHandle createUniform(const char* _name, UniformType::Enum _type, uint16_t _num = 1);
/// Destroy shader uniform parameter. /// Destroy shader uniform parameter.
/// ///
/// @param _handle Handle to uniform object. /// @param _handle Handle to uniform object.
/// ///
/// @attention C99 equivalent is `bgfx_destroy_uniform`.
///
void destroyUniform(UniformHandle _handle); void destroyUniform(UniformHandle _handle);
/// Set clear color palette value. /// Set clear color palette value.
@ -1115,6 +1238,8 @@ namespace bgfx
/// @param _index Index into palette. /// @param _index Index into palette.
/// @param _rgba Packed 32-bit RGBA value. /// @param _rgba Packed 32-bit RGBA value.
/// ///
/// @attention C99 equivalent is ``.
///
void setClearColor(uint8_t _index, uint32_t _rgba); void setClearColor(uint8_t _index, uint32_t _rgba);
/// Set clear color palette value. /// Set clear color palette value.
@ -1122,6 +1247,8 @@ namespace bgfx
/// @param _index Index into palette. /// @param _index Index into palette.
/// @param _r, _g, _b, _a RGBA floating point values. /// @param _r, _g, _b, _a RGBA floating point values.
/// ///
/// @attention C99 equivalent is ``.
///
void setClearColor(uint8_t _index, float _r, float _g, float _b, float _a); void setClearColor(uint8_t _index, float _r, float _g, float _b, float _a);
/// Set clear color palette value. /// Set clear color palette value.
@ -1129,6 +1256,8 @@ namespace bgfx
/// @param _index Index into palette. /// @param _index Index into palette.
/// @param _rgba RGBA floating point value. /// @param _rgba RGBA floating point value.
/// ///
/// @attention C99 equivalent is `bgfx_set_clear_color`.
///
void setClearColor(uint8_t _index, const float _rgba[4]); void setClearColor(uint8_t _index, const float _rgba[4]);
/// Set view name. /// Set view name.
@ -1147,6 +1276,8 @@ namespace bgfx
/// | +-- compute (C) /// | +-- compute (C)
/// +-- view id /// +-- view id
/// ///
/// @attention C99 equivalent is `bgfx_set_view_name`.
///
void setViewName(uint8_t _id, const char* _name); void setViewName(uint8_t _id, const char* _name);
/// Set view rectangle. Draw primitive outside view will be clipped. /// Set view rectangle. Draw primitive outside view will be clipped.
@ -1157,6 +1288,8 @@ namespace bgfx
/// @param _width Width of view port region. /// @param _width Width of view port region.
/// @param _height Height of view port region. /// @param _height Height of view port region.
/// ///
/// @attention C99 equivalent is `bgfx_set_view_rect`.
///
void setViewRect(uint8_t _id, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height); void setViewRect(uint8_t _id, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height);
/// Set view scissor. Draw primitive outside view will be clipped. When /// Set view scissor. Draw primitive outside view will be clipped. When
@ -1167,6 +1300,8 @@ namespace bgfx
/// @param _width Width of scissor region. /// @param _width Width of scissor region.
/// @param _height Height of scissor region. /// @param _height Height of scissor region.
/// ///
/// @attention C99 equivalent is `bgfx_set_view_scissor`.
///
void setViewScissor(uint8_t _id, uint16_t _x = 0, uint16_t _y = 0, uint16_t _width = 0, uint16_t _height = 0); void setViewScissor(uint8_t _id, uint16_t _x = 0, uint16_t _y = 0, uint16_t _width = 0, uint16_t _height = 0);
/// Set view clear flags. /// Set view clear flags.
@ -1178,6 +1313,8 @@ namespace bgfx
/// @param _depth Depth clear value. /// @param _depth Depth clear value.
/// @param _stencil Stencil clear value. /// @param _stencil Stencil clear value.
/// ///
/// @attention C99 equivalent is `bgfx_set_view_clear`.
///
void setViewClear(uint8_t _id, uint16_t _flags, uint32_t _rgba = 0x000000ff, float _depth = 1.0f, uint8_t _stencil = 0); void setViewClear(uint8_t _id, uint16_t _flags, uint32_t _rgba = 0x000000ff, float _depth = 1.0f, uint8_t _stencil = 0);
/// Set view clear flags with different clear color for each /// Set view clear flags with different clear color for each
@ -1190,10 +1327,15 @@ namespace bgfx
/// @param _depth Depth clear value. /// @param _depth Depth clear value.
/// @param _stencil Stencil clear value. /// @param _stencil Stencil clear value.
/// ///
/// @attention C99 equivalent is `bgfx_set_view_clear_mrt`.
///
void setViewClear(uint8_t _id, uint16_t _flags, float _depth, uint8_t _stencil, uint8_t _0 = UINT8_MAX, uint8_t _1 = UINT8_MAX, uint8_t _2 = UINT8_MAX, uint8_t _3 = UINT8_MAX, uint8_t _4 = UINT8_MAX, uint8_t _5 = UINT8_MAX, uint8_t _6 = UINT8_MAX, uint8_t _7 = UINT8_MAX); void setViewClear(uint8_t _id, uint16_t _flags, float _depth, uint8_t _stencil, uint8_t _0 = UINT8_MAX, uint8_t _1 = UINT8_MAX, uint8_t _2 = UINT8_MAX, uint8_t _3 = UINT8_MAX, uint8_t _4 = UINT8_MAX, uint8_t _5 = UINT8_MAX, uint8_t _6 = UINT8_MAX, uint8_t _7 = UINT8_MAX);
/// Set view into sequential mode. Draw calls will be sorted in the same /// Set view into sequential mode. Draw calls will be sorted in the same
/// order in which submit calls were called. /// order in which submit calls were called.
///
/// @attention C99 equivalent is `bgfx_set_view_seq`.
///
void setViewSeq(uint8_t _id, bool _enabled); void setViewSeq(uint8_t _id, bool _enabled);
/// Set view frame buffer. /// Set view frame buffer.
@ -1206,6 +1348,8 @@ namespace bgfx
/// @remarks /// @remarks
/// Not persistent after `bgfx::reset` call. /// Not persistent after `bgfx::reset` call.
/// ///
/// @attention C99 equivalent is `bgfx_set_view_frame_buffer`.
///
void setViewFrameBuffer(uint8_t _id, FrameBufferHandle _handle); void setViewFrameBuffer(uint8_t _id, FrameBufferHandle _handle);
/// Set view view and projection matrices, all draw primitives in this /// Set view view and projection matrices, all draw primitives in this
@ -1221,6 +1365,8 @@ namespace bgfx
/// stereo mode is disabled this flag doesn't have effect. /// stereo mode is disabled this flag doesn't have effect.
/// @param _projR Projection matrix for right eye in stereo mode. /// @param _projR Projection matrix for right eye in stereo mode.
/// ///
/// @attention C99 equivalent are `bgfx_set_view_transform`, `bgfx_set_view_transform_stereo`.
///
void setViewTransform(uint8_t _id, const void* _view, const void* _projL, uint8_t _flags = BGFX_VIEW_STEREO, const void* _projR = NULL); void setViewTransform(uint8_t _id, const void* _view, const void* _projL, uint8_t _flags = BGFX_VIEW_STEREO, const void* _projR = NULL);
/// Post submit view reordering. /// Post submit view reordering.
@ -1230,9 +1376,14 @@ namespace bgfx
/// @param _remap View remap id table. Passing `NULL` will reset view ids /// @param _remap View remap id table. Passing `NULL` will reset view ids
/// to default state. /// to default state.
/// ///
/// @attention C99 equivalent is ``.
///
void setViewRemap(uint8_t _id = 0, uint8_t _num = UINT8_MAX, const void* _remap = NULL); void setViewRemap(uint8_t _id = 0, uint8_t _num = UINT8_MAX, const void* _remap = NULL);
/// Sets debug marker. /// Sets debug marker.
///
/// @attention C99 equivalent is `bgfx_set_marker`.
///
void setMarker(const char* _marker); void setMarker(const char* _marker);
/// Set render states for draw primitive. /// Set render states for draw primitive.
@ -1258,6 +1409,8 @@ namespace bgfx
/// 2. `BGFX_STATE_BLEND_EQUATION_ADD` is set when no other blend /// 2. `BGFX_STATE_BLEND_EQUATION_ADD` is set when no other blend
/// equation is specified. /// equation is specified.
/// ///
/// @attention C99 equivalent is `bgfx_set_state`.
///
void setState(uint64_t _state, uint32_t _rgba = 0); void setState(uint64_t _state, uint32_t _rgba = 0);
/// Set stencil test state. /// Set stencil test state.
@ -1266,6 +1419,8 @@ namespace bgfx
/// @param _bstencil Back stencil state. If back is set to `BGFX_STENCIL_NONE` /// @param _bstencil Back stencil state. If back is set to `BGFX_STENCIL_NONE`
/// _fstencil is applied to both front and back facing primitives. /// _fstencil is applied to both front and back facing primitives.
/// ///
/// @attention C99 equivalent is `bgfx_set_stencil`.
///
void setStencil(uint32_t _fstencil, uint32_t _bstencil = BGFX_STENCIL_NONE); void setStencil(uint32_t _fstencil, uint32_t _bstencil = BGFX_STENCIL_NONE);
/// Set scissor for draw primitive. For scissor for all primitives in /// Set scissor for draw primitive. For scissor for all primitives in
@ -1277,6 +1432,8 @@ namespace bgfx
/// @param _height Height of scissor region. /// @param _height Height of scissor region.
/// @returns Scissor cache index. /// @returns Scissor cache index.
/// ///
/// @attention C99 equivalent is `bgfx_set_scissor`.
///
uint16_t setScissor(uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height); uint16_t setScissor(uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height);
/// Set scissor from cache for draw primitive. /// Set scissor from cache for draw primitive.
@ -1284,6 +1441,8 @@ namespace bgfx
/// @param _cache Index in scissor cache. Passing UINT16_MAX unset primitive /// @param _cache Index in scissor cache. Passing UINT16_MAX unset primitive
/// scissor and primitive will use view scissor instead. /// scissor and primitive will use view scissor instead.
/// ///
/// @attention C99 equivalent is `bgfx_set_scissor_cached`.
///
void setScissor(uint16_t _cache = UINT16_MAX); void setScissor(uint16_t _cache = UINT16_MAX);
/// Set model matrix for draw primitive. If it is not called model will /// Set model matrix for draw primitive. If it is not called model will
@ -1294,6 +1453,8 @@ namespace bgfx
/// @returns index into matrix cache in case the same model matrix has /// @returns index into matrix cache in case the same model matrix has
/// to be used for other draw primitive call. /// to be used for other draw primitive call.
/// ///
/// @attention C99 equivalent is `bgfx_set_transform`.
///
uint32_t setTransform(const void* _mtx, uint16_t _num = 1); uint32_t setTransform(const void* _mtx, uint16_t _num = 1);
/// Reserve `_num` matrices in internal matrix cache. Pointer returned /// Reserve `_num` matrices in internal matrix cache. Pointer returned
@ -1303,6 +1464,8 @@ namespace bgfx
/// @param _num Number of matrices. /// @param _num Number of matrices.
/// @returns index into matrix cache. /// @returns index into matrix cache.
/// ///
/// @attention C99 equivalent is `bgfx_alloc_transform`.
///
uint32_t allocTransform(Transform* _transform, uint16_t _num); uint32_t allocTransform(Transform* _transform, uint16_t _num);
/// Set model matrix from matrix cache for draw primitive. /// Set model matrix from matrix cache for draw primitive.
@ -1310,48 +1473,92 @@ namespace bgfx
/// @param _cache Index in matrix cache. /// @param _cache Index in matrix cache.
/// @param _num Number of matrices from cache. /// @param _num Number of matrices from cache.
/// ///
/// @attention C99 equivalent is `bgfx_set_transform_cached`.
///
void setTransform(uint32_t _cache, uint16_t _num = 1); void setTransform(uint32_t _cache, uint16_t _num = 1);
/// Set shader uniform parameter for draw primitive. /// Set shader uniform parameter for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_uniform`.
///
void setUniform(UniformHandle _handle, const void* _value, uint16_t _num = 1); void setUniform(UniformHandle _handle, const void* _value, uint16_t _num = 1);
/// Set index buffer for draw primitive. /// Set index buffer for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_index_buffer`.
///
void setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex = 0, uint32_t _numIndices = UINT32_MAX); void setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex = 0, uint32_t _numIndices = UINT32_MAX);
/// Set index buffer for draw primitive. /// Set index buffer for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_dynamic_index_buffer`.
///
void setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex = 0, uint32_t _numIndices = UINT32_MAX); void setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex = 0, uint32_t _numIndices = UINT32_MAX);
/// Set index buffer for draw primitive. /// Set index buffer for draw primitive.
///
/// @attention C99 equivalent is ``.
///
void setIndexBuffer(const TransientIndexBuffer* _tib); void setIndexBuffer(const TransientIndexBuffer* _tib);
/// Set index buffer for draw primitive. /// Set index buffer for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_transient_index_buffer`.
///
void setIndexBuffer(const TransientIndexBuffer* _tib, uint32_t _firstIndex, uint32_t _numIndices); void setIndexBuffer(const TransientIndexBuffer* _tib, uint32_t _firstIndex, uint32_t _numIndices);
/// Set vertex buffer for draw primitive. /// Set vertex buffer for draw primitive.
///
/// @attention C99 equivalent is ``.
///
void setVertexBuffer(VertexBufferHandle _handle); void setVertexBuffer(VertexBufferHandle _handle);
/// Set vertex buffer for draw primitive. /// Set vertex buffer for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_vertex_buffer`.
///
void setVertexBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices); void setVertexBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices);
/// Set vertex buffer for draw primitive. /// Set vertex buffer for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_dynamic_vertex_buffer`.
///
void setVertexBuffer(DynamicVertexBufferHandle _handle, uint32_t _numVertices = UINT32_MAX); void setVertexBuffer(DynamicVertexBufferHandle _handle, uint32_t _numVertices = UINT32_MAX);
/// Set vertex buffer for draw primitive. /// Set vertex buffer for draw primitive.
///
/// @attention C99 equivalent is ``.
///
void setVertexBuffer(const TransientVertexBuffer* _tvb); void setVertexBuffer(const TransientVertexBuffer* _tvb);
/// Set vertex buffer for draw primitive. /// Set vertex buffer for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_transient_vertex_buffer`.
///
void setVertexBuffer(const TransientVertexBuffer* _tvb, uint32_t _startVertex, uint32_t _numVertices); void setVertexBuffer(const TransientVertexBuffer* _tvb, uint32_t _startVertex, uint32_t _numVertices);
/// Set instance data buffer for draw primitive. /// Set instance data buffer for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_instance_data_buffer`.
///
void setInstanceDataBuffer(const InstanceDataBuffer* _idb, uint32_t _num = UINT32_MAX); void setInstanceDataBuffer(const InstanceDataBuffer* _idb, uint32_t _num = UINT32_MAX);
/// Set instance data buffer for draw primitive. /// Set instance data buffer for draw primitive.
///
/// @attention C99 equivalent is ``.
///
void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num); void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num);
/// Set instance data buffer for draw primitive. /// Set instance data buffer for draw primitive.
///
/// @attention C99 equivalent is ``.
///
void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num); void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num);
/// Set program for draw primitive. /// Set program for draw primitive.
///
/// @attention C99 equivalent is `bgfx_set_program`.
///
void setProgram(ProgramHandle _handle); void setProgram(ProgramHandle _handle);
/// Set texture stage for draw primitive. /// Set texture stage for draw primitive.
@ -1369,6 +1576,8 @@ namespace bgfx
/// @param _flags Texture sampler filtering flags. UINT32_MAX use the /// @param _flags Texture sampler filtering flags. UINT32_MAX use the
/// sampler filtering mode set by texture. /// sampler filtering mode set by texture.
/// ///
/// @attention C99 equivalent is `bgfx_set_texture`.
///
void setTexture(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint32_t _flags = UINT32_MAX); void setTexture(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint32_t _flags = UINT32_MAX);
/// Set texture stage for draw primitive. /// Set texture stage for draw primitive.
@ -1384,47 +1593,85 @@ namespace bgfx
/// - `BGFX_TEXTURE_[MIN/MAG/MIP]_[POINT/ANISOTROPIC]` - Point or anisotropic /// - `BGFX_TEXTURE_[MIN/MAG/MIP]_[POINT/ANISOTROPIC]` - Point or anisotropic
/// sampling. /// sampling.
/// ///
/// @attention C99 equivalent is `bgfx_set_texture_from_frame_buffer`.
///
void setTexture(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment = 0, uint32_t _flags = UINT32_MAX); void setTexture(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment = 0, uint32_t _flags = UINT32_MAX);
/// Submit primitive for rendering into single view. /// Submit primitive for rendering.
/// ///
/// @param _id View id. /// @param _id View id.
/// @param _depth Depth for sorting. /// @param _depth Depth for sorting.
/// @returns Number of draw calls. /// @returns Number of draw calls.
/// ///
/// @attention C99 equivalent is `bgfx_submit`.
///
uint32_t submit(uint8_t _id, int32_t _depth = 0); uint32_t submit(uint8_t _id, int32_t _depth = 0);
/// Submit primitive for rendering with index and instance data info from
/// indirect buffer.
///
/// @attention C99 equivalent is `bgfx_submit_indirect`.
/// ///
uint32_t submit(uint8_t _id, IndirectBufferHandle _indirectHandle, uint16_t _start = 0, uint16_t _num = 1, int32_t _depth = 0); uint32_t submit(uint8_t _id, IndirectBufferHandle _indirectHandle, uint16_t _start = 0, uint16_t _num = 1, int32_t _depth = 0);
///
///
/// @attention C99 equivalent is ``.
/// ///
void setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access); void setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access);
///
///
/// @attention C99 equivalent is ``.
/// ///
void setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access); void setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access);
///
///
/// @attention C99 equivalent is ``.
/// ///
void setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access); void setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access);
///
///
/// @attention C99 equivalent is ``.
/// ///
void setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access); void setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access);
///
///
/// @attention C99 equivalent is ``.
/// ///
void setBuffer(uint8_t _stage, IndirectBufferHandle _handle, Access::Enum _access); void setBuffer(uint8_t _stage, IndirectBufferHandle _handle, Access::Enum _access);
/// Set compute image from texture.
///
/// @attention C99 equivalent is `bgfx_set_image`.
/// ///
void setImage(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint8_t _mip, Access::Enum _access, TextureFormat::Enum _format = TextureFormat::Count); void setImage(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint8_t _mip, Access::Enum _access, TextureFormat::Enum _format = TextureFormat::Count);
/// Set compute image from frame buffer texture.
///
/// @attention C99 equivalent is `bgfx_set_image_from_frame_buffer`.
/// ///
void setImage(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment, Access::Enum _access, TextureFormat::Enum _format = TextureFormat::Count); void setImage(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment, Access::Enum _access, TextureFormat::Enum _format = TextureFormat::Count);
/// Dispatch compute. /// Dispatch compute.
///
/// @attention C99 equivalent is `bgfx_dispatch`.
///
uint32_t dispatch(uint8_t _id, ProgramHandle _handle, uint16_t _numX = 1, uint16_t _numY = 1, uint16_t _numZ = 1, uint8_t _flags = BGFX_SUBMIT_EYE_FIRST); uint32_t dispatch(uint8_t _id, ProgramHandle _handle, uint16_t _numX = 1, uint16_t _numY = 1, uint16_t _numZ = 1, uint8_t _flags = BGFX_SUBMIT_EYE_FIRST);
/// Dispatch compute indirect.
///
/// @attention C99 equivalent is `bgfx_dispatch_indirect`.
/// ///
uint32_t dispatch(uint8_t _id, ProgramHandle _handle, IndirectBufferHandle _indirectHandle, uint16_t _start = 0, uint16_t _num = 1, uint8_t _flags = BGFX_SUBMIT_EYE_FIRST); uint32_t dispatch(uint8_t _id, ProgramHandle _handle, IndirectBufferHandle _indirectHandle, uint16_t _start = 0, uint16_t _num = 1, uint8_t _flags = BGFX_SUBMIT_EYE_FIRST);
/// Discard all previously set state for draw or compute call. /// Discard all previously set state for draw or compute call.
///
/// @attention C99 equivalent is `bgfx_discard`.
///
void discard(); void discard();
/// Request screen shot. /// Request screen shot.
@ -1434,6 +1681,8 @@ namespace bgfx
/// @remarks /// @remarks
/// `bgfx::CallbackI::screenShot` must be implemented. /// `bgfx::CallbackI::screenShot` must be implemented.
/// ///
/// @attention C99 equivalent is `bgfx_save_screen_shot`.
///
void saveScreenShot(const char* _filePath); void saveScreenShot(const char* _filePath);
} // namespace bgfx } // namespace bgfx