From eda5b0aa22f46872099346147fbb6ececdafb3fa Mon Sep 17 00:00:00 2001 From: floralrainfall Date: Tue, 18 Jul 2023 01:36:13 -0400 Subject: [PATCH] fix swapBuffers error on close & camera props --- Projects/Client/Common/Source/OgreWidget.cpp | 3 ++- Projects/Engine/Header/App/V8/DataModel/Camera.hpp | 1 + Projects/Engine/Source/App/V8/DataModel/Camera.cpp | 12 ++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Projects/Client/Common/Source/OgreWidget.cpp b/Projects/Client/Common/Source/OgreWidget.cpp index 8bbec03..92257c7 100644 --- a/Projects/Client/Common/Source/OgreWidget.cpp +++ b/Projects/Client/Common/Source/OgreWidget.cpp @@ -124,7 +124,8 @@ namespace RNR ogreCamera->getParentSceneNode()->setOrientation(Ogre::Quaternion(cam->getCFrame().getRotation())); } - ogreRoot->renderOneFrame(this->delta); + if(isVisible()) + ogreRoot->renderOneFrame(this->delta); } Ogre::NameValuePairList OgreWidget::getRenderOptions() diff --git a/Projects/Engine/Header/App/V8/DataModel/Camera.hpp b/Projects/Engine/Header/App/V8/DataModel/Camera.hpp index a4f3277..2f0d8b5 100644 --- a/Projects/Engine/Header/App/V8/DataModel/Camera.hpp +++ b/Projects/Engine/Header/App/V8/DataModel/Camera.hpp @@ -13,6 +13,7 @@ namespace RNR private: CoordinateFrame m_cframe; virtual void deserializeProperty(char* prop_name, pugi::xml_node prop); + virtual void addProperties(std::vector& properties); public: Camera(); ~Camera(); diff --git a/Projects/Engine/Source/App/V8/DataModel/Camera.cpp b/Projects/Engine/Source/App/V8/DataModel/Camera.cpp index 9e95c03..2e21bb4 100644 --- a/Projects/Engine/Source/App/V8/DataModel/Camera.cpp +++ b/Projects/Engine/Source/App/V8/DataModel/Camera.cpp @@ -20,4 +20,16 @@ namespace RNR setCFrame(XML::getCFrame(node)); } } + + void Camera::addProperties(std::vector& properties) + { + ReflectionProperty _properties[] = { + { this, std::string("CFrame"), std::string(""), + ACCESS_NONE, OPERATION_READWRITE, PROPERTY_CFRAME, + REFLECTION_GETTER(Camera* instance = (Camera*)object; return &instance->m_cframe; ), + REFLECTION_SETTER(Camera* instance = (Camera*)object; instance->setCFrame(*(CoordinateFrame*)value); ) }, + }; + + properties.insert(properties.end(), _properties, _properties+(sizeof(_properties)/sizeof(ReflectionProperty))); + } } \ No newline at end of file