diff --git a/kraken/KRCamera.cpp b/kraken/KRCamera.cpp index eeefdc7..8b130be 100755 --- a/kraken/KRCamera.cpp +++ b/kraken/KRCamera.cpp @@ -43,6 +43,17 @@ void KRCamera::InitNodeInfo(KrNodeInfo* nodeInfo) nodeInfo->camera.skybox_texture = -1; } +KrResult KRCamera::update(const KrNodeInfo* nodeInfo) +{ + KrResult res = KRNode::update(nodeInfo); + if (res != KR_SUCCESS) { + return res; + } + + // TODO - Implement surface changes + // TODO - Implement skybox changes +} + KRCamera::KRCamera(KRScene& scene, std::string name) : KRNode(scene, name) { m_last_frame_start = 0; @@ -102,7 +113,6 @@ void KRCamera::setSkyBox(const std::string& skyBox) { m_pSkyBoxTexture = NULL; m_skyBox = skyBox; - } const std::string KRCamera::getSkyBox() const diff --git a/kraken/KRCamera.h b/kraken/KRCamera.h index e5913ba..202924d 100755 --- a/kraken/KRCamera.h +++ b/kraken/KRCamera.h @@ -55,6 +55,8 @@ public: KRCamera(KRScene& scene, std::string name); virtual ~KRCamera(); + KrResult update(const KrNodeInfo* nodeInfo) override; + void renderFrame(VkCommandBuffer& commandBuffer, KRSurface& compositeSurface); KRRenderSettings settings; diff --git a/kraken/KRNode.cpp b/kraken/KRNode.cpp index 9785452..538c87d 100755 --- a/kraken/KRNode.cpp +++ b/kraken/KRNode.cpp @@ -63,7 +63,7 @@ void KRNode::InitNodeInfo(KrNodeInfo* nodeInfo) nodeInfo->scale_pivot = Vector3::Zero(); } -void KRNode::update(const KrNodeInfo* nodeInfo) +KrResult KRNode::update(const KrNodeInfo* nodeInfo) { // TODO - Implement name changes @@ -93,6 +93,8 @@ void KRNode::update(const KrNodeInfo* nodeInfo) invalidateBindPoseMatrix(); invalidateModelMatrix(); } + + return KR_SUCCESS; } KRNode::KRNode(KRScene& scene, std::string name) : KRContextObject(scene.getContext()) @@ -297,7 +299,12 @@ KrResult KRNode::createNode(const KrCreateNodeInfo* pCreateNodeInfo, KRScene* sc default: return KR_ERROR_NOT_IMPLEMENTED; } - (*node)->update(&pCreateNodeInfo->node); + KrResult res = (*node)->update(&pCreateNodeInfo->node); + if (res != KR_SUCCESS) { + delete *node; + *node = nullptr; + return res; + } return KR_SUCCESS; } diff --git a/kraken/KRNode.h b/kraken/KRNode.h index 4cb0b36..819b176 100755 --- a/kraken/KRNode.h +++ b/kraken/KRNode.h @@ -108,7 +108,7 @@ public: }; static void InitNodeInfo(KrNodeInfo* nodeInfo); - virtual void update(const KrNodeInfo* nodeInfo); + virtual KrResult update(const KrNodeInfo* nodeInfo); KRNode(KRScene& scene, std::string name); virtual ~KRNode();