diff --git a/Blaze.cpp b/Blaze.cpp index dddf636..d5dce29 100644 --- a/Blaze.cpp +++ b/Blaze.cpp @@ -1,9 +1,9 @@ // Blaze.cpp : This file contains the 'main' function. Program execution begins and ends there. // - #include #include +#include #include #include @@ -13,8 +13,6 @@ #include #include #include -#include -#include #include "AppState.h" #include "Frame.h" @@ -72,10 +70,9 @@ SDL_AppResult SDL_AppIterate( void* appstate ) SDL_SetWindowTitle( appState.window, appState.sprintfBuffer ); } - misc.cameraData.modelMatrix = glm::rotate( + misc.cameraData.modelMatrix = DirectX::XMMatrixMultiply( misc.cameraData.modelMatrix, - glm::radians( 60.0f ) * static_cast( deltaTime ), - glm::vec3{ 0.0f, 1.0f, 0.0f } ); + DirectX::XMMatrixRotationY( DirectX::XMConvertToRadians( 60.0f ) * static_cast( deltaTime ) ) ); memcpy( misc.cameraUniformBufferPtr, &misc.cameraData, sizeof misc.cameraData ); uint32_t currentImageIndex; diff --git a/MiscData.cpp b/MiscData.cpp index 22b23ac..9acdf63 100644 --- a/MiscData.cpp +++ b/MiscData.cpp @@ -1,13 +1,12 @@ #include "MiscData.h" -#include #include +#include + #include "MacroUtils.h" #include "RenderDevice.h" -#include - void MiscData::init( RenderDevice const& renderDevice ) { VkDevice const device = renderDevice.device; @@ -332,13 +331,15 @@ void MiscData::init( RenderDevice const& renderDevice ) // Camera { - cameraPosition = glm::vec3{ 0.0f, 0.0f, -5.0f }; - cameraTarget = glm::vec3{ 0.0f, 0.0f, 0.0f }; - cameraData.modelMatrix = glm::mat4{ 1.0f }; - cameraData.viewMatrix = glm::lookAt( cameraPosition, cameraTarget, glm::vec3{ 0.0f, 1.0f, 0.0f } ); - cameraData.projectionMatrix = glm::perspective( glm::radians( 70.0f ), 16.0f / 9.0f, 0.1f, 1000.0f ); + cameraPosition = DirectX::XMVectorSet( 0.0f, 0.0f, -5.0f, 1.0f ); + cameraTarget = DirectX::XMVectorSet( 0.0f, 0.0f, 0.0f, 1.0f ); + cameraUp = DirectX::XMVectorSet( 0.0f, 1.0f, 0.0f, 1.0f ); + cameraData.modelMatrix = DirectX::XMMatrixIdentity(); + cameraData.viewMatrix = DirectX::XMMatrixLookAtLH( cameraPosition, cameraTarget, cameraUp ); + cameraData.projectionMatrix = + DirectX::XMMatrixPerspectiveFovLH( DirectX::XMConvertToRadians( 70.0f ), 16.0f / 9.0f, 0.1f, 1000.0f ); - cameraUniformBufferSize = sizeof( CameraData ); + cameraUniformBufferSize = sizeof( CameraData ); VkBufferCreateInfo const bufferCreateInfo = { .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, diff --git a/MiscData.h b/MiscData.h index e29bf58..00222ce 100644 --- a/MiscData.h +++ b/MiscData.h @@ -5,7 +5,7 @@ #include -#include +#include struct RenderDevice; @@ -19,9 +19,9 @@ struct MiscData { struct CameraData { - glm::mat4x4 modelMatrix; - glm::mat4x4 viewMatrix; - glm::mat4x4 projectionMatrix; + DirectX::XMMATRIX modelMatrix; + DirectX::XMMATRIX viewMatrix; + DirectX::XMMATRIX projectionMatrix; }; uint64_t previousCounter; @@ -35,8 +35,11 @@ struct MiscData size_t vertexBufferSize; std::array vertices; - glm::vec3 cameraPosition; - glm::vec3 cameraTarget; + uint64_t _padding; // TODO: Optimize out? + + DirectX::XMVECTOR cameraPosition; + DirectX::XMVECTOR cameraTarget; + DirectX::XMVECTOR cameraUp; CameraData cameraData; VkBuffer cameraUniformBuffer; VmaAllocation cameraUniformBufferAllocation; diff --git a/vcpkg.json b/vcpkg.json index b93f366..2d030a5 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -3,7 +3,7 @@ "volk", "shader-slang", "vulkan-memory-allocator", - "glm", + "directxmath", { "name": "sdl3", "features": [ "vulkan" ]