#pragma once #include #include #include #include struct RenderDevice; struct Vertex { float position[4]; float color[4]; }; struct MiscData { struct CameraData { DirectX::XMMATRIX modelMatrix; DirectX::XMMATRIX viewMatrix; DirectX::XMMATRIX projectionMatrix; }; uint64_t previousCounter; VkDescriptorSetLayout descriptorSetLayout; VkPipelineLayout pipelineLayout; VkPipeline meshPipeline; VkBuffer vertexBuffer; VmaAllocation vertexBufferAllocation; size_t vertexBufferSize; std::array vertices; uint64_t _padding; // TODO: Optimize out? DirectX::XMVECTOR cameraPosition; DirectX::XMVECTOR cameraTarget; DirectX::XMVECTOR cameraUp; CameraData cameraData; VkBuffer cameraUniformBuffer; VmaAllocation cameraUniformBufferAllocation; size_t cameraUniformBufferSize; uint8_t* cameraUniformBufferPtr; VkDescriptorPool descriptorPool; VkDescriptorSet descriptorSet; VkImageMemoryBarrier2 acquireToRenderBarrier; VkDependencyInfo acquireToRenderDependency; VkImageMemoryBarrier2 renderToPresentBarrier; VkDependencyInfo renderToPresentDependency; void init( RenderDevice const& renderDevice ); void destroy( RenderDevice const& renderDevice ); };