From d39f50922346ddc415d5b630a089479b068a59d3 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Tue, 28 Sep 2021 18:40:02 +0200 Subject: [PATCH] Fixed warnings, changed requirement to C++20 and fixed events with semaphores Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- CMakeLists.txt | 2 +- include/vkcv/Buffer.hpp | 6 +++--- include/vkcv/Event.hpp | 15 ++++++--------- modules/asset_loader/CMakeLists.txt | 2 +- modules/camera/CMakeLists.txt | 2 +- modules/gui/CMakeLists.txt | 2 +- modules/material/CMakeLists.txt | 2 +- modules/meshlet/CMakeLists.txt | 2 +- modules/scene/CMakeLists.txt | 2 +- modules/shader_compiler/CMakeLists.txt | 2 +- modules/testing/CMakeLists.txt | 2 +- modules/upscaling/CMakeLists.txt | 2 +- projects/bindless_textures/CMakeLists.txt | 2 +- projects/bindless_textures/src/main.cpp | 2 +- projects/first_mesh/CMakeLists.txt | 2 +- projects/first_scene/CMakeLists.txt | 2 +- projects/first_triangle/CMakeLists.txt | 2 +- projects/indirect_dispatch/CMakeLists.txt | 2 +- projects/indirect_draw/CMakeLists.txt | 2 +- projects/mesh_shader/CMakeLists.txt | 2 +- projects/particle_simulation/CMakeLists.txt | 2 +- projects/path_tracer/CMakeLists.txt | 2 +- projects/rtx_ambient_occlusion/CMakeLists.txt | 2 +- .../rtx_ambient_occlusion/src/RTX/ASManager.cpp | 2 +- .../rtx_ambient_occlusion/src/RTX/ASManager.hpp | 2 +- projects/rtx_ambient_occlusion/src/RTX/RTX.cpp | 3 +-- projects/saf_r/CMakeLists.txt | 2 +- projects/saf_r/src/main.cpp | 3 --- projects/sph/CMakeLists.txt | 2 +- projects/sph/src/main.cpp | 1 - projects/voxelization/CMakeLists.txt | 2 +- src/vkcv/DescriptorManager.cpp | 4 +--- src/vkcv/Window.cpp | 8 +------- 33 files changed, 38 insertions(+), 54 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f82b94a..384d2d96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv) # settings c++ standard for the framework -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # checking build type and setting up a variable diff --git a/include/vkcv/Buffer.hpp b/include/vkcv/Buffer.hpp index f5cd183d..99209306 100644 --- a/include/vkcv/Buffer.hpp +++ b/include/vkcv/Buffer.hpp @@ -16,7 +16,7 @@ namespace vkcv { friend class Core; public: // explicit destruction of default constructor - Buffer<T>() = delete; + Buffer() = delete; [[nodiscard]] const BufferHandle& getHandle() const { @@ -39,7 +39,7 @@ namespace vkcv { } [[nodiscard]] - const vk::Buffer getVulkanHandle() const { + vk::Buffer getVulkanHandle() const { return m_manager->getBuffer(m_handle); } @@ -67,7 +67,7 @@ namespace vkcv { const size_t m_count; const BufferMemoryType m_memoryType; - Buffer<T>(BufferManager* manager, BufferHandle handle, BufferType type, size_t count, BufferMemoryType memoryType) : + Buffer(BufferManager* manager, BufferHandle handle, BufferType type, size_t count, BufferMemoryType memoryType) : m_manager(manager), m_handle(handle), m_type(type), diff --git a/include/vkcv/Event.hpp b/include/vkcv/Event.hpp index 604e3a44..a17de572 100644 --- a/include/vkcv/Event.hpp +++ b/include/vkcv/Event.hpp @@ -3,7 +3,7 @@ #include <functional> #ifndef __MINGW32__ -#include <mutex> +#include <semaphore> #endif #include <vector> @@ -34,7 +34,7 @@ namespace vkcv { uint32_t m_id_counter; #ifndef __MINGW32__ - std::mutex m_mutex; + std::binary_semaphore m_semaphore; #endif public: @@ -84,7 +84,7 @@ namespace vkcv { */ void lock() { #ifndef __MINGW32__ - m_mutex.lock(); + m_semaphore.acquire(); #endif } @@ -93,15 +93,12 @@ namespace vkcv { */ void unlock() { #ifndef __MINGW32__ - m_mutex.unlock(); + m_semaphore.release(); #endif } - explicit event(bool locked = false) { - if (locked) { - lock(); - } - } + explicit event(bool locked = false) : + m_semaphore(locked? 1 : 0) {} event(const event &other) = delete; diff --git a/modules/asset_loader/CMakeLists.txt b/modules/asset_loader/CMakeLists.txt index 870c1627..151ae350 100644 --- a/modules/asset_loader/CMakeLists.txt +++ b/modules/asset_loader/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_asset_loader) # setting c++ standard for the module -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_asset_loader_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/camera/CMakeLists.txt b/modules/camera/CMakeLists.txt index 60cfca4c..55d29aab 100644 --- a/modules/camera/CMakeLists.txt +++ b/modules/camera/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_camera) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_camera_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/gui/CMakeLists.txt b/modules/gui/CMakeLists.txt index 3b5202cc..87724ff9 100644 --- a/modules/gui/CMakeLists.txt +++ b/modules/gui/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_gui) # setting c++ standard for the module -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_gui_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/material/CMakeLists.txt b/modules/material/CMakeLists.txt index ed380453..bbcb7c5a 100644 --- a/modules/material/CMakeLists.txt +++ b/modules/material/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_material) # setting c++ standard for the module -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_material_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/meshlet/CMakeLists.txt b/modules/meshlet/CMakeLists.txt index d576466d..05fdba47 100644 --- a/modules/meshlet/CMakeLists.txt +++ b/modules/meshlet/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_meshlet) # setting c++ standard for the module -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_meshlet_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/scene/CMakeLists.txt b/modules/scene/CMakeLists.txt index 5edf9a29..2d81fde8 100644 --- a/modules/scene/CMakeLists.txt +++ b/modules/scene/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_scene) # setting c++ standard for the module -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_scene_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/shader_compiler/CMakeLists.txt b/modules/shader_compiler/CMakeLists.txt index 11c1e460..a9181ccd 100644 --- a/modules/shader_compiler/CMakeLists.txt +++ b/modules/shader_compiler/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_shader_compiler) # setting c++ standard for the module -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_shader_compiler_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/testing/CMakeLists.txt b/modules/testing/CMakeLists.txt index a22e5476..26814f3a 100644 --- a/modules/testing/CMakeLists.txt +++ b/modules/testing/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_testing) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_testing_source ${PROJECT_SOURCE_DIR}/src) diff --git a/modules/upscaling/CMakeLists.txt b/modules/upscaling/CMakeLists.txt index 0767e5c4..dcab9629 100644 --- a/modules/upscaling/CMakeLists.txt +++ b/modules/upscaling/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(vkcv_upscaling) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(vkcv_upscaling_source ${PROJECT_SOURCE_DIR}/src) diff --git a/projects/bindless_textures/CMakeLists.txt b/projects/bindless_textures/CMakeLists.txt index 08cc636a..4fee4464 100644 --- a/projects/bindless_textures/CMakeLists.txt +++ b/projects/bindless_textures/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(bindless_textures) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/bindless_textures/src/main.cpp b/projects/bindless_textures/src/main.cpp index a2e9ff5e..555e3dc6 100644 --- a/projects/bindless_textures/src/main.cpp +++ b/projects/bindless_textures/src/main.cpp @@ -223,7 +223,7 @@ int main(int argc, const char** argv) { vkcv::camera::CameraManager cameraManager(core.getWindow(windowHandle)); uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); - uint32_t camIndex1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); + cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); cameraManager.getCamera(camIndex0).setPosition(glm::vec3(0, 0, -3)); diff --git a/projects/first_mesh/CMakeLists.txt b/projects/first_mesh/CMakeLists.txt index 6455e75d..345324ac 100644 --- a/projects/first_mesh/CMakeLists.txt +++ b/projects/first_mesh/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(first_mesh) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/first_scene/CMakeLists.txt b/projects/first_scene/CMakeLists.txt index 21d6857e..d55476f5 100644 --- a/projects/first_scene/CMakeLists.txt +++ b/projects/first_scene/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(first_scene) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/first_triangle/CMakeLists.txt b/projects/first_triangle/CMakeLists.txt index ba8c83c0..cf1fdb90 100644 --- a/projects/first_triangle/CMakeLists.txt +++ b/projects/first_triangle/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(first_triangle) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/indirect_dispatch/CMakeLists.txt b/projects/indirect_dispatch/CMakeLists.txt index 7bc86cbc..ac8501f1 100644 --- a/projects/indirect_dispatch/CMakeLists.txt +++ b/projects/indirect_dispatch/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(indirect_dispatch) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/indirect_draw/CMakeLists.txt b/projects/indirect_draw/CMakeLists.txt index a1bc8073..83119e02 100644 --- a/projects/indirect_draw/CMakeLists.txt +++ b/projects/indirect_draw/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(indirect_draw) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/mesh_shader/CMakeLists.txt b/projects/mesh_shader/CMakeLists.txt index 1aa5d5ff..9e132e55 100644 --- a/projects/mesh_shader/CMakeLists.txt +++ b/projects/mesh_shader/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(mesh_shader) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/particle_simulation/CMakeLists.txt b/projects/particle_simulation/CMakeLists.txt index 2a665202..41ce6ca2 100644 --- a/projects/particle_simulation/CMakeLists.txt +++ b/projects/particle_simulation/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(particle_simulation) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/path_tracer/CMakeLists.txt b/projects/path_tracer/CMakeLists.txt index 2b8edc20..b4ad74c3 100644 --- a/projects/path_tracer/CMakeLists.txt +++ b/projects/path_tracer/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(path_tracer) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/rtx_ambient_occlusion/CMakeLists.txt b/projects/rtx_ambient_occlusion/CMakeLists.txt index 414279c3..e7d9be98 100644 --- a/projects/rtx_ambient_occlusion/CMakeLists.txt +++ b/projects/rtx_ambient_occlusion/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(rtx_ambient_occlusion) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/rtx_ambient_occlusion/src/RTX/ASManager.cpp b/projects/rtx_ambient_occlusion/src/RTX/ASManager.cpp index c09e669d..186379a6 100644 --- a/projects/rtx_ambient_occlusion/src/RTX/ASManager.cpp +++ b/projects/rtx_ambient_occlusion/src/RTX/ASManager.cpp @@ -114,7 +114,7 @@ namespace vkcv::rtx { vk::PhysicalDeviceMemoryProperties physicalDeviceMemoryProperties = m_core->getContext().getPhysicalDevice().getMemoryProperties(); uint32_t memoryTypeIndex = -1; - for (int i = 0; i < physicalDeviceMemoryProperties.memoryTypeCount; i++) { + for (size_t i = 0; i < physicalDeviceMemoryProperties.memoryTypeCount; i++) { if ((memoryRequirements2.memoryRequirements.memoryTypeBits & (1 << i)) && (physicalDeviceMemoryProperties.memoryTypes[i].propertyFlags & buffer.memoryPropertyFlagBits) == buffer.memoryPropertyFlagBits) { memoryTypeIndex = i; diff --git a/projects/rtx_ambient_occlusion/src/RTX/ASManager.hpp b/projects/rtx_ambient_occlusion/src/RTX/ASManager.hpp index 42ef7fc0..9a137435 100644 --- a/projects/rtx_ambient_occlusion/src/RTX/ASManager.hpp +++ b/projects/rtx_ambient_occlusion/src/RTX/ASManager.hpp @@ -141,7 +141,7 @@ namespace vkcv::rtx { copyFromCPUToGPU(stagingBuffer, targetBuffer); return targetBuffer; - }; + } /** * @brief A helper function used by @#ASManager::makeBufferFromData. Creates a fully initialized @#RTXBuffer object diff --git a/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp b/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp index 59f3da21..00533bc3 100644 --- a/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp +++ b/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp @@ -50,7 +50,7 @@ namespace vkcv::rtx { m_shaderGroupBaseAlignment = rayTracingProperties.shaderGroupBaseAlignment; uint8_t* mapped = (uint8_t*) m_core->getContext().getDevice().mapMemory(m_shaderBindingTableBuffer.deviceMemory, 0, shaderBindingTableSize); - for (int i = 0; i < shaderCount; i++) { + for (size_t i = 0; i < shaderCount; i++) { memcpy(mapped, (uint8_t*)shaderHandleStorage + (i * rayTracingProperties.shaderGroupHandleSize), rayTracingProperties.shaderGroupHandleSize); mapped += m_shaderGroupBaseAlignment; } @@ -97,7 +97,6 @@ namespace vkcv::rtx { { //TLAS-Descriptor-Write TopLevelAccelerationStructure tlas = m_asManager->getTLAS(); - RTXBuffer tlasBuffer = tlas.tlasBuffer; vk::WriteDescriptorSetAccelerationStructureKHR AccelerationDescriptor = {}; AccelerationDescriptor.accelerationStructureCount = 1; const TopLevelAccelerationStructure constTLAS = tlas; diff --git a/projects/saf_r/CMakeLists.txt b/projects/saf_r/CMakeLists.txt index 61ede8ae..158bf7a9 100644 --- a/projects/saf_r/CMakeLists.txt +++ b/projects/saf_r/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(saf_r) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/saf_r/src/main.cpp b/projects/saf_r/src/main.cpp index 3fef073a..354ea7a6 100644 --- a/projects/saf_r/src/main.cpp +++ b/projects/saf_r/src/main.cpp @@ -150,9 +150,6 @@ int main(int argc, const char** argv) { vkcv::BufferDescriptorWrite(1,sphereBuffer.getHandle())}; core.writeDescriptorSet(computeDescriptorSet, computeWrites); - - const auto& context = core.getContext(); - auto safrIndexBuffer = core.createBuffer<uint16_t>(vkcv::BufferType::INDEX, 3, vkcv::BufferMemoryType::DEVICE_LOCAL); uint16_t indices[3] = { 0, 1, 2 }; safrIndexBuffer.fill(&indices[0], sizeof(indices)); diff --git a/projects/sph/CMakeLists.txt b/projects/sph/CMakeLists.txt index 592aa440..8be89e08 100644 --- a/projects/sph/CMakeLists.txt +++ b/projects/sph/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(sph) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/projects/sph/src/main.cpp b/projects/sph/src/main.cpp index 255fb0e7..616a8406 100644 --- a/projects/sph/src/main.cpp +++ b/projects/sph/src/main.cpp @@ -206,7 +206,6 @@ int main(int argc, const char **argv) { vkcv::DescriptorSetUsage descriptorUsage(0, core.getDescriptorSet(descriptorSet).vulkanHandle); auto pos = glm::vec2(0.f); - auto spawnPosition = glm::vec3(0.f); std::vector<vkcv::DrawcallInfo> drawcalls; drawcalls.push_back(vkcv::DrawcallInfo(renderMesh, {descriptorUsage}, numberParticles)); diff --git a/projects/voxelization/CMakeLists.txt b/projects/voxelization/CMakeLists.txt index d2f533b0..9597f949 100644 --- a/projects/voxelization/CMakeLists.txt +++ b/projects/voxelization/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(voxelization) # setting c++ standard for the project -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # this should fix the execution path to load local files from the project diff --git a/src/vkcv/DescriptorManager.cpp b/src/vkcv/DescriptorManager.cpp index f273e958..8343fde6 100644 --- a/src/vkcv/DescriptorManager.cpp +++ b/src/vkcv/DescriptorManager.cpp @@ -118,9 +118,7 @@ namespace vkcv uint32_t sumVariableDescriptorCounts = 0; for (auto bindingElem : setLayout.descriptorBindings) { - DescriptorBinding binding = bindingElem.second; - uint32_t bindingID = bindingElem.first; - + auto binding = bindingElem.second; if(binding.variableCount) sumVariableDescriptorCounts += binding.descriptorCount; } diff --git a/src/vkcv/Window.cpp b/src/vkcv/Window.cpp index 2b49ea32..f6f9aa69 100644 --- a/src/vkcv/Window.cpp +++ b/src/vkcv/Window.cpp @@ -58,7 +58,7 @@ namespace vkcv { static std::vector<GLFWwindow*> s_Windows; void Window_onGamepadEvent(int gamepadIndex) { - Window::getFocusedWindow().e_gamepad(gamepadIndex); + Window::getFocusedWindow().e_gamepad(gamepadIndex); } static GLFWwindow* createGLFWWindow(const char *windowTitle, int width, int height, bool resizable) { @@ -160,7 +160,6 @@ namespace vkcv { } void Window::pollEvents() { - for (auto glfwWindow : s_Windows) { auto window = static_cast<Window *>(glfwGetWindowUserPointer(glfwWindow)); @@ -175,11 +174,6 @@ namespace vkcv { glfwPollEvents(); - // fixes subtle mouse stutter, which is made visible by motion blur - // FIXME: proper solution - // probably caused by main thread locking events before glfw callbacks are executed - std::this_thread::sleep_for(std::chrono::milliseconds(1)); - for (int gamepadIndex = GLFW_JOYSTICK_1; gamepadIndex <= GLFW_JOYSTICK_LAST; gamepadIndex++) { if (glfwJoystickPresent(gamepadIndex)) { Window_onGamepadEvent(gamepadIndex); -- GitLab