86 lines
No EOL
2.3 KiB
C++
86 lines
No EOL
2.3 KiB
C++
#pragma once
|
|
|
|
#include <vk.hpp>
|
|
#include <glm/glm.hpp>
|
|
#include <component.hpp>
|
|
|
|
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<glm::vec3> 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;
|
|
}; |