|
Blender V5.0
|
Go to the source code of this file.
Classes | |
| struct | BlenderHeader |
| struct | BlenderHeaderUnknown |
| struct | BlenderHeaderInvalid |
Macros | |
| #define | BLEND_FILE_FORMAT_VERSION_0 0 |
| #define | BLEND_FILE_FORMAT_VERSION_1 1 |
| #define | SYSTEM_SUPPORTS_WRITING_FILE_VERSION_1 (ENDIAN_ORDER == L_ENDIAN && sizeof(void *) == 8) |
| #define | MIN_SIZEOFBLENDERHEADER 12 |
| #define | MAX_SIZEOFBLENDERHEADER 17 |
| #define | SIZEOFBLENDERHEADER_VERSION_0 12 |
| #define | SIZEOFBLENDERHEADER_VERSION_1 17 |
Typedefs | |
| using | BlenderHeaderVariant |
Functions | |
| BlenderHeaderVariant | BLO_readfile_blender_header_decode (FileReader *file) |
| #define BLEND_FILE_FORMAT_VERSION_0 0 |
A low level blend file version number. Also see #decode_blender_header for how the first few bytes of a .blend file are structured.
0: Uses BHead4 or SmallBHead8 for block headers depending on a .blend file header byte. 1: Uses LargeBHead8 for block headers. Low level version 0: the header is 12 bytes long. 0-6: 'BLENDER' 7: '-' for 8-byte pointers (SmallBHead8) or '_' for 4-byte pointers (BHead4) 8: 'v' for little endian or 'V' for big endian 9-11: 3 ASCII digits encoding BLENDER_FILE_VERSION (e.g. '305' for Blender 3.5)
Definition at line 26 of file BLO_core_blend_header.hh.
Referenced by BlenderHeader::bhead_type().
| #define BLEND_FILE_FORMAT_VERSION_1 1 |
Lower level version 1: the header is 17 bytes long. 0-6: 'BLENDER' 7-8: size of the header in bytes encoded as ASCII digits (always '17' currently) 9: always '-' 10-11: File version format as ASCII digits (always '01' currently) 12: always 'v' 13-16: 4 ASCII digits encoding BLENDER_FILE_VERSION (e.g. '0405' for Blender 4.5)
With this header, LargeBHead8 is always used.
Definition at line 38 of file BLO_core_blend_header.hh.
Referenced by BlenderHeader::bhead_type(), and get_blend_file_header().
| #define MAX_SIZEOFBLENDERHEADER 17 |
Definition at line 47 of file BLO_core_blend_header.hh.
Referenced by BLO_readfile_blender_header_decode().
| #define MIN_SIZEOFBLENDERHEADER 12 |
Definition at line 46 of file BLO_core_blend_header.hh.
Referenced by blo_filedata_from_memory(), and BLO_readfile_blender_header_decode().
| #define SIZEOFBLENDERHEADER_VERSION_0 12 |
See BLEND_FILE_FORMAT_VERSION_0 for the structure.
Definition at line 50 of file BLO_core_blend_header.hh.
Referenced by get_blend_file_header().
| #define SIZEOFBLENDERHEADER_VERSION_1 17 |
See BLEND_FILE_FORMAT_VERSION_1 for the structure.
Definition at line 52 of file BLO_core_blend_header.hh.
Referenced by get_blend_file_header().
| #define SYSTEM_SUPPORTS_WRITING_FILE_VERSION_1 (ENDIAN_ORDER == L_ENDIAN && sizeof(void *) == 8) |
Only "modern" systems support writing files with LargeBHead8 headers. Other systems are deprecated. This reduces the amount of variation we have to deal with when reading .blend files.
Definition at line 44 of file BLO_core_blend_header.hh.
Referenced by get_blend_file_header(), write_bhead(), writedata(), and writestruct_at_address_nr().
| using BlenderHeaderVariant |
Definition at line 74 of file BLO_core_blend_header.hh.
| BlenderHeaderVariant BLO_readfile_blender_header_decode | ( | FileReader * | file | ) |
Reads the header at the beginning of a .blend file and decodes it.
Definition at line 27 of file blo_core_blend_header.cc.
References B_ENDIAN, ELEM, BlenderHeader::endian, BlenderHeader::file_format_version, BlenderHeader::file_version, L_ENDIAN, MAX_SIZEOFBLENDERHEADER, MIN_SIZEOFBLENDERHEADER, BlenderHeader::pointer_size, FileReader::read, and STREQLEN.
Referenced by blendthumb_create_thumb_from_file(), and read_blender_header().