Blender  V3.3
Classes | Typedefs | Functions
BLO_undofile.h File Reference
#include "BLI_filereader.h"

Go to the source code of this file.

Classes

struct  MemFileChunk
 
struct  MemFile
 
struct  MemFileWriteData
 
struct  MemFileUndoData
 
struct  UndoReader
 

Typedefs

typedef struct MemFile MemFile
 
typedef struct MemFileWriteData MemFileWriteData
 
typedef struct MemFileUndoData MemFileUndoData
 

Functions

void BLO_memfile_write_init (MemFileWriteData *mem_data, MemFile *written_memfile, MemFile *reference_memfile)
 
void BLO_memfile_write_finalize (MemFileWriteData *mem_data)
 
void BLO_memfile_chunk_add (MemFileWriteData *mem_data, const char *buf, size_t size)
 
void BLO_memfile_free (MemFile *memfile)
 
void BLO_memfile_merge (MemFile *first, MemFile *second)
 
void BLO_memfile_clear_future (MemFile *memfile)
 
struct MainBLO_memfile_main_get (struct MemFile *memfile, struct Main *bmain, struct Scene **r_scene)
 
bool BLO_memfile_write_file (struct MemFile *memfile, const char *filepath)
 
FileReaderBLO_memfile_new_filereader (MemFile *memfile, int undo_direction)
 

Detailed Description

External write-file function prototypes.

Definition in file BLO_undofile.h.

Typedef Documentation

◆ MemFile

typedef struct MemFile MemFile

◆ MemFileUndoData

◆ MemFileWriteData

Function Documentation

◆ BLO_memfile_chunk_add()

void BLO_memfile_chunk_add ( MemFileWriteData mem_data,
const char *  buf,
size_t  size 
)

◆ BLO_memfile_clear_future()

void BLO_memfile_clear_future ( MemFile memfile)

Clear is_identical_future before adding next memfile.

Definition at line 89 of file undofile.c.

References MemFile::chunks, and LISTBASE_FOREACH.

Referenced by BKE_memfile_undo_encode().

◆ BLO_memfile_free()

void BLO_memfile_free ( MemFile memfile)

Not memfile itself.

Definition at line 41 of file undofile.c.

References BLI_pophead(), MemFileChunk::buf, MemFile::chunks, MemFileChunk::is_identical, MEM_freeN, and MemFile::size.

Referenced by BKE_memfile_undo_free(), and BLO_memfile_merge().

◆ BLO_memfile_main_get()

struct Main* BLO_memfile_main_get ( struct MemFile memfile,
struct Main bmain,
struct Scene **  r_scene 
)

◆ BLO_memfile_merge()

void BLO_memfile_merge ( MemFile first,
MemFile second 
)

Result is that 'first' is being freed. to keep list of memfiles consistent, 'first' is always first in list.

Definition at line 54 of file undofile.c.

References BLI_assert, BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_lookup(), BLI_ghash_new(), BLI_ghashutil_ptrcmp(), BLI_ghashutil_ptrhash(), BLO_memfile_free(), MemFile::chunks, ListBase::first, MemFileChunk::is_identical, and NULL.

Referenced by memfile_undosys_step_free().

◆ BLO_memfile_new_filereader()

FileReader* BLO_memfile_new_filereader ( MemFile memfile,
int  undo_direction 
)

◆ BLO_memfile_write_file()

bool BLO_memfile_write_file ( struct MemFile memfile,
const char *  filepath 
)

Saves .blend using undo buffer.

Returns
success.

Definition at line 198 of file undofile.c.

References BLI_open(), MemFileChunk::buf, MemFile::chunks, file, Main::filepath, ListBase::first, MemFileChunk::next, O_BINARY, oflags, and MemFileChunk::size.

Referenced by sig_handle_crash(), wm_autosave_write(), and WM_exit_ex().

◆ BLO_memfile_write_finalize()

void BLO_memfile_write_finalize ( MemFileWriteData mem_data)

Definition at line 130 of file undofile.c.

References BLI_ghash_free(), MemFileWriteData::id_session_uuid_mapping, and NULL.

Referenced by mywrite_end().

◆ BLO_memfile_write_init()

void BLO_memfile_write_init ( MemFileWriteData mem_data,
MemFile written_memfile,
MemFile reference_memfile 
)