svn merge ^/trunk/blender -r55372:55392
[blender.git] / source / blender / makesdna / DNA_space_types.h
index 4587ed948cfaf3186644395f7e7045b471e51c34..b9c4788336f1edb5ce1cff075da33a31342a9d22 100644 (file)
@@ -43,6 +43,7 @@
 #include "DNA_image_types.h"        /* ImageUser */
 #include "DNA_movieclip_types.h"    /* MovieClipUser */
 #include "DNA_sequence_types.h"     /* SequencerScopes */
+#include "DNA_node_types.h"         /* for bNodeInstanceKey */
 /* Hum ... Not really nice... but needed for spacebuts. */
 #include "DNA_view2d_types.h"
 
@@ -881,6 +882,17 @@ typedef struct SpaceScript {
 /* Nodes Editor =========================================== */
 
 /* Node Editor */
+
+typedef struct bNodeTreePath {
+       struct bNodeTreePath *next, *prev;
+       
+       struct bNodeTree *nodetree;
+       bNodeInstanceKey parent_key;    /* base key for nodes in this tree instance */
+       int pad;
+       /* XXX this is not automatically updated when node names are changed! */
+       char node_name[64];             /* MAX_NAME */
+} bNodeTreePath;
+
 typedef struct SpaceNode {
        SpaceLink *next, *prev;
        ListBase regionbase;        /* storage of regions for inactive spaces */
@@ -898,12 +910,24 @@ typedef struct SpaceNode {
        float zoom;   /* zoom for backdrop */
        float cursor[2];    /* mouse pos for drawing socketless link and adding nodes */
        
+       /* XXX nodetree pointer info is all in the path stack now,
+        * remove later on and use bNodeTreePath instead. For now these variables are set when pushing/popping
+        * from path stack, to avoid having to update all the functions and operators. Can be done when
+        * design is accepted and everything is properly tested.
+        */
+       ListBase treepath;
+       
        struct bNodeTree *nodetree, *edittree;
-       int treetype;       /* treetype: as same nodetree->type */
+       
+       /* tree type for the current node tree */
+       char tree_idname[64];
+       int treetype DNA_DEPRECATED; /* treetype: as same nodetree->type */
+       int pad3;
+       
        short texfrom;      /* texfrom object, world or brush */
        short shaderfrom;   /* shader from object or world */
        short recalc;       /* currently on 0/1, for auto compo */
-       short pad[3];
+       short pad4;
        ListBase linkdrag;  /* temporary data for modal linking operator */
        
        struct bGPdata *gpd;        /* grease-pencil data */
@@ -922,6 +946,7 @@ typedef enum eSpaceNode_Flag {
        SNODE_SHOW_HIGHLIGHT = (1 << 6),
        SNODE_USE_HIDDEN_PREVIEW = (1 << 10),
        SNODE_NEW_SHADERS = (1 << 11),
+       SNODE_PIN            = (1 << 12),
 } eSpaceNode_Flag;
 
 /* snode->texfrom */