blob: 969e532e86da5cac0598e13ad31a2e0b187786cb [file] [log] [blame]
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -06001//
Courtney Goeltzenleuchter2040b432015-04-09 11:52:55 -06002// File: vk_platform.h
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -06003//
4/*
Mike Stroyan230e6252015-04-17 12:36:38 -06005** Copyright (c) 2014-2015 The Khronos Group Inc.
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -06006**
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
Courtney Goeltzenleuchter2040b432015-04-09 11:52:55 -060028#ifndef __VK_PLATFORM_H__
29#define __VK_PLATFORM_H__
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -060030
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)
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -060043 // On Windows, VKAPI should equate to the __stdcall convention
44 #define VKAPI __stdcall
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -060045#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
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -060070#ifdef __cplusplus
71} // extern "C"
72#endif // __cplusplus
73
Courtney Goeltzenleuchter2040b432015-04-09 11:52:55 -060074#endif // __VK_PLATFORM_H__