9 #define DNA_DEPRECATED_ALLOW
120 const char *colorspace_name;
134 &mblur_shutter_curve->
clipr,
153 &gp_primitive_curve->
clipr,
228 if (marker->prop !=
nullptr) {
237 const Scene *scene_src = (
const Scene *)id_src;
243 scene_dst->
ed =
nullptr;
252 flag_private_id_data);
260 view_layer_src = view_layer_src->
next, view_layer_dst = view_layer_dst->
next) {
275 (
void *)(&scene_src->
id),
316 scene_dst->
ed = MEM_cnew<Editing>(__func__);
341 if (marker->prop !=
nullptr) {
353 const bool do_id_user =
false;
464 ID *id_old = *id_old_p;
467 ID *id_old_new = id_old !=
nullptr ?
470 if (id_old_new !=
nullptr) {
472 *id_old_p = id_old_new;
481 SWAP(
ID *, *id_p, *id_old_p);
486 SWAP(
ID *, *id_p, *id_old_p);
494 #define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_IDSUPER( \
495 __data, __id, __do_undo_restore, __action, __reader, __id_old, __cb_flag) \
497 if (__do_undo_restore) { \
498 scene_foreach_toolsettings_id_pointer_process( \
499 (ID **)&(__id), __action, __reader, (ID **)&(__id_old), __cb_flag); \
502 BLI_assert((__data) != nullptr); \
503 BKE_LIB_FOREACHID_PROCESS_IDSUPER(__data, __id, __cb_flag); \
508 #define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_FUNCTION_CALL( \
509 __data, __do_undo_restore, __func_call) \
511 if (__do_undo_restore) { \
515 BLI_assert((__data) != nullptr); \
516 BKE_LIB_FOREACHID_PROCESS_FUNCTION_CALL(__data, __func_call); \
523 const bool do_undo_restore,
543 Brush *brush_tmp =
nullptr;
564 const bool do_undo_restore,
721 #undef BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_IDSUPER
722 #undef BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_FUNCTION_CALL
729 const int cb_flag = (lc->collection !=
nullptr &&
742 #define FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag) \
744 CHECK_TYPE(&((_id_super)->id), ID *); \
745 BKE_lib_query_foreachid_process((_data), (ID **)&(_id_super), (_cb_flag)); \
746 if (BKE_lib_query_foreachid_iter_stop((_data))) { \
768 #undef FOREACHID_PROCESS_IDSUPER
829 if (fls->linestyle) {
866 key.offset_in_ID = offsetof(
Scene, eevee.light_cache_data);
868 function_callback(
id,
894 for (i = 0; i <
len; i++, se++) {
1022 if (marker->prop !=
nullptr) {
1102 else if (seq->seqbase.first) {
1193 ed->
cache =
nullptr;
1209 void *channels_poin;
1217 if (ed->
seqbasep == old_seqbasep) {
1241 if (channels_poin) {
1255 if (ms->oldbasep == old_seqbasep) {
1269 if (ms->old_channels == old_displayed_channels || ms->old_channels ==
nullptr) {
1273 channels_poin =
POINTER_OFFSET(ms->old_channels, -channels_offset);
1276 if (channels_poin) {
1287 #ifdef DURIAN_CAMERA_SWITCH
1323 if (rbw->
shared ==
nullptr) {
1331 if (rbw->pointcache) {
1332 rbw->
ltime = (
float)rbw->pointcache->startframe;
1364 #ifdef USE_COLLECTION_COMPAT_28
1366 if (sce->collection) {
1400 if (
node->id ==
nullptr &&
1471 if (base_legacy->object ==
nullptr) {
1474 TIP_(
"LIB: object lost from scene: '%s'"),
1477 if (base_legacy == sce->basact) {
1478 sce->basact =
nullptr;
1491 if (marker->camera) {
1527 #ifdef USE_COLLECTION_COMPAT_28
1528 if (sce->collection) {
1541 #ifdef USE_SETSCENE_CHECK
1542 if (sce->
set !=
nullptr) {
1572 if (lineset->group) {
1589 if (lineset->group) {
1612 if (marker->camera) {
1619 #ifdef USE_COLLECTION_COMPAT_28
1620 if (sce->collection) {
1665 info.struct_size =
sizeof(
Scene);
1666 info.name =
"Scene";
1667 info.name_plural =
"scenes";
1670 info.asset_type_info =
nullptr;
1677 info.make_local =
nullptr;
1681 info.owner_get =
nullptr;
1719 if (adt && adt->
action) {
1721 if ((fcu->rna_path) && strstr(fcu->rna_path,
"sequences_all")) {
1731 if (toolsettings ==
nullptr) {
1791 if (toolsettings ==
nullptr) {
1794 if (toolsettings->
vpaint) {
1798 if (toolsettings->
wpaint) {
1802 if (toolsettings->
sculpt) {
1877 sce_copy->
r = sce->
r;
1918 sce_copy->
gpd =
nullptr;
1937 const bool is_subprocess =
false;
1938 const bool is_root_id =
true;
1941 if (!is_subprocess) {
1992 if (!is_subprocess) {
2056 if (
BLI_findptr(&view_layer->object_bases, ob, offsetof(
Base,
object))) {
2067 if (
STREQ(base->object->id.name + 2, name)) {
2068 return base->object;
2112 bool run_again =
true;
2117 iter->
dupob =
nullptr;
2132 *ob = (*base)->object;
2137 while ((*scene)->set) {
2138 (*scene) = (*scene)->set;
2142 *ob = (*base)->object;
2151 *base = (*base)->
next;
2153 *ob = (*base)->object;
2158 while ((*scene)->set) {
2159 (*scene) = (*scene)->
set;
2163 *ob = (*base)->object;
2172 if (*base ==
nullptr) {
2181 if ((*base)->object->instance_collection ==
nullptr) {
2252 #ifdef DURIAN_CAMERA_SWITCH
2263 Object *first_camera =
nullptr;
2266 if (m->camera && (m->camera->visibility_flag &
OB_HIDE_RENDER) == 0) {
2267 if ((m->frame <= ctime) && (m->frame > frame)) {
2271 if (frame == ctime) {
2276 if (m->frame < min_frame) {
2277 first_camera = m->camera;
2278 min_frame = m->frame;
2288 return first_camera;
2297 #ifdef DURIAN_CAMERA_SWITCH
2320 if (m1->
frame == frame) {
2328 if (m2->
frame == frame) {
2341 if (marker->frame == frame) {
2342 return marker->name;
2345 if (marker->frame > best_frame && marker->frame < frame) {
2346 best_marker = marker;
2347 best_frame = marker->
frame;
2351 return best_marker ? best_marker->
name :
nullptr;
2357 const int second_prev = frame -
mod_i(frame, fps);
2358 const int second_next = second_prev + fps;
2359 const int delta_prev = frame - second_prev;
2360 const int delta_next = second_next - frame;
2361 return (delta_prev < delta_next) ? second_prev : second_next;
2384 if (sce->
set ==
nullptr) {
2389 for (
a = 0, sce_iter = sce; sce_iter->
set; sce_iter = sce_iter->
set,
a++) {
2408 float ctime = frame;
2492 if (
type->draw_engine || !
type->render) {
2530 params.calc_object_remap =
true;
2531 params.update_shapekey_indices =
true;
2585 bool used_multiple_passes =
false;
2588 if (run_callbacks) {
2592 for (
int pass = 0; pass < 2; pass++) {
2605 if (run_callbacks) {
2631 const bool backup =
true;
2633 used_multiple_passes =
true;
2634 run_callbacks =
false;
2638 if (used_multiple_passes) {
2641 const bool is_time_update =
false;
2644 const bool backup =
false;
2662 bool used_multiple_passes =
false;
2667 for (
int pass = 0; pass < 2; pass++) {
2707 const bool backup =
true;
2709 used_multiple_passes =
true;
2713 if (used_multiple_passes) {
2717 const bool is_time_update =
true;
2723 const bool backup =
false;
2743 name =
DATA_(
"RenderView");
2750 DATA_(
"RenderView"),
2785 return min_ii(
r->simplify_subsurf_render, lvl);
2788 return min_ii(
r->simplify_subsurf, lvl);
2798 return (
int)(
r->simplify_particles_render * child_num);
2801 return (
int)(
r->simplify_particles * child_num);
2809 if (base && base->
next) {
2813 if ((base ==
nullptr) && (view_layer !=
nullptr)) {
2825 while ((*sce_iter = (*sce_iter)->
set)) {
2907 const char *none_display_name;
2961 const bool use_crop,
2965 *r_width = (
r->xsch *
r->size) / 100;
2966 *r_height = (
r->ysch *
r->size) / 100;
2976 if (
r->preview_pixel_size == 0) {
2977 return (
U.pixelsize > 1.5f) ? 2 : 1;
2979 return r->preview_pixel_size;
2989 switch (unit_type) {
3053 return (srv[0] && ((srv[0]->viewflag &
SCE_VIEW_DISABLE) == 0) && srv[1] &&
3059 if (srv ==
nullptr) {
3089 if ((!viewname) || (!viewname[0])) {
3095 return STREQ(viewname, srv->name);
3108 if ((!viewname) || (!viewname[0])) {
3114 return STREQ(viewname, srv->name);
3132 if (nr++ == view_id) {
3160 if ((!viewname) || (!viewname[0])) {
3178 const char *filepath,
3186 const char *filepath,
3187 const char *viewname,
3210 if ((viewname ==
nullptr) || (viewname[0] ==
'\0')) {
3239 const char delims[] = {
'.',
'\0'};
3245 if (*r_ext ==
nullptr) {
3253 const size_t suffix_len = strlen(srv->suffix);
3254 if (basename_len >= suffix_len &&
3255 STREQLEN(name + basename_len - suffix_len, srv->suffix, suffix_len)) {
3256 BLI_strncpy(r_prefix, name, basename_len - suffix_len + 1);
3373 const bool allocate_ghash_entry)
3381 if (allocate_ghash_entry) {
3392 if (!allocate_ghash_entry) {
3394 return depsgraph_ptr;
3400 return depsgraph_ptr;
3404 *key_ptr = MEM_new<DepsgraphKey>(__func__);
3407 *depsgraph_ptr =
nullptr;
3408 return depsgraph_ptr;
3416 if (depsgraph_ptr ==
nullptr) {
3420 if (*depsgraph_ptr !=
nullptr) {
3422 return depsgraph_ptr;
3440 return depsgraph_ptr;
3459 return (depsgraph_ptr !=
nullptr) ? *depsgraph_ptr :
nullptr;
3464 if (key_full ==
nullptr) {
3505 return depsgraph_extract;
3517 if (depsgraph_extract_ptr ==
nullptr) {
3520 BLI_assert(*depsgraph_extract_ptr !=
nullptr);
3534 *depsgraph_extract_ptr =
nullptr;
3556 else if (orient_slot->
index_custom > orientation_index) {
typedef float(TangentPoint)[2]
Blender kernel action and pose functionality.
void action_groups_remove_channel(struct bAction *act, struct FCurve *fcu)
void BKE_animdata_duplicate_id_action(struct Main *bmain, struct ID *id, uint duplicate_flags)
void BKE_animdata_blend_read_data(struct BlendDataReader *reader, struct AnimData *adt)
void BKE_animdata_blend_write(struct BlendWriter *writer, struct AnimData *adt)
struct AnimData * BKE_animdata_from_id(const struct ID *id)
void BKE_keyingsets_free(struct ListBase *list)
void BKE_keyingsets_copy(struct ListBase *newlist, const struct ListBase *list)
void BKE_keyingsets_blend_read_lib(struct BlendLibReader *reader, struct ID *id, struct ListBase *list)
void BKE_keyingsets_blend_read_data(struct BlendDataReader *reader, struct ListBase *list)
void BKE_keyingsets_blend_write(struct BlendWriter *writer, struct ListBase *list)
void BKE_keyingsets_foreach_id(struct LibraryForeachIDData *data, const struct ListBase *keyingsets)
void BKE_keyingsets_blend_read_expand(struct BlendExpander *expander, struct ListBase *list)
bool BKE_bpath_foreach_path_fixed_process(struct BPathForeachPathData *bpath_data, char *path)
@ BKE_BPATH_FOREACH_PATH_SKIP_MULTIFILE
bool BKE_bpath_foreach_path_dirfile_fixed_process(struct BPathForeachPathData *bpath_data, char *path_dir, char *path_file)
void BKE_callback_exec_id_depsgraph(struct Main *bmain, struct ID *id, struct Depsgraph *depsgraph, eCbEvent evt)
@ BKE_CB_EVT_DEPSGRAPH_UPDATE_PRE
@ BKE_CB_EVT_FRAME_CHANGE_PRE
@ BKE_CB_EVT_FRAME_CHANGE_POST
@ BKE_CB_EVT_DEPSGRAPH_UPDATE_POST
void BKE_callback_exec_id(struct Main *bmain, struct ID *id, eCbEvent evt)
struct Collection * BKE_collection_duplicate(struct Main *bmain, struct Collection *parent, struct Collection *collection, uint duplicate_flags, uint duplicate_options)
void BKE_collection_compat_blend_read_lib(struct BlendLibReader *reader, struct Library *lib, struct SceneCollection *sc)
void BKE_collection_compat_blend_read_expand(struct BlendExpander *expander, struct SceneCollection *sc)
void BKE_collection_free_data(struct Collection *collection)
void BKE_collection_compat_blend_read_data(struct BlendDataReader *reader, struct SceneCollection *sc)
struct Collection * BKE_collection_master_add(void)
void BKE_collection_blend_write_nolib(struct BlendWriter *writer, struct Collection *collection)
void BKE_curveprofile_blend_read(struct BlendDataReader *reader, struct CurveProfile *profile)
struct CurveProfile * BKE_curveprofile_copy(const struct CurveProfile *profile)
void BKE_curveprofile_blend_write(struct BlendWriter *writer, const struct CurveProfile *profile)
struct CurveProfile * BKE_curveprofile_add(eCurveProfilePresets preset)
void BKE_curveprofile_free(struct CurveProfile *profile)
struct ListBase * object_duplilist(struct Depsgraph *depsgraph, struct Scene *sce, struct Object *ob)
void free_object_duplilist(struct ListBase *lb)
struct EffectorWeights * BKE_effector_add_weights(struct Collection *collection)
void BKE_fcurve_free(struct FCurve *fcu)
void BKE_previewimg_free(struct PreviewImage **prv)
void BKE_previewimg_id_copy(struct ID *new_id, const struct ID *old_id)
void BKE_previewimg_blend_read(struct BlendDataReader *reader, struct PreviewImage *prv)
void BKE_previewimg_blend_write(struct BlendWriter *writer, const struct PreviewImage *prv)
void IDP_BlendReadExpand(struct BlendExpander *expander, struct IDProperty *prop)
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)
void IDP_foreach_property(struct IDProperty *id_property_root, int type_filter, IDPForeachPropertyCallback callback, void *user_data)
#define IDP_BlendDataRead(reader, prop)
void IDP_FreeProperty(struct IDProperty *prop)
void IDP_FreePropertyContent_ex(struct IDProperty *prop, bool do_id_user)
void IDP_BlendReadLib(struct BlendLibReader *reader, struct Library *lib, struct IDProperty *prop)
struct IDProperty * IDP_CopyProperty(const struct IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
@ IDTYPE_CACHE_CB_FLAGS_PERSISTENT
void(* IDTypeForeachCacheFunctionCallback)(struct ID *id, const struct IDCacheKey *cache_key, void **cache_p, uint flags, void *user_data)
void BKE_image_editors_update_frame(const struct Main *bmain, int cfra)
void BKE_main_collection_sync(const struct Main *bmain)
bool BKE_view_layer_has_collection(const struct ViewLayer *view_layer, const struct Collection *collection)
void BKE_view_layer_free_ex(struct ViewLayer *view_layer, bool do_id_user)
void BKE_view_layer_blend_read_data(struct BlendDataReader *reader, struct ViewLayer *view_layer)
struct ViewLayer * BKE_view_layer_context_active_PLACEHOLDER(const struct Scene *scene)
struct ViewLayer * BKE_view_layer_default_render(const struct Scene *scene)
void BKE_view_layer_copy_data(struct Scene *scene_dst, const struct Scene *scene_src, struct ViewLayer *view_layer_dst, const struct ViewLayer *view_layer_src, int flag)
struct ViewLayer * BKE_view_layer_add(struct Scene *scene, const char *name, struct ViewLayer *view_layer_source, int type)
void BKE_view_layer_blend_read_lib(struct BlendLibReader *reader, struct Library *lib, struct ViewLayer *view_layer)
void BKE_view_layer_blend_write(struct BlendWriter *writer, struct ViewLayer *view_layer)
struct ID * BKE_id_copy(struct Main *bmain, const struct ID *id)
@ LIB_ID_CREATE_NO_ALLOCATE
@ LIB_ID_CREATE_NO_USER_REFCOUNT
void BKE_main_id_newptr_and_tag_clear(struct Main *bmain)
struct ID * BKE_id_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, int flag)
void id_us_min(struct ID *id)
void BKE_libblock_free_data_py(struct ID *id)
void id_us_ensure_real(struct ID *id)
void BKE_id_blend_write(struct BlendWriter *writer, struct ID *id)
void id_us_plus_no_lib(struct ID *id)
void * BKE_id_new(struct Main *bmain, short type, const char *name)
struct ID * BKE_id_copy_for_duplicate(struct Main *bmain, struct ID *id, uint duplicate_flags, int copy_flags)
@ LIB_ID_DUPLICATE_IS_SUBPROCESS
struct ID * BKE_libblock_find_name(struct Main *bmain, short type, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_lib_query_foreachid_process(struct LibraryForeachIDData *data, struct ID **id_pp, int cb_flag)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag)
#define BKE_LIB_FOREACHID_PROCESS_FUNCTION_CALL(_data, _func_call)
void BKE_library_foreach_ID_embedded(struct LibraryForeachIDData *data, struct ID **id_pp)
void BKE_lib_query_idpropertiesForeachIDLink_callback(struct IDProperty *id_prop, void *user_data)
@ IDWALK_CB_OVERRIDE_LIBRARY_NOT_OVERRIDABLE
@ ID_REMAP_SKIP_USER_CLEAR
@ ID_REMAP_SKIP_NEVER_NULL_USAGE
void BKE_libblock_relink_to_newid(struct Main *bmain, struct ID *id, int remap_flag) ATTR_NONNULL()
void BKE_libblock_relink_ex(struct Main *bmain, void *idv, void *old_idv, void *new_idv, short remap_flags) ATTR_NONNULL(1
Blender kernel freestyle line style functionality.
#define FOREACH_MAIN_ID_END
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
void ntreeBlendWrite(struct BlendWriter *writer, struct bNodeTree *ntree)
#define CMP_NODE_CRYPTOMATTE
void ntreeFreeEmbeddedTree(struct bNodeTree *ntree)
#define CMP_CRYPTOMATTE_SRC_RENDER
#define CMP_NODE_R_LAYERS
General operations, lookup, etc. for blender objects.
void BKE_paint_blend_write(struct BlendWriter *writer, struct Paint *paint)
void BKE_paint_copy(struct Paint *src, struct Paint *tar, int flag)
void BKE_paint_free(struct Paint *p)
void BKE_paint_blend_read_lib(struct BlendLibReader *reader, struct Scene *scene, struct Paint *paint)
void BKE_paint_blend_read_data(struct BlendDataReader *reader, const struct Scene *scene, struct Paint *paint)
void BKE_ptcache_id_from_rigidbody(PTCacheID *pid, struct Object *ob, struct RigidBodyWorld *rbw)
void BKE_ptcache_blend_read_data(struct BlendDataReader *reader, struct ListBase *ptcaches, struct PointCache **ocache, int force_disk)
void BKE_ptcache_blend_write(struct BlendWriter *writer, struct ListBase *ptcaches)
API for Blender-side Rigid Body stuff.
void BKE_rigidbody_remove_constraint(struct Main *bmain, struct Scene *scene, struct Object *ob, bool free_us)
void BKE_rigidbody_remove_object(struct Main *bmain, struct Scene *scene, struct Object *ob, bool free_us)
void BKE_rigidbody_free_world(struct Scene *scene)
void BKE_rigidbody_world_id_loop(struct RigidBodyWorld *rbw, RigidbodyWorldIDFunc func, void *userdata)
void BKE_rigidbody_world_groups_relink(struct RigidBodyWorld *rbw)
struct RigidBodyWorld * BKE_rigidbody_world_copy(struct RigidBodyWorld *rbw, int flag)
void BKE_screen_view3d_shading_blend_read_data(struct BlendDataReader *reader, struct View3DShading *shading)
void BKE_screen_view3d_shading_blend_write(struct BlendWriter *writer, struct View3DShading *shading)
void BKE_sound_seek_scene(struct Main *bmain, struct Scene *scene)
void BKE_sound_set_scene_volume(struct Scene *scene, float volume)
void BKE_sound_mute_scene(struct Scene *scene, int muted)
void BKE_sound_ensure_scene(struct Scene *scene)
void BKE_sound_reset_scene_runtime(struct Scene *scene)
void BKE_sound_set_cfra(int cfra)
void BKE_sound_update_scene_listener(struct Scene *scene)
void BKE_sound_destroy_scene(struct Scene *scene)
void BKE_sound_update_scene(struct Depsgraph *depsgraph, struct Scene *scene)
void BKE_sound_update_fps(struct Main *bmain, struct Scene *scene)
int BKE_unit_base_of_type_get(int system, int type)
struct bScreen * BKE_workspace_active_screen_get(const struct WorkSpaceInstanceHook *hook) GETTER_ATTRS
bool BLI_ghashutil_strcmp(const void *a, const void *b)
unsigned int BLI_ghashutil_ptrhash(const void *key)
unsigned int BLI_ghashutil_strhash_p(const void *ptr)
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_ghash_remove(GHash *gh, const void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void ** BLI_ghash_lookup_p(GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
bool BLI_ghash_ensure_p_ex(GHash *gh, const void *key, void ***r_key, void ***r_val) ATTR_WARN_UNUSED_RESULT
#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)
#define LISTBASE_FOREACH_BACKWARD(type, var, list)
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)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) 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)
MINLINE int min_ii(int a, int b)
MINLINE int max_ii(int a, int b)
#define BLI_ASSERT_UNIT_M3(m)
MINLINE int mod_i(int i, int n)
#define BLI_ASSERT_UNIT_QUAT(q)
MINLINE int round_db_to_int(double a)
void copy_m3_m4(float m1[3][3], const float m2[4][4])
void copy_m4_m3(float m1[4][4], const float m2[3][3])
void copy_m4_m4(float m1[4][4], const float m2[4][4])
void eulO_to_mat3(float mat[3][3], const float eul[3], short order)
void axis_angle_to_quat(float r[4], const float axis[3], float angle)
void mat3_to_eulO(float eul[3], short order, const float mat[3][3])
void mat3_to_compatible_eulO(float eul[3], const float old[3], short order, const float mat[3][3])
float normalize_qt_qt(float r[4], const float q[4])
void quat_to_compatible_eulO(float eul[3], const float old[3], short order, const float quat[4])
void quat_to_eulO(float eul[3], short order, const float quat[4])
void mat3_to_axis_angle(float axis[3], float *angle, const float M[3][3])
void quat_to_axis_angle(float axis[3], float *angle, const float q[4])
void eulO_to_quat(float quat[4], const float eul[3], short order)
void copy_qt_qt(float q[4], const float a[4])
void quat_to_compatible_quat(float q[4], const float a[4], const float old[4])
void quat_to_mat3(float mat[3][3], const float q[4])
void axis_angle_to_mat3(float R[3][3], const float axis[3], float angle)
void mat3_normalized_to_quat(float q[4], const float mat[3][3])
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void zero_v3(float r[3])
bool BLI_path_suffix(char *string, size_t maxlen, const char *suffix, const char *sep) ATTR_NONNULL()
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
size_t BLI_strncpy_rlen(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
size_t BLI_str_rpartition(const char *str, const char delim[], const char **sep, const char **suf) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
bool BLI_uniquename(struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t name_len)
int BLI_system_thread_count(void)
int BLI_system_num_threads_override_get(void)
#define STREQLEN(a, b, n)
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define POINTER_OFFSET(v, ofs)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define BLO_read_data_address(reader, ptr_p)
ID * BLO_read_get_new_id_address(BlendLibReader *reader, struct Library *lib, struct ID *id)
struct BlendFileReadReport * BLO_read_lib_reports(BlendLibReader *reader)
bool BLO_read_data_is_undo(BlendDataReader *reader)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_list(BlendDataReader *reader, struct ListBase *list)
void BLO_read_glob_list(BlendDataReader *reader, struct ListBase *list)
void * BLO_read_get_new_data_address(BlendDataReader *reader, const void *old_address)
#define BLO_read_id_address(reader, lib, id_ptr_p)
#define BLO_expand(expander, id)
void BLO_write_raw(BlendWriter *writer, size_t size_in_bytes, const void *data_ptr)
struct BlendFileReadReport * BLO_read_data_reports(BlendDataReader *reader)
void BLO_reportf_wrap(struct BlendFileReadReport *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
bool BLO_write_is_undo(BlendWriter *writer)
external readfile function prototypes.
#define BLT_I18NCONTEXT_ID_SCENE
typedef double(DMatrix)[4][4]
void DEG_evaluate_on_refresh(Depsgraph *graph)
Depsgraph * DEG_graph_new(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, eEvaluationMode mode)
struct Depsgraph Depsgraph
void DEG_editors_update(struct Depsgraph *depsgraph, bool time)
void DEG_enable_editors_update(struct Depsgraph *depsgraph)
void DEG_ids_clear_recalc(Depsgraph *depsgraph, bool backup)
void DEG_make_active(struct Depsgraph *depsgraph)
void DEG_graph_replace_owners(struct Depsgraph *depsgraph, struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer)
void DEG_graph_free(Depsgraph *graph)
void DEG_evaluate_on_framechange(Depsgraph *graph, float frame)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_ids_restore_recalc(Depsgraph *depsgraph)
void DEG_graph_tag_relations_update(struct Depsgraph *graph)
void DEG_graph_relations_update(struct Depsgraph *graph)
void DEG_debug_name_set(struct Depsgraph *depsgraph, const char *name)
struct Scene * DEG_get_input_scene(const Depsgraph *graph)
bool DEG_is_fully_evaluated(const struct Depsgraph *depsgraph)
bool DEG_id_type_any_updated(const struct Depsgraph *depsgraph)
struct ViewLayer * DEG_get_evaluated_view_layer(const struct Depsgraph *graph)
bool DEG_is_evaluated_id(const struct ID *id)
struct Main * DEG_get_bmain(const Depsgraph *graph)
struct ViewLayer * DEG_get_input_view_layer(const Depsgraph *graph)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
@ ID_RECALC_AUDIO_LISTENER
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_LINKED(_id)
Object groups, one object can be in many groups at once.
#define DNA_struct_default_get(struct_name)
#define DNA_struct_default_alloc(struct_name)
Object is a sort of wrapper for general info.
@ PTCACHE_FLAG_INFO_DIRTY
Types and defines for representing Rigid Body entities.
#define OBEDIT_FROM_VIEW_LAYER(view_layer)
#define SCE_READFILE_LIBLINK_NEED_SETSCENE_CHECK
#define R_NO_CAMERA_SWITCH
#define STEREO_LEFT_SUFFIX
#define STEREO_RIGHT_NAME
#define STEREO_RIGHT_SUFFIX
@ SCE_VIEWS_FORMAT_STEREO_3D
@ SCE_VIEWS_FORMAT_MULTIVIEW
#define SEQ_HAS_PATH(_seq)
@ V3D_GIZMO_SHOW_OBJECT_ROTATE
@ V3D_GIZMO_SHOW_OBJECT_SCALE
@ V3D_GIZMO_SHOW_OBJECT_TRANSLATE
_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 const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_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
_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 const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
const char * IMB_colormanagement_view_get_default_name(const char *display_name)
@ COLOR_ROLE_DEFAULT_SEQUENCER
const char * IMB_colormanagement_display_get_none_name(void)
const char * IMB_colormanagement_role_colorspace_name_get(int role)
void IMB_stereo3d_write_dimensions(char mode, bool is_squeezed, size_t width, size_t height, size_t *r_width, size_t *r_height)
Read Guarded memory(de)allocation.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between camera
Platform independent time functions.
#define RE_USE_SPHERICAL_STEREO
#define RE_USE_SHADING_NODES_CUSTOM
__forceinline const avxi srl(const avxi &a, const int32_t b)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_mesh_bm_to_me(Main *bmain, BMesh *bm, Mesh *me, const struct BMeshToMeshParams *params)
const Depsgraph * depsgraph
SyclQueue void void size_t num_bytes void
void EEVEE_lightcache_blend_read_data(BlendDataReader *reader, LightCache *cache)
void EEVEE_lightcache_blend_write(BlendWriter *writer, LightCache *cache)
void EEVEE_lightcache_free(LightCache *lcache)
void EEVEE_lightcache_info_update(SceneEEVEE *eevee)
RenderEngineType * RE_engines_find(const char *idname)
const vector< Marker > & markers
void SEQ_for_each_callback(ListBase *seqbase, SeqForEachFunc callback, void *user_data)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
size_t(* MEM_allocN_len)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
ccl_device_inline float3 pow(float3 v, float e)
static void area(int d1, int d2, int e1, int e2, float weights[2])
ListBase threads
list of all thread for every CPUDevice in cpudevices a thread exists.
static struct PyModuleDef module
PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
bool RNA_pointer_is_null(const PointerRNA *ptr)
int RNA_enum_get(PointerRNA *ptr, const char *name)
void BKE_scene_base_flag_to_objects(ViewLayer *view_layer)
void free_avicodecdata(AviCodecData *acd)
int BKE_scene_transform_orientation_get_index(const Scene *scene, const TransformOrientation *orientation)
void BKE_scene_graph_evaluated_ensure(Depsgraph *depsgraph, Main *bmain)
#define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_FUNCTION_CALL(__data, __do_undo_restore, __func_call)
static bool seq_foreach_member_id_cb(Sequence *seq, void *user_data)
void BKE_scene_disable_color_management(Scene *scene)
static void scene_blend_read_lib(BlendLibReader *reader, ID *id)
const char * BKE_scene_multiview_render_view_name_get(const RenderData *rd, const int view_id)
static void scene_undo_preserve(BlendLibReader *reader, ID *id_new, ID *id_old)
bool BKE_scene_uses_cycles(const Scene *scene)
static void scene_lib_override_apply_post(ID *id_dst, ID *UNUSED(id_src))
void BKE_scene_copy_data_eevee(Scene *sce_dst, const Scene *sce_src)
float BKE_scene_ctime_get(const Scene *scene)
int get_render_subsurf_level(const RenderData *r, int lvl, bool for_render)
static void scene_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int flag)
void BKE_scene_undo_depsgraphs_restore(Main *bmain, GHash *depsgraph_extract)
const char * BKE_scene_multiview_view_id_suffix_get(const RenderData *rd, const int view_id)
int BKE_scene_num_threads(const Scene *scene)
int get_render_child_particle_number(const RenderData *r, int child_num, bool for_render)
void BKE_scene_allocate_depsgraph_hash(Scene *scene)
static void scene_graph_update_tagged(Depsgraph *depsgraph, Main *bmain, bool only_if_tagged)
void BKE_scene_free_view_layer_depsgraph(Scene *scene, ViewLayer *view_layer)
void BKE_scene_multiview_view_filepath_get(const RenderData *rd, const char *filepath, const char *viewname, char *r_filepath)
static void depsgraph_key_free(void *key_v)
const char * RE_engine_id_CYCLES
static void scene_blend_read_data(BlendDataReader *reader, ID *id)
static void direct_link_paint_helper(BlendDataReader *reader, const Scene *scene, Paint **paint)
void BKE_toolsettings_free(ToolSettings *toolsettings)
void BKE_scene_free_depsgraph_hash(Scene *scene)
eSceneForeachUndoPreserveProcess
@ SCENE_FOREACH_UNDO_NO_RESTORE
@ SCENE_FOREACH_UNDO_RESTORE
static void link_recurs_seq(BlendDataReader *reader, ListBase *lb)
int BKE_scene_multiview_num_views_get(const RenderData *rd)
bool BKE_scene_multiview_is_render_view_active(const RenderData *rd, const SceneRenderView *srv)
int BKE_scene_frame_snap_by_seconds(Scene *scene, double interval_in_seconds, int frame)
#define FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag)
void BKE_scene_transform_orientation_remove(Scene *scene, TransformOrientation *orientation)
void BKE_scene_cursor_from_mat4(View3DCursor *cursor, const float mat[4][4], bool use_compat)
bool BKE_scene_check_rigidbody_active(const Scene *scene)
Scene * BKE_scene_find_from_collection(const Main *bmain, const Collection *collection)
int BKE_render_preview_pixel_size(const RenderData *r)
static bool depsgraph_key_compare(const void *key_a_v, const void *key_b_v)
void BKE_scene_view_layer_graph_evaluated_ensure(Main *bmain, Scene *scene, ViewLayer *view_layer)
bool BKE_scene_has_view_layer(const Scene *scene, const ViewLayer *layer)
static void scene_free_markers(Scene *scene, bool do_id_user)
static void scene_copy_markers(Scene *scene_dst, const Scene *scene_src, const int flag)
void BKE_scene_frame_set(Scene *scene, float frame)
static void scene_blend_read_expand(BlendExpander *expander, ID *id)
static void remove_sequencer_fcurves(Scene *sce)
static void composite_patch(bNodeTree *ntree, Scene *scene)
static Depsgraph ** scene_get_depsgraph_p(Scene *scene, ViewLayer *view_layer, const bool allocate_ghash_entry)
Depsgraph * BKE_scene_ensure_depsgraph(Main *bmain, Scene *scene, ViewLayer *view_layer)
int BKE_scene_base_iter_next(Depsgraph *depsgraph, SceneBaseIter *iter, Scene **scene, int val, Base **base, Object **ob)
bool BKE_scene_camera_switch_update(Scene *scene)
static void scene_blend_write(BlendWriter *writer, ID *id, const void *id_address)
static void scene_foreach_layer_collection(LibraryForeachIDData *data, ListBase *lb)
void BKE_render_resolution(const struct RenderData *r, const bool use_crop, int *r_width, int *r_height)
SceneRenderView * BKE_scene_multiview_render_view_findindex(const RenderData *rd, const int view_id)
bool BKE_scene_uses_cycles_experimental_features(Scene *scene)
bool BKE_scene_multiview_is_stereo3d(const RenderData *rd)
bool BKE_scene_multiview_is_render_view_first(const RenderData *rd, const char *viewname)
static void scene_foreach_rigidbodyworldSceneLooper(struct RigidBodyWorld *UNUSED(rbw), ID **id_pointer, void *user_data, int cb_flag)
int BKE_scene_orientation_slot_get_index(const TransformOrientationSlot *orient_slot)
void BKE_scene_cursor_rot_to_quat(const View3DCursor *cursor, float quat[4])
float BKE_scene_frame_get(const Scene *scene)
void BKE_scene_groups_relink(Scene *sce)
bool BKE_scene_can_be_removed(const Main *bmain, const Scene *scene)
void BKE_scene_set_background(Main *bmain, Scene *scene)
void BKE_scene_cursor_mat3_to_rot(View3DCursor *cursor, const float mat[3][3], bool use_compat)
@ CYCLES_FEATURES_SUPPORTED
@ CYCLES_FEATURES_EXPERIMENTAL
Base * _setlooper_base_step(Scene **sce_iter, ViewLayer *view_layer, Base *base)
const char * RE_engine_id_BLENDER_WORKBENCH
bool BKE_scene_multiview_is_render_view_last(const RenderData *rd, const char *viewname)
int BKE_render_num_threads(const RenderData *rd)
bool BKE_scene_use_spherical_stereo(Scene *scene)
void BKE_scene_multiview_videos_dimensions_get(const RenderData *rd, const size_t width, const size_t height, size_t *r_width, size_t *r_height)
void BKE_scene_ensure_depsgraph_hash(Scene *scene)
TransformOrientation * BKE_scene_transform_orientation_find(const Scene *scene, const int index)
void BKE_scene_update_sound(Depsgraph *depsgraph, Main *bmain)
Scene * BKE_scene_duplicate(Main *bmain, Scene *sce, eSceneCopyMethod type)
#define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_IDSUPER(__data, __id, __do_undo_restore, __action, __reader, __id_old, __cb_flag)
SceneRenderView * BKE_scene_add_render_view(Scene *sce, const char *name)
int BKE_scene_orientation_get_index_from_flag(Scene *scene, int flag)
bool BKE_scene_validate_setscene(Main *bmain, Scene *sce)
int BKE_scene_multiview_num_videos_get(const RenderData *rd)
Depsgraph * BKE_scene_get_depsgraph(const Scene *scene, const ViewLayer *view_layer)
static void scene_init_data(ID *id)
const char * BKE_scene_find_last_marker_name(const Scene *scene, int frame)
static void scene_foreach_toolsettings_id_pointer_process(ID **id_p, const eSceneForeachUndoPreserveProcess action, BlendLibReader *reader, ID **id_old_p, const uint cb_flag)
int BKE_scene_orientation_get_index(Scene *scene, int slot_index)
const char * BKE_scene_find_marker_name(const Scene *scene, int frame)
void BKE_scene_cursor_quat_to_rot(View3DCursor *cursor, const float quat[4], bool use_compat)
GHash * BKE_scene_undo_depsgraphs_extract(Main *bmain)
bool BKE_scene_object_find(Scene *scene, Object *ob)
void BKE_scene_orientation_slot_set_index(TransformOrientationSlot *orient_slot, int orientation)
float BKE_scene_frame_to_ctime(const Scene *scene, const int frame)
void BKE_scene_cursor_rot_to_mat3(const View3DCursor *cursor, float mat[3][3])
const char * RE_engine_id_BLENDER_EEVEE
void BKE_scene_graph_update_tagged(Depsgraph *depsgraph, Main *bmain)
Scene * BKE_scene_add(Main *bmain, const char *name)
const char * BKE_scene_multiview_view_suffix_get(const RenderData *rd, const char *viewname)
static Depsgraph ** scene_ensure_depsgraph_p(Main *bmain, Scene *scene, ViewLayer *view_layer)
static void scene_foreach_id(ID *id, LibraryForeachIDData *data)
bool BKE_scene_use_shading_nodes_custom(Scene *scene)
void BKE_scene_multiview_filepath_get(const SceneRenderView *srv, const char *filepath, char *r_filepath)
int BKE_scene_multiview_view_id_get(const RenderData *rd, const char *viewname)
static void scene_free_data(ID *id)
static void prepare_mesh_for_viewport_render(Main *bmain, const ViewLayer *view_layer)
static bool seq_foreach_path_callback(Sequence *seq, void *user_data)
void BKE_scene_graph_update_for_newframe(Depsgraph *depsgraph)
TransformOrientationSlot * BKE_scene_orientation_slot_get_from_flag(Scene *scene, int flag)
double BKE_scene_unit_scale(const UnitSettings *unit, const int unit_type, double value)
static unsigned int depsgraph_key_hash(const void *key_v)
static void scene_foreach_cache(ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
static void scene_foreach_toolsettings(LibraryForeachIDData *data, ToolSettings *toolsett, const bool do_undo_restore, BlendLibReader *reader, ToolSettings *toolsett_old)
constexpr IDTypeInfo get_type_info()
static void scene_foreach_path(ID *id, BPathForeachPathData *bpath_data)
Object * BKE_scene_object_find_by_name(const Scene *scene, const char *name)
ToolSettings * BKE_toolsettings_copy(ToolSettings *toolsettings, const int flag)
void BKE_scene_cursor_to_mat4(const View3DCursor *cursor, float mat[4][4])
static bool check_rendered_viewport_visible(Main *bmain)
void BKE_scene_graph_update_for_newframe_ex(Depsgraph *depsgraph, const bool clear_recalc)
static void depsgraph_key_value_free(void *value)
bool BKE_scene_remove_render_view(Scene *scene, SceneRenderView *srv)
void BKE_scene_update_tag_audio_volume(Depsgraph *UNUSED(depsgraph), Scene *scene)
bool BKE_scene_check_color_management_enabled(const Scene *scene)
static char * scene_undo_depsgraph_gen_key(Scene *scene, ViewLayer *view_layer, char *key_full)
void BKE_scene_remove_rigidbody_object(struct Main *bmain, Scene *scene, Object *ob, const bool free_us)
static void scene_foreach_paint(LibraryForeachIDData *data, Paint *paint, const bool do_undo_restore, BlendLibReader *reader, Paint *paint_old)
void BKE_scene_object_base_flag_sync_from_base(Base *base)
Scene * BKE_scene_set_name(Main *bmain, const char *name)
bool BKE_scene_uses_blender_workbench(const Scene *scene)
void BKE_scene_multiview_view_prefix_get(Scene *scene, const char *name, char *r_prefix, const char **r_ext)
bool BKE_scene_uses_blender_eevee(const Scene *scene)
TransformOrientationSlot * BKE_scene_orientation_slot_get(Scene *scene, int slot_index)
void SEQ_tool_settings_free(SequencerToolSettings *tool_settings)
void SEQ_sequence_base_dupli_recursive(const Scene *scene_src, Scene *scene_dst, ListBase *nseqbase, const ListBase *seqbase, int dupe_flag, const int flag)
void SEQ_blend_read_expand(BlendExpander *expander, ListBase *seqbase)
SequencerToolSettings * SEQ_tool_settings_init(void)
void SEQ_blend_read_lib(BlendLibReader *reader, Scene *scene, ListBase *seqbase)
void SEQ_editing_free(Scene *scene, const bool do_id_user)
SequencerToolSettings * SEQ_tool_settings_copy(SequencerToolSettings *tool_settings)
void SEQ_blend_read(BlendDataReader *reader, ListBase *seqbase)
bool SEQ_valid_strip_channel(Sequence *seq)
void SEQ_blend_write(BlendWriter *writer, ListBase *seqbase)
struct Object * cage_object
struct ImageFormatData im_format
int sequence_strips_skipped
struct BlendFileReadReport::@134 count
const ViewLayer * view_layer
struct DupliObject * next
struct SequenceLookup * sequence_lookup
struct PrefetchJob * prefetch_job
ListBase * displayed_channels
struct Collection * group
struct CurveMapping * custom_ipo
struct Object * reference_object
struct GP_Sculpt_Guide guide
struct CurveMapping * cur_primitive
struct CurveMapping * cur_falloff
unsigned int id_session_uuid
struct BMEditMesh * edit_mesh
void set(const SocketType &input, bool value)
struct RigidBodyOb * rigidbody_object
struct RigidBodyCon * rigidbody_constraint
struct ListBase * ptcaches
struct PaintToolSlot * tool_slots
ParticleBrushData brush[7]
struct Object * shape_object
struct CurveMapping mblur_shutter_curve
struct ImageFormatData im_format
struct AviCodecData * avicodecdata
struct PointCache * pointcache
struct Collection * constraints
struct Collection * group
struct RigidBodyWorld_Shared * shared
struct EffectorWeights * effector_weights
struct DupliObject * dupob
struct Object * dupli_refob
struct ListBase * duplilist
struct LightCache * light_cache_data
char light_cache_info[64]
struct SceneRenderView * next
struct bNodeTree * nodetree
struct Collection * master_collection
struct GHash * depsgraph_hash
struct PhysicsSettings physics_settings
struct RigidBodyWorld * rigidbody_world
IDProperty * layer_properties
struct SceneDisplay display
struct CustomData_MeshMasks customdata_mask
struct SceneGpencil grease_pencil_settings
struct ToolSettings * toolsettings
ColorManagedViewSettings view_settings
struct PreviewImage * preview
struct CustomData_MeshMasks customdata_mask_modal
TransformOrientationSlot orientation_slots[4]
ListBase transform_spaces
ColorManagedColorspaceSettings sequencer_colorspace_settings
ColorManagedDisplaySettings display_settings
struct Object * gravity_object
struct Object * scene_camera
float rotation_quaternion[4]