Index: third_party/vulkan/vk_platform.h |
diff --git a/third_party/vulkan/vk_platform.h b/third_party/vulkan/vk_platform.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a53e725a9a67850fc62edeff7a060ecf3d32295a |
--- /dev/null |
+++ b/third_party/vulkan/vk_platform.h |
@@ -0,0 +1,127 @@ |
+// |
+// File: vk_platform.h |
+// |
+/* |
+** Copyright (c) 2014-2015 The Khronos Group Inc. |
+** |
+** Permission is hereby granted, free of charge, to any person obtaining a |
+** copy of this software and/or associated documentation files (the |
+** "Materials"), to deal in the Materials without restriction, including |
+** without limitation the rights to use, copy, modify, merge, publish, |
+** distribute, sublicense, and/or sell copies of the Materials, and to |
+** permit persons to whom the Materials are 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 Materials. |
+** |
+** THE MATERIALS ARE 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 |
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
+*/ |
+ |
+ |
+#ifndef __VK_PLATFORM_H__ |
+#define __VK_PLATFORM_H__ |
+ |
+#ifdef __cplusplus |
+extern "C" |
+{ |
+#endif // __cplusplus |
+ |
+/* |
+*************************************************************************************************** |
+* Platform-specific directives and type declarations |
+*************************************************************************************************** |
+*/ |
+ |
+/* Platform-specific calling convention macros. |
+ * |
+ * Platforms should define these so that Vulkan clients call Vulkan commands |
+ * with the same calling conventions that the Vulkan implementation expects. |
+ * |
+ * VKAPI_ATTR - Placed before the return type in function declarations. |
+ * Useful for C++11 and GCC/Clang-style function attribute syntax. |
+ * VKAPI_CALL - Placed after the return type in function declarations. |
+ * Useful for MSVC-style calling convention syntax. |
+ * VKAPI_PTR - Placed between the '(' and '*' in function pointer types. |
+ * |
+ * Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void); |
+ * Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void); |
+ */ |
+#if defined(_WIN32) |
+ // On Windows, Vulkan commands use the stdcall convention |
+ #define VKAPI_ATTR |
+ #define VKAPI_CALL __stdcall |
+ #define VKAPI_PTR VKAPI_CALL |
+#elif defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__) |
+ // Android does not support Vulkan in native code using the "armeabi" ABI. |
+ #error "Vulkan requires the 'armeabi-v7a' or 'armeabi-v7a-hard' ABI on 32-bit ARM CPUs" |
+#elif defined(__ANDROID__) && defined(__ARM_ARCH_7A__) |
+ // On Android/ARMv7a, Vulkan functions use the armeabi-v7a-hard calling |
+ // convention, even if the application's native code is compiled with the |
+ // armeabi-v7a calling convention. |
+ #define VKAPI_ATTR __attribute__((pcs("aapcs-vfp"))) |
+ #define VKAPI_CALL |
+ #define VKAPI_PTR VKAPI_ATTR |
+#else |
+ // On other platforms, use the default calling convention |
+ #define VKAPI_ATTR |
+ #define VKAPI_CALL |
+ #define VKAPI_PTR |
+#endif |
+ |
+#include <stddef.h> |
+ |
+#if !defined(VK_NO_STDINT_H) |
+ #if defined(_MSC_VER) && (_MSC_VER < 1600) |
+ typedef signed __int8 int8_t; |
+ typedef unsigned __int8 uint8_t; |
+ typedef signed __int16 int16_t; |
+ typedef unsigned __int16 uint16_t; |
+ typedef signed __int32 int32_t; |
+ typedef unsigned __int32 uint32_t; |
+ typedef signed __int64 int64_t; |
+ typedef unsigned __int64 uint64_t; |
+ #else |
+ #include <stdint.h> |
+ #endif |
+#endif // !defined(VK_NO_STDINT_H) |
+ |
+#ifdef __cplusplus |
+} // extern "C" |
+#endif // __cplusplus |
+ |
+// Platform-specific headers required by platform window system extensions. |
+// These are enabled prior to #including "vulkan.h". The same enable then |
+// controls inclusion of the extension interfaces in vulkan.h. |
+ |
+#ifdef VK_USE_PLATFORM_ANDROID_KHR |
+#include <android/native_window.h> |
+#endif |
+ |
+#ifdef VK_USE_PLATFORM_MIR_KHR |
+#include <mir_toolkit/client_types.h> |
+#endif |
+ |
+#ifdef VK_USE_PLATFORM_WAYLAND_KHR |
+#include <wayland-client.h> |
+#endif |
+ |
+#ifdef VK_USE_PLATFORM_WIN32_KHR |
+#include <windows.h> |
+#endif |
+ |
+#ifdef VK_USE_PLATFORM_XLIB_KHR |
+#include <X11/Xlib.h> |
+#endif |
+ |
+#ifdef VK_USE_PLATFORM_XCB_KHR |
+#include <xcb/xcb.h> |
+#endif |
+ |
+#endif // __VK_PLATFORM_H__ |