blob: 526a1de850373a357d6cd8830cafcb5b528d378c [file] [log] [blame]
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -06001//
2// File: vkPlatform.h
3//
4/*
5** Copyright (c) 2014 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 __VKPLATFORM_H__
29#define __VKPLATFORM_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 // Ensure we don't pick up min/max macros from Winddef.h
44 #define NOMINMAX
45
46 // On Windows, VKAPI should equate to the __stdcall convention
47 #define VKAPI __stdcall
48
49 // C99:
50#ifndef __cplusplus
51 #undef inline
52 #define inline __inline
53#endif // __cplusplus
54#elif defined(__GNUC__)
55 // On other platforms using GCC, VKAPI stays undefined
56 #define VKAPI
57#else
58 // Unsupported Platform!
59 #error "Unsupported OS Platform detected!"
60#endif
61
62#include <stddef.h>
63
64#if !defined(VK_NO_STDINT_H)
65 #if defined(_MSC_VER) && (_MSC_VER < 1600)
66 typedef signed __int8 int8_t;
67 typedef unsigned __int8 uint8_t;
68 typedef signed __int16 int16_t;
69 typedef unsigned __int16 uint16_t;
70 typedef signed __int32 int32_t;
71 typedef unsigned __int32 uint32_t;
72 typedef signed __int64 int64_t;
73 typedef unsigned __int64 uint64_t;
74 #else
75 #include <stdint.h>
76 #endif
77#endif // !defined(VK_NO_STDINT_H)
78
79typedef uint64_t VK_GPU_SIZE;
80typedef uint32_t bool32_t;
81
82typedef uint32_t VK_SAMPLE_MASK;
83typedef uint32_t VK_FLAGS;
84typedef int32_t VK_ENUM;
85
86#ifdef __cplusplus
87} // extern "C"
88#endif // __cplusplus
89
90#endif // __VKPLATFORM_H__