26 new_cache->
index = index;
44 if (cache !=
nullptr) {
64 bool skip = cb(cache, user_data);
@ GP_UPDATE_NODE_LIGHT_COPY
@ GP_UPDATE_NODE_FULL_COPY
bool(* GPencilUpdateCacheIter_Cb)(GPencilUpdateCache *cache, void *user_data)
void BLI_dlrbTree_free(DLRBT_Tree *tree, DLRBT_NFree_FP free_cb)
DLRBT_Tree * BLI_dlrbTree_new(void)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
Read Guarded memory(de)allocation.
static void gpencil_traverse_update_cache_ex(GPencilUpdateCache *parent_cache, GPencilUpdateCacheTraverseSettings *ts, int depth, void *user_data)
static void cache_node_free(void *node)
static GPencilUpdateCache * update_cache_alloc(int index, int flag, void *data)
GPencilUpdateCache * BKE_gpencil_create_update_cache(void *data, bool full_copy)
void BKE_gpencil_free_update_cache(bGPdata *gpd)
void BKE_gpencil_traverse_update_cache(GPencilUpdateCache *cache, GPencilUpdateCacheTraverseSettings *ts, void *user_data)
static void update_cache_free(GPencilUpdateCache *cache)
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
GPencilUpdateCacheIter_Cb update_cache_cb[3]
struct DLRBT_Tree * children
struct GPencilUpdateCache * update_cache
static void cache_node(ShaderToNodeMap &node_cache, const pxr::UsdShadeShader &usd_shader, bNode *node, const char *tag=nullptr)