Changeset 1abebc1 in opengl-game


Ignore:
Timestamp:
May 19, 2021, 4:49:43 PM (3 years ago)
Author:
Dmitry Portnoy <dportnoy@…>
Branches:
feature/imgui-sdl
Children:
c163d81
Parents:
a3cefaa
Message:

Remove the storageBuffers parameter from addObject() since it is no longer used, rename StorageBufferSet, resizeStorageBufferSet(), and updateStorageuffer() to BufferSet, resizeBufferSet(), and updateBufferSet() respectively, and change updateObject() to just take a SceneObject reference.

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • graphics-pipeline_vulkan.hpp

    ra3cefaa r1abebc1  
    237237      }
    238238
     239      // TODO: Instead, assert that (bufferData->size() == swapChainImages.size()
    239240      if (bufferData->size() != swapChainImages.size()) {
    240241         cout << "ALERT ALERT ALERT: SIZE MISMATCH!!!!!!!" << endl;
  • sdl-game.cpp

    ra3cefaa r1abebc1  
    133133            {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}, {1.0f, 0.0f, 0.0f}, 0},
    134134            {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 0.0f, 0.0f}, 0}
    135          })), {
    136             0, 1, 2, 3, 4, 5
     135         })),
     136      {
     137         0, 1, 2, 3, 4, 5
    137138      }, {
    138139         mat4(1.0f)
    139       }, storageBuffers_modelPipeline);
     140      });
    140141
    141142   objects_modelPipeline.numObjects++;
     
    158159      }, {
    159160         mat4(1.0f)
    160       }, storageBuffers_modelPipeline);
     161      });
    161162
    162163   objects_modelPipeline.numObjects++;
     
    378379                              {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}, {1.0f, 0.0f, 0.0f}, 0},
    379380                              {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 0.0f, 0.0f}, 0}
    380                            })), {
    381                               0, 1, 2, 3, 4, 5
     381                           })),
     382                        {
     383                           0, 1, 2, 3, 4, 5
    382384                        }, {
    383385                           mat4(1.0f)
    384                         }, storageBuffers_modelPipeline);
     386                        });
    385387
    386388                  objects_modelPipeline.numObjects++;
     
    462464   // TODO: Probably move the resizing to the VulkanBuffer class
    463465   if (objects_modelPipeline.numObjects > objects_modelPipeline.capacity) {
    464       resizeStorageBufferSet(storageBuffers_modelPipeline, objects_modelPipeline, modelPipeline, resourceCommandPool,
    465                              graphicsQueue);
     466      // TODO: Also resize the dynamic ubo
     467      resizeBufferSet(storageBuffers_modelPipeline, objects_modelPipeline, modelPipeline, resourceCommandPool,
     468                      graphicsQueue);
    466469   }
    467470
    468471   for (size_t i = 0; i < modelObjects.size(); i++) {
    469472      if (modelObjects[i].modified) {
    470          updateObject(modelObjects, modelPipeline, i);
    471          updateStorageBuffer(storageBuffers_modelPipeline, i, modelObjects[i].ssbo);
     473         updateObject(modelObjects[i]);
     474         updateBufferSet(storageBuffers_modelPipeline, i, modelObjects[i].ssbo);
     475
    472476      }
    473477   }
  • sdl-game.hpp

    ra3cefaa r1abebc1  
    7979// has a VkBuffer, VkDeviceMemory, and VkDescriptorBufferInfo
    8080// TODO: Maybe change the structure here since VkDescriptorBufferInfo already stores a reference to the VkBuffer
    81 struct StorageBufferSet {
     81struct BufferSet {
    8282   vector<VkBuffer> buffers;
    8383   vector<VkDeviceMemory> memory;
     
    220220      GraphicsPipeline_Vulkan<ModelVertex> modelPipeline;
    221221
    222       StorageBufferSet storageBuffers_modelPipeline;
     222      BufferSet storageBuffers_modelPipeline;
    223223      VulkanBuffer<SSBO_ModelObject> objects_modelPipeline;
    224224
     
    299299      // TODO: Remove the need for templating, which is only there so a GraphicsPupeline_Vulkan can be passed in
    300300      template<class VertexType, class SSBOType>
    301       void resizeStorageBufferSet(StorageBufferSet& set, VulkanBuffer<SSBOType>& buffer,
    302                                   GraphicsPipeline_Vulkan<VertexType>& pipeline,
    303                                   VkCommandPool commandPool, VkQueue graphicsQueue);
     301      void resizeBufferSet(BufferSet& set, VulkanBuffer<SSBOType>& buffer,
     302                           GraphicsPipeline_Vulkan<VertexType>& pipeline, VkCommandPool commandPool,
     303                           VkQueue graphicsQueue);
    304304
    305305      template<class SSBOType>
    306       void updateStorageBuffer(StorageBufferSet& storageBufferSet, size_t objIndex, SSBOType& ssbo);
     306      void updateBufferSet(BufferSet& set, size_t objIndex, SSBOType& ssbo);
    307307
    308308      // TODO: Since addObject() returns a reference to the new object now,
     
    312312                                                   GraphicsPipeline_Vulkan<VertexType>& pipeline,
    313313                                                   const vector<VertexType>& vertices, vector<uint16_t> indices,
    314                                                    SSBOType ssbo, StorageBufferSet& storageBuffers);
     314                                                   SSBOType ssbo);
    315315
    316316      template<class VertexType>
     
    324324
    325325      template<class VertexType, class SSBOType>
    326       void updateObject(vector<SceneObject<VertexType, SSBOType>>& objects,
    327                         GraphicsPipeline_Vulkan<VertexType>& pipeline, size_t index);
     326      void updateObject(SceneObject<VertexType, SSBOType>& obj);
    328327
    329328      void renderFrame(ImDrawData* draw_data);
     
    347346
    348347template<class VertexType, class SSBOType>
    349 void VulkanGame::resizeStorageBufferSet(StorageBufferSet& set, VulkanBuffer<SSBOType>& buffer,
    350                                         GraphicsPipeline_Vulkan<VertexType>& pipeline,
    351                                         VkCommandPool commandPool, VkQueue graphicsQueue) {
     348void VulkanGame::resizeBufferSet(BufferSet& set, VulkanBuffer<SSBOType>& buffer,
     349                                 GraphicsPipeline_Vulkan<VertexType>& pipeline, VkCommandPool commandPool,
     350                                 VkQueue graphicsQueue) {
    352351   size_t numObjects = buffer.numObjects < buffer.capacity ? buffer.numObjects : buffer.capacity;
    353352
     
    388387// TODO: See if it makes sense to pass in the current swapchain index instead of updating all of them
    389388template<class SSBOType>
    390 void VulkanGame::updateStorageBuffer(StorageBufferSet& storageBufferSet, size_t objIndex, SSBOType& ssbo) {
    391    for (size_t i = 0; i < storageBufferSet.memory.size(); i++) {
    392       VulkanUtils::copyDataToMemory(device, ssbo, storageBufferSet.memory[i], objIndex * sizeof(SSBOType));
     389void VulkanGame::updateBufferSet(BufferSet& set, size_t objIndex, SSBOType& ssbo) {
     390   for (size_t i = 0; i < set.memory.size(); i++) {
     391      VulkanUtils::copyDataToMemory(device, ssbo, set.memory[i], objIndex * sizeof(SSBOType));
    393392   }
    394393}
     
    401400                                                         GraphicsPipeline_Vulkan<VertexType>& pipeline,
    402401                                                         const vector<VertexType>& vertices, vector<uint16_t> indices,
    403                                                          SSBOType ssbo, StorageBufferSet& storageBuffers) {
     402                                                         SSBOType ssbo) {
    404403   // TODO: Use the model field of ssbo to set the object's model_base
    405404   // currently, the passed in model is useless since it gets overridden in updateObject() anyway
     
    504503// TODO: Just pass in the single object instead of a list of all of them
    505504template<class VertexType, class SSBOType>
    506 void VulkanGame::updateObject(vector<SceneObject<VertexType, SSBOType>>& objects,
    507                               GraphicsPipeline_Vulkan<VertexType>& pipeline, size_t index) {
    508    SceneObject<VertexType, SSBOType>& obj = objects[index];
    509 
     505void VulkanGame::updateObject(SceneObject<VertexType, SSBOType>& obj) {
    510506   obj.ssbo.model = obj.model_transform * obj.model_base;
    511507   obj.center = vec3(obj.ssbo.model * vec4(0.0f, 0.0f, 0.0f, 1.0f));
  • vulkan-buffer.hpp

    ra3cefaa r1abebc1  
    2929      T* data();
    3030      void* mappedData(); // TODO: Maybe rename this to just mapped()
     31
     32      // TODO: Add a resize function
    3133
    3234   private:
  • vulkan-game.cpp

    ra3cefaa r1abebc1  
    157157            {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
    158158            {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}}
    159          })), {
    160             0, 1, 2, 3, 4, 5
    161          }, {
    162             mat4(1.0f)
    163          }, storageBuffers_modelPipeline);
     159         })),
     160      {
     161         0, 1, 2, 3, 4, 5
     162      }, {
     163         mat4(1.0f)
     164      });
    164165
    165166   objects_modelPipeline.numObjects++;
     
    178179            {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
    179180            {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}}
    180          })), {
    181             0, 1, 2, 3, 4, 5
    182          }, {
    183             mat4(1.0f)
    184          }, storageBuffers_modelPipeline);
     181         })),
     182      {
     183         0, 1, 2, 3, 4, 5
     184      }, {
     185         mat4(1.0f)
     186      });
    185187
    186188   objects_modelPipeline.numObjects++;
     
    412414            {{  1.5f,   0.0f,   0.0f}, {0.0f, 0.0f, 0.3f}},
    413415            {{  1.3f,   0.0f,  -0.3f}, {0.0f, 0.0f, 0.3f}},
    414          })), {
    415               0,   1,   2,   3,   4,   5,
    416               6,   7,   8,   9,  10,  11,
    417              12,  13,  14,  15,  16,  17,
    418              18,  19,  20,  21,  22,  23,
    419              24,  25,  26,  27,  28,  29,
    420              30,  31,  32,
    421              33,  34,  35,
    422              36,  37,  38,  39,  40,  41,
    423              42,  43,  44,  45,  46,  47,
    424              48,  49,  50,  51,  52,  53,
    425              54,  55,  56,  57,  58,  59,
    426              60,  61,  62,
    427              63,  64,  65,
    428              66,  67,  68,  69,  70,  71,
    429              72,  73,  74,  75,  76,  77,
    430              78,  79,  80,  81,  82,  83,
    431              84,  85,  86,  87,  88,  89,
    432              90,  91,  92,
    433              93,  94,  95,
    434              96,  97,  98,
    435              99, 100, 101,
    436             102, 103, 104, 105, 106, 107,
    437             108, 109, 110, 111, 112, 113,
    438             114, 115, 116, 117, 118, 119,
    439             120, 121, 122, 123, 124, 125,
    440             126, 127, 128,
    441             129, 130, 131,
    442             132, 133, 134,
    443             135, 136, 137,
     416         })),
     417      {
     418           0,   1,   2,   3,   4,   5,
     419           6,   7,   8,   9,  10,  11,
     420          12,  13,  14,  15,  16,  17,
     421          18,  19,  20,  21,  22,  23,
     422          24,  25,  26,  27,  28,  29,
     423          30,  31,  32,
     424          33,  34,  35,
     425          36,  37,  38,  39,  40,  41,
     426          42,  43,  44,  45,  46,  47,
     427          48,  49,  50,  51,  52,  53,
     428          54,  55,  56,  57,  58,  59,
     429          60,  61,  62,
     430          63,  64,  65,
     431          66,  67,  68,  69,  70,  71,
     432          72,  73,  74,  75,  76,  77,
     433          78,  79,  80,  81,  82,  83,
     434          84,  85,  86,  87,  88,  89,
     435          90,  91,  92,
     436          93,  94,  95,
     437          96,  97,  98,
     438          99, 100, 101,
     439         102, 103, 104, 105, 106, 107,
     440         108, 109, 110, 111, 112, 113,
     441         114, 115, 116, 117, 118, 119,
     442         120, 121, 122, 123, 124, 125,
     443         126, 127, 128,
     444         129, 130, 131,
     445         132, 133, 134,
     446         135, 136, 137,
    444447      }, {
    445448         mat4(1.0f)
    446       }, storageBuffers_shipPipeline);
     449      });
    447450
    448451   objects_shipPipeline.numObjects++;
     
    780783                              {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
    781784                              {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}}
    782                            })), {
    783                               0, 1, 2, 3, 4, 5
    784                            }, {
    785                               mat4(1.0f)
    786                            }, storageBuffers_modelPipeline);
     785                           })),
     786                        {
     787                           0, 1, 2, 3, 4, 5
     788                        }, {
     789                           mat4(1.0f)
     790                        });
    787791
    788792                  objects_modelPipeline.numObjects++;
     
    10561060                  {{-1.0f, -1.0f, -1.0f}, {0.4f, 0.4f, 0.4f}},
    10571061                  {{-1.0f, -1.0f,  1.0f}, {0.4f, 0.4f, 0.4f}},
    1058                })), {
    1059                    0,  1,  2,  3,  4,  5,
    1060                    6,  7,  8,  9, 10, 11,
    1061                   12, 13, 14, 15, 16, 17,
    1062                   18, 19, 20, 21, 22, 23,
    1063                   24, 25, 26, 27, 28, 29,
    1064                   30, 31, 32, 33, 34, 35,
    1065                }, {
    1066                   mat4(1.0f),
    1067                   10.0f,
    1068                   false
    1069                }, storageBuffers_asteroidPipeline);
     1062               })),
     1063            {
     1064                0,  1,  2,  3,  4,  5,
     1065                6,  7,  8,  9, 10, 11,
     1066               12, 13, 14, 15, 16, 17,
     1067               18, 19, 20, 21, 22, 23,
     1068               24, 25, 26, 27, 28, 29,
     1069               30, 31, 32, 33, 34, 35,
     1070            }, {
     1071               mat4(1.0f),
     1072               10.0f,
     1073               false
     1074            });
    10701075
    10711076      objects_asteroidPipeline.numObjects++;
     
    10961101   // TODO: Probably move the resizing to the VulkanBuffer class
    10971102   if (objects_modelPipeline.numObjects > objects_modelPipeline.capacity) {
    1098       resizeStorageBufferSet(storageBuffers_modelPipeline, objects_modelPipeline, modelPipeline, resourceCommandPool,
    1099                              graphicsQueue);
     1103      resizeBufferSet(storageBuffers_modelPipeline, objects_modelPipeline, modelPipeline, resourceCommandPool,
     1104                      graphicsQueue);
    11001105   }
    11011106
    11021107   for (size_t i = 0; i < modelObjects.size(); i++) {
    11031108      if (modelObjects[i].modified) {
    1104          updateObject(modelObjects, modelPipeline, i);
    1105          updateStorageBuffer(storageBuffers_modelPipeline, i, modelObjects[i].ssbo);
     1109         updateObject(modelObjects[i]);
     1110         updateBufferSet(storageBuffers_modelPipeline, i, modelObjects[i].ssbo);
    11061111      }
    11071112   }
     
    11091114   // TODO: Probably move the resizing to the VulkanBuffer class
    11101115   if (objects_shipPipeline.numObjects > objects_shipPipeline.capacity) {
    1111       resizeStorageBufferSet(storageBuffers_shipPipeline, objects_shipPipeline, shipPipeline, resourceCommandPool,
    1112                              graphicsQueue);
     1116      resizeBufferSet(storageBuffers_shipPipeline, objects_shipPipeline, shipPipeline, resourceCommandPool,
     1117                      graphicsQueue);
    11131118   }
    11141119
    11151120   for (size_t i = 0; i < shipObjects.size(); i++) {
    11161121      if (shipObjects[i].modified) {
    1117          updateObject(shipObjects, shipPipeline, i);
    1118          updateStorageBuffer(storageBuffers_shipPipeline, i, shipObjects[i].ssbo);
     1122         updateObject(shipObjects[i]);
     1123         updateBufferSet(storageBuffers_shipPipeline, i, shipObjects[i].ssbo);
    11191124      }
    11201125   }
     
    11221127   // TODO: Probably move the resizing to the VulkanBuffer class
    11231128   if (objects_asteroidPipeline.numObjects > objects_asteroidPipeline.capacity) {
    1124       resizeStorageBufferSet(storageBuffers_asteroidPipeline, objects_asteroidPipeline, asteroidPipeline,
    1125                              resourceCommandPool, graphicsQueue);
     1129      resizeBufferSet(storageBuffers_asteroidPipeline, objects_asteroidPipeline, asteroidPipeline,
     1130                      resourceCommandPool, graphicsQueue);
    11261131   }
    11271132
    11281133   for (size_t i = 0; i < asteroidObjects.size(); i++) {
    11291134      if (asteroidObjects[i].modified) {
    1130          updateObject(asteroidObjects, asteroidPipeline, i);
    1131          updateStorageBuffer(storageBuffers_asteroidPipeline, i, asteroidObjects[i].ssbo);
     1135         updateObject(asteroidObjects[i]);
     1136         updateBufferSet(storageBuffers_asteroidPipeline, i, asteroidObjects[i].ssbo);
    11321137      }
    11331138   }
     
    11351140   // TODO: Probably move the resizing to the VulkanBuffer class
    11361141   if (objects_laserPipeline.numObjects > objects_laserPipeline.capacity) {
    1137       resizeStorageBufferSet(storageBuffers_laserPipeline, objects_laserPipeline, laserPipeline, resourceCommandPool,
    1138                              graphicsQueue);
     1142      resizeBufferSet(storageBuffers_laserPipeline, objects_laserPipeline, laserPipeline, resourceCommandPool,
     1143                      graphicsQueue);
    11391144   }
    11401145
    11411146   for (size_t i = 0; i < laserObjects.size(); i++) {
    11421147      if (laserObjects[i].modified) {
    1143          updateObject(laserObjects, laserPipeline, i);
    1144          updateStorageBuffer(storageBuffers_laserPipeline, i, laserObjects[i].ssbo);
     1148         updateObject(laserObjects[i]);
     1149         updateBufferSet(storageBuffers_laserPipeline, i, laserObjects[i].ssbo);
    11451150      }
    11461151   }
     
    11481153   // TODO: Probably move the resizing to the VulkanBuffer class
    11491154   if (objects_explosionPipeline.numObjects > objects_explosionPipeline.capacity) {
    1150       resizeStorageBufferSet(storageBuffers_explosionPipeline, objects_explosionPipeline, explosionPipeline,
    1151                              resourceCommandPool, graphicsQueue);
     1155      resizeBufferSet(storageBuffers_explosionPipeline, objects_explosionPipeline, explosionPipeline,
     1156                     resourceCommandPool, graphicsQueue);
    11521157   }
    11531158
    11541159   for (size_t i = 0; i < explosionObjects.size(); i++) {
    11551160      if (explosionObjects[i].modified) {
    1156          updateObject(explosionObjects, explosionPipeline, i);
    1157          updateStorageBuffer(storageBuffers_explosionPipeline, i, explosionObjects[i].ssbo);
     1161         updateObject(explosionObjects[i]);
     1162         updateBufferSet(storageBuffers_explosionPipeline, i, explosionObjects[i].ssbo);
    11581163      }
    11591164   }
     
    19761981         color,
    19771982         false
    1978       }, storageBuffers_laserPipeline);
     1983      });
    19791984
    19801985   objects_laserPipeline.numObjects++;
     
    21812186
    21822187   SceneObject<ExplosionVertex, SSBO_Explosion>& explosion = addObject(
    2183       explosionObjects, explosionPipeline,
    2184       addObjectIndex(explosionObjects.size(), vertices),
    2185       indices, {
     2188      explosionObjects, explosionPipeline, addObjectIndex(explosionObjects.size(), vertices), indices, {
    21862189         mat4(1.0f),
    21872190         cur_time,
    21882191         duration,
    21892192         false
    2190       }, storageBuffers_explosionPipeline);
     2193      });
    21912194
    21922195   objects_explosionPipeline.numObjects++;
  • vulkan-game.hpp

    ra3cefaa r1abebc1  
    103103// has a VkBuffer, VkDeviceMemory, and VkDescriptorBufferInfo
    104104// TODO: Maybe change the structure here since VkDescriptorBufferInfo already stores a reference to the VkBuffer
    105 struct StorageBufferSet {
     105struct BufferSet {
    106106   vector<VkBuffer> buffers;
    107107   vector<VkDeviceMemory> memory;
     
    317317      GraphicsPipeline_Vulkan<ExplosionVertex> explosionPipeline;
    318318
    319       StorageBufferSet storageBuffers_modelPipeline;
     319      BufferSet storageBuffers_modelPipeline;
    320320      VulkanBuffer<SSBO_ModelObject> objects_modelPipeline;
    321321
    322       StorageBufferSet storageBuffers_shipPipeline;
     322      BufferSet storageBuffers_shipPipeline;
    323323      VulkanBuffer<SSBO_ModelObject> objects_shipPipeline;
    324324
    325       StorageBufferSet storageBuffers_asteroidPipeline;
     325      BufferSet storageBuffers_asteroidPipeline;
    326326      VulkanBuffer<SSBO_Asteroid> objects_asteroidPipeline;
    327327
    328       StorageBufferSet storageBuffers_laserPipeline;
     328      BufferSet storageBuffers_laserPipeline;
    329329      VulkanBuffer<SSBO_Laser> objects_laserPipeline;
    330330
    331       StorageBufferSet storageBuffers_explosionPipeline;
     331      BufferSet storageBuffers_explosionPipeline;
    332332      VulkanBuffer<SSBO_Explosion> objects_explosionPipeline;
    333333
     
    454454      // TODO: Remove the need for templating, which is only there so a GraphicsPupeline_Vulkan can be passed in
    455455      template<class VertexType, class SSBOType>
    456       void resizeStorageBufferSet(StorageBufferSet& set, VulkanBuffer<SSBOType>& buffer,
    457                                   GraphicsPipeline_Vulkan<VertexType>& pipeline,
    458                                   VkCommandPool commandPool, VkQueue graphicsQueue);
     456      void resizeBufferSet(BufferSet& set, VulkanBuffer<SSBOType>& buffer,
     457                           GraphicsPipeline_Vulkan<VertexType>& pipeline, VkCommandPool commandPool,
     458                           VkQueue graphicsQueue);
    459459
    460460      template<class SSBOType>
    461       void updateStorageBuffer(StorageBufferSet& storageBufferSet, size_t objIndex, SSBOType& ssbo);
     461      void updateBufferSet(BufferSet& set, size_t objIndex, SSBOType& ssbo);
    462462
    463463      // TODO: Since addObject() returns a reference to the new object now,
     
    467467                                                   GraphicsPipeline_Vulkan<VertexType>& pipeline,
    468468                                                   const vector<VertexType>& vertices, vector<uint16_t> indices,
    469                                                    SSBOType ssbo, StorageBufferSet& storageBuffers);
     469                                                   SSBOType ssbo);
    470470
    471471      template<class VertexType>
     
    479479
    480480      template<class VertexType, class SSBOType>
    481       void updateObject(vector<SceneObject<VertexType, SSBOType>>& objects,
    482             GraphicsPipeline_Vulkan<VertexType>& pipeline, size_t index);
     481      void updateObject(SceneObject<VertexType, SSBOType>& obj);
    483482
    484483      template<class VertexType, class SSBOType>
     
    522521
    523522template<class VertexType, class SSBOType>
    524 void VulkanGame::resizeStorageBufferSet(StorageBufferSet& set, VulkanBuffer<SSBOType>& buffer,
    525                                         GraphicsPipeline_Vulkan<VertexType>& pipeline,
    526                                         VkCommandPool commandPool, VkQueue graphicsQueue) {
     523void VulkanGame::resizeBufferSet(BufferSet& set, VulkanBuffer<SSBOType>& buffer,
     524                                 GraphicsPipeline_Vulkan<VertexType>& pipeline, VkCommandPool commandPool,
     525                                 VkQueue graphicsQueue) {
    527526   size_t numObjects = buffer.numObjects < buffer.capacity ? buffer.numObjects : buffer.capacity;
    528527
     
    563562// TODO: See if it makes sense to pass in the current swapchain index instead of updating all of them
    564563template<class SSBOType>
    565 void VulkanGame::updateStorageBuffer(StorageBufferSet& storageBufferSet, size_t objIndex, SSBOType& ssbo) {
    566    for (size_t i = 0; i < storageBufferSet.memory.size(); i++) {
    567       VulkanUtils::copyDataToMemory(device, ssbo, storageBufferSet.memory[i], objIndex * sizeof(SSBOType));
     564void VulkanGame::updateBufferSet(BufferSet& set, size_t objIndex, SSBOType& ssbo) {
     565   for (size_t i = 0; i < set.memory.size(); i++) {
     566      VulkanUtils::copyDataToMemory(device, ssbo, set.memory[i], objIndex * sizeof(SSBOType));
    568567   }
    569568}
     
    576575                                                         GraphicsPipeline_Vulkan<VertexType>& pipeline,
    577576                                                         const vector<VertexType>& vertices, vector<uint16_t> indices,
    578                                                          SSBOType ssbo, StorageBufferSet& storageBuffers) {
     577                                                         SSBOType ssbo) {
    579578   // TODO: Use the model field of ssbo to set the object's model_base
    580579   // currently, the passed in model is useless since it gets overridden in updateObject() anyway
     
    684683// TODO: Just pass in the single object instead of a list of all of them
    685684template<class VertexType, class SSBOType>
    686 void VulkanGame::updateObject(vector<SceneObject<VertexType, SSBOType>>& objects,
    687       GraphicsPipeline_Vulkan<VertexType>& pipeline, size_t index) {
    688    SceneObject<VertexType, SSBOType>& obj = objects[index];
    689 
     685void VulkanGame::updateObject(SceneObject<VertexType, SSBOType>& obj) {
    690686   obj.ssbo.model = obj.model_transform * obj.model_base;
    691687   obj.center = vec3(obj.ssbo.model * vec4(0.0f, 0.0f, 0.0f, 1.0f));
Note: See TracChangeset for help on using the changeset viewer.