Blender V4.3
BLO_undofile.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2004 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
12#include "BLI_filereader.h"
13#include "BLI_listbase.h"
14#include "BLI_map.hh"
15
16namespace blender {
17class ImplicitSharingInfo;
18}
19struct Main;
20struct Scene;
21
30
32 void *next, *prev;
33 const char *buf;
35 size_t size;
45};
46
56
67
69 char filepath[1024]; /* FILE_MAX */
71 size_t undo_size;
72};
73
74/* FileReader-compatible wrapper for reading MemFiles */
83
84/* Actually only used `writefile.cc`. */
85
87 MemFile *written_memfile,
88 MemFile *reference_memfile);
90
91void BLO_memfile_chunk_add(MemFileWriteData *mem_data, const char *buf, size_t size);
92
93/* exports */
94
98/* **************** support for memory-write, for undo buffers *************** */
99
100void BLO_memfile_free(MemFile *memfile);
105void BLO_memfile_merge(MemFile *first, MemFile *second);
109void BLO_memfile_clear_future(MemFile *memfile);
110
111/* Utilities. */
112
113Main *BLO_memfile_main_get(MemFile *memfile, Main *bmain, Scene **r_scene);
114
115FileReader *BLO_memfile_new_filereader(MemFile *memfile, int undo_direction);
Wrapper for reading from various sources (e.g. raw files, compressed files, memory....
unsigned int uint
FileReader * BLO_memfile_new_filereader(MemFile *memfile, int undo_direction)
Definition undofile.cc:269
void BLO_memfile_chunk_add(MemFileWriteData *mem_data, const char *buf, size_t size)
Definition undofile.cc:131
void BLO_memfile_write_init(MemFileWriteData *mem_data, MemFile *written_memfile, MemFile *reference_memfile)
Definition undofile.cc:100
Main * BLO_memfile_main_get(MemFile *memfile, Main *bmain, Scene **r_scene)
Definition undofile.cc:170
void BLO_memfile_clear_future(MemFile *memfile)
Definition undofile.cc:93
void BLO_memfile_free(MemFile *memfile)
Definition undofile.cc:41
void BLO_memfile_merge(MemFile *first, MemFile *second)
Definition undofile.cc:62
void BLO_memfile_write_finalize(MemFileWriteData *mem_data)
Definition undofile.cc:126
bool is_identical_future
const char * buf
blender::Map< const void *, const blender::ImplicitSharingInfo * > map
char filepath[1024]
MemFile * reference_memfile
blender::Map< uint, MemFileChunk * > id_session_uid_mapping
MemFile * written_memfile
MemFileChunk * reference_current_chunk
MemFileSharedStorage * shared_storage
ListBase chunks
size_t size
bool memchunk_identical
MemFile * memfile
FileReader reader