BKE_lib: Convert `BKE_lib_remap` and `lib_intern` headers to be fully C++.
This commit is contained in:
parent
1317c951fb
commit
fe3cb11ae4
|
@ -140,7 +140,7 @@ class AssetLibrary {
|
|||
bool remove_asset(AssetRepresentation &asset);
|
||||
|
||||
/**
|
||||
* Remap ID pointers for local ID assets, see #BKE_lib_remap.h. When an ID pointer would be
|
||||
* Remap ID pointers for local ID assets, see #BKE_lib_remap.hh. When an ID pointer would be
|
||||
* mapped to null (typically when an ID gets removed), the asset is removed, because we don't
|
||||
* support such empty/null assets.
|
||||
*/
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "DNA_ID.h"
|
||||
#include "DNA_asset_types.h"
|
||||
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
|
||||
#include "asset_storage.hh"
|
||||
|
||||
|
|
|
@ -481,7 +481,7 @@ struct ID *BKE_id_copy_for_use_in_bmain(struct Main *bmain, const struct ID *id)
|
|||
* \param bmain: May be NULL, in which case there is no guarantee that internal remapping of ID
|
||||
* pointers to themselves will be complete (regarding depsgraph and/or runtime data updates).
|
||||
* \param do_self_remap: Whether to remap internal pointers to itself or not.
|
||||
* \param self_remap_flags: Flags controlling self remapping, see BKE_lib_remap.h.
|
||||
* \param self_remap_flags: Flags controlling self remapping, see BKE_lib_remap.hh.
|
||||
*/
|
||||
void BKE_lib_id_swap(struct Main *bmain,
|
||||
struct ID *id_a,
|
||||
|
|
|
@ -23,13 +23,10 @@
|
|||
#include "BLI_compiler_attrs.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct ID;
|
||||
struct IDRemapper;
|
||||
struct LinkNode;
|
||||
struct Main;
|
||||
|
||||
/* BKE_libblock_free, delete are declared in BKE_lib_id.h for convenience. */
|
||||
|
||||
|
@ -120,13 +117,9 @@ typedef enum eIDRemapType {
|
|||
*
|
||||
* \note Is preferred over BKE_libblock_remap_locked due to performance.
|
||||
*/
|
||||
void BKE_libblock_remap_multiple_locked(struct Main *bmain,
|
||||
struct IDRemapper *mappings,
|
||||
const int remap_flags);
|
||||
void BKE_libblock_remap_multiple_locked(Main *bmain, IDRemapper *mappings, const int remap_flags);
|
||||
|
||||
void BKE_libblock_remap_multiple(struct Main *bmain,
|
||||
struct IDRemapper *mappings,
|
||||
const int remap_flags);
|
||||
void BKE_libblock_remap_multiple(Main *bmain, IDRemapper *mappings, const int remap_flags);
|
||||
|
||||
/**
|
||||
* Bare raw remapping of IDs, with no other processing than actually updating the ID pointers.
|
||||
|
@ -137,9 +130,7 @@ void BKE_libblock_remap_multiple(struct Main *bmain,
|
|||
* case e.g. in read-file process.
|
||||
*
|
||||
* WARNING: This call will likely leave the given BMain in invalid state in many aspects. */
|
||||
void BKE_libblock_remap_multiple_raw(struct Main *bmain,
|
||||
struct IDRemapper *mappings,
|
||||
const int remap_flags);
|
||||
void BKE_libblock_remap_multiple_raw(Main *bmain, IDRemapper *mappings, const int remap_flags);
|
||||
/**
|
||||
* Replace all references in given Main to \a old_id by \a new_id
|
||||
* (if \a new_id is NULL, it unlinks \a old_id).
|
||||
|
@ -147,9 +138,9 @@ void BKE_libblock_remap_multiple_raw(struct Main *bmain,
|
|||
* \note Requiring new_id to be non-null, this *may* not be the case ultimately,
|
||||
* but makes things simpler for now.
|
||||
*/
|
||||
void BKE_libblock_remap_locked(struct Main *bmain, void *old_idv, void *new_idv, int remap_flags)
|
||||
void BKE_libblock_remap_locked(Main *bmain, void *old_idv, void *new_idv, int remap_flags)
|
||||
ATTR_NONNULL(1, 2);
|
||||
void BKE_libblock_remap(struct Main *bmain, void *old_idv, void *new_idv, int remap_flags)
|
||||
void BKE_libblock_remap(Main *bmain, void *old_idv, void *new_idv, int remap_flags)
|
||||
ATTR_NONNULL(1, 2);
|
||||
|
||||
/**
|
||||
|
@ -159,10 +150,8 @@ void BKE_libblock_remap(struct Main *bmain, void *old_idv, void *new_idv, int re
|
|||
* \param do_flag_never_null: If true, all IDs using \a idv in a 'non-NULL' way are flagged by
|
||||
* #LIB_TAG_DOIT flag (quite obviously, 'non-NULL' usages can never be unlinked by this function).
|
||||
*/
|
||||
void BKE_libblock_unlink(struct Main *bmain,
|
||||
void *idv,
|
||||
bool do_flag_never_null,
|
||||
bool do_skip_indirect) ATTR_NONNULL();
|
||||
void BKE_libblock_unlink(Main *bmain, void *idv, bool do_flag_never_null, bool do_skip_indirect)
|
||||
ATTR_NONNULL();
|
||||
|
||||
/**
|
||||
* Similar to libblock_remap, but only affects IDs used by given \a idv ID.
|
||||
|
@ -173,17 +162,14 @@ void BKE_libblock_unlink(struct Main *bmain,
|
|||
* \param bmain: May be NULL, in which case there won't be depsgraph updates nor post-processing on
|
||||
* some ID types (like collections or objects) to ensure their runtime data is valid.
|
||||
*/
|
||||
void BKE_libblock_relink_ex(
|
||||
struct Main *bmain, void *idv, void *old_idv, void *new_idv, int remap_flags) ATTR_NONNULL(2);
|
||||
void BKE_libblock_relink_ex(Main *bmain, void *idv, void *old_idv, void *new_idv, int remap_flags)
|
||||
ATTR_NONNULL(2);
|
||||
/**
|
||||
* Same as #BKE_libblock_relink_ex, but applies all rules defined in \a id_remapper to \a ids (or
|
||||
* does cleanup if `ID_REMAP_TYPE_CLEANUP` is specified as \a remap_type).
|
||||
*/
|
||||
void BKE_libblock_relink_multiple(struct Main *bmain,
|
||||
struct LinkNode *ids,
|
||||
eIDRemapType remap_type,
|
||||
struct IDRemapper *id_remapper,
|
||||
int remap_flags);
|
||||
void BKE_libblock_relink_multiple(
|
||||
Main *bmain, LinkNode *ids, eIDRemapType remap_type, IDRemapper *id_remapper, int remap_flags);
|
||||
|
||||
/**
|
||||
* Remaps ID usages of given ID to their `id->newid` pointer if not None, and proceeds recursively
|
||||
|
@ -194,18 +180,16 @@ void BKE_libblock_relink_multiple(struct Main *bmain,
|
|||
* Very specific usage, not sure we'll keep it on the long run,
|
||||
* currently only used in Object/Collection duplication code.
|
||||
*/
|
||||
void BKE_libblock_relink_to_newid(struct Main *bmain, struct ID *id, int remap_flag)
|
||||
ATTR_NONNULL();
|
||||
void BKE_libblock_relink_to_newid(Main *bmain, ID *id, int remap_flag) ATTR_NONNULL();
|
||||
|
||||
typedef void (*BKE_library_free_notifier_reference_cb)(const void *);
|
||||
typedef void (*BKE_library_remap_editor_id_reference_cb)(const struct IDRemapper *mappings);
|
||||
typedef void (*BKE_library_remap_editor_id_reference_cb)(const IDRemapper *mappings);
|
||||
|
||||
void BKE_library_callback_free_notifier_reference_set(BKE_library_free_notifier_reference_cb func);
|
||||
void BKE_library_callback_remap_editor_id_reference_set(
|
||||
BKE_library_remap_editor_id_reference_cb func);
|
||||
|
||||
/* IDRemapper */
|
||||
struct IDRemapper;
|
||||
typedef enum IDRemapperApplyResult {
|
||||
/** No remapping rules available for the source. */
|
||||
ID_REMAP_RESULT_SOURCE_UNAVAILABLE,
|
||||
|
@ -249,33 +233,31 @@ typedef enum IDRemapperApplyOptions {
|
|||
} IDRemapperApplyOptions;
|
||||
ENUM_OPERATORS(IDRemapperApplyOptions, ID_REMAP_APPLY_UNMAP_WHEN_REMAPPING_TO_SELF)
|
||||
|
||||
typedef void (*IDRemapperIterFunction)(struct ID *old_id, struct ID *new_id, void *user_data);
|
||||
typedef void (*IDRemapperIterFunction)(ID *old_id, ID *new_id, void *user_data);
|
||||
|
||||
/**
|
||||
* Create a new ID Remapper.
|
||||
*
|
||||
* An ID remapper stores multiple remapping rules.
|
||||
*/
|
||||
struct IDRemapper *BKE_id_remapper_create(void);
|
||||
IDRemapper *BKE_id_remapper_create(void);
|
||||
|
||||
void BKE_id_remapper_clear(struct IDRemapper *id_remapper);
|
||||
bool BKE_id_remapper_is_empty(const struct IDRemapper *id_remapper);
|
||||
void BKE_id_remapper_clear(IDRemapper *id_remapper);
|
||||
bool BKE_id_remapper_is_empty(const IDRemapper *id_remapper);
|
||||
/** Free the given ID Remapper. */
|
||||
void BKE_id_remapper_free(struct IDRemapper *id_remapper);
|
||||
void BKE_id_remapper_free(IDRemapper *id_remapper);
|
||||
/** Add a new remapping. Does not replace an existing mapping for `old_id`, if any. */
|
||||
void BKE_id_remapper_add(struct IDRemapper *id_remapper, struct ID *old_id, struct ID *new_id);
|
||||
void BKE_id_remapper_add(IDRemapper *id_remapper, ID *old_id, ID *new_id);
|
||||
/** Add a new remapping, replacing a potential already existing mapping of `old_id`. */
|
||||
void BKE_id_remapper_add_overwrite(struct IDRemapper *id_remapper,
|
||||
struct ID *old_id,
|
||||
struct ID *new_id);
|
||||
void BKE_id_remapper_add_overwrite(IDRemapper *id_remapper, ID *old_id, ID *new_id);
|
||||
|
||||
/**
|
||||
* Apply a remapping.
|
||||
*
|
||||
* Update the id pointer stored in the given r_id_ptr if a remapping rule exists.
|
||||
*/
|
||||
IDRemapperApplyResult BKE_id_remapper_apply(const struct IDRemapper *id_remapper,
|
||||
struct ID **r_id_ptr,
|
||||
IDRemapperApplyResult BKE_id_remapper_apply(const IDRemapper *id_remapper,
|
||||
ID **r_id_ptr,
|
||||
IDRemapperApplyOptions options);
|
||||
/**
|
||||
* Apply a remapping.
|
||||
|
@ -286,28 +268,24 @@ IDRemapperApplyResult BKE_id_remapper_apply(const struct IDRemapper *id_remapper
|
|||
* \param id_self: required for ID_REMAP_APPLY_UNMAP_WHEN_REMAPPING_TO_SELF.
|
||||
* When remapping to id_self it will then be remapped to NULL.
|
||||
*/
|
||||
IDRemapperApplyResult BKE_id_remapper_apply_ex(const struct IDRemapper *id_remapper,
|
||||
struct ID **r_id_ptr,
|
||||
IDRemapperApplyResult BKE_id_remapper_apply_ex(const IDRemapper *id_remapper,
|
||||
ID **r_id_ptr,
|
||||
IDRemapperApplyOptions options,
|
||||
struct ID *id_self);
|
||||
bool BKE_id_remapper_has_mapping_for(const struct IDRemapper *id_remapper, uint64_t type_filter);
|
||||
ID *id_self);
|
||||
bool BKE_id_remapper_has_mapping_for(const IDRemapper *id_remapper, uint64_t type_filter);
|
||||
|
||||
/**
|
||||
* Determine the mapping result, without applying the mapping.
|
||||
*/
|
||||
IDRemapperApplyResult BKE_id_remapper_get_mapping_result(const struct IDRemapper *id_remapper,
|
||||
struct ID *id,
|
||||
IDRemapperApplyResult BKE_id_remapper_get_mapping_result(const IDRemapper *id_remapper,
|
||||
ID *id,
|
||||
IDRemapperApplyOptions options,
|
||||
const struct ID *id_self);
|
||||
void BKE_id_remapper_iter(const struct IDRemapper *id_remapper,
|
||||
const ID *id_self);
|
||||
void BKE_id_remapper_iter(const IDRemapper *id_remapper,
|
||||
IDRemapperIterFunction func,
|
||||
void *user_data);
|
||||
|
||||
/** Returns a readable string for the given result. Can be used for debugging purposes. */
|
||||
const char *BKE_id_remapper_result_string(const IDRemapperApplyResult result);
|
||||
/** Prints out the rules inside the given id_remapper. Can be used for debugging purposes. */
|
||||
void BKE_id_remapper_print(const struct IDRemapper *id_remapper);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
void BKE_id_remapper_print(const IDRemapper *id_remapper);
|
|
@ -416,7 +416,7 @@ set(SRC
|
|||
BKE_lib_id.h
|
||||
BKE_lib_override.hh
|
||||
BKE_lib_query.h
|
||||
BKE_lib_remap.h
|
||||
BKE_lib_remap.hh
|
||||
BKE_library.h
|
||||
BKE_light.h
|
||||
BKE_light_linking.h
|
||||
|
@ -522,7 +522,7 @@ set(SRC
|
|||
intern/CCGSubSurf_intern.h
|
||||
intern/attribute_access_intern.hh
|
||||
intern/data_transfer_intern.h
|
||||
intern/lib_intern.h
|
||||
intern/lib_intern.hh
|
||||
intern/multires_inline.hh
|
||||
intern/multires_reshape.hh
|
||||
intern/multires_unsubdivide.hh
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_main_idmap.hh"
|
||||
#include "BKE_main_namemap.hh"
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_main_namemap.hh"
|
||||
#include "BKE_material.h"
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_paint.hh"
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_object.hh"
|
||||
#include "BKE_preview_image.hh"
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_modifier.hh"
|
||||
#include "BKE_object.hh"
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_main_namemap.hh"
|
||||
#include "BKE_node.h"
|
||||
|
@ -68,7 +68,7 @@
|
|||
|
||||
#include "atomic_ops.h"
|
||||
|
||||
#include "lib_intern.h"
|
||||
#include "lib_intern.hh"
|
||||
|
||||
//#define DEBUG_TIME
|
||||
|
||||
|
|
|
@ -29,11 +29,11 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_main_namemap.hh"
|
||||
|
||||
#include "lib_intern.h"
|
||||
#include "lib_intern.hh"
|
||||
|
||||
#include "DEG_depsgraph.hh"
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
|
@ -136,8 +136,6 @@ static const blender::bke::id::remapper::IDRemapper *unwrap(const IDRemapper *re
|
|||
static_cast<const void *>(remapper));
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
|
||||
IDRemapper *BKE_id_remapper_create()
|
||||
{
|
||||
blender::bke::id::remapper::IDRemapper *remapper =
|
||||
|
@ -251,4 +249,3 @@ void BKE_id_remapper_print(const IDRemapper *id_remapper)
|
|||
{
|
||||
BKE_id_remapper_iter(id_remapper, id_remapper_print_item_cb, nullptr);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#include "testing/testing.h"
|
||||
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
|
||||
#include "BLI_string.h"
|
||||
|
||||
|
|
|
@ -8,11 +8,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "BKE_lib_remap.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "BKE_lib_remap.hh"
|
||||
|
||||
extern BKE_library_free_notifier_reference_cb free_notifier_reference_cb;
|
||||
|
||||
|
@ -21,11 +17,4 @@ extern BKE_library_remap_editor_id_reference_cb remap_editor_id_reference_cb;
|
|||
struct ID;
|
||||
struct Main;
|
||||
|
||||
void lib_id_copy_ensure_local(struct Main *bmain,
|
||||
const struct ID *old_id,
|
||||
struct ID *new_id,
|
||||
const int flags);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
void lib_id_copy_ensure_local(Main *bmain, const ID *old_id, ID *new_id, const int flags);
|
|
@ -37,7 +37,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_main_namemap.hh"
|
||||
#include "BKE_node.hh"
|
||||
|
@ -64,7 +64,7 @@
|
|||
|
||||
#include "atomic_ops.h"
|
||||
|
||||
#include "lib_intern.h"
|
||||
#include "lib_intern.hh"
|
||||
|
||||
#define OVERRIDE_AUTO_CHECK_DELAY 0.2 /* 200ms between auto-override checks. */
|
||||
//#define DEBUG_OVERRIDE_TIMEIT
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_mball.h"
|
||||
|
@ -35,7 +35,7 @@
|
|||
#include "DEG_depsgraph.hh"
|
||||
#include "DEG_depsgraph_build.hh"
|
||||
|
||||
#include "lib_intern.h" /* own include */
|
||||
#include "lib_intern.hh" /* own include */
|
||||
|
||||
static CLG_LogRef LOG = {"bke.lib_remap"};
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "BKE_global.h"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mesh.hh"
|
||||
#include "BKE_node.hh"
|
||||
|
|
|
@ -0,0 +1,256 @@
|
|||
/* SPDX-FileCopyrightText: 2020 Blender Authors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
#include "testing/testing.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "CLG_log.h"
|
||||
|
||||
#include "BLI_listbase.h"
|
||||
#include "BLI_string.h"
|
||||
|
||||
#include "BKE_collection.h"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_main_namemap.hh"
|
||||
|
||||
#include "DNA_ID.h"
|
||||
#include "DNA_collection_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
namespace blender::bke::tests {
|
||||
|
||||
class BMainTest : public testing::Test {
|
||||
public:
|
||||
static void SetUpTestSuite()
|
||||
{
|
||||
CLG_init();
|
||||
BKE_idtype_init();
|
||||
}
|
||||
static void TearDownTestSuite()
|
||||
{
|
||||
CLG_exit();
|
||||
}
|
||||
};
|
||||
|
||||
class BMainMergeTest : public BMainTest {
|
||||
public:
|
||||
void SetUp() override
|
||||
{
|
||||
bmain_src = BKE_main_new();
|
||||
bmain_dst = BKE_main_new();
|
||||
}
|
||||
|
||||
void TearDown() override
|
||||
{
|
||||
if (bmain_src) {
|
||||
BKE_main_free(bmain_src);
|
||||
}
|
||||
if (bmain_dst) {
|
||||
BKE_main_free(bmain_dst);
|
||||
}
|
||||
}
|
||||
|
||||
Main *bmain_src;
|
||||
Main *bmain_dst;
|
||||
};
|
||||
|
||||
TEST_F(BMainMergeTest, basics)
|
||||
{
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_dst->libraries));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_dst->collections));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_dst->objects));
|
||||
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_src->libraries));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_src->collections));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_src->objects));
|
||||
|
||||
BKE_id_new(bmain_dst, ID_GR, "Coll_dst");
|
||||
Collection *coll = static_cast<Collection *>(BKE_id_new(bmain_src, ID_GR, "Coll_src"));
|
||||
Object *ob = static_cast<Object *>(BKE_id_new(bmain_src, ID_OB, "Ob_src"));
|
||||
BKE_collection_object_add(bmain_src, coll, ob);
|
||||
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(0, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->objects));
|
||||
|
||||
BKE_main_merge(bmain_dst, &bmain_src, nullptr);
|
||||
|
||||
EXPECT_EQ(2, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(nullptr, bmain_src);
|
||||
|
||||
bmain_src = BKE_main_new();
|
||||
Collection *coll_2 = static_cast<Collection *>(BKE_id_new(bmain_src, ID_GR, "Coll_src_2"));
|
||||
Object *ob_2 = static_cast<Object *>(BKE_id_new(bmain_src, ID_OB, "Ob_src"));
|
||||
BKE_collection_object_add(bmain_src, coll_2, ob_2);
|
||||
|
||||
EXPECT_EQ(2, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->objects));
|
||||
|
||||
BKE_main_merge(bmain_dst, &bmain_src, nullptr);
|
||||
|
||||
/* The second `Ob_src` object in `bmain_src` cannot be merged in `bmain_dst`, since its name
|
||||
* would collide with the first object. */
|
||||
EXPECT_EQ(3, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(nullptr, bmain_src);
|
||||
|
||||
/* `Coll_src_2` should have been remapped to using `Ob_src` in `bmain_dst`, instead of `Ob_src`
|
||||
* in `bmain_src`. */
|
||||
EXPECT_EQ(1, BLI_listbase_count(&coll_2->gobject));
|
||||
EXPECT_EQ(ob, static_cast<CollectionObject *>(coll_2->gobject.first)->ob);
|
||||
}
|
||||
|
||||
TEST_F(BMainMergeTest, linked_data)
|
||||
{
|
||||
constexpr char *DST_PATH = "/tmp/dst/dst.blend";
|
||||
constexpr char *SRC_PATH = "/tmp/src/src.blend";
|
||||
constexpr char *LIB_PATH = "/tmp/lib/lib.blend";
|
||||
|
||||
constexpr char *LIB_PATH_RELATIVE = "//lib/lib.blend";
|
||||
constexpr char *LIB_PATH_RELATIVE_ABS_SRC = "/tmp/src/lib/lib.blend";
|
||||
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_dst->libraries));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_dst->collections));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_dst->objects));
|
||||
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_src->libraries));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_src->collections));
|
||||
EXPECT_TRUE(BLI_listbase_is_empty(&bmain_src->objects));
|
||||
|
||||
BLI_strncpy(bmain_dst->filepath, DST_PATH, sizeof(bmain_dst->filepath));
|
||||
BLI_strncpy(bmain_src->filepath, SRC_PATH, sizeof(bmain_dst->filepath));
|
||||
|
||||
BKE_id_new(bmain_dst, ID_GR, "Coll_dst");
|
||||
|
||||
Collection *coll_1 = static_cast<Collection *>(BKE_id_new(bmain_src, ID_GR, "Coll_src"));
|
||||
Object *ob_1 = static_cast<Object *>(BKE_id_new(bmain_src, ID_OB, "Ob_src"));
|
||||
BKE_collection_object_add(bmain_src, coll_1, ob_1);
|
||||
Library *lib_src_1 = static_cast<Library *>(BKE_id_new(bmain_src, ID_LI, LIB_PATH));
|
||||
BKE_library_filepath_set(bmain_src, lib_src_1, LIB_PATH);
|
||||
ob_1->id.lib = lib_src_1;
|
||||
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(0, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(0, BLI_listbase_count(&bmain_dst->libraries));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->libraries));
|
||||
|
||||
BKE_main_merge(bmain_dst, &bmain_src, nullptr);
|
||||
|
||||
EXPECT_EQ(2, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->libraries));
|
||||
EXPECT_EQ(ob_1, bmain_dst->objects.first);
|
||||
EXPECT_EQ(lib_src_1, bmain_dst->libraries.first);
|
||||
EXPECT_EQ(ob_1->id.lib, lib_src_1);
|
||||
EXPECT_EQ(nullptr, bmain_src);
|
||||
|
||||
/* Try another merge, with the same library path - second library should be skipped, destination
|
||||
* merge should still have only one library ID.*/
|
||||
bmain_src = BKE_main_new();
|
||||
BLI_strncpy(bmain_src->filepath, SRC_PATH, sizeof(bmain_dst->filepath));
|
||||
|
||||
Collection *coll_2 = static_cast<Collection *>(BKE_id_new(bmain_src, ID_GR, "Coll_src_2"));
|
||||
Object *ob_2 = static_cast<Object *>(BKE_id_new(bmain_src, ID_OB, "Ob_src_2"));
|
||||
BKE_collection_object_add(bmain_src, coll_2, ob_2);
|
||||
Library *lib_src_2 = static_cast<Library *>(BKE_id_new(bmain_src, ID_LI, LIB_PATH));
|
||||
BKE_library_filepath_set(bmain_src, lib_src_2, LIB_PATH);
|
||||
std::cout << lib_src_1->filepath_abs << "\n";
|
||||
std::cout << lib_src_2->filepath_abs << "\n";
|
||||
ob_2->id.lib = lib_src_2;
|
||||
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->libraries));
|
||||
|
||||
BKE_main_merge(bmain_dst, &bmain_src, nullptr);
|
||||
|
||||
EXPECT_EQ(3, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(2, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->libraries));
|
||||
EXPECT_EQ(ob_1, bmain_dst->objects.first);
|
||||
EXPECT_EQ(ob_2, bmain_dst->objects.last);
|
||||
EXPECT_EQ(lib_src_1, bmain_dst->libraries.first);
|
||||
EXPECT_EQ(ob_1->id.lib, lib_src_1);
|
||||
EXPECT_EQ(ob_2->id.lib, lib_src_1);
|
||||
EXPECT_EQ(nullptr, bmain_src);
|
||||
|
||||
/* Use a relative library path. Since this is a different library, even though the object re-use
|
||||
* the same name, it should still be moved into `bmain_dst`. The library filepath should also be
|
||||
* updated and become relative the the path of bmain_dst too. */
|
||||
bmain_src = BKE_main_new();
|
||||
BLI_strncpy(bmain_src->filepath, SRC_PATH, sizeof(bmain_dst->filepath));
|
||||
|
||||
Collection *coll_3 = static_cast<Collection *>(BKE_id_new(bmain_src, ID_GR, "Coll_src_3"));
|
||||
Object *ob_3 = static_cast<Object *>(BKE_id_new(bmain_src, ID_OB, "Ob_src"));
|
||||
BKE_collection_object_add(bmain_src, coll_3, ob_3);
|
||||
Library *lib_src_3 = static_cast<Library *>(BKE_id_new(bmain_src, ID_LI, LIB_PATH_RELATIVE));
|
||||
BKE_library_filepath_set(bmain_src, lib_src_3, LIB_PATH_RELATIVE);
|
||||
ob_3->id.lib = lib_src_3;
|
||||
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->libraries));
|
||||
EXPECT_TRUE(STREQ(lib_src_3->filepath, LIB_PATH_RELATIVE));
|
||||
EXPECT_TRUE(STREQ(lib_src_3->filepath_abs, LIB_PATH_RELATIVE_ABS_SRC));
|
||||
|
||||
BKE_main_merge(bmain_dst, &bmain_src, nullptr);
|
||||
|
||||
EXPECT_EQ(4, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(3, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(2, BLI_listbase_count(&bmain_dst->libraries));
|
||||
EXPECT_EQ(ob_1, bmain_dst->objects.first);
|
||||
EXPECT_EQ(ob_3, bmain_dst->objects.last);
|
||||
EXPECT_EQ(lib_src_3, bmain_dst->libraries.first);
|
||||
EXPECT_EQ(lib_src_1, bmain_dst->libraries.last);
|
||||
EXPECT_EQ(ob_1->id.lib, lib_src_1);
|
||||
EXPECT_EQ(ob_2->id.lib, lib_src_1);
|
||||
EXPECT_EQ(ob_3->id.lib, lib_src_3);
|
||||
EXPECT_FALSE(STREQ(lib_src_3->filepath, LIB_PATH_RELATIVE));
|
||||
EXPECT_TRUE(STREQ(lib_src_3->filepath_abs, LIB_PATH_RELATIVE_ABS_SRC));
|
||||
EXPECT_EQ(nullptr, bmain_src);
|
||||
|
||||
/* Try another merge, with the library path set to the path of the destination bmain. That source
|
||||
* library should also be skipped, and the 'linked' object in source bmain should become a local
|
||||
* object in destination bmain. */
|
||||
bmain_src = BKE_main_new();
|
||||
BLI_strncpy(bmain_src->filepath, SRC_PATH, sizeof(bmain_dst->filepath));
|
||||
|
||||
Collection *coll_4 = static_cast<Collection *>(BKE_id_new(bmain_src, ID_GR, "Coll_src_4"));
|
||||
Object *ob_4 = static_cast<Object *>(BKE_id_new(bmain_src, ID_OB, "Ob_src_4"));
|
||||
BKE_collection_object_add(bmain_src, coll_4, ob_4);
|
||||
Library *lib_src_4 = static_cast<Library *>(BKE_id_new(bmain_src, ID_LI, DST_PATH));
|
||||
BKE_library_filepath_set(bmain_src, lib_src_4, DST_PATH);
|
||||
ob_4->id.lib = lib_src_4;
|
||||
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->collections));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->objects));
|
||||
EXPECT_EQ(1, BLI_listbase_count(&bmain_src->libraries));
|
||||
|
||||
BKE_main_merge(bmain_dst, &bmain_src, nullptr);
|
||||
|
||||
EXPECT_EQ(5, BLI_listbase_count(&bmain_dst->collections));
|
||||
EXPECT_EQ(4, BLI_listbase_count(&bmain_dst->objects));
|
||||
EXPECT_EQ(2, BLI_listbase_count(&bmain_dst->libraries));
|
||||
EXPECT_EQ(ob_1, bmain_dst->objects.first);
|
||||
/* `ob_4` is now local in `bmain_dst`, so should come before linked ones. */
|
||||
EXPECT_EQ(ob_4, ob_1->id.prev);
|
||||
EXPECT_EQ(lib_src_3, bmain_dst->libraries.first);
|
||||
EXPECT_EQ(lib_src_1, bmain_dst->libraries.last);
|
||||
EXPECT_EQ(ob_1->id.lib, lib_src_1);
|
||||
EXPECT_EQ(ob_2->id.lib, lib_src_1);
|
||||
EXPECT_EQ(ob_3->id.lib, lib_src_3);
|
||||
EXPECT_EQ(ob_4->id.lib, nullptr);
|
||||
EXPECT_EQ(nullptr, bmain_src);
|
||||
}
|
||||
|
||||
} // namespace blender::bke::tests
|
|
@ -102,7 +102,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_light.h"
|
||||
#include "BKE_lightprobe.h"
|
||||
#include "BKE_linestyle.h"
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mesh_wrapper.hh"
|
||||
#include "BKE_modifier.hh"
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_linestyle.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mask.h"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_viewer_path.hh"
|
||||
|
||||
#include "BLI_index_range.hh"
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_modifier.hh"
|
||||
#include "BKE_object.hh"
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_report.h"
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h" /* for Main */
|
||||
#include "BKE_main_idmap.hh"
|
||||
#include "BKE_main_namemap.hh"
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_node.hh"
|
||||
#include "BKE_report.h"
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_light.h"
|
||||
#include "BKE_lightprobe.h"
|
||||
#include "BKE_main.h"
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_light.h"
|
||||
#include "BKE_lightprobe.h"
|
||||
#include "BKE_main.h"
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_lightprobe.h"
|
||||
#include "BKE_linestyle.h"
|
||||
#include "BKE_main.h"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_nla.h"
|
||||
#include "BKE_screen.hh"
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "BKE_context.hh"
|
||||
#include "BKE_gpencil_modifier_legacy.h" /* Types for registering panels. */
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_modifier.hh"
|
||||
#include "BKE_screen.hh"
|
||||
#include "BKE_shader_fx.h"
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include "BKE_context.hh"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_movieclip.h"
|
||||
#include "BKE_screen.hh"
|
||||
#include "BKE_tracking.h"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "BKE_context.hh"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_report.h"
|
||||
#include "BKE_screen.hh"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "BKE_context.hh"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_screen.hh"
|
||||
|
||||
#include "ED_anim_api.hh"
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_screen.hh"
|
||||
|
||||
#include "RNA_access.hh"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_screen.hh"
|
||||
|
||||
#include "ED_anim_api.hh"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "BKE_idprop.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_node.hh"
|
||||
#include "BKE_node_runtime.hh"
|
||||
#include "BKE_node_tree_zones.hh"
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_object.hh"
|
||||
#include "BKE_report.h"
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_object.hh"
|
||||
#include "BKE_report.h"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_outliner_treehash.hh"
|
||||
#include "BKE_screen.hh"
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_screen.hh"
|
||||
#include "BKE_sequencer_offscreen.h"
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "BLI_string.h"
|
||||
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_screen.hh"
|
||||
|
||||
#include "ED_screen.hh"
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "BKE_global.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_screen.hh"
|
||||
|
||||
#include "ED_screen.hh"
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mball.h"
|
||||
#include "BKE_mesh.hh"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "BKE_global.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_multires.hh"
|
||||
|
|
|
@ -221,7 +221,7 @@ const IDFilterEnumPropertyItem rna_enum_id_type_filter_items[] = {
|
|||
# include "BKE_idtype.h"
|
||||
# include "BKE_lib_override.hh"
|
||||
# include "BKE_lib_query.h"
|
||||
# include "BKE_lib_remap.h"
|
||||
# include "BKE_lib_remap.hh"
|
||||
# include "BKE_library.h"
|
||||
# include "BKE_material.h"
|
||||
# include "BKE_preview_image.hh"
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
# include "BKE_idtype.h"
|
||||
# include "BKE_image.h"
|
||||
# include "BKE_lattice.hh"
|
||||
# include "BKE_lib_remap.h"
|
||||
# include "BKE_lib_remap.hh"
|
||||
# include "BKE_light.h"
|
||||
# include "BKE_lightprobe.h"
|
||||
# include "BKE_linestyle.h"
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
#include "BKE_image_save.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mask.h"
|
||||
#include "BKE_modifier.hh"
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include "BKE_customdata.hh"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_idprop.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_report.h"
|
||||
#include "BKE_scene.h"
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
#include "BKE_idprop.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_main_namemap.hh"
|
||||
#include "BKE_packedFile.h"
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_override.hh"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_object.hh"
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#include "BKE_icons.h"
|
||||
#include "BKE_image.h"
|
||||
#include "BKE_keyconfig.h"
|
||||
#include "BKE_lib_remap.h"
|
||||
#include "BKE_lib_remap.hh"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mball_tessellate.h"
|
||||
#include "BKE_node.hh"
|
||||
|
|
Loading…
Reference in New Issue