config.h 8.5 KB

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