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 | #include "Reflection/BsRTTIType.h" |
7 | #include "Renderer/BsRenderSettings.h" |
8 | |
9 | namespace bs |
10 | { |
11 | /** @cond RTTI */ |
12 | /** @addtogroup RTTI-Impl-Engine |
13 | * @{ |
14 | */ |
15 | |
16 | class BS_CORE_EXPORT AutoExposureSettingsRTTI : public RTTIType <AutoExposureSettings, IReflectable, AutoExposureSettingsRTTI> |
17 | { |
18 | private: |
19 | BS_BEGIN_RTTI_MEMBERS |
20 | BS_RTTI_MEMBER_PLAIN(histogramLog2Min, 0) |
21 | BS_RTTI_MEMBER_PLAIN(histogramLog2Max, 1) |
22 | BS_RTTI_MEMBER_PLAIN(histogramPctLow, 2) |
23 | BS_RTTI_MEMBER_PLAIN(histogramPctHigh, 3) |
24 | BS_RTTI_MEMBER_PLAIN(minEyeAdaptation, 4) |
25 | BS_RTTI_MEMBER_PLAIN(maxEyeAdaptation, 5) |
26 | BS_RTTI_MEMBER_PLAIN(eyeAdaptationSpeedUp, 6) |
27 | BS_RTTI_MEMBER_PLAIN(eyeAdaptationSpeedDown, 7) |
28 | BS_END_RTTI_MEMBERS |
29 | |
30 | public: |
31 | const String& getRTTIName() override |
32 | { |
33 | static String name = "AutoExposureSettings" ; |
34 | return name; |
35 | } |
36 | |
37 | UINT32 getRTTIId() override |
38 | { |
39 | return TID_AutoExposureSettings; |
40 | } |
41 | |
42 | SPtr<IReflectable> newRTTIObject() override |
43 | { |
44 | return bs_shared_ptr_new<AutoExposureSettings>(); |
45 | } |
46 | }; |
47 | |
48 | class BS_CORE_EXPORT TonemappingSettingsRTTI : public RTTIType <TonemappingSettings, IReflectable, TonemappingSettingsRTTI> |
49 | { |
50 | private: |
51 | BS_BEGIN_RTTI_MEMBERS |
52 | BS_RTTI_MEMBER_PLAIN(filmicCurveShoulderStrength, 0) |
53 | BS_RTTI_MEMBER_PLAIN(filmicCurveLinearStrength, 1) |
54 | BS_RTTI_MEMBER_PLAIN(filmicCurveLinearAngle, 2) |
55 | BS_RTTI_MEMBER_PLAIN(filmicCurveToeStrength, 3) |
56 | BS_RTTI_MEMBER_PLAIN(filmicCurveToeNumerator, 4) |
57 | BS_RTTI_MEMBER_PLAIN(filmicCurveToeDenominator, 5) |
58 | BS_RTTI_MEMBER_PLAIN(filmicCurveLinearWhitePoint, 6) |
59 | BS_END_RTTI_MEMBERS |
60 | |
61 | public: |
62 | const String& getRTTIName() override |
63 | { |
64 | static String name = "TonemappingSettings" ; |
65 | return name; |
66 | } |
67 | |
68 | UINT32 getRTTIId() override |
69 | { |
70 | return TID_TonemappingSettings; |
71 | } |
72 | |
73 | SPtr<IReflectable> newRTTIObject() override |
74 | { |
75 | return bs_shared_ptr_new<TonemappingSettings>(); |
76 | } |
77 | }; |
78 | |
79 | class BS_CORE_EXPORT WhiteBalanceSettingsRTTI : public RTTIType <WhiteBalanceSettings, IReflectable, WhiteBalanceSettingsRTTI> |
80 | { |
81 | private: |
82 | BS_BEGIN_RTTI_MEMBERS |
83 | BS_RTTI_MEMBER_PLAIN(temperature, 0) |
84 | BS_RTTI_MEMBER_PLAIN(tint, 1) |
85 | BS_END_RTTI_MEMBERS |
86 | |
87 | public: |
88 | const String& getRTTIName() override |
89 | { |
90 | static String name = "WhiteBalanceSettings" ; |
91 | return name; |
92 | } |
93 | |
94 | UINT32 getRTTIId() override |
95 | { |
96 | return TID_WhiteBalanceSettings; |
97 | } |
98 | |
99 | SPtr<IReflectable> newRTTIObject() override |
100 | { |
101 | return bs_shared_ptr_new<WhiteBalanceSettings>(); |
102 | } |
103 | }; |
104 | |
105 | class BS_CORE_EXPORT ColorGradingSettingsRTTI : public RTTIType <ColorGradingSettings, IReflectable, ColorGradingSettingsRTTI> |
106 | { |
107 | private: |
108 | BS_BEGIN_RTTI_MEMBERS |
109 | BS_RTTI_MEMBER_PLAIN(saturation, 0) |
110 | BS_RTTI_MEMBER_PLAIN(contrast, 1) |
111 | BS_RTTI_MEMBER_PLAIN(gain, 2) |
112 | BS_RTTI_MEMBER_PLAIN(offset, 3) |
113 | BS_END_RTTI_MEMBERS |
114 | |
115 | public: |
116 | const String& getRTTIName() override |
117 | { |
118 | static String name = "ColorGradingSettings" ; |
119 | return name; |
120 | } |
121 | |
122 | UINT32 getRTTIId() override |
123 | { |
124 | return TID_ColorGradingSettings; |
125 | } |
126 | |
127 | SPtr<IReflectable> newRTTIObject() override |
128 | { |
129 | return bs_shared_ptr_new<ColorGradingSettings>(); |
130 | } |
131 | }; |
132 | |
133 | class BS_CORE_EXPORT DepthOfFieldSettingsRTTI : public RTTIType <DepthOfFieldSettings, IReflectable, DepthOfFieldSettingsRTTI> |
134 | { |
135 | private: |
136 | BS_BEGIN_RTTI_MEMBERS |
137 | BS_RTTI_MEMBER_PLAIN(enabled, 0) |
138 | BS_RTTI_MEMBER_PLAIN(focalDistance, 1) |
139 | BS_RTTI_MEMBER_PLAIN(focalRange, 2) |
140 | BS_RTTI_MEMBER_PLAIN(nearTransitionRange, 3) |
141 | BS_RTTI_MEMBER_PLAIN(farTransitionRange, 4) |
142 | BS_RTTI_MEMBER_PLAIN(nearBlurAmount, 5) |
143 | BS_RTTI_MEMBER_PLAIN(farBlurAmount, 6) |
144 | BS_END_RTTI_MEMBERS |
145 | |
146 | public: |
147 | const String& getRTTIName() override |
148 | { |
149 | static String name = "DepthOfFieldSettings" ; |
150 | return name; |
151 | } |
152 | |
153 | UINT32 getRTTIId() override |
154 | { |
155 | return TID_DepthOfFieldSettings; |
156 | } |
157 | |
158 | SPtr<IReflectable> newRTTIObject() override |
159 | { |
160 | return bs_shared_ptr_new<DepthOfFieldSettings>(); |
161 | } |
162 | }; |
163 | |
164 | class BS_CORE_EXPORT AmbientOcclusionSettingsRTTI : public RTTIType <AmbientOcclusionSettings, IReflectable, AmbientOcclusionSettingsRTTI> |
165 | { |
166 | private: |
167 | BS_BEGIN_RTTI_MEMBERS |
168 | BS_RTTI_MEMBER_PLAIN(enabled, 0) |
169 | BS_RTTI_MEMBER_PLAIN(radius, 1) |
170 | BS_RTTI_MEMBER_PLAIN(bias, 2) |
171 | BS_RTTI_MEMBER_PLAIN(fadeRange, 3) |
172 | BS_RTTI_MEMBER_PLAIN(fadeDistance, 4) |
173 | BS_RTTI_MEMBER_PLAIN(intensity, 5) |
174 | BS_RTTI_MEMBER_PLAIN(power, 6) |
175 | BS_RTTI_MEMBER_PLAIN(quality, 7) |
176 | BS_END_RTTI_MEMBERS |
177 | |
178 | public: |
179 | const String& getRTTIName() override |
180 | { |
181 | static String name = "AmbientOcclusionSettings" ; |
182 | return name; |
183 | } |
184 | |
185 | UINT32 getRTTIId() override |
186 | { |
187 | return TID_AmbientOcclusionSettings; |
188 | } |
189 | |
190 | SPtr<IReflectable> newRTTIObject() override |
191 | { |
192 | return bs_shared_ptr_new<AmbientOcclusionSettings>(); |
193 | } |
194 | }; |
195 | |
196 | class BS_CORE_EXPORT ScreenSpaceReflectionsSettingsRTTI : public RTTIType <ScreenSpaceReflectionsSettings, IReflectable, ScreenSpaceReflectionsSettingsRTTI> |
197 | { |
198 | private: |
199 | BS_BEGIN_RTTI_MEMBERS |
200 | BS_RTTI_MEMBER_PLAIN(enabled, 0) |
201 | BS_RTTI_MEMBER_PLAIN(intensity, 1) |
202 | BS_RTTI_MEMBER_PLAIN(maxRoughness, 2) |
203 | BS_RTTI_MEMBER_PLAIN(quality, 3) |
204 | BS_END_RTTI_MEMBERS |
205 | |
206 | public: |
207 | const String& getRTTIName() override |
208 | { |
209 | static String name = "ScreenSpaceReflectionsSettings" ; |
210 | return name; |
211 | } |
212 | |
213 | UINT32 getRTTIId() override |
214 | { |
215 | return TID_ScreenSpaceReflectionsSettings; |
216 | } |
217 | |
218 | SPtr<IReflectable> newRTTIObject() override |
219 | { |
220 | return bs_shared_ptr_new<ScreenSpaceReflectionsSettings>(); |
221 | } |
222 | }; |
223 | |
224 | class BS_CORE_EXPORT BloomSettingsRTTI : public RTTIType <BloomSettings, IReflectable, BloomSettingsRTTI> |
225 | { |
226 | private: |
227 | BS_BEGIN_RTTI_MEMBERS |
228 | BS_RTTI_MEMBER_PLAIN(enabled, 0) |
229 | BS_RTTI_MEMBER_PLAIN(quality, 1) |
230 | BS_RTTI_MEMBER_PLAIN(threshold, 2) |
231 | BS_RTTI_MEMBER_PLAIN(intensity, 3) |
232 | BS_RTTI_MEMBER_PLAIN(tint, 4) |
233 | BS_END_RTTI_MEMBERS |
234 | |
235 | public: |
236 | const String& getRTTIName() override |
237 | { |
238 | static String name = "BloomSettings" ; |
239 | return name; |
240 | } |
241 | |
242 | UINT32 getRTTIId() override |
243 | { |
244 | return TID_BloomSettings; |
245 | } |
246 | |
247 | SPtr<IReflectable> newRTTIObject() override |
248 | { |
249 | return bs_shared_ptr_new<BloomSettings>(); |
250 | } |
251 | }; |
252 | |
253 | class BS_CORE_EXPORT ShadowSettingsRTTI : public RTTIType <ShadowSettings, IReflectable, ShadowSettingsRTTI> |
254 | { |
255 | private: |
256 | BS_BEGIN_RTTI_MEMBERS |
257 | BS_RTTI_MEMBER_PLAIN(directionalShadowDistance, 0) |
258 | BS_RTTI_MEMBER_PLAIN(numCascades, 1) |
259 | BS_RTTI_MEMBER_PLAIN(cascadeDistributionExponent, 2) |
260 | BS_RTTI_MEMBER_PLAIN(shadowFilteringQuality, 3) |
261 | BS_END_RTTI_MEMBERS |
262 | |
263 | public: |
264 | const String& getRTTIName() override |
265 | { |
266 | static String name = "ShadowSettings" ; |
267 | return name; |
268 | } |
269 | |
270 | UINT32 getRTTIId() override |
271 | { |
272 | return TID_ShadowSettings; |
273 | } |
274 | |
275 | SPtr<IReflectable> newRTTIObject() override |
276 | { |
277 | return bs_shared_ptr_new<ShadowSettings>(); |
278 | } |
279 | }; |
280 | |
281 | class BS_CORE_EXPORT RenderSettingsRTTI : public RTTIType <RenderSettings, IReflectable, RenderSettingsRTTI> |
282 | { |
283 | private: |
284 | BS_BEGIN_RTTI_MEMBERS |
285 | BS_RTTI_MEMBER_PLAIN(enableAutoExposure, 0) |
286 | BS_RTTI_MEMBER_REFL(autoExposure, 1) |
287 | BS_RTTI_MEMBER_PLAIN(enableTonemapping, 2) |
288 | BS_RTTI_MEMBER_REFL(tonemapping, 3) |
289 | BS_RTTI_MEMBER_REFL(whiteBalance, 4) |
290 | BS_RTTI_MEMBER_REFL(colorGrading, 5) |
291 | BS_RTTI_MEMBER_PLAIN(exposureScale, 6) |
292 | BS_RTTI_MEMBER_PLAIN(gamma, 7) |
293 | BS_RTTI_MEMBER_REFL(depthOfField, 8) |
294 | BS_RTTI_MEMBER_PLAIN(enableFXAA, 9) |
295 | BS_RTTI_MEMBER_REFL(ambientOcclusion, 10) |
296 | BS_RTTI_MEMBER_REFL(screenSpaceReflections, 11) |
297 | BS_RTTI_MEMBER_PLAIN(enableHDR, 12) |
298 | BS_RTTI_MEMBER_PLAIN(enableLighting, 13) |
299 | BS_RTTI_MEMBER_PLAIN(enableShadows, 14) |
300 | BS_RTTI_MEMBER_PLAIN(overlayOnly, 15) |
301 | BS_RTTI_MEMBER_PLAIN(enableIndirectLighting, 16) |
302 | BS_RTTI_MEMBER_REFL(shadowSettings, 17) |
303 | BS_RTTI_MEMBER_PLAIN(enableSkybox, 18) |
304 | BS_RTTI_MEMBER_REFL(bloom, 19) |
305 | BS_END_RTTI_MEMBERS |
306 | |
307 | public: |
308 | const String& getRTTIName() override |
309 | { |
310 | static String name = "RenderSettings" ; |
311 | return name; |
312 | } |
313 | |
314 | UINT32 getRTTIId() override |
315 | { |
316 | return TID_RenderSettings; |
317 | } |
318 | |
319 | SPtr<IReflectable> newRTTIObject() override |
320 | { |
321 | return bs_shared_ptr_new<RenderSettings>(); |
322 | } |
323 | }; |
324 | |
325 | /** @} */ |
326 | /** @endcond */ |
327 | } |
328 | |