BsPostProcessSettingsRTTI.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  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. #include "BsRTTIType.h"
  6. #include "BsPostProcessSettings.h"
  7. namespace bs
  8. {
  9. /** @cond RTTI */
  10. /** @addtogroup RTTI-Impl-Engine
  11. * @{
  12. */
  13. class BS_CORE_EXPORT AutoExposureSettingsRTTI : public RTTIType <AutoExposureSettings, IReflectable, AutoExposureSettingsRTTI>
  14. {
  15. private:
  16. BS_BEGIN_RTTI_MEMBERS
  17. BS_RTTI_MEMBER_PLAIN(histogramLog2Min, 0)
  18. BS_RTTI_MEMBER_PLAIN(histogramLog2Max, 1)
  19. BS_RTTI_MEMBER_PLAIN(histogramPctLow, 2)
  20. BS_RTTI_MEMBER_PLAIN(histogramPctHigh, 3)
  21. BS_RTTI_MEMBER_PLAIN(minEyeAdaptation, 4)
  22. BS_RTTI_MEMBER_PLAIN(maxEyeAdaptation, 5)
  23. BS_RTTI_MEMBER_PLAIN(eyeAdaptationSpeedUp, 6)
  24. BS_RTTI_MEMBER_PLAIN(eyeAdaptationSpeedDown, 7)
  25. BS_END_RTTI_MEMBERS
  26. public:
  27. AutoExposureSettingsRTTI()
  28. :mInitMembers(this)
  29. { }
  30. const String& getRTTIName() override
  31. {
  32. static String name = "AutoExposureSettings";
  33. return name;
  34. }
  35. UINT32 getRTTIId() override
  36. {
  37. return TID_AutoExposureSettings;
  38. }
  39. SPtr<IReflectable> newRTTIObject() override
  40. {
  41. return bs_shared_ptr_new<AutoExposureSettings>();
  42. }
  43. };
  44. class BS_CORE_EXPORT TonemappingSettingsRTTI : public RTTIType <TonemappingSettings, IReflectable, TonemappingSettingsRTTI>
  45. {
  46. private:
  47. BS_BEGIN_RTTI_MEMBERS
  48. BS_RTTI_MEMBER_PLAIN(filmicCurveShoulderStrength, 0)
  49. BS_RTTI_MEMBER_PLAIN(filmicCurveLinearStrength, 1)
  50. BS_RTTI_MEMBER_PLAIN(filmicCurveLinearAngle, 2)
  51. BS_RTTI_MEMBER_PLAIN(filmicCurveToeStrength, 3)
  52. BS_RTTI_MEMBER_PLAIN(filmicCurveToeNumerator, 4)
  53. BS_RTTI_MEMBER_PLAIN(filmicCurveToeDenominator, 5)
  54. BS_RTTI_MEMBER_PLAIN(filmicCurveLinearWhitePoint, 6)
  55. BS_END_RTTI_MEMBERS
  56. public:
  57. TonemappingSettingsRTTI()
  58. :mInitMembers(this)
  59. { }
  60. const String& getRTTIName() override
  61. {
  62. static String name = "TonemappingSettings";
  63. return name;
  64. }
  65. UINT32 getRTTIId() override
  66. {
  67. return TID_TonemappingSettings;
  68. }
  69. SPtr<IReflectable> newRTTIObject() override
  70. {
  71. return bs_shared_ptr_new<TonemappingSettings>();
  72. }
  73. };
  74. class BS_CORE_EXPORT WhiteBalanceSettingsRTTI : public RTTIType <WhiteBalanceSettings, IReflectable, WhiteBalanceSettingsRTTI>
  75. {
  76. private:
  77. BS_BEGIN_RTTI_MEMBERS
  78. BS_RTTI_MEMBER_PLAIN(temperature, 0)
  79. BS_RTTI_MEMBER_PLAIN(tint, 1)
  80. BS_END_RTTI_MEMBERS
  81. public:
  82. WhiteBalanceSettingsRTTI()
  83. :mInitMembers(this)
  84. { }
  85. const String& getRTTIName() override
  86. {
  87. static String name = "WhiteBalanceSettings";
  88. return name;
  89. }
  90. UINT32 getRTTIId() override
  91. {
  92. return TID_WhiteBalanceSettings;
  93. }
  94. SPtr<IReflectable> newRTTIObject() override
  95. {
  96. return bs_shared_ptr_new<WhiteBalanceSettings>();
  97. }
  98. };
  99. class BS_CORE_EXPORT ColorGradingSettingsRTTI : public RTTIType <ColorGradingSettings, IReflectable, ColorGradingSettingsRTTI>
  100. {
  101. private:
  102. BS_BEGIN_RTTI_MEMBERS
  103. BS_RTTI_MEMBER_PLAIN(saturation, 0)
  104. BS_RTTI_MEMBER_PLAIN(contrast, 1)
  105. BS_RTTI_MEMBER_PLAIN(gain, 2)
  106. BS_RTTI_MEMBER_PLAIN(offset, 3)
  107. BS_END_RTTI_MEMBERS
  108. public:
  109. ColorGradingSettingsRTTI()
  110. :mInitMembers(this)
  111. { }
  112. const String& getRTTIName() override
  113. {
  114. static String name = "ColorGradingSettings";
  115. return name;
  116. }
  117. UINT32 getRTTIId() override
  118. {
  119. return TID_ColorGradingSettings;
  120. }
  121. SPtr<IReflectable> newRTTIObject() override
  122. {
  123. return bs_shared_ptr_new<ColorGradingSettings>();
  124. }
  125. };
  126. class BS_CORE_EXPORT DepthOfFieldSettingsRTTI : public RTTIType <DepthOfFieldSettings, IReflectable, DepthOfFieldSettingsRTTI>
  127. {
  128. private:
  129. BS_BEGIN_RTTI_MEMBERS
  130. BS_RTTI_MEMBER_PLAIN(enabled, 0)
  131. BS_RTTI_MEMBER_PLAIN(focalDistance, 1)
  132. BS_RTTI_MEMBER_PLAIN(focalRange, 2)
  133. BS_RTTI_MEMBER_PLAIN(nearTransitionRange, 3)
  134. BS_RTTI_MEMBER_PLAIN(farTransitionRange, 4)
  135. BS_RTTI_MEMBER_PLAIN(nearBlurAmount, 5)
  136. BS_RTTI_MEMBER_PLAIN(farBlurAmount, 6)
  137. BS_END_RTTI_MEMBERS
  138. public:
  139. DepthOfFieldSettingsRTTI()
  140. :mInitMembers(this)
  141. { }
  142. const String& getRTTIName() override
  143. {
  144. static String name = "DepthOfFieldSettings";
  145. return name;
  146. }
  147. UINT32 getRTTIId() override
  148. {
  149. return TID_DepthOfFieldSettings;
  150. }
  151. SPtr<IReflectable> newRTTIObject() override
  152. {
  153. return bs_shared_ptr_new<DepthOfFieldSettings>();
  154. }
  155. };
  156. class BS_CORE_EXPORT AmbientOcclusionSettingsRTTI : public RTTIType <AmbientOcclusionSettings, IReflectable, AmbientOcclusionSettingsRTTI>
  157. {
  158. private:
  159. BS_BEGIN_RTTI_MEMBERS
  160. BS_RTTI_MEMBER_PLAIN(enabled, 0)
  161. BS_RTTI_MEMBER_PLAIN(radius, 1)
  162. BS_RTTI_MEMBER_PLAIN(bias, 2)
  163. BS_RTTI_MEMBER_PLAIN(fadeRange, 3)
  164. BS_RTTI_MEMBER_PLAIN(fadeDistance, 4)
  165. BS_RTTI_MEMBER_PLAIN(intensity, 5)
  166. BS_RTTI_MEMBER_PLAIN(power, 6)
  167. BS_RTTI_MEMBER_PLAIN(quality, 7)
  168. BS_END_RTTI_MEMBERS
  169. public:
  170. AmbientOcclusionSettingsRTTI()
  171. :mInitMembers(this)
  172. { }
  173. const String& getRTTIName() override
  174. {
  175. static String name = "AmbientOcclusionSettings";
  176. return name;
  177. }
  178. UINT32 getRTTIId() override
  179. {
  180. return TID_AmbientOcclusionSettings;
  181. }
  182. SPtr<IReflectable> newRTTIObject() override
  183. {
  184. return bs_shared_ptr_new<AmbientOcclusionSettings>();
  185. }
  186. };
  187. class BS_CORE_EXPORT ScreenSpaceReflectionsSettingsRTTI : public RTTIType <ScreenSpaceReflectionsSettings, IReflectable, ScreenSpaceReflectionsSettingsRTTI>
  188. {
  189. private:
  190. BS_BEGIN_RTTI_MEMBERS
  191. BS_RTTI_MEMBER_PLAIN(enabled, 0)
  192. BS_RTTI_MEMBER_PLAIN(intensity, 1)
  193. BS_RTTI_MEMBER_PLAIN(maxRoughness, 2)
  194. BS_RTTI_MEMBER_PLAIN(quality, 3)
  195. BS_END_RTTI_MEMBERS
  196. public:
  197. ScreenSpaceReflectionsSettingsRTTI()
  198. :mInitMembers(this)
  199. { }
  200. const String& getRTTIName() override
  201. {
  202. static String name = "ScreenSpaceReflectionsSettings";
  203. return name;
  204. }
  205. UINT32 getRTTIId() override
  206. {
  207. return TID_ScreenSpaceReflectionsSettings;
  208. }
  209. SPtr<IReflectable> newRTTIObject() override
  210. {
  211. return bs_shared_ptr_new<ScreenSpaceReflectionsSettings>();
  212. }
  213. };
  214. class BS_CORE_EXPORT PostProcessSettingsRTTI : public RTTIType <PostProcessSettings, IReflectable, PostProcessSettingsRTTI>
  215. {
  216. private:
  217. BS_BEGIN_RTTI_MEMBERS
  218. BS_RTTI_MEMBER_PLAIN(enableAutoExposure, 0)
  219. BS_RTTI_MEMBER_REFL(autoExposure, 1)
  220. BS_RTTI_MEMBER_PLAIN(enableTonemapping, 2)
  221. BS_RTTI_MEMBER_REFL(tonemapping, 3)
  222. BS_RTTI_MEMBER_REFL(whiteBalance, 4)
  223. BS_RTTI_MEMBER_REFL(colorGrading, 5)
  224. BS_RTTI_MEMBER_PLAIN(exposureScale, 6)
  225. BS_RTTI_MEMBER_PLAIN(gamma, 7)
  226. BS_RTTI_MEMBER_REFL(depthOfField, 8)
  227. BS_RTTI_MEMBER_PLAIN(enableFXAA, 9)
  228. BS_RTTI_MEMBER_REFL(ambientOcclusion, 10)
  229. BS_RTTI_MEMBER_REFL(screenSpaceReflections, 11)
  230. BS_END_RTTI_MEMBERS
  231. public:
  232. PostProcessSettingsRTTI()
  233. :mInitMembers(this)
  234. { }
  235. const String& getRTTIName() override
  236. {
  237. static String name = "PostProcessSettings";
  238. return name;
  239. }
  240. UINT32 getRTTIId() override
  241. {
  242. return TID_PostProcessSettings;
  243. }
  244. SPtr<IReflectable> newRTTIObject() override
  245. {
  246. return bs_shared_ptr_new<PostProcessSettings>();
  247. }
  248. };
  249. /** @} */
  250. /** @endcond */
  251. }