Blender  V2.93
Classes | Macros | Typedefs | Functions | Variables
BLO_readfile.h File Reference

external readfile function prototypes. More...

#include "BLI_listbase.h"
#include "BLI_sys_types.h"

Go to the source code of this file.

Classes

struct  WorkspaceConfigFileData
 
struct  BlendFileData
 
struct  BlendFileReadParams
 
struct  BLODataBlockInfo
 
struct  LibraryLink_Params
 
struct  TempLibraryContext
 

Macros

#define BLO_GROUP_MAX   32
 
#define BLO_EMBEDDED_STARTUP_BLEND   "<startup.blend>"
 

Typedefs

typedef struct BlendHandle BlendHandle
 
typedef struct WorkspaceConfigFileData WorkspaceConfigFileData
 
typedef void(* BLOExpandDoitCallback) (void *fdhandle, struct Main *mainvar, void *idv)
 

Functions

bool BLO_has_bfile_extension (const char *str)
 
bool BLO_library_path_explode (const char *path, char *r_dir, char **r_group, char **r_name)
 
void * BLO_library_read_struct (struct FileData *fd, struct BHead *bh, const char *blockname)
 
void blo_lib_link_restore (struct Main *oldmain, struct Main *newmain, struct wmWindowManager *curwm, struct Scene *curscene, struct ViewLayer *cur_view_layer)
 
void BLO_main_expander (BLOExpandDoitCallback expand_doit_func)
 
void BLO_expand_main (void *fdhandle, struct Main *mainvar)
 
void BLO_update_defaults_startup_blend (struct Main *bmain, const char *app_template)
 
void BLO_update_defaults_workspace (struct WorkSpace *workspace, const char *app_template)
 
void BLO_sanitize_experimental_features_userpref_blend (struct UserDef *userdef)
 
struct BlendThumbnailBLO_thumbnail_from_file (const char *filepath)
 
BLO Blend File Handle API
BlendHandleBLO_blendhandle_from_file (const char *filepath, struct ReportList *reports)
 
BlendHandleBLO_blendhandle_from_memory (const void *mem, int memsize)
 
struct LinkNodeBLO_blendhandle_get_datablock_names (BlendHandle *bh, int ofblocktype, const bool use_assets_only, int *r_tot_names)
 
struct LinkNodeBLO_blendhandle_get_datablock_info (BlendHandle *bh, int ofblocktype, int *r_tot_info_items)
 
struct LinkNodeBLO_blendhandle_get_previews (BlendHandle *bh, int ofblocktype, int *r_tot_prev)
 
struct LinkNodeBLO_blendhandle_get_linkable_groups (BlendHandle *bh)
 
void BLO_blendhandle_close (BlendHandle *bh)
 

Variables

const struct bTheme U_theme_default
 
const struct UserDef U_default
 

BLO Read File API

See also
BLO_write_file for file writing.
#define BLO_READ_SKIP_ALL   (BLO_READ_SKIP_USERDEF | BLO_READ_SKIP_DATA)
 
enum  eBlenFileType { BLENFILETYPE_BLEND = 1 }
 
enum  eBLOReadSkip { BLO_READ_SKIP_NONE = 0 , BLO_READ_SKIP_USERDEF = (1 << 0) , BLO_READ_SKIP_DATA = (1 << 1) , BLO_READ_SKIP_UNDO_OLD_MAIN = (1 << 2) }
 
typedef enum eBlenFileType eBlenFileType
 
typedef struct BlendFileData BlendFileData
 
typedef enum eBLOReadSkip eBLOReadSkip
 
BlendFileDataBLO_read_from_file (const char *filepath, eBLOReadSkip skip_flags, struct ReportList *reports)
 
BlendFileDataBLO_read_from_memory (const void *mem, int memsize, eBLOReadSkip skip_flags, struct ReportList *reports)
 
BlendFileDataBLO_read_from_memfile (struct Main *oldmain, const char *filename, struct MemFile *memfile, const struct BlendFileReadParams *params, struct ReportList *reports)
 
void BLO_blendfiledata_free (BlendFileData *bfd)
 

BLO Blend File Linking API

enum  eBLOLibLinkFlags { BLO_LIBLINK_USE_PLACEHOLDERS = 1 << 16 , BLO_LIBLINK_FORCE_INDIRECT = 1 << 17 , BLO_LIBLINK_NEEDS_ID_TAG_DOIT = 1 << 18 }
 
