Blender  V2.93
Classes | Macros | Functions | Variables
layer.c File Reference
#include <string.h>
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_string_utils.h"
#include "BLI_threads.h"
#include "BLT_translation.h"
#include "BKE_animsys.h"
#include "BKE_collection.h"
#include "BKE_freestyle.h"
#include "BKE_idprop.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_object.h"
#include "DNA_ID.h"
#include "DNA_collection_types.h"
#include "DNA_layer_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
#include "DNA_windowmanager_types.h"
#include "DNA_workspace_types.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_debug.h"
#include "DEG_depsgraph_query.h"
#include "DRW_engine.h"
#include "RE_engine.h"
#include "MEM_guardedalloc.h"
#include "BLO_read_write.h"

Go to the source code of this file.

Classes

struct  LayerObjectBaseIteratorData
 

Macros

#define DNA_DEPRECATED_ALLOW
 

Functions

static LayerCollectionlayer_collection_add (ListBase *lb_parent, Collection *collection)
 
static void layer_collection_free (ViewLayer *view_layer, LayerCollection *lc)
 
static Baseobject_base_new (Object *ob)
 
ViewLayerBKE_view_layer_default_view (const Scene *scene)
 
ViewLayerBKE_view_layer_default_render (const Scene *scene)
 
ViewLayerBKE_view_layer_find (const Scene *scene, const char *layer_name)
 
ViewLayerBKE_view_layer_context_active_PLACEHOLDER (const Scene *scene)
 
static ViewLayerview_layer_add (const char *name)
 
static void layer_collection_exclude_all (LayerCollection *layer_collection)
 
ViewLayerBKE_view_layer_add (Scene *scene, const char *name, ViewLayer *view_layer_source, const int type)
 
void BKE_view_layer_free (ViewLayer *view_layer)
 
void BKE_view_layer_free_ex (ViewLayer *view_layer, const bool do_id_user)
 
void BKE_view_layer_selected_objects_tag (ViewLayer *view_layer, const int tag)
 
static bool find_scene_collection_in_scene_collections (ListBase *lb, const LayerCollection *lc)
 
ObjectBKE_view_layer_camera_find (ViewLayer *view_layer)
 
ViewLayerBKE_view_layer_find_from_collection (const Scene *scene, LayerCollection *lc)
 
static void view_layer_bases_hash_create (ViewLayer *view_layer)
 
BaseBKE_view_layer_base_find (ViewLayer *view_layer, Object *ob)
 
void BKE_view_layer_base_deselect_all (ViewLayer *view_layer)
 
void BKE_view_layer_base_select_and_set_active (struct ViewLayer *view_layer, Base *selbase)
 
static void layer_aov_copy_data (ViewLayer *view_layer_dst, const ViewLayer *view_layer_src, ListBase *aovs_dst, const ListBase *aovs_src)
 
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_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_rename (Main *bmain, Scene *scene, ViewLayer *view_layer, const char *newname)
 
static LayerCollectioncollection_from_index (ListBase *lb, const int number, int *i)
 
static bool layer_collection_hidden (ViewLayer *view_layer, LayerCollection *lc)
 
LayerCollectionBKE_layer_collection_from_index (ViewLayer *view_layer, const int index)
 
LayerCollectionBKE_layer_collection_get_active (ViewLayer *view_layer)
 
bool BKE_layer_collection_activate (ViewLayer *view_layer, LayerCollection *lc)
 
LayerCollectionBKE_layer_collection_activate_parent (ViewLayer *view_layer, LayerCollection *lc)
 
static int collection_count (ListBase *lb)
 
int BKE_layer_collection_count (ViewLayer *view_layer)
 
static int index_from_collection (ListBase *lb, const LayerCollection *lc, int *i)
 
int BKE_layer_collection_findindex (ViewLayer *view_layer, const LayerCollection *lc)
 
static void layer_collection_sync (ViewLayer *view_layer, const ListBase *lb_collections, ListBase *lb_layer_collections, ListBase *new_object_bases, short parent_exclude, short parent_restrict, short parent_layer_restrict, unsigned short parent_local_collections_bits)
 
void BKE_layer_collection_sync (const Scene *scene, ViewLayer *view_layer)
 
void BKE_scene_collection_sync (const Scene *scene)
 
void BKE_main_collection_sync (const Main *bmain)
 
void BKE_main_collection_sync_remap (const Main *bmain)
 
bool BKE_layer_collection_objects_select (ViewLayer *view_layer, LayerCollection *lc, bool deselect)
 
bool BKE_layer_collection_has_selected_objects (ViewLayer *view_layer, LayerCollection *lc)
 
bool BKE_layer_collection_has_layer_collection (LayerCollection *lc_parent, LayerCollection *lc_child)
 
void BKE_base_set_visible (Scene *scene, ViewLayer *view_layer, Base *base, bool extend)
 
bool BKE_base_is_visible (const View3D *v3d, const Base *base)
 
bool BKE_object_is_visible_in_viewport (const View3D *v3d, const struct Object *ob)
 
static void layer_collection_flag_set_recursive (LayerCollection *lc, const int flag)
 
static void layer_collection_flag_unset_recursive (LayerCollection *lc, const int flag)
 
void BKE_layer_collection_isolate_global (Scene *scene, ViewLayer *view_layer, LayerCollection *lc, bool extend)
 
static void layer_collection_local_visibility_set_recursive (LayerCollection *layer_collection, const int local_collections_uuid)
 
static void layer_collection_local_visibility_unset_recursive (LayerCollection *layer_collection, const int local_collections_uuid)
 
static void layer_collection_local_sync (ViewLayer *view_layer, LayerCollection *layer_collection, const unsigned short local_collections_uuid, bool visible)
 
void BKE_layer_collection_local_sync (ViewLayer *view_layer, const View3D *v3d)
 
void BKE_layer_collection_local_sync_all (const Main *bmain)
 
void BKE_layer_collection_isolate_local (ViewLayer *view_layer, const View3D *v3d, LayerCollection *lc, bool extend)
 
static void layer_collection_bases_show_recursive (ViewLayer *view_layer, LayerCollection *lc)
 
static void layer_collection_bases_hide_recursive (ViewLayer *view_layer, LayerCollection *lc)
 
void BKE_layer_collection_set_visible (ViewLayer *view_layer, LayerCollection *lc, const bool visible, const bool hierarchy)
 
static void layer_collection_flag_recursive_set (LayerCollection *lc, const int flag, const bool value, const bool restore_flag)
 
void BKE_layer_collection_set_flag (LayerCollection *lc, const int flag, const bool value)
 
static LayerCollectionfind_layer_collection_by_scene_collection (LayerCollection *lc, const Collection *collection)
 
LayerCollectionBKE_layer_collection_first_from_scene_collection (ViewLayer *view_layer, const Collection *collection)
 
bool BKE_view_layer_has_collection (ViewLayer *view_layer, const Collection *collection)
 
bool BKE_scene_has_object (Scene *scene, Object *ob)
 
void BKE_base_eval_flags (Base *base)
 
static void layer_eval_view_layer (struct Depsgraph *depsgraph, struct Scene *UNUSED(scene), ViewLayer *view_layer)
 
void BKE_layer_eval_view_layer_indexed (struct Depsgraph *depsgraph, struct Scene *scene, int view_layer_index)
 
static void write_layer_collections (BlendWriter *writer, ListBase *lb)
 
void BKE_view_layer_blend_write (BlendWriter *writer, ViewLayer *view_layer)
 
static void direct_link_layer_collections (BlendDataReader *reader, ListBase *lb, bool master)
 
void BKE_view_layer_blend_read_data (BlendDataReader *reader, ViewLayer *view_layer)
 
static void lib_link_layer_collection (BlendLibReader *reader, Library *lib, LayerCollection *layer_collection, bool master)
 
void BKE_view_layer_blend_read_lib (BlendLibReader *reader, Library *lib, ViewLayer *view_layer)
 
BKE_view_layer_selected_objects_iterator
void BKE_view_layer_selected_objects_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_selected_objects_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_selected_objects_iterator_end (BLI_Iterator *iter)
 
BKE_view_layer_visible_objects_iterator
void BKE_view_layer_visible_objects_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_visible_objects_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_visible_objects_iterator_end (BLI_Iterator *iter)
 
BKE_view_layer_selected_editable_objects_iterator
void BKE_view_layer_selected_editable_objects_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_selected_editable_objects_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_selected_editable_objects_iterator_end (BLI_Iterator *iter)
 
BKE_view_layer_selected_bases_iterator
void BKE_view_layer_selected_bases_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_selected_bases_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_selected_bases_iterator_end (BLI_Iterator *iter)
 
BKE_view_layer_visible_bases_iterator
void BKE_view_layer_visible_bases_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_visible_bases_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_visible_bases_iterator_end (BLI_Iterator *iter)
 
