| 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__
|
|
|