typedef enum eBLOLibLinkFlags eBLOLibLinkFlags
 
typedef struct TempLibraryContext TempLibraryContext
 
void BLO_library_link_params_init (struct LibraryLink_Params *params, struct Main *bmain, const int flag, const int id_tag_extra)
 
void BLO_library_link_params_init_with_context (struct LibraryLink_Params *params, struct Main *bmain, const int flag, const int id_tag_extra, struct Scene *scene, struct ViewLayer *view_layer, const struct View3D *v3d)
 
struct MainBLO_library_link_begin (BlendHandle **bh, const char *filepath, const struct LibraryLink_Params *params)
 
struct IDBLO_library_link_named_part (struct Main *mainl, BlendHandle **bh, const short idcode, const char *name, const struct LibraryLink_Params *params)
 
void BLO_library_link_end (struct Main *mainl, BlendHandle **bh, const struct LibraryLink_Params *params)
 
int BLO_library_link_copypaste (struct Main *mainl, BlendHandle *bh, const uint64_t id_types_mask)
 
TempLibraryContextBLO_library_temp_load_id (struct Main *real_main, const char *blend_file_path, const short idcode, const char *idname, struct ReportList *reports)
 
void BLO_library_temp_free (TempLibraryContext *temp_lib_ctx)
 

Detailed Description

external readfile function prototypes.

Definition in file BLO_readfile.h.

Macro Definition Documentation

◆ BLO_EMBEDDED_STARTUP_BLEND

#define BLO_EMBEDDED_STARTUP_BLEND   "<startup.blend>"

Definition at line 147 of file BLO_readfile.h.

◆ BLO_GROUP_MAX

#define BLO_GROUP_MAX   32

Definition at line 146 of file BLO_readfile.h.

◆ BLO_READ_SKIP_ALL

#define BLO_READ_SKIP_ALL   (BLO_READ_SKIP_USERDEF | BLO_READ_SKIP_DATA)

Definition at line 100 of file BLO_readfile.h.

Typedef Documentation

◆ BlendFileData

typedef struct BlendFileData BlendFileData

◆ BlendHandle

typedef struct BlendHandle BlendHandle

Definition at line 1 of file BLO_readfile.h.

◆ BLOExpandDoitCallback

typedef void(* BLOExpandDoitCallback) (void *fdhandle, struct Main *mainvar, void *idv)

Definition at line 259 of file BLO_readfile.h.

◆ eBlenFileType

◆ eBLOLibLinkFlags

Options controlling behavior of append/link code.

Note
merged with 'user-level' options from operators etc. in 16 lower bits (see eFileSel_Params_Flag in DNA_space_types.h).

◆ eBLOReadSkip

typedef enum eBLOReadSkip eBLOReadSkip

◆ TempLibraryContext

Struct for temporarily loading datablocks from a blend file.

◆ WorkspaceConfigFileData

Enumeration Type Documentation

◆ eBlenFileType

Enumerator
BLENFILETYPE_BLEND 

Definition at line 63 of file BLO_readfile.h.

◆ eBLOLibLinkFlags

Options controlling behavior of append/link code.

Note
merged with 'user-level' options from operators etc. in 16 lower bits (see eFileSel_Params_Flag in DNA_space_types.h).
Enumerator
BLO_LIBLINK_USE_PLACEHOLDERS 

Generate a placeholder (empty ID) if not found in current lib file.

BLO_LIBLINK_FORCE_INDIRECT 

Force loaded ID to be tagged as LIB_TAG_INDIRECT (used in reload context only).

BLO_LIBLINK_NEEDS_ID_TAG_DOIT 

When set, tag ID types that pass the internal check library_link_idcode_needs_tag_check

Currently this is only used to instantiate objects in the scene. Set this from BLO_library_link_params_init_with_context so callers don't need to remember to set this flag.

Definition at line 161 of file BLO_readfile.h.

◆ eBLOReadSkip

Enumerator
BLO_READ_SKIP_NONE 
BLO_READ_SKIP_USERDEF 
BLO_READ_SKIP_DATA 
BLO_READ_SKIP_UNDO_OLD_MAIN 

Do not attempt to re-use IDs from old bmain for unchanged ones in case of undo.

Definition at line 93 of file BLO_readfile.h.

