68 lines
2.1 KiB
C++
68 lines
2.1 KiB
C++
#include "MetaCorePlatform/MetaCoreWindow.h"
|
|
#include "MetaCoreRender/MetaCoreEditorViewportRenderer.h"
|
|
#include "MetaCoreRender/MetaCoreRenderDevice.h"
|
|
#include "MetaCoreRender/MetaCoreRenderTypes.h"
|
|
#include "MetaCoreScene/MetaCoreScene.h"
|
|
|
|
#include <filesystem>
|
|
#include <iostream>
|
|
|
|
namespace {
|
|
|
|
MetaCore::MetaCoreSceneView MetaCoreBuildPlayerSceneView() {
|
|
MetaCore::MetaCoreSceneView sceneView;
|
|
sceneView.CameraPosition = {0.0F, 2.5F, 6.5F};
|
|
sceneView.CameraTarget = {0.0F, 0.7F, 0.0F};
|
|
sceneView.CameraUp = {0.0F, 1.0F, 0.0F};
|
|
sceneView.VerticalFieldOfViewDegrees = 60.0F;
|
|
return sceneView;
|
|
}
|
|
|
|
} // namespace
|
|
|
|
int main(int argc, char* argv[]) {
|
|
if (argc > 0) {
|
|
std::filesystem::current_path(std::filesystem::path(argv[0]).parent_path());
|
|
}
|
|
|
|
MetaCore::MetaCoreWindow window;
|
|
if (!window.Initialize(1280, 720, "MetaCore Player")) {
|
|
std::cerr << "MetaCorePlayer: window initialize failed\n";
|
|
return 1;
|
|
}
|
|
|
|
MetaCore::MetaCoreRenderDevice renderDevice;
|
|
if (!renderDevice.Initialize(window)) {
|
|
std::cerr << "MetaCorePlayer: render device initialize failed\n";
|
|
return 1;
|
|
}
|
|
|
|
MetaCore::MetaCoreEditorViewportRenderer viewportRenderer;
|
|
if (!viewportRenderer.Initialize(renderDevice)) {
|
|
std::cerr << "MetaCorePlayer: viewport renderer initialize failed\n";
|
|
return 1;
|
|
}
|
|
|
|
MetaCore::MetaCoreScene scene = MetaCore::MetaCoreCreateDefaultScene();
|
|
|
|
while (!window.ShouldClose()) {
|
|
window.BeginFrame();
|
|
const auto [windowWidth, windowHeight] = window.GetWindowSize();
|
|
viewportRenderer.SetViewportRect(MetaCore::MetaCoreViewportRect{
|
|
0.0F,
|
|
0.0F,
|
|
static_cast<float>(windowWidth),
|
|
static_cast<float>(windowHeight)
|
|
});
|
|
viewportRenderer.RenderSceneToViewport(scene, MetaCoreBuildPlayerSceneView());
|
|
renderDevice.RenderFrame();
|
|
renderDevice.PresentFrame();
|
|
window.EndFrame();
|
|
}
|
|
|
|
viewportRenderer.Shutdown();
|
|
renderDevice.Shutdown();
|
|
window.Shutdown();
|
|
return 0;
|
|
}
|