55 const bool use_old_bmain_data,
59 char mainstr[
sizeof(bmain->
filepath)];
60 int success = 0, fileflags;
64 fileflags =
G.fileflags;
78 params.undo_direction = undo_direction;
79 if (!use_old_bmain_data) {
93 G.fileflags = fileflags;
114 static int counter = 0;
120 counter = counter %
U.undosteps;
122 SNPRINTF(numstr,
"%d.blend", counter);
127 bmain, filepath, fileflags, &blend_file_write_params,
nullptr);
void BKE_blendfile_read_setup_undo(bContext *C, BlendFileData *bfd, const BlendFileReadParams *params, BlendFileReadReport *reports)
BlendFileData * BKE_blendfile_read_from_memfile(Main *bmain, MemFile *memfile, const BlendFileReadParams *params, ReportList *reports)
BlendFileData * BKE_blendfile_read(const char *filepath, const BlendFileReadParams *params, BlendFileReadReport *reports)
Main * CTX_data_main(const bContext *C)
const char * BKE_main_blendfile_path(const Main *bmain) ATTR_NONNULL()
#define BLI_path_join(...)
#define STRNCPY(dst, src)
#define SNPRINTF(dst, format,...)
external readfile function prototypes.
@ BLO_READ_SKIP_UNDO_OLD_MAIN
void BLO_memfile_clear_future(MemFile *memfile)
void BLO_memfile_free(MemFile *memfile)
external writefile.cc function prototypes.
bool BLO_write_file(Main *mainvar, const char *filepath, int write_flags, const BlendFileWriteParams *params, ReportList *reports)
bool BLO_write_file_mem(Main *mainvar, MemFile *compare, MemFile *current, int write_flags)
void DEG_tag_on_visible_update(Main *bmain, bool do_time)
Read Guarded memory(de)allocation.
MemFileUndoData * BKE_memfile_undo_encode(Main *bmain, MemFileUndoData *mfu_prev)
void BKE_memfile_undo_free(MemFileUndoData *mfu)
bool BKE_memfile_undo_decode(MemFileUndoData *mfu, const eUndoStepDir undo_direction, const bool use_old_bmain_data, bContext *C)
void MEM_freeN(void *vmemh)
bool is_memfile_undo_written
void * BKE_tempdir_session