xref: /aosp_15_r20/external/angle/src/common/apple/apple_platform.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2021 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // apple_platform.h: Apple operating system specific includes and defines.
7 //
8 
9 #ifndef COMMON_APPLE_PLATFORM_H_
10 #define COMMON_APPLE_PLATFORM_H_
11 
12 #import "common/platform.h"
13 
14 #if ((ANGLE_PLATFORM_MACOS && __MAC_OS_X_VERSION_MIN_REQUIRED >= 120000) ||   \
15      (((ANGLE_PLATFORM_IOS_FAMILY && !ANGLE_PLATFORM_IOS_FAMILY_SIMULATOR) || \
16        ANGLE_PLATFORM_MACCATALYST) &&                                         \
17       __IPHONE_OS_VERSION_MIN_REQUIRED >= 150000) ||                          \
18      (ANGLE_PLATFORM_WATCHOS && !ANGLE_PLATFORM_IOS_FAMILY_SIMULATOR &&       \
19       __WATCH_OS_VERSION_MIN_REQUIRED >= 80000) ||                            \
20      (TARGET_OS_TV && !ANGLE_PLATFORM_IOS_FAMILY_SIMULATOR &&                 \
21       __TV_OS_VERSION_MIN_REQUIRED >= 150000)) &&                             \
22     (defined(__has_include) && __has_include(<Metal/MTLResource_Private.h>))
23 #    define ANGLE_HAVE_MTLRESOURCE_SET_OWNERSHIP_IDENTITY 1
24 #else
25 #    define ANGLE_HAVE_MTLRESOURCE_SET_OWNERSHIP_IDENTITY 0
26 #endif
27 
28 #if (ANGLE_HAVE_MTLRESOURCE_SET_OWNERSHIP_IDENTITY && \
29      defined(ANGLE_ENABLE_METAL_OWNERSHIP_IDENTITY))
30 #    define ANGLE_USE_METAL_OWNERSHIP_IDENTITY 1
31 #else
32 #    define ANGLE_USE_METAL_OWNERSHIP_IDENTITY 0
33 #endif
34 
35 #endif /* COMMON_APPLE_PLATFORM_H_ */
36