The upgraded tools are:
FLandscapeToolSculpt
FLandscapeToolSmooth
FLandscapeToolFlatten
FLandscapeToolRamp
FLandscapeToolErosion
FLandscapeToolHydraErosion
The helper class FLandscapeLayerDataCache was fully upgraded to use explicit local edit layers (all tools that made use of it were upgraded, so no need for back compat).
For the tools, I decided to pass down the explicit edit layer via a "SetEditingLayer()" function -- legacy tools simply ignore that function call and continue to use the landscape shared state,
and upgraded tools will use it to set up the layer they should work in.
#rb jonathan.bard
#jira UE-133198
#preflight 63fe67b630633435f8b0e646
[CL 24472138 by chris tchou in ue5-main branch]
* Also factorized lots of redundant code in landscape for accessing weightmap/heightmap data
#rb don.boogert
#preflight 63f8b80aa134e0b05998c7a3
[CL 24403600 by jonathan bard in ue5-main branch]
* Deprecate Render method for BP Brushes, RenderLayer should now be used
* Adds FLandscapeBrushParameters struct that should be used to pass arguments when rendering a layer
* Modifies ELandscapeToolTargetType to be an enum class, usable by blueprints
* Adds BP Brush visibility layer toggle in Landscape Editor
* Adds visibility layer editing for LandscapeCircleHeightPatches
* Adds visibility layer editing for LandscapeTexturePatches
* Adds helper method to determine if a layer info object name is a visibility layer
#jira UE-163386
#rb Jonathan.Bard
#preflight 63ebb119e92f139c51b2a842
[CL 24251734 by luc eygasier in ue5-main branch]
* Fixed important slowdown when using a landscape brush with a large radius : sphere sweeps perform very poorly on landscapes with high resolutions. Replaced with a bounded series of concentric raycasts (hundreds of ms -> 1 or less ms in the worse case) and adjusted hit point extrapolation in order to be more consistent
#rb don.boogert
#preflight 63e2b3cdc11233cdcaa71747
[CL 24094412 by jonathan bard in ue5-main branch]
* The brushes becomes red and non-interactive when the alpha brush is invalid
* Setting an invalid alpha brush (e.g. a cooked texture in a cooked editor or a virtualized texture with invalid virtualization settings such that the texture source cannot be retrieved) is not crashing the UI anymore and will show as empty in the UI (+ a log error will be done)
* The brushes now support the same failure conditions as the normal brush (unloaded components, etc.)
* The alpha brush textures now supports all texture formats and will be linearized if necessary when reading the texture data
* The alpha brush texture channel is auto-corrected if one uses an invalid channel (e.g. Green on a G8 texture)
#rb luc.eygasier
#preflight 63ca08acd368fed9e5f22517
[CL 23815938 by jonathan bard in ue5-main branch]