MetaCore/MetaPlayer/PlayerApplication.h

33 lines
998 B
C++

#pragma once
#include "MetaPlayer/RuntimeUiPreviewSession.h"
#include "MetaCore/engine/render/SimplePbrShaderLibrary.h"
#include "MetaCore/engine/runtime_ui/RmlUiBridge.h"
#include "MetaCore/engine/scene/Scene.h"
#include "MetaCore/engine/scene/SceneSerializer.h"
#include "MetaCore/platform/panda/PandaPlatformContext.h"
#include "MetaCore/platform/panda/PandaRenderBackend.h"
#include <filesystem>
namespace metacore::player {
class PlayerApplication {
public:
bool initialize(const std::filesystem::path& scene_file);
int run();
void shutdown();
private:
std::filesystem::path scene_file_;
metacore::platform::panda::PandaPlatformContext platform_;
metacore::platform::panda::PandaRenderBackend render_backend_;
metacore::engine::runtime_ui::RmlUiBridge runtime_ui_;
metacore::engine::scene::SceneSerializer scene_serializer_;
metacore::engine::scene::Scene scene_{};
RuntimeUiPreviewSession preview_session_{};
};
} // namespace metacore::player