Function Documentation

◆ BLO_blendfiledata_free()

void BLO_blendfiledata_free ( BlendFileData bfd)

Frees a BlendFileData structure and all the data associated with it (the userdef data, and the main libblock data).

Parameters
bfdThe structure to free.

Definition at line 482 of file readblenentry.c.

References BKE_main_free(), BlendFileData::main, MEM_freeN, and BlendFileData::user.

Referenced by BKE_blendfile_read_setup_ex(), and BlendfileLoadingBaseTest::blendfile_free().

◆ BLO_blendhandle_close()

void BLO_blendhandle_close ( BlendHandle bh)

Close and free a blendhandle. The handle becomes invalid after this call.

Parameters
bhThe handle to close.

Definition at line 350 of file readblenentry.c.

References blo_filedata_free().

Referenced by BKE_copybuffer_paste(), BKE_copybuffer_read(), BLO_library_temp_free(), BLO_main_validate_libraries(), bpy_lib_exit(), filelist_freelib(), filelist_readjob_list_lib(), IMB_thumb_load_blend(), and wm_link_do().

◆ BLO_blendhandle_from_file()

BlendHandle* BLO_blendhandle_from_file ( const char *  filepath,
ReportList reports 
)

Open a blendhandle from a file path.

Parameters
filepathThe file path to open.
reportsReport errors in opening the file (can be NULL).
Returns
A handle on success, or NULL on failure.

Definition at line 71 of file readblenentry.c.

References blo_filedata_from_file().

Referenced by BKE_copybuffer_paste(), BKE_copybuffer_read(), BLO_library_temp_load_id(), BLO_main_validate_libraries(), bpy_lib_enter(), filelist_readjob_list_lib(), IMB_thumb_load_blend(), and wm_link_do().

◆ BLO_blendhandle_from_memory()

BlendHandle* BLO_blendhandle_from_memory ( const void *  mem,
int  memsize 
)

Open a blendhandle from memory.

Parameters
memThe data to load from.
memsizeThe size of the data.
Returns
A handle on success, or NULL on failure.

Definition at line 87 of file readblenentry.c.

References blo_filedata_from_memory(), and NULL.

Referenced by wm_link_do().

◆ BLO_blendhandle_get_datablock_info()

struct LinkNode* BLO_blendhandle_get_datablock_info ( BlendHandle bh,
int  ofblocktype,
int *  r_tot_info_items 
)

Gets the names and asset-data (if ID is an asset) of all the data-blocks in a file of a certain type (e.g. all the scene names in a file).

Parameters
bhThe blendhandle to access.
ofblocktypeThe type of names to get.
tot_info_itemsThe length of the returned list.
Returns
A BLI_linklist of BLODataBlockInfo *. The links and BLODataBlockInfo.asset_data should be freed with MEM_freeN.

Definition at line 180 of file readblenentry.c.

References BLODataBlockInfo::asset_data, BLI_linklist_prepend(), blo_bhead_first(), blo_bhead_id_asset_data_address(), blo_bhead_id_name(), blo_bhead_next(), blo_bhead_prev(), blo_read_asset_data_block(), BHead::code, ENDB, MEM_mallocN, BLODataBlockInfo::name, NULL, and STRNCPY.

Referenced by filelist_readjob_list_lib().

◆ BLO_blendhandle_get_datablock_names()

struct LinkNode* BLO_blendhandle_get_datablock_names ( BlendHandle bh,
int  ofblocktype,
const bool  use_assets_only,
int *  r_tot_names 
)

Gets the names of all the data-blocks in a file of a certain type (e.g. all the scene names in a file).

Parameters
bhThe blendhandle to access.
ofblocktypeThe type of names to get.
tot_namesThe length of the returned list.
use_assets_onlyOnly list IDs marked as assets.
Returns
A BLI_linklist of strings. The string links should be freed with MEM_freeN().

Definition at line 141 of file readblenentry.c.

References BLI_linklist_prepend(), BLI_strdup(), blo_bhead_first(), blo_bhead_id_asset_data_address(), blo_bhead_id_name(), blo_bhead_next(), BHead::code, ENDB, names, and NULL.

Referenced by _bpy_names(), BLO_main_validate_libraries(), and IMB_thumb_load_blend().

◆ BLO_blendhandle_get_linkable_groups()

