bgfx.rst 21 KB

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