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 "RenderAPI/BsViewport.h"
8
9namespace bs
10{
11 /** @cond RTTI */
12 /** @addtogroup RTTI-Impl-Core
13 * @{
14 */
15
16 class BS_CORE_EXPORT ViewportRTTI : public RTTIType<Viewport, IReflectable, ViewportRTTI>
17 {
18 private:
19 BS_BEGIN_RTTI_MEMBERS
20 BS_RTTI_MEMBER_PLAIN(mNormArea, 0)
21 BS_RTTI_MEMBER_PLAIN(mClearColorValue, 1)
22 BS_RTTI_MEMBER_PLAIN(mClearDepthValue, 2)
23 BS_RTTI_MEMBER_PLAIN(mClearStencilValue, 3)
24 BS_RTTI_MEMBER_PLAIN(mClearFlags, 4)
25 BS_END_RTTI_MEMBERS
26 public:
27 void onDeserializationEnded(IReflectable* obj, SerializationContext* context) override
28 {
29 Viewport* viewport = static_cast<Viewport*>(obj);
30 viewport->initialize();
31 }
32
33 const String& getRTTIName() override
34 {
35 static String name = "Viewport";
36 return name;
37 }
38
39 UINT32 getRTTIId() override
40 {
41 return TID_Viewport;
42 }
43
44 SPtr<IReflectable> newRTTIObject() override
45 {
46 return Viewport::createEmpty();
47 }
48 };
49
50 /** @} */
51 /** @endcond */
52}
53