Changeset f985231 in opengl-game


Ignore:
Timestamp:
Nov 7, 2019, 2:30:59 AM (5 years ago)
Author:
Dmitry Portnoy <dmp1488@…>
Branches:
feature/imgui-sdl, master, points-test
Children:
cc4a8b5
Parents:
d2d9286
Message:

In vulkangame, update the MVP matrix and copy it to the uniform buffer to correctly display the scene

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • VulkanGame.vcxproj

    rd2d9286 rf985231  
    158158    <ClInclude Include="vulkan-utils.hpp" />
    159159  </ItemGroup>
     160  <ItemGroup>
     161    <None Include="shaders\overlay.frag" />
     162    <None Include="shaders\overlay.vert" />
     163    <None Include="shaders\scene.frag" />
     164    <None Include="shaders\scene.vert" />
     165  </ItemGroup>
    160166  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
    161167  <ImportGroup Label="ExtensionTargets">
  • vulkan-game.cpp

    rd2d9286 rf985231  
    22
    33#include <array>
     4#include <chrono>
    45#include <iostream>
    56#include <set>
     
    297298   }
    298299
     300   updateUniformBuffer(imageIndex);
     301
    299302   VkSubmitInfo submitInfo = {};
    300303   submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
     
    887890}
    888891
     892void VulkanGame::updateUniformBuffer(uint32_t currentImage) {
     893   static auto startTime = chrono::high_resolution_clock::now();
     894
     895   auto currentTime = chrono::high_resolution_clock::now();
     896   float time = chrono::duration<float, chrono::seconds::period>(currentTime - startTime).count();
     897
     898   UniformBufferObject ubo = {};
     899   ubo.model = rotate(glm::mat4(1.0f), time * glm::radians(90.0f), glm::vec3(0.0f, 0.0f, 1.0f));
     900   ubo.view = lookAt(glm::vec3(0.0f, 2.0f, 2.0f), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f));
     901   ubo.proj = perspective(radians(45.0f), swapChainExtent.width / (float)swapChainExtent.height, 0.1f, 10.0f);
     902   ubo.proj[1][1] *= -1; // flip the y-axis so that +y is up
     903
     904   void* data;
     905   vkMapMemory(device, uniformBuffersMemory[currentImage], 0, sizeof(ubo), 0, &data);
     906   memcpy(data, &ubo, sizeof(ubo));
     907   vkUnmapMemory(device, uniformBuffersMemory[currentImage]);
     908}
     909
    889910void VulkanGame::cleanupSwapChain() {
    890911   VulkanUtils::destroyVulkanImage(device, depthImage);
  • vulkan-game.hpp

    rd2d9286 rf985231  
    125125
    126126      void recreateSwapChain();
     127      void updateUniformBuffer(uint32_t currentImage);
    127128
    128129      void cleanupSwapChain();
  • vulkan-ref.cpp

    rd2d9286 rf985231  
    17941794            throw runtime_error("failed to acquire swap chain image!");
    17951795         }
    1796 /*** END OF REFACTORED CODE ***/
    17971796
    17981797         updateUniformBuffer(imageIndex);
    17991798
    1800 /*** START OF REFACTORED CODE ***/
    18011799         VkSubmitInfo submitInfo = {};
    18021800         submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
     
    18761874         populateImageFromSDLTexture(uiOverlay, sdlOverlayImage);
    18771875      }
    1878 /*** END OF REFACTORED CODE ***/
    18791876
    18801877      void updateUniformBuffer(uint32_t currentImage) {
     
    18961893      }
    18971894
    1898 /*** START OF REFACTORED CODE ***/
    18991895      void recreateSwapChain() {
    19001896         gui->refreshWindowSize();
Note: See TracChangeset for help on using the changeset viewer.