From: Cody Northrop Date: Tue, 11 Aug 2015 21:25:08 +0000 (-0600) Subject: v151: Bug 14386 - Change VK_NULL_HANDLE from a 0 to a nullptr X-Git-Tag: upstream/1.1.92~5040 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f9b1994c7940493b76ac7f6eb60361ae205f669;p=platform%2Fupstream%2FVulkan-Tools.git v151: Bug 14386 - Change VK_NULL_HANDLE from a 0 to a nullptr --- diff --git a/include/vulkan.h b/include/vulkan.h index d6670ce..ff575b3 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -41,7 +41,14 @@ extern "C" { ((major << 22) | (minor << 12) | patch) // Vulkan API version supported by this file -#define VK_API_VERSION VK_MAKE_VERSION(0, 150, 0) +#define VK_API_VERSION VK_MAKE_VERSION(0, 151, 0) + + +#if defined(__cplusplus) && (_MSC_VER >= 1800 || __cplusplus >= 201103L) + #define VK_NULL_HANDLE nullptr +#else + #define VK_NULL_HANDLE 0 +#endif #define VK_DEFINE_HANDLE(obj) typedef struct obj##_T* obj; @@ -56,13 +63,18 @@ extern "C" { // the object handle as a bool in expressions like: // if (obj) vkDestroy(obj); #define VK_NONDISP_HANDLE_OPERATOR_BOOL() explicit operator bool() const { return handle != 0; } + #define VK_NONDISP_HANDLE_CONSTRUCTOR_FROM_UINT64(obj) \ + explicit obj(uint64_t x) : handle(x) { } \ + obj(decltype(nullptr)) : handle(0) { } #else #define VK_NONDISP_HANDLE_OPERATOR_BOOL() + #define VK_NONDISP_HANDLE_CONSTRUCTOR_FROM_UINT64(obj) \ + obj(uint64_t x) : handle(x) { } #endif #define VK_DEFINE_NONDISP_HANDLE(obj) \ struct obj { \ obj() : handle(0) { } \ - obj(uint64_t x) : handle(x) { } \ + VK_NONDISP_HANDLE_CONSTRUCTOR_FROM_UINT64(obj) \ obj& operator =(uint64_t x) { handle = x; return *this; } \ bool operator==(const obj& other) const { return handle == other.handle; } \ bool operator!=(const obj& other) const { return handle != other.handle; } \ @@ -120,7 +132,6 @@ VK_DEFINE_NONDISP_HANDLE(VkCmdPool) #define VK_ATTACHMENT_UNUSED (~0U) #define VK_TRUE 1 #define VK_FALSE 0 -#define VK_NULL_HANDLE 0 #define VK_QUEUE_FAMILY_IGNORED (~0U) #define VK_MAX_PHYSICAL_DEVICE_NAME 256 #define VK_UUID_LENGTH 16