Here is a diff
16,24c16,17
< static void Bink_DrawOverlays_Internal(FRHICommandListImmediate &RHICmdList, const UGameViewportClient* gameViewport) {
< if (!GEngine || !gameViewport || !gameViewport->Viewport) {
< return;
< }
<
< FVector2D screenSize;
< gameViewport->GetViewportSize(screenSize);
< const FTextureRHIRef &backbuffer = gameViewport->Viewport->GetRenderTargetTexture();
< if(!backbuffer.GetReference())
---
> static void Bink_DrawOverlays_Internal(FRHICommandListImmediate &RHICmdList, FTextureRHIRef BackBuffer, FVector2D ScreenSize) {
> if(!BackBuffer.GetReference())
30c23
< FrameInfo.screen_resource = backbuffer.GetReference();
---
> FrameInfo.screen_resource = BackBuffer.GetReference();
32,34c25,27
< FrameInfo.width = screenSize.X;
< FrameInfo.height = screenSize.Y;
< FrameInfo.sdr_or_hdr = backbuffer->GetFormat() == PF_A2B10G10R10 ? 1 : 0;
---
> FrameInfo.width = ScreenSize.X;
> FrameInfo.height = ScreenSize.Y;
> FrameInfo.sdr_or_hdr = BackBuffer->GetFormat() == PF_A2B10G10R10 ? 1 : 0;
43,44c36
< TWeakObjectPtr<UGameViewportClient> gameViewport = (GEngine != nullptr) ? GEngine->GameViewport : nullptr;
< if (!gameViewport.IsValid()) {
---
> if (!GEngine || !GEngine->GameViewport || !GEngine->GameViewport->Viewport) {
48c40,48
< ENQUEUE_RENDER_COMMAND(BinkOverlays)([gameViewport](FRHICommandListImmediate& RHICmdList)
---
> FVector2D ScreenSize;
> GEngine->GameViewport->GetViewportSize(ScreenSize);
> FTextureRHIRef BackBuffer = GEngine->GameViewport->Viewport->GetRenderTargetTexture();
>
> if (!BackBuffer.IsValid()) {
> return;
> }
>
> ENQUEUE_RENDER_COMMAND(BinkOverlays)([ScreenSize, BackBuffer](FRHICommandListImmediate& RHICmdList)
50,53c50
< if (gameViewport.IsValid())
< {
< Bink_DrawOverlays_Internal(RHICmdList, gameViewport.Get());
< }
---
> Bink_DrawOverlays_Internal(RHICmdList, BackBuffer, ScreenSize);