Blender V5.0
library.cc File Reference
#include <optional>
#include "CLG_log.h"
#include "DNA_ID.h"
#include "DNA_collection_types.h"
#include "DNA_scene_types.h"
#include "BLI_utildefines.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_path_utils.hh"
#include "BLI_set.hh"
#include "BLI_string.h"
#include "BLI_vector_set.hh"
#include "BLT_translation.hh"
#include "BLO_read_write.hh"
#include "BKE_bpath.hh"
#include "BKE_id_hash.hh"
#include "BKE_idtype.hh"
#include "BKE_key.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_lib_remap.hh"
#include "BKE_library.hh"
#include "BKE_main.hh"
#include "BKE_main_invariants.hh"
#include "BKE_main_namemap.hh"
#include "BKE_node.hh"
#include "BKE_packedFile.hh"
#include "BKE_report.hh"

Go to the source code of this file.

Functions

static void library_runtime_reset (Library *lib)
static void library_init_data (ID *id)
static void library_free_data (ID *id)
static void library_copy_data (Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, int)
static void library_foreach_id (ID *id, LibraryForeachIDData *data)
static void library_foreach_path (ID *id, BPathForeachPathData *bpath_data)
static void library_blend_write_data (BlendWriter *writer, ID *id, const void *id_address)
static void library_blend_read_data (BlendDataReader *, ID *id)
static void library_blend_read_after_liblink (BlendLibReader *, ID *id)
void BKE_library_filepath_set (Main *bmain, Library *lib, const char *filepath)
static void rebuild_hierarchy_best_parent_find (Main *bmain, blender::Set< Library * > &directly_used_libs, Library *lib)
void BKE_library_main_rebuild_hierarchy (Main *bmain)
static Libraryadd_archive_library (Main &bmain, Library &reference_library)
static void pack_linked_id (Main &bmain, ID *linked_id, const id_hash::ValidDeepHashes &deep_hashes, blender::Map< IDHash, ID * > &already_packed_ids, blender::VectorSet< ID * > &ids_to_remap, blender::bke::id::IDRemapper &id_remapper)
static void pack_linked_ids (Main &bmain, const blender::Set< ID * > &ids_to_pack)

Variables

static CLG_LogRef LOG = {"lib.library"}
IDTypeInfo IDType_ID_LI

Detailed Description

Contains code specific to the Library ID type.

Definition in file library.cc.

Function Documentation

◆ add_archive_library()

Library * add_archive_library ( Main & bmain,
Library & reference_library )
static

◆ BKE_library_filepath_set()

void BKE_library_filepath_set ( Main * bmain,
Library * lib,
const char * filepath )

◆ BKE_library_main_rebuild_hierarchy()

◆ library_blend_read_after_liblink()

void library_blend_read_after_liblink ( BlendLibReader * ,
ID * id )
static

Definition at line 189 of file library.cc.

References BLI_assert, lib, and LIBRARY_FLAG_IS_ARCHIVE.

◆ library_blend_read_data()

void library_blend_read_data ( BlendDataReader * ,
ID * id )
static

Definition at line 183 of file library.cc.

References lib.

◆ library_blend_write_data()

void library_blend_write_data ( BlendWriter * writer,
ID * id,
const void * id_address )
static

◆ library_copy_data()

void library_copy_data ( Main * bmain,
std::optional< Library * > owner_library,
ID * id_dst,
const ID * id_src,
int  )
static

◆ library_foreach_id()

◆ library_foreach_path()

void library_foreach_path ( ID * id,
BPathForeachPathData * bpath_data )
static

◆ library_free_data()

void library_free_data ( ID * id)
static

Definition at line 66 of file library.cc.

References BKE_packedfile_free(), and library_runtime_reset().

◆ library_init_data()

void library_init_data ( ID * id)
static

Definition at line 60 of file library.cc.

◆ library_runtime_reset()

void library_runtime_reset ( Library * lib)
static

Definition at line 55 of file library.cc.

References BKE_main_namemap_destroy(), and lib.

Referenced by library_free_data().

◆ pack_linked_id()

◆ pack_linked_ids()

◆ rebuild_hierarchy_best_parent_find()

Variable Documentation

◆ IDType_ID_LI

IDTypeInfo IDType_ID_LI
Initial value:
= {
Library::id_type,
sizeof(Library),
"Library",
N_("libraries"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_NO_ANIMDATA
Definition BKE_idtype.hh:49
@ IDTYPE_FLAGS_NO_LIBLINKING
Definition BKE_idtype.hh:35
@ IDTYPE_FLAGS_NEVER_UNUSED
Definition BKE_idtype.hh:72
#define BLT_I18NCONTEXT_ID_LIBRARY
@ INDEX_ID_LI
Definition DNA_ID.h:1281
#define FILTER_ID_LI
Definition DNA_ID.h:1235
static void library_blend_read_data(BlendDataReader *, ID *id)
Definition library.cc:183
static void library_blend_read_after_liblink(BlendLibReader *, ID *id)
Definition library.cc:189
static void library_foreach_path(ID *id, BPathForeachPathData *bpath_data)
Definition library.cc:146
static void library_blend_write_data(BlendWriter *writer, ID *id, const void *id_address)
Definition library.cc:163
static void library_foreach_id(ID *id, LibraryForeachIDData *data)
Definition library.cc:110
static void library_init_data(ID *id)
Definition library.cc:60
static void library_copy_data(Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, int)
Definition library.cc:76
static void library_free_data(ID *id)
Definition library.cc:66
#define N_(msgid)

Definition at line 198 of file library.cc.

◆ LOG

CLG_LogRef LOG = {"lib.library"}
static

Definition at line 50 of file library.cc.