9#if defined(__INTEL_LLVM_COMPILER)
11#elif defined(__clang__)
18 #error "Windows Vista and earlier are no longer supported"
21#ifndef PLATFORM_COMPILER_CLANG
23#define PLATFORM_COMPILER_CLANG 1
25#define PLATFORM_COMPILER_CLANG 0
52#define PLATFORM_DESKTOP 1
54 #define PLATFORM_64BITS 1
56 #define PLATFORM_64BITS 0
58#if defined( _MANAGED ) || defined( _M_CEE )
59 #define PLATFORM_COMPILER_COMMON_LANGUAGE_RUNTIME_COMPILATION 1
61#define PLATFORM_CAN_SUPPORT_EDITORONLY_DATA 1
65#define PLATFORM_LITTLE_ENDIAN 1
66#define PLATFORM_SUPPORTS_UNALIGNED_LOADS 1
67#define PLATFORM_SUPPORTS_FLIP_TRACKING 1
69#define PLATFORM_SUPPORTS_PRAGMA_PACK 1
70#if (defined(__arm__) || defined(_M_ARM) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC))
71 #define PLATFORM_CPU_ARM_FAMILY 1
72 #define PLATFORM_ENABLE_VECTORINTRINSICS_NEON 1
73 #define PLATFORM_ENABLE_VECTORINTRINSICS 1
74#elif (defined(_M_IX86) || defined(_M_X64))
75 #define PLATFORM_CPU_ARM_FAMILY 0
76 #define PLATFORM_CPU_X86_FAMILY 1
77 #define PLATFORM_ENABLE_VECTORINTRINSICS 1
81#ifndef PLATFORM_ALWAYS_HAS_FMA3
82 #define PLATFORM_ALWAYS_HAS_FMA3 0
85#define PLATFORM_USE_LS_SPEC_FOR_WIDECHAR 0
88#define PLATFORM_HAS_BSD_TIME 0
89#define PLATFORM_USE_PTHREADS 0
90#define PLATFORM_USES_UNFAIR_LOCKS 1
91#define PLATFORM_MAX_FILEPATH_LENGTH_DEPRECATED WINDOWS_MAX_PATH
92#define PLATFORM_HAS_BSD_IPV6_SOCKETS 1
93#define PLATFORM_HAS_BSD_SOCKET_FEATURE_WINSOCKETS 1
94#define PLATFORM_USES_MICROSOFT_LIBC_FUNCTIONS 1
95#define PLATFORM_IS_ANSI_MALLOC_THREADSAFE 1
96#define PLATFORM_SUPPORTS_ASYMMETRIC_FENCES 1
98#define PLATFORM_SUPPORTS_TBB 1
99#define PLATFORM_SUPPORTS_MIMALLOC PLATFORM_64BITS
100#define PLATFORM_SUPPORTS_NAMED_PIPES 1
101#define PLATFORM_COMPILER_HAS_TCHAR_WMAIN 1
102#define PLATFORM_SUPPORTS_EARLY_MOVIE_PLAYBACK (!WITH_EDITOR)
103#define PLATFORM_USE_GENERIC_STRING_IMPLEMENTATION 0
104#define PLATFORM_SUPPORTS_VARIABLE_RATE_SHADING 1
105#define PLATFORM_SUPPORTS_MESH_SHADERS 1
106#define PLATFORM_SUPPORTS_WORKGRAPH_SHADERS 1
107#define PLATFORM_SUPPORTS_BINDLESS_RENDERING 1
108#define PLATFORM_USES__ALIGNED_MALLOC 1
111#define PLATFORM_FILE_READER_BUFFER_SIZE (256*1024)
114#define PLATFORM_SUPPORTS_STACK_SYMBOLS 1
116#define PLATFORM_GLOBAL_LOG_CATEGORY LogWindows
118#define PLATFORM_SUPPORTS_BORDERLESS_WINDOW 1
120#if defined(__clang__)
121#define PLATFORM_RETURN_ADDRESS_FOR_CALLSTACKTRACING PLATFORM_RETURN_ADDRESS
122#define PLATFORM_USE_CALLSTACK_ADDRESS_POINTER 0
124#define PLATFORM_RETURN_ADDRESS_FOR_CALLSTACKTRACING PLATFORM_RETURN_ADDRESS_POINTER
125#define PLATFORM_USE_CALLSTACK_ADDRESS_POINTER 1
128#define WINDOWS_USE_FEATURE_APPLICATIONMISC_CLASS 1
129#define WINDOWS_USE_FEATURE_PLATFORMMISC_CLASS 1
130#define WINDOWS_USE_FEATURE_PLATFORMHTTP_CLASS 1
139#define PLATFORM_BREAK() (__nop(), __debugbreak())
140#define PLATFORM_BREAK_IS_EXPRESSION 1
144#define PLATFORM_HAS_128BIT_ATOMICS (PLATFORM_64BITS && (WINVER >= 0x602))
151#define VARARGS __cdecl
153#define STDCALL __stdcall
154#define FORCEINLINE __forceinline
155#define FORCENOINLINE __declspec(noinline)
158#ifndef FUNCTION_NON_NULL_RETURN_START
159#define FUNCTION_NON_NULL_RETURN_START _Ret_notnull_
162#define DECLARE_UINT64(x) x
165#if !defined(__clang__)
166 #define PRAGMA_DISABLE_OPTIMIZATION_ACTUAL __pragma(optimize("",off))
167 #define PRAGMA_ENABLE_OPTIMIZATION_ACTUAL __pragma(optimize("",on))
168#elif defined(_MSC_VER)
169 #define PRAGMA_DISABLE_OPTIMIZATION_ACTUAL __pragma(clang optimize off)
170 #define PRAGMA_ENABLE_OPTIMIZATION_ACTUAL __pragma(clang optimize on)
173#if !defined(__clang__)
174 #define PLATFORM_EMPTY_BASES __declspec(empty_bases)
178#define PLATFORM_CODE_SECTION(Name) __declspec(code_seg(Name))
181#if !defined(__clang__)
182 #define TYPENAME_OUTSIDE_TEMPLATE
185#pragma warning(disable : 4481)
187#define ABSTRACT abstract
190#define LINE_TERMINATOR TEXT("\r\n")
191#define LINE_TERMINATOR_ANSI "\r\n"
194#if defined(__clang__)
195 #define GCC_PACK(n) __attribute__((packed,aligned(n)))
196 #define GCC_ALIGN(n) __attribute__((aligned(n)))
197 #if defined(_MSC_VER)
198 #define MS_ALIGN(n) __declspec(align(n))
201 #define MS_ALIGN(n) __declspec(align(n))
205#if !defined(__clang__)
206 #define MSVC_PRAGMA(Pragma) __pragma(Pragma)
210#define PLATFORM_CACHE_LINE_SIZE 64
213#define DLLEXPORT __declspec(dllexport)
214#define DLLIMPORT __declspec(dllimport)
217#pragma warning(disable : 4100)
221#if PLATFORM_COMPILER_CLANG
223#elif PLATFORM_WINDOWS
228#ifndef ENABLE_WIN_ALLOC_TRACKING
229#define ENABLE_WIN_ALLOC_TRACKING 0
233#ifndef WINDOWS_LOWINTEGRITYLEVEL_EXPECT_DEFAULT
234#define WINDOWS_LOWINTEGRITYLEVEL_EXPECT_DEFAULT 0
239#ifndef WINDOWS_LOWINTEGRITYLEVEL_AUTOMIGRATE_USERDATA
240#define WINDOWS_LOWINTEGRITYLEVEL_AUTOMIGRATE_USERDATA 0
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127