Add offscreen render targets and rename AssetRegistry to ResourceRegistry #8

Merged
burkkyy merged 26 commits from dev into main 2026-09-25 20:39:26 -07:00

26 Commits

Author SHA1 Message Date
burkkyy 6e12d8a710 changes 2026-09-25 20:39:04 -07:00
burkkyy 341249bb96 scene_view concept 2026-09-25 20:23:12 -07:00
burkkyy 0d145f615d changes 2026-09-25 20:22:29 -07:00
burkkyy 4ebae57cf8 Moving stuff around 2026-09-25 20:21:25 -07:00
burkkyy 09706507cf adding compiled shaders to project 2026-09-25 20:09:51 -07:00
burkkyy 1ccb591959 build system update 2026-09-25 19:58:11 -07:00
burkkyy 86b36f27c6 moving dir name 2026-09-25 19:32:33 -07:00
burkkyy 15932879e8 CLAUDE updates 2026-09-25 19:21:41 -07:00
burkkyy ebc0543535 better dev command 2026-09-25 19:04:01 -07:00
burkkyy 75fc14f4ac handy invalid handle macro 2026-09-24 23:00:45 -07:00
burkkyy b5d28ce3eb math.hpp added 2026-09-24 23:00:02 -07:00
burkkyy ae8db07d6f Simplified handles 2026-09-23 23:24:23 -07:00
burkkyy 97267f1a26 stuff 2026-09-24 05:31:38 +00:00
burkkyy 6a50cdb4e8 Formatting 2026-09-23 00:42:47 -07:00
burkkyy a98eac3dc7 laptop changes 2026-09-23 04:20:43 +00:00
burkkyy 39253771f1 starting scene renderer stuff 2026-09-21 11:34:29 -07:00
burkkyy ce54f2ffcc PM stuff 2026-09-21 01:33:39 -07:00
burkkyy 72e4ae79e2 gitea issue helper 2026-09-21 01:30:21 -07:00
burkkyy 4d037e1250 moving stuff around 2026-09-21 01:15:58 -07:00
burkkyy 650b4d813f moving files to better dirs 2026-09-21 01:10:13 -07:00
burkkyy 8fbabda095 Render Graph concept started! 2026-09-21 01:03:16 -07:00
burkkyy 2569eff130 changes 2026-09-21 00:30:11 -07:00
burkkyy f3c0f61eb1 Big changes 2026-09-21 00:26:50 -07:00
burkkyy 16f7bb7da3 Upgrading pool pattern 2026-09-20 20:52:09 -07:00
burkkyy fe40d4a629 Simply 2026-09-20 18:58:51 -07:00
burkkyy 5e1caabde6 Add offscreen render targets and rename AssetRegistry to ResourceRegistry
Add a RenderTarget resource so the scene can render offscreen instead of
straight to the swapchain. The editor uses it to show the scene inside the
Viewport panel.

- Rename AssetRegistry to ResourceRegistry (AssetTraits -> ResourceTraits,
  assets() -> resources()) and move the pools from engine/src/assets to
  engine/src/resources. It now covers non-asset GPU resources as well.
- Replace loadMesh() with create<T>(...), and add create<RenderTarget>(),
  requestResize(), getExtent() and isAlive().
- Add RenderTarget and RenderTargetPool with RenderTargetHandle.
  Resizes are deferred and applied at the start of the next frame, when the
  GPU is idle.
- Add Application::setSceneTarget(). With no target set, the scene still
  renders to the swapchain. With a target set, the scene renders offscreen
  and the swapchain receives only the UI. Frame extent and camera projection
  follow the target's size.
- Add sophia::UI (Application::ui()) with image() and getTextureId() to draw
  a render target in an ImGui window, sizing the target to the available
  space. ImGuiRenderer now registers the target textures for this.
- ViewportPanel takes the UI and a target, and draws the scene image in place
  of the flat background fill.
- Update the testbed, the boids example, and the glossary for the rename.
2026-09-20 16:21:22 -07:00