Tested compiling fortnite, unrealeditor, lyra, qagame with non-unity/pch
#preflight 63635997876630122adeab9f
#rb none
[CL 22958990 by henrik karlsson in ue5-main branch]
Moved GetTypeHash function to be hidden friend instead of put directly in global namespace.
Note that the function/operator needs to be fully inlined in the type or placed in the cpp. If the function is added as friend but then implemented outside the type then hidden friend optimization won't work.
This should improve compile time somewhat according to msvc devs.
#rb Steve.Robb
#preflight 6360b7052b5338aceb26471b
[CL 22889837 by henrik karlsson in ue5-main branch]
- size rule auto and strech.
- max size.
Expose the size rule also in the ScrollBoxSlot for UMG.
tests:
-reverted some workaround in the code and used the new FillSize slot parameter with success.
-tested a lot of sub editors, as the code also impact vertical/horizontal box.
-created new UMG data in QAGame using the new attributes (will submit them soon), and used blueprint graph to change the size settings of a scrollbox slot.
#jira UE-161777
#rb patrick.boutot
#preflight 6360112be86070572fd89aae
[CL 22868510 by yohann dossantos in ue5-main branch]
[FYI] Steve.Robb
Original CL Desc
-----------------------------------------------------------------
TMap and TSet can now be declared as members with forward-declared key and value parameters.
KeyFuncs::KeyInitType and KeyFuncs::ElementInitType typedefs are no longer used and user-defined KeyFuncs do not need to provide them. Deprecated placeholders for these typedefs exist though they may not be defined exactly as they were before. A new KeyType typedef needs to be provided by custom KeyFuncs which don't already inherit from BaseKeyFuncs or TDefaultMapKeyFuncs.
KeyConstPointerType, KeyInitType, ValueInitType and ElementInitType typedefs have been deprecated across TMap, TSet and TSortedMap. Regular C++ parameter-passing semantics should be used instead (const T& Ref or T Value, depending on T).
Added missing FSetElementId::operator!=().
[FYI] steve.robb
#rb james.hopkin
[FYI] henrik.karlsson
#preflight 635a56c15d49a96f7b31938f
[CL 22850782 by graeme thornton in ue5-main branch]
This is required for c++ modules/header units in order to decide if constexpr/const value should be available to outside module
#preflight 635c0b5c1803be35c767e0ea
#rb none
[CL 22835882 by henrik karlsson in ue5-main branch]
KeyFuncs::KeyInitType and KeyFuncs::ElementInitType typedefs are no longer used and user-defined KeyFuncs do not need to provide them. Deprecated placeholders for these typedefs exist though they may not be defined exactly as they were before. A new KeyType typedef needs to be provided by custom KeyFuncs which don't already inherit from BaseKeyFuncs or TDefaultMapKeyFuncs.
KeyConstPointerType, KeyInitType, ValueInitType and ElementInitType typedefs have been deprecated across TMap, TSet and TSortedMap. Regular C++ parameter-passing semantics should be used instead (const T& Ref or T Value, depending on T).
Added missing FSetElementId::operator!=().
#rb james.hopkin
[FYI] henrik.karlsson
#preflight 635a56c15d49a96f7b31938f
[CL 22810695 by steve robb in ue5-main branch]
While before the change, a font was diplayed... temporarily (it would disappear if you started to play with the font settings and moved the object in the viewport).
A font will now be displayed as before, but will still disappear in the same condition, but it's not valid anyway to have no font, and soon (hopefully with 5.1) we will also assign a default font to avoid having this issue.
Tests: in the editor, opened in the UMG designer problematic assets (old misconfigured data, on which the deprecation code would be applyied, and validated that a font was used as before). Opened other assets without issue.
#jira UE-166794
#preflight 6345d0c88a0a7b2adc30951d
#rb vincent.gauthier
#lockdown jeanmichel.dignard
[CL 22478251 by yohann dossantos in ue5-main branch]
Only handling the display change event is not enough though: the DXGI factory might not be contain up-to-date display information in case it's not current anymore. In that case, we need to rely on a newly created factory, used exclusively to retrieve the display info
#rb mihnea.balta
#jira UE-161418
#preflight 633f1a2b62762f4a1b604f62
[CL 22425912 by benjamin rouveyrol in ue5-main branch]
Add various functions to use FLinearColor in addition to FColor
Add support for EXR on platforms supporting HDR, but not openexr. This is driven by WITH_UNREALEXR_MINIMAL: the screenshot will not be compressed, only writes are supported, only RGBA float32 is supported as input (FLinearColor), and output will be RGB float16.
The convention used is ScRGB, not BT2100-PQ to store the HDR data, since the viewers I tested with were expecting ScRGB .
tested (both png and exr):
Editor d3d11/d3d12: F9 / highresshot 2 / High Resolution Screenshot Tool w/ and w/o Custom Depth Mask, w/ and w/o Buffer attributes / Trace.Screenshot
Game: shot / shot -showui / highresshot 2 / BugScreenShot / BugScreenShotWithHUDInfo (but HandleBugScreenShot is empty) / Trace.Screenshot / Trace.Screenshot w/ ui
What doesn't work : ScreenshotCapturedDelegate.Broadcast in HDR
#jira UE-140227
#rb charles.bloom eric.renaudhoude david.harvey
#preflight 63359b01691c0168b74151f2
[CL 22327553 by benjamin rouveyrol in ue5-main branch]
It was the initial bug, but while looking at it, I noticed that the MultilineEditableTextBox was containing both a Font via FEditableTextBoxStyle, and another one via FTextBlockStyle, thus being error prone / inconsistent.
In order to fix the underlying issue (in addition to fix the initial bug), I removed the Font from FEditableTextBoxStyle, and moved the FTextBlockStyle from MultilineEditableTextBox to FEditableTextBoxStyle.
It solves the duplication issue and so make it clear where the Font should be set/read from.
However, as the text block style is now embedded in the editable text box style, it cannot be initialized the exact same way, and I had to do some changes to ensure there was no regression, by configuring various FEditableTextBoxStyle in some style files. I also change the default value for TextBlockStyle to better match our default theme.
-Default font is not set for text widgets.
EditableWidget: ensure to have a default font, and to set the style when calling SynchronizeProperties to ensure it reacts directly without having to force a refresh (by moving the widget for instance)
Bonus:
-Move to cpp some private methods that where 'forced' inline (and we were using function pointer on them). It will avoid some noise in public interface and speed up iteration / compile time when playing with them.
#jira UE-96464
#jira UE-137126
[RN] MultilineEditableTextBox was containing both a Font via FEditableTextBoxStyle, and another one via FTextBlockStyle, thus being error prone / inconsistent.The Font from FEditableTextBoxStyle has been removed, and the FTextBlockStyle moved from MultilineEditableTextBox to FEditableTextBoxStyle. It solves the duplication issue and so make it clear where the Font should be set/read from.
However, as the FTextBlockStyle is now embedded in the FEditableTextBoxStyle, it cannot be initialized the exact same way, and you can now configure the FTextBlockStyle of FEditableTextBoxStyle when creating one from scratch, by calling SetTextStyle on it.
Test
- created a Widget blueprint with different editable types combination: multiline or single line, box or no box.
-Validated that everything was reacting live as expected now.
-Created a blue print to set the text style and validated it was working.
-Create data with old version, then open it with updated version to validate that the visual was still the same and deprecation of style working as expected.
-checked different places in the editor using variation of editable text to ensure they were behaving as before (detail view, console command entry, comment on blueprint node).
#preflight 63344b9f110bb3721ef8aa77
[CL 22232366 by yohann dossantos in ue5-main branch]
#fyi benjamin.rouveyrol
Original CL Desc
-----------------------------------------------------------------
Add EXR support for screenshots
Add various functions to use FLinearColor in addition to FColor
Add support for EXR on platforms supporting HDR, but not openexr. This is driven by WITH_UNREALEXR_MINIMAL: the screenshot will not be compressed, only writes are supported, only RGBA float32 is supported as input (FLinearColor), and output will be RGB float16.
The convention used is ScRGB, not BT2100-PQ to store the HDR data, since the viewers I tested with were expecting ScRGB .
tested (both png and exr):
Editor d3d11/d3d12: F9 / highresshot 2 / High Resolution Screenshot Tool w/ and w/o Custom Depth Mask, w/ and w/o Buffer attributes / Trace.Screenshot
Game: shot / shot -showui / highresshot 2 / BugScreenShot / BugScreenShotWithHUDInfo (but HandleBugScreenShot is empty) / Trace.Screenshot / Trace.Screenshot w/ ui
What doesn't work : ScreenshotCapturedDelegate.Broadcast in HDR
#jira UE-140227
#rb charles.bloom eric.renaudhoude
#preflight 63316dbec7791417aa5e7d51 6331600c671a1a24b5fbb4b8 6332b5dda907d7192f1b2711
[CL 22205685 by benjamin rouveyrol in ue5-main branch]