Changeset 055750a in opengl-game for vulkan-game.hpp
- Timestamp:
- Dec 4, 2019, 9:33:43 PM (5 years ago)
- Branches:
- feature/imgui-sdl, master, points-test
- Children:
- 785333b, cf727ca
- Parents:
- e1308e8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vulkan-game.hpp
re1308e8 r055750a 35 35 }; 36 36 37 struct UBO_MvpMat { 38 alignas(16) mat4 model; 37 struct UBO_VP_mats { 39 38 alignas(16) mat4 view; 40 39 alignas(16) mat4 proj; 40 }; 41 42 struct SBO_SceneObject { 43 alignas(16) mat4 model; 41 44 }; 42 45 … … 57 60 vec3 cam_pos; 58 61 59 UBO_MvpMat modelMvpMats; 60 UBO_MvpMat shipMvpMats; 62 UBO_VP_mats object_VP_mats; 63 SBO_SceneObject so_Object; 64 65 UBO_VP_mats ship_VP_mats; 66 SBO_SceneObject so_Ship; 61 67 62 68 GameGui* gui; … … 96 102 VkSampler textureSampler; 97 103 98 // These are currently to store the MVP matrix 99 // I should figure out if it makes sense to use them for other uniforms in the future 100 // If not, I should rename them to better indicate their purpose. 101 vector<VkBuffer> uniformBuffers; 102 vector<VkDeviceMemory> uniformBuffersMemory; 103 104 vector<VkDescriptorBufferInfo> uniformBufferInfoList; 104 // TODO: I should probably rename the uniformBuffer* and storageBuffer* 105 // variables to better reflect the data they hold 106 107 vector<VkBuffer> uniformBuffers_scenePipeline; 108 vector<VkDeviceMemory> uniformBuffersMemory_scenePipeline; 109 110 vector<VkDescriptorBufferInfo> uniformBufferInfoList_scenePipeline; 111 112 vector<VkBuffer> storageBuffers_scenePipeline; 113 vector<VkDeviceMemory> storageBuffersMemory_scenePipeline; 114 115 vector<VkDescriptorBufferInfo> storageBufferInfoList_scenePipeline; 105 116 106 117 vector<VkBuffer> uniformBuffers_shipPipeline; … … 108 119 109 120 vector<VkDescriptorBufferInfo> uniformBufferInfoList_shipPipeline; 121 122 vector<VkBuffer> storageBuffers_shipPipeline; 123 vector<VkDeviceMemory> storageBuffersMemory_shipPipeline; 124 125 vector<VkDescriptorBufferInfo> storageBufferInfoList_shipPipeline; 110 126 111 127 VulkanImage floorTextureImage; … … 162 178 vector<VertexType> addVertexNormals(vector<VertexType> vertices); 163 179 164 template<class UniformType> 165 void createUniformBuffers(vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory, 166 vector<VkDescriptorBufferInfo>& bufferInfoList); 180 void createBufferSet(VkDeviceSize bufferSize, VkBufferUsageFlags flags, 181 vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory, vector<VkDescriptorBufferInfo>& bufferInfoList); 167 182 168 183 void recreateSwapChain(); … … 176 191 void* pUserData); 177 192 }; 178 179 template<class UniformType>180 void VulkanGame::createUniformBuffers(vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory,181 vector<VkDescriptorBufferInfo>& bufferInfoList) {182 buffers.resize(swapChainImages.size());183 buffersMemory.resize(swapChainImages.size());184 bufferInfoList.resize(swapChainImages.size());185 186 for (size_t i = 0; i < swapChainImages.size(); i++) {187 VulkanUtils::createBuffer(device, physicalDevice, sizeof(UniformType), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,188 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,189 buffers[i], buffersMemory[i]);190 191 bufferInfoList[i].buffer = buffers[i];192 bufferInfoList[i].offset = 0;193 bufferInfoList[i].range = sizeof(UniformType);194 }195 }196 193 197 194 template<class VertexType>
Note:
See TracChangeset
for help on using the changeset viewer.