vk_platform.h revision 1356b0d3179254a7a27e88abb2d2500385469f14
1// 2// File: vk_platform.h 3// 4/* 5** Copyright (c) 2014-2015 The Khronos Group Inc. 6** 7** Permission is hereby granted, free of charge, to any person obtaining a 8** copy of this software and/or associated documentation files (the 9** "Materials"), to deal in the Materials without restriction, including 10** without limitation the rights to use, copy, modify, merge, publish, 11** distribute, sublicense, and/or sell copies of the Materials, and to 12** permit persons to whom the Materials are furnished to do so, subject to 13** the following conditions: 14** 15** The above copyright notice and this permission notice shall be included 16** in all copies or substantial portions of the Materials. 17** 18** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 25*/ 26 27 28#ifndef __VK_PLATFORM_H__ 29#define __VK_PLATFORM_H__ 30 31#ifdef __cplusplus 32extern "C" 33{ 34#endif // __cplusplus 35 36/* 37*************************************************************************************************** 38* Platform-specific directives and type declarations 39*************************************************************************************************** 40*/ 41 42#if defined(_WIN32) 43 // On Windows, VKAPI should equate to the __stdcall convention 44 #define VKAPI __stdcall 45#elif defined(__GNUC__) 46 // On other platforms using GCC, VKAPI stays undefined 47 #define VKAPI 48#else 49 // Unsupported Platform! 50 #error "Unsupported OS Platform detected!" 51#endif 52 53#include <stddef.h> 54 55#if !defined(VK_NO_STDINT_H) 56 #if defined(_MSC_VER) && (_MSC_VER < 1600) 57 typedef signed __int8 int8_t; 58 typedef unsigned __int8 uint8_t; 59 typedef signed __int16 int16_t; 60 typedef unsigned __int16 uint16_t; 61 typedef signed __int32 int32_t; 62 typedef unsigned __int32 uint32_t; 63 typedef signed __int64 int64_t; 64 typedef unsigned __int64 uint64_t; 65 #else 66 #include <stdint.h> 67 #endif 68#endif // !defined(VK_NO_STDINT_H) 69 70#ifdef __cplusplus 71} // extern "C" 72#endif // __cplusplus 73 74// Platform-specific headers required by platform window system extensions. 75// These are enabled prior to #including "vulkan.h". The same enable then 76// controls inclusion of the extension interfaces in vulkan.h. 77 78#ifdef VK_USE_PLATFORM_ANDROID_KHR 79#include <android/native_window.h> 80#endif 81 82#ifdef VK_USE_PLATFORM_MIR_KHR 83#include <mir_toolkit/client_types.h> 84#endif 85 86#ifdef VK_USE_PLATFORM_WAYLAND_KHR 87#include <wayland-client.h> 88#endif 89 90#ifdef VK_USE_PLATFORM_WIN32_KHR 91#include <windows.h> 92#endif 93 94#ifdef VK_USE_PLATFORM_X11_KHR 95#include <X11/Xlib.h> 96#endif 97 98#ifdef VK_USE_PLATFORM_XCB_KHR 99#include <xcb/xcb.h> 100#endif 101 102#endif // __VK_PLATFORM_H__ 103