Skip to content
Snippets Groups Projects
Commit 7d636b62 authored by Josch Morgenstern's avatar Josch Morgenstern
Browse files

Merge branch '93-mingw-corrections-for-the-hacks' into 'develop'

Resolve "MinGW corrections for the hacks"

Closes #93

See merge request !80
parents affd25d2 9a2e2ecc
No related branches found
No related tags found
1 merge request!80Resolve "MinGW corrections for the hacks"
Pipeline #26439 passed
......@@ -3,5 +3,56 @@
#define _DEBUG
#endif
#ifndef _MSVC_LANG
#ifdef __MINGW32__
#include <stdint.h>
#include <stdlib.h>
class VmaMutex {
public:
VmaMutex() : m_locked(false) {}
void Lock() {
while (m_locked);
m_locked = true;
}
void Unlock() {
m_locked = false;
}
private:
bool m_locked;
};
#define VMA_MUTEX VmaMutex
template <typename T>
T* custom_overestimate_malloc(size_t size) {
return new T[size + (sizeof(T) - 1) / sizeof(T)];
}
void* custom_aligned_malloc(size_t alignment, size_t size) {
if (alignment > 4) {
return custom_overestimate_malloc<uint64_t>(size);
} else
if (alignment > 2) {
return custom_overestimate_malloc<uint32_t>(size);
} else
if (alignment > 1) {
return custom_overestimate_malloc<uint16_t>(size);
} else {
return custom_overestimate_malloc<uint8_t>(size);
}
}
void custom_free(void *ptr) {
delete[] reinterpret_cast<uint8_t*>(ptr);
}
#define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) (custom_aligned_malloc(alignment, size))
#define VMA_SYSTEM_FREE(ptr) (custom_free(ptr))
#endif
#endif
#define VMA_IMPLEMENTATION
#include "vk_mem_alloc.hpp"
#pragma once
#include <functional>
#ifndef __MINGW32__
#include <mutex>
#endif
namespace vkcv {
......@@ -27,7 +30,10 @@ namespace vkcv {
private:
std::vector< event_function<T...> > m_functions;
uint32_t m_id_counter;
#ifndef __MINGW32__
std::mutex m_mutex;
#endif
public:
......@@ -75,14 +81,18 @@ namespace vkcv {
* locks the event so its function handles won't be called
*/
void lock() {
#ifndef __MINGW32__
m_mutex.lock();
#endif
}
/**
* unlocks the event so its function handles can be called after locking
*/
void unlock() {
#ifndef __MINGW32__
m_mutex.unlock();
#endif
}
explicit event(bool locked = false) {
......
Subproject commit eae6e8d3bd4593e0d7071c85fba2a8f33fbe5dab
Subproject commit 3a61240a5354ce56c222969a69825aabb6ba0a21
......@@ -4,18 +4,20 @@ find_package(glm QUIET)
if (glm_FOUND)
list(APPEND vkcv_camera_includes ${GLM_INCLUDE_DIRS})
list(APPEND vkcv_camera_libraries glm)
list(APPEND vkcv_camera_definitions GLM_DEPTH_ZERO_TO_ONE)
list(APPEND vkcv_camera_definitions GLM_FORCE_LEFT_HANDED)
else()
if (EXISTS "${vkcv_camera_lib_path}/glm")
add_subdirectory(${vkcv_camera_lib}/glm)
list(APPEND vkcv_camera_includes ${vkcv_camera_lib_path}/glm)
list(APPEND vkcv_camera_libraries glm)
list(APPEND vkcv_camera_definitions GLM_DEPTH_ZERO_TO_ONE)
list(APPEND vkcv_camera_definitions GLM_FORCE_LEFT_HANDED)
else()
message(WARNING "GLM is required..! Update the submodules!")
endif ()
endif ()
list(APPEND vkcv_camera_definitions GLM_DEPTH_ZERO_TO_ONE)
list(APPEND vkcv_camera_definitions GLM_FORCE_LEFT_HANDED)
if ((WIN32) AND (${CMAKE_SIZEOF_VOID_P} MATCHES 4))
list(APPEND vkcv_camera_definitions GLM_ENABLE_EXPERIMENTAL)
endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment