DYTSrouce/src/app/Application.cpp

64 lines
1.8 KiB
C++
Raw Normal View History

2025-01-04 04:12:51 +00:00
#include "app/Application.h"
#include "common/RecourceHelper.h"
#include "workspace/WorkSpaceManager.h"
#include "entities/EntitiesManager.h"
2025-11-01 13:30:06 +00:00
#include "entities/EntityFactory.h"
2025-01-04 04:12:51 +00:00
#include "viewer/OsgViewer.h"
#include "scene/MeshManager.h"
2025-11-01 13:30:06 +00:00
#include "workspace/PresetModelConfigParser.h"
2025-01-04 04:12:51 +00:00
#include "network/NetDriver.h"
#include "python/PythonModule.h"
Application::Application(int& argc, char** argv, int /*= ApplicationFlags*/)
: QApplication(argc, argv) {
Init();
}
Application::~Application() {
}
QString Application::GetWorkSpacePath() {
const QString path = QString("%1/workspace").arg(applicationDirPath());
return path;
}
2025-07-06 15:33:27 +00:00
QString Application::GetBinPath() {
return applicationDirPath();
}
2025-01-04 04:12:51 +00:00
void Application::Init() {
Singleton<MeshManager>::Create(this);
Singleton<RecourceHelper>::Create(this);
2025-11-01 13:30:06 +00:00
Singleton<EntityFactory>::Create(this);
2025-01-04 04:12:51 +00:00
Singleton<EntitiesManager>::Create(this);
Singleton<WorkSpaceManager>::Create(this);
Singleton<NetDriver>::Create(this);
2025-11-01 13:30:06 +00:00
Singleton<PresetModelConfigParser>::Create(this);
2025-01-04 04:12:51 +00:00
//Singleton<PythonModule>::Create(this);
2025-07-06 15:33:27 +00:00
connect(&timer_, &QTimer::timeout, this, &Application::OnTimeout);
timer_.start(1000 / 60); // 60 FPS
}
void Application::OnTimeout() {
WorkSpaceManager::Get().OnFrame();
2025-01-04 04:12:51 +00:00
}
void Application::Uninit() {
2025-11-12 15:22:27 +00:00
// Stop the app-level frame timer to prevent callbacks during teardown
if (timer_.isActive()) {
timer_.stop();
}
2025-01-04 04:12:51 +00:00
//Singleton<PythonModule>::Destory();
Singleton<NetDriver>::Destory();
2025-11-01 13:30:06 +00:00
Singleton<PresetModelConfigParser>::Destory();
2025-01-04 04:12:51 +00:00
Singleton<WorkSpaceManager>::Destory();
Singleton<EntitiesManager>::Destory();
2025-11-01 13:30:06 +00:00
Singleton<EntityFactory>::Destory();
2025-01-04 04:12:51 +00:00
Singleton<RecourceHelper>::Destory();
Singleton<MeshManager>::Destory();
}