This repository has been archived on 2023-10-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
blender-archive/source/blender/sequencer/SEQ_animation.h
Richard Antalik 4e9c6929c1 VSE: Handle drivers when duplicating strips
Most operations where strips are duplicated use `SEQ_animation` API,
which handles keyframe animation. Now drivers are handled as well.

When group of strips is duplicated and driver references other strip,
it will still reference original strip. However, this is much better,
than previous behavior, when strip duplication results in "transfer" of
driver from original strip to duplicated one.

Fixes T104141
2023-01-28 03:24:44 +01:00

47 lines
1.3 KiB
C++

/* SPDX-License-Identifier: GPL-2.0-or-later
* Copyright 2022 Blender Foundation. All rights reserved. */
#pragma once
/** \file
* \ingroup sequencer
*/
#ifdef __cplusplus
extern "C" {
#endif
struct GSet;
struct ListBase;
struct Scene;
struct Sequence;
struct SeqAnimationBackup;
bool SEQ_animation_curves_exist(struct Scene *scene);
bool SEQ_animation_drivers_exist(struct Scene *scene);
void SEQ_free_animdata(struct Scene *scene, struct Sequence *seq);
void SEQ_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs);
struct GSet *SEQ_fcurves_by_strip_get(const struct Sequence *seq, struct ListBase *fcurve_base);
typedef struct SeqAnimationBackup {
ListBase curves;
ListBase drivers;
} SeqAnimationBackup;
/**
* Move all F-Curves and drivers from `scene` to `backup`.
*/
void SEQ_animation_backup_original(struct Scene *scene, struct SeqAnimationBackup *backup);
/**
* Move all F-Curves and drivers from `backup` to `scene`.
*/
void SEQ_animation_restore_original(struct Scene *scene, struct SeqAnimationBackup *backup);
/**
* Duplicate F-Curves and drivers used by `seq` from `backup` to `scene`.
*/
void SEQ_animation_duplicate_backup_to_scene(struct Scene *scene,
struct Sequence *seq,
struct SeqAnimationBackup *backup);
#ifdef __cplusplus
}
#endif