From 4935511bc3a6704e040bcfddd1f80d1e7debf38d Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Tue, 17 Sep 2024 16:42:49 +0200 Subject: [PATCH 1/7] Remove opencv file --- 3rdParty/opencv/CMakeLists.txt | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 3rdParty/opencv/CMakeLists.txt diff --git a/3rdParty/opencv/CMakeLists.txt b/3rdParty/opencv/CMakeLists.txt deleted file mode 100644 index ca8c7c8..0000000 --- a/3rdParty/opencv/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -Find_Package(OpenCV) -include(FetchContent) - -if(NOT DEFINED OPENCV_REPO) - set(OPENCV_REPO https://github.com/opencv/opencv.git) -endif () - -if (NOT OpenCV_FOUND) - FetchContent_Declare( - opencv - EXCLUDE_FROM_ALL - GIT_REPOSITORY ${OPENCV_REPO} - GIT_TAG v4.8.1 - GIT_SHALLOW TRUE - ) - FetchContent_MakeAvailable(opencv) -endif() \ No newline at end of file From 36d1dc2bcab2fbbbf3e66d8e6552a5614ea46ee8 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Tue, 17 Sep 2024 16:43:22 +0200 Subject: [PATCH 2/7] Make tracy optional --- openVulkanoCpp/Host/GraphicsAppManager.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/openVulkanoCpp/Host/GraphicsAppManager.cpp b/openVulkanoCpp/Host/GraphicsAppManager.cpp index f9cd1bb..cbefc3a 100644 --- a/openVulkanoCpp/Host/GraphicsAppManager.cpp +++ b/openVulkanoCpp/Host/GraphicsAppManager.cpp @@ -15,7 +15,10 @@ #include #include -#include +#if __has_include("tracy/Tracy.hpp") + #include + #define HAS_TRACY +#endif namespace OpenVulkano { @@ -23,7 +26,10 @@ namespace OpenVulkano : app(app), renderApi(renderApi) { Utils::SetThreadName("Main"); +#ifdef HAS_TRACY ZoneScoped; +#endif + Logger::SetupLogger(); if (!app) @@ -43,7 +49,9 @@ namespace OpenVulkano : app(app), renderApi(renderApi) { Utils::SetThreadName("Main"); +#ifdef HAS_TRACY ZoneScoped; +#endif Logger::SetupLogger(); if (!app) @@ -96,7 +104,9 @@ namespace OpenVulkano void GraphicsAppManager::StartUp() { +#ifdef HAS_TRACY ZoneScoped; +#endif try { Logger::MANAGER->info("Initializing ..."); @@ -129,8 +139,11 @@ namespace OpenVulkano void GraphicsAppManager::LoopTick() { +#ifdef HAS_TRACY FrameMark; ZoneScoped; +#endif + if (platform) platform->Tick(); if (paused) { // The rendering is paused @@ -152,7 +165,9 @@ namespace OpenVulkano void GraphicsAppManager::ShutDown() { +#ifdef HAS_TRACY ZoneScoped; +#endif Logger::MANAGER->info("Shutting down ..."); app->Close(); renderer->Close(); From ba7e2c2611ac1bad4e4a716330b2df540d3e33de Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Tue, 17 Sep 2024 16:43:58 +0200 Subject: [PATCH 3/7] Disable moving camera in arcbal if using ortho cam --- openVulkanoCpp/Controller/ArcballCameraController.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openVulkanoCpp/Controller/ArcballCameraController.cpp b/openVulkanoCpp/Controller/ArcballCameraController.cpp index 3fb67b9..212e406 100644 --- a/openVulkanoCpp/Controller/ArcballCameraController.cpp +++ b/openVulkanoCpp/Controller/ArcballCameraController.cpp @@ -108,7 +108,7 @@ namespace OpenVulkano if (GetCamera()->IsOrtho()) { HandleMovementOrtho(); - if (GetCamera()->GetZoom() > 50) + /*if (GetCamera()->GetZoom() > 50) { float nDist = std::max(((ZOOM_RANGE - sqrt(GetCamera()->GetZoom())) / ZOOM_RANGE) * m_distance, 0.1f); if (nDist != m_frameDistance) @@ -116,7 +116,7 @@ namespace OpenVulkano m_distUpated = true; m_frameDistance = nDist; } - } + }*/ } else { From b27764b3db6713e3c7164784b23f0541b6b40cfc Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Tue, 17 Sep 2024 16:44:10 +0200 Subject: [PATCH 4/7] Fix random crashes --- openVulkanoCpp/Base/EngineConfiguration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openVulkanoCpp/Base/EngineConfiguration.cpp b/openVulkanoCpp/Base/EngineConfiguration.cpp index bfc1340..f8af39d 100644 --- a/openVulkanoCpp/Base/EngineConfiguration.cpp +++ b/openVulkanoCpp/Base/EngineConfiguration.cpp @@ -29,7 +29,7 @@ namespace OpenVulkano EngineConfiguration::EngineConfiguration() { const std::string filePath = (AppFolders::GetAppConfigHomeDir() / "EngineConfig.yml").string(); - Array fileContents = Utils::ReadFile(filePath, true); + Array fileContents = Utils::ReadFile(filePath, true, true); if(fileContents.Size() == 0) return; From 323e0feb4dd2424be85e52ba620f44e8f15a3549 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Tue, 17 Sep 2024 16:44:21 +0200 Subject: [PATCH 5/7] Fix memory leak --- openVulkanoCpp/AR/ArRecorder.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/openVulkanoCpp/AR/ArRecorder.cpp b/openVulkanoCpp/AR/ArRecorder.cpp index 7c1a0a5..5d42e6c 100644 --- a/openVulkanoCpp/AR/ArRecorder.cpp +++ b/openVulkanoCpp/AR/ArRecorder.cpp @@ -109,6 +109,7 @@ namespace OpenVulkano::AR } } tjFree(outBuffer); + tjDestroy(handle); #endif } From 53ccf4e0f1d8808fd17f53291486f3d46d82f7c6 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Tue, 17 Sep 2024 16:45:52 +0200 Subject: [PATCH 6/7] Fix issues with image loader jpeg --- openVulkanoCpp/Image/ImageLoaderJpeg.cpp | 32 ++++++++++++++++-------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/openVulkanoCpp/Image/ImageLoaderJpeg.cpp b/openVulkanoCpp/Image/ImageLoaderJpeg.cpp index f9daec4..3d1275b 100644 --- a/openVulkanoCpp/Image/ImageLoaderJpeg.cpp +++ b/openVulkanoCpp/Image/ImageLoaderJpeg.cpp @@ -5,7 +5,9 @@ */ #include "ImageLoaderJpeg.hpp" -#include +#include "Base/Utils.hpp" +#include "Base/Logger.hpp" +#include "Data/Containers/Array.hpp" #include #include @@ -20,10 +22,8 @@ namespace OpenVulkano::Image { std::unique_ptr ImageLoaderJpeg::loadFromFile(const std::string& filePath) { - std::ifstream file(filePath, std::ios::binary); - if (!file) { throw std::runtime_error("Could not open file: " + filePath); } - std::vector buffer((std::istreambuf_iterator(file)), std::istreambuf_iterator()); - return loadJpeg(buffer.data(), buffer.size()); + const auto file = Utils::ReadFile(filePath); + return loadJpeg(reinterpret_cast(file.Data()), file.Size()); } std::unique_ptr ImageLoaderJpeg::loadFromMemory(const std::vector& buffer) @@ -35,21 +35,31 @@ namespace OpenVulkano::Image { Image result; - int rows, cols; + int rows = 0, cols = 0; #if __has_include("turbojpeg.h") { unsigned char* compressedImage = const_cast(data); - int jpegSubsamp; + int jpegSubsamp = 0; tjhandle jpegDecompressor = tjInitDecompress(); - tjDecompressHeader2(jpegDecompressor, compressedImage, size, &cols, &rows, &jpegSubsamp); + if (!jpegDecompressor) + { + Logger::FILESYS->error("Failed to read jpeg header. Error: {}", tjGetErrorStr()); + return nullptr; + } + int status = tjDecompressHeader2(jpegDecompressor, compressedImage, size, &cols, &rows, &jpegSubsamp); + if (status != 0) + { + Logger::FILESYS->error("Failed to read jpeg header. Error: {}", tjGetErrorStr()); + return nullptr; + } const int channels = 4; result.data = OpenVulkano::Array(cols * rows * channels); - result.dataFormat = OpenVulkano::DataFormat::R8G8B8A8_UINT; + result.dataFormat = OpenVulkano::DataFormat::B8G8R8A8_UINT; tjDecompress2(jpegDecompressor, compressedImage, size, result.data.Data(), cols, 0 /*pitch*/, rows, - TJPF_RGBA, TJFLAG_FASTDCT); + TJPF_BGRA, TJFLAG_FASTDCT); tjDestroy(jpegDecompressor); } #else @@ -69,4 +79,4 @@ namespace OpenVulkano::Image return std::make_unique(std::move(result)); } -} \ No newline at end of file +} From d744d5fdd7fdc99b3e76f9cc75cbc46b8e328a61 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Wed, 18 Sep 2024 22:16:41 +0200 Subject: [PATCH 7/7] Fix to string --- openVulkanoCpp/Math/DenseVector3i.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openVulkanoCpp/Math/DenseVector3i.hpp b/openVulkanoCpp/Math/DenseVector3i.hpp index 6e41b50..35d06bd 100644 --- a/openVulkanoCpp/Math/DenseVector3i.hpp +++ b/openVulkanoCpp/Math/DenseVector3i.hpp @@ -7,6 +7,7 @@ #pragma once #include "Math.hpp" +#include #include #include #include @@ -109,9 +110,14 @@ namespace OpenVulkano::Math data = (data & !(BITMASK << BITS)) | ((z & BITMASK) << BITS); } - [[nodiscard]] std::string ToString(const std::string& separator = ", ") const + [[nodiscard]] std::string ToString(const std::string& separator) const { - return std::to_string(X()) + "," + std::to_string(Y()) + "," + std::to_string(Z()); + return std::to_string(X()) + separator + std::to_string(Y()) + separator + std::to_string(Z()); + } + + [[nodiscard]] std::string ToString() const + { + return fmt::format("{},{},{}", X(), Y(), Z()); } [[nodiscard]] constexpr operator T() const { return data; }