The Square is rotating, oh damn vulkan
This commit is contained in:
+25
-2
@@ -8,6 +8,10 @@
|
||||
#define GLFW_INCLUDE_VULKAN
|
||||
#include <GLFW/glfw3.h>
|
||||
|
||||
#define GLM_FORCE_RADIANS
|
||||
#include <glm/glm.hpp>
|
||||
#include <glm/gtc/matrix_transform.hpp>
|
||||
|
||||
#include <iostream>
|
||||
#include <stdexcept>
|
||||
#include <cstdlib>
|
||||
@@ -19,8 +23,8 @@
|
||||
#include <limits>
|
||||
#include <algorithm>
|
||||
#include <fstream>
|
||||
#include <glm/glm.hpp>
|
||||
#include <array>
|
||||
#include <chrono>
|
||||
|
||||
namespace vapp{
|
||||
// Change here for other presentMode
|
||||
@@ -60,13 +64,19 @@ namespace vapp{
|
||||
{{-0.5f, -0.5f}, {0.0f, 1.0f, 0.0f}},
|
||||
{{0.5f, -0.5f}, {0.0f, 0.0f, 1.0f}},
|
||||
{{0.5f, 0.5f}, {0.0f, 1.0f, 0.0f}},
|
||||
{{-0.5f, 0.5f}, {0.0f, 0.0f, 1.0f}}
|
||||
{{-0.5f, 0.5f}, {1.0f, 0.0f, 0.0f}}
|
||||
};
|
||||
|
||||
// uint16_t also possible -> change in vkCmdBindIndexBuffer also
|
||||
const std::vector<uint32_t> indices = { 0, 1, 2, 2, 3, 0 };
|
||||
// END Remove
|
||||
|
||||
struct UniformBufferObject{
|
||||
glm::mat4 model;
|
||||
glm::mat4 view;
|
||||
glm::mat4 proj;
|
||||
};
|
||||
|
||||
struct QueueFamilyIndices{
|
||||
std::optional<uint32_t> graphicsFamily;
|
||||
std::optional<uint32_t> presentFamily;
|
||||
@@ -111,6 +121,7 @@ namespace vapp{
|
||||
std::vector<VkImageView> swapChainImageViews;
|
||||
|
||||
VkRenderPass renderPass;
|
||||
VkDescriptorSetLayout descriptorSetLayout;
|
||||
VkPipelineLayout pipelineLayout;
|
||||
|
||||
VkPipeline graphicsPipeline;
|
||||
@@ -130,6 +141,13 @@ namespace vapp{
|
||||
VkDeviceMemory vertexBufferMemory;
|
||||
VkBuffer indexBuffer;
|
||||
VkDeviceMemory indexBufferMemory;
|
||||
|
||||
std::vector<VkBuffer> uniformBuffers;
|
||||
std::vector<VkDeviceMemory> uniformBuffersMemory;
|
||||
std::vector<void*> uniformBuffersMapped;
|
||||
|
||||
VkDescriptorPool descriptorPool;
|
||||
std::vector<VkDescriptorSet> descriptorSets;
|
||||
#pragma endregion
|
||||
|
||||
bool checkValidationLayerSupport();
|
||||
@@ -149,6 +167,7 @@ namespace vapp{
|
||||
VkExtent2D chooseSwapExtent(const VkSurfaceCapabilitiesKHR& capabilities);
|
||||
void createSwapChain();
|
||||
void createImageViews();
|
||||
void createDescriptorSetLayout();
|
||||
void createGraphicsPipeline();
|
||||
VkShaderModule createShaderModule(const std::vector<char>& code);
|
||||
void createRenderPass();
|
||||
@@ -159,9 +178,13 @@ namespace vapp{
|
||||
void copyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size);
|
||||
void createVertexBuffer();
|
||||
void createIndexBuffer();
|
||||
void createUniformBuffers();
|
||||
void createDescriptorPool();
|
||||
void createDescriptorSets();
|
||||
void createCommandBuffers();
|
||||
void recordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex);
|
||||
void createSyncObjects();
|
||||
void updateUniformBuffer(uint32_t currentFrame);
|
||||
void drawFrame();
|
||||
void cleanupSwapChain();
|
||||
void recreateSwapChain();
|
||||
|
||||
Reference in New Issue
Block a user