BsPrerequisites.h 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  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 3. Engine
  9. * Layer that builds upon Core, providing specific implementations of its interfaces as well as other high level systems.
  10. * @{
  11. */
  12. /** @defgroup Renderer-Engine Renderer
  13. * Abstract interface and helper functionality for rendering scene objects and other geometry.
  14. */
  15. /** @defgroup 2D 2D
  16. * Two dimensional geometry (sprites).
  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. /** @cond RTTI */
  28. /** @defgroup RTTI-Impl-Engine RTTI types
  29. * Types containing RTTI for specific classes.
  30. */
  31. /** @endcond */
  32. /** @defgroup Resources-Engine Resources
  33. * Builtin engine resource types and a manager for such resources.
  34. */
  35. /** @defgroup Utility-Engine Utility
  36. * Various utility methods and types used by the engine layer.
  37. */
  38. /** @defgroup Platform-Engine Platform
  39. * %Platform specific functionality.
  40. */
  41. /** @defgroup Script Script
  42. * Interaction with scripting languages and libraries.
  43. */
  44. /** @defgroup Application-Engine Application
  45. * Entry point into the application.
  46. */
  47. /** @defgroup Internal-Core [INTERNAL]
  48. * Low-level classes and methods not meant for normal use, useful for those that are modifying the engine.
  49. * @{
  50. */
  51. /** @defgroup 2D-Internal 2D
  52. * Two dimensional geometry (sprites).
  53. */
  54. /** @defgroup GUI-Internal GUI
  55. * Graphical user interface, including elements, styles, events and GUI manager.
  56. */
  57. /** @defgroup Renderer-Engine-Internal Renderer
  58. * Abstract interface and helper functionality for rendering scene objects and other geometry.
  59. */
  60. /** @defgroup Resources-Engine-Internal Resources
  61. * Builtin engine resource types and a manager for such resources.
  62. */
  63. /** @defgroup Script-Internal Script
  64. * Interaction with scripting languages and libraries.
  65. */
  66. /** @defgroup Utility-Engine-Internal Utility
  67. * Various utility methods and types used by the engine layer.
  68. */
  69. /** @} */
  70. /** @} */
  71. /** @} */
  72. #if (BS_PLATFORM == BS_PLATFORM_WIN32) && !defined(__MINGW32__)
  73. # ifdef BS_EXPORTS
  74. # define BS_EXPORT __declspec(dllexport)
  75. # else
  76. # if defined( __MINGW32__ )
  77. # define BS_EXPORT
  78. # else
  79. # define BS_EXPORT __declspec(dllimport)
  80. # endif
  81. # endif
  82. #elif defined ( BS_GCC_VISIBILITY )
  83. # define BS_EXPORT __attribute__ ((visibility("default")))
  84. #else
  85. # define BS_EXPORT
  86. #endif
  87. #include "BsGameObject.h"
  88. #include "BsEnums.h"
  89. #include "BsHEString.h"
  90. #include "BsPaths.h"
  91. namespace BansheeEngine
  92. {
  93. static const StringID RenderAPIDX9 = "D3D9RenderAPI";
  94. static const StringID RenderAPIDX11 = "D3D11RenderAPI";
  95. static const StringID RenderAPIOpenGL = "GLRenderAPI";
  96. static const StringID RendererDefault = "RenderBeast";
  97. class VirtualButton;
  98. class VirtualInput;
  99. class InputConfiguration;
  100. struct DragCallbackInfo;
  101. struct ShortcutKey;
  102. // GUI
  103. class CGUIWidget;
  104. class GUIManager;
  105. class GUIWidget;
  106. class GUIElementBase;
  107. class GUIElement;
  108. class GUILabel;
  109. class GUIButtonBase;
  110. class GUIButton;
  111. class GUITexture;
  112. class GUIToggle;
  113. class GUIInputBox;
  114. class GUISliderHandle;
  115. class GUIScrollBarVert;
  116. class GUIScrollBarHorz;
  117. class GUIScrollArea;
  118. class GUISkin;
  119. class GUIRenderTexture;
  120. struct GUIElementStyle;
  121. class GUIMouseEvent;
  122. class GUITextInputEvent;
  123. class GUICommandEvent;
  124. class GUIVirtualButtonEvent;
  125. class GUILayout;
  126. class GUILayoutX;
  127. class GUILayoutY;
  128. class GUIPanel;
  129. class GUIFixedSpace;
  130. class GUIFlexibleSpace;
  131. class GUIInputCaret;
  132. class GUIInputSelection;
  133. struct GUIDimensions;
  134. class GUIOptions;
  135. class GUIToggleGroup;
  136. class GUIListBox;
  137. class GUIDropDownDataEntry;
  138. class GUIDropDownMenu;
  139. class DragAndDropManager;
  140. class GUIMenu;
  141. class GUIMenuItem;
  142. class GUIContent;
  143. class GUIContextMenu;
  144. class GUIDropDownHitBox;
  145. class GUIDropDownContent;
  146. class RenderableElement;
  147. class GUISlider;
  148. class GUISliderVert;
  149. class GUISliderHorz;
  150. class GUIProgressBar;
  151. class RenderableHandler;
  152. class ProfilerOverlay;
  153. class ProfilerOverlayInternal;
  154. class DrawHelper;
  155. class Camera;
  156. class Renderable;
  157. class CameraCore;
  158. class RenderableCore;
  159. class PlainText;
  160. class ScriptCode;
  161. class ScriptCodeImportOptions;
  162. class RendererMeshData;
  163. // 2D
  164. class TextSprite;
  165. class ImageSprite;
  166. class SpriteTexture;
  167. struct SpriteMaterialInfo;
  168. // Components
  169. class CRenderable;
  170. class CCamera;
  171. class CLight;
  172. typedef std::shared_ptr<TextSprite> TextSpritePtr;
  173. typedef std::shared_ptr<SpriteTexture> SpriteTexturePtr;
  174. typedef std::shared_ptr<CCamera> CCameraPtr;
  175. typedef std::shared_ptr<CRenderable> CRenderablePtr;
  176. typedef std::shared_ptr<GUIToggleGroup> GUIToggleGroupPtr;
  177. typedef std::shared_ptr<Camera> CameraPtr;
  178. typedef std::shared_ptr<Renderable> RenderablePtr;
  179. typedef std::shared_ptr<InputConfiguration> InputConfigurationPtr;
  180. typedef std::shared_ptr<PlainText> PlainTextPtr;
  181. typedef std::shared_ptr<ScriptCode> ScriptCodePtr;
  182. typedef std::shared_ptr<GUISkin> GUISkinPtr;
  183. typedef std::shared_ptr<GUIContextMenu> GUIContextMenuPtr;
  184. typedef GameObjectHandle<CGUIWidget> HGUIWidget;
  185. typedef GameObjectHandle<CCamera> HCamera;
  186. typedef GameObjectHandle<CRenderable> HRenderable;
  187. typedef GameObjectHandle<ProfilerOverlay> HProfilerOverlay;
  188. typedef ResourceHandle<SpriteTexture> HSpriteTexture;
  189. typedef ResourceHandle<PlainText> HPlainText;
  190. typedef ResourceHandle<ScriptCode> HScriptCode;
  191. typedef ResourceHandle<GUISkin> HGUISkin;
  192. /** RTTI types. */
  193. enum TypeID_Banshee
  194. {
  195. TID_CCamera = 30000,
  196. TID_CRenderable = 30001,
  197. TID_SpriteTexture = 30002,
  198. TID_Camera = 30003,
  199. TID_Renderable = 30004,
  200. TID_PlainText = 30005,
  201. TID_ScriptCode = 30006,
  202. TID_ScriptCodeImportOptions = 30007,
  203. TID_GUIElementStyle = 30008,
  204. TID_GUISkin = 30009,
  205. TID_GUISkinEntry = 30010,
  206. TID_Light = 30011,
  207. TID_CLight = 30012,
  208. TID_GameSettings = 30013,
  209. TID_ResourceMapping = 30014
  210. };
  211. }