4#include <vulkan/vulkan.hpp>
5#include <vulkan/vulkan_enums.hpp>
6#include <vulkan/vulkan_structs.hpp>
22 static auto create(
const std::shared_ptr<Context>& ctx)
36 const std::shared_ptr<RenderTarget>& target) {
41 const std::function<
void(::vk::CommandBuffer&)>& cmd_buf)
45 explicit Renderer(
const std::shared_ptr<Context>& ctx);
53 const std::vector<::vk::SurfaceFormatKHR>& formats)
54 -> ::vk::SurfaceFormatKHR;
56 const std::vector<::vk::PresentModeKHR>& formats) -> ::vk::PresentModeKHR;
58 const ::vk::SurfaceCapabilitiesKHR& surface_capabilities)
61 std::unordered_map<std::string, std::shared_ptr<Pipeline>>
pipelines_;
62 std::shared_ptr<Context>
ctx_;
67 std::unordered_map<std::string, std::shared_ptr<RenderTarget>>
std::unordered_map< std::string, std::shared_ptr< Pipeline > > pipelines_
Definition renderer.hpp:61
::vk::Semaphore image_available_
Definition renderer.hpp:73
static auto create(const std::shared_ptr< Context > &ctx) -> expected< std::shared_ptr< Renderer > >
Definition renderer.cpp:130
auto submit_command_buffer(const std::function< void(::vk::CommandBuffer &)> &cmd_buf) -> expected< void >
Definition renderer.cpp:92
auto render_targets() const
Get the swapchain's targets.
Definition renderer.hpp:34
Graph render_graph_
Definition renderer.hpp:80
static constexpr std::string_view kSwapchainRendertargetName
Definition renderer.hpp:18
::vk::CommandPool command_pool_
Definition renderer.hpp:77
void draw()
Definition renderer.cpp:17
auto recreate_swapchain() -> expected< void >
Definition renderer.cpp:174
auto swapchain_images_views() const
Definition renderer.hpp:30
std::vector<::vk::Semaphore > render_finished_semaphores_
Definition renderer.hpp:74
::vk::Fence in_flight_fence_
Definition renderer.hpp:75
auto choose_swapchain_format(const std::vector<::vk::SurfaceFormatKHR > &formats) -> ::vk::SurfaceFormatKHR
Definition renderer.cpp:310
std::shared_ptr< Context > ctx_
Definition renderer.hpp:62
auto choose_swapchain_presentation_mode(const std::vector<::vk::PresentModeKHR > &formats) -> ::vk::PresentModeKHR
Definition renderer.cpp:325
std::unordered_map< std::string, std::shared_ptr< RenderTarget > > render_targets_
Definition renderer.hpp:68
Renderer(const std::shared_ptr< Context > &ctx)
Definition renderer.cpp:114
std::vector<::vk::Image > swapchain_images_
Definition renderer.hpp:64
::vk::SwapchainKHR swapchain_
Definition renderer.hpp:63
std::vector<::vk::ImageView > swapchain_image_views_
Definition renderer.hpp:65
auto begin_frame() -> expected< uint32_t >
Definition renderer.cpp:24
auto add_target(const std::string &name, const std::shared_ptr< RenderTarget > &target)
Definition renderer.hpp:35
::vk::Format swapchain_image_format_
Definition renderer.hpp:70
auto set_graph(const Graph &graph)
Definition renderer.hpp:27
auto choose_swapchain_extent(const ::vk::SurfaceCapabilitiesKHR &surface_capabilities) -> ::vk::Extent2D
Definition renderer.cpp:336
::vk::Extent2D swapchain_extent_
Definition renderer.hpp:71
auto get_graph() const
Definition renderer.hpp:28
::vk::CommandBuffer one_time_cmd_buffer_
Definition renderer.hpp:78
Mesh m
Definition renderer.hpp:82
void end_frame(uint32_t image_index)
Definition renderer.cpp:55
Definition editor_scene.hpp:5
std::expected< T, Err > expected
Definition result.hpp:43
Definition context.hpp:14