51 const bool use_old_bmain_data,
55 char mainstr[
sizeof(bmain->
filepath)];
56 int success = 0, fileflags;
60 fileflags =
G.fileflags;
74 params.undo_direction = undo_direction;
75 if (!use_old_bmain_data) {
89 G.fileflags = fileflags;
110 static int counter = 0;
116 counter = counter %
U.undosteps;
118 SNPRINTF(numstr,
"%d.blend", counter);
123 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 SNPRINTF(dst, format,...)
char * STRNCPY(char(&dst)[N], const char *src)
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)
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_callocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
bool is_memfile_undo_written
void * BKE_tempdir_session