PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
graphics_stage_lifecycle_internal.h
1#pragma once
2
3#include "pixelbullet/graphics/render_stage.h"
4#include "pixelbullet/graphics/render_target.h"
5
6#include <glm/glm.hpp>
7#include <volk.h>
8
9#include <optional>
10#include <string>
11#include <string_view>
12#include <vector>
13
14namespace pixelbullet::graphics_stage_internal
15{
17{
18 glm::uvec2 desired_extent{ 0u, 0u };
19 uint32_t desired_image_count = 0u;
20 bool clear_images = false;
21 bool rebuild_images = false;
22};
23
24glm::uvec2 ResolveRenderTargetExtent(const RenderTargetSpecification& specification, const glm::uvec2& base_extent) noexcept;
25RenderTargetLifecyclePlan BuildRenderTargetLifecyclePlan(const RenderTargetSpecification& specification, const glm::uvec2& current_extent,
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;
29
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);
33
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);
41} // namespace pixelbullet::graphics_stage_internal
Definition render_stage.h:149
Definition render_stage.h:106
Definition render_target.h:18
Definition graphics_stage_lifecycle_internal.h:17