struct LinkNode* BLO_blendhandle_get_linkable_groups ( BlendHandle bh)

Gets the names of all the linkable data-block types available in a file. (e.g. "Scene", "Mesh", "Light", etc.).

Parameters
bhThe blendhandle to access.
Returns
A BLI_linklist of strings. The string links should be freed with MEM_freeN().

Definition at line 318 of file readblenentry.c.

References BKE_idtype_idcode_is_linkable(), BKE_idtype_idcode_is_valid(), BKE_idtype_idcode_to_name(), BLI_gset_add(), BLI_gset_free(), BLI_gset_ptr_new(), BLI_linklist_prepend(), BLI_strdup(), blo_bhead_first(), blo_bhead_next(), BHead::code, ENDB, names, NULL, and str.

Referenced by filelist_readjob_list_lib().

◆ BLO_blendhandle_get_previews()

struct LinkNode* BLO_blendhandle_get_previews ( BlendHandle bh,
int  ofblocktype,
int *  r_tot_prev 
)

Gets the previews of all the data-blocks in a file of a certain type (e.g. all the scene previews in a file).

Parameters
bhThe blendhandle to access.
ofblocktypeThe type of names to get.
r_tot_prevThe length of the returned list.
Returns
A BLI_linklist of PreviewImage. The PreviewImage links should be freed with malloc.

Definition at line 226 of file readblenentry.c.

References BKE_previewimg_finish(), BLI_assert, BLI_linklist_prepend(), blo_bhead_first(), blo_bhead_id_name(), blo_bhead_next(), BLO_library_read_struct(), BHead::code, DATA, DNA_struct_find_nr(), ENDB, FileData::filesdna, GS, PreviewImage::h, ID_AC, ID_GR, ID_IM, ID_LA, ID_MA, ID_OB, ID_SCE, ID_TE, ID_WO, BHead::len, MEM_callocN, MEM_freeN, NULL, PreviewImage::rect, BHead::SDNAnr, and PreviewImage::w.

Referenced by IMB_thumb_load_blend().

◆ BLO_expand_main()

void BLO_expand_main ( void *  fdhandle,
Main mainvar 
)

Loop over all ID data in Main to mark relations. Set (id->tag & LIB_TAG_NEED_EXPAND) to mark expanding. Flags get cleared after expanding.

Parameters
fdhandleusually filedata, or own handle.
mainvarthe Main database to expand.

Definition at line 4587 of file readfile.c.

References Freestyle::a, BKE_idtype_get_info_from_id(), IDTypeInfo::blend_read_expand, expand_id(), ListBase::first, id, INDEX_ID_MAX, LIB_TAG_NEED_EXPAND, NULL, set_listbasepointers(), and ID::tag.

Referenced by BKE_blendfile_write_partial(), library_link_end(), and read_libraries().

◆ BLO_has_bfile_extension()

bool BLO_has_bfile_extension ( const char *  str)

Check whether given path ends with a blend file compatible extension (.blend, .ble or .blend.gz).

Parameters
strThe path to check.
Returns
true is this path ends with a blender file extension.

Definition at line 1684 of file readfile.c.

References BLI_path_extension_check_array(), NULL, and str.

Referenced by arg_handle_load_file(), blend_save_check(), BLO_library_path_explode(), ED_path_extension_type(), file_path_to_ui_path(), filelist_readjob_list_dir(), recent_files_menu_draw(), uiTemplateRecentFiles(), WM_lib_reload(), and wm_lib_relocate_exec_do().

◆ blo_lib_link_restore()

void blo_lib_link_restore ( Main oldmain,
Main newmain,
wmWindowManager curwm,
Scene curscene,
ViewLayer cur_view_layer 
)

◆ BLO_library_link_begin()

struct Main* BLO_library_link_begin ( BlendHandle **  bh,
const char *  filepath,
const struct LibraryLink_Params params 
)

Initialize the BlendHandle for linking library data.

Parameters
bhA blender file handle as returned by BLO_blendhandle_from_file or BLO_blendhandle_from_memory.
filepathUsed for relative linking, copied to the lib->filepath.
paramsSettings for linking that don't change from beginning to end of linking.
Returns
the library Main, to be passed to BLO_library_link_named_part as mainl.

Definition at line 5109 of file readfile.c.

References library_link_begin(), and params.

