diff options
author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-09-19 07:08:42 -0400 |
---|---|---|
committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-09-19 07:08:42 -0400 |
commit | 8754e31367f6fcfcda4bf50d373797a048dedf53 (patch) | |
tree | 432ff2e30fcfacf115d571ca27c4f7315c7ee873 /engine | |
parent | LICENSE (diff) | |
download | minecraftvulkan-8754e31367f6fcfcda4bf50d373797a048dedf53.tar.gz minecraftvulkan-8754e31367f6fcfcda4bf50d373797a048dedf53.tar.bz2 minecraftvulkan-8754e31367f6fcfcda4bf50d373797a048dedf53.zip |
start refactoring, doesnt compile
Diffstat (limited to 'engine')
-rw-r--r-- | engine/xe_engine.cpp | 17 | ||||
-rw-r--r-- | engine/xe_engine.hpp | 40 | ||||
-rw-r--r-- | engine/xe_renderer.cpp | 2 |
3 files changed, 59 insertions, 0 deletions
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> xeDescriptorPool{}; + std::unique_ptr<xe::XeDescriptorSetLayout> 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 <memory> #include <vulkan/vulkan_core.h> @@ -16,6 +17,7 @@ namespace xe { XeRenderer::XeRenderer(XeWindow& window, XeDevice& device) : xeWindow{window}, xeDevice{device} { recreateSwapChain(); createCommandBuffers(); + loadDescriptorPool(); } XeRenderer::~XeRenderer() { freeCommandBuffers(); } |