You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rb Paul.Chipchase #rnx ## Background The on demand I/O backend doesn't store complete/hole I/O chunks in the local file cache, only the parts that has been requested by the game. There are currently two ways for querying the I/O backend(s) whether a specific chunk exists or not. The primary one used by the texture streaming system is DoesChunkExist(ChunkId). This method is called via FBulkData::DoesExist(). In order to be able to fufill this query for partially cached I/O chunks, two additional methods has been added to the I/O dispatcher API. Currently private, only accessible by FBulkData. - DoesChunkExist(ChunkId, OffsetAndLength) - GetSizeForChunk(ChunkId, OffsetAndLength) The method GetSizeForChunk is only ever used by the IAsyncFileHandle wrapper for bulk data and is a tricky compromise. The file handle represents the hole chunk/file where the bulk data instance resides, i.e. .ubulk, .uptnl etc. Calling get file size on this file handle should return the size for the entire chunk/file. It is technically possible to read outside of the bulk data range and this would result in the read request coming back as failed, since the resolve function in the I/O backend wouldn't be found. The file handle wrapper for bulk data is currently only used by virtual textures and should be deprecated in the long run. [CL 27337787 by per larsson in ue5-main branch]