Referenced by BKE_copybuffer_paste(), BKE_copybuffer_read(), BLO_library_temp_load_id(), bpy_lib_exit(), and wm_link_do().

◆ BLO_library_link_copypaste()

int BLO_library_link_copypaste ( Main mainl,
BlendHandle bh,
const uint64_t  id_types_mask 
)

◆ BLO_library_link_end()

void BLO_library_link_end ( Main mainl,
BlendHandle **  bh,
const struct LibraryLink_Params params 
)

Finalize linking from a given .blend file (library). Optionally instance the indirect object/collection in the scene when the flags are set.

Note
Do not use bh after calling this function, it may frees it.
Parameters
mainlThe main database to link from (not the active one).
bhThe blender file handle (WARNING! may be freed by this function!).
paramsSettings for linking that don't change from beginning to end of linking.

Definition at line 5258 of file readfile.c.

References library_link_end(), and params.

Referenced by BKE_copybuffer_paste(), BKE_copybuffer_read(), BLO_library_temp_free(), bpy_lib_exit(), and wm_link_do().

◆ BLO_library_link_named_part()

struct ID* BLO_library_link_named_part ( Main mainl,
BlendHandle **  bh,
const short  idcode,
const char *  name,
const struct LibraryLink_Params params 
)

Link a named data-block from an external blend file.

Parameters
mainlThe main database to link from (not the active one).
bhThe blender file handle.
idcodeThe kind of data-block to link.
nameThe name of the data-block (without the 2 char ID prefix).
Returns
the linked ID when found.

Definition at line 4989 of file readfile.c.

References link_named_part(), and params.

Referenced by BLO_library_temp_load_id(), bpy_lib_exit(), and wm_link_do().

◆ BLO_library_link_params_init()

void BLO_library_link_params_init ( struct LibraryLink_Params params,
struct Main bmain,
const int  flag,
const int  id_tag_extra 
)

◆ BLO_library_link_params_init_with_context()

void BLO_library_link_params_init_with_context ( struct LibraryLink_Params params,
struct Main bmain,
const int  flag,
const int  id_tag_extra,
struct Scene scene,
struct ViewLayer view_layer,
const struct View3D v3d 
)

◆ BLO_library_path_explode()

bool BLO_library_path_explode ( const char *  path,
char *  r_dir,
char **  r_group,
char **  r_name 
)

Try to explode given path into its 'library components' (i.e. a .blend file, id type/group, and data-block itself).

Parameters
paththe full path to explode.
r_dirthe string that'll contain path up to blend file itself ('library' path). WARNING! Must be FILE_MAX_LIBEXTRA long (it also stores group and name strings)!
r_groupthe string that'll contain 'group' part of the path, if any. May be NULL.
r_namethe string that'll contain data's name part of the path, if any. May be NULL.
Returns
true if path contains a blend file.

Definition at line 1701 of file readfile.c.

References BLI_assert, BLI_is_dir(), BLI_is_file(), BLI_path_slash_rfind(), BLO_EMBEDDED_STARTUP_BLEND, BLO_GROUP_MAX, BLO_has_bfile_extension(), Freestyle::c, MAX_ID_NAME, NULL, and STREQ.

Referenced by file_directory_enter_handle(), file_draw_icon(), file_draw_preview(), fileentry_uiname(), filelist_checkdir_lib(), filelist_islibrary(), filelist_readjob_list_lib(), IMB_thumb_manage(), is_filtered_lib(), and wm_link_append_exec().

◆ BLO_library_read_struct()

void* BLO_library_read_struct ( struct FileData fd,
struct BHead bh,
const char *  blockname 
)

Definition at line 5271 of file readfile.c.

References read_struct().

Referenced by BLO_blendhandle_get_previews().

◆ BLO_library_temp_free()

void BLO_library_temp_free ( TempLibraryContext temp_lib_ctx)

◆ BLO_library_temp_load_id()

TempLibraryContext* BLO_library_temp_load_id ( struct Main real_main,
const char *  blend_file_path,
const short  idcode,
const char *  idname,
struct ReportList reports 
)

◆ BLO_main_expander()

void BLO_main_expander ( BLOExpandDoitCallback  expand_doit_func)

Set the callback func used over all ID data found by BLO_expand_main func.

Parameters
expand_doit_funcCalled for each ID block it finds.

Definition at line 4575 of file readfile.c.

References expand_doit.

