cool viewport

This commit is contained in:
2026-09-26 01:50:09 -07:00
parent b24945ec9d
commit 8a82df59ca
3 changed files with 219 additions and 31 deletions
+5 -10
View File
@@ -21,16 +21,15 @@ class Editor : public sophia::Application {
sophia::SceneHandle sceneHandle = scenes().create();
sophia::Scene& scene = scenes().get(sceneHandle);
sophia::Entity camera = createDemoScene(scene);
createDemoScene(scene);
panels().emplace<SceneHierarchyPanel>(scene, selected);
panels().emplace<InspectorPanel>(selected, textures);
panels().emplace<AssetBrowserPanel>();
sophia::RenderTargetHandle sceneTarget =
resources().create<sophia::RenderTarget>();
views().create(
{.scene = sceneHandle, .target = sceneTarget, .camera = camera});
panels().emplace<ViewportPanel>(ui(), sceneTarget);
views().create({.scene = sceneHandle, .target = sceneTarget});
panels().emplace<ViewportPanel>(ui(), sceneTarget, scene, selected);
panels().setDefaultLayout(
{.left = {"Scene Hierarchy"},
@@ -42,10 +41,8 @@ class Editor : public sophia::Application {
void onUpdate(const sophia::FrameInfo& frameInfo) override {}
private:
sophia::Entity createDemoScene(sophia::Scene& scene) {
sophia::Entity camera = scene.createEntity("Main Camera");
camera.addComponent<sophia::CameraComponent>();
scene.setActiveCamera(camera);
void createDemoScene(sophia::Scene& scene) {
scene.createCamera("Main Camera");
sophia::Entity checker = scene.createEntity("Checker");
checker.getComponent<sophia::TransformComponent>().position = {-1.5f, 0.f,
@@ -66,8 +63,6 @@ class Editor : public sophia::Application {
sophia::SpriteComponent{.color = {0.25f, 0.45f, 0.95f, 0.6f},
.size = {2.f, 2.f},
.sortOrder = 1});
return camera;
}
sophia::TextureHandle createCheckerTexture() {