Graphics/RenderSystem: Add support for external swapchains

This commit is contained in:
SirLynix
2023-10-13 20:17:31 +02:00
parent 6323cb5372
commit 2a3da7384d
3 changed files with 38 additions and 5 deletions

View File

@@ -41,8 +41,13 @@ namespace Nz
RenderSystem(RenderSystem&&) = delete;
~RenderSystem();
inline void AttachExternalSwapchain(WindowSwapchain& swapchain);
WindowSwapchain& CreateSwapchain(Window& window, const SwapchainParameters& parameters = SwapchainParameters{});
void DestroySwapchain(WindowSwapchain& swapchain);
inline void DetachExternalSwapchain(WindowSwapchain& swapchain);
inline FramePipeline& GetFramePipeline();
inline const FramePipeline& GetFramePipeline() const;
@@ -136,6 +141,7 @@ namespace Nz
std::unordered_map<entt::entity, GraphicsEntity*> m_graphicsEntities;
std::unordered_map<entt::entity, LightEntity*> m_lightEntities;
std::unordered_map<Skeleton*, SharedSkeleton> m_sharedSkeletonInstances;
std::vector<std::reference_wrapper<WindowSwapchain>> m_externalSwapchains;
std::vector<std::unique_ptr<WindowSwapchain>> m_windowSwapchains;
ElementRendererRegistry m_elementRegistry;
MemoryPool<CameraEntity> m_cameraEntityPool;