Index: vulkan-game.cpp
===================================================================
--- vulkan-game.cpp	(revision a3cefaa6294c97206ade08805f4ff1b8c13d2d4e)
+++ vulkan-game.cpp	(revision 1abebc104018213f499c401642d6470cdfa7af9a)
@@ -157,9 +157,10 @@
             {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
             {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}}
-         })), {
-            0, 1, 2, 3, 4, 5
-         }, {
-            mat4(1.0f)
-         }, storageBuffers_modelPipeline);
+         })),
+      {
+         0, 1, 2, 3, 4, 5
+      }, {
+         mat4(1.0f)
+      });
 
    objects_modelPipeline.numObjects++;
@@ -178,9 +179,10 @@
             {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
             {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}}
-         })), {
-            0, 1, 2, 3, 4, 5
-         }, {
-            mat4(1.0f)
-         }, storageBuffers_modelPipeline);
+         })),
+      {
+         0, 1, 2, 3, 4, 5
+      }, {
+         mat4(1.0f)
+      });
 
    objects_modelPipeline.numObjects++;
@@ -412,37 +414,38 @@
             {{  1.5f,   0.0f,   0.0f}, {0.0f, 0.0f, 0.3f}},
             {{  1.3f,   0.0f,  -0.3f}, {0.0f, 0.0f, 0.3f}},
-         })), {
-              0,   1,   2,   3,   4,   5,
-              6,   7,   8,   9,  10,  11,
-             12,  13,  14,  15,  16,  17,
-             18,  19,  20,  21,  22,  23,
-             24,  25,  26,  27,  28,  29,
-             30,  31,  32,
-             33,  34,  35,
-             36,  37,  38,  39,  40,  41,
-             42,  43,  44,  45,  46,  47,
-             48,  49,  50,  51,  52,  53,
-             54,  55,  56,  57,  58,  59,
-             60,  61,  62,
-             63,  64,  65,
-             66,  67,  68,  69,  70,  71,
-             72,  73,  74,  75,  76,  77,
-             78,  79,  80,  81,  82,  83,
-             84,  85,  86,  87,  88,  89,
-             90,  91,  92,
-             93,  94,  95,
-             96,  97,  98,
-             99, 100, 101,
-            102, 103, 104, 105, 106, 107,
-            108, 109, 110, 111, 112, 113,
-            114, 115, 116, 117, 118, 119,
-            120, 121, 122, 123, 124, 125,
-            126, 127, 128,
-            129, 130, 131,
-            132, 133, 134,
-            135, 136, 137,
+         })),
+      {
+           0,   1,   2,   3,   4,   5,
+           6,   7,   8,   9,  10,  11,
+          12,  13,  14,  15,  16,  17,
+          18,  19,  20,  21,  22,  23,
+          24,  25,  26,  27,  28,  29,
+          30,  31,  32,
+          33,  34,  35,
+          36,  37,  38,  39,  40,  41,
+          42,  43,  44,  45,  46,  47,
+          48,  49,  50,  51,  52,  53,
+          54,  55,  56,  57,  58,  59,
+          60,  61,  62,
+          63,  64,  65,
+          66,  67,  68,  69,  70,  71,
+          72,  73,  74,  75,  76,  77,
+          78,  79,  80,  81,  82,  83,
+          84,  85,  86,  87,  88,  89,
+          90,  91,  92,
+          93,  94,  95,
+          96,  97,  98,
+          99, 100, 101,
+         102, 103, 104, 105, 106, 107,
+         108, 109, 110, 111, 112, 113,
+         114, 115, 116, 117, 118, 119,
+         120, 121, 122, 123, 124, 125,
+         126, 127, 128,
+         129, 130, 131,
+         132, 133, 134,
+         135, 136, 137,
       }, {
          mat4(1.0f)
-      }, storageBuffers_shipPipeline);
+      });
 
    objects_shipPipeline.numObjects++;
@@ -780,9 +783,10 @@
                               {{-0.5f,  0.5f,  0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
                               {{-0.5f, -0.5f,  0.0f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}}
-                           })), {
-                              0, 1, 2, 3, 4, 5
-                           }, {
-                              mat4(1.0f)
-                           }, storageBuffers_modelPipeline);
+                           })),
+                        {
+                           0, 1, 2, 3, 4, 5
+                        }, {
+                           mat4(1.0f)
+                        });
 
                   objects_modelPipeline.numObjects++;
@@ -1056,16 +1060,17 @@
                   {{-1.0f, -1.0f, -1.0f}, {0.4f, 0.4f, 0.4f}},
                   {{-1.0f, -1.0f,  1.0f}, {0.4f, 0.4f, 0.4f}},
-               })), {
-                   0,  1,  2,  3,  4,  5,
-                   6,  7,  8,  9, 10, 11,
-                  12, 13, 14, 15, 16, 17,
-                  18, 19, 20, 21, 22, 23,
-                  24, 25, 26, 27, 28, 29,
-                  30, 31, 32, 33, 34, 35,
-               }, {
-                  mat4(1.0f),
-                  10.0f,
-                  false
-               }, storageBuffers_asteroidPipeline);
+               })),
+            {
+                0,  1,  2,  3,  4,  5,
+                6,  7,  8,  9, 10, 11,
+               12, 13, 14, 15, 16, 17,
+               18, 19, 20, 21, 22, 23,
+               24, 25, 26, 27, 28, 29,
+               30, 31, 32, 33, 34, 35,
+            }, {
+               mat4(1.0f),
+               10.0f,
+               false
+            });
 
       objects_asteroidPipeline.numObjects++;
@@ -1096,12 +1101,12 @@
    // TODO: Probably move the resizing to the VulkanBuffer class
    if (objects_modelPipeline.numObjects > objects_modelPipeline.capacity) {
-      resizeStorageBufferSet(storageBuffers_modelPipeline, objects_modelPipeline, modelPipeline, resourceCommandPool,
-                             graphicsQueue);
+      resizeBufferSet(storageBuffers_modelPipeline, objects_modelPipeline, modelPipeline, resourceCommandPool,
+                      graphicsQueue);
    }
 
    for (size_t i = 0; i < modelObjects.size(); i++) {
       if (modelObjects[i].modified) {
-         updateObject(modelObjects, modelPipeline, i);
-         updateStorageBuffer(storageBuffers_modelPipeline, i, modelObjects[i].ssbo);
+         updateObject(modelObjects[i]);
+         updateBufferSet(storageBuffers_modelPipeline, i, modelObjects[i].ssbo);
       }
    }
@@ -1109,12 +1114,12 @@
    // TODO: Probably move the resizing to the VulkanBuffer class
    if (objects_shipPipeline.numObjects > objects_shipPipeline.capacity) {
-      resizeStorageBufferSet(storageBuffers_shipPipeline, objects_shipPipeline, shipPipeline, resourceCommandPool,
-                             graphicsQueue);
+      resizeBufferSet(storageBuffers_shipPipeline, objects_shipPipeline, shipPipeline, resourceCommandPool,
+                      graphicsQueue);
    }
 
    for (size_t i = 0; i < shipObjects.size(); i++) {
       if (shipObjects[i].modified) {
-         updateObject(shipObjects, shipPipeline, i);
-         updateStorageBuffer(storageBuffers_shipPipeline, i, shipObjects[i].ssbo);
+         updateObject(shipObjects[i]);
+         updateBufferSet(storageBuffers_shipPipeline, i, shipObjects[i].ssbo);
       }
    }
@@ -1122,12 +1127,12 @@
    // TODO: Probably move the resizing to the VulkanBuffer class
    if (objects_asteroidPipeline.numObjects > objects_asteroidPipeline.capacity) {
-      resizeStorageBufferSet(storageBuffers_asteroidPipeline, objects_asteroidPipeline, asteroidPipeline,
-                             resourceCommandPool, graphicsQueue);
+      resizeBufferSet(storageBuffers_asteroidPipeline, objects_asteroidPipeline, asteroidPipeline,
+                      resourceCommandPool, graphicsQueue);
    }
 
    for (size_t i = 0; i < asteroidObjects.size(); i++) {
       if (asteroidObjects[i].modified) {
-         updateObject(asteroidObjects, asteroidPipeline, i);
-         updateStorageBuffer(storageBuffers_asteroidPipeline, i, asteroidObjects[i].ssbo);
+         updateObject(asteroidObjects[i]);
+         updateBufferSet(storageBuffers_asteroidPipeline, i, asteroidObjects[i].ssbo);
       }
    }
@@ -1135,12 +1140,12 @@
    // TODO: Probably move the resizing to the VulkanBuffer class
    if (objects_laserPipeline.numObjects > objects_laserPipeline.capacity) {
-      resizeStorageBufferSet(storageBuffers_laserPipeline, objects_laserPipeline, laserPipeline, resourceCommandPool,
-                             graphicsQueue);
+      resizeBufferSet(storageBuffers_laserPipeline, objects_laserPipeline, laserPipeline, resourceCommandPool,
+                      graphicsQueue);
    }
 
    for (size_t i = 0; i < laserObjects.size(); i++) {
       if (laserObjects[i].modified) {
-         updateObject(laserObjects, laserPipeline, i);
-         updateStorageBuffer(storageBuffers_laserPipeline, i, laserObjects[i].ssbo);
+         updateObject(laserObjects[i]);
+         updateBufferSet(storageBuffers_laserPipeline, i, laserObjects[i].ssbo);
       }
    }
@@ -1148,12 +1153,12 @@
    // TODO: Probably move the resizing to the VulkanBuffer class
    if (objects_explosionPipeline.numObjects > objects_explosionPipeline.capacity) {
-      resizeStorageBufferSet(storageBuffers_explosionPipeline, objects_explosionPipeline, explosionPipeline,
-                             resourceCommandPool, graphicsQueue);
+      resizeBufferSet(storageBuffers_explosionPipeline, objects_explosionPipeline, explosionPipeline,
+                     resourceCommandPool, graphicsQueue);
    }
 
    for (size_t i = 0; i < explosionObjects.size(); i++) {
       if (explosionObjects[i].modified) {
-         updateObject(explosionObjects, explosionPipeline, i);
-         updateStorageBuffer(storageBuffers_explosionPipeline, i, explosionObjects[i].ssbo);
+         updateObject(explosionObjects[i]);
+         updateBufferSet(storageBuffers_explosionPipeline, i, explosionObjects[i].ssbo);
       }
    }
@@ -1976,5 +1981,5 @@
          color,
          false
-      }, storageBuffers_laserPipeline);
+      });
 
    objects_laserPipeline.numObjects++;
@@ -2181,12 +2186,10 @@
 
    SceneObject<ExplosionVertex, SSBO_Explosion>& explosion = addObject(
-      explosionObjects, explosionPipeline,
-      addObjectIndex(explosionObjects.size(), vertices),
-      indices, {
+      explosionObjects, explosionPipeline, addObjectIndex(explosionObjects.size(), vertices), indices, {
          mat4(1.0f),
          cur_time,
          duration,
          false
-      }, storageBuffers_explosionPipeline);
+      });
 
    objects_explosionPipeline.numObjects++;