BKE_view_layer_bases_in_mode_iterator
static bool base_is_in_mode (struct ObjectsInModeIteratorData *data, Base *base)
 
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_bases_in_mode_iterator_end (BLI_Iterator *UNUSED(iter))
 
Shader AOV
static void viewlayer_aov_make_name_unique (ViewLayer *view_layer)
 
static void viewlayer_aov_active_set (ViewLayer *view_layer, ViewLayerAOV *aov)
 
struct ViewLayerAOVBKE_view_layer_add_aov (struct ViewLayer *view_layer)
 
void BKE_view_layer_remove_aov (ViewLayer *view_layer, ViewLayerAOV *aov)
 
void BKE_view_layer_set_active_aov (ViewLayer *view_layer, ViewLayerAOV *aov)
 
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))
 
void BKE_view_layer_verify_aov (struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
 
bool BKE_view_layer_has_valid_aov (ViewLayer *view_layer)
 
ViewLayerBKE_view_layer_find_with_aov (struct Scene *scene, struct ViewLayerAOV *aov)
 

Variables

static const short g_base_collection_flags
 

Private Iterator Helpers

typedef struct LayerObjectBaseIteratorData LayerObjectBaseIteratorData
 
static void object_bases_iterator_next (BLI_Iterator *iter, const int flag)
 
static bool object_bases_iterator_is_valid (const View3D *v3d, Base *base, const int flag)
 
static void object_bases_iterator_begin (BLI_Iterator *iter, void *data_in_v, const int flag)
 
static void object_bases_iterator_end (BLI_Iterator *iter)
 
static void objects_iterator_begin (BLI_Iterator *iter, void *data_in, const int flag)
 
static void objects_iterator_next (BLI_Iterator *iter, const int flag)
 
static void objects_iterator_end (BLI_Iterator *iter)
 

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 22 of file layer.c.

Typedef Documentation

◆ LayerObjectBaseIteratorData

Function Documentation

◆ base_is_in_mode()

static bool base_is_in_mode ( struct ObjectsInModeIteratorData data,
Base base 
)
static

◆ BKE_base_eval_flags()

void BKE_base_eval_flags ( Base base)

◆ BKE_base_is_visible()

bool BKE_base_is_visible ( const View3D v3d,
const Base base 
)

◆ BKE_base_set_visible()

void BKE_base_set_visible ( Scene scene,
ViewLayer view_layer,
Base base,
bool  extend 
)

◆ BKE_layer_collection_activate()

bool BKE_layer_collection_activate ( ViewLayer view_layer,
LayerCollection lc 
)

◆ BKE_layer_collection_activate_parent()

LayerCollection* BKE_layer_collection_activate_parent ( ViewLayer view_layer,
LayerCollection lc 
)

◆ BKE_layer_collection_count()

int BKE_layer_collection_count ( ViewLayer view_layer)

Get the total number of collections (including all the nested collections)

Definition at line 692 of file layer.c.

References collection_count(), and ViewLayer::layer_collections.

◆ BKE_layer_collection_findindex()

int BKE_layer_collection_findindex ( ViewLayer view_layer,
const LayerCollection lc 
)

Return -1 if not found

Definition at line 722 of file layer.c.

References index_from_collection(), and ViewLayer::layer_collections.

◆ BKE_layer_collection_first_from_scene_collection()

LayerCollection* BKE_layer_collection_first_from_scene_collection ( ViewLayer view_layer,
const Collection collection 
)

◆ BKE_layer_collection_from_index()

LayerCollection* BKE_layer_collection_from_index ( ViewLayer view_layer,
const int  index 
)

Get the collection for a given index

Definition at line 621 of file layer.c.

References collection_from_index(), and ViewLayer::layer_collections.

Referenced by object_hide_collection_exec().

◆ BKE_layer_collection_get_active()

LayerCollection* BKE_layer_collection_get_active ( ViewLayer view_layer)

◆ BKE_layer_collection_has_layer_collection()

bool BKE_layer_collection_has_layer_collection ( LayerCollection lc_parent,
LayerCollection lc_child 
)

◆ BKE_layer_collection_has_selected_objects()

bool BKE_layer_collection_has_selected_objects ( ViewLayer view_layer,
LayerCollection lc 
)

◆ BKE_layer_collection_isolate_global()

void BKE_layer_collection_isolate_global ( Scene scene,
ViewLayer view_layer,
LayerCollection lc,
bool  extend 
)

Isolate the collection - hide all other collections but this one. Make sure to show all the direct parents and all children of the layer collection as well. When extending we simply show the collections and its direct family.

If the collection or any of its parents is disabled, make it enabled. Don't change the children disable state though.

Definition at line 1206 of file layer.c.

References BKE_layer_collection_activate(), BKE_layer_collection_has_layer_collection(), BKE_layer_collection_sync(), ListBase::first, LayerCollection::flag, layer_collection_flag_set_recursive(), layer_collection_flag_unset_recursive(), LAYER_COLLECTION_HIDE, LAYER_COLLECTION_VISIBLE_VIEW_LAYER, LayerCollection::layer_collections, ViewLayer::layer_collections, LISTBASE_FOREACH, LayerCollection::runtime_flag, and scene.

Referenced by collection_isolate_exec(), and object_hide_collection_exec().

◆ BKE_layer_collection_isolate_local()

void BKE_layer_collection_isolate_local ( ViewLayer view_layer,
const View3D v3d,
LayerCollection lc,
bool  extend 
)

◆ BKE_layer_collection_local_sync()

void BKE_layer_collection_local_sync ( ViewLayer view_layer,
const View3D v3d 
)

◆ BKE_layer_collection_local_sync_all()

void BKE_layer_collection_local_sync_all ( const Main bmain)

◆ BKE_layer_collection_objects_select()

bool BKE_layer_collection_objects_select ( ViewLayer view_layer,
LayerCollection lc,
bool  deselect 
)

◆ BKE_layer_collection_set_flag()

void BKE_layer_collection_set_flag ( LayerCollection lc,
const int  flag,
const bool  value 
)

◆ BKE_layer_collection_set_visible()

void BKE_layer_collection_set_visible ( ViewLayer view_layer,
LayerCollection lc,
const bool  visible,
const bool  hierarchy 
)

Hide/show all the elements of a collection. Don't change the collection children enable/disable state, but it may change it for the collection itself.

Definition at line 1414 of file layer.c.

References LayerCollection::flag, layer_collection_bases_hide_recursive(), layer_collection_bases_show_recursive(), layer_collection_flag_set_recursive(), layer_collection_flag_unset_recursive(), and LAYER_COLLECTION_HIDE.

Referenced by collection_visibility_exec(), and outliner_hide_exec().

◆ BKE_layer_collection_sync()

void BKE_layer_collection_sync ( const Scene scene,
ViewLayer view_layer 
)

◆ BKE_layer_eval_view_layer_indexed()

void BKE_layer_eval_view_layer_indexed ( struct Depsgraph depsgraph,
struct Scene scene,
int  view_layer_index 
)

◆ BKE_main_collection_sync()

void BKE_main_collection_sync ( const Main bmain)

◆ BKE_main_collection_sync_remap()

void BKE_main_collection_sync_remap ( const Main bmain)

◆ BKE_object_is_visible_in_viewport()

bool BKE_object_is_visible_in_viewport ( const View3D v3d,
const struct Object ob 
)

◆ BKE_scene_collection_sync()

void BKE_scene_collection_sync ( const Scene scene)

Definition at line 977 of file layer.c.

References BKE_layer_collection_sync(), LISTBASE_FOREACH, scene, and Scene::view_layers.

Referenced by BKE_main_collection_sync().

◆ BKE_scene_has_object()

bool BKE_scene_has_object ( Scene scene,
Object ob 
)

See if the object is in any of the scene layers of the scene

Definition at line 1527 of file layer.c.

References BKE_view_layer_base_find(), LISTBASE_FOREACH, scene, and Scene::view_layers.

Referenced by scene_drop_invoke().

◆ BKE_view_layer_add()

ViewLayer* BKE_view_layer_add ( Scene scene,
const char *  name,
ViewLayer view_layer_source,
const int  type 
)

◆ BKE_view_layer_add_aov()

struct ViewLayerAOV* BKE_view_layer_add_aov ( struct ViewLayer view_layer)

◆ BKE_view_layer_base_deselect_all()

void BKE_view_layer_base_deselect_all ( ViewLayer view_layer)

◆ BKE_view_layer_base_find()

Base* BKE_view_layer_base_find ( ViewLayer view_layer,
Object ob 
)

Definition at line 394 of file layer.c.

References BLI_ghash_lookup(), ViewLayer::object_bases_hash, and view_layer_bases_hash_create().

Referenced by add_collections_to_scene(), add_hook_object_new(), bake_object_check(), bc_add_object(), BKE_layer_collection_has_selected_objects(), BKE_layer_collection_objects_select(), BKE_object_add(), BKE_object_add_for_data(), BKE_object_add_from(), BKE_object_pose_armature_get_visible(), BKE_object_pose_base_array_get_ex(), BKE_scene_has_object(), collection_objects_select(), createTransObject(), CTX_data_active_base(), ctx_data_base_collection_get(), do_outliner_item_activate_tree_element(), do_outliner_item_mode_toggle_generic(), do_version_layers_to_collections(), duplibase_for_convert(), ED_armature_pose_select_in_wpaint_mode(), ED_object_jump_to_object(), ed_object_posemode_set_for_weight_paint_ex(), ED_outliner_give_base_under_cursor(), ED_undo_object_set_active_or_warn(), EDBM_edge_find_nearest(), EDBM_face_find_nearest(), EDBM_vert_find_nearest(), editselect_buf_cache_init(), element_should_draw_faded(), getTransformOrientation_ex(), gpencil_layer_to_curve(), import_endjob(), jump_to_target_ptr(), layer_collection_bases_hide_recursive(), layer_collection_bases_show_recursive(), layer_collection_local_sync(), make_local_all__instance_indirect_unused(), make_object_duplilist_real(), object_add_duplicate_internal(), object_base_instance_init(), object_batch_delete_hierarchy_fn(), object_deselect_fn(), object_preview_scene_create(), object_select_fn(), object_select_mirror_exec(), object_transfer_mode_to_base(), outliner_base_or_object_pointer_create(), outliner_draw_restrictbuts(), outliner_draw_tree_element(), outliner_element_visible_get(), outliner_hide_find_data_to_edit(), outliner_item_mode_toggle(), outliner_object_set_flag_recursive_fn(), outliner_select_sync_from_object(), outliner_select_sync_to_object(), parent_drop_allowed(), scene_drop_invoke(), screen_set_3dview_camera(), select_grouped_object_hooks(), select_grouped_parent(), select_marker_camera_switch(), set_trans_object_base_flags(), transform_object_deform_pose_armature_get(), tree_element_object_activate(), tree_element_pose_state_get(), and validate_object_select_id().

◆ BKE_view_layer_base_select_and_set_active()

void BKE_view_layer_base_select_and_set_active ( struct ViewLayer view_layer,
Base selbase 
)

◆ BKE_view_layer_bases_in_mode_iterator_begin()

void BKE_view_layer_bases_in_mode_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

◆ BKE_view_layer_bases_in_mode_iterator_end()

void BKE_view_layer_bases_in_mode_iterator_end ( BLI_Iterator UNUSEDiter)

Definition at line 1819 of file layer.c.

◆ BKE_view_layer_bases_in_mode_iterator_next()

void BKE_view_layer_bases_in_mode_iterator_next ( BLI_Iterator iter)

◆ BKE_view_layer_blend_read_data()

void BKE_view_layer_blend_read_data ( BlendDataReader reader,
ViewLayer view_layer 
)

◆ BKE_view_layer_blend_read_lib()

void BKE_view_layer_blend_read_lib ( BlendLibReader reader,
Library lib,
ViewLayer view_layer 
)

◆ BKE_view_layer_blend_write()

void BKE_view_layer_blend_write ( BlendWriter writer,
ViewLayer view_layer 
)

◆ BKE_view_layer_camera_find()

Object* BKE_view_layer_camera_find ( ViewLayer view_layer)

Fallback for when a Scene has no camera to use

Parameters
view_layerin general you want to use the same ViewLayer that is used for depsgraph. If rendering you pass the scene active layer, when viewing in the viewport you want to get ViewLayer from context.

Definition at line 337 of file layer.c.

References LISTBASE_FOREACH, NULL, OB_CAMERA, and ViewLayer::object_bases.

Referenced by check_valid_camera(), check_valid_compositing_camera(), screen_set_3dview_camera(), and view_camera_exec().

◆ BKE_view_layer_context_active_PLACEHOLDER()

ViewLayer* BKE_view_layer_context_active_PLACEHOLDER ( const Scene scene)

This is a placeholder to know which areas of the code need to be addressed for the Workspace changes. Never use this, you should typically get the active layer from the context or window.

Definition at line 159 of file layer.c.

References BLI_assert, ListBase::first, scene, and Scene::view_layers.

◆ BKE_view_layer_copy_data()

void BKE_view_layer_copy_data ( Scene scene_dst,
const Scene UNUSEDscene_src,
ViewLayer view_layer_dst,
const ViewLayer view_layer_src,
const int  flag 
)

◆ BKE_view_layer_default_render()

ViewLayer* BKE_view_layer_default_render ( const Scene scene)

◆ BKE_view_layer_default_view()

ViewLayer* BKE_view_layer_default_view ( const Scene scene)

◆ BKE_view_layer_find()

ViewLayer* BKE_view_layer_find ( const Scene scene,
const char *  layer_name 
)

Definition at line 143 of file layer.c.

References LISTBASE_FOREACH, NULL, scene, STREQ, and Scene::view_layers.

◆ BKE_view_layer_find_from_collection()

ViewLayer* BKE_view_layer_find_from_collection ( const Scene scene,
LayerCollection lc 
)

◆ BKE_view_layer_find_with_aov()

ViewLayer* BKE_view_layer_find_with_aov ( struct Scene scene,
struct ViewLayerAOV aov 
)

Definition at line 2123 of file layer.c.

References BLI_findindex(), LISTBASE_FOREACH, NULL, scene, and Scene::view_layers.

◆ BKE_view_layer_free()

void BKE_view_layer_free ( ViewLayer view_layer)

Definition at line 254 of file layer.c.

References BKE_view_layer_free_ex().

Referenced by ED_scene_view_layer_delete().

◆ BKE_view_layer_free_ex()

void BKE_view_layer_free_ex ( ViewLayer view_layer,
const bool  do_id_user 
)

◆ BKE_view_layer_has_collection()

bool BKE_view_layer_has_collection ( ViewLayer view_layer,
const Collection collection 
)

See if view layer has the scene collection linked directly, or indirectly (nested)

Definition at line 1519 of file layer.c.

References BKE_layer_collection_first_from_scene_collection(), and NULL.

◆ BKE_view_layer_has_valid_aov()

bool BKE_view_layer_has_valid_aov ( ViewLayer view_layer)

◆ BKE_view_layer_remove_aov()

void BKE_view_layer_remove_aov ( ViewLayer view_layer,
ViewLayerAOV aov 
)

◆ BKE_view_layer_rename()

void BKE_view_layer_rename ( Main bmain,
Scene scene,
ViewLayer view_layer,
const char *  newname 
)

◆ BKE_view_layer_selected_bases_iterator_begin()

void BKE_view_layer_selected_bases_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1718 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_begin().

◆ BKE_view_layer_selected_bases_iterator_end()

void BKE_view_layer_selected_bases_iterator_end ( BLI_Iterator iter)

Definition at line 1728 of file layer.c.

References object_bases_iterator_end().

◆ BKE_view_layer_selected_bases_iterator_next()

void BKE_view_layer_selected_bases_iterator_next ( BLI_Iterator iter)

Definition at line 1723 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and object_bases_iterator_next().

◆ BKE_view_layer_selected_editable_objects_iterator_begin()

void BKE_view_layer_selected_editable_objects_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

◆ BKE_view_layer_selected_editable_objects_iterator_end()

void BKE_view_layer_selected_editable_objects_iterator_end ( BLI_Iterator iter)

Definition at line 1707 of file layer.c.

References objects_iterator_end().

◆ BKE_view_layer_selected_editable_objects_iterator_next()

void BKE_view_layer_selected_editable_objects_iterator_next ( BLI_Iterator iter)

◆ BKE_view_layer_selected_objects_iterator_begin()

void BKE_view_layer_selected_objects_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1642 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_begin().

◆ BKE_view_layer_selected_objects_iterator_end()

void BKE_view_layer_selected_objects_iterator_end ( BLI_Iterator iter)

Definition at line 1652 of file layer.c.

References objects_iterator_end().

◆ BKE_view_layer_selected_objects_iterator_next()

void BKE_view_layer_selected_objects_iterator_next ( BLI_Iterator iter)

Definition at line 1647 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_next().

◆ BKE_view_layer_selected_objects_tag()

void BKE_view_layer_selected_objects_tag ( ViewLayer view_layer,
const int  tag 
)

Tag all the selected objects of a render-layer.

Definition at line 305 of file layer.c.

References BASE_SELECTED, LISTBASE_FOREACH, and ViewLayer::object_bases.

Referenced by make_single_user_exec().

◆ BKE_view_layer_set_active_aov()

void BKE_view_layer_set_active_aov ( ViewLayer view_layer,
ViewLayerAOV aov 
)

Definition at line 2061 of file layer.c.

References viewlayer_aov_active_set().

◆ BKE_view_layer_verify_aov()

void BKE_view_layer_verify_aov ( struct RenderEngine engine,
struct Scene scene,
struct ViewLayer view_layer 
)

◆ bke_view_layer_verify_aov_cb()

static void bke_view_layer_verify_aov_cb ( void *  userdata,
Scene UNUSEDscene,
ViewLayer UNUSEDview_layer,
const char *  name,
int   UNUSEDchannels,
const char *  UNUSEDchanid,
eNodeSocketDatatype   UNUSEDtype 
)
static

◆ BKE_view_layer_visible_bases_iterator_begin()

void BKE_view_layer_visible_bases_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1739 of file layer.c.

References object_bases_iterator_begin().

◆ BKE_view_layer_visible_bases_iterator_end()

void BKE_view_layer_visible_bases_iterator_end ( BLI_Iterator iter)

Definition at line 1749 of file layer.c.

References object_bases_iterator_end().

◆ BKE_view_layer_visible_bases_iterator_next()

void BKE_view_layer_visible_bases_iterator_next ( BLI_Iterator iter)

Definition at line 1744 of file layer.c.

References object_bases_iterator_next().

◆ BKE_view_layer_visible_objects_iterator_begin()

void BKE_view_layer_visible_objects_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1663 of file layer.c.

References objects_iterator_begin().

◆ BKE_view_layer_visible_objects_iterator_end()

void BKE_view_layer_visible_objects_iterator_end ( BLI_Iterator iter)

Definition at line 1673 of file layer.c.

References objects_iterator_end().

◆ BKE_view_layer_visible_objects_iterator_next()

void BKE_view_layer_visible_objects_iterator_next ( BLI_Iterator iter)

Definition at line 1668 of file layer.c.

References objects_iterator_next().

◆ collection_count()

static int collection_count ( ListBase lb)
static

Recursively get the count of collections

Definition at line 679 of file layer.c.

References LISTBASE_FOREACH.

Referenced by BKE_layer_collection_count(), and select_grouped_collection().

◆ collection_from_index()

static LayerCollection* collection_from_index ( ListBase lb,
const int  number,
int *  i 
)
static

Recursively get the collection for a given index

Definition at line 571 of file layer.c.

References LISTBASE_FOREACH, and NULL.

Referenced by BKE_layer_collection_from_index().

◆ direct_link_layer_collections()

static void direct_link_layer_collections ( BlendDataReader reader,
ListBase lb,
bool  master 
)
static

Definition at line 1920 of file layer.c.

References BLO_read_data_address, BLO_read_list(), and LISTBASE_FOREACH.

Referenced by BKE_view_layer_blend_read_data().

◆ find_layer_collection_by_scene_collection()

static LayerCollection* find_layer_collection_by_scene_collection ( LayerCollection lc,
const Collection collection 
)
static

◆ find_scene_collection_in_scene_collections()

static bool find_scene_collection_in_scene_collections ( ListBase lb,
const LayerCollection lc 
)
static

Definition at line 317 of file layer.c.

References LISTBASE_FOREACH.

Referenced by BKE_view_layer_find_from_collection().

◆ index_from_collection()

static int index_from_collection ( ListBase lb,
const LayerCollection lc,
int *  i 
)
static

Recursively get the index for a given collection

Definition at line 700 of file layer.c.

References LISTBASE_FOREACH.

Referenced by BKE_layer_collection_findindex().

◆ layer_aov_copy_data()

static void layer_aov_copy_data ( ViewLayer view_layer_dst,
const ViewLayer view_layer_src,
ListBase aovs_dst,
const ListBase aovs_src 
)
static

◆ layer_collection_add()

static LayerCollection* layer_collection_add ( ListBase lb_parent,
Collection collection 
)
static

◆ layer_collection_bases_hide_recursive()

static void layer_collection_bases_hide_recursive ( ViewLayer view_layer,
LayerCollection lc 
)
static

◆ layer_collection_bases_show_recursive()

static void layer_collection_bases_show_recursive ( ViewLayer view_layer,
LayerCollection lc 
)
static

◆ layer_collection_exclude_all()

static void layer_collection_exclude_all ( LayerCollection layer_collection)
static

◆ layer_collection_flag_recursive_set()

static void layer_collection_flag_recursive_set ( LayerCollection lc,
const int  flag,
const bool  value,
const bool  restore_flag 
)
static

Set layer collection hide/exclude/indirect flag on a layer collection. recursively.

Definition at line 1443 of file layer.c.

References LayerCollection::flag, LAYER_COLLECTION_EXCLUDE, LAYER_COLLECTION_PREVIOUSLY_EXCLUDED, LayerCollection::layer_collections, LISTBASE_FOREACH, and SET_FLAG_FROM_TEST.

Referenced by BKE_layer_collection_set_flag().

◆ layer_collection_flag_set_recursive()

static void layer_collection_flag_set_recursive ( LayerCollection lc,
const int  flag 
)
static

◆ layer_collection_flag_unset_recursive()

static void layer_collection_flag_unset_recursive ( LayerCollection lc,
const int  flag 
)
static

◆ layer_collection_free()

static void layer_collection_free ( ViewLayer view_layer,
LayerCollection lc 
)
static

◆ layer_collection_hidden()

static bool layer_collection_hidden ( ViewLayer view_layer,
LayerCollection lc 
)
static

◆ layer_collection_local_sync()

static void layer_collection_local_sync ( ViewLayer view_layer,
LayerCollection layer_collection,
const unsigned short  local_collections_uuid,
bool  visible 
)
static

◆ layer_collection_local_visibility_set_recursive()

static void layer_collection_local_visibility_set_recursive ( LayerCollection layer_collection,
const int  local_collections_uuid 
)
static

◆ layer_collection_local_visibility_unset_recursive()

static void layer_collection_local_visibility_unset_recursive ( LayerCollection layer_collection,
const int  local_collections_uuid 
)
static

◆ layer_collection_sync()

static void layer_collection_sync ( ViewLayer view_layer,
const ListBase lb_collections,
ListBase lb_layer_collections,
ListBase new_object_bases,
short  parent_exclude,
short  parent_restrict,
short  parent_layer_restrict,
unsigned short  parent_local_collections_bits 
)
static

◆ layer_collections_copy_data()

static void layer_collections_copy_data ( ViewLayer view_layer_dst,
const ViewLayer view_layer_src,
ListBase layer_collections_dst,
const ListBase layer_collections_src 
)
static

◆ layer_eval_view_layer()

static void layer_eval_view_layer ( struct Depsgraph depsgraph,
struct Scene UNUSEDscene,
ViewLayer view_layer 
)
static

◆ lib_link_layer_collection()

static void lib_link_layer_collection ( BlendLibReader reader,
Library lib,
LayerCollection layer_collection,
bool  master 
)
static

◆ object_base_new()

static Base* object_base_new ( Object ob)
static

◆ object_bases_iterator_begin()

static void object_bases_iterator_begin ( BLI_Iterator iter,
void *  data_in_v,
const int  flag 
)
static

◆ object_bases_iterator_end()

static void object_bases_iterator_end ( BLI_Iterator iter)
static

◆ object_bases_iterator_is_valid()

static bool object_bases_iterator_is_valid ( const View3D v3d,
Base base,
const int  flag 
)
static

◆ object_bases_iterator_next()

static void object_bases_iterator_next ( BLI_Iterator iter,
const int  flag 
)
static

◆ objects_iterator_begin()

static void objects_iterator_begin ( BLI_Iterator iter,
void *  data_in,
const int  flag 
)
static

◆ objects_iterator_end()

static void objects_iterator_end ( BLI_Iterator iter)
static

◆ objects_iterator_next()

static void objects_iterator_next ( BLI_Iterator iter,
const int  flag 
)
static

◆ view_layer_add()

static ViewLayer* view_layer_add ( const char *  name)
static

◆ view_layer_bases_hash_create()

static void view_layer_bases_hash_create ( ViewLayer view_layer)
static

◆ viewlayer_aov_active_set()

static void viewlayer_aov_active_set ( ViewLayer view_layer,
ViewLayerAOV aov 
)
static

◆ viewlayer_aov_make_name_unique()

static void viewlayer_aov_make_name_unique ( ViewLayer view_layer)
static

◆ write_layer_collections()

static void write_layer_collections ( BlendWriter writer,
ListBase lb 
)
static

Definition at line 1889 of file layer.c.

References BLO_write_struct, and LISTBASE_FOREACH.

Referenced by BKE_view_layer_blend_write().

Variable Documentation

◆ g_base_collection_flags

const short g_base_collection_flags
static
Initial value:

Definition at line 67 of file layer.c.

Referenced by BKE_base_eval_flags(), and BKE_layer_collection_sync().