Changeset 5ea0a37 in opengl-game for vulkan-game.cpp


Ignore:
Timestamp:
Jun 11, 2021, 10:05:25 PM (3 years ago)
Author:
Dmitry Portnoy <dportnoy@…>
Branches:
feature/imgui-sdl
Children:
90880fb
Parents:
6486ba8
Message:

Add a function to VulkanBuffer to return a pointer to the buffer memory, and replace the use of updateBufferSet with copyDataToMemory to update all the data for a single pipeline in one call

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vulkan-game.cpp

    r6486ba8 r5ea0a37  
    10221022
    10231023   // TODO: Probably move the resizing to the VulkanBuffer class
    1024 
    1025    // TODO: Replace updateBufferSet to one call to copyDataToMemory, using VulkanBuffer to provide the data source
    10261024   // TODO: Figure out a way to make updateDescriptorInfo easier to use, maybe store the binding index in the buffer set
    10271025
     
    10461044      objData.model = obj.model_transform * obj.model_base;
    10471045      obj.center = vec3(objData.model * vec4(0.0f, 0.0f, 0.0f, 1.0f));
    1048 
    1049       updateBufferSet(storageBuffers_modelPipeline, i, objData);
    1050    }
     1046   }
     1047
     1048   VulkanUtils::copyDataToMemory(device, objects_modelPipeline.data(), storageBuffers_modelPipeline.memory[imageIndex],
     1049                                 0, objects_modelPipeline.memorySize(), false);
    10511050
    10521051   if (objects_shipPipeline.resized) {
     
    10661065      objData.model = obj.model_transform * obj.model_base;
    10671066      obj.center = vec3(objData.model * vec4(0.0f, 0.0f, 0.0f, 1.0f));
    1068 
    1069       updateBufferSet(storageBuffers_shipPipeline, i, objData);
    1070    }
     1067   }
     1068
     1069   VulkanUtils::copyDataToMemory(device, objects_shipPipeline.data(), storageBuffers_shipPipeline.memory[imageIndex],
     1070                                 0, objects_shipPipeline.memorySize(), false);
    10711071
    10721072   if (objects_asteroidPipeline.resized) {
     
    11081108         objData.model = obj.model_transform * obj.model_base;
    11091109         obj.center = vec3(objData.model * vec4(0.0f, 0.0f, 0.0f, 1.0f));
    1110 
    1111          updateBufferSet(storageBuffers_asteroidPipeline, i, objData);
    11121110      }
    11131111   }
     1112
     1113   VulkanUtils::copyDataToMemory(device, objects_asteroidPipeline.data(), storageBuffers_asteroidPipeline.memory[imageIndex],
     1114                                 0, objects_asteroidPipeline.memorySize(), false);
    11141115
    11151116   if (objects_laserPipeline.resized) {
     
    11351136      objData.model = obj.model_transform * obj.model_base;
    11361137      obj.center = vec3(objData.model * vec4(0.0f, 0.0f, 0.0f, 1.0f));
    1137 
    1138       updateBufferSet(storageBuffers_laserPipeline, i, objData);
    1139    }
     1138   }
     1139
     1140   VulkanUtils::copyDataToMemory(device, objects_laserPipeline.data(), storageBuffers_laserPipeline.memory[imageIndex],
     1141                                 0, objects_laserPipeline.memorySize(), false);
    11401142
    11411143   if (objects_explosionPipeline.resized) {
     
    11601162      objData.model = obj.model_transform * obj.model_base;
    11611163      obj.center = vec3(objData.model * vec4(0.0f, 0.0f, 0.0f, 1.0f));
    1162 
    1163       updateBufferSet(storageBuffers_explosionPipeline, i, objData);
    1164    }
     1164   }
     1165
     1166   VulkanUtils::copyDataToMemory(device, objects_explosionPipeline.data(), storageBuffers_explosionPipeline.memory[imageIndex],
     1167                                 0, objects_explosionPipeline.memorySize(), false);
    11651168
    11661169   explosion_UBO.cur_time = curTime;
Note: See TracChangeset for help on using the changeset viewer.