From b18122451f8185ade9fc1e9aff5cc2f03d4fa040 Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Thu, 26 Aug 2021 15:45:00 +0200 Subject: Fix T88433: no greaspencil depsgraph evaluation with certain drivers When the same stroke was used as a driver variable, this could make this stroke already tagged as built in the course of building driver variables (via `build_gpencil`), but then important stuff from `build_object_data_geometry_datablock` could be missed later on (because both of these funtions use `checkIsBuiltAndTag`). Most importantly, setting up operations such as GEOMETRY_EVAL would be skipped entirely. `build_object_data_geometry_datablock` seems to cover greasepencil just fine (does the same as `build_gpencil` and more). Proposed solution is to remove `build_gpencil` entirely. In `build_id` it would then also call `build_object_data_geometry_datablock` for `ID_GD` IDs. Now the covered types that _call_ `build_object_data_geometry_datablock` match exactly to what is covered _inside_ `build_object_data_geometry_datablock`. Think this "duplication" of functionality was just overseen in rB66da2f537ae8 [`build_gpencil` existed long before and said commit made greasepencil a real object with geometry and such]. thx @JacquesLucke for additional input! Maniphest Tasks: T88433 Differential Revision: https://developer.blender.org/D12324 --- source/blender/depsgraph/intern/builder/deg_builder_relations.h | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations.h') diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.h b/source/blender/depsgraph/intern/builder/deg_builder_relations.h index 21d1d4b6268..1ad61c25305 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.h +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.h @@ -286,7 +286,6 @@ class DepsgraphRelationBuilder : public DepsgraphBuilder { virtual void build_freestyle_linestyle(FreestyleLineStyle *linestyle); virtual void build_texture(Tex *tex); virtual void build_image(Image *image); - virtual void build_gpencil(bGPdata *gpd); virtual void build_cachefile(CacheFile *cache_file); virtual void build_mask(Mask *mask); virtual void build_movieclip(MovieClip *clip); -- cgit v1.2.3