Description

In UGameViewportClient::ProcessScreenShots, when bHdrEnabled is true, the Bitmap array is never filled (the capture code uses BitmapHDR), so ScreenshotCapturedDelegate is never called for any custom logic when the viewport needs to be exported in HDR mode. This means the licensee's project cannot use ScreenshotCapturedDelegate to capture both LDR and HDR input. There is a proposed possible workaround in the linked ticket, but it would be good to rewrite this code to be more robust.

Steps to Reproduce

Steps to Reproduce

On a C++ project add and call the code below.

When using LDR the ensure always triggers

When screen is HDR callback is never called.

UGameViewportClient::OnScreenshotCaptured().AddLambda([](int32 InSizeX, int32 InSizeY, const TArray<FColor>& InImageData)  
{  
    ensureAlways(false);  
});  
FScreenshotRequest::RequestScreenshot(false);

For testing the fix, do the same but using the following code block:

UGameViewportClient::OnHDRScreenshotCaptured().AddLambda([](int32 InSizeX, int32 InSizeY, const TArray<FLinearColor>& InImageData)  
{  
	ensureAlways(false);

});
FScreenshotRequest::RequestScreenshot(false);

this should trigger the ensure.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-354875 in the post.

0
Login to Vote

Fixed
ComponentUE - Platform - Console
Affects Versions5.6
Target Fix5.8
Fix Commit50354727
CreatedNov 21, 2025
ResolvedJan 30, 2026
UpdatedFeb 6, 2026
View Jira Issue