8 #define DNA_DEPRECATED_ALLOW
140 if (
STREQ(view_layer->name, layer_name)) {
157 name =
DATA_(
"ViewLayer");
179 for (; sub_collection !=
NULL; sub_collection = sub_collection->
next) {
192 if (view_layer_source) {
193 name = view_layer_source->
name;
207 *view_layer_new = *view_layer_source;
234 sizeof(view_layer_new->
name));
236 return view_layer_new;
262 sled->free(sled->storage);
290 base->object->flag |= tag;
293 base->object->flag &= ~tag;
357 else if (do_base_duplicates_fix) {
358 if (view_layer->
basact == base) {
365 "Object '%s' has more than one entry in view layer's object bases listbase",
366 base->object->id.name + 2);
399 view_layer->
basact = selbase;
416 if (aovs_src !=
NULL) {
423 while (aov_dst !=
NULL) {
429 aov_dst = aov_dst->
next;
430 aov_src = aov_src->
next;
439 if (lightgroups_src !=
NULL) {
446 while (lightgroup_dst !=
NULL) {
452 lightgroup_dst = lightgroup_dst->
next;
453 lightgroup_src = lightgroup_src->
next;
460 const ListBase *layer_collections_src)
467 while (layer_collection_dst !=
NULL) {
477 layer_collection_dst = layer_collection_dst->
next;
478 layer_collection_src = layer_collection_src->
next;
507 if (view_layer_src->
basact == base_src) {
508 view_layer_dst->
basact = base_dst;
523 view_layer_dst, view_layer_src, &view_layer_dst->
aovs, &view_layer_src->
aovs);
536 char oldname[
sizeof(view_layer->
name)];
546 sizeof(view_layer->
name));
554 if (
node->custom1 == index) {
568 if (win->scene ==
scene &&
STREQ(win->view_layer_name, oldname)) {
708 if (i_nested != -1) {
834 layer_resync, child_layer, mempool);
843 "Old LayerCollection for %s is...\n\tusable: %d\n\tvalid parent: %d\n\tvalid child: "
878 while (queue_head !=
NULL) {
879 current_layer_resync = queue_head;
880 queue_head = current_layer_resync->
queue_next;
882 if (current_layer_resync->
collection == child_collection &&
897 queue_tail->queue_next = child_layer_resync;
898 child_layer_resync->queue_next =
NULL;
899 queue_tail = child_layer_resync;
900 if (queue_head ==
NULL) {
901 queue_head = queue_tail;
909 sibling_layer_resync,
911 if (sibling_layer_resync == root_layer_resync) {
915 queue_tail->queue_next = sibling_layer_resync;
916 sibling_layer_resync->queue_next =
NULL;
917 queue_tail = sibling_layer_resync;
918 if (queue_head ==
NULL) {
919 queue_head = queue_tail;
925 current_layer_resync =
NULL;
928 return current_layer_resync;
942 "Freeing unused LayerCollection for %s",
944 "<Deleted Collection>");
962 const short collection_restrict,
963 const short layer_restrict,
964 const ushort local_collections_bits)
972 if (cob->ob ==
NULL) {
987 if (!
ELEM(base, r_lb_new_object_bases->
first, r_lb_new_object_bases->
last)) {
1030 const short parent_layer_flag,
1031 const short parent_collection_restrict,
1032 const short parent_layer_restrict,
1033 const ushort parent_local_collections_bits)
1052 Collection *child_collection = child->collection;
1056 if (child_layer_resync !=
NULL) {
1061 if (child_layer_resync->
is_used) {
1064 "Found same existing LayerCollection for %s as child of %s",
1065 child_collection->
id.
name,
1071 "Found a valid unused LayerCollection for %s as child of %s, re-using it",
1072 child_collection->
id.
name,
1076 child_layer_resync->
is_used =
true;
1084 child_layer_resync->
layer);
1090 "No available LayerCollection for %s as child of %s, creating a new one",
1091 child_collection->
id.
name,
1095 child_layer->
flag = parent_layer_flag;
1098 child_layer_resync->
collection = child_collection;
1099 child_layer_resync->
layer = child_layer;
1101 child_layer_resync->
is_used =
true;
1112 const ushort child_local_collections_bits = parent_local_collections_bits &
1120 short child_collection_restrict = parent_collection_restrict;
1121 short child_layer_restrict = parent_layer_restrict;
1123 child_collection_restrict |= child_collection->
flag;
1124 child_layer_restrict |= child_layer->
flag;
1130 layer_resync_mempool,
1131 r_lb_new_object_bases,
1133 child_collection_restrict,
1134 child_layer_restrict,
1135 child_local_collections_bits);
1162 layer_resync->
layer,
1163 r_lb_new_object_bases,
1164 parent_collection_restrict,
1165 parent_layer_restrict,
1166 parent_local_collections_bits);
1181 if (cob->ob ==
NULL) {
1187 "Object '%s' from collection '%s' has no entry in view layer's object bases cache",
1188 cob->ob->id.name + 2,
1253 "ViewLayer's first level of children layer collections should always have "
1254 "exactly one item");
1258 "ViewLayer's first layer collection should always be the one for the scene's "
1259 "master collection");
1286 const short parent_exclude = 0, parent_restrict = 0, parent_layer_restrict = 0;
1288 master_layer_resync,
1289 layer_resync_mempool,
1293 parent_layer_restrict,
1298 master_layer_resync =
NULL;
1302 if (view_layer->
basact == base) {
1378 if (view_layer->object_bases_hash) {
1380 view_layer->object_bases_hash =
NULL;
1415 bool changed =
false;
1473 if (lc_parent == lc_child) {
1608 lc_parent = lc_iter;
1613 while (lc_parent != lc) {
1618 lc_parent = lc_iter;
1634 const int local_collections_uuid)
1643 const int local_collections_uuid)
1653 const unsigned short local_collections_uuid,
1662 if (cob->ob ==
NULL) {
1688 base->local_collections_bits &= ~local_collections_uuid;
1742 lc_parent = lc_iter;
1747 while (lc_parent != lc) {
1752 lc_parent = lc_iter;
1794 const bool hierarchy)
1823 const bool restore_flag)
1883 if (found !=
NULL) {
1925 return (base->
flag != 0);
1942 iter->
valid =
false;
1974 iter->
valid =
false;
2146 iter->
valid =
false;
2149 iter->
data = data_in;
2153 if (
data->object_type < 0) {
2167 if (base ==
data->base_active) {
2169 base =
data->view_layer->object_bases.first;
2186 iter->
valid =
false;
2241 num_object_bases,
sizeof(
Base *),
"view_layer->object_bases_array");
2250 int view_layer_index)
2302 #ifdef USE_COLLECTION_COMPAT_28
2372 if (base->object ==
NULL) {
2458 const char *
UNUSED(chanid),
2461 GHash *name_count = userdata;
2527 DATA_(
"Lightgroup"),
2530 sizeof(lightgroup->
name));
2535 if (lightgroup !=
NULL) {
2566 if (lightgroup->
next) {
2585 if (
BLI_findindex(&view_layer->lightgroups, lightgroup) != -1) {
2637 return strlen(lgm->
name);
2644 if (
name[0] !=
'\0') {
void BKE_animdata_fix_paths_rename_all(struct ID *ref_id, const char *prefix, const char *oldName, const char *newName)
#define FOREACH_SCENE_OBJECT_END
void BKE_collection_object_cache_free(struct Collection *collection)
#define FOREACH_SCENE_OBJECT_BEGIN(scene, _instance)
void BKE_freestyle_config_copy(struct FreestyleConfig *new_config, const struct FreestyleConfig *config, int flag)
void BKE_freestyle_config_init(struct FreestyleConfig *config)
void BKE_freestyle_config_free(struct FreestyleConfig *config, bool do_id_user)
struct IDProperty * IDP_CopyProperty_ex(const struct IDProperty *prop, int flag) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_BlendWrite(struct BlendWriter *writer, const struct IDProperty *prop)
#define IDP_BlendDataRead(reader, prop)
void IDP_FreeProperty_ex(struct IDProperty *prop, bool do_id_user)
void IDP_BlendReadLib(struct BlendLibReader *reader, struct Library *lib, struct IDProperty *prop)
@ LIB_ID_CREATE_NO_USER_REFCOUNT
void id_us_plus(struct ID *id)
void id_lib_indirect_weak_link(struct ID *id)
#define CMP_NODE_R_LAYERS
General operations, lookup, etc. for blender objects.
bool BKE_object_is_libdata(const struct Object *ob)
#define BLI_assert_msg(a, msg)
unsigned int BLI_ghashutil_ptrhash(const void *key)
GHash * BLI_ghash_str_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
GHash * BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
bool BLI_ghashutil_ptrcmp(const void *a, const void *b)
bool BLI_ghash_remove(GHash *gh, const void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
bool BLI_ghash_ensure_p(GHash *gh, void *key, void ***r_val) ATTR_WARN_UNUSED_RESULT
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void void void void BLI_duplicatelist(struct ListBase *dst, const struct ListBase *src) ATTR_NONNULL(1
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
int BLI_listbase_count_at_most(const struct ListBase *listbase, int count_max) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findptr(const struct ListBase *listbase, const void *ptr, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
BLI_mempool * BLI_mempool_create(unsigned int esize, unsigned int elem_num, unsigned int pchunk, unsigned int flag) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
void BLI_mempool_destroy(BLI_mempool *pool) ATTR_NONNULL(1)
void * BLI_mempool_calloc(BLI_mempool *pool) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL ATTR_NONNULL(1)
void BLI_str_replace_char(char *str, char src, char dst) ATTR_NONNULL()
#define STRNCPY(dst, src)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
bool BLI_uniquename(struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t name_len)
#define BLI_MUTEX_INITIALIZER
void BLI_mutex_lock(ThreadMutex *mutex)
void BLI_mutex_unlock(ThreadMutex *mutex)
pthread_mutex_t ThreadMutex
#define POINTER_FROM_INT(i)
#define SET_FLAG_FROM_TEST(value, test, flag)
#define POINTER_AS_INT(i)
#define BLO_read_data_address(reader, ptr_p)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_list(BlendDataReader *reader, struct ListBase *list)
#define BLO_read_id_address(reader, lib, id_ptr_p)
#define BLO_write_struct_list(writer, struct_name, list_ptr)
#define CLOG_INFO(clg_ref, level,...)
#define CLOG_FATAL(clg_ref,...)
struct Depsgraph Depsgraph
void DEG_debug_print_eval(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address)
void DEG_id_tag_update_ex(struct Main *bmain, struct ID *id, int flag)
void DEG_id_tag_update(struct ID *id, int flag)
ID and Library types, which are fundamental for sdna.
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_LINKED(_id)
Object groups, one object can be in many groups at once.
@ COLLECTION_HIDE_VIEWPORT
@ VIEW_LAYER_CRYPTOMATTE_ACCURATE
@ LAYER_COLLECTION_EXCLUDE
@ LAYER_COLLECTION_INDIRECT_ONLY
@ LAYER_COLLECTION_PREVIOUSLY_EXCLUDED
@ LAYER_COLLECTION_HOLDOUT
@ LAYER_COLLECTION_VISIBLE_VIEW_LAYER
@ LAYER_COLLECTION_HIDE_VIEWPORT
@ LAYER_COLLECTION_HAS_OBJECTS
Object is a sort of wrapper for general info.
#define SCE_LAY_FLAG_DEFAULT
#define BASE_VISIBLE(v3d, base)
#define V3D_LOCAL_COLLECTIONS
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
const Depsgraph * depsgraph
void RE_engine_update_render_passes(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, update_render_passes_cb_t callback, void *callback_data)
Object * BKE_view_layer_camera_find(ViewLayer *view_layer)
void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_in)
void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter)
void BKE_view_layer_rename_lightgroup(Scene *scene, ViewLayer *view_layer, ViewLayerLightgroup *lightgroup, const char *name)
static LayerCollectionResync * layer_collection_resync_create_recurse(LayerCollectionResync *parent_layer_resync, LayerCollection *layer, BLI_mempool *mempool)
static void layer_collection_bases_hide_recursive(ViewLayer *view_layer, LayerCollection *lc)
static void layer_aov_copy_data(ViewLayer *view_layer_dst, const ViewLayer *view_layer_src, ListBase *aovs_dst, const ListBase *aovs_src)
bool BKE_view_layer_has_collection(const ViewLayer *view_layer, const Collection *collection)
void BKE_view_layer_blend_read_data(BlendDataReader *reader, ViewLayer *view_layer)
void BKE_lightgroup_membership_set(struct LightgroupMembership **lgm, const char *name)
static bool layer_collection_hidden(ViewLayer *view_layer, LayerCollection *lc)
struct LayerObjectBaseIteratorData LayerObjectBaseIteratorData
void BKE_view_layer_set_active_lightgroup(ViewLayer *view_layer, ViewLayerLightgroup *lightgroup)
static void layer_collection_local_visibility_unset_recursive(LayerCollection *layer_collection, const int local_collections_uuid)
static void layer_collection_free(ViewLayer *view_layer, LayerCollection *lc)
static LayerCollection * find_layer_collection_by_scene_collection(LayerCollection *lc, const Collection *collection)
static void layer_collection_flag_set_recursive(LayerCollection *lc, const int flag)
bool BKE_view_layer_has_valid_aov(ViewLayer *view_layer)
static void object_bases_iterator_end(BLI_Iterator *iter)
void BKE_view_layer_bases_in_mode_iterator_end(BLI_Iterator *UNUSED(iter))
bool BKE_object_is_visible_in_viewport(const View3D *v3d, const struct Object *ob)
void BKE_view_layer_visible_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
static void layer_collection_exclude_all(LayerCollection *layer_collection)
void BKE_main_collection_sync_remap(const Main *bmain)
static void object_bases_iterator_begin(BLI_Iterator *iter, void *data_in_v, const int flag)
void BKE_layer_collection_set_visible(ViewLayer *view_layer, LayerCollection *lc, const bool visible, const bool hierarchy)
LayerCollection * BKE_layer_collection_from_index(ViewLayer *view_layer, const int index)
static void viewlayer_lightgroup_active_set(ViewLayer *view_layer, ViewLayerLightgroup *lightgroup)
ViewLayer * BKE_view_layer_find_with_aov(struct Scene *scene, struct ViewLayerAOV *aov)
void BKE_view_layer_selected_editable_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
static ViewLayer * view_layer_add(const char *name)
static int index_from_collection(ListBase *lb, const LayerCollection *lc, int *i)
void BKE_view_layer_set_active_aov(ViewLayer *view_layer, ViewLayerAOV *aov)
static void viewlayer_lightgroup_make_name_unique(ViewLayer *view_layer, ViewLayerLightgroup *lightgroup)
void BKE_view_layer_remove_aov(ViewLayer *view_layer, ViewLayerAOV *aov)
struct ViewLayerLightgroup * BKE_view_layer_add_lightgroup(struct ViewLayer *view_layer, const char *name)
void BKE_view_layer_remove_lightgroup(ViewLayer *view_layer, ViewLayerLightgroup *lightgroup)
void BKE_view_layer_selected_editable_objects_iterator_end(BLI_Iterator *iter)
static void viewlayer_aov_active_set(ViewLayer *view_layer, ViewLayerAOV *aov)
LayerCollection * BKE_layer_collection_activate_parent(ViewLayer *view_layer, LayerCollection *lc)
void BKE_view_layer_selected_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
static void layer_collection_flag_recursive_set(LayerCollection *lc, const int flag, const bool value, const bool restore_flag)
static bool find_scene_collection_in_scene_collections(ListBase *lb, const LayerCollection *lc)
Base * BKE_view_layer_base_find(ViewLayer *view_layer, Object *ob)
void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter)
static void layer_lightgroup_copy_data(ViewLayer *view_layer_dst, const ViewLayer *view_layer_src, ListBase *lightgroups_dst, const ListBase *lightgroups_src)
bool BKE_layer_collection_has_selected_objects(ViewLayer *view_layer, LayerCollection *lc)
static void layer_eval_view_layer(struct Depsgraph *depsgraph, struct Scene *UNUSED(scene), ViewLayer *view_layer)
void BKE_view_layer_selected_objects_iterator_end(BLI_Iterator *iter)
void BKE_layer_collection_set_flag(LayerCollection *lc, const int flag, const bool value)
void BKE_view_layer_selected_editable_objects_iterator_next(BLI_Iterator *iter)
void BKE_view_layer_blend_read_lib(BlendLibReader *reader, Library *lib, ViewLayer *view_layer)
static void layer_collection_objects_sync(ViewLayer *view_layer, LayerCollection *layer, ListBase *r_lb_new_object_bases, const short collection_restrict, const short layer_restrict, const ushort local_collections_bits)
ViewLayer * BKE_view_layer_default_view(const Scene *scene)
static int collection_count(const ListBase *lb)
void BKE_view_layer_free_ex(ViewLayer *view_layer, const bool do_id_user)
static void direct_link_layer_collections(BlendDataReader *reader, ListBase *lb, bool master)
static LayerCollection * layer_collection_add(ListBase *lb_parent, Collection *collection)
void BKE_layer_collection_resync_allow(void)
ViewLayer * BKE_view_layer_add(Scene *scene, const char *name, ViewLayer *view_layer_source, const int type)
static const short g_base_collection_flags
static void layer_collection_local_visibility_set_recursive(LayerCollection *layer_collection, const int local_collections_uuid)
static void lib_link_layer_collection(BlendLibReader *reader, Library *lib, LayerCollection *layer_collection, bool master)
LayerCollection * BKE_layer_collection_get_active(ViewLayer *view_layer)
void BKE_view_layer_selected_bases_iterator_next(BLI_Iterator *iter)
static void write_layer_collections(BlendWriter *writer, ListBase *lb)
ViewLayer * BKE_view_layer_default_render(const Scene *scene)
static void layer_collection_sync(ViewLayer *view_layer, LayerCollectionResync *layer_resync, BLI_mempool *layer_resync_mempool, ListBase *r_lb_new_object_bases, const short parent_layer_flag, const short parent_collection_restrict, const short parent_layer_restrict, const ushort parent_local_collections_bits)
bool BKE_base_is_visible(const View3D *v3d, const Base *base)
void BKE_view_layer_verify_aov(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
void BKE_scene_collection_sync(const Scene *scene)
void BKE_view_layer_visible_objects_iterator_end(BLI_Iterator *iter)
ViewLayer * BKE_view_layer_find_with_lightgroup(struct Scene *scene, struct ViewLayerLightgroup *lightgroup)
void BKE_view_layer_selected_bases_iterator_end(BLI_Iterator *iter)
void BKE_view_layer_rename(Main *bmain, Scene *scene, ViewLayer *view_layer, const char *newname)
void BKE_base_set_visible(Scene *scene, ViewLayer *view_layer, Base *base, bool extend)
static void objects_iterator_next(BLI_Iterator *iter, const int flag)
void BKE_layer_collection_local_sync(ViewLayer *view_layer, const View3D *v3d)
int BKE_layer_collection_count(const ViewLayer *view_layer)
static void layer_collection_flag_unset_recursive(LayerCollection *lc, const int flag)
bool BKE_layer_collection_has_layer_collection(LayerCollection *lc_parent, LayerCollection *lc_child)
void BKE_layer_collection_isolate_global(Scene *scene, ViewLayer *view_layer, LayerCollection *lc, bool extend)
static void bke_view_layer_verify_aov_cb(void *userdata, Scene *UNUSED(scene), ViewLayer *UNUSED(view_layer), const char *name, int UNUSED(channels), const char *UNUSED(chanid), eNodeSocketDatatype UNUSED(type))
static LayerCollection * collection_from_index(ListBase *lb, const int number, int *i)
static void layer_collection_bases_show_recursive(ViewLayer *view_layer, LayerCollection *lc)
void BKE_layer_eval_view_layer_indexed(struct Depsgraph *depsgraph, struct Scene *scene, int view_layer_index)
static void objects_iterator_end(BLI_Iterator *iter)
ViewLayer * BKE_view_layer_find(const Scene *scene, const char *layer_name)
bool BKE_scene_has_object(Scene *scene, Object *ob)
void BKE_layer_collection_isolate_local(ViewLayer *view_layer, const View3D *v3d, LayerCollection *lc, bool extend)
void BKE_layer_collection_resync_forbid(void)
void BKE_main_collection_sync(const Main *bmain)
void BKE_view_layer_free(ViewLayer *view_layer)
static void layer_collection_resync_unused_layers_free(ViewLayer *view_layer, LayerCollectionResync *layer_resync)
static void viewlayer_aov_make_name_unique(ViewLayer *view_layer)
void BKE_lightgroup_membership_get(struct LightgroupMembership *lgm, char *name)
void BKE_layer_collection_doversion_2_80(const Scene *scene, ViewLayer *view_layer)
void BKE_view_layer_visible_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
static Base * object_base_new(Object *ob)
static bool object_bases_iterator_is_valid(const View3D *v3d, Base *base, const int flag)
static LayerCollectionResync * layer_collection_resync_find(LayerCollectionResync *layer_resync, Collection *child_collection)
void BKE_view_layer_selected_objects_tag(ViewLayer *view_layer, const int tag)
ViewLayer * BKE_view_layer_find_from_collection(const Scene *scene, LayerCollection *lc)
static void layer_collection_local_sync(ViewLayer *view_layer, LayerCollection *layer_collection, const unsigned short local_collections_uuid, bool visible)
void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, Base *selbase)
static void layer_collections_copy_data(ViewLayer *view_layer_dst, const ViewLayer *view_layer_src, ListBase *layer_collections_dst, const ListBase *layer_collections_src)
void BKE_view_layer_base_deselect_all(ViewLayer *view_layer)
void BKE_view_layer_selected_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
LayerCollection * BKE_layer_collection_first_from_scene_collection(const ViewLayer *view_layer, const Collection *collection)
static void object_bases_iterator_next(BLI_Iterator *iter, const int flag)
static void objects_iterator_begin(BLI_Iterator *iter, void *data_in, const int flag)
bool BKE_layer_collection_objects_select(ViewLayer *view_layer, LayerCollection *lc, bool deselect)
void BKE_layer_collection_sync(const Scene *scene, ViewLayer *view_layer)
static bool view_layer_objects_base_cache_validate(ViewLayer *view_layer, LayerCollection *layer)
static void view_layer_bases_hash_create(ViewLayer *view_layer, const bool do_base_duplicates_fix)
int BKE_layer_collection_findindex(ViewLayer *view_layer, const LayerCollection *lc)
ViewLayer * BKE_view_layer_context_active_PLACEHOLDER(const Scene *scene)
bool BKE_layer_collection_activate(ViewLayer *view_layer, LayerCollection *lc)
struct LayerCollectionResync LayerCollectionResync
void BKE_base_eval_flags(Base *base)
void BKE_view_layer_copy_data(Scene *scene_dst, const Scene *UNUSED(scene_src), ViewLayer *view_layer_dst, const ViewLayer *view_layer_src, const int flag)
void BKE_view_layer_visible_bases_iterator_next(BLI_Iterator *iter)
void BKE_layer_collection_local_sync_all(const Main *bmain)
struct ViewLayerAOV * BKE_view_layer_add_aov(struct ViewLayer *view_layer)
void BKE_view_layer_blend_write(BlendWriter *writer, ViewLayer *view_layer)
int BKE_lightgroup_membership_length(struct LightgroupMembership *lgm)
void BKE_view_layer_visible_objects_iterator_next(BLI_Iterator *iter)
static bool base_is_in_mode(struct ObjectsInModeIteratorData *data, Base *base)
void BKE_view_layer_selected_objects_iterator_next(BLI_Iterator *iter)
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
bool active
all scheduled work for the GPU.
short flag_from_collection
unsigned short local_view_bits
unsigned short local_collections_bits
struct Collection * collection
ListBase children_layer_resync
struct LayerCollectionResync * prev
struct LayerCollectionResync * next
struct LayerCollectionResync * queue_next
struct LayerCollectionResync * parent_layer_resync
struct LayerCollection * next
ListBase layer_collections
unsigned short local_collections_bits
struct Collection * collection
unsigned short local_collections_bits
unsigned short base_local_view_bits
struct ViewLayer * view_layer
const struct View3D * v3d
struct ViewLayer * view_layer
struct bNodeTree * nodetree
struct Collection * master_collection
unsigned short local_view_uuid
unsigned short local_collections_uuid
int object_type_exclude_viewport
struct ViewLayerAOV * prev
struct ViewLayerAOV * next
struct ViewLayerLightgroup * prev
struct ViewLayerLightgroup * next
struct FreestyleConfig freestyle_config
struct IDProperty * id_properties
ViewLayerLightgroup * active_lightgroup
ViewLayerAOV * active_aov
ListBase layer_collections
LayerCollection * active_collection
struct GHash * object_bases_hash
struct Base ** object_bases_array
struct SceneStats * stats
float pass_alpha_threshold
struct Material * mat_override
struct LightgroupMembership * lightgroup