Referenced by BKE_blendfile_write_partial(), library_link_end(), and read_libraries().

◆ BLO_read_from_file()

BlendFileData* BLO_read_from_file ( const char *  filepath,
eBLOReadSkip  skip_flags,
ReportList reports 
)

Open a blender file from a pathname. The function returns NULL and sets a report in the list if it cannot open the file.

Parameters
filepathThe path of the file to open.
reportsIf the return value is NULL, errors indicating the cause of the failure.
Returns
The data of the file.

Definition at line 367 of file readblenentry.c.

References blo_filedata_free(), blo_filedata_from_file(), blo_read_file_internal(), NULL, FileData::reports, and FileData::skip_flags.

Referenced by BKE_blendfile_read(), BKE_blendfile_userdef_read(), BKE_blendfile_workspace_config_read(), and BlendfileLoadingBaseTest::blendfile_load().

◆ BLO_read_from_memfile()

BlendFileData* BLO_read_from_memfile ( Main oldmain,
const char *  filename,
MemFile memfile,
const struct BlendFileReadParams params,
ReportList reports 
)

Used for undo/redo, skips part of libraries reading (assuming their data are already loaded & valid).

Parameters
oldmainold main, from which we will keep libraries and other data-blocks that should not have changed.
filenamecurrent file, only for retrieving library data.

Definition at line 421 of file readblenentry.c.

References BLI_assert, BLI_strncpy(), blo_add_library_pointer_map(), blo_cache_storage_init(), blo_cache_storage_old_bmain_clear(), blo_clear_proxy_pointers_from_lib(), blo_filedata_free(), blo_filedata_from_memfile(), blo_join_main(), blo_make_old_idmap_from_main(), blo_read_file_internal(), BLO_READ_SKIP_UNDO_OLD_MAIN, blo_split_main(), ListBase::first, NULL, params, FileData::relabase, FileData::reports, and FileData::skip_flags.

Referenced by BKE_blendfile_read_from_memfile(), and BLO_memfile_main_get().

◆ BLO_read_from_memory()

BlendFileData* BLO_read_from_memory ( const void *  mem,
int  memsize,
eBLOReadSkip  skip_flags,
ReportList reports 
)

Open a blender file from memory. The function returns NULL and sets a report in the list if it cannot open the file.

Parameters
memThe file data.
memsizeThe length of mem.
reportsIf the return value is NULL, errors indicating the cause of the failure.
Returns
The data of the file.

Definition at line 394 of file readblenentry.c.

References blo_filedata_free(), blo_filedata_from_memory(), blo_read_file_internal(), NULL, FileData::reports, and FileData::skip_flags.

Referenced by BKE_blendfile_read_from_memory(), BKE_blendfile_userdef_read_from_memory(), BKE_blendfile_workspace_config_read(), and load_main_from_memory().

◆ BLO_sanitize_experimental_features_userpref_blend()

void BLO_sanitize_experimental_features_userpref_blend ( struct UserDef userdef)

◆ BLO_thumbnail_from_file()

struct BlendThumbnail* BLO_thumbnail_from_file ( const char *  filepath)

Does a very light reading of given .blend file to extract its stored thumbnail.

Parameters
filepathThe path of the file to extract thumbnail from.
Returns
The raw thumbnail (MEM-allocated, as stored in file, use BKE_main_thumbnail_to_imbuf() to convert it to ImBuf image).

Definition at line 1769 of file readfile.c.

References BLEN_THUMB_MEMSIZE, BLEN_THUMB_MEMSIZE_FILE, BLEN_THUMB_MEMSIZE_IS_VALID, BLI_assert, blo_filedata_free(), blo_filedata_from_file_minimal(), data, height, MEM_mallocN, NULL, read_file_thumbnail(), and width.

Referenced by IMB_thumb_load_blend().

◆ BLO_update_defaults_startup_blend()

void BLO_update_defaults_startup_blend ( Main bmain,
const char *  app_template 
)

Update defaults in startup.blend, without having to save and embed it.

Note
defaults for preferences are stored in userdef_default.c and can be updated there.

Update defaults in startup.blend, without having to save and embed the file. This function can be emptied each time the startup.blend is updated.

Note
Screen data may be cleared at this point, this will happen in the case an app-template's data needs to be versioned when read-file is called with "Load UI" disabled. Versioning the screen data can be safely skipped without "Load UI" since the screen data will have been versioned when it was first loaded.

