Files
test2/source/blender/blenkernel/BKE_ipo.h
Brecht Van Lommel 4786fbe774 Refactor: Remove extern "C" from most headers
The only remaining code in source/blender that must be compiled as C
is now datatoc generated code and the DNA defaults that use designated
initializers.

Pull Request: https://projects.blender.org/blender/blender/pulls/134469
2025-02-13 18:58:08 +01:00

36 lines
1.4 KiB
C

/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
*
* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/** \file
* \ingroup bke
*/
struct Main;
/**
* Called from #do_versions() in `readfile.cc` to convert the old 'IPO/adrcode'
* system to the new Layered Action system.
*
* Note: this *only* deals with animation data that is *pre-Animato*, and
* upgrades it all the way past Animato to modern Layered Actions and drivers.
* Actions that are already Animato actions are ignored, as they are versioned
* elsewhere (see `animrig::versioning::convert_legacy_actions()`). This is admittedly
* weird, but it's due to the fact that versioning pre-Animato data requires
* creating new datablocks, which must happen at a stage *after* the standard
* versioning where the simpler Animato-to-Layered upgrades are done.
*
* The basic method used here, is to loop over data-blocks which have IPO-data,
* and add those IPO's to new AnimData blocks as Actions.
* Action/NLA data only works well for Objects, so these only need to be checked for there.
*
* Data that has been converted should be freed immediately, which means that it is immediately
* clear which data-blocks have yet to be converted, and also prevent freeing errors when we exit.
*
* \note Currently done after all file reading.
*/
void do_versions_ipos_to_layered_actions(struct Main *bmain);
/* --------------------- xxx stuff ------------------------ */