Changeset 3b84bb6 in opengl-game for vulkan-game.cpp


Ignore:
Timestamp:
Feb 25, 2020, 6:51:02 PM (5 years ago)
Author:
Dmitry Portnoy <dmitry.portnoy@…>
Branches:
feature/imgui-sdl, master, points-test
Children:
44f23af
Parents:
2da64ef
Message:

In VulkanGame, call centerObject() on all objects when they are created and move that call inside VulkanGame::addObject(), rename GraphicsPipeline_Vulkan::addVertices() to addObject, add start adding generic support for objects to be added after pipeline creation is complete

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vulkan-game.cpp

    r2da64ef r3b84bb6  
    208208      }, {
    209209         0, 1, 2, 2, 3, 0
    210       }, {});
     210      }, {}, false);
    211211
    212212   overlayPipeline.createDescriptorSetLayout();
     
    240240      }, {
    241241         mat4(1.0f)
    242       });
     242      }, false);
    243243
    244244   addObject(modelObjects, modelPipeline,
     
    252252      }, {
    253253         mat4(1.0f)
    254       });
     254      }, false);
    255255
    256256   modelPipeline.createDescriptorSetLayout();
     
    274274   // the same data. Add an option to make some pipelines not use indexing
    275275   addObject(shipObjects, shipPipeline,
    276       centerObject<ShipVertex>(
    277276      addObjectIndex<ShipVertex>(shipObjects.size(),
    278277      addVertexNormals<ShipVertex>({
     
    473472         {{  1.5f,   0.0f,   0.0f}, {0.0f, 0.0f, 0.3f}},
    474473         {{  1.3f,   0.0f,  -0.3f}, {0.0f, 0.0f, 0.3f}},
    475       }))), {
     474      })), {
    476475           0,   1,   2,   3,   4,   5,
    477476           6,   7,   8,   9,  10,  11,
     
    505504      }, {
    506505         mat4(1.0f)
    507       });
     506      }, false);
    508507
    509508   shipPipeline.createDescriptorSetLayout();
     
    619618                  float zOffset = -2.0f + (0.5f * modelObjects.size());
    620619
    621                   vkDeviceWaitIdle(device);
    622                   vkFreeCommandBuffers(device, commandPool, static_cast<uint32_t>(commandBuffers.size()), commandBuffers.data());
    623 
    624620                  addObject(modelObjects, modelPipeline,
    625621                     addObjectIndex<ModelVertex>(modelObjects.size(), {
     
    632628                     }, {
    633629                        mat4(1.0f)
    634                      });
    635 
    636                   createCommandBuffers();
     630                     }, true);
    637631               } else if (e.key.keycode == SDL_SCANCODE_Z) {
    638                   vkDeviceWaitIdle(device);
    639                   vkFreeCommandBuffers(device, commandPool, static_cast<uint32_t>(commandBuffers.size()), commandBuffers.data());
    640 
    641632                  addObject(asteroidObjects, asteroidPipeline,
    642633                     addObjectIndex<AsteroidVertex>(asteroidObjects.size(),
     
    701692                        10.0f,
    702693                        0
    703                      });
     694                     }, true);
    704695
    705696                  // translate(mat4(1.0f), vec3(getRandomNum(-1.3f, 1.3f), -1.2f, getRandomNum(-5.5f, -4.5f))) *
     
    710701
    711702                  updateObject(asteroidObjects, asteroidPipeline, asteroidObjects.size() - 1);
    712                   createCommandBuffers();
    713703               } else {
    714704                  cout << "Key event detected" << endl;
     
    750740      }
    751741
     742      if (gui->keyPressed(SDL_SCANCODE_X)) {
     743         if (asteroidObjects.size() > 0 && !asteroidObjects[0].ssbo.deleted) {
     744            updateObject(asteroidObjects, asteroidPipeline, 0);
     745         }
     746      }
     747
    752748      renderUI();
    753749      renderScene();
Note: See TracChangeset for help on using the changeset viewer.