UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FVulkanSwapChain Class Reference

#include <VulkanSwapChain.h>

Public Types

enum class  EStatus { Healthy = 0 , OutOfDate = -1 , SurfaceLost = -2 }
 

Public Member Functions

void Destroy (FVulkanSwapChainRecreateInfo *RecreateInfo)
 
EStatus Present (FVulkanQueue *PresentQueue, FVulkanSemaphore *BackBufferRenderingDoneSemaphore)
 
void RenderThreadPacing ()
 
int8 DoesLockToVsync ()
 
VkSurfaceTransformFlagBitsKHR GetCachedSurfaceTransform () const
 

Static Public Member Functions

static FVulkanSwapChainCreate (VkInstance InInstance, FVulkanDevice &Device, EPixelFormat &InOutPixelFormat, uint32 Width, uint32 Height, bool bIsFullScreen, uint32 *InOutDesiredNumBackBuffers, TArray< VkImage > &OutImages, int8 LockToVsync, FVulkanPlatformWindowContext &WindowContext, FVulkanSwapChainRecreateInfo *RecreateInfo)
 

Protected Member Functions

int32 AcquireImageIndex (FVulkanSemaphore **OutSemaphore)
 

Protected Attributes

const VkInstance Instance
 
FVulkanDeviceDevice
 
VkSurfaceKHR Surface = VK_NULL_HANDLE
 
VkSwapchainKHR SwapChain = VK_NULL_HANDLE
 
const VkSurfaceTransformFlagBitsKHR PreTransform
 
uint32 InternalWidth = 0
 
uint32 InternalHeight = 0
 
bool bInternalFullScreen = false
 
voidWindowHandle = nullptr
 
int32 CurrentImageIndex = -1
 
int32 SemaphoreIndex = 0
 
uint32 NumPresentCalls = 0
 
uint32 NumAcquireCalls = 0
 
uint32 RTPacingSampleCount = 0
 
double RTPacingPreviousFrameCPUTime = 0
 
double RTPacingSampledDeltaTimeMS = 0
 
double NextPresentTargetTime = 0
 
TArray< FVulkanSemaphore * > ImageAcquiredSemaphore
 
int8 LockToVsync = 0
 
uint32 PresentID = 0
 

Friends

class FVulkanViewport
 
class FVulkanQueue
 

Member Enumeration Documentation

◆ EStatus

Enumerator
Healthy 
OutOfDate 
SurfaceLost 

Member Function Documentation

◆ AcquireImageIndex()

int32 FVulkanSwapChain::AcquireImageIndex ( FVulkanSemaphore **  OutSemaphore)
protected

◆ Create()

FVulkanSwapChain * FVulkanSwapChain::Create ( VkInstance  InInstance,
FVulkanDevice Device,
EPixelFormat InOutPixelFormat,
uint32  Width,
uint32  Height,
bool  bIsFullScreen,
uint32 InOutDesiredNumBackBuffers,
TArray< VkImage > &  OutImages,
int8  LockToVsync,
FVulkanPlatformWindowContext WindowContext,
FVulkanSwapChainRecreateInfo RecreateInfo 
)
static

◆ Destroy()

void FVulkanSwapChain::Destroy ( FVulkanSwapChainRecreateInfo RecreateInfo)

◆ DoesLockToVsync()

int8 FVulkanSwapChain::DoesLockToVsync ( )
inline

◆ GetCachedSurfaceTransform()

VkSurfaceTransformFlagBitsKHR FVulkanSwapChain::GetCachedSurfaceTransform ( ) const
inline

◆ Present()

FVulkanSwapChain::EStatus FVulkanSwapChain::Present ( FVulkanQueue PresentQueue,
FVulkanSemaphore BackBufferRenderingDoneSemaphore 
)

◆ RenderThreadPacing()

void FVulkanSwapChain::RenderThreadPacing ( )

Friends And Related Symbol Documentation

◆ FVulkanQueue

friend class FVulkanQueue
friend

◆ FVulkanViewport

friend class FVulkanViewport
friend

Member Data Documentation

◆ bInternalFullScreen

bool FVulkanSwapChain::bInternalFullScreen = false
protected

◆ CurrentImageIndex

int32 FVulkanSwapChain::CurrentImageIndex = -1
protected

◆ Device

FVulkanDevice& FVulkanSwapChain::Device
protected

◆ ImageAcquiredSemaphore

TArray<FVulkanSemaphore*> FVulkanSwapChain::ImageAcquiredSemaphore
protected

◆ Instance

const VkInstance FVulkanSwapChain::Instance
protected

◆ InternalHeight

uint32 FVulkanSwapChain::InternalHeight = 0
protected

◆ InternalWidth

uint32 FVulkanSwapChain::InternalWidth = 0
protected

◆ LockToVsync

int8 FVulkanSwapChain::LockToVsync = 0
protected

◆ NextPresentTargetTime

double FVulkanSwapChain::NextPresentTargetTime = 0
protected

◆ NumAcquireCalls

uint32 FVulkanSwapChain::NumAcquireCalls = 0
protected

◆ NumPresentCalls

uint32 FVulkanSwapChain::NumPresentCalls = 0
protected

◆ PresentID

uint32 FVulkanSwapChain::PresentID = 0
protected

◆ PreTransform

const VkSurfaceTransformFlagBitsKHR FVulkanSwapChain::PreTransform
protected

◆ RTPacingPreviousFrameCPUTime

double FVulkanSwapChain::RTPacingPreviousFrameCPUTime = 0
protected

◆ RTPacingSampleCount

uint32 FVulkanSwapChain::RTPacingSampleCount = 0
protected

◆ RTPacingSampledDeltaTimeMS

double FVulkanSwapChain::RTPacingSampledDeltaTimeMS = 0
protected

◆ SemaphoreIndex

int32 FVulkanSwapChain::SemaphoreIndex = 0
protected

◆ Surface

VkSurfaceKHR FVulkanSwapChain::Surface = VK_NULL_HANDLE
protected

◆ SwapChain

VkSwapchainKHR FVulkanSwapChain::SwapChain = VK_NULL_HANDLE
protected

◆ WindowHandle

void* FVulkanSwapChain::WindowHandle = nullptr
protected

The documentation for this class was generated from the following files: