| // | |
| // Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved. | |
| // | |
| // Permission is hereby granted, free of charge, to any person obtaining a copy | |
| // of this software and associated documentation files (the "Software"), to deal | |
| // in the Software without restriction, including without limitation the rights | |
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| // copies of the Software, and to permit persons to whom the Software is | |
| // furnished to do so, subject to the following conditions: | |
| // | |
| // The above copyright notice and this permission notice shall be included in | |
| // all copies or substantial portions of the Software. | |
| // | |
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
| // THE SOFTWARE. | |
| // | |
| #ifndef VMA_USAGE_H_ | |
| #define VMA_USAGE_H_ | |
| #ifdef _WIN32 | |
| #define NOMINMAX | |
| #define WIN32_LEAN_AND_MEAN | |
| #include <Windows.h> | |
| #define VK_USE_PLATFORM_WIN32_KHR | |
| // Uncomment to test including `vulkan.h` on your own before including VMA. | |
| //#include <vulkan/vulkan.h> | |
| /* | |
| In every place where you want to use Vulkan Memory Allocator, define appropriate | |
| macros if you want to configure the library and then include its header to | |
| include all public interface declarations. Example: | |
| */ | |
| //#define VMA_HEAVY_ASSERT(expr) assert(expr) | |
| //#define VMA_USE_STL_CONTAINERS 1 | |
| //#define VMA_DEDICATED_ALLOCATION 0 | |
| //#define VMA_DEBUG_MARGIN 16 | |
| //#define VMA_DEBUG_DETECT_CORRUPTION 1 | |
| //#define VMA_DEBUG_INITIALIZE_ALLOCATIONS 1 | |
| //#define VMA_RECORDING_ENABLED 1 | |
| //#define VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY 256 | |
| //#define VMA_USE_STL_SHARED_MUTEX 0 | |
| //#define VMA_DEBUG_GLOBAL_MUTEX 1 | |
| /* | |
| #define VMA_DEBUG_LOG(format, ...) do { \ | |
| printf(format, __VA_ARGS__); \ | |
| printf("\n"); \ | |
| } while(false) | |
| */ | |
| #pragma warning(push, 4) | |
| #pragma warning(disable: 4127) // conditional expression is constant | |
| #pragma warning(disable: 4100) // unreferenced formal parameter | |
| #pragma warning(disable: 4189) // local variable is initialized but not referenced | |
| #pragma warning(disable: 4324) // structure was padded due to alignment specifier | |
| #include "vk_mem_alloc.h" | |
| #pragma warning(pop) | |
| #else // #ifdef _WIN32 | |
| #ifdef __clang__ | |
| #pragma clang diagnostic push | |
| #pragma clang diagnostic ignored "-Wtautological-compare" // comparison of unsigned expression < 0 is always false | |
| #endif | |
| #include <vulkan/vulkan.h> | |
| #include "vk_mem_alloc.h" | |
| #ifdef __clang__ | |
| #pragma clang diagnostic pop | |
| #endif | |
| #endif // #ifdef _WIN32 | |
| #endif |