Requiring the use of a separate reader type makes it more likely that readers will be reused, and makes it easier to audit reader usage going forward. Reusing readers is desirable to reduce the number of large temporary allocations made during partial decompression of a buffer.
- Added FCompressedBuffer::Save(FArchive&) and renamed FromCompressed(FArchive&) to Load(FArchive&).
- Added FCompressedBufferReaderSourceScope to set a buffer source within a scope.
- Added proper bounds checks to FNoneDecoder.
- Store the header checksum on the decoder context to allow raw blocks to be reused across sources.
- Decode the header on the fly to avoid a temporary header allocation when the header is in contiguous memory.
#rb Zousar.Shaker
#rnx
#preflight 61a98d53800738dbfbc84c73
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18382211 in //UE5/Release-5.0/... via CL 18382310
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18382377 by devin doucette in ue5-release-engine-test branch]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
because UnrealPak as a program can't read project config hierarchy
#rb dan.thompson,josh.adams
#ROBOMERGE-AUTHOR: charles.bloom
#ROBOMERGE-SOURCE: CL 17464507 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17464538 by charles bloom in ue5-release-engine-test branch]
Clarify interface to Oodle compressed array functions
Add support for >2gb buffers
#preflight 6109e3ff4cd793000191470d
#rb charles.bloom
#ROBOMERGE-SOURCE: CL 17075612 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17075735 by dan thompson in ue5-release-engine-test branch]
v2 header tag to indicate format is serialized in data
writes new data, continues to load old data
#rb devin.doucette
#ROBOMERGE-SOURCE: CL 17017219 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17017233 by charles bloom in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 16941086 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16941090 by dan thompson in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 16932166 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16932178 by dan thompson in ue5-release-engine-test branch]
instead of the game.ini of the platform you are packaging for
#rb none
#ROBOMERGE-SOURCE: CL 16900626 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16900642 by charles bloom in ue5-release-engine-test branch]