이 파일의 문서화 페이지로 가기
33 #ifndef _AK_TOOLS_COMMON_AKPLATFORMFUNCS_H
34 #define _AK_TOOLS_COMMON_AKPLATFORMFUNCS_H
45 #elif defined (AK_XBOX)
46 #include <AK/Tools/XboxOne/AkPlatformFuncs.h>
48 #elif defined (AK_APPLE)
50 #include <AK/Tools/POSIX/AkPlatformFuncs.h>
52 #elif defined (AK_ANDROID)
55 #elif defined (AK_PS4)
58 #elif defined (AK_PELLEGRINO)
59 #include <AK/Tools/Pellegrino/AkPlatformFuncs.h>
61 #elif defined (AK_EMSCRIPTEN)
62 #include <AK/Tools/Emscripten/AkPlatformFuncs.h>
64 #elif defined (AK_LINUX)
67 #include <AK/Tools/GGP/AkPlatformFuncs.h>
70 #include <AK/Tools/POSIX/AkPlatformFuncs.h>
72 #elif defined (AK_QNX)
73 #include <AK/Tools/QNX/AkPlatformFuncs.h>
74 #include <AK/Tools/POSIX/AkPlatformFuncs.h>
80 #error AkPlatformFuncs.h: Undefined platform
83 #ifndef AkPrefetchZero
84 #define AkPrefetchZero(___Dest, ___Size)
87 #ifndef AkPrefetchZeroAligned
88 #define AkPrefetchZeroAligned(___Dest, ___Size)
91 #ifndef AkZeroMemAligned
92 #define AkZeroMemAligned(___Dest, ___Size) AKPLATFORM::AkMemSet(___Dest, 0, ___Size);
94 #ifndef AkZeroMemLarge
95 #define AkZeroMemLarge(___Dest, ___Size) AKPLATFORM::AkMemSet(___Dest, 0, ___Size);
97 #ifndef AkZeroMemSmall
98 #define AkZeroMemSmall(___Dest, ___Size) AKPLATFORM::AkMemSet(___Dest, 0, ___Size);
103 #if __has_builtin( __builtin_alloca_with_align )
104 #define AkAllocaSIMD( _size_ ) __builtin_alloca_with_align( _size_, 128 )
107 #define AkAllocaSIMD( _size_ ) (void*)( ( ( uintptr_t )AkAlloca( _size_ + 16 ) + 0xF ) & ~0xF )
110 #define AkAllocaSIMD( _size_ ) AkAlloca( _size_ )
114 #ifndef AK_THREAD_INIT_CODE
115 #define AK_THREAD_INIT_CODE(_threadProperties)
126 while( in_uWord ){ ++num; in_uWord &= in_uWord-1; }
140 #if defined _MSC_VER && defined AK_CPU_X86_64
143 unsigned long ret = 0;
144 _BitScanForward64(&ret, in_bits);
147 #elif __clang__ || defined __GNUG__
150 return __builtin_ctzll(in_bits);
155 unsigned long ret = 0;
158 while ((in_bits & 1ULL) == 0)
171 unsigned long ret = 0;
172 _BitScanForward(&ret, in_bits);
176 #elif __clang__ || defined __GNUG__
179 return __builtin_ctzl(in_bits);
184 unsigned long ret = 0;
187 while ((in_bits & 1ULL) == 0)
199 #ifndef AK_PERF_RECORDING_RESET
200 #define AK_PERF_RECORDING_RESET()
202 #ifndef AK_PERF_RECORDING_START
203 #define AK_PERF_RECORDING_START( __StorageName__, __uExecutionCountStart__, __uExecutionCountStop__ )
205 #ifndef AK_PERF_RECORDING_STOP
206 #define AK_PERF_RECORDING_STOP( __StorageName__, __uExecutionCountStart__, __uExecutionCountStop__ )
209 #ifndef AK_INSTRUMENT_BEGIN
210 #define AK_INSTRUMENT_BEGIN( _zone_name_ )
211 #define AK_INSTRUMENT_END( _zone_name_ )
212 #define AK_INSTRUMENT_SCOPE( _zone_name_ )
214 #define AK_INSTRUMENT_BEGIN_C(_colour_, _zone_name_ )
216 #define AK_INSTRUMENT_IDLE_BEGIN( _zone_name_ )
217 #define AK_INSTRUMENT_IDLE_END( _zone_name_ )
218 #define AK_INSTRUMENT_IDLE_SCOPE( _zone_name_ )
220 #define AK_INSTRUMENT_STALL_BEGIN( _zone_name_ )
221 #define AK_INSTRUMENT_STALL_END( _zone_name_ )
222 #define AK_INSTRUMENT_STALL_SCOPE( _zone_name_ )
224 #define AK_INSTRUMENT_THREAD_START( _thread_name_ )
227 #endif // _AK_TOOLS_COMMON_AKPLATFORMFUNCS_H
int nPriority
Thread priority
AkForceInline AkUInt32 AkBitScanForward64(unsigned long long in_bits)
AkForceInline void AkGetDefaultThreadProperties(AkThreadProperties &out_threadProperties)
Platform Independent Helper
void AkGetDefaultHighPriorityThreadProperties(AkThreadProperties &out_threadProperties)
AkForceInline AkUInt32 GetNumNonZeroBits(AkUInt32 in_uWord)
AkForceInline AkUInt32 AkBitScanForward(unsigned long in_bits)
지원이 필요하신가요?
질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!
지원 페이지를 방문해 주세요
작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요