Перенёс управление VkSwapchainKHR и ImageViews в отдельный класс
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include "VkObjects/Instance.hpp"
|
||||
#include "VkObjects/PhysicalDevice.hpp"
|
||||
#include "VkObjects/Surface.hpp"
|
||||
#include "VkObjects/Swapchain.hpp"
|
||||
|
||||
class Camera;
|
||||
class GPU_GarbageCollector;
|
||||
@@ -23,12 +24,6 @@ class GPU_GarbageCollector;
|
||||
|
||||
class UwURenderEngine : public RenderEngineBase
|
||||
{
|
||||
struct SwapchainSupportDetails
|
||||
{
|
||||
std::vector<VkSurfaceFormatKHR> formats;
|
||||
std::vector<VkPresentModeKHR> present_modes;
|
||||
VkSurfaceCapabilitiesKHR capabilities;
|
||||
};
|
||||
struct UniformBufferObject {
|
||||
glm::mat4 model;
|
||||
glm::mat4 view;
|
||||
@@ -54,7 +49,9 @@ class UwURenderEngine : public RenderEngineBase
|
||||
4, 5, 1, 1, 0, 4
|
||||
};
|
||||
|
||||
static const std::vector<const char*> deviceExtensions;
|
||||
const std::vector<const char*> UwURenderEngine::deviceExtensions = {
|
||||
VK_KHR_SWAPCHAIN_EXTENSION_NAME
|
||||
};
|
||||
|
||||
// Counting frame from the beginning
|
||||
unsigned int current_frame_ = 0;
|
||||
@@ -69,11 +66,7 @@ class UwURenderEngine : public RenderEngineBase
|
||||
VkObjects::Surface surface_;
|
||||
VkObjects::PhysicalDevice physical_device_;
|
||||
VkObjects::Device device_;
|
||||
VkSwapchainKHR swapchain_ = VK_NULL_HANDLE;
|
||||
std::vector<VkImage> swapchain_images_;
|
||||
VkFormat swapchain_image_format_;
|
||||
VkExtent2D swapchain_extent_;
|
||||
std::vector<VkImageView> swapchain_image_views_;
|
||||
VkObjects::Swapchain swapchain_;
|
||||
VkRenderPass render_pass_ = VK_NULL_HANDLE;
|
||||
VkDescriptorSetLayout ubo_layout_binding_ = VK_NULL_HANDLE;
|
||||
VkDescriptorPool descriptor_pool_ = VK_NULL_HANDLE;
|
||||
@@ -95,14 +88,9 @@ class UwURenderEngine : public RenderEngineBase
|
||||
std::vector<VkSemaphore> image_available_semaphores_, render_finished_semaphores_;
|
||||
std::vector<VkFence> in_flight_fences_;
|
||||
|
||||
SwapchainSupportDetails query_swapchain_details() const;
|
||||
|
||||
static VkSurfaceFormatKHR choose_surface_format(const std::vector<VkSurfaceFormatKHR>& surface_formats);
|
||||
static VkPresentModeKHR choose_present_mode(const std::vector<VkPresentModeKHR>& present_modes, VkPresentModeKHR desired_present_mode);
|
||||
VkShaderModule create_shader_module(const std::string& code) const;
|
||||
|
||||
void create_swapchain();
|
||||
void create_image_views();
|
||||
void create_render_pass();
|
||||
void create_description_set_layout();
|
||||
void create_uniform_buffers();
|
||||
@@ -129,5 +117,5 @@ public:
|
||||
|
||||
std::shared_ptr<ModelManager> GetModelManager() const { return model_manager_; }
|
||||
|
||||
void SetActiveCamera(std::weak_ptr<Camera> camera);
|
||||
void SetActiveCamera(const std::weak_ptr<Camera>& camera);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user