| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #pragma once
- #include "BsCorePrerequisites.h"
- #include "BsRTTIType.h"
- #include "BsViewport.h"
- namespace BansheeEngine
- {
- class BS_CORE_EXPORT ViewportRTTI : public RTTIType<Viewport, IReflectable, ViewportRTTI>
- {
- private:
- Rect2& getNormArea(Viewport* obj) { return obj->mNormArea; }
- void setNormArea(Viewport* obj, Rect2& val) { obj->mNormArea = val; }
- bool& getRequireColorClear(Viewport* obj) { return obj->mRequiresColorClear; }
- void setRequireColorClear(Viewport* obj, bool& val) { obj->mRequiresColorClear = val; }
- bool& getRequireDepthClear(Viewport* obj) { return obj->mRequiresDepthClear; }
- void setRequireDepthClear(Viewport* obj, bool& val) { obj->mRequiresDepthClear = val; }
- bool& getRequireStencilClear(Viewport* obj) { return obj->mRequiresStencilClear; }
- void setRequireStencilClear(Viewport* obj, bool& val) { obj->mRequiresStencilClear = val; }
- Color& getClearColor(Viewport* obj) { return obj->mClearColor; }
- void setClearColor(Viewport* obj, Color& val) { obj->mClearColor = val; }
- float& getDepthClearValue(Viewport* obj) { return obj->mDepthClearValue; }
- void setDepthClearValue(Viewport* obj, float& val) { obj->mDepthClearValue = val; }
- UINT16& getStencilClearValue(Viewport* obj) { return obj->mStencilClearValue; }
- void setStencilClearValue(Viewport* obj, UINT16& val) { obj->mStencilClearValue = val; }
- // TODO - Not saving a render target reference. Need to re-think the design on how to reference those. Likely as a handle to resource.
- public:
- ViewportRTTI()
- {
- addPlainField("mNormArea", 0, &ViewportRTTI::getNormArea, &ViewportRTTI::setNormArea);
- addPlainField("mRequiresColorClear", 1, &ViewportRTTI::getRequireColorClear, &ViewportRTTI::setRequireColorClear);
- addPlainField("mRequiresDepthClear", 2, &ViewportRTTI::getRequireDepthClear, &ViewportRTTI::setRequireDepthClear);
- addPlainField("mRequiresStencilClear", 3, &ViewportRTTI::getRequireStencilClear, &ViewportRTTI::setRequireStencilClear);
- addPlainField("mClearColor", 4, &ViewportRTTI::getClearColor, &ViewportRTTI::setClearColor);
- addPlainField("mDepthClearValue", 5, &ViewportRTTI::getDepthClearValue, &ViewportRTTI::setDepthClearValue);
- addPlainField("mStencilClearValue", 6, &ViewportRTTI::getStencilClearValue, &ViewportRTTI::setStencilClearValue);
- }
- virtual void onDeserializationEnded(IReflectable* obj)
- {
- Viewport* viewport = static_cast<Viewport*>(obj);
- viewport->initialize();
- }
- virtual const String& getRTTIName()
- {
- static String name = "Viewport";
- return name;
- }
- virtual UINT32 getRTTIId()
- {
- return TID_Viewport;
- }
- virtual std::shared_ptr<IReflectable> newRTTIObject()
- {
- return Viewport::createEmpty();
- }
- };
- }
|