Commit Graph

538 Commits

Author SHA1 Message Date
Lynix 1e81b38c0f Graphics: Replace RenderFrame by RenderResources
This changes makes the whole rendering independent from the RenderFrame acquired from the Swapchain.
This may allow to do offscreen rendering (= without swapchain), or multi-window rendering in the future
2023-11-21 23:33:18 +01:00
SirLynix 938ba09d45 Graphics: Rework RenderTargets
- RenderTarget have been moved to the Graphics module and are now lightweight objects between the target of rendering (swapchain or texture)
- RenderTexture no longer require a blit between the framegraph texture and the target texture (the target texture is now directly rendered onto using a new feature of the framegraph)
- ForwardFramePipeline viewers are now properly ordered by render order
2023-11-20 23:00:06 +01:00
SirLynix d06f9bda89 Fix compilation again 2023-11-20 12:36:34 +01:00
SirLynix aaf3d97954 Graphics: Add RenderTexture class 2023-11-20 12:36:34 +01:00
SirLynix 97d5640967 Renderer: Blit texture to window instead of using a full renderpass
This may improve performance and allow for render targets to customize how they blit the final texture (allowing for render-to-texture)
2023-11-17 16:59:31 +01:00
SirLynix f2e77fb8a5 Rename Nz::Functor to Nz::AbstractFunctor 2023-11-17 13:19:21 +01:00
SirLynix c191cb227b Fix compilation 2023-10-14 14:46:49 +02:00
SirLynix 50c90fd725 Renderer/DebugDrawer: Add DrawBoxCorners 2023-10-08 23:38:03 +02:00
SirLynix 5f8b7b361e Renderer/CommandBuffer: Add support for InsertDebugLabel 2023-09-06 13:24:31 +02:00
SirLynix 1b9c19fd78 Minor fixes 2023-08-31 18:01:59 +02:00
SirLynix 627400f4f2 Minor fixes 2023-08-25 17:14:33 +02:00
SirLynix 3c3f940ff3 Renderer/DebugDrawer: Add DrawPoint 2023-08-25 17:14:06 +02:00
SirLynix bd53245f42 Core/StringExt: Don't pass string_view by ref
https://quuxplusone.github.io/blog/2021/11/09/pass-string-view-by-value/
2023-08-24 08:23:14 +02:00
SirLynix e8620894f7 Renderer: Expose present mode and allow to query/set it 2023-08-13 18:16:03 +02:00
SirLynix 816d9d1174 Allow to setup/override module configuration from commandline 2023-07-30 12:44:43 +02:00
SirLynix dee47c6f15 Renderer: Fix BuildMipmaps 2023-07-21 12:12:10 +02:00
SirLynix 4db5b59ec9 Renderer: Refactor transient resources (allow access at any time) 2023-07-21 12:12:10 +02:00
SirLynix e34ba8c05d Add ComputeParticlesTest
Renderer: Add a way to execute commands on the device
2023-07-21 12:12:10 +02:00
SirLynix f2bc1bff7a Update for latest nazarautils update 2023-07-17 19:05:15 +02:00
SirLynix caf8446707 Math: Remove Algorithm file and move string functions to StringExt 2023-06-06 08:59:58 +02:00
SirLynix 2886a2e0c0 Rename EnumMap to EnumArray after nazarautils update 2023-05-30 13:49:19 +02:00
SirLynix dfe6b2ddcf Make use of the new EnumMap class 2023-05-30 12:32:37 +02:00
SirLynix 1d32af53c5 Renderer: Add mipmaps generation support 2023-05-14 18:55:41 +02:00
SirLynix 44aec8d5a5 Allow to load image and textures cubemap/arrays from file using the AppFilesystemComponent
Renames LoadCubemap and LoadArray to Load with additional parameters and allows AppFilesystemComponent to pass additional parameters to them
2023-04-04 08:24:52 +02:00
SirLynix 6fd90d63ef Fix check-files 2023-03-21 13:21:49 +01:00
SirLynix 9b4d297c04 Update includes for new NazaraUtils version 2023-03-19 13:01:56 +01:00
SirLynix 285b3e132c Renderer: Disable validation by default in release 2023-03-17 19:26:45 +01:00
SirLynix 488f3ca6ef Minor fixes 2023-03-14 18:06:14 +01:00
SirLynix 99c8027fd0 Remove .inl inclusion of their .hpp files
It has no real purpose and is breaking Clang parsing
2023-03-10 13:33:10 +01:00
SirLynix 75b6ba8dab Renderer: Fix frontFace and primitiveMode not being part of RenderStates key 2023-03-10 13:24:48 +01:00
SirLynix 4a91f3d470 Renderer: Make WindowSwapchain a RenderTarget
To make it easier to handle window re-creation
2023-01-29 10:38:35 +01:00
SirLynix d27ca55943 Core/AppFilesystemComponent: Add support for default resource parameters 2023-01-28 11:27:49 +01:00
SirLynix f98cbcd00a Copyright year update 2023-01-22 17:41:18 +01:00
SirLynix d3c05c9ade Update globalheaders and fix includes/header guards 2023-01-22 12:37:58 +01:00
SirLynix 18851c9185 Replace RenderWindow with swapchains 2023-01-22 12:37:58 +01:00
SirLynix a8b6d9cb42 Renderer/RenderFrame: Use FunctionRef instead of std::function to avoid allocations 2023-01-01 19:48:51 +01:00
Jérôme Leclercq dd421a6385
Replace float/UInt64 durations by a more precise Time class (#388)
Improve Clock class with atomic RestartIfOver method and allows to choose required precision
2022-12-29 21:31:46 +01:00
SirLynix 9a553e5e9d Core: Make Color constexpr 2022-12-29 12:13:00 +01:00
SirLynix fe8715f1fb Renderer: Working compute implementation 2022-12-25 19:19:16 +01:00
SirLynix 9578ba3ef5 Add initial support for compute pipelines 2022-12-25 19:19:16 +01:00
SirLynix e4064997d8 Renderer: Split OpenGL and OpenGL ES in two RenderAPI enums 2022-12-25 16:11:28 +01:00
SirLynix 56acbb2694 Renderer: Improve texture view support (and support emulation for OGL) 2022-12-08 18:17:13 +01:00
SirLynix 08ea4c87a7 Improve texture view support 2022-12-08 18:17:13 +01:00
SirLynix 42f8cdb151 Add initial support for texture views 2022-12-08 18:17:13 +01:00
SirLynix 902dee6121 Renderer/TextureInfo: Separate layerCount from size 2022-12-08 18:17:13 +01:00
SirLynix a5d4b8f28d Renderer/DebugDrawer: Add support for Frustum 2022-12-08 18:17:13 +01:00
SirLynix 6ef4c14772 Renderer: Change binding members order 2022-12-08 18:17:13 +01:00
SirLynix e990a320cc WIP 2022-12-08 18:17:13 +01:00
SirLynix 75bbc5df09 Minor fixes 2022-12-06 09:07:18 +01:00
SirLynix 98cf8b3d33 Fix compilation 2022-12-03 11:48:58 +01:00