config.h 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. /*
  2. * Copyright 2011-2015 Branimir Karadzic. All rights reserved.
  3. * License: http://www.opensource.org/licenses/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. ? 1 : 0)
  30. # endif // BGFX_CONFIG_RENDERER_DIRECT3D11
  31. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D12
  32. # define BGFX_CONFIG_RENDERER_DIRECT3D12 (0 \
  33. || BX_PLATFORM_WINDOWS \
  34. ? 1 : 0)
  35. # endif // BGFX_CONFIG_RENDERER_DIRECT3D12
  36. # ifndef BGFX_CONFIG_RENDERER_METAL
  37. # define BGFX_CONFIG_RENDERER_METAL (0 \
  38. || BX_PLATFORM_IOS \
  39. || (BX_PLATFORM_OSX >= 101100) \
  40. ? 1 : 0)
  41. # endif // BGFX_CONFIG_RENDERER_METAL
  42. # ifndef BGFX_CONFIG_RENDERER_OPENGL
  43. # define BGFX_CONFIG_RENDERER_OPENGL (0 \
  44. || BX_PLATFORM_FREEBSD \
  45. || BX_PLATFORM_LINUX \
  46. || BX_PLATFORM_OSX \
  47. || BX_PLATFORM_WINDOWS \
  48. ? 1 : 0)
  49. # endif // BGFX_CONFIG_RENDERER_OPENGL
  50. # ifndef BGFX_CONFIG_RENDERER_OPENGLES
  51. # define BGFX_CONFIG_RENDERER_OPENGLES (0 \
  52. || BX_PLATFORM_ANDROID \
  53. || BX_PLATFORM_EMSCRIPTEN \
  54. || BX_PLATFORM_IOS \
  55. || BX_PLATFORM_NACL \
  56. || BX_PLATFORM_QNX \
  57. || BX_PLATFORM_RPI \
  58. ? 1 : 0)
  59. # endif // BGFX_CONFIG_RENDERER_OPENGLES
  60. # ifndef BGFX_CONFIG_RENDERER_VULKAN
  61. # define BGFX_CONFIG_RENDERER_VULKAN 0
  62. # endif // BGFX_CONFIG_RENDERER_VULKAN
  63. # ifndef BGFX_CONFIG_RENDERER_NULL
  64. # define BGFX_CONFIG_RENDERER_NULL (!(0 \
  65. || BGFX_CONFIG_RENDERER_DIRECT3D9 \
  66. || BGFX_CONFIG_RENDERER_DIRECT3D11 \
  67. || BGFX_CONFIG_RENDERER_DIRECT3D12 \
  68. || BGFX_CONFIG_RENDERER_OPENGL \
  69. || BGFX_CONFIG_RENDERER_OPENGLES \
  70. ? 1 : 0) )
  71. # endif // BGFX_CONFIG_RENDERER_NULL
  72. #else
  73. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D9
  74. # define BGFX_CONFIG_RENDERER_DIRECT3D9 0
  75. # endif // BGFX_CONFIG_RENDERER_DIRECT3D9
  76. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D11
  77. # define BGFX_CONFIG_RENDERER_DIRECT3D11 0
  78. # endif // BGFX_CONFIG_RENDERER_DIRECT3D11
  79. # ifndef BGFX_CONFIG_RENDERER_DIRECT3D12
  80. # define BGFX_CONFIG_RENDERER_DIRECT3D12 0
  81. # endif // BGFX_CONFIG_RENDERER_DIRECT3D12
  82. # ifndef BGFX_CONFIG_RENDERER_METAL
  83. # define BGFX_CONFIG_RENDERER_METAL 0
  84. # endif // BGFX_CONFIG_RENDERER_METAL
  85. # ifndef BGFX_CONFIG_RENDERER_OPENGL
  86. # define BGFX_CONFIG_RENDERER_OPENGL 0
  87. # endif // BGFX_CONFIG_RENDERER_OPENGL
  88. # ifndef BGFX_CONFIG_RENDERER_OPENGLES
  89. # define BGFX_CONFIG_RENDERER_OPENGLES 0
  90. # endif // BGFX_CONFIG_RENDERER_OPENGLES
  91. # ifndef BGFX_CONFIG_RENDERER_VULKAN
  92. # define BGFX_CONFIG_RENDERER_VULKAN 0
  93. # endif // BGFX_CONFIG_RENDERER_VULKAN
  94. # ifndef BGFX_CONFIG_RENDERER_NULL
  95. # define BGFX_CONFIG_RENDERER_NULL 0
  96. # endif // BGFX_CONFIG_RENDERER_NULL
  97. #endif // !defined...
  98. #if BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGL < 21
  99. # undef BGFX_CONFIG_RENDERER_OPENGL
  100. # define BGFX_CONFIG_RENDERER_OPENGL 21
  101. #endif // BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGL < 21
  102. #if BGFX_CONFIG_RENDERER_OPENGLES && BGFX_CONFIG_RENDERER_OPENGLES < 20
  103. # undef BGFX_CONFIG_RENDERER_OPENGLES
  104. # define BGFX_CONFIG_RENDERER_OPENGLES 20
  105. #endif // BGFX_CONFIG_RENDERER_OPENGLES && BGFX_CONFIG_RENDERER_OPENGLES < 20
  106. #if BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGLES
  107. # error "Can't define both BGFX_CONFIG_RENDERER_OPENGL and BGFX_CONFIG_RENDERER_OPENGLES"
  108. #endif // BGFX_CONFIG_RENDERER_OPENGL && BGFX_CONFIG_RENDERER_OPENGLES
  109. /// Enable use of extensions.
  110. #ifndef BGFX_CONFIG_RENDERER_USE_EXTENSIONS
  111. # define BGFX_CONFIG_RENDERER_USE_EXTENSIONS 1
  112. #endif // BGFX_CONFIG_RENDERER_USE_EXTENSIONS
  113. /// Enable use of tinystl.
  114. #ifndef BGFX_CONFIG_USE_TINYSTL
  115. # define BGFX_CONFIG_USE_TINYSTL 1
  116. #endif // BGFX_CONFIG_USE_TINYSTL
  117. /// Enable OculusVR integration.
  118. #ifndef BGFX_CONFIG_USE_OVR
  119. # define BGFX_CONFIG_USE_OVR 0
  120. #endif // BGFX_CONFIG_USE_OVR
  121. /// Enable nVidia PerfHUD integration.
  122. #ifndef BGFX_CONFIG_DEBUG_PERFHUD
  123. # define BGFX_CONFIG_DEBUG_PERFHUD 0
  124. #endif // BGFX_CONFIG_DEBUG_NVPERFHUD
  125. /// Enable PIX markers.
  126. #ifndef BGFX_CONFIG_DEBUG_PIX
  127. # define BGFX_CONFIG_DEBUG_PIX BGFX_CONFIG_DEBUG
  128. #endif // BGFX_CONFIG_DEBUG_PIX
  129. /// Enable DX11 object names.
  130. #ifndef BGFX_CONFIG_DEBUG_OBJECT_NAME
  131. # define BGFX_CONFIG_DEBUG_OBJECT_NAME BGFX_CONFIG_DEBUG
  132. #endif // BGFX_CONFIG_DEBUG_OBJECT_NAME
  133. /// Enable Metal markers.
  134. #ifndef BGFX_CONFIG_DEBUG_MTL
  135. # define BGFX_CONFIG_DEBUG_MTL BGFX_CONFIG_DEBUG
  136. #endif // BGFX_CONFIG_DEBUG_MTL
  137. /// Enable uniform debug checks.
  138. #ifndef BGFX_CONFIG_DEBUG_UNIFORM
  139. # define BGFX_CONFIG_DEBUG_UNIFORM BGFX_CONFIG_DEBUG
  140. #endif // BGFX_CONFIG_DEBUG_UNIFORM
  141. /// Enable occlusion debug checks.
  142. #ifndef BGFX_CONFIG_DEBUG_OCCLUSION
  143. # define BGFX_CONFIG_DEBUG_OCCLUSION BGFX_CONFIG_DEBUG
  144. #endif // BGFX_CONFIG_DEBUG_OCCLUSION
  145. #ifndef BGFX_CONFIG_MULTITHREADED
  146. # define BGFX_CONFIG_MULTITHREADED ( (!BGFX_CONFIG_RENDERER_NULL)&&(0 \
  147. || BX_PLATFORM_ANDROID \
  148. || BX_PLATFORM_FREEBSD \
  149. || BX_PLATFORM_LINUX \
  150. || BX_PLATFORM_IOS \
  151. || BX_PLATFORM_NACL \
  152. || BX_PLATFORM_OSX \
  153. || BX_PLATFORM_QNX \
  154. || BX_PLATFORM_RPI \
  155. || BX_PLATFORM_WINDOWS \
  156. || BX_PLATFORM_WINRT \
  157. || BX_PLATFORM_XBOX360 \
  158. ? 1 : 0) )
  159. #endif // BGFX_CONFIG_MULTITHREADED
  160. #ifndef BGFX_CONFIG_MAX_DRAW_CALLS
  161. # define BGFX_CONFIG_MAX_DRAW_CALLS ( (64<<10)-1)
  162. #endif // BGFX_CONFIG_MAX_DRAW_CALLS
  163. #ifndef BGFX_CONFIG_MAX_BLIT_ITEMS
  164. # define BGFX_CONFIG_MAX_BLIT_ITEMS (1<<10)
  165. #endif // BGFX_CONFIG_MAX_BLIT_ITEMS
  166. #ifndef BGFX_CONFIG_MAX_MATRIX_CACHE
  167. # define BGFX_CONFIG_MAX_MATRIX_CACHE (BGFX_CONFIG_MAX_DRAW_CALLS+1)
  168. #endif // BGFX_CONFIG_MAX_MATRIX_CACHE
  169. #ifndef BGFX_CONFIG_MAX_RECT_CACHE
  170. # define BGFX_CONFIG_MAX_RECT_CACHE (4<<10)
  171. #endif // BGFX_CONFIG_MAX_RECT_CACHE
  172. #ifndef BGFX_CONFIG_MAX_VIEWS
  173. // Do not change. Must be power of 2.
  174. # define BGFX_CONFIG_MAX_VIEWS 256
  175. #endif // BGFX_CONFIG_MAX_VIEWS
  176. #define BGFX_CONFIG_MAX_VIEW_NAME_RESERVED 6
  177. #ifndef BGFX_CONFIG_MAX_VIEW_NAME
  178. # define BGFX_CONFIG_MAX_VIEW_NAME 256
  179. #endif // BGFX_CONFIG_MAX_VIEW_NAME
  180. #ifndef BGFX_CONFIG_MAX_VERTEX_DECLS
  181. # define BGFX_CONFIG_MAX_VERTEX_DECLS 64
  182. #endif // BGFX_CONFIG_MAX_VERTEX_DECLS
  183. #ifndef BGFX_CONFIG_MAX_INDEX_BUFFERS
  184. # define BGFX_CONFIG_MAX_INDEX_BUFFERS (4<<10)
  185. #endif // BGFX_CONFIG_MAX_INDEX_BUFFERS
  186. #ifndef BGFX_CONFIG_MAX_VERTEX_BUFFERS
  187. # define BGFX_CONFIG_MAX_VERTEX_BUFFERS (4<<10)
  188. #endif // BGFX_CONFIG_MAX_VERTEX_BUFFERS
  189. #ifndef BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS
  190. # define BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS (4<<10)
  191. #endif // BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS
  192. #ifndef BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS
  193. # define BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS (4<<10)
  194. #endif // BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS
  195. #ifndef BGFX_CONFIG_DYNAMIC_INDEX_BUFFER_SIZE
  196. # define BGFX_CONFIG_DYNAMIC_INDEX_BUFFER_SIZE (1<<20)
  197. #endif // BGFX_CONFIG_DYNAMIC_INDEX_BUFFER_SIZE
  198. #ifndef BGFX_CONFIG_DYNAMIC_VERTEX_BUFFER_SIZE
  199. # define BGFX_CONFIG_DYNAMIC_VERTEX_BUFFER_SIZE (3<<20)
  200. #endif // BGFX_CONFIG_DYNAMIC_VERTEX_BUFFER_SIZE
  201. #ifndef BGFX_CONFIG_MAX_SHADERS
  202. # define BGFX_CONFIG_MAX_SHADERS 512
  203. #endif // BGFX_CONFIG_MAX_FRAGMENT_SHADERS
  204. #ifndef BGFX_CONFIG_MAX_PROGRAMS
  205. // Must be power of 2.
  206. # define BGFX_CONFIG_MAX_PROGRAMS 512
  207. #endif // BGFX_CONFIG_MAX_PROGRAMS
  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 64
  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