Blender
V3.3
source
blender
depsgraph
intern
eval
deg_eval_runtime_backup_scene.cc
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2019 Blender Foundation. All rights reserved. */
3
8
#include "
intern/eval/deg_eval_runtime_backup_scene.h
"
9
10
#include "
BKE_sound.h
"
11
12
#include "
DNA_rigidbody_types.h
"
13
#include "
DNA_scene_types.h
"
14
15
namespace
blender::deg
{
16
17
SceneBackup::SceneBackup
(
const
Depsgraph
*
depsgraph
) : sequencer_backup(
depsgraph
)
18
{
19
reset
();
20
}
21
22
void
SceneBackup::reset
()
23
{
24
sound_scene
=
nullptr
;
25
playback_handle
=
nullptr
;
26
sound_scrub_handle
=
nullptr
;
27
speaker_handles
=
nullptr
;
28
rigidbody_last_time
= -1;
29
}
30
31
void
SceneBackup::init_from_scene
(
Scene
*
scene
)
32
{
33
BKE_sound_lock
();
34
35
sound_scene
=
scene
->
sound_scene
;
36
playback_handle
=
scene
->
playback_handle
;
37
sound_scrub_handle
=
scene
->
sound_scrub_handle
;
38
speaker_handles
=
scene
->
speaker_handles
;
39
40
if
(
scene
->
rigidbody_world
!=
nullptr
) {
41
rigidbody_last_time
=
scene
->
rigidbody_world
->
ltime
;
42
}
43
44
/* Clear pointers stored in the scene, so they are not freed when copied-on-written datablock
45
* is freed for re-allocation. */
46
scene
->
sound_scene
=
nullptr
;
47
scene
->
playback_handle
=
nullptr
;
48
scene
->
sound_scrub_handle
=
nullptr
;
49
scene
->
speaker_handles
=
nullptr
;
50
51
sequencer_backup
.
init_from_scene
(
scene
);
52
}
53
54
void
SceneBackup::restore_to_scene
(
Scene
*
scene
)
55
{
56
scene
->
sound_scene
=
sound_scene
;
57
scene
->
playback_handle
=
playback_handle
;
58
scene
->
sound_scrub_handle
=
sound_scrub_handle
;
59
scene
->
speaker_handles
=
speaker_handles
;
60
61
if
(
scene
->
rigidbody_world
!=
nullptr
) {
62
scene
->
rigidbody_world
->
ltime
=
rigidbody_last_time
;
63
}
64
65
sequencer_backup
.
restore_to_scene
(
scene
);
66
67
BKE_sound_unlock
();
68
69
reset
();
70
}
71
72
}
// namespace blender::deg
BKE_sound.h
BKE_sound_lock
void BKE_sound_lock(void)
Definition:
blenkernel/intern/sound.c:1310
BKE_sound_unlock
void BKE_sound_unlock(void)
Definition:
blenkernel/intern/sound.c:1313
DNA_rigidbody_types.h
Types and defines for representing Rigid Body entities.
DNA_scene_types.h
blender::deg::SceneBackup::sound_scrub_handle
void * sound_scrub_handle
Definition:
deg_eval_runtime_backup_scene.h:35
blender::deg::SceneBackup::reset
void reset()
Definition:
deg_eval_runtime_backup_scene.cc:22
blender::deg::SceneBackup::playback_handle
void * playback_handle
Definition:
deg_eval_runtime_backup_scene.h:34
blender::deg::SceneBackup::sound_scene
void * sound_scene
Definition:
deg_eval_runtime_backup_scene.h:33
blender::deg::SceneBackup::rigidbody_last_time
float rigidbody_last_time
Definition:
deg_eval_runtime_backup_scene.h:37
blender::deg::SceneBackup::sequencer_backup
SequencerBackup sequencer_backup
Definition:
deg_eval_runtime_backup_scene.h:39
blender::deg::SceneBackup::speaker_handles
void * speaker_handles
Definition:
deg_eval_runtime_backup_scene.h:36
blender::deg::SceneBackup::init_from_scene
void init_from_scene(Scene *scene)
Definition:
deg_eval_runtime_backup_scene.cc:31
blender::deg::SceneBackup::restore_to_scene
void restore_to_scene(Scene *scene)
Definition:
deg_eval_runtime_backup_scene.cc:54
blender::deg::SceneBackup::SceneBackup
SceneBackup(const Depsgraph *depsgraph)
Definition:
deg_eval_runtime_backup_scene.cc:17
blender::deg::SequencerBackup::init_from_scene
void init_from_scene(Scene *scene)
Definition:
deg_eval_runtime_backup_sequencer.cc:38
blender::deg::SequencerBackup::restore_to_scene
void restore_to_scene(Scene *scene)
Definition:
deg_eval_runtime_backup_sequencer.cc:57
scene
Scene scene
Definition:
deg_eval_copy_on_write.cc:106
depsgraph
const Depsgraph * depsgraph
Definition:
deg_eval_copy_on_write.cc:499
deg_eval_runtime_backup_scene.h
blender::deg
Definition:
deg_builder.cc:40
RigidBodyWorld::ltime
float ltime
Definition:
DNA_rigidbody_types.h:55
Scene
Definition:
DNA_scene_types.h:1739
Scene::sound_scrub_handle
void * sound_scrub_handle
Definition:
DNA_scene_types.h:1792
Scene::rigidbody_world
struct RigidBodyWorld * rigidbody_world
Definition:
DNA_scene_types.h:1837
Scene::sound_scene
void * sound_scene
Definition:
DNA_scene_types.h:1790
Scene::speaker_handles
void * speaker_handles
Definition:
DNA_scene_types.h:1793
Scene::playback_handle
void * playback_handle
Definition:
DNA_scene_types.h:1791
blender::deg::Depsgraph
Definition:
depsgraph.h:43
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1