BsPrerequisites.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsCorePrerequisites.h"
  5. /** @addtogroup Layers
  6. * @{
  7. */
  8. /** @defgroup Engine Engine
  9. * Layer that builds upon Core, providing specific implementations of its interfaces as well as other high level systems.
  10. * @{
  11. */
  12. /** @defgroup 2D 2D
  13. * Two dimensional geometry (sprites).
  14. */
  15. /** @defgroup Application-Engine Application
  16. * Entry point into the application.
  17. */
  18. /** @defgroup Components Components
  19. * Built-in components.
  20. */
  21. /** @defgroup GUI GUI
  22. * Graphical user interface, including elements, styles, events and GUI manager.
  23. */
  24. /** @defgroup Input-Engine Input
  25. * User input (mouse, keyboard, gamepad, etc.).
  26. */
  27. /** @defgroup Platform-Engine Platform
  28. * %Platform specific functionality.
  29. */
  30. /** @defgroup Resources-Engine Resources
  31. * Builtin engine resource types and a manager for such resources.
  32. */
  33. /** @cond RTTI */
  34. /** @defgroup RTTI-Impl-Engine RTTI types
  35. * Types containing RTTI for specific classes.
  36. */
  37. /** @endcond */
  38. /** @defgroup Utility-Engine Utility
  39. * Various utility methods and types used by the engine layer.
  40. */
  41. /** @} */
  42. /** @} */
  43. /** @addtogroup Internals
  44. * @{
  45. */
  46. /** @defgroup Internal-Engine Engine
  47. * Layer that builds upon Core, providing specific implementations of its interfaces as well as other high level systems.
  48. * @{
  49. */
  50. /** @defgroup 2D-Internal 2D
  51. * Two dimensional geometry (sprites).
  52. */
  53. /** @defgroup GUI-Internal GUI
  54. * Graphical user interface, including elements, styles, events and GUI manager.
  55. */
  56. /** @defgroup Renderer-Engine-Internal Renderer
  57. * Abstract interface and helper functionality for rendering scene objects and other geometry.
  58. */
  59. /** @defgroup Resources-Engine-Internal Resources
  60. * Builtin engine resource types and a manager for such resources.
  61. */
  62. /** @defgroup Script-Internal Script
  63. * Interaction with scripting languages and libraries.
  64. */
  65. /** @defgroup Utility-Engine-Internal Utility
  66. * Various utility methods and types used by the engine layer.
  67. */
  68. /** @} */
  69. /** @} */
  70. // DLL export
  71. #if BS_PLATFORM == BS_PLATFORM_WIN32 // Windows
  72. # if BS_COMPILER == BS_COMPILER_MSVC
  73. # if defined(BS_STATIC_LIB)
  74. # define BS_EXPORT
  75. # else
  76. # if defined(BS_EXPORTS)
  77. # define BS_EXPORT __declspec(dllexport)
  78. # else
  79. # define BS_EXPORT __declspec(dllimport)
  80. # endif
  81. # endif
  82. # else
  83. # if defined(BS_STATIC_LIB)
  84. # define BS_EXPORT
  85. # else
  86. # if defined(BS_EXPORTS)
  87. # define BS_EXPORT __attribute__ ((dllexport))
  88. # else
  89. # define BS_EXPORT __attribute__ ((dllimport))
  90. # endif
  91. # endif
  92. # endif
  93. # define BS_HIDDEN
  94. #else // Linux/Mac settings
  95. # define BS_EXPORT __attribute__ ((visibility ("default")))
  96. # define BS_HIDDEN __attribute__ ((visibility ("hidden")))
  97. #endif
  98. #include "Scene/BsGameObject.h"
  99. #include "Utility/BsEnums.h"
  100. #include "Utility/BsPaths.h"
  101. #include "Localization/BsHEString.h"
  102. namespace bs
  103. {
  104. static const StringID RendererDefault = "RenderBeast";
  105. class VirtualButton;
  106. class VirtualInput;
  107. class InputConfiguration;
  108. struct DragCallbackInfo;
  109. struct ShortcutKey;
  110. // GUI
  111. class CGUIWidget;
  112. class GUIManager;
  113. class GUIWidget;
  114. class GUIElementBase;
  115. class GUIElement;
  116. class GUILabel;
  117. class GUIButtonBase;
  118. class GUIButton;
  119. class GUITexture;
  120. class GUIToggle;
  121. class GUIInputBox;
  122. class GUISliderHandle;
  123. class GUIScrollBarVert;
  124. class GUIScrollBarHorz;
  125. class GUIScrollArea;
  126. class GUISkin;
  127. class GUIRenderTexture;
  128. struct GUIElementStyle;
  129. class GUIMouseEvent;
  130. class GUITextInputEvent;
  131. class GUICommandEvent;
  132. class GUIVirtualButtonEvent;
  133. class GUILayout;
  134. class GUILayoutX;
  135. class GUILayoutY;
  136. class GUIPanel;
  137. class GUIFixedSpace;
  138. class GUIFlexibleSpace;
  139. class GUIInputCaret;
  140. class GUIInputSelection;
  141. struct GUIDimensions;
  142. class GUIOptions;
  143. class GUIToggleGroup;
  144. class GUIListBox;
  145. class GUIDropDownDataEntry;
  146. class GUIDropDownMenu;
  147. class DragAndDropManager;
  148. class GUIMenu;
  149. class GUIMenuItem;
  150. class GUIContent;
  151. class GUIContextMenu;
  152. class GUIDropDownHitBox;
  153. class GUIDropDownContent;
  154. class RenderableElement;
  155. class GUISlider;
  156. class GUISliderVert;
  157. class GUISliderHorz;
  158. class GUIProgressBar;
  159. class GUICanvas;
  160. class RenderableHandler;
  161. class CProfilerOverlay;
  162. class ProfilerOverlayInternal;
  163. class DrawHelper;
  164. class PlainText;
  165. class ScriptCode;
  166. class ScriptCodeImportOptions;
  167. class RendererMeshData;
  168. // 2D
  169. class TextSprite;
  170. class ImageSprite;
  171. class SpriteTexture;
  172. class SpriteMaterial;
  173. struct SpriteMaterialInfo;
  174. typedef GameObjectHandle<CGUIWidget> HGUIWidget;
  175. typedef GameObjectHandle<CProfilerOverlay> HProfilerOverlay;
  176. typedef ResourceHandle<SpriteTexture> HSpriteTexture;
  177. typedef ResourceHandle<PlainText> HPlainText;
  178. typedef ResourceHandle<ScriptCode> HScriptCode;
  179. typedef ResourceHandle<GUISkin> HGUISkin;
  180. /** RTTI types. */
  181. enum TypeID_Banshee
  182. {
  183. /* TID_CCamera = 30000, */
  184. /* TID_CRenderable = 30001, */
  185. TID_SpriteTexture = 30002,
  186. /* TID_Camera = 30003, */
  187. /* TID_Renderable = 30004, */
  188. TID_PlainText = 30005,
  189. TID_ScriptCode = 30006,
  190. TID_ScriptCodeImportOptions = 30007,
  191. TID_GUIElementStyle = 30008,
  192. TID_GUISkin = 30009,
  193. TID_GUISkinEntry = 30010,
  194. /* TID_Light = 30011, */
  195. /* TID_CLight = 30012, */
  196. TID_GameSettings = 30013,
  197. TID_ResourceMapping = 30014,
  198. //TID_AutoExposureSettings = 30016,
  199. //TID_TonemappingSettings = 30017,
  200. //TID_WhiteBalanceSettings = 30018,
  201. //TID_ColorGradingSettings = 30019,
  202. //TID_DepthOfFieldSettings = 30020,
  203. //TID_AmbientOcclusionSettings = 30021,
  204. //TID_ScreenSpaceReflectionsSettings = 30022
  205. };
  206. }