Blender V4.3
BKE_packedFile.hh File Reference

Go to the source code of this file.

Classes

struct  PackedFileCount
 

Macros

#define RET_OK   0
 
#define RET_ERROR   1
 

Enumerations

enum  ePF_FileCompare { PF_CMP_EQUAL = 0 , PF_CMP_DIFFERS = 1 , PF_CMP_NOFILE = 2 }
 
enum  ePF_FileStatus {
  PF_WRITE_ORIGINAL = 3 , PF_WRITE_LOCAL = 4 , PF_USE_LOCAL = 5 , PF_USE_ORIGINAL = 6 ,
  PF_KEEP = 7 , PF_REMOVE = 8 , PF_ASK = 10
}
 

Functions

PackedFileBKE_packedfile_duplicate (const PackedFile *pf_src)
 
PackedFileBKE_packedfile_new (ReportList *reports, const char *filepath_rel, const char *basepath)
 
PackedFileBKE_packedfile_new_from_memory (const void *mem, int memlen, const blender::ImplicitSharingInfo *sharing_info=nullptr)
 
void BKE_packedfile_pack_all (Main *bmain, ReportList *reports, bool verbose)
 
void BKE_packedfile_pack_all_libraries (Main *bmain, ReportList *reports)
 
char * BKE_packedfile_unpack_to_file (ReportList *reports, const char *ref_file_name, const char *abs_name, const char *local_name, PackedFile *pf, enum ePF_FileStatus how)
 
