#pragma once #include #include #include class SkyboxPass { public: void Initialize(VkRenderPass renderPass, vk::Device device); void Cleanup(vk::Device device); void Record(Camera *camera, VkCommandBuffer buffer, vk::Device device); VkShaderModule vertexShaderModule, fragmentShaderModule; struct UniformMatrixData { glm::mat4 proj, view; }; struct UniformSceneData { glm::vec3 sunPosition; }; struct { std::vector vertices = { {-1.0f, 1.0f, -1.0f}, {-1.0f, -1.0f, -1.0f}, {1.0f, -1.0f, -1.0f}, {1.0f, -1.0f, -1.0f}, {1.0f, 1.0f, -1.0f}, {-1.0f, 1.0f, -1.0f}, {-1.0f, -1.0f, 1.0f}, {-1.0f, -1.0f, -1.0f}, {-1.0f, 1.0f, -1.0f}, {-1.0f, 1.0f, -1.0f}, {-1.0f, 1.0f, 1.0f}, {-1.0f, -1.0f, 1.0f}, {1.0f, -1.0f, -1.0f}, {1.0f, -1.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, 1.0f, -1.0f}, {1.0f, -1.0f, -1.0f}, {-1.0f, -1.0f, 1.0f}, {-1.0f, 1.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, -1.0f, 1.0f}, {-1.0f, -1.0f, 1.0f}, {-1.0f, 1.0f, -1.0f}, {1.0f, 1.0f, -1.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {-1.0f, 1.0f, 1.0f}, {-1.0f, 1.0f, -1.0f}, {-1.0f, -1.0f, -1.0f}, {-1.0f, -1.0f, 1.0f}, {1.0f, -1.0f, -1.0f}, {1.0f, -1.0f, -1.0f}, {-1.0f, -1.0f, 1.0f}, {1.0f, -1.0f, 1.0f} }; VkBuffer vertexBuffer; VkDeviceMemory vertexBufferMemory; } cube; VkDescriptorSetLayout descriptorSetLayout; VkPipeline pipeline; VkPipelineLayout pipelineLayout; VkBuffer uniformMatrixBuffer, uniformSceneBuffer; VkDeviceMemory uniformMatrixBufferMemory, uniformSceneBufferMemory; VkDescriptorPool descriptorPool; VkDescriptorSet descriptorSet; };