Blender
V2.93
source
blender
depsgraph
intern
eval
deg_eval_runtime_backup.h
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or
3
* modify it under the terms of the GNU General Public License
4
* as published by the Free Software Foundation; either version 2
5
* of the License, or (at your option) any later version.
6
*
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
* GNU General Public License for more details.
11
*
12
* You should have received a copy of the GNU General Public License
13
* along with this program; if not, write to the Free Software Foundation,
14
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15
*
16
* The Original Code is Copyright (C) 2019 Blender Foundation.
17
* All rights reserved.
18
*/
19
24
#pragma once
25
26
#include "
DNA_ID.h
"
27
28
#include "
intern/eval/deg_eval_runtime_backup_animation.h
"
29
#include "
intern/eval/deg_eval_runtime_backup_movieclip.h
"
30
#include "
intern/eval/deg_eval_runtime_backup_object.h
"
31
#include "
intern/eval/deg_eval_runtime_backup_scene.h
"
32
#include "
intern/eval/deg_eval_runtime_backup_sound.h
"
33
#include "
intern/eval/deg_eval_runtime_backup_volume.h
"
34
35
namespace
blender
{
36
namespace
deg
{
37
38
struct
Depsgraph
;
39
40
class
RuntimeBackup
{
41
public
:
42
explicit
RuntimeBackup
(
const
Depsgraph
*
depsgraph
);
43
44
/* NOTE: Will reset all runtime fields which has been backed up to nullptr. */
45
void
init_from_id
(
ID
*
id
);
46
47
/* Restore fields to the given ID. */
48
void
restore_to_id
(
ID
*
id
);
49
50
/* Denotes whether init_from_id did put anything into the backup storage.
51
* This will not be the case when init_from_id() is called for an ID which has never been
52
* copied-on-write. In this case there is no need to backup or restore anything.
53
*
54
* It also allows to have restore() logic to be symmetrical to init() without need to worry
55
* that init() might not have happened.
56
*
57
* In practice this is used by audio system to lock audio while scene is going through
58
* copy-on-write mechanism. */
59
bool
have_backup
;
60
61
/* Struct members of the ID pointer. */
62
struct
{
63
void
*
py_instance
;
64
}
id_data
;
65
66
AnimationBackup
animation_backup
;
67
SceneBackup
scene_backup
;
68
SoundBackup
sound_backup
;
69
ObjectRuntimeBackup
object_backup
;
70
DrawDataList
drawdata_backup
;
71
DrawDataList
*
drawdata_ptr
;
72
MovieClipBackup
movieclip_backup
;
73
VolumeBackup
volume_backup
;
74
};
75
76
}
// namespace deg
77
}
// namespace blender
Depsgraph
struct Depsgraph Depsgraph
Definition:
DEG_depsgraph.h:51
DNA_ID.h
ID and Library types, which are fundamental for sdna.
blender::deg::AnimationBackup
Definition:
deg_eval_runtime_backup_animation.h:52
blender::deg::MovieClipBackup
Definition:
deg_eval_runtime_backup_movieclip.h:36
blender::deg::ObjectRuntimeBackup
Definition:
deg_eval_runtime_backup_object.h:41
blender::deg::RuntimeBackup
Definition:
deg_eval_runtime_backup.h:40
blender::deg::RuntimeBackup::drawdata_backup
DrawDataList drawdata_backup
Definition:
deg_eval_runtime_backup.h:70
blender::deg::RuntimeBackup::drawdata_ptr
DrawDataList * drawdata_ptr
Definition:
deg_eval_runtime_backup.h:71
blender::deg::RuntimeBackup::sound_backup
SoundBackup sound_backup
Definition:
deg_eval_runtime_backup.h:68
blender::deg::RuntimeBackup::have_backup
bool have_backup
Definition:
deg_eval_runtime_backup.h:59
blender::deg::RuntimeBackup::init_from_id
void init_from_id(ID *id)
Definition:
deg_eval_runtime_backup.cc:48
blender::deg::RuntimeBackup::object_backup
ObjectRuntimeBackup object_backup
Definition:
deg_eval_runtime_backup.h:69
blender::deg::RuntimeBackup::id_data
struct blender::deg::RuntimeBackup::@184 id_data
blender::deg::RuntimeBackup::animation_backup
AnimationBackup animation_backup
Definition:
deg_eval_runtime_backup.h:66
blender::deg::RuntimeBackup::restore_to_id
void restore_to_id(ID *id)
Definition:
deg_eval_runtime_backup.cc:89
blender::deg::RuntimeBackup::RuntimeBackup
RuntimeBackup(const Depsgraph *depsgraph)
Definition:
deg_eval_runtime_backup.cc:34
blender::deg::RuntimeBackup::movieclip_backup
MovieClipBackup movieclip_backup
Definition:
deg_eval_runtime_backup.h:72
blender::deg::RuntimeBackup::scene_backup
SceneBackup scene_backup
Definition:
deg_eval_runtime_backup.h:67
blender::deg::RuntimeBackup::py_instance
void * py_instance
Definition:
deg_eval_runtime_backup.h:63
blender::deg::RuntimeBackup::volume_backup
VolumeBackup volume_backup
Definition:
deg_eval_runtime_backup.h:73
blender::deg::SceneBackup
Definition:
deg_eval_runtime_backup_scene.h:36
blender::deg::SoundBackup
Definition:
deg_eval_runtime_backup_sound.h:34
blender::deg::VolumeBackup
Definition:
deg_eval_runtime_backup_volume.h:35
depsgraph
const Depsgraph * depsgraph
Definition:
deg_eval_copy_on_write.cc:513
deg_eval_runtime_backup_animation.h
deg_eval_runtime_backup_movieclip.h
deg_eval_runtime_backup_object.h
deg_eval_runtime_backup_scene.h
deg_eval_runtime_backup_sound.h
deg_eval_runtime_backup_volume.h
blender::deg
Definition:
deg_builder.cc:53
blender
Definition:
BKE_attribute_access.hh:30
DrawDataList
Definition:
DNA_ID.h:58
ID
Definition:
DNA_ID.h:273
blender::deg::Depsgraph
Definition:
depsgraph.h:60
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1