UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FrameProUE4.h
Go to the documentation of this file.
1/*
2 This software is provided 'as-is', without any express or implied warranty.
3 In no event will the author(s) be held liable for any damages arising from
4 the use of this software.
5
6 Permission is granted to anyone to use this software for any purpose, including
7 commercial applications, and to alter it and redistribute it freely, subject to
8 the following restrictions:
9
10 1. The origin of this software must not be misrepresented; you must not
11 claim that you wrote the original software. If you use this software
12 in a product, an acknowledgment in the product documentation would be
13 appreciated but is not required.
14 2. Altered source versions must be plainly marked as such, and must not be
15 misrepresented as being the original software.
16 3. This notice may not be removed or altered from any source distribution.
17
18 Author: Stewart Lynch
19 www.puredevsoftware.com
20 slynch@puredevsoftware.com
21
22 Add FramePro.cpp to your project to allow FramePro to communicate with your application.
23*/
24
25// HEADER_UNIT_SKIP - Not included directly
26
27//------------------------------------------------------------------------
28#include "FramePro.h" // HEADER_UNIT_IGNORE
29
30//------------------------------------------------------------------------
31// FRAMEPRO_PLATFORM_UE4
32//------------------------------------------------------------------------
33#if FRAMEPRO_ENABLED && FRAMEPRO_PLATFORM_UE4
34
35 #ifndef FRAMEPRO_UE4_INCLUDED
36 #define FRAMEPRO_UE4_INCLUDED
37
38 #include "CoreTypes.h"
39 #include "HAL/PlatformMisc.h"
40 #include "HAL/PlatformTime.h"
41
42 // this needs to be as fast as possible and inline
43 #define FRAMEPRO_GET_CLOCK_COUNT(time) time = FPlatformTime::Cycles64()
44
45 #undef FRAMEPRO_API
46 #define FRAMEPRO_API CORE_API
47
48 // Windows or Linux based platform
49//@EPIC begin - allow external definition + NDA platforms removed
50#if !defined(FRAMEPRO_WIN_BASED_PLATFORM)
51 #define FRAMEPRO_WIN_BASED_PLATFORM (PLATFORM_WINDOWS)
52#endif
53#if !defined(FRAMEPRO_LINUX_BASED_PLATFORM)
54 #define FRAMEPRO_LINUX_BASED_PLATFORM (!FRAMEPRO_WIN_BASED_PLATFORM)
55#endif
56//@EPIC: end
57
58 #define FRAMEPRO_USE_TLS_SLOTS 1
59
60 // Port
61#if !defined(FRAMEPRO_PORT) //@EPIC begin - allow external definition + XBOXONE removed
62 #define FRAMEPRO_PORT "8428"
63#endif //@EPIC: end
64
65 // x64 or x32
66 #define FRAMEPRO_X64 PLATFORM_64BITS
67
68 #define FRAMEPRO_MAX_PATH 260
69
70 #if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64) || defined(__WIN32__) || defined(__WINDOWS__)
71 #include <tchar.h>
72 #define FRAMEPRO_TCHAR TCHAR
73 #else
74 #define FRAMEPRO_TCHAR char
75 #endif
76
77 #if FRAMEPRO_LINUX_BASED_PLATFORM
78 #define MULTI_STATEMENT(s) do { s } while(false)
79 #else
80 #define MULTI_STATEMENT(s) do { s } while(true,false)
81 #endif
82
83 #if !defined(__clang__)
84 #define FRAMEPRO_FUNCTION_DEFINE_IS_STRING_LITERAL 1
85 #else
86 #define FRAMEPRO_FUNCTION_DEFINE_IS_STRING_LITERAL 0
87 #endif
88
89 #define FRAMEPRO_NO_INLINE FORCENOINLINE
90 #define FRAMEPRO_FORCE_INLINE FORCEINLINE
91
92 // convenience function that takes an FString and no callstacks bool
93 namespace FramePro { FRAMEPRO_API void StartRecording(const FString& filename, bool context_switches, int64 max_file_size); }
94
95 #define LIMIT_RECORDING_FILE_SIZE 0
96
97 #define FRAMEPRO_ALIGN_STRUCT(a) GCC_ALIGN(a)
98
99 #define FRAMEPRO_ENUMERATE_ALL_MODULES 0
100
101 #define FRAMEPRO_PS4_CONTEXT_SWITCH_RECORDING 0
102
103 #endif // #ifndef FRAMEPRO_UE4_INCLUDED
104
105//------------------------------------------------------------------------
106#endif // #if FRAMEPRO_PLATFORM_UE4
107
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition FramePro.h:208