2
0

config.h 8.8 KB

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