// Copyright (c) 2008-2023 the Urho3D project // License: MIT #include "AppState_Base.h" #include #include #include #include #include #include using namespace Urho3D; void AppState_Base::LoadSceneXml(const String& path) { assert(!scene_); scene_ = MakeShared(context_); SharedPtr file = GetSubsystem()->GetFile(path); scene_->LoadXML(*file); #ifndef NDEBUG Node* cameraNode = scene_->GetChild("Camera"); assert(cameraNode); Camera* camera = cameraNode->GetComponent(); assert(camera); #endif } void AppState_Base::UpdateCurrentFpsElement() { String fpsStr = fpsCounter_.GetCurrentFps() == -1 ? "?" : String(fpsCounter_.GetCurrentFps()); Text* fpsElement = GetSubsystem()->GetRoot()->GetChildStaticCast(CURRENT_FPS_STR); fpsElement->SetText("FPS: " + fpsStr); } void AppState_Base::SetupViewport() { Node* cameraNode = scene_->GetChild("Camera"); Camera* camera = cameraNode->GetComponent(); SharedPtr viewport(new Viewport(context_, scene_, camera)); Renderer* renderer = GetSubsystem(); renderer->SetViewport(0, viewport); } void AppState_Base::DestroyViewport() { GetSubsystem()->SetViewport(0, nullptr); }