bgfx.rst 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602
  1. API Reference
  2. =============
  3. .. note::
  4. If you're just getting started with bgfx, you might get more out of these simple walkthroughs for how to use bgfx's API:
  5. - `Hello, bgfx! <https://dev.to/pperon/hello-bgfx-4dka>`_
  6. - `bgfx-minimal-example <https://github.com/jpcy/bgfx-minimal-example#bgfx-minimal-example>`_
  7. - `Using the bgfx library with C++ on Ubuntu <https://www.sandeepnambiar.com/getting-started-with-bgfx/>`_
  8. General
  9. -------
  10. Initialization and Shutdown
  11. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  12. .. doxygenstruct:: bgfx::Init
  13. :members:
  14. .. doxygenstruct:: bgfx::Resolution
  15. :members:
  16. .. doxygenfunction:: bgfx::init
  17. .. doxygendefine:: BGFX_PCI_ID_NONE
  18. .. doxygendefine:: BGFX_PCI_ID_SOFTWARE_RASTERIZER
  19. .. doxygendefine:: BGFX_PCI_ID_AMD
  20. .. doxygendefine:: BGFX_PCI_ID_APPLE
  21. .. doxygendefine:: BGFX_PCI_ID_INTEL
  22. .. doxygendefine:: BGFX_PCI_ID_NVIDIA
  23. .. doxygendefine:: BGFX_PCI_ID_MICROSOFT
  24. .. doxygenstruct:: bgfx::CallbackI
  25. :members:
  26. .. doxygenfunction:: bgfx::shutdown
  27. Updating
  28. ~~~~~~~~
  29. Reset
  30. *****
  31. .. doxygenfunction:: bgfx::reset
  32. .. doxygendefine:: BGFX_RESET_NONE
  33. .. doxygendefine:: BGFX_RESET_FULLSCREEN
  34. .. doxygendefine:: BGFX_RESET_MSAA_X2
  35. .. doxygendefine:: BGFX_RESET_MSAA_X4
  36. .. doxygendefine:: BGFX_RESET_MSAA_X8
  37. .. doxygendefine:: BGFX_RESET_MSAA_X16
  38. .. doxygendefine:: BGFX_RESET_VSYNC
  39. .. doxygendefine:: BGFX_RESET_MAXANISOTROPY
  40. .. doxygendefine:: BGFX_RESET_CAPTURE
  41. .. doxygendefine:: BGFX_RESET_FLUSH_AFTER_RENDER
  42. .. doxygendefine:: BGFX_RESET_FLIP_AFTER_RENDER
  43. .. doxygendefine:: BGFX_RESET_SRGB_BACKBUFFER
  44. .. doxygendefine:: BGFX_RESET_HDR10
  45. .. doxygendefine:: BGFX_RESET_HIDPI
  46. .. doxygendefine:: BGFX_RESET_DEPTH_CLAMP
  47. Frame
  48. *****
  49. .. doxygenfunction:: bgfx::frame
  50. Debug
  51. ~~~~~
  52. Debug Features
  53. **************
  54. .. doxygenfunction:: bgfx::setDebug
  55. Debug Flags
  56. ***********
  57. .. doxygendefine:: BGFX_DEBUG_NONE
  58. .. doxygendefine:: BGFX_DEBUG_WIREFRAME
  59. .. doxygendefine:: BGFX_DEBUG_IFH
  60. .. doxygendefine:: BGFX_DEBUG_STATS
  61. .. doxygendefine:: BGFX_DEBUG_TEXT
  62. .. doxygendefine:: BGFX_DEBUG_PROFILER
  63. Debug Text Display
  64. ******************
  65. .. doxygenfunction:: bgfx::dbgTextClear
  66. .. doxygenfunction:: bgfx::dbgTextPrintf
  67. .. doxygenfunction:: bgfx::dbgTextPrintfVargs
  68. .. doxygenfunction:: bgfx::dbgTextImage
  69. Querying information
  70. ~~~~~~~~~~~~~~~~~~~~
  71. Renderer
  72. ********
  73. .. doxygenfunction:: bgfx::getSupportedRenderers
  74. .. doxygenfunction:: bgfx::getRendererType
  75. .. doxygenstruct:: bgfx::RendererType
  76. :members:
  77. Capabilities
  78. ************
  79. .. doxygenfunction:: bgfx::getCaps
  80. .. doxygenstruct:: bgfx::Caps
  81. :members:
  82. Available Caps
  83. """"""""""""""
  84. .. doxygendefine:: BGFX_CAPS_ALPHA_TO_COVERAGE
  85. .. doxygendefine:: BGFX_CAPS_BLEND_INDEPENDENT
  86. .. doxygendefine:: BGFX_CAPS_COMPUTE
  87. .. doxygendefine:: BGFX_CAPS_CONSERVATIVE_RASTER
  88. .. doxygendefine:: BGFX_CAPS_DRAW_INDIRECT
  89. .. doxygendefine:: BGFX_CAPS_FRAGMENT_DEPTH
  90. .. doxygendefine:: BGFX_CAPS_FRAGMENT_ORDERING
  91. .. doxygendefine:: BGFX_CAPS_GRAPHICS_DEBUGGER
  92. .. doxygendefine:: BGFX_CAPS_HDR10
  93. .. doxygendefine:: BGFX_CAPS_HIDPI
  94. .. doxygendefine:: BGFX_CAPS_IMAGE_RW
  95. .. doxygendefine:: BGFX_CAPS_INDEX32
  96. .. doxygendefine:: BGFX_CAPS_INSTANCING
  97. .. doxygendefine:: BGFX_CAPS_OCCLUSION_QUERY
  98. .. doxygendefine:: BGFX_CAPS_RENDERER_MULTITHREADED
  99. .. doxygendefine:: BGFX_CAPS_SWAP_CHAIN
  100. .. doxygendefine:: BGFX_CAPS_TEXTURE_2D_ARRAY
  101. .. doxygendefine:: BGFX_CAPS_TEXTURE_3D
  102. .. doxygendefine:: BGFX_CAPS_TEXTURE_BLIT
  103. .. doxygendefine:: BGFX_CAPS_TEXTURE_COMPARE_ALL
  104. .. doxygendefine:: BGFX_CAPS_TEXTURE_COMPARE_LEQUAL
  105. .. doxygendefine:: BGFX_CAPS_TEXTURE_CUBE_ARRAY
  106. .. doxygendefine:: BGFX_CAPS_TEXTURE_DIRECT_ACCESS
  107. .. doxygendefine:: BGFX_CAPS_TEXTURE_READ_BACK
  108. .. doxygendefine:: BGFX_CAPS_VERTEX_ATTRIB_HALF
  109. .. doxygendefine:: BGFX_CAPS_VERTEX_ATTRIB_UINT10
  110. .. doxygendefine:: BGFX_CAPS_VERTEX_ID
  111. Statistics
  112. **********
  113. .. doxygenfunction:: bgfx::getStats
  114. .. doxygenstruct:: bgfx::Stats
  115. :members:
  116. .. doxygenstruct:: bgfx::ViewStats
  117. :members:
  118. .. doxygenstruct:: bgfx::EncoderStats
  119. :members:
  120. Platform specific
  121. ~~~~~~~~~~~~~~~~~
  122. These are platform specific APIs.
  123. It is only necessary to use these APIs in conjunction with creating windows.
  124. .. doxygenfunction:: bgfx::renderFrame
  125. .. doxygenstruct:: bgfx::RenderFrame
  126. :members:
  127. .. doxygenfunction:: bgfx::setPlatformData
  128. .. doxygenstruct:: bgfx::PlatformData
  129. :members:
  130. .. doxygenfunction:: bgfx::getInternalData
  131. .. doxygenstruct:: bgfx::InternalData
  132. :members:
  133. .. doxygenfunction:: bgfx::overrideInternal(TextureHandle _handle, uintptr_t _ptr)
  134. .. doxygenfunction:: bgfx::overrideInternal(TextureHandle _handle, uint16_t _width, uint16_t _height, uint8_t _numMips, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE)
  135. Miscellaneous
  136. ~~~~~~~~~~~~~
  137. .. doxygenfunction:: bgfx::vertexPack
  138. .. doxygenfunction:: bgfx::vertexUnpack
  139. .. doxygenfunction:: bgfx::vertexConvert
  140. .. doxygenfunction:: bgfx::weldVertices
  141. .. doxygenstruct:: bgfx::TopologyConvert
  142. :members:
  143. .. doxygenfunction:: bgfx::topologyConvert
  144. .. doxygenstruct:: bgfx::TopologySort
  145. :members:
  146. .. doxygenfunction:: bgfx::topologySortTriList
  147. .. doxygenfunction:: bgfx::discard
  148. .. doxygenfunction:: bgfx::touch
  149. .. doxygenfunction:: bgfx::setPaletteColor(uint8_t _index, uint32_t _rgba)
  150. .. doxygenfunction:: bgfx::setPaletteColor(uint8_t _index, const float _rgba[4])
  151. .. doxygenfunction:: bgfx::setPaletteColor(uint8_t _index, float _r, float _g, float _b, float _a)
  152. .. doxygenfunction:: bgfx::requestScreenShot
  153. Views
  154. -----
  155. Views are the primary sorting mechanism in bgfx.
  156. They represent buckets of draw and compute calls, or what are often known as 'passes'.
  157. When compute calls and draw calls occupy the same bucket, the compute calls will be sorted to execute first.
  158. Compute calls are always executed in order of submission, while draw calls are sorted by internal state if
  159. the View is not in sequential mode.
  160. In most cases where the z-buffer is used, this change in order does not affect the desired output.
  161. When draw call order needs to be preserved (e.g. when rendering GUIs), Views can be set to use sequential mode with `bgfx::setViewMode`.
  162. Sequential order is less efficient, because it doesn't allow state change optimization, and should be avoided when possible.
  163. By default, Views are sorted by their View ID, in ascending order.
  164. For dynamic renderers where the right order might not be known until the last moment,
  165. View IDs can be changed to use arbitrary ordering with `bgfx::setViewOrder`.
  166. A View's state is preserved between frames.
  167. .. doxygenfunction:: bgfx::setViewName
  168. .. doxygenfunction:: bgfx::setViewRect(ViewId _id, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height)
  169. .. doxygenfunction:: bgfx::setViewRect(ViewId _id, uint16_t _x, uint16_t _y, BackbufferRatio::Enum _ratio)
  170. .. doxygenfunction:: bgfx::setViewScissor
  171. .. doxygenfunction:: bgfx::setViewClear(ViewId _id, uint16_t _flags, uint32_t _rgba = 0x000000ff, float _depth = 1.0f, uint8_t _stencil = 0)
  172. .. doxygenfunction:: 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)
  173. .. doxygenstruct:: bgfx::ViewMode
  174. :members:
  175. .. doxygenfunction:: bgfx::setViewMode
  176. .. doxygenfunction:: bgfx::setViewFrameBuffer
  177. .. doxygenfunction:: bgfx::setViewTransform
  178. .. doxygenfunction:: bgfx::setViewOrder
  179. .. doxygenfunction:: bgfx::resetView
  180. Encoder
  181. -------
  182. Encoder
  183. ~~~~~~~
  184. API for multi-threaded submission.
  185. .. doxygenfunction:: bgfx::begin
  186. .. doxygenfunction:: bgfx::end
  187. .. doxygenstruct:: bgfx::Encoder
  188. :members:
  189. Draw
  190. ~~~~
  191. Draw state is not preserved between two draw calls.
  192. All state is cleared after calling `bgfx::submit`.
  193. State
  194. *****
  195. Debug
  196. *****
  197. .. doxygenfunction:: bgfx::setMarker
  198. .. doxygenfunction:: bgfx::setName(ShaderHandle _handle, const char *_name, int32_t _len = INT32_MAX)
  199. .. doxygenfunction:: bgfx::setName(TextureHandle _handle, const char *_name, int32_t _len = INT32_MAX)
  200. State
  201. *****
  202. .. doxygenfunction:: bgfx::setState
  203. State Flags
  204. ***********
  205. **Write**
  206. .. doxygendefine:: BGFX_STATE_WRITE_R
  207. .. doxygendefine:: BGFX_STATE_WRITE_G
  208. .. doxygendefine:: BGFX_STATE_WRITE_B
  209. .. doxygendefine:: BGFX_STATE_WRITE_RGB
  210. .. doxygendefine:: BGFX_STATE_WRITE_A
  211. .. doxygendefine:: BGFX_STATE_WRITE_Z
  212. **Depth Test**
  213. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_LESS
  214. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_LEQUAL
  215. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_EQUAL
  216. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_GEQUAL
  217. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_GREATER
  218. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_NOTEQUAL
  219. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_NEVER
  220. .. doxygendefine:: BGFX_STATE_DEPTH_TEST_ALWAYS
  221. **Blend Mode**
  222. .. doxygendefine:: BGFX_STATE_BLEND_ZERO
  223. .. doxygendefine:: BGFX_STATE_BLEND_ONE
  224. .. doxygendefine:: BGFX_STATE_BLEND_SRC_COLOR
  225. .. doxygendefine:: BGFX_STATE_BLEND_INV_SRC_COLOR
  226. .. doxygendefine:: BGFX_STATE_BLEND_SRC_ALPHA
  227. .. doxygendefine:: BGFX_STATE_BLEND_INV_SRC_ALPHA
  228. .. doxygendefine:: BGFX_STATE_BLEND_DST_ALPHA
  229. .. doxygendefine:: BGFX_STATE_BLEND_INV_DST_ALPHA
  230. .. doxygendefine:: BGFX_STATE_BLEND_DST_COLOR
  231. .. doxygendefine:: BGFX_STATE_BLEND_INV_DST_COLOR
  232. .. doxygendefine:: BGFX_STATE_BLEND_SRC_ALPHA_SAT
  233. .. doxygendefine:: BGFX_STATE_BLEND_FACTOR
  234. .. doxygendefine:: BGFX_STATE_BLEND_INV_FACTOR
  235. **Blend Equaation**
  236. .. doxygendefine:: BGFX_STATE_BLEND_EQUATION_ADD
  237. .. doxygendefine:: BGFX_STATE_BLEND_EQUATION_SUB
  238. .. doxygendefine:: BGFX_STATE_BLEND_EQUATION_REVSUB
  239. .. doxygendefine:: BGFX_STATE_BLEND_EQUATION_MIN
  240. .. doxygendefine:: BGFX_STATE_BLEND_EQUATION_MAX
  241. **Primitive Culling**
  242. .. doxygendefine:: BGFX_STATE_CULL_CW
  243. .. doxygendefine:: BGFX_STATE_CULL_CCW
  244. **Primitive Type**
  245. .. doxygendefine:: BGFX_STATE_PT_TRISTRIP
  246. .. doxygendefine:: BGFX_STATE_PT_LINES
  247. .. doxygendefine:: BGFX_STATE_PT_LINESTRIP
  248. .. doxygendefine:: BGFX_STATE_PT_POINTS
  249. **Misc**
  250. .. doxygendefine:: BGFX_STATE_BLEND_INDEPENDENT
  251. .. doxygendefine:: BGFX_STATE_BLEND_ALPHA_TO_COVERAGE
  252. .. doxygendefine:: BGFX_STATE_MSAA
  253. .. doxygendefine:: BGFX_STATE_LINEAA
  254. Stencil
  255. *******
  256. .. doxygenfunction:: bgfx::setStencil
  257. Stencil Flags
  258. *************
  259. .. doxygendefine:: BGFX_STENCIL_TEST_LESS
  260. Scissor
  261. *******
  262. If the Scissor rectangle needs to be changed for
  263. every draw call in a View, use `bgfx::setScissor`.
  264. Otherwise, use `bgfx::setViewScissor`.
  265. .. doxygenfunction:: bgfx::setScissor(uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height)
  266. .. doxygenfunction:: bgfx::setScissor(uint16_t _cache = UINT16_MAX)
  267. Transform
  268. *********
  269. .. doxygenfunction:: bgfx::allocTransform
  270. .. doxygenfunction:: bgfx::setTransform(const void *_mtx, uint16_t _num = 1)
  271. .. doxygenfunction:: bgfx::setTransform(uint32_t _cache, uint16_t _num = 1)
  272. Conditional Rendering
  273. *********************
  274. .. doxygenfunction:: bgfx::setCondition
  275. Buffers
  276. *******
  277. .. doxygenfunction:: bgfx::setIndexBuffer(IndexBufferHandle _handle)
  278. .. doxygenfunction:: bgfx::setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
  279. .. doxygenfunction:: bgfx::setIndexBuffer(DynamicIndexBufferHandle _handle)
  280. .. doxygenfunction:: bgfx::setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
  281. .. doxygenstruct:: bgfx::TransientIndexBuffer
  282. :members:
  283. .. doxygenfunction:: bgfx::setIndexBuffer(const TransientIndexBuffer *_tib)
  284. .. doxygenfunction:: bgfx::setIndexBuffer(const TransientIndexBuffer *_tib, uint32_t _firstIndex, uint32_t _numIndices)
  285. .. doxygenfunction:: bgfx::setVertexBuffer(uint8_t _stream, VertexBufferHandle _handle)
  286. .. doxygenfunction:: bgfx::setVertexBuffer(uint8_t _stream, VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
  287. .. doxygenfunction:: bgfx::setVertexBuffer(uint8_t _stream, DynamicVertexBufferHandle _handle)
  288. .. doxygenfunction:: bgfx::setVertexBuffer(uint8_t _stream, DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
  289. .. doxygenstruct:: bgfx::TransientVertexBuffer
  290. :members:
  291. .. doxygenfunction:: bgfx::setVertexBuffer(uint8_t _stream, const TransientVertexBuffer *_tvb)
  292. .. doxygenfunction:: bgfx::setVertexBuffer(uint8_t _stream, const TransientVertexBuffer *_tvb, uint32_t _startVertex, uint32_t _numVertices, VertexLayoutHandle _layoutHandle = BGFX_INVALID_HANDLE)
  293. .. doxygenfunction:: bgfx::setVertexCount
  294. .. doxygenstruct:: bgfx::InstanceDataBuffer
  295. :members:
  296. .. doxygenfunction:: bgfx::setInstanceDataBuffer(const InstanceDataBuffer *_idb)
  297. .. doxygenfunction:: bgfx::setInstanceDataBuffer(const InstanceDataBuffer *_idb, uint32_t _start, uint32_t _num)
  298. .. doxygenfunction:: bgfx::setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _start, uint32_t _num)
  299. .. doxygenfunction:: bgfx::setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _start, uint32_t _num)
  300. .. doxygenfunction:: bgfx::setInstanceCount
  301. Textures
  302. ********
  303. .. doxygenfunction:: bgfx::setTexture(uint8_t, UniformHandle, TextureHandle, uint32_t)
  304. Submit
  305. ******
  306. In Views, all draw commands are executed **after** blit and compute commands.
  307. .. doxygenfunction:: bgfx::submit(ViewId _id, ProgramHandle _program, uint32_t _depth = 0, uint8_t _flags = BGFX_DISCARD_ALL)
  308. .. doxygenfunction:: bgfx::submit(ViewId _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint32_t _depth = 0, uint8_t _flags = BGFX_DISCARD_ALL)
  309. .. doxygenfunction:: bgfx::submit(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint16_t _start = 0, uint16_t _num = 1, uint32_t _depth = 0, uint8_t _flags = BGFX_DISCARD_ALL)
  310. Compute
  311. ~~~~~~~
  312. Compute state is not preserved between compute dispatches; all state is cleared after calling `bgfx::dispatch`.
  313. Buffers
  314. *******
  315. .. doxygenstruct:: bgfx::Access
  316. :members:
  317. .. doxygenfunction:: bgfx::setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access)
  318. .. doxygenfunction:: bgfx::setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access)
  319. .. doxygenfunction:: bgfx::setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access)
  320. .. doxygenfunction:: bgfx::setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access)
  321. .. doxygenfunction:: bgfx::setBuffer(uint8_t _stage, IndirectBufferHandle _handle, Access::Enum _access)
  322. Images
  323. ******
  324. .. doxygenfunction:: bgfx::setImage(uint8_t, TextureHandle, uint8_t, Access::Enum, TextureFormat::Enum)
  325. Dispatch
  326. ********
  327. In Views, all draw commands are executed **after** blit and compute commands.
  328. .. doxygenfunction:: bgfx::dispatch(ViewId _id, ProgramHandle _handle, uint32_t _numX = 1, uint32_t _numY = 1, uint32_t _numZ = 1, uint8_t _flags = BGFX_DISCARD_ALL)
  329. .. doxygenfunction:: bgfx::dispatch(ViewId _id, ProgramHandle _handle, IndirectBufferHandle _indirectHandle, uint16_t _start = 0, uint16_t _num = 1, uint8_t _flags = BGFX_DISCARD_ALL)
  330. Blit
  331. ~~~~
  332. In Views, all draw commands are executed **after** blit and compute commands.
  333. .. doxygenfunction:: 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)
  334. .. doxygenfunction:: 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)
  335. Resources
  336. ---------
  337. .. doxygenstruct:: bgfx::Memory
  338. :members:
  339. .. doxygenfunction:: bgfx::alloc
  340. .. doxygenfunction:: bgfx::copy
  341. .. doxygenfunction:: bgfx::makeRef
  342. Shaders and Programs
  343. ~~~~~~~~~~~~~~~~~~~~
  344. .. doxygenfunction:: bgfx::createShader
  345. .. doxygenfunction:: bgfx::getShaderUniforms
  346. .. doxygenfunction:: bgfx::destroy(ShaderHandle _handle)
  347. .. doxygenfunction:: bgfx::createProgram(ShaderHandle _vsh, ShaderHandle _fsh, bool _destroyShaders = false)
  348. .. doxygenfunction:: bgfx::createProgram(ShaderHandle _csh, bool _destroyShader = false)
  349. .. doxygenfunction:: bgfx::destroy(ProgramHandle _handle)
  350. Uniforms
  351. ~~~~~~~~
  352. .. doxygenfunction:: bgfx::createUniform
  353. .. doxygenfunction:: bgfx::getUniformInfo
  354. .. doxygenfunction:: bgfx::destroy(UniformHandle _handle)
  355. .. doxygenstruct:: bgfx::UniformType
  356. :members:
  357. .. doxygenstruct:: bgfx::UniformInfo
  358. :members:
  359. Vertex Buffers
  360. ~~~~~~~~~~~~~~
  361. .. doxygenfunction:: bgfx::createVertexLayout
  362. .. doxygenfunction:: bgfx::destroy(VertexLayoutHandle _handle)
  363. .. doxygenfunction:: bgfx::createVertexBuffer
  364. .. doxygenfunction:: bgfx::setName(VertexBufferHandle _handle, const char *_name, int32_t _len = INT32_MAX)
  365. .. doxygenfunction:: bgfx::destroy(VertexBufferHandle _handle)
  366. .. doxygenstruct:: bgfx::VertexLayout
  367. :members:
  368. .. doxygenstruct:: bgfx::Attrib
  369. :members:
  370. .. doxygenstruct:: bgfx::AttribType
  371. :members:
  372. .. doxygenfunction:: bgfx::createDynamicVertexBuffer(uint32_t _num, const VertexLayout &_layout, uint16_t _flags = BGFX_BUFFER_NONE)
  373. .. doxygenfunction:: bgfx::createDynamicVertexBuffer(const Memory *_mem, const VertexLayout &_layout, uint16_t _flags = BGFX_BUFFER_NONE)
  374. .. doxygenfunction:: bgfx::update(DynamicVertexBufferHandle _handle, uint32_t _startVertex, const Memory *_mem)
  375. .. doxygenfunction:: bgfx::destroy(DynamicVertexBufferHandle _handle)
  376. .. doxygenfunction:: bgfx::getAvailTransientVertexBuffer
  377. .. doxygenfunction:: bgfx::allocTransientVertexBuffer
  378. Index Buffers
  379. ~~~~~~~~~~~~~
  380. .. doxygenfunction:: bgfx::createIndexBuffer
  381. .. doxygenfunction:: bgfx::setName(IndexBufferHandle _handle, const char *_name, int32_t _len = INT32_MAX)
  382. .. doxygenfunction:: bgfx::destroy(IndexBufferHandle _handle)
  383. .. doxygenfunction:: bgfx::createDynamicIndexBuffer(uint32_t _num, uint16_t _flags = BGFX_BUFFER_NONE)
  384. .. doxygenfunction:: bgfx::createDynamicIndexBuffer(const Memory *_mem, uint16_t _flags = BGFX_BUFFER_NONE)
  385. .. doxygenfunction:: bgfx::update(DynamicIndexBufferHandle _handle, uint32_t _startIndex, const Memory *_mem)
  386. .. doxygenfunction:: bgfx::destroy(DynamicIndexBufferHandle _handle)
  387. .. doxygenfunction:: bgfx::getAvailTransientIndexBuffer
  388. .. doxygenfunction:: bgfx::allocTransientIndexBuffer
  389. Textures
  390. ~~~~~~~~
  391. .. doxygenstruct:: bgfx::TextureFormat
  392. :members:
  393. .. doxygenfunction:: bgfx::isTextureValid
  394. .. doxygenstruct:: bgfx::TextureInfo
  395. :members:
  396. .. doxygenfunction:: bgfx::calcTextureSize
  397. .. doxygenfunction:: bgfx::createTexture
  398. .. doxygenfunction:: 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)
  399. .. doxygenfunction:: bgfx::createTexture2D(BackbufferRatio::Enum _ratio, bool _hasMips, uint16_t _numLayers, TextureFormat::Enum _format, uint64_t _flags = BGFX_TEXTURE_NONE | BGFX_SAMPLER_NONE)
  400. .. doxygenfunction:: bgfx::updateTexture2D
  401. .. doxygenfunction:: bgfx::createTexture3D
  402. .. doxygenfunction:: bgfx::updateTexture3D
  403. .. doxygenfunction:: bgfx::createTextureCube
  404. .. doxygenfunction:: bgfx::updateTextureCube
  405. .. doxygenfunction:: bgfx::readTexture(TextureHandle, void *, uint8_t)
  406. .. doxygenfunction:: bgfx::getDirectAccessPtr
  407. .. doxygenfunction:: bgfx::destroy(TextureHandle _handle)
  408. Frame Buffers
  409. ~~~~~~~~~~~~~
  410. .. doxygenstruct:: bgfx::Attachment
  411. :members:
  412. .. doxygenfunction:: bgfx::isFrameBufferValid
  413. .. doxygenfunction:: bgfx::createFrameBuffer(uint16_t _width, uint16_t _height, TextureFormat::Enum _format, uint64_t _textureFlags = BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP)
  414. .. doxygenfunction:: bgfx::createFrameBuffer(BackbufferRatio::Enum _ratio, TextureFormat::Enum _format, uint64_t _textureFlags = BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP)
  415. .. doxygenfunction:: bgfx::createFrameBuffer(uint8_t _num, const TextureHandle *_handles, bool _destroyTextures = false)
  416. .. doxygenfunction:: bgfx::createFrameBuffer(void *_nwh, uint16_t _width, uint16_t _height, TextureFormat::Enum _format = TextureFormat::Count, TextureFormat::Enum _depthFormat = TextureFormat::Count)
  417. .. doxygenfunction:: bgfx::createFrameBuffer(uint8_t _num, const Attachment *_attachment, bool _destroyTextures = false)
  418. .. doxygenfunction:: bgfx::getTexture
  419. .. doxygenfunction:: bgfx::setName(FrameBufferHandle _handle, const char *_name, int32_t _len = INT32_MAX)
  420. .. doxygenfunction:: bgfx::destroy(FrameBufferHandle _handle)
  421. Instance Buffer
  422. ~~~~~~~~~~~~~~~
  423. .. doxygenfunction:: bgfx::getAvailInstanceDataBuffer
  424. .. doxygenfunction:: bgfx::allocInstanceDataBuffer
  425. Indirect Buffer
  426. ~~~~~~~~~~~~~~~
  427. .. doxygenfunction:: bgfx::createIndirectBuffer
  428. .. doxygenfunction:: bgfx::destroy(IndirectBufferHandle _handle)
  429. Occlusion Query
  430. ~~~~~~~~~~~~~~~
  431. .. doxygenfunction:: bgfx::createOcclusionQuery
  432. .. doxygenstruct:: bgfx::OcclusionQueryResult
  433. :members:
  434. .. doxygenfunction:: bgfx::getResult
  435. .. doxygenfunction:: bgfx::destroy(OcclusionQueryHandle _handle)