diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-02-24 04:34:41 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-02-24 04:41:37 +0300 |
commit | 8ed82e82e6a29461cbf2836fbbe7ca2f0557cc6e (patch) | |
tree | 0ea42d30a070e589dae8379edf25f75d1d896eaf /source/blender/blenloader/intern/readfile.h | |
parent | 519982fd3ea0ab240029db5b095bbc31c6d0cb05 (diff) |
readfile: use regular file access when not a gzip
Allows for different behavior w/ compressed files,
will also make it simpler to support other compression types,
see: T56162
Diffstat (limited to 'source/blender/blenloader/intern/readfile.h')
-rw-r--r-- | source/blender/blenloader/intern/readfile.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source/blender/blenloader/intern/readfile.h b/source/blender/blenloader/intern/readfile.h index 4fe65934107..49ae2849f4f 100644 --- a/source/blender/blenloader/intern/readfile.h +++ b/source/blender/blenloader/intern/readfile.h @@ -48,6 +48,11 @@ enum eFileDataFlag { FD_FLAGS_NOT_MY_LIBMAP = 1 << 5, }; + + +typedef int (FileDataReadFn)(struct FileData *filedata, void *buffer, unsigned int size); +typedef off_t (FileDataSeekFn)(struct FileData *filedata, off_t offset, int whence); + typedef struct FileData { /** Linked list of BHeadN's. */ ListBase listbase; @@ -55,8 +60,12 @@ typedef struct FileData { bool is_eof; int buffersize; off_t file_offset; - int (*read)(struct FileData *filedata, void *buffer, unsigned int size); - off_t (*seek)(struct FileData *filedata, off_t offset, int whence); + + FileDataReadFn *read; + FileDataSeekFn *seek; + + /** Regular file reading. */ + int filedes; /** Variables needed for reading from memory / stream. */ const char *buffer; @@ -65,12 +74,12 @@ typedef struct FileData { /** Variables needed for reading from file. */ gzFile gzfiledes; + /** Gzip stream for memory decompression. */ + z_stream strm; /** Now only in use for library appending. */ char relabase[FILE_MAX]; - /** Gzip stream for memory decompression. */ - z_stream strm; /** General reading variables. */ struct SDNA *filesdna; |