EDIT: folder structure refactoring (src/core)
This commit is contained in:
57
src/core/device/swapchain.h
Normal file
57
src/core/device/swapchain.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#pragma once
|
||||
|
||||
#include <core/types.h>
|
||||
|
||||
class ResourceManager;
|
||||
class DeviceManager;
|
||||
|
||||
class SwapchainManager
|
||||
{
|
||||
public:
|
||||
void init(DeviceManager *deviceManager, ResourceManager* resourceManager)
|
||||
{this->_deviceManager = deviceManager;this->_resourceManager = resourceManager;};
|
||||
|
||||
void cleanup();
|
||||
|
||||
void init_swapchain();
|
||||
void create_swapchain(uint32_t width, uint32_t height);
|
||||
void destroy_swapchain() const;
|
||||
void resize_swapchain(struct SDL_Window *window);
|
||||
|
||||
VkSwapchainKHR swapchain() const { return _swapchain; }
|
||||
VkFormat swapchainImageFormat() const { return _swapchainImageFormat; }
|
||||
VkExtent2D swapchainExtent() const { return _swapchainExtent; }
|
||||
const std::vector<VkImage> &swapchainImages() const { return _swapchainImages; }
|
||||
const std::vector<VkImageView> &swapchainImageViews() const { return _swapchainImageViews; }
|
||||
|
||||
AllocatedImage drawImage() const { return _drawImage; }
|
||||
AllocatedImage depthImage() const { return _depthImage; }
|
||||
AllocatedImage gBufferPosition() const { return _gBufferPosition; }
|
||||
AllocatedImage gBufferNormal() const { return _gBufferNormal; }
|
||||
AllocatedImage gBufferAlbedo() const { return _gBufferAlbedo; }
|
||||
AllocatedImage idBuffer() const { return _idBuffer; }
|
||||
VkExtent2D windowExtent() const { return _windowExtent; }
|
||||
|
||||
bool resize_requested{false};
|
||||
|
||||
private:
|
||||
DeviceManager *_deviceManager = nullptr;
|
||||
ResourceManager* _resourceManager = nullptr;
|
||||
|
||||
VkSwapchainKHR _swapchain = nullptr;
|
||||
VkFormat _swapchainImageFormat = {};
|
||||
VkExtent2D _swapchainExtent = {};
|
||||
VkExtent2D _windowExtent{1920, 1080};
|
||||
|
||||
std::vector<VkImage> _swapchainImages;
|
||||
std::vector<VkImageView> _swapchainImageViews;
|
||||
|
||||
AllocatedImage _drawImage = {};
|
||||
AllocatedImage _depthImage = {};
|
||||
AllocatedImage _gBufferPosition = {};
|
||||
AllocatedImage _gBufferNormal = {};
|
||||
AllocatedImage _gBufferAlbedo = {};
|
||||
AllocatedImage _idBuffer = {};
|
||||
|
||||
DeletionQueue _deletionQueue;
|
||||
};
|
||||
Reference in New Issue
Block a user