3#include "pixelbullet/graphics/render_stage.h"
4#include "pixelbullet/graphics/render_target.h"
14namespace pixelbullet::graphics_stage_internal
18 glm::uvec2 desired_extent{ 0u, 0u };
19 uint32_t desired_image_count = 0u;
20 bool clear_images =
false;
21 bool rebuild_images =
false;
24glm::uvec2 ResolveRenderTargetExtent(
const RenderTargetSpecification& specification,
const glm::uvec2& base_extent)
noexcept;
26 uint32_t current_image_count, uint32_t requested_image_count,
27 const glm::uvec2& base_extent)
noexcept;
28uint32_t NormalizeRenderTargetActiveImageIndex(uint32_t requested_active_image_index, uint32_t image_count)
noexcept;
30bool IsDeclaredRenderTargetName(std::string_view name,
const std::vector<RenderTargetSpecification>& declared_targets)
noexcept;
31std::vector<std::string> CollectUndeclaredRenderTargetNames(
const std::vector<std::string>& existing_names,
32 const std::vector<RenderTargetSpecification>& declared_targets);
34std::optional<std::string_view> FindFirstRenderTargetAttachmentName(
const RenderStage& render_stage)
noexcept;
35glm::uvec2 ResolveRenderStageViewportExtent(
const Viewport& viewport,
bool has_render_target_attachment,
36 const std::optional<glm::uvec2>& render_target_extent,
37 const glm::uvec2& window_extent)
noexcept;
38bool IsRenderStageOutOfDate(
const glm::uvec2& last_extent,
const glm::ivec2& last_offset,
const glm::uvec2& next_extent,
39 const glm::ivec2& next_offset)
noexcept;
40const VkFramebuffer& SelectActiveFramebuffer(
const std::vector<VkFramebuffer>& framebuffers, uint32_t active_swapchain_image);
Definition render_stage.h:149
Definition render_stage.h:106
Definition render_target.h:18
Definition graphics_stage_lifecycle_internal.h:17