UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VulkanSwapChain.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 VulkanSwapChain.h: Vulkan viewport RHI definitions.
5=============================================================================*/
6
7#pragma once
8
9#include "Containers/Array.h"
10#include "VulkanConfiguration.h"
11#include "VulkanThirdParty.h"
12
13class FVulkanDevice;
14class FVulkanFence;
15class FVulkanQueue;
17class FVulkanTexture;
18class FVulkanView;
19enum EPixelFormat : uint8;
20
21
27
28
30{
34
35public:
38 uint32 Width, uint32 Height, bool bIsFullScreen,
41
43
44 // Has to be negative as we use this also on other callbacks as the acquired image index
45 enum class EStatus
46 {
47 Healthy = 0,
48 OutOfDate = -1,
49 SurfaceLost = -2,
50 };
52
53 void RenderThreadPacing();
54 inline int8 DoesLockToVsync() { return LockToVsync; }
55
57
58protected:
61
64
66
69 bool bInternalFullScreen = false;
70
71 void* WindowHandle = nullptr;
72
77
81
83
85#if VULKAN_USE_IMAGE_ACQUIRE_FENCES
87#endif
89
91
93
94
95 friend class FVulkanViewport;
96 friend class FVulkanQueue;
97};
98
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EPixelFormat
Definition PixelFormat.h:16
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition VulkanAndroidPlatform.h:52
Definition VulkanDevice.h:279
Definition VulkanSynchronization.h:17
Definition VulkanQueue.h:53
Definition VulkanSynchronization.h:127
Definition VulkanSwapChain.h:30
void * WindowHandle
Definition VulkanSwapChain.h:71
double RTPacingPreviousFrameCPUTime
Definition VulkanSwapChain.h:79
VkSurfaceTransformFlagBitsKHR GetCachedSurfaceTransform() const
Definition VulkanSwapChain.h:56
const VkInstance Instance
Definition VulkanSwapChain.h:59
double NextPresentTargetTime
Definition VulkanSwapChain.h:82
VkSurfaceKHR Surface
Definition VulkanSwapChain.h:62
EStatus
Definition VulkanSwapChain.h:46
VkSwapchainKHR SwapChain
Definition VulkanSwapChain.h:63
void RenderThreadPacing()
Definition VulkanSwapChain.cpp:774
uint32 NumAcquireCalls
Definition VulkanSwapChain.h:76
uint32 RTPacingSampleCount
Definition VulkanSwapChain.h:78
TArray< FVulkanSemaphore * > ImageAcquiredSemaphore
Definition VulkanSwapChain.h:84
const VkSurfaceTransformFlagBitsKHR PreTransform
Definition VulkanSwapChain.h:65
int8 LockToVsync
Definition VulkanSwapChain.h:88
bool bInternalFullScreen
Definition VulkanSwapChain.h:69
int8 DoesLockToVsync()
Definition VulkanSwapChain.h:54
uint32 InternalWidth
Definition VulkanSwapChain.h:67
FVulkanDevice & Device
Definition VulkanSwapChain.h:60
uint32 NumPresentCalls
Definition VulkanSwapChain.h:75
uint32 PresentID
Definition VulkanSwapChain.h:90
int32 CurrentImageIndex
Definition VulkanSwapChain.h:73
int32 SemaphoreIndex
Definition VulkanSwapChain.h:74
int32 AcquireImageIndex(FVulkanSemaphore **OutSemaphore)
Definition VulkanSwapChain.cpp:685
uint32 InternalHeight
Definition VulkanSwapChain.h:68
double RTPacingSampledDeltaTimeMS
Definition VulkanSwapChain.h:80
Definition VulkanResources.h:604
Definition VulkanResources.h:432
Definition VulkanViewport.h:44
Definition Array.h:670
Definition VulkanSwapChain.h:23
VkSurfaceKHR Surface
Definition VulkanSwapChain.h:25
VkSwapchainKHR SwapChain
Definition VulkanSwapChain.h:24