Definition at line 390 of file versioning_defaults.c.

References app_template, Scene::audio, AUDIO_SYNC, BKE_brush_add(), BKE_brush_gpencil_paint_presets(), BKE_brush_gpencil_sculpt_presets(), BKE_brush_gpencil_vertex_presets(), BKE_brush_gpencil_weight_presets(), BKE_brush_sculpt_reset(), BKE_gpencil_material_add(), BKE_gpencil_palette_ensure(), BKE_id_delete(), BKE_mesh_smooth_flag_set(), BKE_paint_ensure_from_paintmode(), BKE_workspace_active_layout_for_workspace_get(), BKE_workspace_layout_remove(), BLI_assert, BLI_findstring(), BLI_libblock_ensure_unique_name(), BLI_strncpy(), blo_is_builtin_template(), blo_update_defaults_scene(), BLO_update_defaults_workspace(), BRUSH_PAINT_ANTIALIASING, Main::brushes, Main::cameras, DEG2RADF, Object::dtx, ListBase::first, bGPdata::flag, MaterialGPencilStyle::flag, Mesh::flag, AudioData::flag, Scene::flag, Paint::flags, GP_BRUSH_ICON_PEN, GP_DATA_STROKE_PAINTMODE, GP_MATERIAL_MODE_DOT, GP_MATERIAL_MODE_SQUARE, GP_MATERIAL_STROKE_SHOW, ToolSettings::gp_paint, GP_SELECTMODE_STROKE, Material::gp_style, ToolSettings::gpencil_selectmode_edit, Brush::gpencil_settings, BrushGpencilSettings::icon_id, Brush::id, Mesh::id, Scene::id, bScreen::id, ID_BR, ID_LA, ID_MA, ID_OB, id_us_min(), Main::lights, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, ColorManagedViewSettings::look, Main::materials, ME_REMESH_FIX_POLES, ME_REMESH_REPROJECT_VOLUME, mesh, Main::meshes, MaterialGPencilStyle::mix_factor, MaterialGPencilStyle::mix_rgba, MaterialGPencilStyle::mode, ID::name, ID::next, node, nodeFindSocket(), NULL, OB_GPENCIL, Brush::ob_mode, OB_MODE_EDIT, OB_MODE_PAINT_GPENCIL, OB_MODE_SCULPT, OB_USE_GPENCIL_LIGHTS, Main::objects, GpPaint::paint, PAINT_MODE_SCULPT_GPENCIL, PAINT_MODE_VERTEX_GPENCIL, PAINT_MODE_WEIGHT_GPENCIL, PAINT_SHOW_BRUSH, Mesh::remesh_voxel_size, rename_id_for_versioning(), roughness_socket, SCE_FRAME_DROP, scene, Main::scenes, WorkSpaceLayout::screen, Brush::sculpt_tool, SCULPT_TOOL_BOUNDARY, SCULPT_TOOL_CLAY_THUMB, SCULPT_TOOL_CLOTH, SCULPT_TOOL_DISPLACEMENT_ERASER, SCULPT_TOOL_DISPLACEMENT_SMEAR, SCULPT_TOOL_DRAW_FACE_SETS, SCULPT_TOOL_DRAW_SHARP, SCULPT_TOOL_ELASTIC_DEFORM, SCULPT_TOOL_MULTIPLANE_SCRAPE, SCULPT_TOOL_PAINT, SCULPT_TOOL_POSE, SCULPT_TOOL_SIMPLIFY, SCULPT_TOOL_SLIDE_RELAX, SCULPT_TOOL_SMEAR, SH_NODE_BSDF_PRINCIPLED, Mesh::smoothresh, SOCK_IN, Brush::spacing, STREQ, STRNCPY, MaterialGPencilStyle::texture_offset, Scene::toolsettings, Object::type, bNodeSocketValueFloat::value, Scene::view_settings, ColorManagedViewSettings::view_transform, Main::wm, and Main::workspaces.

Referenced by BKE_blendfile_read_setup_ex().

◆ BLO_update_defaults_workspace()

void BLO_update_defaults_workspace ( struct WorkSpace workspace,
const char *  app_template 
)

Variable Documentation

◆ U_default

const struct UserDef U_default
extern

◆ U_theme_default

const struct bTheme U_theme_default
extern