Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
SwapchainBuilder.h
1// Copyright 2022 ShenMian
2// License(Apache-2.0)
3
4#pragma once
5
6#include "../VKDevice.h"
7#include "../VKSwapchain.h"
8
10{
11public:
13
14 VKSwapchain build();
15
21 SwapchainBuilder& set_desired_format(VkSurfaceFormatKHR format) noexcept;
22
28 SwapchainBuilder& set_desired_present_mode(VkPresentModeKHR presentMode) noexcept;
29
35 SwapchainBuilder& set_desired_extent(VkExtent2D extent) noexcept;
36
37private:
38 uint32_t get_image_count() const;
39 VkSurfaceFormatKHR get_surface_format() const;
40 VkPresentModeKHR get_present_mode() const;
41 VkExtent2D get_extent() const;
42
43 VkSwapchainCreateInfoKHR swapchain_info_ = {};
44
45 VKDevice& device_;
46
47 struct
48 {
49 VkSurfaceFormatKHR desired_format = {VK_FORMAT_B8G8R8A8_SRGB, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR};
50 VkPresentModeKHR desired_present_mode = VK_PRESENT_MODE_MAILBOX_KHR;
51 VkExtent2D desired_extent = {};
52 } info_;
53};
Definition: SwapchainBuilder.h:10
SwapchainBuilder & set_desired_format(VkSurfaceFormatKHR format) noexcept
设置期望的格式.
Definition: SwapchainBuilder.cpp:56
SwapchainBuilder & set_desired_present_mode(VkPresentModeKHR presentMode) noexcept
设置期望的呈现模式.
Definition: SwapchainBuilder.cpp:62
SwapchainBuilder & set_desired_extent(VkExtent2D extent) noexcept
设置期望的面积, 即帧缓冲区大小.
Definition: SwapchainBuilder.cpp:68
Vulkan 逻辑设备.
Definition: VKDevice.h:14
Definition: VKSwapchain.h:11