char * BKE_packedfile_unpack (Main *bmain, ReportList *reports, ID *id, const char *orig_file_path, PackedFile *pf, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_vfont (Main *bmain, ReportList *reports, VFont *vfont, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_sound (Main *bmain, ReportList *reports, bSound *sound, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_image (Main *bmain, ReportList *reports, Image *ima, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_volume (Main *bmain, ReportList *reports, Volume *volume, enum ePF_FileStatus how)
 
void BKE_packedfile_unpack_all (Main *bmain, ReportList *reports, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_all_libraries (Main *bmain, ReportList *reports)
 
int BKE_packedfile_write_to_file (ReportList *reports, const char *ref_file_name, const char *filepath_rel, PackedFile *pf)
 
void BKE_packedfile_free (PackedFile *pf)
 
PackedFileCount BKE_packedfile_count_all (Main *bmain)
 
ePF_FileCompare BKE_packedfile_compare_to_file (const char *ref_file_name, const char *filepath_rel, const PackedFile *pf)
 
int BKE_packedfile_seek (PackedFile *pf, int offset, int whence)
 
void BKE_packedfile_rewind (PackedFile *pf)
 
int BKE_packedfile_read (PackedFile *pf, void *data, int size)
 
bool BKE_packedfile_id_check (const ID *id)
 
void BKE_packedfile_id_unpack (Main *bmain, ID *id, ReportList *reports, enum ePF_FileStatus how)
 
void BKE_packedfile_blend_write (BlendWriter *writer, const PackedFile *pf)
 
void BKE_packedfile_blend_read (BlendDataReader *reader, PackedFile **pf_p, blender::StringRefNull filepath)
 

Macro Definition Documentation

◆ RET_ERROR

◆ RET_OK

Enumeration Type Documentation

◆ ePF_FileCompare

Enumerator
PF_CMP_EQUAL 
PF_CMP_DIFFERS 
PF_CMP_NOFILE 

Definition at line 27 of file BKE_packedFile.hh.

◆ ePF_FileStatus

Enumerator
PF_WRITE_ORIGINAL 
PF_WRITE_LOCAL 
PF_USE_LOCAL 
PF_USE_ORIGINAL 
PF_KEEP 
PF_REMOVE 
PF_ASK 

Definition at line 33 of file BKE_packedFile.hh.

Function Documentation

◆ BKE_packedfile_blend_read()

◆ BKE_packedfile_blend_write()

void BKE_packedfile_blend_write ( BlendWriter * writer,
const PackedFile * pf )

◆ BKE_packedfile_compare_to_file()

ePF_FileCompare BKE_packedfile_compare_to_file ( const char * ref_file_name,
const char * filepath_rel,
const PackedFile * pf )

This function compares a packed file to a 'real' file. It returns an integer indicating if:

  • #PF_EQUAL: the packed file and original file are identical.
  • #PF_DIFFERENT: the packed file and original file differ.
  • #PF_NOFILE: the original file doesn't exist.

Definition at line 420 of file packedFile.cc.

References BLI_open(), BLI_path_abs(), BLI_read(), BLI_stat(), FILE_MAX, len, O_BINARY, pf, PF_CMP_DIFFERS, PF_CMP_EQUAL, PF_CMP_NOFILE, and STRNCPY.

Referenced by unpack_menu().

◆ BKE_packedfile_count_all()

◆ BKE_packedfile_duplicate()

◆ BKE_packedfile_free()

◆ BKE_packedfile_id_check()

bool BKE_packedfile_id_check ( const ID * id)

ID should be not NULL, return true if there's a packed file.

Definition at line 880 of file packedFile.cc.

References BKE_image_has_packedfile(), GS, ID_IM, ID_LI, ID_SO, ID_VF, ID_VO, bSound::packedfile, Library::packedfile, VFont::packedfile, and Volume::packedfile.

Referenced by template_ID().

◆ BKE_packedfile_id_unpack()

◆ BKE_packedfile_new()

◆ BKE_packedfile_new_from_memory()

◆ BKE_packedfile_pack_all()

◆ BKE_packedfile_pack_all_libraries()

void BKE_packedfile_pack_all_libraries ( Main * bmain,
ReportList * reports )

◆ BKE_packedfile_read()

int BKE_packedfile_read ( PackedFile * pf,
void * data,
int size )

Definition at line 95 of file packedFile.cc.

References pf, and size().

◆ BKE_packedfile_rewind()

void BKE_packedfile_rewind ( PackedFile * pf)

Definition at line 90 of file packedFile.cc.

References BKE_packedfile_seek(), and pf.

◆ BKE_packedfile_seek()

int BKE_packedfile_seek ( PackedFile * pf,
int offset,
int whence )

Definition at line 58 of file packedFile.cc.

References pf.

Referenced by BKE_packedfile_rewind().

◆ BKE_packedfile_unpack()

char * BKE_packedfile_unpack ( Main * bmain,
ReportList * reports,
ID * id,
const char * orig_file_path,
PackedFile * pf,
enum ePF_FileStatus how )

◆ BKE_packedfile_unpack_all()

◆ BKE_packedfile_unpack_all_libraries()

int BKE_packedfile_unpack_all_libraries ( Main * bmain,
ReportList * reports )

◆ BKE_packedfile_unpack_image()

◆ BKE_packedfile_unpack_sound()

int BKE_packedfile_unpack_sound ( Main * bmain,
ReportList * reports,
bSound * sound,
enum ePF_FileStatus how )

◆ BKE_packedfile_unpack_to_file()

char * BKE_packedfile_unpack_to_file ( ReportList * reports,
const char * ref_file_name,
const char * abs_name,
const char * local_name,
PackedFile * pf,
enum ePF_FileStatus how )

BKE_packedfile_unpack_to_file() looks at the existing files (abs_name, local_name) and a packed file.

It returns a char *to the existing file name / new file name or NULL when there was an error or when the user decides to cancel the operation.

Warning
'abs_name' may be relative still! (use a "//" prefix) be sure to run BLI_path_abs on it first.

Definition at line 473 of file packedFile.cc.

References ATTR_FALLTHROUGH, BKE_packedfile_write_to_file(), BKE_reportf(), BLI_exists(), BLI_path_abs(), BLI_strdup(), FILE_MAX, pf, PF_KEEP, PF_REMOVE, PF_USE_LOCAL, PF_USE_ORIGINAL, PF_WRITE_LOCAL, PF_WRITE_ORIGINAL, printf, RET_OK, RPT_INFO, and STRNCPY.

Referenced by BKE_packedfile_unpack(), BKE_packedfile_unpack_all_libraries(), and blender::io::hydra::cache_or_get_image_file().

◆ BKE_packedfile_unpack_vfont()

int BKE_packedfile_unpack_vfont ( Main * bmain,
ReportList * reports,
VFont * vfont,
enum ePF_FileStatus how )

◆ BKE_packedfile_unpack_volume()

int BKE_packedfile_unpack_volume ( Main * bmain,
ReportList * reports,
Volume * volume,
enum ePF_FileStatus how )

◆ BKE_packedfile_write_to_file()

int BKE_packedfile_write_to_file ( ReportList * reports,
const char * ref_file_name,
const char * filepath_rel,
PackedFile * pf )