28#include "RNA_prototypes.hh"
45 if (id->orig_id ==
nullptr) {
49 return (
ID *)
id->orig_id;
54 const ID *const_id = id;
75 const ID *const_id = id;
86 return deg_graph->
scene;
98 return deg_graph->
bmain;
104 return deg_graph->
mode;
110 return deg_graph->
ctime;
141 if (graph ==
nullptr) {
164 if (graph ==
nullptr) {
201 if (scene_cow ==
nullptr) {
210 return view_layer_cow;
215 if (
object ==
nullptr) {
230 if ((
ptr ==
nullptr) || (r_ptr_eval ==
nullptr)) {
238 r_ptr_eval->
data = (
void *)cow_id;
241 else if (
ptr->
type == &RNA_PoseBone) {
249 r_ptr_eval->
data = (
void *)pchan_eval;
263 "%s: Couldn't resolve RNA path ('%s') relative to evaluated ID (%p) for '%s'\n",
273 "%s: Couldn't get RNA path for %s relative to %s\n",
293 return id.runtime.depsgraph;
387 if (!component_node) {
391 if (!operation_node) {
404 object.
id, deg::NodeType::GEOMETRY, deg::OperationCode::GEOMETRY_EVAL);
410 object.
id, deg::NodeType::TRANSFORM, deg::OperationCode::TRANSFORM_FINAL);
416 collection.id, deg::NodeType::GEOMETRY, deg::OperationCode::GEOMETRY_EVAL_DONE);
Blender kernel action and pose functionality.
bPoseChannel * BKE_pose_channel_find_name(const bPose *pose, const char *name)
CustomData interface, see also DNA_customdata_types.h.
int BKE_idtype_idcode_to_index(short idcode)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
@ ID_TAG_COPIED_ON_EVAL_FINAL_RESULT
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
const Depsgraph * depsgraph
float DEG_get_ctime(const Depsgraph *graph)
bool DEG_object_transform_is_evaluated(const Object &object)
uint32_t DEG_get_eval_flags_for_id(const Depsgraph *graph, const ID *id)
bool DEG_id_is_fully_evaluated(const Depsgraph *depsgraph, const ID *id_eval)
bool DEG_is_fully_evaluated(const Depsgraph *depsgraph)
bool DEG_is_evaluated_id(const ID *id)
void DEG_get_customdata_mask_for_object(const Depsgraph *graph, Object *ob, CustomData_MeshMasks *r_mask)
Scene * DEG_get_evaluated_scene(const Depsgraph *graph)
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
bool DEG_is_original_id(const ID *id)
ID * DEG_get_original_id(ID *id)
Depsgraph * DEG_get_depsgraph_by_id(const ID &id)
bool DEG_object_geometry_is_evaluated(const Object &object)
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)
static bool operation_needs_update(const ID &id, const deg::NodeType component_type, const deg::OperationCode opcode)
bool DEG_is_original_object(const Object *object)
Scene * DEG_get_input_scene(const Depsgraph *graph)
Object * DEG_get_original_object(Object *object)
bool DEG_id_type_any_exists(const Depsgraph *depsgraph, short id_type)
void DEG_get_evaluated_rna_pointer(const Depsgraph *depsgraph, PointerRNA *ptr, PointerRNA *r_ptr_eval)
ID * DEG_get_evaluated_id(const Depsgraph *depsgraph, ID *id)
bool DEG_collection_geometry_is_evaluated(const Collection &collection)
bool DEG_id_type_updated(const Depsgraph *graph, short id_type)
Object * DEG_get_evaluated_object(const Depsgraph *depsgraph, Object *object)
bool DEG_is_evaluated_object(const Object *object)
bool DEG_id_type_any_updated(const Depsgraph *graph)
bool deg_eval_copy_is_expanded(const ID *id_cow)
static const ID * get_evaluated_id(const Depsgraph *deg_graph, const ID *id)
static const ID * get_original_id(const ID *id)
@ DEPSOP_FLAG_NEEDS_UPDATE
const char * RNA_struct_identifier(const StructRNA *type)
PointerRNA RNA_id_pointer_create(ID *id)
std::optional< std::string > RNA_path_from_ID_to_struct(const PointerRNA *ptr)
bool RNA_path_resolve(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
OperationNode * find_operation(OperationIDKey key) const
IDNode * find_id_node(const ID *id) const
char id_type_updated[INDEX_ID_MAX]
char id_type_exist[INDEX_ID_MAX]
Set< OperationNode * > entry_tags
bool need_update_relations