config.h 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. /*
  2. * Copyright 2011-2016 Branimir Karadzic. All rights reserved.
  3. * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
  4. */
  5. #ifndef BGFX_CONFIG_H_HEADER_GUARD
  6. #define BGFX_CONFIG_H_HEADER_GUARD
  7. #include <bx/config.h>
  8. #ifndef BGFX_CONFIG_DEBUG
  9. # define BGFX_CONFIG_DEBUG 0
  10. #endif // BGFX_CONFIG_DEBUG
  11. #if !defined(BGFX_CONFIG_RENDERER_DIRECT3D9) \
  12. && !defined(BGFX_CONFIG_RENDERER_DIRECT3D11) \
  13. && !defined(BGFX_CONFIG_RENDERER_DIRECT3D12) \
  14. && !defined(BGFX_CONFIG_RENDERER_METAL) \
  15. && !defined(BGFX_CONFIG_RENDERER_OPENGL) \
  16. && !defined(BGFX_CONFIG_RENDERER_OPENGLES) \
  17. && !defined(BGFX_CONFIG_RENDERER_VULKAN) \
  18. && !defined(BGFX_CONFIG_RENDERER_NULL)
  19. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D9
  20. # define BGFX_CONFIG_RENDERER_DIRECT3D9 (0 \
  21. || BX_PLATFORM_WINDOWS \
  22. || BX_PLATFORM_XBOX360 \
  23. ? 1 : 0)
  24. # endif // BGFX_CONFIG_RENDERER_DIRECT3D9
  25. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D11
  26. # define BGFX_CONFIG_RENDERER_DIRECT3D11 (0 \
  27. || BX_PLATFORM_WINDOWS \
  28. || BX_PLATFORM_WINRT \
  29. || BX_PLATFORM_XBOXONE \
  30. ? 1 : 0)
  31. # endif // BGFX_CONFIG_RENDERER_DIRECT3D11
  32. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D12
  33. # define BGFX_CONFIG_RENDERER_DIRECT3D12 (0 \
  34. || BX_PLATFORM_WINDOWS \
  35. || BX_PLATFORM_XBOXONE \
  36. ? 1 : 0)
  37. # endif // BGFX_CONFIG_RENDERER_DIRECT3D12
  38. # ifndef BGFX_CONFIG_RENDERER_METAL
  39. # define BGFX_CONFIG_RENDERER_METAL (0 \
  40. || (BX_PLATFORM_IOS && BX_CPU_ARM) \
  41. || (BX_PLATFORM_OSX >= 101100) \
  42. ? 1 : 0)
  43. # endif // BGFX_CONFIG_RENDERER_METAL
  44. # ifndef BGFX_CONFIG_RENDERER_OPENGL
  45. # define BGFX_CONFIG_RENDERER_OPENGL (0 \
  46. || BX_PLATFORM_BSD \
  47. || BX_PLATFORM_LINUX \
  48. || BX_PLATFORM_OSX \
  49. || BX_PLATFORM_WINDOWS \
  50. ? 1 : 0)
  51. # endif // BGFX_CONFIG_RENDERER_OPENGL
  52. # ifndef BGFX_CONFIG_RENDERER_OPENGLES
  53. # define BGFX_CONFIG_RENDERER_OPENGLES (0 \
  54. || BX_PLATFORM_ANDROID \
  55. || BX_PLATFORM_EMSCRIPTEN \
  56. || BX_PLATFORM_IOS \
  57. || BX_PLATFORM_NACL \
  58. || BX_PLATFORM_QNX \
  59. || BX_PLATFORM_RPI \
  60. || BX_PLATFORM_STEAMLINK \
  61. ? 1 : 0)
  62. # endif // BGFX_CONFIG_RENDERER_OPENGLES
  63. # ifndef BGFX_CONFIG_RENDERER_VULKAN
  64. # define BGFX_CONFIG_RENDERER_VULKAN 0
  65. # endif // BGFX_CONFIG_RENDERER_VULKAN
  66. # ifndef BGFX_CONFIG_RENDERER_NULL
  67. # define BGFX_CONFIG_RENDERER_NULL (!(0 \
  68. || BGFX_CONFIG_RENDERER_DIRECT3D9 \
  69. || BGFX_CONFIG_RENDERER_DIRECT3D11 \
  70. || BGFX_CONFIG_RENDERER_DIRECT3D12 \
  71. || BGFX_CONFIG_RENDERER_METAL \
  72. || BGFX_CONFIG_RENDERER_OPENGL \
  73. || BGFX_CONFIG_RENDERER_OPENGLES \
  74. || BGFX_CONFIG_RENDERER_VULKAN \
  75. ? 1 : 0) )
  76. # endif // BGFX_CONFIG_RENDERER_NULL
  77. #else
  78. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D9
  79. # define BGFX_CONFIG_RENDERER_DIRECT3D9 0
  80. # endif // BGFX_CONFIG_RENDERER_DIRECT3D9
  81. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D11
  82. # define BGFX_CONFIG_RENDERER_DIRECT3D11 0
  83. # endif // BGFX_CONFIG_RENDERER_DIRECT3D11
  84. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D12
  85. # define BGFX_CONFIG_RENDERER_DIRECT3D12 0
  86. # endif // BGFX_CONFIG_RENDERER_DIRECT3D12
  87. # ifndef BGFX_CONFIG_RENDERER_METAL
  88. # define BGFX_CONFIG_RENDERER_METAL 0
  89. # endif // BGFX_CONFIG_RENDERER_METAL
  90. # ifndef BGFX_CONFIG_RENDERER_OPENGL
  91. # define BGFX_CONFIG_RENDERER_OPENGL 0
  92. # endif // BGFX_CONFIG_RENDERER_OPENGL
  93. # ifndef BGFX_CONFIG_RENDERER_OPENGLES
  94. # define BGFX_CONFIG_RENDERER_OPENGLES 0
  95. # endif // BGFX_CONFIG_RENDERER_OPENGLES
  96. # ifndef BGFX_CONFIG_RENDERER_VULKAN
  97. # define BGFX_CONFIG_RENDERER_VULKAN 0
  98. # endif // BGFX_CONFIG_RENDERER_VULKAN
  99. # ifndef BGFX_CONFIG_RENDERER_NULL
  100. # define BGFX_CONFIG_RENDERER_NULL 0
  101. # endif // BGFX_CONFIG_RENDERER_NULL
  102. #endif // !defined...
  103. #if BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGL < 21
  104. # undef BGFX_CONFIG_RENDERER_OPENGL
  105. # define BGFX_CONFIG_RENDERER_OPENGL 21
  106. #endif // BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGL < 21
  107. #if BGFX_CONFIG_RENDERER_OPENGLES && BGFX_CONFIG_RENDERER_OPENGLES < 20
  108. # undef BGFX_CONFIG_RENDERER_OPENGLES
  109. # define BGFX_CONFIG_RENDERER_OPENGLES 20
  110. #endif // BGFX_CONFIG_RENDERER_OPENGLES && BGFX_CONFIG_RENDERER_OPENGLES < 20
  111. #if BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGLES
  112. # error "Can't define both BGFX_CONFIG_RENDERER_OPENGL and BGFX_CONFIG_RENDERER_OPENGLES"
  113. #endif // BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGLES
  114. /// Enable use of extensions.
  115. #ifndef BGFX_CONFIG_RENDERER_USE_EXTENSIONS
  116. # define BGFX_CONFIG_RENDERER_USE_EXTENSIONS 1
  117. #endif // BGFX_CONFIG_RENDERER_USE_EXTENSIONS
  118. /// Enable use of tinystl.
  119. #ifndef BGFX_CONFIG_USE_TINYSTL
  120. # define BGFX_CONFIG_USE_TINYSTL 1
  121. #endif // BGFX_CONFIG_USE_TINYSTL
  122. /// Enable OculusVR integration.
  123. #ifndef BGFX_CONFIG_USE_OVR
  124. # define BGFX_CONFIG_USE_OVR 0
  125. #endif // BGFX_CONFIG_USE_OVR
  126. /// Enable nVidia PerfHUD integration.
  127. #ifndef BGFX_CONFIG_DEBUG_PERFHUD
  128. # define BGFX_CONFIG_DEBUG_PERFHUD 0
  129. #endif // BGFX_CONFIG_DEBUG_NVPERFHUD
  130. /// Enable PIX markers.
  131. #ifndef BGFX_CONFIG_DEBUG_PIX
  132. # define BGFX_CONFIG_DEBUG_PIX BGFX_CONFIG_DEBUG
  133. #endif // BGFX_CONFIG_DEBUG_PIX
  134. /// Enable DX11 object names.
  135. #ifndef BGFX_CONFIG_DEBUG_OBJECT_NAME
  136. # define BGFX_CONFIG_DEBUG_OBJECT_NAME BGFX_CONFIG_DEBUG
  137. #endif // BGFX_CONFIG_DEBUG_OBJECT_NAME
  138. /// Enable Metal markers.
  139. #ifndef BGFX_CONFIG_DEBUG_MTL
  140. # define BGFX_CONFIG_DEBUG_MTL BGFX_CONFIG_DEBUG
  141. #endif // BGFX_CONFIG_DEBUG_MTL
  142. /// Enable uniform debug checks.
  143. #ifndef BGFX_CONFIG_DEBUG_UNIFORM
  144. # define BGFX_CONFIG_DEBUG_UNIFORM BGFX_CONFIG_DEBUG
  145. #endif // BGFX_CONFIG_DEBUG_UNIFORM
  146. /// Enable occlusion debug checks.
  147. #ifndef BGFX_CONFIG_DEBUG_OCCLUSION
  148. # define BGFX_CONFIG_DEBUG_OCCLUSION BGFX_CONFIG_DEBUG
  149. #endif // BGFX_CONFIG_DEBUG_OCCLUSION
  150. #ifndef BGFX_CONFIG_MULTITHREADED
  151. # define BGFX_CONFIG_MULTITHREADED ( (0 == BX_PLATFORM_EMSCRIPTEN) ? 1 : 0)
  152. #endif // BGFX_CONFIG_MULTITHREADED
  153. #ifndef BGFX_CONFIG_MAX_DRAW_CALLS
  154. # define BGFX_CONFIG_MAX_DRAW_CALLS ( (64<<10)-1)
  155. #endif // BGFX_CONFIG_MAX_DRAW_CALLS
  156. #ifndef BGFX_CONFIG_MAX_BLIT_ITEMS
  157. # define BGFX_CONFIG_MAX_BLIT_ITEMS (1<<10)
  158. #endif // BGFX_CONFIG_MAX_BLIT_ITEMS
  159. #ifndef BGFX_CONFIG_MAX_MATRIX_CACHE
  160. # define BGFX_CONFIG_MAX_MATRIX_CACHE (BGFX_CONFIG_MAX_DRAW_CALLS+1)
  161. #endif // BGFX_CONFIG_MAX_MATRIX_CACHE
  162. #ifndef BGFX_CONFIG_MAX_RECT_CACHE
  163. # define BGFX_CONFIG_MAX_RECT_CACHE (4<<10)
  164. #endif // BGFX_CONFIG_MAX_RECT_CACHE
  165. #ifndef BGFX_CONFIG_SORT_KEY_NUM_BITS_DEPTH
  166. # define BGFX_CONFIG_SORT_KEY_NUM_BITS_DEPTH 32
  167. #endif // BGFX_CONFIG_SORT_KEY_NUM_BITS_DEPTH
  168. #ifndef BGFX_CONFIG_SORT_KEY_NUM_BITS_SEQ
  169. # define BGFX_CONFIG_SORT_KEY_NUM_BITS_SEQ 11
  170. #endif // BGFX_CONFIG_SORT_KEY_NUM_BITS_SEQ
  171. #ifndef BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM
  172. # define BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM 9
  173. #endif // BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM
  174. // Cannot be configured directly. Must must be power of 2.
  175. #define BGFX_CONFIG_MAX_PROGRAMS (1<<BGFX_CONFIG_SORT_KEY_NUM_BITS_PROGRAM)
  176. #ifndef BGFX_CONFIG_MAX_VIEWS
  177. // Do not change. Must be power of 2.
  178. # define BGFX_CONFIG_MAX_VIEWS 256
  179. #endif // BGFX_CONFIG_MAX_VIEWS
  180. #define BGFX_CONFIG_MAX_VIEW_NAME_RESERVED 6
  181. #ifndef BGFX_CONFIG_MAX_VIEW_NAME
  182. # define BGFX_CONFIG_MAX_VIEW_NAME 256
  183. #endif // BGFX_CONFIG_MAX_VIEW_NAME
  184. #ifndef BGFX_CONFIG_MAX_VERTEX_DECLS
  185. # define BGFX_CONFIG_MAX_VERTEX_DECLS 64
  186. #endif // BGFX_CONFIG_MAX_VERTEX_DECLS
  187. #ifndef BGFX_CONFIG_MAX_INDEX_BUFFERS
  188. # define BGFX_CONFIG_MAX_INDEX_BUFFERS (4<<10)
  189. #endif // BGFX_CONFIG_MAX_INDEX_BUFFERS
  190. #ifndef BGFX_CONFIG_MAX_VERTEX_BUFFERS
  191. # define BGFX_CONFIG_MAX_VERTEX_BUFFERS (4<<10)
  192. #endif // BGFX_CONFIG_MAX_VERTEX_BUFFERS
  193. #ifndef BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS
  194. # define BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS (4<<10)
  195. #endif // BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS
  196. #ifndef BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS
  197. # define BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS (4<<10)
  198. #endif // BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS
  199. #ifndef BGFX_CONFIG_DYNAMIC_INDEX_BUFFER_SIZE
  200. # define BGFX_CONFIG_DYNAMIC_INDEX_BUFFER_SIZE (1<<20)
  201. #endif // BGFX_CONFIG_DYNAMIC_INDEX_BUFFER_SIZE
  202. #ifndef BGFX_CONFIG_DYNAMIC_VERTEX_BUFFER_SIZE
  203. # define BGFX_CONFIG_DYNAMIC_VERTEX_BUFFER_SIZE (3<<20)
  204. #endif // BGFX_CONFIG_DYNAMIC_VERTEX_BUFFER_SIZE
  205. #ifndef BGFX_CONFIG_MAX_SHADERS
  206. # define BGFX_CONFIG_MAX_SHADERS 512
  207. #endif // BGFX_CONFIG_MAX_FRAGMENT_SHADERS
  208. #ifndef BGFX_CONFIG_MAX_TEXTURES
  209. # define BGFX_CONFIG_MAX_TEXTURES (4<<10)
  210. #endif // BGFX_CONFIG_MAX_TEXTURES
  211. #ifndef BGFX_CONFIG_MAX_TEXTURE_SAMPLERS
  212. # define BGFX_CONFIG_MAX_TEXTURE_SAMPLERS 16
  213. #endif // BGFX_CONFIG_MAX_TEXTURE_SAMPLERS
  214. #ifndef BGFX_CONFIG_MAX_FRAME_BUFFERS
  215. # define BGFX_CONFIG_MAX_FRAME_BUFFERS 128
  216. #endif // BGFX_CONFIG_MAX_FRAME_BUFFERS
  217. #ifndef BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS
  218. # define BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS 8
  219. #endif // BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS
  220. #ifndef BGFX_CONFIG_MAX_UNIFORMS
  221. # define BGFX_CONFIG_MAX_UNIFORMS 512
  222. #endif // BGFX_CONFIG_MAX_UNIFORMS
  223. #ifndef BGFX_CONFIG_MAX_OCCUSION_QUERIES
  224. # define BGFX_CONFIG_MAX_OCCUSION_QUERIES 256
  225. #endif // BGFX_CONFIG_MAX_OCCUSION_QUERIES
  226. #ifndef BGFX_CONFIG_MAX_COMMAND_BUFFER_SIZE
  227. # define BGFX_CONFIG_MAX_COMMAND_BUFFER_SIZE (64<<10)
  228. #endif // BGFX_CONFIG_MAX_COMMAND_BUFFER_SIZE
  229. #ifndef BGFX_CONFIG_TRANSIENT_VERTEX_BUFFER_SIZE
  230. # define BGFX_CONFIG_TRANSIENT_VERTEX_BUFFER_SIZE (6<<20)
  231. #endif // BGFX_CONFIG_TRANSIENT_VERTEX_BUFFER_SIZE
  232. #ifndef BGFX_CONFIG_TRANSIENT_INDEX_BUFFER_SIZE
  233. # define BGFX_CONFIG_TRANSIENT_INDEX_BUFFER_SIZE (2<<20)
  234. #endif // BGFX_CONFIG_TRANSIENT_INDEX_BUFFER_SIZE
  235. #ifndef BGFX_CONFIG_MAX_INSTANCE_DATA_COUNT
  236. # define BGFX_CONFIG_MAX_INSTANCE_DATA_COUNT 5
  237. #endif // BGFX_CONFIG_MAX_INSTANCE_DATA_COUNT
  238. #ifndef BGFX_CONFIG_MAX_CLEAR_COLOR_PALETTE
  239. # define BGFX_CONFIG_MAX_COLOR_PALETTE 16
  240. #endif // BGFX_CONFIG_MAX_CLEAR_COLOR_PALETTE
  241. #define BGFX_CONFIG_DRAW_INDIRECT_STRIDE 32
  242. #ifndef BGFX_CONFIG_PROFILER_MICROPROFILE
  243. # define BGFX_CONFIG_PROFILER_MICROPROFILE 0
  244. #endif // BGFX_CONFIG_PROFILER_MICROPROFILE
  245. #ifndef BGFX_CONFIG_PROFILER_REMOTERY
  246. # define BGFX_CONFIG_PROFILER_REMOTERY 0
  247. #endif // BGFX_CONFIG_PROFILER_REMOTERY
  248. #ifndef BGFX_CONFIG_PROFILER_REMOTERY_BUILD_LIB
  249. # define BGFX_CONFIG_PROFILER_REMOTERY_BUILD_LIB BGFX_CONFIG_PROFILER_REMOTERY
  250. #endif // BGFX_CONFIG_PROFILER_REMOTERY_BUILD_LIB
  251. #endif // BGFX_CONFIG_H_HEADER_GUARD