#include #include #include #include #include #include class Viewport : public sophia::Panel { public: Viewport(sophia::UI& ui, sophia::RenderTargetHandle target) : Panel{{.name = "Viewport"}}, ui{ui}, target{target} {} void onUpdate(const sophia::FrameInfo&) override { ImGui::Text("Test ViewPort"); ui.image(target); } private: sophia::UI& ui; sophia::RenderTargetHandle target; }; class Testbed : public sophia::Application { public: Testbed() : Application{{.width = 750, .height = 1000, .name = "Testbed"}} {} void onCreate() override { view = sceneViews().create( {.scene = scenes().create(), .target = resources().create(), .clearColor = {0.1f, 0.1f, 0.15f, 1.f}}); panels().emplace(ui(), sceneViews().get(view).target); } private: sophia::SceneViewHandle view; }; SOPHIA_MAIN(Testbed)