Flutter Engine
The Flutter Engine
third_party
skia
include
third_party
vulkan
vulkan
vk_platform.h
Go to the documentation of this file.
1
//
2
// File: vk_platform.h
3
//
4
/*
5
** Copyright 2014-2023 The Khronos Group Inc.
6
**
7
** SPDX-License-Identifier: Apache-2.0
8
*/
9
10
11
#ifndef VK_PLATFORM_H_
12
#define VK_PLATFORM_H_
13
14
#ifdef __cplusplus
15
extern
"C"
16
{
17
#endif
// __cplusplus
18
19
/*
20
***************************************************************************************************
21
* Platform-specific directives and type declarations
22
***************************************************************************************************
23
*/
24
25
/* Platform-specific calling convention macros.
26
*
27
* Platforms should define these so that Vulkan clients call Vulkan commands
28
* with the same calling conventions that the Vulkan implementation expects.
29
*
30
* VKAPI_ATTR - Placed before the return type in function declarations.
31
* Useful for C++11 and GCC/Clang-style function attribute syntax.
32
* VKAPI_CALL - Placed after the return type in function declarations.
33
* Useful for MSVC-style calling convention syntax.
34
* VKAPI_PTR - Placed between the '(' and '*' in function pointer types.
35
*
36
* Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void);
37
* Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
38
*/
39
#if defined(_WIN32)
40
// On Windows, Vulkan commands use the stdcall convention
41
#define VKAPI_ATTR
42
#define VKAPI_CALL __stdcall
43
#define VKAPI_PTR VKAPI_CALL
44
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
45
#error "Vulkan is not supported for the 'armeabi' NDK ABI"
46
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
47
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
48
// calling convention, i.e. float parameters are passed in registers. This
49
// is true even if the rest of the application passes floats on the stack,
50
// as it does by default when compiling for the armeabi-v7a NDK ABI.
51
#define VKAPI_ATTR __attribute__((pcs("aapcs-vfp"
)))
52
#define VKAPI_CALL
53
#define VKAPI_PTR VKAPI_ATTR
54
#else
55
// On other platforms, use the default calling convention
56
#define VKAPI_ATTR
57
#define VKAPI_CALL
58
#define VKAPI_PTR
59
#endif
60
61
#if !defined(VK_NO_STDDEF_H)
62
#include <stddef.h>
63
#endif
// !defined(VK_NO_STDDEF_H)
64
65
#if !defined(VK_NO_STDINT_H)
66
#if defined(_MSC_VER) && (_MSC_VER < 1600)
67
typedef
signed
__int8 int8_t;
68
typedef
unsigned
__int8 uint8_t;
69
typedef
signed
__int16 int16_t;
70
typedef
unsigned
__int16 uint16_t;
71
typedef
signed
__int32 int32_t;
72
typedef
unsigned
__int32 uint32_t;
73
typedef
signed
__int64 int64_t;
74
typedef
unsigned
__int64 uint64_t;
75
#else
76
#include <stdint.h>
77
#endif
78
#endif
// !defined(VK_NO_STDINT_H)
79
80
#ifdef __cplusplus
81
}
// extern "C"
82
#endif
// __cplusplus
83
84
#endif
Generated on Sun Jun 23 2024 21:56:03 for Flutter Engine by
1.9.4