diff options
author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-09-18 21:20:51 -0400 |
---|---|---|
committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-09-18 21:20:51 -0400 |
commit | 8045b8ba04aae39a4cf9733e72413f648b6ebe2b (patch) | |
tree | f90a9bd50a2316d5077df99c9e8584afc76ed656 /src/simple_render_system.hpp | |
download | minecraftvulkan-8045b8ba04aae39a4cf9733e72413f648b6ebe2b.tar.gz minecraftvulkan-8045b8ba04aae39a4cf9733e72413f648b6ebe2b.tar.bz2 minecraftvulkan-8045b8ba04aae39a4cf9733e72413f648b6ebe2b.zip |
stanford dragon rendering
Diffstat (limited to 'src/simple_render_system.hpp')
-rw-r--r-- | src/simple_render_system.hpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/simple_render_system.hpp b/src/simple_render_system.hpp new file mode 100644 index 0000000..b0d4a39 --- /dev/null +++ b/src/simple_render_system.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include "xe_camera.hpp" +#include "xe_pipeline.hpp" +#include "xe_device.hpp" +#include "xe_game_object.hpp" +#include "xe_frame_info.hpp" + +#include <memory> +#include <vector> +#include <vulkan/vulkan_core.h> + +namespace xe { +class SimpleRenderSystem { + public: + + SimpleRenderSystem(XeDevice& device, VkRenderPass renderPass, VkDescriptorSetLayout globalSetLayout); + ~SimpleRenderSystem(); + + SimpleRenderSystem(const SimpleRenderSystem &) = delete; + SimpleRenderSystem operator=(const SimpleRenderSystem &) = delete; + + void renderGameObjects( + XeFrameInfo &frameInfo, + std::vector<XeGameObject> &gameObjects + ); + + private: + void createPipelineLayout(VkDescriptorSetLayout globalSetLayout); + void createPipeline(VkRenderPass renderPass); + + XeDevice& xeDevice; + + std::unique_ptr<XePipeline> xePipeline; + VkPipelineLayout pipelineLayout; +}; +}
\ No newline at end of file |