Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Craddock <nzcraddock@gmail.com>2020-08-25 18:44:35 +0300
committerNathan Craddock <nzcraddock@gmail.com>2020-08-25 19:04:15 +0300
commit2c34e09b08fb65dd4c8b587847887564f7ec0bd4 (patch)
tree616f47261bd5aa9c3790a67d46eff94b690c8b41 /source/blender/editors/space_outliner/outliner_tree.c
parent949d92ad5d1fd99f56a2bd9f50d4094193b84c98 (diff)
Outliner: Include gpencil modifiers and effects in the tree
Grease pencil modifiers already had defined outliner icons, but had never been included in the tree. This adds the modifiers and the shader effects to the tree. Part of T68498
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_tree.c')
-rw-r--r--source/blender/editors/space_outliner/outliner_tree.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
index 9e3cbabf283..22a7019ab91 100644
--- a/source/blender/editors/space_outliner/outliner_tree.c
+++ b/source/blender/editors/space_outliner/outliner_tree.c
@@ -32,6 +32,7 @@
#include "DNA_camera_types.h"
#include "DNA_collection_types.h"
#include "DNA_constraint_types.h"
+#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_hair_types.h"
#include "DNA_key_types.h"
@@ -46,6 +47,7 @@
#include "DNA_pointcloud_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
+#include "DNA_shader_fx_types.h"
#include "DNA_simulation_types.h"
#include "DNA_speaker_types.h"
#include "DNA_volume_types.h"
@@ -550,6 +552,70 @@ static void outliner_add_object_contents(SpaceOutliner *space_outliner,
}
}
+ /* Grease Pencil modifiers. */
+ if (!BLI_listbase_is_empty(&ob->greasepencil_modifiers)) {
+ TreeElement *ten_mod = outliner_add_element(
+ space_outliner, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0);
+
+ ten_mod->name = IFACE_("Modifiers");
+ int index;
+ LISTBASE_FOREACH_INDEX (GpencilModifierData *, md, &ob->greasepencil_modifiers, index) {
+ TreeElement *ten = outliner_add_element(
+ space_outliner, &ten_mod->subtree, ob, ten_mod, TSE_MODIFIER, index);
+ ten->name = md->name;
+ ten->directdata = md;
+
+ if (md->type == eGpencilModifierType_Armature) {
+ outliner_add_element(space_outliner,
+ &ten->subtree,
+ ((ArmatureGpencilModifierData *)md)->object,
+ ten,
+ TSE_LINKED_OB,
+ 0);
+ }
+ else if (md->type == eGpencilModifierType_Hook) {
+ outliner_add_element(space_outliner,
+ &ten->subtree,
+ ((HookGpencilModifierData *)md)->object,
+ ten,
+ TSE_LINKED_OB,
+ 0);
+ }
+ else if (md->type == eGpencilModifierType_Lattice) {
+ outliner_add_element(space_outliner,
+ &ten->subtree,
+ ((LatticeGpencilModifierData *)md)->object,
+ ten,
+ TSE_LINKED_OB,
+ 0);
+ }
+ }
+ }
+
+ /* Grease Pencil effects. */
+ if (!BLI_listbase_is_empty(&ob->shader_fx)) {
+ TreeElement *ten_fx = outliner_add_element(
+ space_outliner, &te->subtree, ob, te, TSE_GPENCIL_EFFECT_BASE, 0);
+
+ ten_fx->name = IFACE_("Effects");
+ int index;
+ LISTBASE_FOREACH_INDEX (ShaderFxData *, fx, &ob->shader_fx, index) {
+ TreeElement *ten = outliner_add_element(
+ space_outliner, &ten_fx->subtree, ob, ten_fx, TSE_GPENCIL_EFFECT, index);
+ ten->name = fx->name;
+ ten->directdata = fx;
+
+ if (fx->type == eShaderFxType_Swirl) {
+ outliner_add_element(space_outliner,
+ &ten->subtree,
+ ((SwirlShaderFxData *)fx)->object,
+ ten,
+ TSE_LINKED_OB,
+ 0);
+ }
+ }
+ }
+
/* vertex groups */
if (ob->defbase.first) {
bDeformGroup *defgroup;