From 509755ae08374acbd082c46aba4ea208be0db808 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=91=D1=80=D0=B0=D0=BD=D0=B8=D0=BC=D0=B8=D1=80=20=D0=9A?=
=?UTF-8?q?=D0=B0=D1=80=D0=B0=D1=9F=D0=B8=D1=9B?=
General API for initialization, shutdown, frame management, debug, and querying renderer information. Initialization parameters used by C99’s equivalent binding is
+
bgfx::TopologyConvertbgfx::TopologySortvertexPack()vertexUnpack()vertexConvert()weldVertices()bgfx::TopologyConverttopologyConvert()bgfx::TopologySorttopologySortTriList()discard()touch()setPaletteColor()setPaletteColor()setPaletteColor()setPaletteColor()requestScreenShot()touch()discard()
+
bgfx::ViewMode
+
+Enumbgfx::ShadingRate
+
+EnumsetViewName()setViewRect()setViewRect()setViewScissor()setViewClear()setViewClear()bgfx::ViewMode
-
-EnumsetViewMode()setViewFrameBuffer()setViewTransform()setViewOrder()bgfx::ShadingRate
-
-EnumsetViewShadingRate()resetView()
-
-
bgfx::Memory
-alloc()copy()makeRef()
createShader()getShaderUniforms()destroy()
+
-
bgfx::TextureFormat
+
BGFX_TEXTURE_NONEBGFX_TEXTURE_MSAA_SAMPLEBGFX_TEXTURE_RTBGFX_TEXTURE_COMPUTE_WRITEBGFX_TEXTURE_SRGBBGFX_TEXTURE_BLIT_DSTBGFX_TEXTURE_READ_BACKBGFX_TEXTURE_RT_MSAA_X2BGFX_TEXTURE_RT_MSAA_X4BGFX_TEXTURE_RT_MSAA_X8BGFX_TEXTURE_RT_MSAA_X16BGFX_TEXTURE_EXTERNAL_SHAREDBGFX_TEXTURE_RT_WRITE_ONLYisTextureValid()bgfx::TextureFormatbgfx::TextureInfoisTextureValid()calcTextureSize()createTexture()createTexture2D()createTexture2D()createTexture2D()createTexture3D()createTextureCube()updateTexture2D()createTexture3D()updateTexture3D()createTextureCube()updateTextureCube()readTexture()getDirectAccessPtr()createFrameBuffer()createFrameBuffer()createFrameBuffer()createFrameBuffer()createFrameBuffer()getTexture()createFrameBuffer()setName()getTexture()destroy()General
+Initialization and Shutdown
-
-
bgfx::init.
-
-bgfx_init_t.
Public Members
-Select rendering backend. When set to RendererType::Count a default rendering backend will be selected appropriate to the platform. See: bgfx::RendererType
Autoselect adapter.
Vendor PCI ID. If set to BGFX_PCI_ID_NONE, discrete and integrated GPUs will be prioritised.
BGFX_PCI_ID_NONE - Auto-select adapter.
BGFX_PCI_ID_SOFTWARE_RASTERIZER - Software rasterizer.
BGFX_PCI_ID_AMD - AMD adapter.
BGFX_PCI_ID_APPLE - Apple adapter.
BGFX_PCI_ID_INTEL - Intel adapter.
BGFX_PCI_ID_NVIDIA - NVIDIA adapter.
BGFX_PCI_ID_MICROSOFT - Microsoft adapter.
Software rasterizer.
Device ID. If set to 0 it will select first device, or device with matching ID.
+AMD adapter.
Capabilities initialization mask (default: UINT64_MAX).
+Apple adapter.
Enable device for debugging.
+Intel adapter.
Enable device for profiling.
+nVidia adapter.
Enable fallback to next available renderer.
-Platform data.
-Backbuffer resolution and reset parameters. See: bgfx::Resolution.
Provide application specific callback interface. See: bgfx::CallbackI
Custom allocator. When a custom allocator is not specified, bgfx uses the CRT allocator. Bgfx assumes custom allocator is thread safe.
-Configurable runtime limits parameters.
-C99’s equivalent binding is bgfx_init_limits_t.
Public Members
-Maximum number of encoder threads.
-Minimum resource command buffer size.
-Maximum transient vertex buffer size.
-Maximum transient index buffer size.
-Mimimum uniform buffer size.
-Microsoft adapter.
ARM adapter.
Initialization parameters used by bgfx::init.
C99’s equivalent binding is bgfx_init_t.
Public Members
+Select rendering backend. When set to RendererType::Count a default rendering backend will be selected appropriate to the platform. See: bgfx::RendererType
Vendor PCI ID. If set to BGFX_PCI_ID_NONE, discrete and integrated GPUs will be prioritised.
BGFX_PCI_ID_NONE - Autoselect adapter.
BGFX_PCI_ID_SOFTWARE_RASTERIZER - Software rasterizer.
BGFX_PCI_ID_AMD - AMD adapter.
BGFX_PCI_ID_APPLE - Apple adapter.
BGFX_PCI_ID_INTEL - Intel adapter.
BGFX_PCI_ID_NVIDIA - NVIDIA adapter.
BGFX_PCI_ID_MICROSOFT - Microsoft adapter.
Device ID. If set to 0 it will select first device, or device with matching ID.
+Capabilities initialization mask (default: UINT64_MAX).
+Enable device for debugging.
+Enable device for profiling.
+Enable fallback to next available renderer.
+Platform data.
+Backbuffer resolution and reset parameters. See: bgfx::Resolution.
Provide application specific callback interface. See: bgfx::CallbackI
Custom allocator. When a custom allocator is not specified, bgfx uses the CRT allocator. Bgfx assumes custom allocator is thread safe.
+Public Members
+Maximum number of encoder threads.
+Minimum resource command buffer size.
+Maximum transient vertex buffer size.
+Maximum transient index buffer size.
+Mimimum uniform buffer size.
+Initialize the bgfx library.
C99’s equivalent binding is bgfx_init.
Autoselect adapter.
-Software rasterizer.
-AMD adapter.
-Apple adapter.
-Intel adapter.
-nVidia adapter.
-Microsoft adapter.
-Callback interface to implement application specific behavior. Cached items are currently used for OpenGL and Direct3D 12 binary shaders.
-Remark
-’fatal’ and ‘trace’ callbacks can be called from any thread. Other callbacks are called from the render thread.
-C99’s equivalent binding is bgfx_callback_interface_t.
Public Functions
-This callback is called on unrecoverable errors. It’s not safe to continue (Excluding _code Fatal::DebugCheck), inform the user and terminate the application.
Remark
-Not thread safe and it can be called from any thread.
-C99’s equivalent binding is bgfx_callback_vtbl.fatal.
_filePath – [in] File path where fatal message was generated.
_line – [in] Line where fatal message was generated.
_code – [in] Fatal error code.
_str – [in] More information about error.
Print debug message.
-Remark
-Not thread safe and it can be called from any thread.
-C99’s equivalent binding is bgfx_callback_vtbl.trace_vargs.
_filePath – [in] File path where debug message was generated.
_line – [in] Line where debug message was generated.
_format – [in] printf style format.
_argList – [in] Variable arguments list initialized with va_start.
Profiler region begin.
-Remark
-Not thread safe and it can be called from any thread.
-C99’s equivalent binding is bgfx_callback_vtbl.profiler_begin.
_name – [in] Region name, contains dynamic string.
_abgr – [in] Color of profiler region.
_filePath – [in] File path where profilerBegin was called.
_line – [in] Line where profilerBegin was called.
Profiler region begin with string literal name.
-Remark
-Not thread safe and it can be called from any thread.
-C99’s equivalent binding is bgfx_callback_vtbl.profiler_begin_literal.
_name – [in] Region name, contains string literal.
_abgr – [in] Color of profiler region.
_filePath – [in] File path where profilerBeginLiteral was called.
_line – [in] Line where profilerBeginLiteral was called.
Profiler region end.
-Remark
-Not thread safe and it can be called from any thread.
-C99’s equivalent binding is bgfx_callback_vtbl.profiler_end.
Returns the size of a cached item. Returns 0 if no cached item was found.
-C99’s equivalent binding is bgfx_callback_vtbl.cache_read_size.
_id – [in] Cache id.
-Number of bytes to read.
-Read cached item.
-C99’s equivalent binding is bgfx_callback_vtbl.cache_read.
_id – [in] Cache id.
_data – [in] Buffer where to read data.
_size – [in] Size of data to read.
True if data is read.
-Write cached item.
-C99’s equivalent binding is bgfx_callback_vtbl.cache_write.
_id – [in] Cache id.
_data – [in] Data to write.
_size – [in] Size of data to write.
Screenshot captured. Screenshot format is always 4-byte BGRA.
-C99’s equivalent binding is bgfx_callback_vtbl.screen_shot.
_filePath – [in] File path.
_width – [in] Image width.
_height – [in] Image height.
_pitch – [in] Number of bytes to skip between the start of each horizontal line of the image.
_data – [in] Image data.
_size – [in] Image size.
_yflip – [in] If true, image origin is bottom left.
Called when a video capture begins.
-C99’s equivalent binding is bgfx_callback_vtbl.capture_begin.
_width – [in] Image width.
_height – [in] Image height.
_pitch – [in] Number of bytes to skip between the start of each horizontal line of the image.
_format – [in] Texture format. See: TextureFormat::Enum.
_yflip – [in] If true, image origin is bottom left.
Called when a video capture ends.
-C99’s equivalent binding is bgfx_callback_vtbl.capture_end.
Captured frame.
-C99’s equivalent binding is bgfx_callback_vtbl.capture_frame.
_data – [in] Image data.
_size – [in] Image size.
Reset graphic settings and back-buffer size.
-This call doesn’t change the window size, it just resizes the back-buffer. Your windowing code controls the window size.
-C99’s equivalent binding is bgfx_reset.
_width – [in] Back-buffer width.
_height – [in] Back-buffer height.
_flags – [in] See: BGFX_RESET_* for more info.
BGFX_RESET_NONE - No reset flags.
BGFX_RESET_FULLSCREEN - Not supported yet.
BGFX_RESET_MSAA_X[2/4/8/16] - Enable 2, 4, 8 or 16 x MSAA.
BGFX_RESET_VSYNC - Enable V-Sync.
BGFX_RESET_MAXANISOTROPY - Turn on/off max anisotropy.
BGFX_RESET_CAPTURE - Begin screen capture.
BGFX_RESET_FLUSH_AFTER_RENDER - Flush rendering after submitting to GPU.
BGFX_RESET_FLIP_AFTER_RENDER - This flag specifies where flip occurs. Default behavior is that flip occurs before rendering new frame. This flag only has effect when BGFX_CONFIG_MULTITHREADED=0.
BGFX_RESET_SRGB_BACKBUFFER - Enable sRGB back-buffer.
_format – [in] Texture format. See: TextureFormat::Enum.
Reset flags control back-buffer resolution, MSAA, vsync, and other global rendering settings.
No reset flags.
Enable 2x MSAA.
-Enable 4x MSAA.
-Enable 8x MSAA.
-Enable 16x MSAA.
-Transparent backbuffer. Availability depends on: BGFX_CAPS_TRANSPARENT_BACKBUFFER.
Reset graphic settings and back-buffer size.
+This call doesn’t change the window size, it just resizes the back-buffer. Your windowing code controls the window size.
+C99’s equivalent binding is bgfx_reset.
_width – [in] Back-buffer width.
_height – [in] Back-buffer height.
_flags – [in] See: BGFX_RESET_* for more info.
BGFX_RESET_NONE - No reset flags.
BGFX_RESET_FULLSCREEN - Not supported yet.
BGFX_RESET_MSAA_X[2/4/8/16] - Enable 2, 4, 8 or 16 x MSAA.
BGFX_RESET_VSYNC - Enable V-Sync.
BGFX_RESET_MAXANISOTROPY - Turn on/off max anisotropy.
BGFX_RESET_CAPTURE - Begin screen capture.
BGFX_RESET_FLUSH_AFTER_RENDER - Flush rendering after submitting to GPU.
BGFX_RESET_FLIP_AFTER_RENDER - This flag specifies where flip occurs. Default behaviour is that flip occurs before rendering new frame. This flag only has effect when BGFX_CONFIG_MULTITHREADED=0.
BGFX_RESET_SRGB_BACKBUFFER - Enable sRGB back-buffer.
_format – [in] Texture format. See: TextureFormat::Enum.
Frame flags and the bgfx::frame call to advance to the next frame.
No frame flags.
+Capture frame with graphics debugger.
+Discard all draw calls.
+Advance to next frame. When using multithreaded renderer, this call just swaps internal buffers, kicks render thread, and returns. In singlethreaded renderer this call does frame rendering.
C99’s equivalent binding is bgfx_frame.
_capture – [in] Capture frame with graphics debugger.
+_flags – [in] Frame flags. See: BGFX_FRAME_* for more info.
BGFX_FRAME_NONE - No frame flag.
BGFX_FRAME_DEBUG_CAPTURE - Capture frame with graphics debugger.
BGFX_FRAME_DISCARD - Discard all draw calls.
Current frame number. This might be used in conjunction with double/multi buffering data outside the library and passing it to library via bgfx::makeRef calls.
Current frame number. This might be used in conjunction with double/multi buffering data outside the library and passing it to library via bgfx::makeRef calls.
Enable or disable debug features.
Flags for bgfx::setDebug.
Enable profiler. This causes per-view statistics to be collected, available through bgfx::Stats::ViewStats. This is unrelated to the profiler functions in bgfx::CallbackI.
Enable profiler. This causes per-view statistics to be collected, available through bgfx::Stats::ViewStats. This is unrelated to the profiler functions in bgfx::CallbackI.
Functions for printing debug text on screen.
Print into internal debug text character-buffer (VGA-compatible text mode).
+Print formatted data to internal debug text character-buffer (VGA-compatible text mode).
C99’s equivalent binding is bgfx_dbg_text_printf.
_x – [in] The X coordinate (2D position from top-left)
_y – [in] The Y coordinate (2D position from top-left)
_x – [in] Position x from the left corner of the window.
_y – [in] Position y from the top corner of the window.
_attr – [in] Color palette. Where top 4-bits represent index of background, and bottom 4-bits represent foreground color from standard VGA text palette (ANSI escape codes).
_format – [in] printf style format.
_format – [in] printf style format.
Print into internal debug text character-buffer (VGA-compatible text mode).
+Print formatted data from variable argument list to internal debug text character-buffer (VGA-compatible text mode).
C99’s equivalent binding is bgfx_dbg_text_vprintf.
_x – [in] The X coordinate (2D position from top-left)
_y – [in] The Y coordinate (2D position from top-left)
_x – [in] Position x from the left corner of the window.
_y – [in] Position y from the top corner of the window.
_attr – [in] Color palette. Where top 4-bits represent index of background, and bottom 4-bits represent foreground color from standard VGA text palette (ANSI escape codes).
_format – [in] printf style format.
_argList – [in] additional arguments for format string
_argList – [in] Variable arguments list for format string.
_x – [in] The X coordinate (2D position from top-left)
_y – [in] The Y coordinate (2D position from top-left)
_width – [in] Image width
_height – [in] Image height
_x – [in] Position x from the left corner of the window.
_y – [in] Position y from the top corner of the window.
_width – [in] Image width.
_height – [in] Image height.
_data – [in] Raw image data (character/attribute raw encoding).
_pitch – [in] Image pitch in bytes.
Returns supported backend API renderers.
-C99’s equivalent binding is bgfx_get_supported_renderers.
_max – [in] Maximum number of elements in _enum array.
_enum – [inout] Array where supported renderers will be written.
Number of supported renderers.
-Returns current renderer backend API type.
-Remark
-Library must be initialized.
-C99’s equivalent binding is bgfx_get_renderer_type.
Query the active rendering backend.
Returns renderer capabilities.
+Returns supported backend API renderers.
+C99’s equivalent binding is bgfx_get_supported_renderers.
_max – [in] Maximum number of elements in _enum array.
_enum – [inout] Array where supported renderers will be written.
Number of supported renderers.
+Returns current renderer backend API type.
Remark
Library must be initialized.
C99’s equivalent binding is bgfx_get_caps.
C99’s equivalent binding is bgfx_get_renderer_type.
Pointer to static bgfx::Caps structure.
Renderer backend type. See: bgfx::RendererType
Renderer capabilities.
-C99’s equivalent binding is bgfx_caps_t.
Public Members
-Renderer backend type. See: bgfx::RendererType
Supported functionality.
-See BGFX_CAPS_* flags at https://bkaradzic.github.io/bgfx/bgfx.html#available-caps
True when NDC depth is in [-1, 1] range, otherwise its [0, 1].
-True when NDC origin is at bottom left.
-Number of enumerated GPUs.
-Supported texture format capabilities flags:
-BGFX_CAPS_FORMAT_TEXTURE_NONE - Texture format is not supported.
BGFX_CAPS_FORMAT_TEXTURE_2D - Texture format is supported.
BGFX_CAPS_FORMAT_TEXTURE_2D_SRGB - Texture as sRGB format is supported.
BGFX_CAPS_FORMAT_TEXTURE_2D_EMULATED - Texture format is emulated.
BGFX_CAPS_FORMAT_TEXTURE_3D - Texture format is supported.
BGFX_CAPS_FORMAT_TEXTURE_3D_SRGB - Texture as sRGB format is supported.
BGFX_CAPS_FORMAT_TEXTURE_3D_EMULATED - Texture format is emulated.
BGFX_CAPS_FORMAT_TEXTURE_CUBE - Texture format is supported.
BGFX_CAPS_FORMAT_TEXTURE_CUBE_SRGB - Texture as sRGB format is supported.
BGFX_CAPS_FORMAT_TEXTURE_CUBE_EMULATED - Texture format is emulated.
BGFX_CAPS_FORMAT_TEXTURE_VERTEX - Texture format can be used from vertex shader.
BGFX_CAPS_FORMAT_TEXTURE_IMAGE_READ - Texture format can be used as image and read from.
BGFX_CAPS_FORMAT_TEXTURE_IMAGE_WRITE - Texture format can be used as image and written to.
BGFX_CAPS_FORMAT_TEXTURE_FRAMEBUFFER - Texture format can be used as frame buffer.
BGFX_CAPS_FORMAT_TEXTURE_FRAMEBUFFER_MSAA - Texture format can be used as MSAA frame buffer.
BGFX_CAPS_FORMAT_TEXTURE_MSAA - Texture can be sampled as MSAA.
BGFX_CAPS_FORMAT_TEXTURE_MIP_AUTOGEN - Texture format supports auto-generated mips.
GPU info.
-C99’s equivalent binding is bgfx_caps_gpu_t.
Renderer runtime limits.
-C99’s equivalent binding is bgfx_caps_limits_t.
Public Members
-Maximum number of draw calls.
-Maximum number of blit calls.
-Maximum texture size.
-Maximum texture layers.
-Maximum number of views.
-Maximum number of frame buffer handles.
-Maximum number of frame buffer attachments.
-Maximum number of program handles.
-Maximum number of shader handles.
-Maximum number of texture handles.
-Maximum number of texture samplers.
-Maximum number of compute bindings.
-Maximum number of vertex format layouts.
-Maximum number of vertex streams.
-Maximum number of index buffer handles.
-Maximum number of vertex buffer handles.
-Maximum number of dynamic index buffer handles.
-Maximum number of dynamic vertex buffer handles.
-Maximum number of uniform handles.
-Maximum number of occlusion query handles.
-Maximum number of encoder threads.
-Minimum resource command buffer size.
-Maximum transient vertex buffer size.
-Maximum transient index buffer size.
-Mimimum uniform buffer size.
-Query GPU capabilities and limits.
Individual capability flags.
Texture compare less equal mode is supported.
CPU direct access to GPU texture memory.
External texture is supported.
+External shared texture is supported.
+Viewport layer is available in vertex shader. All texture compare modes are supported.
Returns performance counters.
+Per-frame rendering statistics.
+View stats.
Pointer returned is valid until bgfx::frame is called.
C99’s equivalent binding is bgfx_get_stats.
C99’s equivalent binding is bgfx_view_stats_t.
Public Members
+View name.
+View id.
+CPU (submit) begin time.
+CPU (submit) end time.
+GPU begin time.
+GPU end time.
+Frame which generated gpuTimeBegin, gpuTimeEnd.
+Encoder stats.
+C99’s equivalent binding is bgfx_encoder_stats_t.
Renderer statistics data.
Remark
-All time values are high-resolution timestamps, while time frequencies define timestamps-per-second for that hardware.
+All time values are high-resolution timestamps, while time frequencies define timestamps-per-second for that hardware.
C99’s equivalent binding is bgfx_stats_t.
C99’s equivalent binding is bgfx_stats_t.
CPU time between two bgfx::frame calls.
CPU time between two bgfx::frame calls.
View stats.
+Returns performance counters.
C99’s equivalent binding is bgfx_view_stats_t.
Pointer returned is valid until bgfx::frame is called.
C99’s equivalent binding is bgfx_get_stats.
Public Members
-View name.
-View id.
-CPU (submit) begin time.
-CPU (submit) end time.
-GPU begin time.
-GPU end time.
-Frame which generated gpuTimeBegin, gpuTimeEnd.
-Encoder stats.
-C99’s equivalent binding is bgfx_encoder_stats_t.
Performance counters.
These are platform specific APIs. It is only necessary to use these APIs in conjunction with creating windows.
-Render frame.
-bgfx::renderFrame is blocking call. It waits for bgfx::frame to be called from API thread to process frame. If timeout value is passed call will timeout and return even if bgfx::frame is not called.
C99’s equivalent binding is bgfx_render_frame.
Warning
-This call should be only used on platforms that don’t allow creating separate rendering thread. If it is called before to bgfx::init, render thread won’t be created by bgfx::init call.
-_msecs – Timeout in milliseconds.
-Current renderer state. See: bgfx::RenderFrame.
Set platform data.
+Internal data.
C99’s equivalent binding is bgfx_set_platform_data.
C99’s equivalent binding is bgfx_internal_data_t.
Warning
-Must be called before bgfx::init.
Public Members
+Renderer capabilities.
+GL context, or D3D device.
+GL context, D3D device, or Vulkan device. If NULL, bgfx will create context/device.
D3D12 Queue. If NULL bgfx will create queue.
Render frame.
+bgfx::renderFrame is blocking call. It waits for bgfx::frame to be called from API thread to process frame. If timeout value is passed call will timeout and return even if bgfx::frame is not called.
C99’s equivalent binding is bgfx_render_frame.
Warning
+This call should be only used on platforms that don’t allow creating separate rendering thread. If it is called before to bgfx::init, render thread won’t be created by bgfx::init call.
+_msecs – [in] Timeout in milliseconds.
+Current renderer context state. See: bgfx::RenderFrame.
Set platform data.
+C99’s equivalent binding is bgfx_set_platform_data.
Warning
+Must be called before bgfx::init.
_data – [in] Platform data.
+Warning
Must be called only on render thread.
-Internal data.
-C99’s equivalent binding is bgfx_internal_data_t.
Internal data.
_height – [in] Height.
_numMips – [in] Number of mip-maps.
_format – [in] Texture format. See: TextureFormat::Enum.
_flags – [in] Default texture sampling mode is linear, and wrap mode is repeat.
_flags – [in] Texture creation (see BGFX_TEXTURE_*.), and sampler (see BGFX_SAMPLER_*) flags. Default texture sampling mode is linear, and wrap mode is repeat.
BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
Native API pointer to texture. If result is 0, texture is not created yet from the main thread.
Native API pointer to texture. If result is 0, texture is not created yet from the main thread.
+Pack vertex attribute into vertex stream format.
-C99’s equivalent binding is bgfx_vertex_pack.
_input – [in] Value to be packed into vertex stream.
_inputNormalized – [in] True if input value is already normalized.
_attr – [in] Attribute to pack.
_layout – [in] Vertex stream layout.
_data – [in] Destination vertex stream where data will be packed.
_index – [in] Vertex index that will be modified.
Unpack vertex attribute from vertex stream format.
-C99’s equivalent binding is bgfx_vertex_unpack.
_output – [out] Result of unpacking.
_attr – [in] Attribute to unpack.
_layout – [in] Vertex stream layout.
_data – [in] Source vertex stream from where data will be unpacked.
_index – [in] Vertex index that will be unpacked.
Converts vertex stream data from one vertex stream format to another.
-C99’s equivalent binding is bgfx_vertex_convert.
_destLayout – [in] Destination vertex stream layout.
_destData – [in] Destination vertex stream.
_srcLayout – [in] Source vertex stream layout.
_srcData – [in] Source vertex stream data.
_num – [in] Number of vertices to convert from source to destination.
Weld vertices.
-C99’s equivalent binding is bgfx_weld_vertices.
_output – [in] Welded vertices remapping table. The size of buffer must be the same as number of vertices.
_layout – [in] Vertex stream layout.
_data – [in] Vertex stream.
_num – [in] Number of vertices in vertex stream.
_index32 – [in] Set to true if input indices are 32-bit.
_epsilon – [in] Error tolerance for vertex position comparison.
Number of unique vertices after vertex welding.
-Convert index buffer for use with different primitive topologies.
-C99’s equivalent binding is bgfx_topology_convert.
_conversion – [in] Conversion type, see TopologyConvert::Enum.
_dst – [in] Destination index buffer. If this argument is NULL function will return number of indices after conversion.
_dstSize – [in] Destination index buffer in bytes. It must be large enough to contain output indices. If destination size is insufficient index buffer will be truncated.
_indices – [in] Source indices.
_numIndices – [in] Number of input indices.
_index32 – [in] Set to true if input indices are 32-bit.
Number of output indices after conversion.
-Pack vertex attribute into vertex stream format.
+C99’s equivalent binding is bgfx_vertex_pack.
_input – [in] Value to be packed into vertex stream.
_inputNormalized – [in] true if input value is already normalized.
_attr – [in] Attribute to pack.
_layout – [in] Vertex stream layout.
_data – [in] Destination vertex stream where data will be packed.
_index – [in] Vertex index that will be modified.
Unpack vertex attribute from vertex stream format.
+C99’s equivalent binding is bgfx_vertex_unpack.
_output – [out] Result of unpacking.
_attr – [in] Attribute to unpack.
_layout – [in] Vertex stream layout.
_data – [in] Source vertex stream from where data will be unpacked.
_index – [in] Vertex index that will be unpacked.
Converts vertex stream data from one vertex stream format to another.
+C99’s equivalent binding is bgfx_vertex_convert.
_dstLayout – [in] Destination vertex stream layout.
_dstData – [in] Destination vertex stream.
_srcLayout – [in] Source vertex stream layout.
_srcData – [in] Source vertex stream data.
_num – [in] Number of vertices to convert from source to destination.
Weld vertices. Returns number of unique vertices after welding.
+C99’s equivalent binding is bgfx_weld_vertices.
_output – [in] Welded vertices remapping table. The size of buffer must be the same as number of vertices.
_layout – [in] Vertex stream layout.
_data – [in] Vertex stream.
_num – [in] Number of vertices in vertex stream.
_index32 – [in] Set to true if input indices are 32-bit.
_epsilon – [in] Error tolerance for vertex position comparison.
Number of unique vertices after vertex welding.
+Convert index buffer for use with different primitive topologies.
+C99’s equivalent binding is bgfx_topology_convert.
_conversion – [in] Conversion type, see TopologyConvert::Enum.
_dst – [out] Destination index buffer. If this argument is NULL function will return number of indices after conversion.
_dstSize – [in] Destination index buffer in bytes. It must be large enough to contain output indices. If destination size is insufficient index buffer will be truncated.
_indices – [in] Source indices.
_numIndices – [in] Number of input indices.
_index32 – [in] Set to true if input indices are 32-bit.
Number of output indices after conversion.
+_sort – [in] Sort order, see TopologySort::Enum.
_dst – [in] Destination index buffer.
_dst – [out] Destination index buffer.
_dstSize – [in] Destination index buffer in bytes. It must be large enough to contain output indices. If destination size is insufficient index buffer will be truncated.
_dir – [in] Direction (vector must be normalized).
_pos – [in] Position.
Discard all previously set state for draw or compute call.
-C99’s equivalent binding is bgfx_discard.
_flags – [in] Draw/compute states to discard.
-Submit an empty primitive for rendering. Uniforms and draw state will be applied but no geometry will be submitted.
-These empty draw calls will sort before ordinary draw calls.
-C99’s equivalent binding is bgfx_touch.
_id – [in] View id.
-Set palette color value.
-C99’s equivalent binding is bgfx_set_palette_color.
_index – [in] Index into palette.
_rgba – [in] Packed 32-bit RGBA value.
_index – [in] Index into palette.
_rgba – [in] RGBA floating point value.
_rgba – [in] RGBA floating point values.
Set palette color value.
C99’s equivalent binding is bgfx_set_palette_color.
C99’s equivalent binding is bgfx_set_palette_color_rgba32f.
Set palette color value.
+C99’s equivalent binding is bgfx_set_palette_color_rgba8.
_index – [in] Index into palette.
_rgba – [in] Packed 32-bit RGBA value.
Request screen shot of window back buffer.
Remark
-bgfx::CallbackI::screenShot must be implemented.
bgfx::CallbackI::screenShot must be implemented.
Frame buffer handle must be created with OS’ target native window handle.
+Frame buffer handle must be created with OS’ target native window handle.
C99’s equivalent binding is bgfx_request_screen_shot.
_handle – [in] Frame buffer handle. If handle is BGFX_INVALID_HANDLE request will be made for main window back buffer.
_filePath – [in] Will be passed to bgfx::CallbackI::screenShot callback.
_filePath – [in] Will be passed to bgfx::CallbackI::screenShot callback.
Submit an empty primitive for rendering. Uniforms and draw state will be applied but no geometry will be submitted.
+Remark
+These empty draw calls will sort before ordinary draw calls.
+C99’s equivalent binding is bgfx_touch.
_id – [in] View id.
+Discard previously set state for draw or compute call.
+C99’s equivalent binding is bgfx_discard.
_flags – [in] Draw/compute states to discard.
+bgfx::setViewMode.
Sequential order is less efficient, because it doesn’t allow state change optimization, and should be avoided when possible.
By default, Views are sorted by their View ID, in ascending order. For dynamic renderers where the right order might not be known until the last moment, -View IDs can be changed to use arbitrary ordering with bgfx::setViewOrder.
+View IDs can be changed to use arbitrary ordering withbgfx::setViewOrder.
A View’s state is preserved between frames.
+View mode sets draw call sort order.
+C99’s equivalent binding is bgfx_view_mode_t.
Public Types
+View modes:
+Values:
+Default sort order.
+Sort in the same order in which submit calls were called.
+Sort draw call depth in ascending order.
+Sort draw call depth in descending order.
+Shading Rate.
+C99’s equivalent binding is bgfx_shading_rate_t.
Public Types
+Shading rate:
+Values:
+1x1
+1x2
+2x1
+2x2
+2x4
+4x2
+4x4
+Set view name.
-In graphics debugger view name will appear as:
"nnnce <view name>"
- ^ ^^ ^
- | |+-- eye (L/R)
+In graphics debugger view name will appear as: "nnnc <view name>"
+ ^ ^ ^
| +--- compute (C)
+------ view id
@@ -2920,8 +2511,8 @@ In graphics debugger view name will appear as:
-
-void bgfx::setViewClear(ViewId _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 clear flags with different clear color for each frame buffer texture. bgfx::setPaletteColor must be used to set up a clear color palette.
+void bgfx::setViewClear(ViewId _id, uint16_t _flags, float _depth, uint8_t _stencil, uint8_t _c0 = UINT8_MAX, uint8_t _c1 = UINT8_MAX, uint8_t _c2 = UINT8_MAX, uint8_t _c3 = UINT8_MAX, uint8_t _c4 = UINT8_MAX, uint8_t _c5 = UINT8_MAX, uint8_t _c6 = UINT8_MAX, uint8_t _c7 = UINT8_MAX)
+Set view clear flags with different clear color for each frame buffer texture. bgfx::setPaletteColor must be used to set up a clear color palette.
- Attention
C99’s equivalent binding is bgfx_set_view_clear_mrt.
@@ -2965,69 +2556,19 @@ In graphics debugger view name will appear as: BGFX_CLEAR_NONE to remove any clear operation. See: BGFX_CLEAR_*.
_depth – [in] Depth clear value.
_stencil – [in] Stencil clear value.
-_0 – [in] Palette index for frame buffer attachment 0.
-_1 – [in] Palette index for frame buffer attachment 1.
-_2 – [in] Palette index for frame buffer attachment 2.
-_3 – [in] Palette index for frame buffer attachment 3.
-_4 – [in] Palette index for frame buffer attachment 4.
-_5 – [in] Palette index for frame buffer attachment 5.
-_6 – [in] Palette index for frame buffer attachment 6.
-_7 – [in] Palette index for frame buffer attachment 7.
+_c0 – [in] Palette index for frame buffer attachment 0.
+_c1 – [in] Palette index for frame buffer attachment 1.
+_c2 – [in] Palette index for frame buffer attachment 2.
+_c3 – [in] Palette index for frame buffer attachment 3.
+_c4 – [in] Palette index for frame buffer attachment 4.
+_c5 – [in] Palette index for frame buffer attachment 5.
+_c6 – [in] Palette index for frame buffer attachment 6.
+_c7 – [in] Palette index for frame buffer attachment 7.
-
--
-struct ViewMode
-View mode sets draw call sort order.
-
-- Attention
C99’s equivalent binding is bgfx_view_mode_t.
-
-
-
-
-Public Types
-
--
-enum Enum
-View modes:
-Values:
-
--
-enumerator Default
-Default sort order.
-
-
-
--
-enumerator Sequential
-Sort in the same order in which submit calls were called.
-
-
-
--
-enumerator DepthAscending
-Sort draw call depth in ascending order.
-
-
-
--
-enumerator DepthDescending
-Sort draw call depth in descending order.
-
-
-
--
-enumerator Count
-
-
-
-
-
-
-
-
void bgfx::setViewMode(ViewId _id, ViewMode::Enum _mode = ViewMode::Default)
@@ -3096,7 +2637,7 @@ In graphics debugger view name will appear as:
-
-void bgfx::setViewOrder(ViewId _id = 0, uint16_t _num = UINT16_MAX, const ViewId *_remap = NULL)
+void bgfx::setViewOrder(ViewId _id = 0, uint16_t _num = UINT16_MAX, const ViewId *_order = NULL)
Post submit view reordering.
- Attention
C99’s equivalent binding is bgfx_set_view_order.
@@ -3108,79 +2649,18 @@ In graphics debugger view name will appear as:
_id – [in] First view id.
_num – [in] Number of views to remap.
-_remap – [in] View remap id table. Passing NULL will reset view ids to default state.
+_order – [in] View remap id table. Passing NULL will reset view ids to default state.
-
--
-struct ShadingRate
-Shading Rate.
-
-- Attention
C99’s equivalent binding is bgfx_bgfx_shading_rate_t.
-
-
-
-
-
-
-
void bgfx::setViewShadingRate(ViewId _id, ShadingRate::Enum _shadingRate = ShadingRate::Rate1x1)
Set view shading rate.
-- Attention
Availability depends on: BGFX_CAPS_VARIABLE_RATE_SHADING.
+- Attention
Availability depends on: BGFX_CAPS_VARIABLE_RATE_SHADING.
- Attention
C99’s equivalent binding is bgfx_set_view_shading_rate.
@@ -3207,7 +2687,7 @@ In graphics debugger view name will appear as:
- Parameters:
-_id – [in] View id.
+_id – [in] _id View id.
@@ -3218,29 +2698,12 @@ In graphics debugger view name will appear as:
Encoder
API for multi-threaded submission.
-
--
-Encoder *bgfx::begin(bool _forThread = false)
-Begin submitting draw calls from thread.
-
-- Parameters:
-_forThread – [in] Explicitly request an encoder for a worker thread.
-
-
-
-
-
-
-
struct Encoder
Encoders are used for submitting draw calls from multiple threads. Only one encoder per thread should be used. Use bgfx::begin() to obtain an encoder for a thread.
-- Attention
C99’s equivalent binding is bgfx_encoder.
+- Attention
C99’s equivalent binding is bgfx_encoder_t.
@@ -3292,7 +2755,7 @@ In graphics debugger view name will appear as: BGFX_STATE_CULL_* - Backface culling mode.
BGFX_STATE_WRITE_* - Enable R, G, B, A or Z write.
BGFX_STATE_MSAA - Enable hardware multisample antialiasing.
-BGFX_STATE_PT_[TRISTRIP/LINES/POINTS] - Primitive type.
+BGFX_STATE_PT_[TRISTRIP/LINES/POINTS] - Primitive type.
_rgba – [in] Sets blend factor used by BGFX_STATE_BLEND_FACTOR and BGFX_STATE_BLEND_INV_FACTOR blend modes.
@@ -3342,8 +2805,12 @@ In graphics debugger view name will appear as:
-
uint16_t setScissor(uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height)
-Set scissor for draw primitive. To scissor for all primitives in view see bgfx::setViewScissor.
-
+Set scissor for draw primitive.
+
+Remark
+To scissor for all primitives in view see bgfx::setViewScissor.
+
+
- Attention
C99’s equivalent binding is bgfx_encoder_set_scissor.
@@ -3351,10 +2818,10 @@ In graphics debugger view name will appear as:
- Parameters:
-_x – [in] Position x from the left side of the window.
-_y – [in] Position y from the top of the window.
-_width – [in] Width of scissor region.
-_height – [in] Height of scissor region.
+_x – [in] Position x from the left corner of the window.
+_y – [in] Position y from the top corner of the window.
+_width – [in] Width of view scissor region.
+_height – [in] Height of view scissor region.
- Returns:
@@ -3367,14 +2834,18 @@ In graphics debugger view name will appear as:
void setScissor(uint16_t _cache = UINT16_MAX)
Set scissor from cache for draw primitive.
-
+
+Remark
+To scissor for all primitives in view see bgfx::setViewScissor.
+
+
- Attention
C99’s equivalent binding is bgfx_encoder_set_scissor_cached.
- Parameters:
-_cache – [in] Index in scissor cache. Pass UINT16_MAX to have primitive use view scissor instead.
+_cache – [in] Index in scissor cache.
@@ -3382,7 +2853,7 @@ In graphics debugger view name will appear as:
-
uint32_t setTransform(const void *_mtx, uint16_t _num = 1)
-Set model matrix for draw primitive. If it is not called, model will be rendered with identity model matrix.
+Set model matrix for draw primitive. If it is not called, the model will be rendered with an identity model matrix.
- Attention
C99’s equivalent binding is bgfx_encoder_set_transform.
@@ -3392,7 +2863,7 @@ In graphics debugger view name will appear as: Parameters:
_mtx – [in] Pointer to first matrix in array.
-_num – [in] Number of matrices in array.
+_num – [in] Number of matrices in array.
- Returns:
@@ -3401,30 +2872,6 @@ In graphics debugger view name will appear as:
--
-uint32_t allocTransform(Transform *_transform, uint16_t _num)
-Reserve _num matrices in internal matrix cache.
-
-- Attention
Pointer returned can be modified until bgfx::frame is called.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_alloc_transform.
-
-
-
-
-- Parameters:
-
-_transform – [in] Pointer to Transform structure.
-_num – [in] Number of matrices.
-
-
-- Returns:
-Index into matrix cache.
-
-
-
-
-
void setTransform(uint32_t _cache, uint16_t _num = 1)
@@ -3444,6 +2891,30 @@ In graphics debugger view name will appear as:
+-
+uint32_t allocTransform(Transform *_transform, uint16_t _num)
+Reserve matrices in internal matrix cache.
+
+- Attention
Pointer returned can be modified until bgfx::frame is called.
+
+- Attention
C99’s equivalent binding is bgfx_encoder_alloc_transform.
+
+
+
+
+- Parameters:
+
+_transform – [out] Pointer to Transform structure.
+_num – [in] Number of matrices.
+
+
+- Returns:
+Index in matrix cache.
+
+
+
+
-
void setUniform(UniformHandle _handle, const void *_value, uint16_t _num = 1)
@@ -3468,14 +2939,9 @@ In graphics debugger view name will appear as:
void setIndexBuffer(IndexBufferHandle _handle)
Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_set_index_buffer.
-
-
-
- Parameters:
-_handle – [in] Index buffer.
+_handle – [in] Index buffer.
@@ -3504,14 +2970,9 @@ In graphics debugger view name will appear as:
void setIndexBuffer(DynamicIndexBufferHandle _handle)
Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_set_dynamic_index_buffer.
-
-
-
- Parameters:
-_handle – [in] Dynamic index buffer.
+_handle – [in] Dynamic index buffer.
@@ -3540,14 +3001,9 @@ In graphics debugger view name will appear as:
void setIndexBuffer(const TransientIndexBuffer *_tib)
Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_set_transient_index_buffer.
-
-
-
- Parameters:
-_tib – [in] Transient index buffer.
+_tib – [in] Transient index buffer.
@@ -3576,16 +3032,11 @@ In graphics debugger view name will appear as:
void setVertexBuffer(uint8_t _stream, VertexBufferHandle _handle)
Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_set_vertex_buffer.
-
-
-
- Parameters:
_stream – [in] Vertex stream.
-_handle – [in] Vertex buffer.
+_handle – [in] Vertex buffer.
@@ -3596,7 +3047,7 @@ In graphics debugger view name will appear as: void setVertexBuffer(uint8_t _stream, VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
Set vertex buffer for draw primitive.
-- Attention
C99’s equivalent binding is bgfx_encoder_set_vertex_buffer.
+- Attention
C99’s equivalent bindings are bgfx_encoder_set_vertex_buffer_with_layout, bgfx_encoder_set_vertex_buffer.
@@ -3617,16 +3068,11 @@ In graphics debugger view name will appear as:
void setVertexBuffer(uint8_t _stream, DynamicVertexBufferHandle _handle)
Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_set_dynamic_vertex_buffer.
-
-
-
- Parameters:
_stream – [in] Vertex stream.
-_handle – [in] Dynamic vertex buffer.
+_handle – [in] Dynamic vertex buffer.
@@ -3637,7 +3083,7 @@ In graphics debugger view name will appear as: void setVertexBuffer(uint8_t _stream, DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
Set vertex buffer for draw primitive.
-- Attention
C99’s equivalent binding is bgfx_encoder_set_dynamic_vertex_buffer.
+- Attention
C99’s equivalent bindings are bgfx_encoder_set_dynamic_vertex_buffer_with_layout, bgfx_encoder_set_dynamic_vertex_buffer.
@@ -3658,16 +3104,11 @@ In graphics debugger view name will appear as:
void setVertexBuffer(uint8_t _stream, const TransientVertexBuffer *_tvb)
Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_set_transient_vertex_buffer.
-
-
-
- Parameters:
_stream – [in] Vertex stream.
-_tvb – [in] Transient vertex buffer.
+_tvb – [in] Transient vertex buffer.
@@ -3678,7 +3119,7 @@ In graphics debugger view name will appear as: void setVertexBuffer(uint8_t _stream, const TransientVertexBuffer *_tvb, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
Set vertex buffer for draw primitive.
-- Attention
C99’s equivalent binding is bgfx_encoder_set_transient_vertex_buffer.
+- Attention
C99’s equivalent bindings are bgfx_encoder_set_transient_vertex_buffer_with_layout, bgfx_encoder_set_transient_vertex_buffer.
@@ -3700,7 +3141,7 @@ In graphics debugger view name will appear as: void setVertexCount(uint32_t _numVertices)
Set number of vertices for auto generated vertices use in conjunction with gl_VertexID.
-- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
+- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
- Attention
C99’s equivalent binding is bgfx_encoder_set_vertex_count.
@@ -3717,14 +3158,9 @@ In graphics debugger view name will appear as:
void setInstanceDataBuffer(const InstanceDataBuffer *_idb)
Set instance data buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_encoder_set_instance_data_buffer.
-
-
-
- Parameters:
-_idb – [in] Transient instance data buffer.
+_idb – [in] Transient instance data buffer.
@@ -3751,7 +3187,7 @@ In graphics debugger view name will appear as:
-
-void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _start, uint32_t _num)
+void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
Set instance data buffer for draw primitive.
- Attention
C99’s equivalent binding is bgfx_encoder_set_instance_data_from_vertex_buffer.
@@ -3762,7 +3198,7 @@ In graphics debugger view name will appear as: Parameters:
_handle – [in] Vertex buffer.
-_start – [in] First instance data.
+_startVertex – [in] First instance data.
_num – [in] Number of data instances.
@@ -3771,7 +3207,7 @@ In graphics debugger view name will appear as:
-
-void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _start, uint32_t _num)
+void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
Set instance data buffer for draw primitive.
- Attention
C99’s equivalent binding is bgfx_encoder_set_instance_data_from_dynamic_vertex_buffer.
@@ -3781,8 +3217,8 @@ In graphics debugger view name will appear as:
- Parameters:
-_handle – [in] Vertex buffer.
-_start – [in] First instance data.
+_handle – [in] Dynamic vertex buffer.
+_startVertex – [in] First instance data.
_num – [in] Number of data instances.
@@ -3794,7 +3230,7 @@ In graphics debugger view name will appear as: void setInstanceCount(uint32_t _numInstances)
Set number of instances for auto generated instances use in conjunction with gl_InstanceID.
-- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
+- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
- Attention
C99’s equivalent binding is bgfx_encoder_set_instance_count.
@@ -3836,8 +3272,11 @@ In graphics debugger view name will appear as:
void touch(ViewId _id)
Submit an empty primitive for rendering. Uniforms and draw state will be applied but no geometry will be submitted. Useful in cases when no other draw/compute primitive is submitted to view, but it’s desired to execute clear view.
+
+Remark
These empty draw calls will sort before ordinary draw calls.
-
+
+
- Attention
C99’s equivalent binding is bgfx_encoder_touch.
@@ -3897,7 +3336,7 @@ In graphics debugger view name will appear as: void submit(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32_t _start = 0, uint32_t _num = 1, uint32_t _depth = 0, uint8_t _flags = BGFX_DISCARD_ALL)
Submit primitive for rendering with index and instance data info from indirect buffer.
-- Attention
Availability depends on: BGFX_CAPS_DRAW_INDIRECT.
+- Attention
Availability depends on: BGFX_CAPS_DRAW_INDIRECT.
- Attention
C99’s equivalent binding is bgfx_encoder_submit_indirect.
@@ -3923,7 +3362,7 @@ In graphics debugger view name will appear as: void submit(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32_t _start, IndexBufferHandle _numHandle, uint32_t _numIndex = 0, uint32_t _numMax = UINT32_MAX, uint32_t _depth = 0, uint8_t _flags = BGFX_DISCARD_ALL)
Submit primitive for rendering with index and instance data info and draw count from indirect buffers.
-- Attention
Availability depends on: BGFX_CAPS_DRAW_INDIRECT_COUNT.
+- Attention
Availability depends on: BGFX_CAPS_DRAW_INDIRECT_COUNT.
- Attention
C99’s equivalent binding is bgfx_encoder_submit_indirect_count.
@@ -4058,10 +3497,10 @@ In graphics debugger view name will appear as:
- Parameters:
-_stage – [in] Texture unit.
+_stage – [in] Compute stage.
_handle – [in] Texture handle.
_mip – [in] Mip level.
-_access – [in] Texture access. See Access::Enum.
+_access – [in] Image access. See Access::Enum.
_format – [in] Texture format. See: TextureFormat::Enum.
@@ -4070,7 +3509,7 @@ In graphics debugger view name will appear as:
-
-void dispatch(ViewId _id, ProgramHandle _handle, uint32_t _numX = 1, uint32_t _numY = 1, uint32_t _numZ = 1, uint8_t _flags = BGFX_DISCARD_ALL)
+void dispatch(ViewId _id, ProgramHandle _program, uint32_t _numX = 1, uint32_t _numY = 1, uint32_t _numZ = 1, uint8_t _flags = BGFX_DISCARD_ALL)
Dispatch compute.
- Attention
C99’s equivalent binding is bgfx_encoder_dispatch.
@@ -4081,7 +3520,7 @@ In graphics debugger view name will appear as: Parameters:
_id – [in] View id.
-_handle – [in] Compute program.
+_program – [in] Compute program.
_numX – [in] Number of groups X.
_numY – [in] Number of groups Y.
_numZ – [in] Number of groups Z.
@@ -4093,7 +3532,7 @@ In graphics debugger view name will appear as:
-
-void dispatch(ViewId _id, ProgramHandle _handle, IndirectBufferHandle _indirectHandle, uint32_t _start = 0, uint32_t _num = 1, uint8_t _flags = BGFX_DISCARD_ALL)
+void dispatch(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32_t _start = 0, uint32_t _num = 1, uint8_t _flags = BGFX_DISCARD_ALL)
Dispatch compute indirect.
- Attention
C99’s equivalent binding is bgfx_encoder_dispatch_indirect.
@@ -4104,7 +3543,7 @@ In graphics debugger view name will appear as: Parameters:
_id – [in] View id.
-_handle – [in] Compute program.
+_program – [in] Compute program.
_indirectHandle – [in] Indirect buffer.
_start – [in] First element in indirect buffer.
_num – [in] Number of dispatches.
@@ -4117,7 +3556,7 @@ In graphics debugger view name will appear as:
-
void discard(uint8_t _flags = BGFX_DISCARD_ALL)
-Discard all previously set state for draw or compute call.
+Discard previously set state for draw or compute call.
- Attention
C99’s equivalent binding is bgfx_encoder_discard.
@@ -4125,7 +3564,7 @@ In graphics debugger view name will appear as:
- Parameters:
-_flags – [in] Draw/compute states to discard.
+_flags – [in] Discard or preserve states. See BGFX_DISCARD_*.
@@ -4133,14 +3572,12 @@ In graphics debugger view name will appear as:
-
void blit(ViewId _id, TextureHandle _dst, uint16_t _dstX, uint16_t _dstY, TextureHandle _src, uint16_t _srcX = 0, uint16_t _srcY = 0, uint16_t _width = UINT16_MAX, uint16_t _height = UINT16_MAX)
-Blit texture 2D region between two 2D textures.
+Blit 2D texture region between two 2D textures.
-- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
+- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
- Attention
Availability depends on: BGFX_CAPS_TEXTURE_BLIT.
-- Attention
C99’s equivalent binding is bgfx_encoder_blit.
-
@@ -4163,11 +3600,11 @@ In graphics debugger view name will appear as:
-
void blit(ViewId _id, TextureHandle _dst, uint8_t _dstMip, uint16_t _dstX, uint16_t _dstY, uint16_t _dstZ, TextureHandle _src, uint8_t _srcMip = 0, uint16_t _srcX = 0, uint16_t _srcY = 0, uint16_t _srcZ = 0, uint16_t _width = UINT16_MAX, uint16_t _height = UINT16_MAX, uint16_t _depth = UINT16_MAX)
-Blit texture region between two textures.
+Blit 2D texture region between two 2D textures.
-- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
+- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
-- Attention
Availability depends on: BGFX_CAPS_TEXTURE_BLIT.
+- Attention
Availability depends on: BGFX_CAPS_TEXTURE_BLIT.
- Attention
C99’s equivalent binding is bgfx_encoder_blit.
@@ -4198,35 +3635,49 @@ In graphics debugger view name will appear as:
-Draw
-Draw state is not preserved between two draw calls.
-All state is cleared after calling bgfx::submit.
-
-State
-
-
-Debug
--
-void bgfx::setMarker(const char *_name, int32_t _len = INT32_MAX)
-Sets a debug marker. This allows you to group graphics calls together for easy browsing in graphics debugging tools.
+-
+Encoder *bgfx::begin(bool _forThread = false)
+Begin submitting draw calls from thread.
-- Attention
C99’s equivalent binding is bgfx_set_marker.
+- Attention
C99’s equivalent binding is bgfx_encoder_begin.
- Parameters:
-
-_name – [in] Marker name.
-_len – [in] Marker name length (if length is INT32_MAX, it’s expected that _name is zero terminated string.
-
+_forThread – [in] Explicitly request an encoder for a worker thread.
+
+- Returns:
+-
+
+
+
+
+Draw
+Draw state is not preserved between two draw calls.
+All state is cleared after calling bgfx::submit.
+
+Debug
+Debug markers for grouping draw calls in graphics debugging tools.
-
void bgfx::setName(ShaderHandle _handle, const char *_name, int32_t _len = INT32_MAX)
@@ -4241,7 +3692,7 @@ All state is cleared after calling bgfx::submit.
_handle – [in] Shader handle.
_name – [in] Shader name.
-_len – [in] Shader name length (if length is INT32_MAX, it’s expected that _name is zero terminated string.
+_len – [in] Shader name length (if length is INT32_MAX, it’s expected that _name is zero terminated string).
@@ -4267,9 +3718,29 @@ All state is cleared after calling bgfx::submit.
+
+-
+void bgfx::setMarker(const char *_name, int32_t _len = INT32_MAX)
+Sets a debug marker. This allows you to group graphics calls together for easy browsing in graphics debugging tools.
+
+- Attention
C99’s equivalent binding is bgfx_set_marker.
+
+
+
+
+- Parameters:
+
+_name – [in] Marker name.
+_len – [in] Marker name length (if length is INT32_MAX, it’s expected that _name is zero terminated string.
+
+
+
+
+
-
-State
+
+State
+Configure render state for draw calls.
-
void bgfx::setState(uint64_t _state, uint32_t _rgba = 0)
@@ -4277,7 +3748,7 @@ All state is cleared after calling bgfx::submit.
Remark
-To set up more complex states use: BGFX_STATE_ALPHA_REF(_ref), BGFX_STATE_POINT_SIZE(_size), BGFX_STATE_BLEND_FUNC(_src, _dst), BGFX_STATE_BLEND_FUNC_SEPARATE(_srcRGB, _dstRGB, _srcA, _dstA) BGFX_STATE_BLEND_EQUATION(_equation) BGFX_STATE_BLEND_EQUATION_SEPARATE(_equationRGB, _equationA)
+To set up more complex states use: BGFX_STATE_ALPHA_REF(_ref), BGFX_STATE_POINT_SIZE(_size), BGFX_STATE_BLEND_FUNC(_src, _dst), BGFX_STATE_BLEND_FUNC_SEPARATE(_srcRGB, _dstRGB, _srcA, _dstA), BGFX_STATE_BLEND_EQUATION(_equation), BGFX_STATE_BLEND_EQUATION_SEPARATE(_equationRGB, _equationA)
BGFX_STATE_BLEND_EQUATION_ADD is set when no other blend equation is specified.
@@ -4296,8 +3767,8 @@ All state is cleared after calling bgfx::submit.
BGFX_STATE_BLEND_EQUATION_* - See remark 2.
BGFX_STATE_CULL_* - Backface culling mode.
BGFX_STATE_WRITE_* - Enable R, G, B, A or Z write.
-BGFX_STATE_MSAA - Enable MSAA.
-BGFX_STATE_PT_[TRISTRIP/LINES/POINTS] - Primitive type.
+BGFX_STATE_MSAA - Enable hardware multisample antialiasing.
+BGFX_STATE_PT_[TRISTRIP/LINES/POINTS] - Primitive type.
_rgba – [in] Sets blend factor used by BGFX_STATE_BLEND_FACTOR and BGFX_STATE_BLEND_INV_FACTOR blend modes.
@@ -4309,6 +3780,7 @@ All state is cleared after calling bgfx::submit.
State Flags
+Render state flags for depth test, blending, culling, etc.
Write
-
@@ -4329,11 +3801,6 @@ All state is cleared after calling bgfx::submit.
Enable B write.
-
--
-BGFX_STATE_WRITE_RGB
-
-
-
BGFX_STATE_WRITE_A
@@ -4346,6 +3813,17 @@ All state is cleared after calling bgfx::submit.
Enable depth write. Enable RGB write.
+
+-
+BGFX_STATE_WRITE_RGB
+
+
+
+-
+BGFX_STATE_WRITE_MASK
+Write all channels mask.
+
+
Depth Test
-
@@ -4548,18 +4026,6 @@ All state is cleared after calling bgfx::submit.
Misc
-
--
-BGFX_STATE_BLEND_INDEPENDENT
-Enable blend independent.
-
-
-
--
-BGFX_STATE_BLEND_ALPHA_TO_COVERAGE
-Enable alpha to coverage. Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored).
-
-
-
BGFX_STATE_MSAA
@@ -4573,9 +4039,45 @@ All state is cleared after calling bgfx::submit.
Enable line AA rasterization.
+
+-
+BGFX_STATE_CONSERVATIVE_RASTER
+Enable conservative rasterization.
+
+
+
+-
+BGFX_STATE_NONE
+No state.
+
+
+
+-
+BGFX_STATE_FRONT_CCW
+Front counter-clockwise (default is clockwise).
+
+
+
+-
+BGFX_STATE_BLEND_INDEPENDENT
+Enable blend independent.
+
+
+
+-
+BGFX_STATE_BLEND_ALPHA_TO_COVERAGE
+Enable alpha to coverage. Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored).
+
+
+
+-
+BGFX_STATE_DEFAULT
+
+
Stencil
+Configure stencil test for draw calls.
-
void bgfx::setStencil(uint32_t _fstencil, uint32_t _bstencil = BGFX_STENCIL_NONE)
@@ -4598,23 +4100,70 @@ All state is cleared after calling bgfx::submit.
Stencil Flags
+Stencil test configuration flags.
-
BGFX_STENCIL_TEST_LESS
Enable stencil test, less.
+
+-
+BGFX_STENCIL_TEST_LEQUAL
+Enable stencil test, less or equal.
+
+
+
+-
+BGFX_STENCIL_TEST_EQUAL
+Enable stencil test, equal.
+
+
+
+-
+BGFX_STENCIL_TEST_GEQUAL
+Enable stencil test, greater or equal.
+
+
+
+-
+BGFX_STENCIL_TEST_GREATER
+Enable stencil test, greater.
+
+
+
+-
+BGFX_STENCIL_TEST_NOTEQUAL
+Enable stencil test, not equal.
+
+
+
+-
+BGFX_STENCIL_TEST_NEVER
+Enable stencil test, never.
+
+
+
+-
+BGFX_STENCIL_TEST_ALWAYS
+Enable stencil test, always.
+
+
Scissor
If the Scissor rectangle needs to be changed for
-every draw call in a View, use bgfx::setScissor.
-Otherwise, use bgfx::setViewScissor.
+every draw call in a View, use bgfx::setScissor.
+Otherwise, use bgfx::setViewScissor.
-
uint16_t bgfx::setScissor(uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height)
-Set scissor for draw primitive. For scissor for all primitives in view see bgfx::setViewScissor.
-
+Set scissor for draw primitive.
+
+Remark
+To scissor for all primitives in view see bgfx::setViewScissor.
+
+
- Attention
C99’s equivalent binding is bgfx_set_scissor.
@@ -4624,8 +4173,8 @@ Otherwise, use bgfx::setViewScissor.
_x – [in] Position x from the left corner of the window.
_y – [in] Position y from the top corner of the window.
-_width – [in] Width of scissor region.
-_height – [in] Height of scissor region.
+_width – [in] Width of view scissor region.
+_height – [in] Height of view scissor region.
- Returns:
@@ -4638,14 +4187,18 @@ Otherwise, use bgfx::setViewScissor.
-
void bgfx::setScissor(uint16_t _cache = UINT16_MAX)
Set scissor from cache for draw primitive.
-
+
+Remark
+To scissor for all primitives in view see bgfx::setViewScissor.
+
+
- Attention
C99’s equivalent binding is bgfx_set_scissor_cached.
- Parameters:
-_cache – [in] Index in scissor cache. Passing UINT16_MAX unset primitive scissor and primitive will use view scissor instead.
+_cache – [in] Index in scissor cache.
@@ -4653,30 +4206,7 @@ Otherwise, use bgfx::setViewScissor.
Transform
-
--
-uint32_t bgfx::allocTransform(Transform *_transform, uint16_t _num)
-Reserve _num matrices in internal matrix cache.
-
-- Attention
Pointer returned can be modified until bgfx::frame is called.
-
-- Attention
C99’s equivalent binding is bgfx_alloc_transform.
-
-
-
-
-- Parameters:
-
-_transform – [in] Pointer to Transform structure.
-_num – [in] Number of matrices.
-
-
-- Returns:
-index into matrix cache.
-
-
-
-
+Set model transform matrices for draw calls.
-
uint32_t bgfx::setTransform(const void *_mtx, uint16_t _num = 1)
@@ -4690,11 +4220,11 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_mtx – [in] Pointer to first matrix in array.
-_num – [in] Number of matrices in array.
+_num – [in] Number of matrices in array.
- Returns:
-index into matrix cache in case the same model matrix has to be used for other draw primitive call.
+Index into matrix cache in case the same model matrix has to be used for other draw primitive call.
@@ -4718,9 +4248,34 @@ Otherwise, use bgfx::setViewScissor.
+
+-
+uint32_t bgfx::allocTransform(Transform *_transform, uint16_t _num)
+Reserve matrices in internal matrix cache.
+
+- Attention
Pointer returned can be modified until bgfx::frame is called.
+
+- Attention
C99’s equivalent binding is bgfx_alloc_transform.
+
+
+
+
+- Parameters:
+
+_transform – [out] Pointer to Transform structure.
+_num – [in] Number of matrices.
+
+
+- Returns:
+Index in matrix cache.
+
+
+
+
Conditional Rendering
+Conditionally render based on occlusion query results.
-
void bgfx::setCondition(OcclusionQueryHandle _handle, bool _visible)
@@ -4743,78 +4298,7 @@ Otherwise, use bgfx::setViewScissor.
Buffers
-
--
-void bgfx::setIndexBuffer(IndexBufferHandle _handle)
-Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_index_buffer.
-
-
-
-
-- Parameters:
-_handle – [in] Index buffer.
-
-
-
-
-
--
-void bgfx::setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
-Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_index_buffer.
-
-
-
-
-- Parameters:
-
-_handle – [in] Index buffer.
-_firstIndex – [in] First index to render.
-_numIndices – [in] Number of indices to render.
-
-
-
-
-
-
--
-void bgfx::setIndexBuffer(DynamicIndexBufferHandle _handle)
-Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_dynamic_index_buffer.
-
-
-
-
-- Parameters:
-_handle – [in] Dynamic index buffer.
-
-
-
-
-
--
-void bgfx::setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
-Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_dynamic_index_buffer.
-
-
-
-
-- Parameters:
-
-_handle – [in] Dynamic index buffer.
-_firstIndex – [in] First index to render.
-_numIndices – [in] Number of indices to render.
-
-
-
-
-
+Set vertex, index, and instance data buffers for draw calls.
-
struct TransientIndexBuffer
@@ -4859,124 +4343,6 @@ Otherwise, use bgfx::setViewScissor.
-
--
-void bgfx::setIndexBuffer(const TransientIndexBuffer *_tib)
-Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_transient_index_buffer.
-
-
-
-
-- Parameters:
-_tib – [in] Transient index buffer.
-
-
-
-
-
--
-void bgfx::setIndexBuffer(const TransientIndexBuffer *_tib, uint32_t _firstIndex, uint32_t _numIndices)
-Set index buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_transient_index_buffer.
-
-
-
-
-- Parameters:
-
-_tib – [in] Transient index buffer.
-_firstIndex – [in] First index to render.
-_numIndices – [in] Number of indices to render.
-
-
-
-
-
-
--
-void bgfx::setVertexBuffer(uint8_t _stream, VertexBufferHandle _handle)
-Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_vertex_buffer.
-
-
-
-
-- Parameters:
-
-_stream – [in] Vertex stream.
-_handle – [in] Vertex buffer.
-
-
-
-
-
-
--
-void bgfx::setVertexBuffer(uint8_t _stream, VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
-Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_vertex_buffer.
-
-
-
-
-- Parameters:
-
-_stream – [in] Vertex stream.
-_handle – [in] Vertex buffer.
-_startVertex – [in] First vertex to render.
-_numVertices – [in] Number of vertices to render.
-_layoutHandle – [in] Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used.
-
-
-
-
-
-
--
-void bgfx::setVertexBuffer(uint8_t _stream, DynamicVertexBufferHandle _handle)
-Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_dynamic_vertex_buffer.
-
-
-
-
-- Parameters:
-
-_stream – [in] Vertex stream.
-_handle – [in] Dynamic vertex buffer.
-
-
-
-
-
-
--
-void bgfx::setVertexBuffer(uint8_t _stream, DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
-Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_dynamic_vertex_buffer.
-
-
-
-
-- Parameters:
-
-_stream – [in] Vertex stream.
-_handle – [in] Dynamic vertex buffer.
-_startVertex – [in] First vertex to render.
-_numVertices – [in] Number of vertices to render.
-_layoutHandle – [in] Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used.
-
-
-
-
-
-
struct TransientVertexBuffer
@@ -5027,65 +4393,6 @@ Otherwise, use bgfx::setViewScissor.
-
--
-void bgfx::setVertexBuffer(uint8_t _stream, const TransientVertexBuffer *_tvb)
-Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_transient_vertex_buffer.
-
-
-
-
-- Parameters:
-
-_stream – [in] Vertex stream.
-_tvb – [in] Transient vertex buffer.
-
-
-
-
-
-
--
-void bgfx::setVertexBuffer(uint8_t _stream, const TransientVertexBuffer *_tvb, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
-Set vertex buffer for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_transient_vertex_buffer.
-
-
-
-
-- Parameters:
-
-_stream – [in] Vertex stream.
-_tvb – [in] Transient vertex buffer.
-_startVertex – [in] First vertex to render.
-_numVertices – [in] Number of vertices to render.
-_layoutHandle – [in] Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used.
-
-
-
-
-
-
--
-void bgfx::setVertexCount(uint32_t _numVertices)
-Set number of vertices for auto generated vertices use in conjunction with gl_VertexID.
-
-- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
-
-- Attention
C99’s equivalent binding is bgfx_set_vertex_count.
-
-
-
-
-- Parameters:
-_numVertices – [in] Number of vertices.
-
-
-
-
-
struct InstanceDataBuffer
@@ -5137,17 +4444,189 @@ Otherwise, use bgfx::setViewScissor.
--
-void bgfx::setInstanceDataBuffer(const InstanceDataBuffer *_idb)
-Set instance data buffer for draw primitive.
+-
+void bgfx::setIndexBuffer(IndexBufferHandle _handle)
+Set index buffer for draw primitive.
+
+- Parameters:
+_handle – [in] Index buffer.
+
+
+
+
+
+-
+void bgfx::setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
+Set index buffer for draw primitive.
-- Attention
C99’s equivalent binding is bgfx_set_instance_data_buffer.
+- Attention
C99’s equivalent binding is bgfx_set_index_buffer.
- Parameters:
-_idb – [in] Transient instance data buffer.
+
+_handle – [in] Index buffer.
+_firstIndex – [in] First index to render.
+_numIndices – [in] Number of indices to render.
+
+
+
+
+
+
+-
+void bgfx::setIndexBuffer(DynamicIndexBufferHandle _handle)
+Set index buffer for draw primitive.
+
+- Parameters:
+_handle – [in] Dynamic index buffer.
+
+
+
+
+
+-
+void bgfx::setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
+Set index buffer for draw primitive.
+
+- Attention
C99’s equivalent binding is bgfx_set_dynamic_index_buffer.
+
+
+
+
+- Parameters:
+
+_handle – [in] Dynamic index buffer.
+_firstIndex – [in] First index to render.
+_numIndices – [in] Number of indices to render.
+
+
+
+
+
+
+-
+void bgfx::setIndexBuffer(const TransientIndexBuffer *_tib)
+Set index buffer for draw primitive.
+
+- Parameters:
+_tib – [in] Transient index buffer.
+
+
+
+
+
+-
+void bgfx::setIndexBuffer(const TransientIndexBuffer *_tib, uint32_t _firstIndex, uint32_t _numIndices)
+Set index buffer for draw primitive.
+
+- Attention
C99’s equivalent binding is bgfx_set_transient_index_buffer.
+
+
+
+
+- Parameters:
+
+_tib – [in] Transient index buffer.
+_firstIndex – [in] First index to render.
+_numIndices – [in] Number of indices to render.
+
+
+
+
+
+
+-
+void bgfx::setVertexBuffer(uint8_t _stream, VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
+Set vertex buffer for draw primitive.
+
+- Attention
C99’s equivalent bindings are bgfx_set_vertex_buffer_with_layout, bgfx_set_vertex_buffer.
+
+
+
+
+- Parameters:
+
+_stream – [in] Vertex stream.
+_handle – [in] Vertex buffer.
+_startVertex – [in] First vertex to render.
+_numVertices – [in] Number of vertices to render.
+_layoutHandle – [in] Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used.
+
+
+
+
+
+
+-
+void bgfx::setVertexBuffer(uint8_t _stream, DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
+Set vertex buffer for draw primitive.
+
+- Attention
C99’s equivalent bindings are bgfx_set_dynamic_vertex_buffer_with_layout, bgfx_set_dynamic_vertex_buffer.
+
+
+
+
+- Parameters:
+
+_stream – [in] Vertex stream.
+_handle – [in] Dynamic vertex buffer.
+_startVertex – [in] First vertex to render.
+_numVertices – [in] Number of vertices to render.
+_layoutHandle – [in] Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used.
+
+
+
+
+
+
+-
+void bgfx::setVertexBuffer(uint8_t _stream, const TransientVertexBuffer *_tvb, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
+Set vertex buffer for draw primitive.
+
+- Attention
C99’s equivalent bindings are bgfx_set_transient_vertex_buffer_with_layout, bgfx_set_transient_vertex_buffer.
+
+
+
+
+- Parameters:
+
+_stream – [in] Vertex stream.
+_tvb – [in] Transient vertex buffer.
+_startVertex – [in] First vertex to render.
+_numVertices – [in] Number of vertices to render.
+_layoutHandle – [in] Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used.
+
+
+
+
+
+
+-
+void bgfx::setVertexCount(uint32_t _numVertices)
+Set number of vertices for auto generated vertices use in conjunction with gl_VertexID.
+
+- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
+
+- Attention
C99’s equivalent binding is bgfx_set_vertex_count.
+
+
+
+
+- Parameters:
+_numVertices – [in] Number of vertices.
+
+
+
+
+
+-
+void bgfx::setInstanceDataBuffer(const InstanceDataBuffer *_idb)
+Set instance data buffer for draw primitive.
+
+- Parameters:
+_idb – [in] Transient instance data buffer.
@@ -5174,7 +4653,7 @@ Otherwise, use bgfx::setViewScissor.
-
-void bgfx::setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _start, uint32_t _num)
+void bgfx::setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
Set instance data buffer for draw primitive.
- Attention
C99’s equivalent binding is bgfx_set_instance_data_from_vertex_buffer.
@@ -5185,7 +4664,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_handle – [in] Vertex buffer.
-_start – [in] First instance data.
+_startVertex – [in] First instance data.
_num – [in] Number of data instances.
@@ -5194,7 +4673,7 @@ Otherwise, use bgfx::setViewScissor.
-
-void bgfx::setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _start, uint32_t _num)
+void bgfx::setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
Set instance data buffer for draw primitive.
- Attention
C99’s equivalent binding is bgfx_set_instance_data_from_dynamic_vertex_buffer.
@@ -5204,8 +4683,8 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
-_handle – [in] Vertex buffer.
-_start – [in] First instance data.
+_handle – [in] Dynamic vertex buffer.
+_startVertex – [in] First instance data.
_num – [in] Number of data instances.
@@ -5217,7 +4696,7 @@ Otherwise, use bgfx::setViewScissor.
void bgfx::setInstanceCount(uint32_t _numInstances)
Set number of instances for auto generated instances use in conjunction with gl_InstanceID.
-- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
+- Attention
Availability depends on: BGFX_CAPS_VERTEX_ID.
- Attention
C99’s equivalent binding is bgfx_set_instance_count.
@@ -5233,6 +4712,7 @@ Otherwise, use bgfx::setViewScissor.
Textures
+Bind textures to texture stages for draw calls.
-
void bgfx::setTexture(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint32_t _flags = UINT32_MAX)
@@ -5261,32 +4741,13 @@ Otherwise, use bgfx::setViewScissor.
Uniforms
-
--
-void bgfx::setUniform(UniformHandle _handle, const void *_value, uint16_t _num = 1)
-Set shader uniform parameter for draw primitive.
-
-- Attention
C99’s equivalent binding is bgfx_set_uniform.
-
-
-
-
-- Parameters:
-
-_handle – [in] Uniform.
-_value – [in] Pointer to uniform data.
-_num – [in] Number of elements. Passing UINT16_MAX will use the _num passed on uniform creation.
-
-
-
-
-
+Set shader uniform parameters for draw calls.
-
void bgfx::setViewUniform(ViewId _id, UniformHandle _handle, const void *_value, uint16_t _num = 1)
Set shader uniform parameter for view.
-- Attention
Uniform must be created with bgfx::UniformFreq::View argument.
+- Attention
Uniform must be created with bgfx::UniformFreq::View argument.
- Attention
C99’s equivalent binding is bgfx_set_view_uniform.
@@ -5309,7 +4770,7 @@ Otherwise, use bgfx::setViewScissor.
void bgfx::setFrameUniform(UniformHandle _handle, const void *_value, uint16_t _num = 1)
Set shader uniform parameter for frame.
-- Attention
Uniform must be created with bgfx::UniformFreq::View argument.
+- Attention
Uniform must be created with bgfx::UniformFreq::View argument.
- Attention
C99’s equivalent binding is bgfx_set_frame_uniform.
@@ -5326,6 +4787,26 @@ Otherwise, use bgfx::setViewScissor.
+
+-
+void bgfx::setUniform(UniformHandle _handle, const void *_value, uint16_t _num = 1)
+Set shader uniform parameter for draw primitive.
+
+- Attention
C99’s equivalent binding is bgfx_set_uniform.
+
+
+
+
+- Parameters:
+
+_handle – [in] Uniform.
+_value – [in] Pointer to uniform data.
+_num – [in] Number of elements. Passing UINT16_MAX will use the _num passed on uniform creation.
+
+
+
+
+
Submit
@@ -5345,7 +4826,7 @@ Otherwise, use bgfx::setViewScissor.
_id – [in] View id.
_program – [in] Program.
_depth – [in] Depth for sorting.
-_flags – [in] Discard or preserve states. See BGFX_DISCARD_*.
+_flags – [in] Which states to discard for next draw. See BGFX_DISCARD_*.
@@ -5367,7 +4848,7 @@ Otherwise, use bgfx::setViewScissor.
_program – [in] Program.
_occlusionQuery – [in] Occlusion query.
_depth – [in] Depth for sorting.
-_flags – [in] Discard or preserve states. See BGFX_DISCARD_*.
+_flags – [in] Which states to discard for next draw. See BGFX_DISCARD_*.
@@ -5378,7 +4859,7 @@ Otherwise, use bgfx::setViewScissor.
void bgfx::submit(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32_t _start = 0, uint32_t _num = 1, uint32_t _depth = 0, uint8_t _flags = BGFX_DISCARD_ALL)
Submit primitive for rendering with index and instance data info from indirect buffer.
-- Attention
Availability depends on: BGFX_CAPS_DRAW_INDIRECT.
+- Attention
Availability depends on: BGFX_CAPS_DRAW_INDIRECT.
- Attention
C99’s equivalent binding is bgfx_submit_indirect.
@@ -5393,7 +4874,7 @@ Otherwise, use bgfx::setViewScissor.
_start – [in] First element in indirect buffer.
_num – [in] Number of draws.
_depth – [in] Depth for sorting.
-_flags – [in] Discard or preserve states. See BGFX_DISCARD_*.
+_flags – [in] Which states to discard for next draw. See BGFX_DISCARD_*.
@@ -5404,7 +4885,7 @@ Otherwise, use bgfx::setViewScissor.
void bgfx::submit(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32_t _start, IndexBufferHandle _numHandle, uint32_t _numIndex = 0, uint32_t _numMax = UINT32_MAX, uint32_t _depth = 0, uint8_t _flags = BGFX_DISCARD_ALL)
Submit primitive for rendering with index and instance data info and draw count from indirect buffers.
-- Attention
Availability depends on:BGFX_CAPS_DRAW_INDIRECT_COUNT.
+- Attention
Availability depends on: BGFX_CAPS_DRAW_INDIRECT_COUNT.
- Attention
C99’s equivalent binding is bgfx_submit_indirect_count.
@@ -5421,7 +4902,7 @@ Otherwise, use bgfx::setViewScissor.
_numIndex – [in] Element in number buffer.
_numMax – [in] Max number of draws.
_depth – [in] Depth for sorting.
-_flags – [in] Discard or preserve states. See BGFX_DISCARD_*.
+_flags – [in] Which states to discard for next draw. See BGFX_DISCARD_*.
@@ -5431,9 +4912,10 @@ Otherwise, use bgfx::setViewScissor.
Compute
-Compute state is not preserved between compute dispatches; all state is cleared after calling bgfx::dispatch.
-
-Buffers
+Compute state is not preserved between compute dispatches; all state is cleared after calling bgfx::dispatch.
+
+Buffers
+Bind buffers to compute stages.
-
struct Access
@@ -5581,6 +5063,7 @@ Otherwise, use bgfx::setViewScissor.
Images
+Bind texture images to compute stages.
-
void bgfx::setImage(uint8_t _stage, TextureHandle _handle, uint8_t _mip, Access::Enum _access, TextureFormat::Enum _format = TextureFormat::Count)
@@ -5593,10 +5076,10 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
-_stage – [in] Texture unit.
+_stage – [in] Compute stage.
_handle – [in] Texture handle.
_mip – [in] Mip level.
-_access – [in] Texture access. See Access::Enum.
+_access – [in] Image access. See Access::Enum.
_format – [in] Texture format. See: TextureFormat::Enum.
@@ -5609,7 +5092,7 @@ Otherwise, use bgfx::setViewScissor.
In Views, all draw commands are executed after blit and compute commands.
-
-void bgfx::dispatch(ViewId _id, ProgramHandle _handle, uint32_t _numX = 1, uint32_t _numY = 1, uint32_t _numZ = 1, uint8_t _flags = BGFX_DISCARD_ALL)
+void bgfx::dispatch(ViewId _id, ProgramHandle _program, uint32_t _numX = 1, uint32_t _numY = 1, uint32_t _numZ = 1, uint8_t _flags = BGFX_DISCARD_ALL)
Dispatch compute.
- Attention
C99’s equivalent binding is bgfx_dispatch.
@@ -5620,7 +5103,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_id – [in] View id.
-_handle – [in] Compute program.
+_program – [in] Compute program.
_numX – [in] Number of groups X.
_numY – [in] Number of groups Y.
_numZ – [in] Number of groups Z.
@@ -5632,7 +5115,7 @@ Otherwise, use bgfx::setViewScissor.
-
-void bgfx::dispatch(ViewId _id, ProgramHandle _handle, IndirectBufferHandle _indirectHandle, uint32_t _start = 0, uint32_t _num = 1, uint8_t _flags = BGFX_DISCARD_ALL)
+void bgfx::dispatch(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32_t _start = 0, uint32_t _num = 1, uint8_t _flags = BGFX_DISCARD_ALL)
Dispatch compute indirect.
- Attention
C99’s equivalent binding is bgfx_dispatch_indirect.
@@ -5643,7 +5126,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_id – [in] View id.
-_handle – [in] Compute program.
+_program – [in] Compute program.
_indirectHandle – [in] Indirect buffer.
_start – [in] First element in indirect buffer.
_num – [in] Number of dispatches.
@@ -5663,12 +5146,10 @@ Otherwise, use bgfx::setViewScissor.
void bgfx::blit(ViewId _id, TextureHandle _dst, uint16_t _dstX, uint16_t _dstY, TextureHandle _src, uint16_t _srcX = 0, uint16_t _srcY = 0, uint16_t _width = UINT16_MAX, uint16_t _height = UINT16_MAX)
Blit 2D texture region between two 2D textures.
-- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
+- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
- Attention
Availability depends on: BGFX_CAPS_TEXTURE_BLIT.
-- Attention
C99’s equivalent binding is bgfx_blit.
-
@@ -5691,11 +5172,11 @@ Otherwise, use bgfx::setViewScissor.
-
void bgfx::blit(ViewId _id, TextureHandle _dst, uint8_t _dstMip, uint16_t _dstX, uint16_t _dstY, uint16_t _dstZ, TextureHandle _src, uint8_t _srcMip = 0, uint16_t _srcX = 0, uint16_t _srcY = 0, uint16_t _srcZ = 0, uint16_t _width = UINT16_MAX, uint16_t _height = UINT16_MAX, uint16_t _depth = UINT16_MAX)
-Blit texture region between two textures.
+Blit 2D texture region between two 2D textures.
-- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
+- Attention
Destination texture must be created with BGFX_TEXTURE_BLIT_DST flag.
-- Attention
Availability depends on: BGFX_CAPS_TEXTURE_BLIT.
+- Attention
Availability depends on: BGFX_CAPS_TEXTURE_BLIT.
- Attention
C99’s equivalent binding is bgfx_blit.
@@ -5727,101 +5208,15 @@ Otherwise, use bgfx::setViewScissor.
Resources
-
--
-struct Memory
-Memory must be obtained by calling bgfx::alloc, bgfx::copy, or bgfx::makeRef.
-
-- Attention
It is illegal to create this structure on stack and pass it to any bgfx API.
-
-- Attention
C99’s equivalent binding is bgfx_memory_t.
-
-
-
-
-
-
-
--
-const Memory *bgfx::alloc(uint32_t _size)
-Allocate buffer to pass to bgfx calls. Data will be freed inside bgfx.
-
-- Attention
C99’s equivalent binding is bgfx_alloc.
-
-
-
-
-- Parameters:
-_size – [in] Size to allocate.
-
-
-
-
-
--
-const Memory *bgfx::copy(const void *_data, uint32_t _size)
-Allocate buffer and copy data into it. Data will be freed inside bgfx.
-
-- Attention
C99’s equivalent binding is bgfx_copy.
-
-
-
-
-- Parameters:
-
-_data – [in] Pointer to data to be copied.
-_size – [in] Size of data to be copied.
-
-
-
-
-
-
--
-const Memory *bgfx::makeRef(const void *_data, uint32_t _size, ReleaseFn _releaseFn = NULL, void *_userData = NULL)
-Make reference to data to pass to bgfx. Unlike bgfx::alloc, this call doesn’t allocate memory for data. It just copies the _data pointer. You can pass ReleaseFn function pointer to release this memory after it’s consumed, otherwise you must make sure _data is available for at least 2 bgfx::frame calls. ReleaseFn function must be able to be called from any thread.
-
-- Attention
Data passed must be available for at least 2 bgfx::frame calls.
-
-- Attention
C99’s equivalent bindings are bgfx_make_ref, bgfx_make_ref_release.
-
-
-
-
-- Parameters:
-
-_data – [in] Pointer to data.
-_size – [in] Size of data.
-_releaseFn – [in] Callback function to release memory after use.
-_userData – [in] User data to be passed to callback function.
-
-
-
-
-
Shaders and Programs
Note
-Shaders must be compiled with offline command line too shaderc.
+Shaders must be compiled with offline command line tool shaderc.
-
-ShaderHandle bgfx::createShader(const Memory *_mem)
+ShaderHandle bgfx::createShader(const Memory *_mem)
Create shader from memory buffer.
Remark
@@ -5833,8 +5228,11 @@ Otherwise, use bgfx::setViewScissor.
-- Returns:
-Shader handle.
+- Parameters:
+_mem – [in] Shader binary.
+
+- Returns:
+Shader handle.
@@ -5856,8 +5254,8 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_handle – [in] Shader handle.
-_uniforms – [in] UniformHandle array where data will be stored.
-_max – [in] Maximum capacity of array.
+_uniforms – [out] UniformHandle array where data will be stored.
+_max – [in] Maximum capacity of array.
- Returns:
@@ -5869,8 +5267,12 @@ Otherwise, use bgfx::setViewScissor.
-
void bgfx::destroy(ShaderHandle _handle)
-Destroy shader. Once a shader program is created with _handle, it is safe to destroy that shader.
-
+Destroy shader.
+
+Remark
+Once a shader program is created with _handle, it is safe to destroy that shader.
+
+
- Attention
C99’s equivalent binding is bgfx_destroy_shader.
@@ -5896,7 +5298,7 @@ Otherwise, use bgfx::setViewScissor.
_vsh – [in] Vertex shader.
_fsh – [in] Fragment shader.
-_destroyShaders – [in] If true, shaders will be destroyed when program is destroyed.
+_destroyShaders – [in] If true, shaders will be destroyed when program is destroyed.
- Returns:
@@ -5907,7 +5309,7 @@ Otherwise, use bgfx::setViewScissor.
-
-ProgramHandle bgfx::createProgram(ShaderHandle _csh, bool _destroyShader = false)
+ProgramHandle bgfx::createProgram(ShaderHandle _csh, bool _destroyShaders = false)
Create program with compute shader.
- Attention
C99’s equivalent binding is bgfx_create_compute_program.
@@ -5918,7 +5320,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_csh – [in] Compute shader.
-_destroyShader – [in] If true, shader will be destroyed when program is destroyed.
+_destroyShaders – [in] If true, shaders will be destroyed when program is destroyed.
- Returns:
@@ -5944,8 +5346,8 @@ Otherwise, use bgfx::setViewScissor.
-
-Uniforms
+
+Uniforms
-
struct UniformType
@@ -6002,62 +5404,12 @@ Otherwise, use bgfx::setViewScissor.
-
--
-UniformHandle bgfx::createUniform(const char *_name, UniformType::Enum _type, uint16_t _num = 1)
-Create shader uniform parameter.
-
-u_modelViewProj mat4 - concatenated model view projection matrix.
-u_alphaRef float - alpha reference value for alpha test.
-
-
-
-
-Remark
-
-Uniform names are unique. It’s valid to call bgfx::createUniform multiple times with the same uniform name. The library will always return the same handle, but the handle reference count will be incremented. This means that the same number of bgfx::destroyUniform must be called to properly destroy the uniform.
-Predefined uniforms (declared in bgfx_shader.sh):
-u_viewRect vec4(x, y, width, height) - view rectangle for current view, in pixels.
-u_viewTexel vec4(1.0/width, 1.0/height, undef, undef) - inverse width and height
-u_view mat4 - view matrix
-u_invView mat4 - inverted view matrix
-u_proj mat4 - projection matrix
-u_invProj mat4 - inverted projection matrix
-u_viewProj mat4 - concatenated view projection matrix
-u_invViewProj mat4 - concatenated inverted view projection matrix
-u_model mat4[BGFX_CONFIG_MAX_BONES] - array of model matrices.
-u_modelView mat4 - concatenated model view matrix, only first model matrix from array is used.
-
-
-
-
-
-
-
-- Attention
C99’s equivalent binding is bgfx_create_uniform.
-
-
-
-
-- Parameters:
-
-_name – [in] Uniform name in shader.
-_type – [in] Type of uniform (See: bgfx::UniformType).
-_num – [in] Number of elements in array.
-
-
-- Returns:
-Handle to uniform object.
-
-
-
-
-
struct UniformFreq
Uniform frequency enum.
-- Attention
C99’s equivalent binding is bgfx_bgfx_uniform_freq_t.
+- Attention
C99’s equivalent binding is bgfx_uniform_freq_t.
@@ -6096,6 +5448,84 @@ Otherwise, use bgfx::setViewScissor.
+
+-
+struct UniformInfo
+Uniform info.
+
+- Attention
C99’s equivalent binding is bgfx_uniform_info_t.
+
+
+
+
+Public Members
+
+-
+char name[256]
+Uniform name.
+
+
+
+-
+UniformType::Enum type
+Uniform type.
+
+
+
+-
+uint16_t num
+Number of elements in array.
+
+
+
+
+
+
+-
+UniformHandle bgfx::createUniform(const char *_name, UniformType::Enum _type, uint16_t _num = 1)
+Create shader uniform parameter.
+
+Remark
+
+Uniform names are unique. It’s valid to call bgfx::createUniform multiple times with the same uniform name. The library will always return the same handle, but the handle reference count will be incremented. This means that the same number of bgfx::destroyUniform must be called to properly destroy the uniform.
+Predefined uniforms (declared in bgfx_shader.sh):
+u_viewRect vec4(x, y, width, height) - view rectangle for current view, in pixels.
+u_viewTexel vec4(1.0/width, 1.0/height, undef, undef) - inverse width and height
+u_view mat4 - view matrix
+u_invView mat4 - inverted view matrix
+u_proj mat4 - projection matrix
+u_invProj mat4 - inverted projection matrix
+u_viewProj mat4 - concatenated view projection matrix
+u_invViewProj mat4 - concatenated inverted view projection matrix
+u_model mat4[BGFX_CONFIG_MAX_BONES] - array of model matrices.
+u_modelView mat4 - concatenated model view matrix, only first model matrix from array is used.
+u_invModelView mat4 - inverted concatenated model view matrix.
+u_modelViewProj mat4 - concatenated model view projection matrix.
+u_alphaRef float - alpha reference value for alpha test.
+
+
+
+
+
+
+- Attention
C99’s equivalent binding is bgfx_create_uniform.
+
+
+
+
+- Parameters:
+
+_name – [in] Uniform name in shader.
+_type – [in] Type of uniform (See: bgfx::UniformType).
+_num – [in] Number of elements in array.
+
+
+- Returns:
+Handle to uniform object.
+
+
+
+
-
UniformHandle bgfx::createUniform(const char *_name, UniformFreq::Enum _freq, UniformType::Enum _type, uint16_t _num = 1)
@@ -6143,38 +5573,6 @@ Otherwise, use bgfx::setViewScissor.
-
--
-struct UniformInfo
-Uniform info.
-
-- Attention
C99’s equivalent binding is bgfx_uniform_info_t.
-
-
-
-
-Public Members
-
--
-char name[256]
-Uniform name.
-
-
-
--
-UniformType::Enum type
-Uniform type.
-
-
-
--
-uint16_t num
-Number of elements in array.
-
-
-
-
-
-
void bgfx::getUniformInfo(UniformHandle _handle, UniformInfo &_info)
@@ -6213,280 +5611,6 @@ Otherwise, use bgfx::setViewScissor.
Vertex Buffers
-
--
-VertexLayoutHandle bgfx::createVertexLayout(const VertexLayout &_layout)
-Create vertex layout.
-
-- Attention
C99’s equivalent binding is bgfx_create_vertex_layout.
-
-
-
-
-
-
--
-void bgfx::destroy(VertexLayoutHandle _handle)
-Destroy vertex layout.
-
-- Attention
C99’s equivalent binding is bgfx_destroy_vertex_layout.
-
-
-
-
-
-
--
-VertexBufferHandle bgfx::createVertexBuffer(const Memory *_mem, const VertexLayout &_layout, uint16_t _flags = BGFX_BUFFER_NONE)
-Create static vertex buffer.
-
-- Attention
C99’s equivalent binding is bgfx_create_vertex_buffer.
-
-
-
-
-- Parameters:
-
-_mem – [in] Vertex buffer data.
-_layout – [in] Vertex layout.
-_flags – [in] Buffer creation flags.
-BGFX_BUFFER_NONE - No flags.
-BGFX_BUFFER_COMPUTE_READ - Buffer will be read from by compute shader.
-BGFX_BUFFER_COMPUTE_WRITE - Buffer will be written into by compute shader. When buffer is created with BGFX_BUFFER_COMPUTE_WRITE flag it cannot be updated from CPU.
-BGFX_BUFFER_COMPUTE_READ_WRITE - Buffer will be used for read/write by compute shader.
-BGFX_BUFFER_ALLOW_RESIZE - Buffer will resize on buffer update if a different amount of data is passed. If this flag is not specified, and more data is passed on update, the buffer will be trimmed to fit the existing buffer size. This flag has effect only on dynamic buffers.
-BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
-
-
-
-
-- Returns:
-Static vertex buffer handle.
-
-
-
-
-
--
-void bgfx::setName(VertexBufferHandle _handle, const char *_name, int32_t _len = INT32_MAX)
-Set static vertex buffer debug name.
-
-- Attention
C99’s equivalent binding is bgfx_set_vertex_buffer_name.
-
-
-
-
-- Parameters:
-
-_handle – [in] Static vertex buffer handle.
-_name – [in] Static vertex buffer name.
-_len – [in] Static vertex buffer name length (if length is INT32_MAX, it’s expected that _name is zero terminated string.
-
-
-
-
-
-
--
-void bgfx::destroy(VertexBufferHandle _handle)
-Destroy static vertex buffer.
-
-- Attention
C99’s equivalent binding is bgfx_destroy_vertex_buffer.
-
-
-
-
-- Parameters:
-_handle – [in] Static vertex buffer handle.
-
-
-
-
-
--
-struct VertexLayout
-Vertex layout.
-
-- Attention
C99’s equivalent binding is bgfx_vertex_layout_t.
-
-
-
-
-Public Functions
-
--
-VertexLayout &begin(RendererType::Enum _renderer = RendererType::Noop)
-Start VertexLayout.
-
-- Attention
C99’s equivalent binding is bgfx_vertex_layout_begin.
-
-
-
-
-- Parameters:
-_renderer – [in] Renderer backend type. See: bgfx::RendererType
-
-- Returns:
-Returns itself.
-
-
-
-
-
--
-void end()
-End VertexLayout.
-
-- Attention
C99’s equivalent binding is bgfx_vertex_layout_end.
-
-
-
-
-
-
--
-VertexLayout &add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized = false, bool _asInt = false)
-Add attribute to VertexLayout.
-
-Remark
-Must be called between begin/end.
-
-
-- Attention
C99’s equivalent binding is bgfx_vertex_layout_add.
-
-
-
-
-- Parameters:
-
-_attrib – [in] Attribute semantics. See: bgfx::Attrib
-_num – [in] Number of elements 1, 2, 3 or 4.
-_type – [in] Element type.
-_normalized – [in] When using fixed point AttribType (f.e. Uint8) value will be normalized for vertex shader usage. When normalized is set to true, AttribType::Uint8 value in range 0-255 will be in range 0.0-1.0 in vertex shader.
-_asInt – [in] Packaging rule for vertexPack, vertexUnpack, and vertexConvert for AttribType::Uint8 and AttribType::Int16. Unpacking code must be implemented inside vertex shader.
-
-
-- Returns:
-Returns itself.
-
-
-
-
-
--
-VertexLayout &skip(uint8_t _num)
-Skip _num bytes in vertex stream.
-
-- Attention
C99’s equivalent binding is bgfx_vertex_layout_skip.
-
-
-
-
-- Returns:
-Returns itself.
-
-
-
-
-
--
-void decode(Attrib::Enum _attrib, uint8_t &_num, AttribType::Enum &_type, bool &_normalized, bool &_asInt) const
-Decode attribute.
-
-- Attention
C99’s equivalent binding is bgfx_vertex_layout_decode.
-
-
-
-
-
-
--
-inline bool has(Attrib::Enum _attrib) const
-Returns true if VertexLayout contains attribute.
-
-- Attention
C99’s equivalent binding is bgfx_vertex_layout_has.
-
-
-
-
-- Parameters:
-_attrib – [in] Attribute semantics. See: bgfx::Attrib
-
-- Returns:
-True if VertexLayout contains attribute.
-
-
-
-
-
--
-inline uint16_t getOffset(Attrib::Enum _attrib) const
-Returns relative attribute offset from the vertex.
-
-- Parameters:
-_attrib – [in] Attribute semantics. See: bgfx::Attrib
-
-- Returns:
-Relative attribute offset from the vertex.
-
-
-
-
-
--
-inline uint16_t getStride() const
-Returns vertex stride.
-
-- Returns:
-Vertex stride.
-
-
-
-
-
--
-inline uint32_t getSize(uint32_t _num) const
-Returns size of vertex buffer for number of vertices.
-
-- Parameters:
-_num – [in] Number of vertices.
-
-- Returns:
-Size of vertex buffer for number of vertices.
-
-
-
-
-
-
-
-
-
struct Attrib
@@ -6677,6 +5801,299 @@ Otherwise, use bgfx::setViewScissor.
+
+-
+struct VertexLayout
+Vertex layout.
+
+- Attention
C99’s equivalent binding is bgfx_vertex_layout_t.
+
+
+
+
+Public Functions
+
+-
+VertexLayout &begin(RendererType::Enum _rendererType = RendererType::Noop)
+Start VertexLayout.
+
+- Attention
C99’s equivalent binding is bgfx_vertex_layout_begin.
+
+
+
+
+- Parameters:
+_rendererType – [in] Renderer backend type. See: bgfx::RendererType
+
+- Returns:
+Returns itself.
+
+
+
+
+
+-
+VertexLayout &add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized = false, bool _asInt = false)
+Add attribute to VertexLayout.
+
+Remark
+Must be called between begin/end.
+
+
+- Attention
C99’s equivalent binding is bgfx_vertex_layout_add.
+
+
+
+
+- Parameters:
+
+_attrib – [in] Attribute semantics. See: bgfx::Attrib
+_num – [in] Number of elements 1, 2, 3 or 4.
+_type – [in] Element type.
+_normalized – [in] When using fixed point AttribType (f.e. Uint8) value will be normalized for vertex shader usage. When normalized is set to true, AttribType::Uint8 value in range 0-255 will be in range 0.0-1.0 in vertex shader.
+_asInt – [in] Packaging rule for vertexPack, vertexUnpack, and vertexConvert for AttribType::Uint8 and AttribType::Int16. Unpacking code must be implemented inside vertex shader.
+
+
+- Returns:
+Returns itself.
+
+
+
+
+
+-
+void decode(Attrib::Enum _attrib, uint8_t &_num, AttribType::Enum &_type, bool &_normalized, bool &_asInt) const
+Decode attribute.
+
+- Attention
C99’s equivalent binding is bgfx_vertex_layout_decode.
+
+
+
+
+- Parameters:
+
+_attrib – [in] Attribute semantics. See: bgfx::Attrib
+_num – [out] Number of elements.
+_type – [out] Element type.
+_normalized – [out] Attribute is normalized.
+_asInt – [out] Attribute is packed as int.
+
+
+
+
+
+
+-
+inline bool has(Attrib::Enum _attrib) const
+Returns true if VertexLayout contains attribute.
+
+- Parameters:
+_attrib – [in] Attribute semantics. See: bgfx::Attrib
+
+- Returns:
+True if VertexLayout contains attribute.
+
+
+
+
+
+-
+VertexLayout &skip(uint8_t _num)
+Skip _num bytes in vertex stream.
+
+- Attention
C99’s equivalent binding is bgfx_vertex_layout_skip.
+
+
+
+
+- Parameters:
+_num – [in] Number of bytes to skip.
+
+- Returns:
+Returns itself.
+
+
+
+
+
+-
+void end()
+End VertexLayout.
+
+- Attention
C99’s equivalent binding is bgfx_vertex_layout_end.
+
+
+
+
+
+
+-
+inline uint16_t getOffset(Attrib::Enum _attrib) const
+Returns relative attribute offset from the vertex.
+
+- Parameters:
+_attrib – [in] Attribute semantics. See: bgfx::Attrib
+
+- Returns:
+Relative attribute offset from the vertex.
+
+
+
+
+
+-
+inline uint16_t getStride() const
+Returns vertex stride.
+
+- Returns:
+Vertex stride.
+
+
+
+
+
+-
+inline uint32_t getSize(uint32_t _num) const
+Returns size of vertex buffer for number of vertices.
+
+- Parameters:
+_num – [in] Number of vertices.
+
+- Returns:
+Size of vertex buffer for number of vertices.
+
+
+
+
+
+
+
+
+
+-
+VertexLayoutHandle bgfx::createVertexLayout(const VertexLayout &_layout)
+Create vertex layout. Vertex layouts are used to describe the format of vertex data.
+
+- Attention
C99’s equivalent binding is bgfx_create_vertex_layout.
+
+
+
+
+- Parameters:
+_layout – [in] Vertex layout.
+
+
+
+
+
+-
+void bgfx::destroy(VertexLayoutHandle _layoutHandle)
+Destroy vertex layout.
+
+- Attention
C99’s equivalent binding is bgfx_destroy_vertex_layout.
+
+
+
+
+- Parameters:
+_layoutHandle – [in] Vertex layout handle.
+
+
+
+
+
+-
+VertexBufferHandle bgfx::createVertexBuffer(const Memory *_mem, const VertexLayout &_layout, uint16_t _flags = BGFX_BUFFER_NONE)
+Create static vertex buffer.
+
+- Attention
C99’s equivalent binding is bgfx_create_vertex_buffer.
+
+
+
+
+- Parameters:
+
+_mem – [in] Vertex buffer data.
+_layout – [in] Vertex layout.
+_flags – [in] Buffer creation flags.
+BGFX_BUFFER_NONE - No flags.
+BGFX_BUFFER_COMPUTE_READ - Buffer will be read from by compute shader.
+BGFX_BUFFER_COMPUTE_WRITE - Buffer will be written into by compute shader. When buffer is created with BGFX_BUFFER_COMPUTE_WRITE flag it cannot be updated from CPU.
+BGFX_BUFFER_COMPUTE_READ_WRITE - Buffer will be used for read/write by compute shader.
+BGFX_BUFFER_ALLOW_RESIZE - Buffer will resize on buffer update if a different amount of data is passed. If this flag is not specified, and more data is passed on update, the buffer will be trimmed to fit the existing buffer size. This flag has effect only on dynamic buffers.
+BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
+
+
+
+
+- Returns:
+Static vertex buffer handle.
+
+
+
+
+
+-
+void bgfx::setName(VertexBufferHandle _handle, const char *_name, int32_t _len = INT32_MAX)
+Set static vertex buffer debug name.
+
+- Attention
C99’s equivalent binding is bgfx_set_vertex_buffer_name.
+
+
+
+
+- Parameters:
+
+_handle – [in] Static vertex buffer handle.
+_name – [in] Static vertex buffer name.
+_len – [in] Static vertex buffer name length (if length is INT32_MAX, it’s expected that _name is zero terminated string.
+
+
+
+
+
+
+-
+void bgfx::destroy(VertexBufferHandle _handle)
+Destroy static vertex buffer.
+
+- Attention
C99’s equivalent binding is bgfx_destroy_vertex_buffer.
+
+
+
+
+- Parameters:
+_handle – [in] Static vertex buffer handle.
+
+
+
+
-
DynamicVertexBufferHandle bgfx::createDynamicVertexBuffer(uint32_t _num, const VertexLayout &_layout, uint16_t _flags = BGFX_BUFFER_NONE)
@@ -6697,7 +6114,7 @@ Otherwise, use bgfx::setViewScissor.
BGFX_BUFFER_COMPUTE_WRITE - Buffer will be written into by compute shader. When buffer is created with BGFX_BUFFER_COMPUTE_WRITE flag it cannot be updated from CPU.
BGFX_BUFFER_COMPUTE_READ_WRITE - Buffer will be used for read/write by compute shader.
BGFX_BUFFER_ALLOW_RESIZE - Buffer will resize on buffer update if a different amount of data is passed. If this flag is not specified, and more data is passed on update, the buffer will be trimmed to fit the existing buffer size. This flag has effect only on dynamic buffers.
-BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
+BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
@@ -6710,7 +6127,7 @@ Otherwise, use bgfx::setViewScissor.
-
-DynamicVertexBufferHandle bgfx::createDynamicVertexBuffer(const Memory *_mem, const VertexLayout &_layout, uint16_t _flags = BGFX_BUFFER_NONE)
+DynamicVertexBufferHandle bgfx::createDynamicVertexBuffer(const Memory *_mem, const VertexLayout &_layout, uint16_t _flags = BGFX_BUFFER_NONE)
Create dynamic vertex buffer and initialize it.
- Attention
C99’s equivalent binding is bgfx_create_dynamic_vertex_buffer_mem.
@@ -6728,7 +6145,7 @@ Otherwise, use bgfx::setViewScissor.
BGFX_BUFFER_COMPUTE_WRITE - Buffer will be written into by compute shader. When buffer is created with BGFX_BUFFER_COMPUTE_WRITE flag it cannot be updated from CPU.
BGFX_BUFFER_COMPUTE_READ_WRITE - Buffer will be used for read/write by compute shader.
BGFX_BUFFER_ALLOW_RESIZE - Buffer will resize on buffer update if a different amount of data is passed. If this flag is not specified, and more data is passed on update, the buffer will be trimmed to fit the existing buffer size. This flag has effect only on dynamic buffers.
-BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
+BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
@@ -6741,7 +6158,7 @@ Otherwise, use bgfx::setViewScissor.
-
-void bgfx::update(DynamicVertexBufferHandle _handle, uint32_t _startVertex, const Memory *_mem)
+void bgfx::update(DynamicVertexBufferHandle _handle, uint32_t _startVertex, const Memory *_mem)
Update dynamic vertex buffer.
- Attention
C99’s equivalent binding is bgfx_update_dynamic_vertex_buffer.
@@ -6791,6 +6208,9 @@ Otherwise, use bgfx::setViewScissor.
_layout – [in] Vertex layout.
+- Returns:
+Number of requested or maximum available vertices.
+
@@ -6819,7 +6239,7 @@ Otherwise, use bgfx::setViewScissor.
Index Buffers
-
-IndexBufferHandle bgfx::createIndexBuffer(const Memory *_mem, uint16_t _flags = BGFX_BUFFER_NONE)
+IndexBufferHandle bgfx::createIndexBuffer(const Memory *_mem, uint16_t _flags = BGFX_BUFFER_NONE)
Create static index buffer.
- Attention
C99’s equivalent binding is bgfx_create_index_buffer.
@@ -6899,7 +6319,7 @@ Otherwise, use bgfx::setViewScissor.
BGFX_BUFFER_COMPUTE_WRITE - Buffer will be written into by compute shader. When buffer is created with BGFX_BUFFER_COMPUTE_WRITE flag it cannot be updated from CPU.
BGFX_BUFFER_COMPUTE_READ_WRITE - Buffer will be used for read/write by compute shader.
BGFX_BUFFER_ALLOW_RESIZE - Buffer will resize on buffer update if a different amount of data is passed. If this flag is not specified, and more data is passed on update, the buffer will be trimmed to fit the existing buffer size. This flag has effect only on dynamic buffers.
-BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
+BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
@@ -6912,7 +6332,7 @@ Otherwise, use bgfx::setViewScissor.
-
-DynamicIndexBufferHandle bgfx::createDynamicIndexBuffer(const Memory *_mem, uint16_t _flags = BGFX_BUFFER_NONE)
+DynamicIndexBufferHandle bgfx::createDynamicIndexBuffer(const Memory *_mem, uint16_t _flags = BGFX_BUFFER_NONE)
Create a dynamic index buffer and initialize it.
- Attention
C99’s equivalent binding is bgfx_create_dynamic_index_buffer_mem.
@@ -6929,7 +6349,7 @@ Otherwise, use bgfx::setViewScissor.
BGFX_BUFFER_COMPUTE_WRITE - Buffer will be written into by compute shader. When buffer is created with BGFX_BUFFER_COMPUTE_WRITE flag it cannot be updated from CPU.
BGFX_BUFFER_COMPUTE_READ_WRITE - Buffer will be used for read/write by compute shader.
BGFX_BUFFER_ALLOW_RESIZE - Buffer will resize on buffer update if a different amount of data is passed. If this flag is not specified, and more data is passed on update, the buffer will be trimmed to fit the existing buffer size. This flag has effect only on dynamic buffers.
-BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
+BGFX_BUFFER_INDEX32 - Buffer is using 32-bit indices. This flag has effect only on index buffers.
@@ -6942,7 +6362,7 @@ Otherwise, use bgfx::setViewScissor.
-
-void bgfx::update(DynamicIndexBufferHandle _handle, uint32_t _startIndex, const Memory *_mem)
+void bgfx::update(DynamicIndexBufferHandle _handle, uint32_t _startIndex, const Memory *_mem)
Update dynamic index buffer.
- Attention
C99’s equivalent binding is bgfx_update_dynamic_index_buffer.
@@ -6992,6 +6412,9 @@ Otherwise, use bgfx::setViewScissor.
_index32 – [in] Set to true if input indices will be 32-bit.
+- Returns:
+Number of requested or maximum available indices.
+
@@ -7016,8 +6439,61 @@ Otherwise, use bgfx::setViewScissor.
-
-Textures
+
+Textures
+
+-
+BGFX_TEXTURE_NONE
+
+
+
+-
+BGFX_TEXTURE_MSAA_SAMPLE
+Texture will be used for MSAA sampling.
+
+
+
+-
+BGFX_TEXTURE_RT
+Render target no MSAA.
+
+
+
+-
+BGFX_TEXTURE_COMPUTE_WRITE
+Texture will be used for compute write.
+
+
+
+-
+BGFX_TEXTURE_SRGB
+Sample texture as sRGB.
+
+
+
+-
+BGFX_TEXTURE_BLIT_DST
+Texture will be used as blit destination.
+
+
+
+-
+BGFX_TEXTURE_READ_BACK
+Texture will be used for read back from GPU.
+
+
+
+-
+BGFX_TEXTURE_EXTERNAL_SHARED
+Texture is shared with other device or other process.
+
+
+
+-
+BGFX_TEXTURE_RT_WRITE_ONLY
+Render target will be used for writing.
+
+
-
struct TextureFormat
@@ -7034,7 +6510,7 @@ Otherwise, use bgfx::setViewScissor.
-- Attention
Availability depends on Caps (see: formats).
+- Attention
Availability depends on Caps (see: formats).
- Attention
C99’s equivalent binding is bgfx_texture_format_t.
@@ -7278,7 +6754,8 @@ Otherwise, use bgfx::setViewScissor.
-
enumerator Unknown
-
+Compressed formats above.
+
-
@@ -7543,7 +7020,8 @@ Otherwise, use bgfx::setViewScissor.
-
enumerator UnknownDepth
-
+Depth formats below.
+
-
@@ -7595,98 +7073,6 @@ Otherwise, use bgfx::setViewScissor.
-Texture Flags
-
--
-BGFX_TEXTURE_MSAA_SAMPLE
-Texture will be used for MSAA sampling.
-
-
-
--
-BGFX_TEXTURE_RT
-Render target no MSAA.
-
-
-
--
-BGFX_TEXTURE_COMPUTE_WRITE
-Texture will be used for compute write.
-
-
-
--
-BGFX_TEXTURE_SRGB
-Sample texture as sRGB.
-
-
-
--
-BGFX_TEXTURE_BLIT_DST
-Texture will be used as blit destination.
-
-
-
--
-BGFX_TEXTURE_READ_BACK
-Texture will be used for read back from GPU.
-
-
-
--
-BGFX_TEXTURE_RT_MSAA_X2
-Render target MSAAx2 mode.
-
-
-
--
-BGFX_TEXTURE_RT_MSAA_X4
-Render target MSAAx4 mode.
-
-
-
--
-BGFX_TEXTURE_RT_MSAA_X8
-Render target MSAAx8 mode.
-
-
-
--
-BGFX_TEXTURE_RT_MSAA_X16
-Render target MSAAx16 mode.
-
-
-
--
-BGFX_TEXTURE_RT_WRITE_ONLY
-Render target will be used for writing.
-
-
-
--
-bool bgfx::isTextureValid(uint16_t _depth, bool _cubeMap, uint16_t _numLayers, TextureFormat::Enum _format, uint64_t _flags)
-Validate texture parameters.
-
-- Attention
C99’s equivalent binding is bgfx_is_texture_valid.
-
-
-
-
-- Parameters:
-
-_depth – [in] Depth dimension of volume texture.
-_cubeMap – [in] Indicates that texture contains cubemap.
-_numLayers – [in] Number of layers in texture array.
-_format – [in] Texture format. See: TextureFormat::Enum.
-_flags – [in] Texture flags. See BGFX_TEXTURE_*.
-
-
-- Returns:
-True if a texture with the same parameters can be created.
-
-
-
-
-
struct TextureInfo
@@ -7755,6 +7141,31 @@ Otherwise, use bgfx::setViewScissor.
+
+-
+bool bgfx::isTextureValid(uint16_t _depth, bool _cubeMap, uint16_t _numLayers, TextureFormat::Enum _format, uint64_t _flags)
+Validate texture parameters.
+
+- Attention
C99’s equivalent binding is bgfx_is_texture_valid.
+
+
+
+
+- Parameters:
+
+_depth – [in] Depth dimension of volume texture.
+_cubeMap – [in] Indicates that texture contains cubemap.
+_numLayers – [in] Number of layers in texture array.
+_format – [in] Texture format. See: TextureFormat::Enum.
+_flags – [in] Texture flags. See BGFX_TEXTURE_*.
+
+
+- Returns:
+True if a texture with the same parameters can be created.
+
+
+
+
-
void bgfx::calcTextureSize(TextureInfo &_info, uint16_t _width, uint16_t _height, uint16_t _depth, bool _cubeMap, bool _hasMips, uint16_t _numLayers, TextureFormat::Enum _format)
@@ -7782,7 +7193,7 @@ Otherwise, use bgfx::setViewScissor.
-
-TextureHandle bgfx::createTexture(const Memory *_mem, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, uint8_t _skip = 0, TextureInfo *_info = NULL)
+TextureHandle bgfx::createTexture(const Memory *_mem, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, uint8_t _skip = 0, TextureInfo *_info = NULL)
Create texture from memory buffer.
- Attention
C99’s equivalent binding is bgfx_create_texture.
@@ -7792,14 +7203,14 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
-_mem – [in] DDS, KTX or PVR texture data.
+_mem – [in] DDS, KTX or PVR texture binary data.
_flags – [in] Texture creation (see BGFX_TEXTURE_*.), and sampler (see BGFX_SAMPLER_*) flags. Default texture sampling mode is linear, and wrap mode is repeat.
BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
-BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
+BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
_skip – [in] Skip top level mips when parsing texture.
-_info – [out] When non-NULL is specified it returns parsed texture information.
+_info – [out] When non-NULL is specified it returns parsed texture information.
- Returns:
@@ -7809,8 +7220,8 @@ Otherwise, use bgfx::setViewScissor.
--
-TextureHandle bgfx::createTexture2D(uint16_t _width, uint16_t _height, bool _hasMips, uint16_t _numLayers, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, const Memory *_mem = NULL)
+-
+TextureHandle bgfx::createTexture2D(uint16_t _width, uint16_t _height, bool _hasMips, uint16_t _numLayers, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, const Memory *_mem = NULL, uint64_t _external = 0)
Create 2D texture.
- Attention
C99’s equivalent binding is bgfx_create_texture_2d.
@@ -7827,12 +7238,16 @@ Otherwise, use bgfx::setViewScissor.
_format – [in] Texture format. See: TextureFormat::Enum.
_flags – [in] Texture creation (see BGFX_TEXTURE_*.), and sampler (see BGFX_SAMPLER_*) flags. Default texture sampling mode is linear, and wrap mode is repeat.
BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
-BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
+BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
-_mem – [in] Texture data. If _mem is non-NULL, created texture will be immutable. If _mem is NULL content of the texture is uninitialized. When _numLayers is more than 1, expected memory layout is texture and all mips together for each array element.
+_mem – [in] Texture data. If _mem is non-NULL, created texture will be immutable. If _mem is NULL content of the texture is uninitialized. When _numLayers is more than 1, expected memory layout is texture and all mips together for each array element.
+_external – [in] Native API pointer to texture.
+- Returns:
+Texture handle.
+
@@ -7848,7 +7263,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
-_ratio – [in] Frame buffer size in respect to back-buffer size. See: BackbufferRatio::Enum.
+_ratio – [in] Texture size in respect to back-buffer size. See: BackbufferRatio::Enum.
_hasMips – [in] Indicates that texture contains full mip-map chain.
_numLayers – [in] Number of layers in texture array. Must be 1 if caps BGFX_CAPS_TEXTURE_2D_ARRAY flag is not set.
_format – [in] Texture format. See: TextureFormat::Enum.
@@ -7859,40 +7274,15 @@ Otherwise, use bgfx::setViewScissor.
-
-
-
-
--
-void bgfx::updateTexture2D(TextureHandle _handle, uint16_t _layer, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const Memory *_mem, uint16_t _pitch = UINT16_MAX)
-Update 2D texture.
-
-- Attention
It’s valid to update only mutable texture. See bgfx::createTexture2D for more info.
-
-- Attention
C99’s equivalent binding is bgfx_update_texture_2d.
-
-
-
-
-- Parameters:
-
-_handle – [in] Texture handle.
-_layer – [in] Layers in texture array.
-_mip – [in] Mip level.
-_x – [in] X offset in texture.
-_y – [in] Y offset in texture.
-_width – [in] Width of texture block.
-_height – [in] Height of texture block.
-_mem – [in] Texture update data.
-_pitch – [in] Pitch of input image (bytes). When _pitch is set to UINT16_MAX, it will be calculated internally based on _width.
-
+- Returns:
+Texture handle.
--
-TextureHandle bgfx::createTexture3D(uint16_t _width, uint16_t _height, uint16_t _depth, bool _hasMips, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, const Memory *_mem = NULL)
+-
+TextureHandle bgfx::createTexture3D(uint16_t _width, uint16_t _height, uint16_t _depth, bool _hasMips, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, const Memory *_mem = NULL, uint64_t _external = 0)
Create 3D texture.
- Attention
C99’s equivalent binding is bgfx_create_texture_3d.
@@ -7909,10 +7299,73 @@ Otherwise, use bgfx::setViewScissor.
_format – [in] Texture format. See: TextureFormat::Enum.
_flags – [in] Texture creation (see BGFX_TEXTURE_*.), and sampler (see BGFX_SAMPLER_*) flags. Default texture sampling mode is linear, and wrap mode is repeat.
BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
-BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
+BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
-_mem – [in] Texture data. If _mem is non-NULL, created texture will be immutable. If _mem is NULL content of the texture is uninitialized.
+_mem – [in] Texture data. If _mem is non-NULL, created texture will be immutable. If _mem is NULL content of the texture is uninitialized. When _numLayers is more than 1, expected memory layout is texture and all mips together for each array element.
+_external – [in] Native API pointer to texture.
+
+
+- Returns:
+Texture handle.
+
+
+
+
+
+-
+TextureHandle bgfx::createTextureCube(uint16_t _size, bool _hasMips, uint16_t _numLayers, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, const Memory *_mem = NULL, uint64_t _external = 0)
+Create Cube texture.
+
+- Attention
C99’s equivalent binding is bgfx_create_texture_cube.
+
+
+
+
+- Parameters:
+
+_size – [in] Cube side size.
+_hasMips – [in] Indicates that texture contains full mip-map chain.
+_numLayers – [in] Number of layers in texture array. Must be 1 if caps BGFX_CAPS_TEXTURE_2D_ARRAY flag is not set.
+_format – [in] Texture format. See: TextureFormat::Enum.
+_flags – [in] Texture creation (see BGFX_TEXTURE_*.), and sampler (see BGFX_SAMPLER_*) flags. Default texture sampling mode is linear, and wrap mode is repeat.
+BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
+BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
+
+
+_mem – [in] Texture data. If _mem is non-NULL, created texture will be immutable. If _mem is NULL content of the texture is uninitialized. When _numLayers is more than
+_external – [in] Native API pointer to texture.
+
+
+- Returns:
+Texture handle.
+
+
+
+
+
+-
+void bgfx::updateTexture2D(TextureHandle _handle, uint16_t _layer, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const Memory *_mem, uint16_t _pitch = UINT16_MAX)
+Update 2D texture.
+
+- Attention
It’s valid to update only mutable texture. See bgfx::createTexture2D for more info.
+
+- Attention
C99’s equivalent binding is bgfx_update_texture_2d.
+
+
+
+
+- Parameters:
+
+_handle – [in] Texture handle.
+_layer – [in] Layer in texture array.
+_mip – [in] Mip level.
+_x – [in] X offset in texture.
+_y – [in] Y offset in texture.
+_width – [in] Width of texture block.
+_height – [in] Height of texture block.
+_mem – [in] Texture update data.
+_pitch – [in] Pitch of input image (bytes). When _pitch is set to UINT16_MAX, it will be calculated internally based on _width.
@@ -7920,10 +7373,10 @@ Otherwise, use bgfx::setViewScissor.
-
-void bgfx::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 bgfx::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 3D texture.
-- Attention
It’s valid to update only mutable texture. See bgfx::createTexture3D for more info.
+- Attention
It’s valid to update only mutable texture. See bgfx::createTexture3D for more info.
- Attention
C99’s equivalent binding is bgfx_update_texture_3d.
@@ -7946,39 +7399,12 @@ Otherwise, use bgfx::setViewScissor.
-
--
-TextureHandle bgfx::createTextureCube(uint16_t _size, bool _hasMips, uint16_t _numLayers, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE, const Memory *_mem = NULL)
-Create Cube texture.
-
-- Attention
C99’s equivalent binding is bgfx_create_texture_cube.
-
-
-
-
-- Parameters:
-
-_size – [in] Cube side size.
-_hasMips – [in] Indicates that texture contains full mip-map chain.
-_numLayers – [in] Number of layers in texture array. Must be 1 if caps BGFX_CAPS_TEXTURE_CUBE_ARRAY flag is not set.
-_format – [in] Texture format. See: TextureFormat::Enum.
-_flags – [in] Texture creation (see BGFX_TEXTURE_*.), and sampler (see BGFX_SAMPLER_*) flags. Default texture sampling mode is linear, and wrap mode is repeat.
-BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
-BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC] - Point or anisotropic sampling.
-
-
-_mem – [in] Texture data. If _mem is non-NULL, created texture will be immutable. If _mem is NULL content of the texture is uninitialized. When _numLayers is more than 1, expected memory layout is texture and all mips together for each array element.
-
-
-
-
-
-
-void bgfx::updateTextureCube(TextureHandle _handle, uint16_t _layer, 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 bgfx::updateTextureCube(TextureHandle _handle, uint16_t _layer, 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)
Update Cube texture.
-- Attention
It’s valid to update only mutable texture. See bgfx::createTextureCube for more info.
+- Attention
It’s valid to update only mutable texture. See bgfx::createTextureCube for more info.
- Attention
C99’s equivalent binding is bgfx_update_texture_cube.
@@ -7988,26 +7414,8 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_handle – [in] Texture handle.
-_layer – [in] Layers in texture array.
-_side – [in] Cubemap side BGFX_CUBE_MAP_<POSITIVE or NEGATIVE>_<X, Y or Z>, where 0 is +X, 1 is -X, 2 is +Y, 3 is -Y, 4 is +Z, and 5 is -Z.
+----------+
- |-z 2|
- | ^ +y |
- | | | Unfolded cube:
- | +---->+x |
-+----------+----------+----------+----------+
-|+y 1|+y 4|+y 0|+y 5|
-| ^ -x | ^ +z | ^ +x | ^ -z |
-| | | | | | | | |
-| +---->+z | +---->+x | +---->-z | +---->-x |
-+----------+----------+----------+----------+
- |+z 3|
- | ^ -y |
- | | |
- | +---->+x |
- +----------+
-
-
-
+_layer – [in] Layer in texture array.
+_side – [in] Cubemap side BGFX_CUBE_MAP_<POSITIVE or NEGATIVE>_<X, Y or Z>, where 0 is +X, 1 is -X, 2 is +Y, 3 is -Y, 4 is +Z, and 5 is -Z. +——-—+ |-z 2| | ^ +y | | | | Unfolded cube: | +-—>+x | +——-—+——-—+——-—+——-—+ |+y 1|+y 4|+y 0|+y 5| | ^ -x | ^ +z | ^ +x | ^ -z | | | | | | | | | | | +-—>+z | +-—>+x | +-—>-z | +-—>-x | +——-—+——-—+——-—+——-—+ |+z 3| | ^ -y | | | | | +-—>+x | +——-—+
_mip – [in] Mip level.
_x – [in] X offset in texture.
_y – [in] Y offset in texture.
@@ -8025,9 +7433,9 @@ Otherwise, use bgfx::setViewScissor.
uint32_t bgfx::readTexture(TextureHandle _handle, void *_data, uint8_t _mip = 0)
Read back texture content.
-- Attention
Texture must be created with BGFX_TEXTURE_READ_BACK flag.
+- Attention
Texture must be created with BGFX_TEXTURE_READ_BACK flag.
-- Attention
Availability depends on: BGFX_CAPS_TEXTURE_READ_BACK.
+- Attention
Availability depends on: BGFX_CAPS_TEXTURE_READ_BACK.
- Attention
C99’s equivalent binding is bgfx_read_texture.
@@ -8042,7 +7450,7 @@ Otherwise, use bgfx::setViewScissor.
- Returns:
-Frame number when the result will be available. See: bgfx::frame.
+Frame number when the result will be available. See: bgfx::frame.
@@ -8102,6 +7510,11 @@ Otherwise, use bgfx::setViewScissor.
-
void init(TextureHandle _handle, Access::Enum _access = Access::Write, uint16_t _layer = 0, uint16_t _numLayers = 1, uint16_t _mip = 0, uint8_t _resolve = BGFX_RESOLVE_AUTO_GEN_MIPS)
Init attachment.
+
+- Attention
C99’s equivalent binding is bgfx_attachment_init.
+
+
+
- Parameters:
@@ -8162,6 +7575,11 @@ Otherwise, use bgfx::setViewScissor.
-
bool bgfx::isFrameBufferValid(uint8_t _num, const Attachment *_attachment)
Validate frame buffer parameters.
+
+- Attention
C99’s equivalent binding is bgfx_is_frame_buffer_valid.
+
+
+
- Parameters:
@@ -8170,7 +7588,7 @@ Otherwise, use bgfx::setViewScissor.
- Returns:
-True if a frame buffer with the same parameters can be created.
+True if a frame buffer with the same parameters can be created.
@@ -8198,7 +7616,7 @@ Otherwise, use bgfx::setViewScissor.
- Returns:
-Handle to frame buffer object.
+Frame buffer handle.
@@ -8225,14 +7643,14 @@ Otherwise, use bgfx::setViewScissor.
- Returns:
-Handle to frame buffer object.
+Frame buffer handle.
-
-FrameBufferHandle bgfx::createFrameBuffer(uint8_t _num, const TextureHandle *_handles, bool _destroyTextures = false)
+FrameBufferHandle bgfx::createFrameBuffer(uint8_t _num, const TextureHandle *_handles, bool _destroyTexture = false)
Create MRT frame buffer from texture handles (simple).
- Attention
C99’s equivalent binding is bgfx_create_frame_buffer_from_handles.
@@ -8242,13 +7660,36 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
-_num – [in] Number of texture attachments.
+_num – [in] Number of texture handles.
_handles – [in] Texture attachments.
-_destroyTextures – [in] If true, textures will be destroyed when frame buffer is destroyed.
+_destroyTexture – [in] If true, textures will be destroyed when frame buffer is destroyed.
- Returns:
-Handle to frame buffer object.
+Frame buffer handle.
+
+
+
+
+
+-
+FrameBufferHandle bgfx::createFrameBuffer(uint8_t _num, const Attachment *_attachment, bool _destroyTexture = false)
+Create MRT frame buffer from texture handles with specific layer and mip level.
+
+- Attention
C99’s equivalent binding is bgfx_create_frame_buffer_from_attachment.
+
+
+
+
+- Parameters:
+
+_num – [in] Number of attachments.
+_attachment – [in] Attachment texture info. See: bgfx::Attachment.
+_destroyTexture – [in] If true, textures will be destroyed when frame buffer is destroyed.
+
+
+- Returns:
+Frame buffer handle.
@@ -8262,6 +7703,8 @@ Otherwise, use bgfx::setViewScissor.
Frame buffer cannot be used for sampling.
+- Attention
Availability depends on: BGFX_CAPS_SWAP_CHAIN.
+
- Attention
C99’s equivalent binding is bgfx_create_frame_buffer_from_nwh.
@@ -8277,31 +7720,28 @@ Otherwise, use bgfx::setViewScissor.
- Returns:
-Handle to frame buffer object.
+Frame buffer handle.
--
-FrameBufferHandle bgfx::createFrameBuffer(uint8_t _num, const Attachment *_attachment, bool _destroyTextures = false)
-Create MRT frame buffer from texture handles with specific layer and mip level.
+-
+void bgfx::setName(FrameBufferHandle _handle, const char *_name, int32_t _len = INT32_MAX)
+Set frame buffer debug name.
-- Attention
C99’s equivalent binding is bgfx_create_frame_buffer_from_attachment.
+- Attention
C99’s equivalent binding is bgfx_set_frame_buffer_name.
- Parameters:
-_num – [in] Number of texture attachments.
-_attachment – [in] Attachment texture info. See: bgfx::Attachment.
-_destroyTextures – [in] If true, textures will be destroyed when frame buffer is destroyed.
+_handle – [in] Frame buffer handle.
+_name – [in] Frame buffer name.
+_len – [in] Frame buffer name length (if length is INT32_MAX, it’s expected that _name is zero terminated string.
-- Returns:
-Handle to frame buffer object.
-
@@ -8318,30 +7758,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_handle – [in] Frame buffer handle.
-_attachment – [in] Frame buffer attachment index.
-
-
-- Returns:
-Returns invalid texture handle if attachment index is not correct, or frame buffer is created with native window handle.
-
-
-
-
-
--
-void bgfx::setName(FrameBufferHandle _handle, const char *_name, int32_t _len = INT32_MAX)
-Set frame buffer debug name.
-
-- Attention
C99’s equivalent binding is bgfx_set_frame_buffer_name.
-
-
-
-
-- Parameters:
-
-_handle – [in] frame buffer handle.
-_name – [in] frame buffer name.
-_len – [in] frame buffer name length (if length is INT32_MAX, it’s expected that _name is zero terminated string.
+_attachment –
@@ -8382,6 +7799,9 @@ Otherwise, use bgfx::setViewScissor.
_stride – [in] Stride per instance.
+- Returns:
+Number of requested or maximum available instance buffer slots.
+
@@ -8397,7 +7817,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
-_idb – [out] InstanceDataBuffer structure will be filled, and will be valid for the duration of frame, and can be reused for multiple draw calls.
+_idb – [out] InstanceDataBuffer structure will be filled, and will be valid for duration of frame, and can be reused for multiple draw calls.
_num – [in] Number of instances.
_stride – [in] Instance stride. Must be multiple of 16.
@@ -8419,7 +7839,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
-_num – [in] Number of indirect calls.
+_num – [in] Number of indirect calls.
- Returns:
Indirect buffer handle.
@@ -8446,22 +7866,6 @@ Otherwise, use bgfx::setViewScissor.
Occlusion Query
-
--
-OcclusionQueryHandle bgfx::createOcclusionQuery()
-Create occlusion query.
-
-- Attention
C99’s equivalent binding is bgfx_create_occlusion_query.
-
-
-
-
-- Returns:
-Handle to occlusion query object.
-
-
-
-
-
struct OcclusionQueryResult
@@ -8506,6 +7910,22 @@ Otherwise, use bgfx::setViewScissor.
+
+-
+OcclusionQueryHandle bgfx::createOcclusionQuery()
+Create occlusion query. Occlusion queries allow the GPU to determine if any pixels passed the depth test.
+
+- Attention
C99’s equivalent binding is bgfx_create_occlusion_query.
+
+
+
+
+- Returns:
+Handle to occlusion query object.
+
+
+
+
-
OcclusionQueryResult::Enum bgfx::getResult(OcclusionQueryHandle _handle, int32_t *_result = NULL)
@@ -8519,7 +7939,7 @@ Otherwise, use bgfx::setViewScissor.
- Parameters:
_handle – [in] Handle to occlusion query object.
-_result – [out] Number of pixels that passed test. This argument can be NULL if result of occlusion query is not needed.
+_result – [out] Number of pixels that passed test. This argument can be NULL if result of occlusion query is not needed.
- Returns:
diff --git a/genindex.html b/genindex.html
index 1b214b2ce..6771ab8f8 100644
--- a/genindex.html
+++ b/genindex.html
@@ -93,8 +93,6 @@
- bgfx::Access::Enum::ReadWrite (C++ enumerator)
- bgfx::Access::Enum::Write (C++ enumerator)
-
- - bgfx::alloc (C++ function)
- bgfx::allocInstanceDataBuffer (C++ function)
@@ -183,114 +181,6 @@
- bgfx::blit (C++ function), [1]
- bgfx::calcTextureSize (C++ function)
-
- - bgfx::CallbackI (C++ struct)
-
- - bgfx::CallbackI::cacheRead (C++ function)
-
- - bgfx::CallbackI::cacheReadSize (C++ function)
-
- - bgfx::CallbackI::cacheWrite (C++ function)
-
- - bgfx::CallbackI::captureBegin (C++ function)
-
- - bgfx::CallbackI::captureEnd (C++ function)
-
- - bgfx::CallbackI::captureFrame (C++ function)
-
- - bgfx::CallbackI::fatal (C++ function)
-
- - bgfx::CallbackI::profilerBegin (C++ function)
-
- - bgfx::CallbackI::profilerBeginLiteral (C++ function)
-
- - bgfx::CallbackI::profilerEnd (C++ function)
-
- - bgfx::CallbackI::screenShot (C++ function)
-
- - bgfx::CallbackI::traceVargs (C++ function)
-
- - bgfx::Caps (C++ struct)
-
- - bgfx::Caps::deviceId (C++ member)
-
- - bgfx::Caps::formats (C++ member)
-
- - bgfx::Caps::gpu (C++ member)
-
- - bgfx::Caps::GPU (C++ struct)
-
- - bgfx::Caps::GPU::deviceId (C++ member)
-
- - bgfx::Caps::GPU::vendorId (C++ member)
-
- - bgfx::Caps::homogeneousDepth (C++ member)
-
- - bgfx::Caps::limits (C++ member)
-
- - bgfx::Caps::Limits (C++ struct)
-
- - bgfx::Caps::Limits::maxBlits (C++ member)
-
- - bgfx::Caps::Limits::maxComputeBindings (C++ member)
-
- - bgfx::Caps::Limits::maxDrawCalls (C++ member)
-
- - bgfx::Caps::Limits::maxDynamicIndexBuffers (C++ member)
-
- - bgfx::Caps::Limits::maxDynamicVertexBuffers (C++ member)
-
- - bgfx::Caps::Limits::maxEncoders (C++ member)
-
- - bgfx::Caps::Limits::maxFBAttachments (C++ member)
-
- - bgfx::Caps::Limits::maxFrameBuffers (C++ member)
-
- - bgfx::Caps::Limits::maxIndexBuffers (C++ member)
-
- - bgfx::Caps::Limits::maxOcclusionQueries (C++ member)
-
- - bgfx::Caps::Limits::maxPrograms (C++ member)
-
- - bgfx::Caps::Limits::maxShaders (C++ member)
-
- - bgfx::Caps::Limits::maxTextureLayers (C++ member)
-
- - bgfx::Caps::Limits::maxTextures (C++ member)
-
- - bgfx::Caps::Limits::maxTextureSamplers (C++ member)
-
- - bgfx::Caps::Limits::maxTextureSize (C++ member)
-
- - bgfx::Caps::Limits::maxTransientIbSize (C++ member)
-
- - bgfx::Caps::Limits::maxTransientVbSize (C++ member)
-
- - bgfx::Caps::Limits::maxUniforms (C++ member)
-
- - bgfx::Caps::Limits::maxVertexBuffers (C++ member)
-
- - bgfx::Caps::Limits::maxVertexLayouts (C++ member)
-
- - bgfx::Caps::Limits::maxVertexStreams (C++ member)
-
- - bgfx::Caps::Limits::maxViews (C++ member)
-
- - bgfx::Caps::Limits::minResourceCbSize (C++ member)
-
- - bgfx::Caps::Limits::minUniformBufferSize (C++ member)
-
- - bgfx::Caps::numGPUs (C++ member)
-
- - bgfx::Caps::originBottomLeft (C++ member)
-
- - bgfx::Caps::rendererType (C++ member)
-
- - bgfx::Caps::supported (C++ member)
-
- - bgfx::Caps::vendorId (C++ member)
-
- - bgfx::copy (C++ function)
- bgfx::createDynamicIndexBuffer (C++ function), [1]
@@ -310,11 +200,11 @@
- bgfx::createTexture (C++ function)
- - bgfx::createTexture2D (C++ function), [1]
+
- bgfx::createTexture2D (C++ function), [1]
- - bgfx::createTexture3D (C++ function)
+
- bgfx::createTexture3D (C++ function)
- - bgfx::createTextureCube (C++ function)
+
- bgfx::createTextureCube (C++ function)
- bgfx::createUniform (C++ function), [1]
@@ -388,15 +278,13 @@
- bgfx::end (C++ function)
- - bgfx::frame (C++ function)
+
- bgfx::frame (C++ function)
- bgfx::getAvailInstanceDataBuffer (C++ function)
- bgfx::getAvailTransientIndexBuffer (C++ function)
- bgfx::getAvailTransientVertexBuffer (C++ function)
-
- - bgfx::getCaps (C++ function)
- bgfx::getDirectAccessPtr (C++ function)
@@ -479,14 +367,6 @@
- bgfx::isFrameBufferValid (C++ function)
- bgfx::isTextureValid (C++ function)
-
- - bgfx::makeRef (C++ function)
-
- - bgfx::Memory (C++ struct)
-
- - bgfx::Memory::data (C++ member)
-
- - bgfx::Memory::size (C++ member)
- bgfx::OcclusionQueryResult (C++ struct)
@@ -513,6 +393,8 @@
- bgfx::PlatformData::ndt (C++ member)
- bgfx::PlatformData::nwh (C++ member)
+
+ - bgfx::PlatformData::queue (C++ member)
- bgfx::PlatformData::type (C++ member)
@@ -610,7 +492,7 @@
- bgfx::setUniform (C++ function)
- - bgfx::setVertexBuffer (C++ function), [1], [2], [3], [4], [5]
+
- bgfx::setVertexBuffer (C++ function), [1], [2]
- bgfx::setVertexCount (C++ function)
@@ -732,8 +614,6 @@
- bgfx::Stats::viewStats (C++ member)
-
-
+
- bgfx::TextureFormat::Enum::D16 (C++ enumerator)
- bgfx::TextureFormat::Enum::D16F (C++ enumerator)
@@ -1197,12 +1079,20 @@
- BGFX_CAPS_TEXTURE_3D (C macro)
- BGFX_CAPS_TEXTURE_BLIT (C macro)
+
+ - BGFX_CAPS_TEXTURE_COMPARE_ALL (C macro)
- BGFX_CAPS_TEXTURE_COMPARE_LEQUAL (C macro)
+
+ - BGFX_CAPS_TEXTURE_COMPARE_RESERVED (C macro)
- BGFX_CAPS_TEXTURE_CUBE_ARRAY (C macro)
- BGFX_CAPS_TEXTURE_DIRECT_ACCESS (C macro)
+
+ - BGFX_CAPS_TEXTURE_EXTERNAL (C macro)
+
+ - BGFX_CAPS_TEXTURE_EXTERNAL_SHARED (C macro)
- BGFX_CAPS_TEXTURE_READ_BACK (C macro)
@@ -1229,10 +1119,18 @@
- BGFX_DEBUG_TEXT (C macro)
- BGFX_DEBUG_WIREFRAME (C macro)
+
+ - BGFX_FRAME_DEBUG_CAPTURE (C macro)
+
+ - BGFX_FRAME_DISCARD (C macro)
+
+ - BGFX_FRAME_NONE (C macro)
- BGFX_PCI_ID_AMD (C macro)
- BGFX_PCI_ID_APPLE (C macro)
+
+ - BGFX_PCI_ID_ARM (C macro)
- BGFX_PCI_ID_INTEL (C macro)
@@ -1259,14 +1157,6 @@
- BGFX_RESET_HIDPI (C macro)
- BGFX_RESET_MAXANISOTROPY (C macro)
-
- - BGFX_RESET_MSAA_X16 (C macro)
-
- - BGFX_RESET_MSAA_X2 (C macro)
-
- - BGFX_RESET_MSAA_X4 (C macro)
-
- - BGFX_RESET_MSAA_X8 (C macro)
- BGFX_RESET_NONE (C macro)
@@ -1317,10 +1207,14 @@
- BGFX_STATE_BLEND_SRC_COLOR (C macro)
- BGFX_STATE_BLEND_ZERO (C macro)
+
+ - BGFX_STATE_CONSERVATIVE_RASTER (C macro)
- BGFX_STATE_CULL_CCW (C macro)
- BGFX_STATE_CULL_CW (C macro)
+
+ - BGFX_STATE_DEFAULT (C macro)
- BGFX_STATE_DEPTH_TEST_ALWAYS (C macro)
@@ -1337,10 +1231,14 @@
- BGFX_STATE_DEPTH_TEST_NEVER (C macro)
- BGFX_STATE_DEPTH_TEST_NOTEQUAL (C macro)
+
+ - BGFX_STATE_FRONT_CCW (C macro)
- BGFX_STATE_LINEAA (C macro)
- BGFX_STATE_MSAA (C macro)
+
+ - BGFX_STATE_NONE (C macro)
- BGFX_STATE_PT_LINES (C macro)
@@ -1355,32 +1253,44 @@
- BGFX_STATE_WRITE_B (C macro)
- BGFX_STATE_WRITE_G (C macro)
+
+ - BGFX_STATE_WRITE_MASK (C macro)
- BGFX_STATE_WRITE_R (C macro)
- BGFX_STATE_WRITE_RGB (C macro)
- BGFX_STATE_WRITE_Z (C macro)
+
+ - BGFX_STENCIL_TEST_ALWAYS (C macro)
+
+ - BGFX_STENCIL_TEST_EQUAL (C macro)
+
+ - BGFX_STENCIL_TEST_GEQUAL (C macro)
+
+ - BGFX_STENCIL_TEST_GREATER (C macro)
+
+ - BGFX_STENCIL_TEST_LEQUAL (C macro)
- BGFX_STENCIL_TEST_LESS (C macro)
+
+ - BGFX_STENCIL_TEST_NEVER (C macro)
+
+ - BGFX_STENCIL_TEST_NOTEQUAL (C macro)
- BGFX_TEXTURE_BLIT_DST (C macro)
- BGFX_TEXTURE_COMPUTE_WRITE (C macro)
+
+ - BGFX_TEXTURE_EXTERNAL_SHARED (C macro)
- BGFX_TEXTURE_MSAA_SAMPLE (C macro)
+
+ - BGFX_TEXTURE_NONE (C macro)
- BGFX_TEXTURE_READ_BACK (C macro)
- BGFX_TEXTURE_RT (C macro)
-
- - BGFX_TEXTURE_RT_MSAA_X16 (C macro)
-
- - BGFX_TEXTURE_RT_MSAA_X2 (C macro)
-
- - BGFX_TEXTURE_RT_MSAA_X4 (C macro)
-
- - BGFX_TEXTURE_RT_MSAA_X8 (C macro)
- BGFX_TEXTURE_RT_WRITE_ONLY (C macro)
diff --git a/index.html b/index.html
index 738c9b5ea..cfe1860d8 100644
--- a/index.html
+++ b/index.html
@@ -203,18 +203,18 @@ licensed under permissive BSD-2 clause open source license.
- Views
@@ -227,15 +227,11 @@ licensed under permissive BSD-2 clause open source license.
- Resources
-bgfx::Memory
-alloc()
-copy()
-makeRef()
- Shaders and Programs
-- Uniforms
+- Uniforms
- Vertex Buffers
- Index Buffers
-- Textures
+- Textures
- Frame Buffers
- Instance Buffer
- Indirect Buffer
diff --git a/license.html b/license.html
index fbfb7d5b7..64613c25b 100644
--- a/license.html
+++ b/license.html
@@ -83,7 +83,7 @@
License
License (BSD 2-clause)
-Copyright 2010-2025 Branimir Karadzic
+Copyright 2010-2026 Branimir Karadzic
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
diff --git a/objects.inv b/objects.inv
index 24ee3ffa28a07045442ecf4765772b7636a3681f..7c457346366aa51c2ce90a984edcf9dfc3e55d6f 100644
GIT binary patch
literal 27362
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