Blender V4.3
FileData Struct Reference

#include <readfile.hh>

Public Attributes

ListBase bhead_list
 
enum eFileDataFlag flags
 
bool is_eof
 
FileReaderfile
 
int undo_direction
 
char relabase [FILE_MAX]
 
SDNAfilesdna
 
const SDNAmemsdna
 
const char * compflags
 
DNA_ReconstructInforeconstruct_info
 
int fileversion
 
int id_name_offset
 
int id_asset_data_offset
 
int globalf
 
int fileflags
 
eBLOReadSkip skip_flags
 
int id_tag_extra
 
OldNewMapdatamap
 
OldNewMapglobmap
 
OldNewMaplibmap
 
BLOCacheStoragecache_storage
 
BHeadSortbheadmap
 
int tot_bheadmap
 
GHashbhead_idname_hash
 
ListBasemainlist
 
ListBaseold_mainlist
 
IDNameLib_Mapold_idmap_uid
 
IDNameLib_Mapnew_idmap_uid
 
BlendFileReadReportreports
 
void * storage_handle
 

Detailed Description

General data used during a blend-file reading.

Note that this data (and its accesses) are absolutely not thread-safe currently. It should never be accessed concurrently.

Definition at line 65 of file readfile.hh.

Member Data Documentation

◆ bhead_idname_hash

GHash* FileData::bhead_idname_hash

◆ bhead_list

ListBase FileData::bhead_list

Linked list of BHeadN's.

Definition at line 67 of file readfile.hh.

Referenced by blo_bhead_first(), blo_filedata_free(), and get_bhead().

◆ bheadmap

BHeadSort* FileData::bheadmap

Definition at line 125 of file readfile.hh.

Referenced by blo_filedata_free(), find_bhead(), and sort_bhead_old_map().

◆ cache_storage

◆ compflags

const char* FileData::compflags

Array of eSDNA_StructCompare.

Definition at line 90 of file readfile.hh.

Referenced by blo_filedata_free(), read_file_dna(), and read_struct().

◆ datamap

◆ file

◆ fileflags

int FileData::fileflags

Definition at line 100 of file readfile.hh.

Referenced by read_global().

◆ filesdna

◆ fileversion

◆ flags

◆ globalf

int FileData::globalf

For do_versions patching.

Definition at line 100 of file readfile.hh.

Referenced by read_global().

◆ globmap

◆ id_asset_data_offset

int FileData::id_asset_data_offset

Used to retrieve asset data from (bhead+1). NOTE: This may not be available in old files, will be -1 then!

Definition at line 98 of file readfile.hh.

Referenced by blo_bhead_id_asset_data_address(), and read_file_dna().

◆ id_name_offset

int FileData::id_name_offset

Used to retrieve ID names from (bhead+1).

Definition at line 95 of file readfile.hh.

Referenced by blo_bhead_id_name(), and read_file_dna().

◆ id_tag_extra

int FileData::id_tag_extra

Tag to apply to all loaded ID data-blocks.

Note
This is initialized from LibraryLink_Params.id_tag_extra since passing it as an argument would need an additional argument to be passed around when expanding library data.

Definition at line 111 of file readfile.hh.

Referenced by expand_doit_library(), library_link_begin(), and link_named_part().

◆ is_eof

bool FileData::is_eof

Definition at line 69 of file readfile.hh.

Referenced by get_bhead().

◆ libmap

OldNewMap* FileData::libmap

Store mapping from old ID pointers (the values they have in the .blend file) to new ones, typically from value in bhead->old to address in memory where the ID was read. Used during library-linking process (see lib_link_all).

Definition at line 121 of file readfile.hh.

Referenced by blo_do_versions_pre250(), blo_filedata_free(), change_link_placeholder_to_real_ID_pointer_fd(), filedata_new(), newlibadr(), oldnewmap_lib_insert(), and read_library_file_data().

◆ mainlist

◆ memsdna

const SDNA* FileData::memsdna

◆ new_idmap_uid

IDNameLib_Map* FileData::new_idmap_uid

IDMap using uids as keys of the IDs read (or moved) in the new main(s).

Used during undo to ensure that the ID pointers from the 'no undo' IDs remain valid (these IDs are re-used from old main even if their content is not the same as in the memfile undo step, so they could point e.g. to an ID that does not exist in the newly read undo step).

Also used to find current valid pointers (or none) of these 'no undo' IDs existing in read memfile.

Definition at line 147 of file readfile.hh.

Referenced by blo_filedata_free(), blo_read_file_internal(), BLO_read_get_new_id_address_from_session_uid(), read_libblock(), read_libblock_undo_restore(), read_libblock_undo_restore_identical(), read_libblock_undo_restore_linked(), read_undo_move_libmain_data(), read_undo_remap_noundo_data(), and read_undo_reuse_noundo_local_ids().

◆ old_idmap_uid

IDNameLib_Map* FileData::old_idmap_uid

IDMap using UID's as keys of all the old IDs in the old bmain. Used during undo to find a matching old data when reading a new ID.

Definition at line 137 of file readfile.hh.

Referenced by blo_filedata_free(), blo_make_old_idmap_from_main(), and read_libblock_undo_restore().

◆ old_mainlist

◆ reconstruct_info

DNA_ReconstructInfo* FileData::reconstruct_info

Definition at line 91 of file readfile.hh.

Referenced by blo_filedata_free(), read_file_dna(), and read_struct().

◆ relabase

char FileData::relabase[FILE_MAX]

Used for relative paths handling.

Typically the actual filepath of the read blend-file, except when recovering save-on-exit/autosave files. In the latter case, it will be the path of the file that generated the auto-saved one being recovered.

NOTE: Currently expected to be the same path as BlendFileData.filepath.

Definition at line 84 of file readfile.hh.

Referenced by blo_decode_and_check(), blo_filedata_from_file(), blo_read_file_internal(), BLO_read_from_memfile(), direct_link_library(), do_versions(), expand_doit_library(), is_minversion_older_than_blender(), read_global(), and read_library_file_data().

◆ reports

◆ skip_flags

◆ storage_handle

void* FileData::storage_handle

Opaque handle to the storage system used for non-static allocation strings.

Definition at line 152 of file readfile.hh.

Referenced by get_alloc_name().

◆ tot_bheadmap

int FileData::tot_bheadmap

Definition at line 126 of file readfile.hh.

Referenced by find_bhead(), and sort_bhead_old_map().

◆ undo_direction

int FileData::undo_direction

Whether we are undoing (< 0) or redoing (> 0), used to choose which 'unchanged' flag to use to detect unchanged data from memfile.

Definition at line 75 of file readfile.hh.

Referenced by blo_filedata_from_memfile(), and direct_link_id_restore_recalc().


The documentation for this struct was generated from the following file: