31 #define UNDO_REF_ID_TYPE(ptr_ty) \
32 typedef struct UndoRefID_##ptr_ty { \
34 char name[MAX_ID_NAME]; \
175 #define BKE_UNDOSYS_TYPE_IS_MEMFILE_SKIP(ty) ELEM(ty, BKE_UNDOSYS_TYPE_IMAGE)
193 #define BKE_undosys_stack_limit_steps_and_memory_defaults(ustack) \
194 BKE_undosys_stack_limit_steps_and_memory(ustack, U.undosteps, (size_t)U.undomemory * 1024 * 1024)
335 void BKE_undosys_foreach_ID_ref(
UndoStack *ustack,
UndoType * BKE_undosys_type_append(void(*undosys_fn)(UndoType *))
struct UndoRefID UndoRefID
@ UNDOTYPE_FLAG_NEED_CONTEXT_FOR_ENCODE
@ UNDOTYPE_FLAG_DECODE_ACTIVE_STEP
bool BKE_undosys_stack_has_undo(const UndoStack *ustack, const char *name)
#define UNDO_REF_ID_TYPE(ptr_ty)
const UndoType * BKE_UNDOSYS_TYPE_SCULPT
bool BKE_undosys_step_undo_with_data_ex(UndoStack *ustack, struct bContext *C, UndoStep *us, bool use_skip)
UndoStep * BKE_undosys_step_push_init_with_type(UndoStack *ustack, struct bContext *C, const char *name, const UndoType *ut)
UndoStep * BKE_undosys_step_push_init(UndoStack *ustack, struct bContext *C, const char *name)
struct UndoStack UndoStack
void BKE_undosys_stack_clear_active(UndoStack *ustack)
eUndoPushReturn BKE_undosys_step_push(UndoStack *ustack, struct bContext *C, const char *name)
UndoStack * BKE_undosys_stack_create(void)
eUndoStepDir BKE_undosys_step_calc_direction(const UndoStack *ustack, const UndoStep *us_target, const UndoStep *us_reference)
UndoStep * BKE_undosys_step_same_type_prev(UndoStep *us)
UndoStep * BKE_undosys_stack_init_or_active_with_type(UndoStack *ustack, const UndoType *ut)
eUndoPushReturn BKE_undosys_step_push_with_type(UndoStack *ustack, struct bContext *C, const char *name, const UndoType *ut)
void BKE_undosys_stack_init_from_context(UndoStack *ustack, struct bContext *C)
const UndoType * BKE_UNDOSYS_TYPE_MEMFILE
bool BKE_undosys_step_undo(UndoStack *ustack, struct bContext *C)
const UndoType * BKE_UNDOSYS_TYPE_PARTICLE
void BKE_undosys_stack_clear(UndoStack *ustack)
const UndoType * BKE_UNDOSYS_TYPE_TEXT
bool BKE_undosys_step_load_data_ex(UndoStack *ustack, struct bContext *C, UndoStep *us_target, UndoStep *us_reference, bool use_skip)
UndoStep * BKE_undosys_step_find_by_name(UndoStack *ustack, const char *name)
void BKE_undosys_stack_limit_steps_and_memory(UndoStack *ustack, int steps, size_t memory_limit)
UndoStep * BKE_undosys_stack_active_with_type(UndoStack *ustack, const UndoType *ut)
UndoStep * BKE_undosys_step_find_by_name_with_type(UndoStack *ustack, const char *name, const UndoType *ut)
UndoStep * BKE_undosys_step_same_type_next(UndoStep *us)
@ UNDO_PUSH_RET_OVERRIDE_CHANGED
UndoStep * BKE_undosys_step_find_by_type(UndoStack *ustack, const UndoType *ut)
bool BKE_undosys_step_load_data(UndoStack *ustack, struct bContext *C, UndoStep *us_target)
bool BKE_undosys_step_redo_with_data(UndoStack *ustack, struct bContext *C, UndoStep *us_target)
void BKE_undosys_stack_destroy(UndoStack *ustack)
bool BKE_undosys_step_redo_with_data_ex(UndoStack *ustack, struct bContext *C, UndoStep *us, bool use_skip)
void BKE_undosys_stack_group_end(UndoStack *ustack)
void BKE_undosys_step_load_from_index(UndoStack *ustack, struct bContext *C, int index)
bool BKE_undosys_step_redo(UndoStack *ustack, struct bContext *C)
const UndoType * BKE_UNDOSYS_TYPE_PAINTCURVE
void BKE_undosys_type_free_all(void)
void BKE_undosys_stack_init_from_main(UndoStack *ustack, struct Main *bmain)
void BKE_undosys_print(UndoStack *ustack)
bool BKE_undosys_step_undo_with_data(UndoStack *ustack, struct bContext *C, UndoStep *us_target)
void BKE_undosys_stack_group_begin(UndoStack *ustack)
const UndoType * BKE_UNDOSYS_TYPE_IMAGE
void(* UndoTypeForEachIDRefFn)(void *user_data, struct UndoRefID *id_ref)
ID and Library types, which are fundamental for sdna.
These structs are the foundation for all linked lists in the library system.
SyclQueue void void size_t num_bytes void
struct UndoStep * step_active
struct UndoStep * step_active_memfile
struct UndoStep * step_init
const struct UndoType * type
void(* step_decode)(struct bContext *C, struct Main *bmain, UndoStep *us, eUndoStepDir dir, bool is_final)
bool(* step_encode)(struct bContext *C, struct Main *bmain, UndoStep *us)
void(* step_encode_init)(struct bContext *C, UndoStep *us)
void(* step_foreach_ID_ref)(UndoStep *us, UndoTypeForEachIDRefFn foreach_ID_ref_fn, void *user_data)
void(* step_free)(UndoStep *us)
bool(* poll)(struct bContext *C)