diff options
Diffstat (limited to 'source/blender/blenloader/intern/readfile.c')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 82fbb2083df..49c3497f996 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1233,6 +1233,12 @@ static FileData *blo_filedata_from_file_descriptor(const char *filepath, rawfile = NULL; /* The Gzip FileReader takes ownership of `rawfile`. */ } } + else if (BLI_file_magic_is_zstd(header)) { + file = BLI_filereader_new_zstd(rawfile); + if (file != NULL) { + rawfile = NULL; /* The Zstd FileReader takes ownership of `rawfile`. */ + } + } /* Clean up `rawfile` if it wasn't taken over. */ if (rawfile != NULL) { @@ -1309,6 +1315,9 @@ FileData *blo_filedata_from_memory(const void *mem, int memsize, BlendFileReadRe if (BLI_file_magic_is_gzip(mem)) { file = BLI_filereader_new_gzip(mem_file); } + else if (BLI_file_magic_is_zstd(mem)) { + file = BLI_filereader_new_zstd(mem_file); + } if (file == NULL) { /* Compression initialization failed. */ |