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