Fix T64842: crash rendering files with bevel curves
[blender.git] / source / blender / blenkernel / BKE_packedFile.h
index 1891840f497edc246bc04561c1c0a0fcc43bf945..ad0f474a730a93ada20fd555658b01c60e2afbda 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
  */
 #ifndef __BKE_PACKEDFILE_H__
 #define __BKE_PACKEDFILE_H__
 
-/** \file BKE_packedFile.h
- *  \ingroup bke
- *  \since March 2001
- *  \author nzc
+/** \file
+ * \ingroup bke
  */
-#define RET_OK      0
-#define RET_ERROR   1
+#define RET_OK 0
+#define RET_ERROR 1
 
-struct bSound;
+struct ID;
 struct Image;
 struct Main;
 struct PackedFile;
 struct ReportList;
 struct VFont;
+struct bSound;
 
 /* pack */
-struct PackedFile *newPackedFile(struct ReportList *reports, const char *filename, const char *relabase);
+struct PackedFile *dupPackedFile(const struct PackedFile *pf_src);
+struct PackedFile *newPackedFile(struct ReportList *reports,
+                                 const char *filename,
+                                 const char *relabase);
 struct PackedFile *newPackedFileMemory(void *mem, int memlen);
 
-void packAll(struct Main *bmain, struct ReportList *reports);
+void packAll(struct Main *bmain, struct ReportList *reports, bool verbose);
+void packLibraries(struct Main *bmain, struct ReportList *reports);
 
 /* unpack */
-char *unpackFile(struct ReportList *reports, const char *abs_name, const char *local_name, struct PackedFile *pf, int how);
-int unpackVFont(struct ReportList *reports, struct VFont *vfont, int how);
+char *unpackFile(struct ReportList *reports,
+                 const char *ref_file_name,
+                 const char *abs_name,
+                 const char *local_name,
+                 struct PackedFile *pf,
+                 int how);
+int unpackVFont(struct Main *bmain, struct ReportList *reports, struct VFont *vfont, int how);
 int unpackSound(struct Main *bmain, struct ReportList *reports, struct bSound *sound, int how);
-int unpackImage(struct ReportList *reports, struct Image *ima, int how);
+int unpackImage(struct Main *bmain, struct ReportList *reports, struct Image *ima, int how);
 void unpackAll(struct Main *bmain, struct ReportList *reports, int how);
+int unpackLibraries(struct Main *bmain, struct ReportList *reports);
 
-int writePackedFile(struct ReportList *reports, const char *filename, struct PackedFile *pf, int guimode);
+int writePackedFile(struct ReportList *reports,
+                    const char *ref_file_name,
+                    const char *filename,
+                    struct PackedFile *pf,
+                    const bool guimode);
 
 /* free */
 void freePackedFile(struct PackedFile *pf);
 
 /* info */
 int countPackedFiles(struct Main *bmain);
-int checkPackedFile(const char *filename, struct PackedFile *pf);
+int checkPackedFile(const char *ref_file_name, const char *filename, struct PackedFile *pf);
 
 /* read */
 int seekPackedFile(struct PackedFile *pf, int offset, int whence);
 void rewindPackedFile(struct PackedFile *pf);
 int readPackedFile(struct PackedFile *pf, void *data, int size);
 
-#endif
+/* ID should be not NULL, return 1 if there's a packed file */
+bool BKE_pack_check(struct ID *id);
+/* ID should be not NULL, throws error when ID is Library */
+void BKE_unpack_id(struct Main *bmain, struct ID *id, struct ReportList *reports, int how);
 
+#endif