From 8754e31367f6fcfcda4bf50d373797a048dedf53 Mon Sep 17 00:00:00 2001 From: tylermurphy534 Date: Mon, 19 Sep 2022 07:08:42 -0400 Subject: start refactoring, doesnt compile --- engine/xe_engine.cpp | 17 +++++++++++++++++ engine/xe_engine.hpp | 40 ++++++++++++++++++++++++++++++++++++++++ engine/xe_renderer.cpp | 2 ++ 3 files changed, 59 insertions(+) create mode 100644 engine/xe_engine.cpp create mode 100644 engine/xe_engine.hpp (limited to 'engine') diff --git a/engine/xe_engine.cpp b/engine/xe_engine.cpp new file mode 100644 index 0000000..8d2655a --- /dev/null +++ b/engine/xe_engine.cpp @@ -0,0 +1,17 @@ +#include "xe_engine.hpp" +#include "xe_descriptors.hpp" + +namespace xe { + +XeEngine::XeEngine(int width, int height, std::string name) + : xeWindow{width, height, name}, xeDevice{xeWindow}, xeRenderer{xeWindow, xeDevice} {}; + +void XeEngine::loadDescriptorPool() { + xeDescriptorPool = XeDescriptorPool::Builder(xeDevice) + .setMaxSets(XeSwapChain::MAX_FRAMES_IN_FLIGHT) + .addPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, XeSwapChain::MAX_FRAMES_IN_FLIGHT) + .addPoolSize(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, XeSwapChain::MAX_FRAMES_IN_FLIGHT) + .build(); +} + +} \ No newline at end of file diff --git a/engine/xe_engine.hpp b/engine/xe_engine.hpp new file mode 100644 index 0000000..93d3f8b --- /dev/null +++ b/engine/xe_engine.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include "xe_window.hpp" +#include "xe_device.hpp" +#include "xe_renderer.hpp" + +namespace xe { + +class XeEngine { + + public: + + XeEngine(int width, int height, std::string name); + ~XeEngine() {}; + + XeEngine(const XeEngine&) = delete; + XeEngine operator=(const XeEngine&) = delete; + + const XeWindow& getWindow() const { + return xeWindow; + }; + + const XeRenderer& getRenderer() const { + return xeRenderer; + }; + + + private: + + void loadDescriptorPool(); + + XeWindow xeWindow; + XeDevice xeDevice; + XeRenderer xeRenderer; + + std::unique_ptr xeDescriptorPool{}; + std::unique_ptr xeDescriptorSetLayout; +}; + +} \ No newline at end of file diff --git a/engine/xe_renderer.cpp b/engine/xe_renderer.cpp index 2ed4f51..0c14cec 100644 --- a/engine/xe_renderer.cpp +++ b/engine/xe_renderer.cpp @@ -3,6 +3,7 @@ #include "xe_device.hpp" #include "xe_game_object.hpp" #include "xe_swap_chain.hpp" +#include "xe_descriptors.hpp" #include "xe_window.hpp" #include #include @@ -16,6 +17,7 @@ namespace xe { XeRenderer::XeRenderer(XeWindow& window, XeDevice& device) : xeWindow{window}, xeDevice{device} { recreateSwapChain(); createCommandBuffers(); + loadDescriptorPool(); } XeRenderer::~XeRenderer() { freeCommandBuffers(); } -- cgit v1.2.3-freya