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