10#define DNA_DEPRECATED_ALLOW
158 const char *colorspace_name;
172 &mblur_shutter_curve->
clipr,
189 &gp_falloff_curve->
clipr,
197 &gp_primitive_curve->
clipr,
261 scene->
runtime = MEM_new<SceneRuntime>(__func__);
265 std::optional<Library *> owner_library,
271 const Scene *scene_src = (
const Scene *)id_src;
277 scene_dst->
ed =
nullptr;
288 flag_embedded_id_data);
299 view_layer_src = view_layer_src->
next, view_layer_dst = view_layer_dst->
next)
365 scene_dst->
runtime = MEM_new<SceneRuntime>(__func__);
371 if (marker->prop !=
nullptr) {
382 const bool do_id_user =
false;
389 "Pointer should not be valid after blend file reading.");
480 ID *id_old = *id_old_p;
487 if (id_old_new == id_old) {
490 if (id_old_new !=
nullptr) {
492 *id_old_p = id_old_new;
508 ID *id_new =
id !=
nullptr ?
518 std::swap(*id_p, *id_old_p);
523 std::swap(*id_p, *id_old_p);
533#define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_IDSUPER_P( \
534 _data, _id_p, _do_undo_restore, _action, _reader, _id_old_p, _cb_flag) \
536 if (_do_undo_restore) { \
537 scene_foreach_toolsettings_id_pointer_process( \
538 (ID **)(_id_p), _action, _reader, (ID **)(_id_old_p), _cb_flag); \
541 BLI_assert((_data) != nullptr); \
542 BKE_LIB_FOREACHID_PROCESS_IDSUPER_P(_data, _id_p, _cb_flag); \
547#define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_FUNCTION_CALL( \
548 _data, _do_undo_restore, _func_call) \
550 if (_do_undo_restore) { \
554 BLI_assert((_data) != nullptr); \
555 BKE_LIB_FOREACHID_PROCESS_FUNCTION_CALL(_data, _func_call); \
562 const bool do_undo_restore,
573 Brush *brush_tmp =
nullptr;
574 Brush **brush_p = paint ? &paint->
brush : &brush_tmp;
583 Brush *eraser_brush_tmp =
nullptr;
593 Palette *palette_tmp =
nullptr;
606 const bool do_undo_restore,
615 BLI_assert(do_undo_restore || (toolsett == toolsett_old));
668 Paint *paint, *paint_old;
670 if (toolsett_old->
vpaint) {
678 if (toolsett_old->
wpaint) {
686 if (toolsett_old->
sculpt) {
712 if (toolsett_old != toolsett) {
767#undef BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_IDSUPER
768#undef BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_FUNCTION_CALL
772 const bool is_master)
792#define FOREACHID_PROCESS_ID_NOCHECK(_data, _id_super, _cb_flag) \
794 BKE_lib_query_foreachid_process((_data), reinterpret_cast<ID **>(&(_id_super)), (_cb_flag)); \
795 if (BKE_lib_query_foreachid_iter_stop(_data)) { \
801#define FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag) \
803 CHECK_TYPE(&((_id_super)->id), ID *); \
804 FOREACHID_PROCESS_ID_NOCHECK(_data, _id_super, _cb_flag); \
814 BKE_lib_query_idpropertiesForeachIDLink_callback(prop, data);
817 BKE_lib_query_idpropertiesForeachIDLink_callback(prop, data);
834#undef FOREACHID_PROCESS_IDSUPER
835#undef FOREACHID_PROCESS_ID_NOCHECK
853 if (scene->nodetree) {
878 BKE_lib_query_idpropertiesForeachIDLink_callback(prop, data);
884 BKE_lib_query_idpropertiesForeachIDLink_callback(prop, data);
912 BKE_lib_query_idpropertiesForeachIDLink_callback(prop, data);
970 for (
i = 0;
i <
len;
i++, se++) {
990 if (scene->
ed !=
nullptr) {
1000 fn.single(paint->unified_paint_settings.color);
1001 fn.single(paint->unified_paint_settings.secondary_color);
1010 if (scene->
ed !=
nullptr) {
1024 if (is_write_undo) {
1044 sce->use_nodes =
true;
1058 if (ts->unified_paint_settings.curve_rand_hue) {
1062 if (ts->unified_paint_settings.curve_rand_saturation) {
1066 if (ts->unified_paint_settings.curve_rand_value) {
1170 temp_nodetree->chunksize = 256;
1173 MEM_freeN(
reinterpret_cast<void *
>(sce->nodetree));
1174 sce->nodetree =
nullptr;
1234 else if (strip->seqbase.first) {
1255 sce->
runtime = MEM_new<SceneRuntime>(__func__);
1382 ms->old_strip =
static_cast<Strip *
>(
1412 if (rbw->
shared ==
nullptr) {
1420 if (rbw->pointcache) {
1421 rbw->
ltime =
float(rbw->pointcache->startframe);
1468 if (base_legacy->object ==
nullptr) {
1471 RPT_(
"LIB: object lost from scene: '%s'"),
1474 if (base_legacy == sce->basact) {
1475 sce->basact =
nullptr;
1485#ifdef USE_SETSCENE_CHECK
1486 if (sce->
set !=
nullptr) {
1538 info.
name =
"Scene";
1573double Scene::frames_per_second()
const
1575 return double(this->r.frs_sec) / double(this->r.frs_sec_base);
1589 std::optional<std::pair<animrig::Action *, animrig::Slot *>> action_and_slot =
1591 if (!action_and_slot) {
1596 action_and_slot->second->handle);
1604 for (
FCurve *fcurve : fcurves) {
1605 if ((fcurve->rna_path) && strstr(fcurve->rna_path,
"sequence_editor.strips_all")) {
1613 if (toolsettings ==
nullptr) {
1617 if (toolsettings->
vpaint) {
1621 if (toolsettings->
wpaint) {
1625 if (toolsettings->
sculpt) {
1669 toolsettings->unified_paint_settings.curve_rand_hue);
1671 toolsettings->unified_paint_settings.curve_rand_saturation);
1673 toolsettings->unified_paint_settings.curve_rand_value);
1696 if (toolsettings ==
nullptr) {
1699 if (toolsettings->
vpaint) {
1703 if (toolsettings->
wpaint) {
1707 if (toolsettings->
sculpt) {
1744 if (toolsettings->unified_paint_settings.curve_rand_hue) {
1747 if (toolsettings->unified_paint_settings.curve_rand_saturation) {
1750 if (toolsettings->unified_paint_settings.curve_rand_value) {
1787 uint duplicate_options)
1800 sce_copy->
r = sce->
r;
1837 sce_copy->
gpd =
nullptr;
1856 if (!is_subprocess) {
1868 if (is_subprocess) {
1869 if (sce->
id.
newid !=
nullptr) {
1870 return blender::id_cast<Scene *>(sce->
id.
newid);
1872 sce_copy = blender::id_cast<Scene *>(
1877 sce_copy = blender::id_cast<Scene *>(
BKE_id_copy(bmain, (
ID *)sce));
1949 if (!is_subprocess) {
1994 if (other_scene != scene && !
ID_IS_LINKED(other_scene)) {
2026 if (
STREQ(base->object->id.name + 2,
name)) {
2027 return base->object;
2072 bool run_again =
true;
2077 iter->
dupob =
nullptr;
2094 *ob = (*base)->object;
2099 while ((*scene)->set) {
2100 (*scene) = (*scene)->set;
2104 if (object_bases->
first) {
2105 *base =
static_cast<Base *
>(object_bases->
first);
2106 *ob = (*base)->object;
2115 *base = (*base)->
next;
2117 *ob = (*base)->object;
2122 while ((*scene)->set) {
2123 (*scene) = (*scene)->set;
2127 if (object_bases->
first) {
2128 *base =
static_cast<Base *
>(object_bases->
first);
2129 *ob = (*base)->object;
2138 if (*base ==
nullptr) {
2147 if ((*base)->object->instance_collection ==
nullptr) {
2182 iter->
dupob =
nullptr;
2233 Object *camera =
nullptr;
2234 Object *first_camera =
nullptr;
2237 if (m->camera && (m->camera->visibility_flag &
OB_HIDE_RENDER) == 0) {
2238 if ((m->frame <= ctime) && (m->frame > frame)) {
2242 if (frame == ctime) {
2247 if (m->frame < min_frame) {
2248 first_camera = m->camera;
2249 min_frame = m->frame;
2254 if (camera ==
nullptr) {
2259 return first_camera;
2268 if (camera && (camera != scene->
camera)) {
2287 if (m1->
frame == frame) {
2295 if (m2->
frame == frame) {
2308 if (marker->frame == frame) {
2309 return marker->name;
2312 if (marker->frame > best_frame && marker->frame < frame) {
2313 best_marker = marker;
2314 best_frame = marker->
frame;
2318 return best_marker ? best_marker->
name :
nullptr;
2322 const double interval_in_seconds,
2328 const double interval_in_frames = scene->frames_per_second() * interval_in_seconds;
2329 const double second_prev = interval_in_frames *
floor(frame / interval_in_frames);
2330 const double second_next = second_prev +
ceil(interval_in_frames);
2331 const double delta_prev = frame - second_prev;
2332 const double delta_next = second_next - frame;
2333 return float((delta_prev < delta_next) ? second_prev : second_next);
2353 if (sce->
set ==
nullptr) {
2358 for (a = 0, sce_iter = sce; sce_iter->
set; sce_iter = sce_iter->
set, a++) {
2377 float ctime = frame;
2393 scene->
r.
cfra = int(intpart);
2458 Scene *scene = window->scene;
2466 View3D *v3d =
static_cast<View3D *
>(area->spacedata.first);
2502 params.calc_object_remap =
true;
2503 params.update_shapekey_indices =
true;
2514 const int recalc = scene->
id.
recalc;
2558 bool used_multiple_passes =
false;
2561 if (run_callbacks) {
2565 for (
int pass = 0; pass < 2; pass++) {
2578 if (run_callbacks) {
2604 const bool backup =
true;
2606 used_multiple_passes =
true;
2607 run_callbacks =
false;
2611 if (used_multiple_passes) {
2614 const bool is_time_update =
false;
2617 const bool backup =
false;
2635 bool used_multiple_passes =
false;
2640 for (
int pass = 0; pass < 2; pass++) {
2679 const bool backup =
true;
2681 used_multiple_passes =
true;
2685 if (used_multiple_passes) {
2689 const bool is_time_update =
true;
2695 const bool backup =
false;
2722 DATA_(
"RenderView"),
2781 if (base && base->
next) {
2785 if ((base ==
nullptr) && (view_layer !=
nullptr)) {
2790 if (object_bases->
first) {
2791 return static_cast<Base *
>(object_bases->
first);
2799 while ((*sce_iter = (*sce_iter)->
set)) {
2869 const char *none_display_name;
2907 return max_ii(threads, 1);
2917 *r_width = (r->
xsch * r->
size) / 100;
2918 *r_height = (r->
ysch * r->
size) / 100;
2933 return (
U.pixelsize > 1.5f) ? 2 : 1;
2984 return (srv[0] && ((srv[0]->viewflag &
SCE_VIEW_DISABLE) == 0) && srv[1] &&
2990 if (srv ==
nullptr) {
3020 if ((!viewname) || (!viewname[0])) {
3026 return STREQ(viewname, srv->name);
3039 if ((!viewname) || (!viewname[0])) {
3045 return STREQ(viewname, srv->name);
3063 if (nr++ == view_id) {
3091 if ((!viewname) || (!viewname[0])) {
3109 const char *filepath,
3117 const char *filepath,
3118 const char *viewname,
3141 if ((viewname ==
nullptr) || (viewname[0] ==
'\0')) {
3165 const char *filepath,
3170 const char delims[] = {
'.',
'\0'};
3176 if (*r_ext ==
nullptr) {
3184 const size_t suffix_len = strlen(srv->suffix);
3185 if (basename_len >= suffix_len &&
3186 STREQLEN(filepath + basename_len - suffix_len, srv->suffix, suffix_len))
3188 BLI_strncpy(r_prefix, filepath, basename_len - suffix_len + 1);
3198 const size_t height,
3245 double xasp = 1.0, yasp = 1.0;
3247 yasp = double(rd->
xasp) / double(rd->
yasp);
3250 xasp = double(rd->
yasp) / double(rd->
xasp);
3253 const double ppm_base = rd->
ppm_base;
3256 r_ppm[0] = (ppm_factor / ppm_base) * xasp;
3257 r_ppm[1] = (ppm_factor / ppm_base) * yasp;
3294 Depsgraph *
depsgraph =
static_cast<Depsgraph *
>(value);
3332 const bool allocate_ghash_entry)
3340 if (allocate_ghash_entry) {
3350 Depsgraph **depsgraph_ptr;
3351 if (!allocate_ghash_entry) {
3353 return depsgraph_ptr;
3358 scene->
depsgraph_hash, &key, (
void ***)&key_ptr, (
void ***)&depsgraph_ptr))
3360 return depsgraph_ptr;
3367 *depsgraph_ptr =
nullptr;
3368 return depsgraph_ptr;
3376 if (depsgraph_ptr ==
nullptr) {
3380 if (*depsgraph_ptr !=
nullptr) {
3382 return depsgraph_ptr;
3400 return depsgraph_ptr;
3419 return (depsgraph_ptr !=
nullptr) ? *depsgraph_ptr :
nullptr;
3424 if (key_full ==
nullptr) {
3445 if (scene->depsgraph_hash ==
nullptr) {
3465 return depsgraph_extract;
3475 Depsgraph **depsgraph_extract_ptr = (Depsgraph **)
BLI_ghash_lookup_p(depsgraph_extract,
3477 if (depsgraph_extract_ptr ==
nullptr) {
3480 BLI_assert(*depsgraph_extract_ptr !=
nullptr);
3487 Depsgraph *
depsgraph = *depsgraph_extract_ptr;
3494 *depsgraph_extract_ptr =
nullptr;
3516 else if (orient_slot->
index_custom > orientation_index) {
3547 if (this->rotation_mode > 0) {
3564 if (this->rotation_mode > 0) {
3565 eulO_to_quat(&quat.
w, this->rotation_euler, this->rotation_mode);
3576void View3DCursor::set_matrix(
const blender::float3x3 &mat,
const bool use_compat)
3580 switch (this->rotation_mode) {
3586 copy_v4_v4(quat_orig, this->rotation_quaternion);
3601 this->rotation_euler, this->rotation_euler, this->rotation_mode, mat.
ptr());
3615 switch (this->rotation_mode) {
3619 copy_v4_v4(quat_orig, this->rotation_quaternion);
3634 this->rotation_euler, this->rotation_euler, this->rotation_mode, &quat.
w);
3637 quat_to_eulO(this->rotation_euler, this->rotation_mode, &quat.
w);
3651void View3DCursor::set_matrix(
const blender::float4x4 &mat,
const bool use_compat)
Functions and classes to work with Actions.
Blender kernel action and pose functionality.
void BKE_animdata_duplicate_id_action(Main *bmain, ID *id, uint duplicate_flags)
void BKE_keyingsets_free(struct ListBase *list)
void BKE_keyingsets_copy(struct ListBase *newlist, const struct ListBase *list)
void BKE_keyingsets_blend_read_data(struct BlendDataReader *reader, struct ListBase *list)
void BKE_time_markers_blend_read(BlendDataReader *reader, ListBase &markers)
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_copy_time_markers(ListBase &markers_dst, const ListBase &markers_src, int flag)
void BKE_time_markers_blend_write(BlendWriter *writer, ListBase &markers)
bool BKE_bpath_foreach_path_dirfile_fixed_process(BPathForeachPathData *bpath_data, char *path_dir, size_t path_dir_maxncpy, char *path_file, size_t path_file_maxncpy)
bool BKE_bpath_foreach_path_fixed_process(BPathForeachPathData *bpath_data, char *path, size_t path_maxncpy)
@ BKE_BPATH_FOREACH_PATH_SKIP_MULTIFILE
void BKE_callback_exec_id(Main *bmain, ID *id, 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_depsgraph(Main *bmain, ID *id, Depsgraph *depsgraph, eCbEvent evt)
Collection * BKE_collection_master_add(Scene *scene)
void BKE_collection_blend_write_nolib(BlendWriter *writer, Collection *collection)
Collection * BKE_collection_duplicate(Main *bmain, Collection *parent, CollectionChild *child_old, Collection *collection, eDupli_ID_Flags duplicate_flags, uint duplicate_options)
void BKE_collection_blend_write_prepare_nolib(BlendWriter *writer, Collection *collection)
void BKE_collection_free_data(Collection *collection)
struct CurveProfile * BKE_curveprofile_copy(const struct CurveProfile *profile)
void BKE_curveprofile_blend_read(struct BlendDataReader *reader, struct CurveProfile *profile)
struct CurveProfile * BKE_curveprofile_add(eCurveProfilePresets preset)
void BKE_curveprofile_blend_write(struct BlendWriter *writer, const struct CurveProfile *profile)
void BKE_curveprofile_free(struct CurveProfile *profile)
void object_duplilist(Depsgraph *depsgraph, Scene *sce, Object *ob, blender::Set< const Object * > *include_objects, DupliList &r_duplilist)
struct EffectorWeights * BKE_effector_add_weights(struct Collection *collection)
void IDP_foreach_property(IDProperty *id_property_root, int type_filter, blender::FunctionRef< void(IDProperty *id_property)> callback)
#define IDP_BlendDataRead(reader, prop)
void IDP_FreeProperty(IDProperty *prop)
void IDP_FreePropertyContent_ex(IDProperty *prop, bool do_id_user)
IDProperty * IDP_CopyProperty(const IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void(*)(ID *id, const IDCacheKey *cache_key, void **cache_p, uint flags, void *user_data) IDTypeForeachCacheFunctionCallback
@ IDTYPE_FLAGS_NEVER_UNUSED
void BKE_image_editors_update_frame(const Main *bmain, int cfra)
void BKE_view_layer_blend_write(BlendWriter *writer, const Scene *scene, ViewLayer *view_layer)
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_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
void BKE_view_layer_blend_read_after_liblink(BlendLibReader *reader, ID *self_id, ViewLayer *view_layer)
void BKE_view_layer_free_ex(ViewLayer *view_layer, bool do_id_user)
ViewLayer * BKE_view_layer_add(Scene *scene, const char *name, ViewLayer *view_layer_source, int type)
ViewLayer * BKE_view_layer_context_active_PLACEHOLDER(const Scene *scene)
void BKE_main_collection_sync(const Main *bmain)
void BKE_view_layer_copy_data(Scene *scene_dst, const Scene *scene_src, ViewLayer *view_layer_dst, const ViewLayer *view_layer_src, int flag)
ViewLayer * BKE_view_layer_default_render(const Scene *scene)
ListBase * BKE_view_layer_object_bases_get(ViewLayer *view_layer)
Object * BKE_view_layer_edit_object_get(const ViewLayer *view_layer)
ID * BKE_id_copy_for_duplicate(Main *bmain, ID *id, eDupli_ID_Flags duplicate_flags, int copy_flags)
ID * BKE_libblock_find_name(Main *bmain, short type, const char *name, const std::optional< Library * > lib=std::nullopt) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct ID * BKE_id_copy_in_lib(Main *bmain, std::optional< Library * > owner_library, const ID *id, std::optional< const ID * > new_owner_id, ID **new_id_p, int flag)
void BKE_libblock_free_data_py(ID *id)
void BKE_main_id_newptr_and_tag_clear(Main *bmain)
void id_us_ensure_real(ID *id)
ID * BKE_id_copy(Main *bmain, const ID *id)
void * BKE_id_new(Main *bmain, short type, const char *name)
void id_us_plus_no_lib(ID *id)
@ LIB_ID_CREATE_NO_ALLOCATE
@ LIB_ID_CREATE_NO_USER_REFCOUNT
@ LIB_ID_DUPLICATE_IS_ROOT_ID
@ LIB_ID_DUPLICATE_IS_SUBPROCESS
void BKE_id_blend_write(BlendWriter *writer, ID *id)
#define BKE_LIB_FOREACHID_PROCESS_FUNCTION_CALL(data_, func_call_)
void BKE_lib_query_foreachid_process(LibraryForeachIDData *data, ID **id_pp, LibraryForeachIDCallbackFlag cb_flag)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(data_, id_super_, cb_flag_)
void BKE_library_foreach_ID_embedded(LibraryForeachIDData *data, ID **id_pp)
LibraryForeachIDCallbackFlag
@ IDWALK_CB_OVERRIDE_LIBRARY_NOT_OVERRIDABLE
@ IDWALK_CB_EMBEDDED_NOT_OWNING
@ IDWALK_CB_DIRECT_WEAK_LINK
LibraryForeachIDFlag BKE_lib_query_foreachid_process_flags_get(const LibraryForeachIDData *data)
@ IDWALK_DO_DEPRECATED_POINTERS
@ IDWALK_NO_ORIG_POINTERS_ACCESS
void BKE_libblock_relink_to_newid(Main *bmain, ID *id, int remap_flag) ATTR_NONNULL()
@ ID_REMAP_SKIP_USER_CLEAR
@ ID_REMAP_FORCE_OBDATA_IN_EDITMODE
#define FOREACH_MAIN_ID_END
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
const char * BKE_main_blendfile_path(const Main *bmain) ATTR_NONNULL()
void BKE_paint_settings_foreach_mode(ToolSettings *ts, blender::FunctionRef< void(Paint *paint)> fn)
void BKE_paint_free(Paint *paint)
CurveMapping * BKE_sculpt_default_cavity_curve()
void BKE_paint_copy(const Paint *src, Paint *dst, int flag)
CurveMapping * BKE_paint_default_curve()
void BKE_paint_blend_read_data(BlendDataReader *reader, const Scene *scene, Paint *paint)
void BKE_paint_blend_write(BlendWriter *writer, Paint *paint)
void BKE_sculpt_cavity_curves_ensure(Sculpt *sd)
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)
void BKE_previewimg_blend_write(BlendWriter *writer, const PreviewImage *prv)
void BKE_previewimg_free(PreviewImage **prv)
void BKE_previewimg_blend_read(BlendDataReader *reader, PreviewImage *prv)
void BKE_previewimg_id_copy(ID *new_id, const ID *old_id)
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)
struct RigidBodyWorld * BKE_rigidbody_world_copy(struct RigidBodyWorld *rbw, int flag)
void BKE_rigidbody_world_init_runtime(struct RigidBodyWorld *rbw)
void BKE_rigidbody_world_groups_relink(struct RigidBodyWorld *rbw)
void BKE_render_resolution(const RenderData *r, const bool use_crop, int *r_width, int *r_height)
Scene * BKE_scene_set_name(Main *bmain, const char *name)
int BKE_scene_transform_orientation_get_index(const Scene *scene, const TransformOrientation *orientation)
void BKE_scene_graph_evaluated_ensure(Depsgraph *depsgraph, Main *bmain)
void BKE_scene_multiview_videos_dimensions_get(const RenderData *rd, const ImageFormatData *imf, size_t width, size_t height, size_t *r_width, size_t *r_height)
float BKE_scene_frame_snap_by_seconds(const Scene *scene, double interval_in_seconds, float frame)
void BKE_scene_disable_color_management(Scene *scene)
bool BKE_scene_uses_cycles(const Scene *scene)
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)
void BKE_scene_undo_depsgraphs_restore(Main *bmain, GHash *depsgraph_extract)
Object * BKE_scene_object_find_by_name(const Scene *scene, const char *name)
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)
void BKE_scene_free_view_layer_depsgraph(Scene *scene, ViewLayer *view_layer)
void BKE_toolsettings_free(ToolSettings *toolsettings)
void BKE_scene_graph_update_for_newframe_ex(Depsgraph *depsgraph, bool clear_recalc)
void BKE_scene_free_depsgraph_hash(Scene *scene)
int BKE_scene_multiview_num_views_get(const RenderData *rd)
bool BKE_scene_multiview_is_render_view_active(const RenderData *rd, const SceneRenderView *srv)
Object * BKE_scene_camera_switch_find(Scene *scene)
TransformOrientationSlot * BKE_scene_orientation_slot_get(Scene *scene, int slot_index)
void BKE_scene_transform_orientation_remove(Scene *scene, TransformOrientation *orientation)
bool BKE_scene_check_rigidbody_active(const Scene *scene)
int BKE_render_preview_pixel_size(const RenderData *r)
void BKE_scene_view_layer_graph_evaluated_ensure(Main *bmain, Scene *scene, ViewLayer *view_layer)
const char * BKE_scene_multiview_view_id_suffix_get(const RenderData *rd, int view_id)
bool BKE_scene_has_view_layer(const Scene *scene, const ViewLayer *layer)
TransformOrientationSlot * BKE_scene_orientation_slot_get_from_flag(Scene *scene, int flag)
int BKE_render_num_threads(const RenderData *r)
void BKE_scene_frame_set(Scene *scene, float frame)
void BKE_scene_multiview_view_prefix_get(Scene *scene, const char *filepath, char *r_prefix, const char **r_ext)
void BKE_scene_remove_rigidbody_object(Main *bmain, Scene *scene, Object *ob, bool free_us)
int BKE_scene_base_iter_next(Depsgraph *depsgraph, SceneBaseIter *iter, Scene **scene, int val, Base **base, Object **ob)
const char * BKE_scene_multiview_view_suffix_get(const RenderData *rd, const char *viewname)
bool BKE_scene_camera_switch_update(Scene *scene)
TransformOrientation * BKE_scene_transform_orientation_find(const Scene *scene, int index)
Depsgraph * BKE_scene_ensure_depsgraph(Main *bmain, Scene *scene, ViewLayer *view_layer)
bool BKE_scene_multiview_is_stereo3d(const RenderData *rd)
bool BKE_scene_multiview_is_render_view_first(const RenderData *rd, const char *viewname)
GHash * BKE_scene_undo_depsgraphs_extract(Main *bmain)
ToolSettings * BKE_toolsettings_copy(ToolSettings *toolsettings, int flag)
int BKE_scene_orientation_slot_get_index(const TransformOrientationSlot *orient_slot)
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)
int BKE_scene_multiview_num_videos_get(const RenderData *rd, const ImageFormatData *imf)
bool BKE_scene_multiview_is_render_view_last(const RenderData *rd, const char *viewname)
bool BKE_scene_use_spherical_stereo(Scene *scene)
void BKE_scene_ensure_depsgraph_hash(Scene *scene)
void BKE_scene_update_sound(Depsgraph *depsgraph, Main *bmain)
void BKE_scene_multiview_view_filepath_get(const RenderData *rd, const char *filepath, const char *view, char *r_filepath)
void BKE_scene_update_tag_audio_volume(Depsgraph *, Scene *scene)
bool BKE_scene_uses_shader_previews(const Scene *scene)
SceneRenderView * BKE_scene_multiview_render_view_findindex(const RenderData *rd, int view_id)
int BKE_scene_orientation_get_index_from_flag(Scene *scene, int flag)
bool BKE_scene_validate_setscene(Main *bmain, Scene *sce)
Scene * BKE_scene_add(Main *bmain, const char *name)
int BKE_scene_orientation_get_index(Scene *scene, int slot_index)
bool BKE_scene_object_find(Scene *scene, Object *ob)
void BKE_scene_orientation_slot_set_index(TransformOrientationSlot *orient_slot, int orientation)
Scene * BKE_scene_duplicate(Main *bmain, Scene *sce, eSceneCopyMethod type, eDupli_ID_Flags duplicate_flags, uint duplicate_options)
const char * BKE_scene_find_last_marker_name(const Scene *scene, int frame)
void BKE_scene_graph_update_tagged(Depsgraph *depsgraph, Main *bmain)
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)
void BKE_scene_graph_update_for_newframe(Depsgraph *depsgraph)
Depsgraph * BKE_scene_get_depsgraph(const Scene *scene, const ViewLayer *view_layer)
void BKE_scene_set_background(Main *bmain, Scene *sce)
void BKE_scene_base_flag_to_objects(const Scene *scene, ViewLayer *view_layer)
bool BKE_scene_remove_render_view(Scene *scene, SceneRenderView *srv)
SceneRenderView * BKE_scene_add_render_view(Scene *sce, const char *name)
Base * _setlooper_base_step(Scene **sce_iter, ViewLayer *view_layer, Base *base)
float BKE_scene_frame_to_ctime(const Scene *scene, int frame)
Scene * BKE_scene_find_from_collection(const Main *bmain, const Collection *collection)
void BKE_scene_object_base_flag_sync_from_base(Base *base)
bool BKE_scene_uses_blender_workbench(const Scene *scene)
const char * BKE_scene_multiview_render_view_name_get(const RenderData *rd, int view_id)
bool BKE_scene_uses_blender_eevee(const Scene *scene)
const char * BKE_scene_find_marker_name(const Scene *scene, int frame)
void BKE_scene_ppm_get(const RenderData *rd, double r_ppm[2])
void BKE_screen_view3d_shading_blend_read_data(BlendDataReader *reader, View3DShading *shading)
void BKE_screen_view3d_shading_blend_write(BlendWriter *writer, 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_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)
bScreen * BKE_workspace_active_screen_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
#define BLI_assert_msg(a, msg)
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_p(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_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_ghash_insert(GHash *gh, void *key, void *val)
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
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void * BLI_findstring(const ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_freelinkN(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
#define LISTBASE_FOREACH_BACKWARD(type, var, list)
void void BLI_freelistN(ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findptr(const struct ListBase *listbase, const void *ptr, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void void void void void BLI_duplicatelist(ListBase *dst, const ListBase *src) 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)
#define BLI_ASSERT_UNIT_QUAT(q)
void copy_m4_m4(float m1[4][4], const float m2[4][4])
void quat_to_compatible_eulO(float eul[3], const float oldrot[3], short order, const float quat[4])
void axis_angle_to_quat(float r[4], const float axis[3], float angle)
void quat_to_mat3(float m[3][3], const float q[4])
void quat_to_eulO(float e[3], short order, const float q[4])
void eulO_to_quat(float q[4], const float e[3], short order)
float normalize_qt_qt(float r[4], const float q[4])
void quat_to_axis_angle(float axis[3], float *angle, const float q[4])
void mat3_to_compatible_eulO(float eul[3], const float oldrot[3], short order, const float mat[3][3])
void eulO_to_mat3(float M[3][3], const float e[3], short order)
void mat3_to_axis_angle(float axis[3], float *angle, const float mat[3][3])
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 axis_angle_to_mat3(float R[3][3], const float axis[3], float angle)
void mat3_to_eulO(float eul[3], short order, const float m[3][3])
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])
bool bool BLI_path_suffix(char *path, size_t path_maxncpy, const char *suffix, const char *sep) ATTR_NONNULL(1
int bool bool bool size_t size_t BLI_str_rpartition(const char *str, const char delim[], const char **sep, const char **suf) ATTR_NONNULL(1
char * STRNCPY(char(&dst)[N], const char *src)
char char size_t BLI_strncpy_rlen(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
#define SNPRINTF_UTF8(dst, format,...)
#define STRNCPY_UTF8(dst, src)
void BLI_uniquename(const struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t name_maxncpy) ATTR_NONNULL(1
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 MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define BLO_read_data_address(reader, ptr_p)
ID * BLO_read_get_new_id_address_from_session_uid(BlendLibReader *reader, uint session_uid) ATTR_NONNULL(1)
void * BLO_read_get_new_data_address_no_us(BlendDataReader *reader, const void *old_address, size_t expected_size)
BlendFileReadReport * BLO_read_data_reports(BlendDataReader *reader)
void BLO_read_glob_list(BlendDataReader *reader, ListBase *list)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLO_write_struct(writer, struct_name, data_ptr)
BlendFileReadReport * BLO_read_lib_reports(BlendLibReader *reader)
#define BLO_read_struct_list(reader, struct_name, list)
#define BLO_read_struct(reader, struct_name, ptr_p)
bool BLO_write_is_undo(BlendWriter *writer)
void BLO_reportf_wrap(BlendFileReadReport *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
#define BLO_write_struct_at_address(writer, struct_name, address, data_ptr)
external readfile function prototypes.
#define BLT_I18NCONTEXT_ID_SCENE
void DEG_id_tag_update(ID *id, unsigned int flags)
@ DEG_EVALUATE_SYNC_WRITEBACK_YES
void DEG_editors_update(Depsgraph *depsgraph, bool time)
void DEG_enable_editors_update(Depsgraph *depsgraph)
void DEG_ids_clear_recalc(Depsgraph *depsgraph, bool backup)
Depsgraph * DEG_graph_new(Main *bmain, Scene *scene, ViewLayer *view_layer, eEvaluationMode mode)
void DEG_evaluate_on_refresh(Depsgraph *graph, DepsgraphEvaluateSyncWriteback sync_writeback=DEG_EVALUATE_SYNC_WRITEBACK_NO)
void DEG_graph_replace_owners(Depsgraph *depsgraph, Main *bmain, Scene *scene, ViewLayer *view_layer)
void DEG_graph_free(Depsgraph *graph)
void DEG_ids_restore_recalc(Depsgraph *depsgraph)
void DEG_make_active(Depsgraph *depsgraph)
void DEG_evaluate_on_framechange(Depsgraph *graph, float frame, DepsgraphEvaluateSyncWriteback sync_writeback=DEG_EVALUATE_SYNC_WRITEBACK_NO)
void DEG_graph_tag_relations_update(Depsgraph *graph)
void DEG_graph_relations_update(Depsgraph *graph)
void DEG_debug_name_set(Depsgraph *depsgraph, const char *name)
bool DEG_is_fully_evaluated(const Depsgraph *depsgraph)
Scene * DEG_get_evaluated_scene(const Depsgraph *graph)
bool DEG_is_evaluated(const T *id)
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
ViewLayer * DEG_get_evaluated_view_layer(const Depsgraph *graph)
ViewLayer * DEG_get_input_view_layer(const Depsgraph *graph)
Main * DEG_get_bmain(const Depsgraph *graph)
bool DEG_id_type_any_updated(const Depsgraph *depsgraph)
Scene * DEG_get_input_scene(const Depsgraph *graph)
#define FILTER_ID_GD_LEGACY
@ ID_RECALC_AUDIO_LISTENER
#define ID_IS_LINKED(_id)
#define ID_NEW_SET(_id, _idn)
Object groups, one object can be in many groups at once.
@ CUMA_EXTEND_EXTRAPOLATE
#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 STEREO_LEFT_SUFFIX
#define STEREO_RIGHT_NAME
@ SCE_READFILE_LIBLINK_NEED_SETSCENE_CHECK
#define STEREO_RIGHT_SUFFIX
@ SCE_VIEWS_FORMAT_STEREO_3D
@ SCE_VIEWS_FORMAT_MULTIVIEW
@ eSeqModifierType_Compositor
#define STRIP_HAS_PATH(_strip)
@ V3D_GIZMO_SHOW_OBJECT_ROTATE
@ V3D_GIZMO_SHOW_OBJECT_SCALE
@ V3D_GIZMO_SHOW_OBJECT_TRANSLATE
const char * IMB_colormanagement_display_get_none_name()
const char * IMB_colormanagement_view_get_raw_or_default_name(const char *display_name)
@ COLOR_ROLE_DEFAULT_SEQUENCER
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.
@ RE_USE_SHADING_NODES_CUSTOM
@ RE_USE_SPHERICAL_STEREO
BMesh const char void * data
void BM_mesh_bm_to_me(Main *bmain, BMesh *bm, Mesh *mesh, const BMeshToMeshParams *params)
BPy_StructRNA * depsgraph
bool fcurve_remove(FCurve &fcurve_to_remove)
blender::Span< const FCurve * > fcurves() const
Depsgraph * preview_depsgraph
RenderEngineType * RE_engines_find(const char *idname)
void * MEM_mallocN(size_t len, const char *str)
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
void * MEM_callocN(size_t len, const char *str)
void * MEM_dupallocN(const void *vmemh)
size_t(* MEM_allocN_len)(const void *vmemh)
void MEM_freeN(void *vmemh)
std::optional< std::pair< Action *, Slot * > > get_action_slot_pair(ID &animated_id)
void node_tree_blend_write(BlendWriter *writer, bNodeTree *ntree)
QuaternionBase< float > Quaternion
void foreach_strip(ListBase *seqbase, ForEachFunc callback, void *user_data)
SequencerToolSettings * tool_settings_init()
SequencerToolSettings * tool_settings_copy(SequencerToolSettings *tool_settings)
void blend_write(BlendWriter *writer, ListBase *seqbase)
void tool_settings_free(SequencerToolSettings *tool_settings)
void editing_free(Scene *scene, const bool do_id_user)
bool is_valid_strip_channel(const Strip *strip)
void blend_read(BlendDataReader *reader, ListBase *seqbase)
void seqbase_duplicate_recursive(Main *bmain, const Scene *scene_src, Scene *scene_dst, ListBase *nseqbase, const ListBase *seqbase, const StripDuplicate dupe_flag, const int flag)
MatBase< float, 4, 4 > float4x4
MatBase< float, 3, 3 > float3x3
VecBase< float, 3 > float3
#define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_FUNCTION_CALL(_data, _do_undo_restore, _func_call)
static void scene_undo_preserve(BlendLibReader *reader, ID *id_new, ID *id_old)
static uint depsgraph_key_hash(const void *key_v)
static void scene_graph_update_tagged(Depsgraph *depsgraph, Main *bmain, bool only_if_tagged)
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)
const char * RE_engine_id_BLENDER_EEVEE_NEXT
eSceneForeachUndoPreserveProcess
@ SCENE_FOREACH_UNDO_NO_RESTORE
@ SCENE_FOREACH_UNDO_RESTORE
static void link_recurs_seq(BlendDataReader *reader, ListBase *lb)
#define FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag)
static void scene_blend_read_after_liblink(BlendLibReader *reader, ID *id)
static bool depsgraph_key_compare(const void *key_a_v, const void *key_b_v)
static void scene_free_markers(Scene *scene, bool do_id_user)
static void remove_sequencer_fcurves(Scene *sce)
static void scene_foreach_working_space_color(ID *id, const IDTypeForeachColorFunctionCallback &fn)
static void scene_blend_write(BlendWriter *writer, ID *id, const void *id_address)
static void scene_foreach_rigidbodyworldSceneLooper(RigidBodyWorld *, ID **id_pointer, void *user_data, const LibraryForeachIDCallbackFlag cb_flag)
static bool strip_foreach_path_callback(Strip *strip, void *user_data)
@ CYCLES_FEATURES_SUPPORTED
@ CYCLES_FEATURES_EXPERIMENTAL
const char * RE_engine_id_BLENDER_WORKBENCH
static void scene_init_data(ID *id)
static char * scene_undo_depsgraph_gen_key(Scene *scene, ViewLayer *view_layer, char *key_full)
static void scene_foreach_toolsettings_id_pointer_process(ID **id_p, const eSceneForeachUndoPreserveProcess action, BlendLibReader *reader, ID **id_old_p, const uint cb_flag)
static void prepare_mesh_for_viewport_render(Main *bmain, const Scene *scene, ViewLayer *view_layer)
static Depsgraph ** scene_ensure_depsgraph_p(Main *bmain, Scene *scene, ViewLayer *view_layer)
blender::float3x3 View3DCursor::matrix< blender::float3x3 >() const
static void scene_copy_data(Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, const int flag)
const char * RE_engine_id_BLENDER_EEVEE
static void scene_foreach_layer_collection(LibraryForeachIDData *data, ListBase *lb, const bool is_master)
static Depsgraph ** scene_get_depsgraph_p(Scene *scene, ViewLayer *view_layer, const bool allocate_ghash_entry)
#define BKE_LIB_FOREACHID_UNDO_PRESERVE_PROCESS_IDSUPER_P(_data, _id_p, _do_undo_restore, _action, _reader, _id_old_p, _cb_flag)
static void scene_foreach_id(ID *id, LibraryForeachIDData *data)
static void scene_free_data(ID *id)
static bool strip_foreach_member_id_cb(Strip *strip, void *user_data)
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)
static void scene_foreach_path(ID *id, BPathForeachPathData *bpath_data)
static bool check_rendered_viewport_visible(Main *bmain)
static void depsgraph_key_value_free(void *value)
static void scene_foreach_paint(LibraryForeachIDData *data, Paint *paint, const bool do_undo_restore, BlendLibReader *reader, Paint *paint_old)
static void scene_lib_override_apply_post(ID *id_dst, ID *)
constexpr IDTypeInfo get_type_info()
struct Object * cage_object
struct ImageFormatData im_format
struct BlendFileReadReport::@124362246150331065306145367225174223236260272332 count
int sequence_strips_skipped
const ViewLayer * view_layer
IntraFrameCache * intra_frame_cache
ThumbnailCache * thumbnail_cache
MediaPresence * media_presence
PreviewCache * preview_cache
FinalImageCache * final_image_cache
StripLookup * strip_lookup
SourceImageCache * source_image_cache
PrefetchJob * prefetch_job
int show_missing_media_flag
Strip * current_meta_strip
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_uid
IDTypeBlendReadUndoPreserve blend_read_undo_preserve
uint64_t dependencies_id_types
IDTypeForeachIDFunction foreach_id
IDTypeCopyDataFunction copy_data
IDTypeInitDataFunction init_data
IDTypeForeachCacheFunction foreach_cache
IDTypeBlendWriteFunction blend_write
IDTypeBlendReadDataFunction blend_read_data
IDTypeFreeDataFunction free_data
IDTypeMakeLocalFunction make_local
IDTypeForeachColorFunction foreach_working_space_color
AssetTypeInfo * asset_type_info
IDTypeLibOverrideApplyPost lib_override_apply_post
IDTypeForeachPathFunction foreach_path
const char * translation_context
IDTypeBlendReadAfterLiblinkFunction blend_read_after_liblink
IDTypeEmbeddedOwnerPointerGetFunction owner_pointer_get
IDProperty * system_properties
MeshRuntimeHandle * runtime
ObjectRuntimeHandle * runtime
struct RigidBodyOb * rigidbody_object
struct RigidBodyCon * rigidbody_constraint
struct ListBase * ptcaches
struct Brush * eraser_brush
ParticleBrushData brush[7]
struct Object * shape_object
struct CurveMapping mblur_shutter_curve
float simplify_particles_render
struct ImageFormatData im_format
short simplify_subsurf_render
void(* render)(struct RenderEngine *engine, struct Depsgraph *depsgraph)
struct DrawEngineType * draw_engine
struct PointCache * pointcache
struct Collection * constraints
struct Collection * group
struct RigidBodyWorld_Shared * shared
struct EffectorWeights * effector_weights
struct SceneRenderView * next
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 ToolSettings * toolsettings
ColorManagedViewSettings view_settings
struct PreviewImage * preview
SceneRuntimeHandle * runtime
struct bNodeTree * compositing_node_group
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 CurveMapping * automasking_cavity_curve_op
struct CurveMapping * automasking_cavity_curve
struct Object * scene_camera
struct IDProperty * system_properties
struct CurveMapping * curve_rand_value
struct CurveMapping * curve_rand_saturation
struct CurveMapping * curve_rand_hue
struct CurveMapping * curve_distance_falloff
const c_style_mat & ptr() const