Blender V5.0
BKE_packedFile.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
9
11#include "BLI_string_ref.hh"
12
13#define RET_OK 0
14#define RET_ERROR 1
15
16struct BlendDataReader;
17struct BlendWriter;
18struct ID;
19struct Image;
20struct Main;
21struct PackedFile;
22struct ReportList;
23struct VFont;
24struct Volume;
25struct bSound;
26
32
43
45
46/* Pack. */
47
50 const char *filepath_rel,
51 const char *basepath);
53 const void *mem, int memlen, const blender::ImplicitSharingInfo *sharing_info = nullptr);
54
58void BKE_packedfile_pack_all(Main *bmain, ReportList *reports, bool verbose);
60
61/* Unpack. */
62
74 const char *ref_file_name,
75 const char *abs_name,
76 const char *local_name,
78 enum ePF_FileStatus how);
79char *BKE_packedfile_unpack(Main *bmain,
80 ReportList *reports,
81 ID *id,
82 const char *orig_file_path,
84 enum ePF_FileStatus how);
86 ReportList *reports,
87 VFont *vfont,
88 enum ePF_FileStatus how);
90 ReportList *reports,
91 bSound *sound,
92 enum ePF_FileStatus how);
94 ReportList *reports,
95 Image *ima,
96 enum ePF_FileStatus how);
98 ReportList *reports,
100 enum ePF_FileStatus how);
101void BKE_packedfile_unpack_all(Main *bmain, ReportList *reports, enum ePF_FileStatus how);
103
105 const char *ref_file_name,
106 const char *filepath_rel,
107 PackedFile *pf);
108
109/* Free. */
110
112
113/* Info. */
114
119 int bakes = 0;
120
121 int total() const
122 {
123 return this->individual_files + this->bakes;
124 }
125};
126
128
137ePF_FileCompare BKE_packedfile_compare_to_file(const char *ref_file_name,
138 const char *filepath_rel,
139 const PackedFile *pf);
140
141/* Read. */
142
143int BKE_packedfile_seek(PackedFile *pf, int offset, int whence);
145int BKE_packedfile_read(PackedFile *pf, void *data, int size);
146
150bool BKE_packedfile_id_check(const ID *id);
154void BKE_packedfile_id_unpack(Main *bmain, ID *id, ReportList *reports, enum ePF_FileStatus how);
155
158 PackedFile **pf_p,
159 blender::StringRefNull filepath);
int BKE_packedfile_unpack_all_libraries(Main *bmain, ReportList *reports)
ePF_FileCompare
@ PF_CMP_EQUAL
@ PF_CMP_NOFILE
@ PF_CMP_DIFFERS
PackedFile * BKE_packedfile_duplicate(const PackedFile *pf_src)
void BKE_packedfile_free(PackedFile *pf)
PackedFileCount BKE_packedfile_count_all(Main *bmain)
PackedFile * BKE_packedfile_new_from_memory(const void *mem, int memlen, const blender::ImplicitSharingInfo *sharing_info=nullptr)
bool BKE_packedfile_id_check(const ID *id)
int BKE_packedfile_unpack_sound(Main *bmain, ReportList *reports, bSound *sound, enum ePF_FileStatus how)
void BKE_packedfile_unpack_all(Main *bmain, ReportList *reports, enum ePF_FileStatus how)
void BKE_packedfile_pack_all_libraries(Main *bmain, ReportList *reports)
int BKE_packedfile_read(PackedFile *pf, void *data, int size)
Definition packedFile.cc:98
int BKE_packedfile_unpack_image(Main *bmain, ReportList *reports, Image *ima, enum ePF_FileStatus how)
ePF_FileCompare BKE_packedfile_compare_to_file(const char *ref_file_name, const char *filepath_rel, const PackedFile *pf)
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)
int BKE_packedfile_unpack_vfont(Main *bmain, ReportList *reports, VFont *vfont, enum ePF_FileStatus how)
constexpr int64_t PACKED_FILE_MAX_SIZE
void BKE_packedfile_blend_write(BlendWriter *writer, const PackedFile *pf)
void BKE_packedfile_blend_read(BlendDataReader *reader, PackedFile **pf_p, blender::StringRefNull filepath)
char * BKE_packedfile_unpack(Main *bmain, ReportList *reports, ID *id, const char *orig_file_path, PackedFile *pf, enum ePF_FileStatus how)
void BKE_packedfile_rewind(PackedFile *pf)
Definition packedFile.cc:93
int BKE_packedfile_seek(PackedFile *pf, int offset, int whence)
Definition packedFile.cc:61
PackedFile * BKE_packedfile_new(ReportList *reports, const char *filepath_rel, const char *basepath)
int BKE_packedfile_write_to_file(ReportList *reports, const char *ref_file_name, const char *filepath_rel, PackedFile *pf)
int BKE_packedfile_unpack_volume(Main *bmain, ReportList *reports, Volume *volume, enum ePF_FileStatus how)
ePF_FileStatus
@ PF_USE_ORIGINAL
@ PF_USE_LOCAL
@ PF_ASK
@ PF_KEEP
@ PF_REMOVE
@ PF_WRITE_ORIGINAL
@ PF_WRITE_LOCAL
void BKE_packedfile_pack_all(Main *bmain, ReportList *reports, bool verbose)
void BKE_packedfile_id_unpack(Main *bmain, ID *id, ReportList *reports, enum ePF_FileStatus how)
BMesh const char void * data
long long int int64_t
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
static int verbose
Definition cineonlib.cc:30
#define pf(_x, _i)
Prefetch 64.
Definition gim_memory.h:48
#define INT32_MAX
Definition DNA_ID.h:414
float volume