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 | } |