menu
 
버전
2024.1.5.8803

2024.1.5.8803

2023.1.13.8732

2022.1.19.8584

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624


menu_open
Wwise SDK 2024.1.5
AkPlatforms.h
이 파일의 문서화 페이지로 가기
1 /*******************************************************************************
2 The content of this file includes portions of the AUDIOKINETIC Wwise Technology
3 released in source code form as part of the SDK installer package.
4 
5 Commercial License Usage
6 
7 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology
8 may use this file in accordance with the end user license agreement provided
9 with the software or, alternatively, in accordance with the terms contained in a
10 written agreement between you and Audiokinetic Inc.
11 
12 Apache License Usage
13 
14 Alternatively, this file may be used under the Apache License, Version 2.0 (the
15 "Apache License"); you may not use this file except in compliance with the
16 Apache License. You may obtain a copy of the Apache License at
17 http://www.apache.org/licenses/LICENSE-2.0.
18 
19 Unless required by applicable law or agreed to in writing, software distributed
20 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
21 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for
22 the specific language governing permissions and limitations under the License.
23 
24  Copyright (c) 2025 Audiokinetic Inc.
25 *******************************************************************************/
26 
27 /// \file
28 /// Audiokinetic platform checks. This is where we detect which platform
29 /// is being compiled, and where we define the corresponding AK-specific
30 /// symbols.
31 
32 #pragma once
33 
34 #if defined( NN_NINTENDO_SDK )
35  #include "nn/nn_Platform.h"
36 #endif
37 
38 #if defined( AK_NULL_PLATFORM )
39  // AK_NULL_PLATFORM can be defined as a part of standing up a new platform in client code,
40  // which may not be fully supported by Wwise.
41  #include <AK/SoundEngine/Platforms/Generic/AkTypes.h>
42 
43 #elif defined( NN_BUILD_TARGET_PLATFORM_NX )
44 
46 
47 #elif defined( NN_BUILD_TARGET_PLATFORM_OUNCE )
48 
50 
51 #elif defined( _GAMING_XBOX )
52 
54 
55 #elif defined( _WIN32 ) || defined ( _WIN64 ) || defined( WINAPI_FAMILY )
56 
58 
59 #elif defined( __APPLE__ )
60 
62 
63 #elif defined( __ORBIS__ )
64 
66 
67 #elif defined(__HARMONY__)
68 
70 
71 #elif defined( __PROSPERO__ )
72 
74 
75 #elif defined( __ANDROID__ ) && !defined (AK_LINUX_AOSP)
76 
78 
79 #elif defined( __linux__ )
80 
82 
83 #elif defined( __EMSCRIPTEN__ )
84 
86 
87 #elif defined( __QNX__ )
88 
89  #include <AK/SoundEngine/Platforms/QNX/AkTypes.h>
90 
91 #elif defined(__has_include)
92 
93 // AkTypes included here should have internal guardrails to prevent processing if not applicable for current platform
94 
95 #else
96 
97  #error Unsupported platform, or platform-specific symbols not defined
98 
99 #endif
100 
101 #ifndef AK_ALIGN
102 #if defined(SWIG)
103 #define AK_ALIGN( _declaration_, _alignment_ ) _declaration_
104 #else
105 #if defined(_MSC_VER)
106 #define AK_ALIGN( _declaration_, _alignment_ ) __declspec( align( _alignment_ ) ) _declaration_
107 #else
108 #define AK_ALIGN( _declaration_, _alignment_ ) _declaration_ __attribute__( ( aligned( _alignment_ ) ) )
109 #endif // _MSC_VER
110 #endif // SWIG
111 #endif // AK_ALIGN
112 
113 #define AK_ALIGN_TO_NEXT_BOUNDARY( __num__, __boundary__ ) (((__num__) + ((__boundary__)-1)) & ~((__boundary__)-1))
114 #define AK_IS_POWER_OF_TWO(__num__) (((__num__) & ((__num__) - 1)) == 0)
115 
116 #if !defined(AK_ENDIANNESS_LITTLE) && !defined(AK_ENDIANNESS_BIG)
117 #define AK_ENDIANNESS_LITTLE
118 #endif
119 
120 /// AK_UNALIGNED refers to the __unaligned compilation flag available on some platforms. Note that so far, on the tested platform this should always be placed before the pointer symbol *.
121 #ifndef AK_UNALIGNED
122 #if defined(__GNUC__)
123 #define AK_UNALIGNED __attribute__((aligned(1)))
124 #elif defined(_MSC_VER) && !defined(AK_CPU_X86) // __unaligned not supported on 32-bit x86
125 #define AK_UNALIGNED __unaligned
126 #else
127 #define AK_UNALIGNED
128 #endif
129 #endif // AK_UNALIGNED
130 
131 #ifndef AK_SELECTANY
132 #if defined(__GNUC__)
133 #define AK_SELECTANY __attribute__((weak))
134 #elif defined(_MSC_VER)
135 #define AK_SELECTANY __declspec(selectany)
136 #else
137 #define AK_SELECTANY
138 #endif
139 #endif // AK_SELECTANY
140 
141 #if (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
142 #define AK_CPP17
143 #endif
144 
145 #if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L)
146 #define AK_CPP20
147 #endif
148 
149 #define AK_NODISCARD [[nodiscard]]
150 
151 #if defined(AK_CPU_X86_64) || defined(AK_CPU_ARM_64)
152 #define AK_POINTER_64
153 #endif // #if defined(AK_CPU_X86_64) || defined(AK_CPU_ARM_64)
154 
155 #if !defined(AK_UNUSEDVAR)
156 // use to mark variables as unused to avoid warnings
157 #define AK_UNUSEDVAR(x) ((void)(x))
158 #endif
159 
160 #if defined(AK_SUPPORT_THREADS)
161 #define AK_THREAD_LOCAL thread_local
162 #else
163 #define AK_THREAD_LOCAL
164 #endif
165 
166 // Helper macro to disable optimizations in a specific file (or part of a file)
167 // (no code using these macros should be checked in)
168 #if defined(__clang__)
169 #define AK_DISABLE_OPTIMIZATIONS _Pragma("clang optimize off")
170 #define AK_ENABLE_OPTIMIZATIONS _Pragma("clang optimize on")
171 #elif defined(__GNUC__)
172 #define AK_DISABLE_OPTIMIZATIONS _Pragma("GCC optimize (\"O0\")")
173 #define AK_ENABLE_OPTIMIZATIONS _Pragma("GCC optimize (\"O2\")")
174 #elif defined(_MSC_VER)
175 #define AK_DISABLE_OPTIMIZATIONS __pragma(optimize("", off))
176 #define AK_ENABLE_OPTIMIZATIONS __pragma(optimize("", on))
177 #endif

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요