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:
authorCampbell Barton <ideasman42@gmail.com>2018-12-10 04:44:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-12-10 04:44:24 +0300
commitcecd4fe2548c57d3ef11010e039410b793b675dd (patch)
treeb456c5b7328bb85334e7e55378d8c75580317a12
parent168a6a4bfc13cbe5c2fb510607b9565de3eb9472 (diff)
parent9df2b6da3a718323dbe9431c5a4b43fc309fa4b9 (diff)
Merge branch 'master' into blender2.8
-rw-r--r--source/blender/blenloader/intern/readfile.c6
-rw-r--r--source/blender/blenloader/intern/writefile.c6
-rw-r--r--source/blender/editors/space_action/space_action.c21
-rw-r--r--source/blender/editors/space_graph/graph_draw.c4
-rw-r--r--source/blender/editors/space_graph/graph_edit.c10
-rw-r--r--source/blender/editors/space_graph/space_graph.c19
-rw-r--r--source/blender/makesdna/DNA_action_types.h16
-rw-r--r--source/blender/makesdna/DNA_space_types.h19
-rw-r--r--source/blender/makesrna/intern/rna_space.c4
9 files changed, 64 insertions, 41 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index e88f75205c7..6e0a14ff469 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -6812,7 +6812,7 @@ static void direct_link_area(FileData *fd, ScrArea *area)
SpaceIpo *sipo = (SpaceIpo *)sl;
sipo->ads = newdataadr(fd, sipo->ads);
- BLI_listbase_clear(&sipo->ghostCurves);
+ BLI_listbase_clear(&sipo->runtime.ghost_curves);
}
else if (sl->spacetype == SPACE_NLA) {
SpaceNla *snla = (SpaceNla *)sl;
@@ -7495,7 +7495,7 @@ static void lib_link_workspace_layout_restore(struct IDNameLib_Map *id_map, Main
/* force recalc of list of channels (i.e. includes calculating F-Curve colors)
* thus preventing the "black curves" problem post-undo
*/
- sipo->flag |= SIPO_TEMP_NEEDCHANSYNC;
+ sipo->runtime.flag |= SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC;
}
else if (sl->spacetype == SPACE_BUTS) {
SpaceButs *sbuts = (SpaceButs *)sl;
@@ -7526,7 +7526,7 @@ static void lib_link_workspace_layout_restore(struct IDNameLib_Map *id_map, Main
/* force recalc of list of channels, potentially updating the active action
* while we're at it (as it can only be updated that way) [#28962]
*/
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
}
else if (sl->spacetype == SPACE_IMAGE) {
SpaceImage *sima = (SpaceImage *)sl;
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index be708697ac6..a45de6b48dc 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2878,10 +2878,10 @@ static void write_area_regions(WriteData *wd, ScrArea *area)
}
else if (sl->spacetype == SPACE_IPO) {
SpaceIpo *sipo = (SpaceIpo *)sl;
- ListBase tmpGhosts = sipo->ghostCurves;
+ ListBase tmpGhosts = sipo->runtime.ghost_curves;
/* temporarily disable ghost curves when saving */
- sipo->ghostCurves.first = sipo->ghostCurves.last = NULL;
+ BLI_listbase_clear(&sipo->runtime.ghost_curves);
writestruct(wd, DATA, SpaceIpo, 1, sl);
if (sipo->ads) {
@@ -2889,7 +2889,7 @@ static void write_area_regions(WriteData *wd, ScrArea *area)
}
/* reenable ghost curves */
- sipo->ghostCurves = tmpGhosts;
+ sipo->runtime.ghost_curves = tmpGhosts;
}
else if (sl->spacetype == SPACE_BUTS) {
writestruct(wd, DATA, SpaceButs, 1, sl);
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index 15587a5f39d..0a7db803acc 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -182,8 +182,7 @@ static void action_free(SpaceLink *UNUSED(sl))
static void action_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
{
SpaceAction *saction = sa->spacedata.first;
-
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
}
static SpaceLink *action_duplicate(SpaceLink *sl)
@@ -542,7 +541,7 @@ static void action_listener(
ED_area_tag_redraw(sa);
}
else if (wmn->action == NA_SELECTED) {
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
}
}
@@ -550,7 +549,7 @@ static void action_listener(
case NC_ANIMATION:
/* for NLA tweakmode enter/exit, need complete refresh */
if (wmn->data == ND_NLA_ACTCHANGE) {
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
}
/* autocolor only really needs to change when channels are added/removed, or previously hidden stuff appears
@@ -598,7 +597,7 @@ static void action_listener(
switch (wmn->data) {
case ND_OB_ACTIVE: /* selection changed, so force refresh to flush (needs flag set to do syncing) */
case ND_OB_SELECT:
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
break;
@@ -612,7 +611,7 @@ static void action_listener(
switch (wmn->data) {
case ND_BONE_SELECT: /* selection changed, so force refresh to flush (needs flag set to do syncing) */
case ND_BONE_ACTIVE:
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
break;
case ND_TRANSFORM:
@@ -648,7 +647,7 @@ static void action_listener(
case NC_NODE:
if (wmn->action == NA_SELECTED) {
/* selection changed, so force refresh to flush (needs flag set to do syncing) */
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
}
break;
@@ -661,13 +660,13 @@ static void action_listener(
ED_area_tag_redraw(sa);
break;
case ND_SPACE_CHANGED:
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
break;
}
break;
case NC_WINDOW:
- if (saction->flag & SACTION_TEMP_NEEDCHANSYNC) {
+ if (saction->runtime.flag & SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC) {
/* force redraw/refresh after undo/redo - [#28962] */
ED_area_tag_refresh(sa);
}
@@ -797,14 +796,14 @@ static void action_refresh(const bContext *C, ScrArea *sa)
/* update the state of the animchannels in response to changes from the data they represent
* NOTE: the temp flag is used to indicate when this needs to be done, and will be cleared once handled
*/
- if (saction->flag & SACTION_TEMP_NEEDCHANSYNC) {
+ if (saction->runtime.flag & SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC) {
ARegion *ar;
/* Perform syncing of channel state incl. selection
* Active action setting also occurs here (as part of anim channel filtering in anim_filter.c)
*/
ANIM_sync_animchannels_to_data(C);
- saction->flag &= ~SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag &= ~SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
/* Tag everything for redraw
* - Regions (such as header) need to be manually tagged for redraw too
diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c
index 65bf8af70e8..d4f6824ccdf 100644
--- a/source/blender/editors/space_graph/graph_draw.c
+++ b/source/blender/editors/space_graph/graph_draw.c
@@ -981,8 +981,8 @@ void graph_draw_ghost_curves(bAnimContext *ac, SpaceIpo *sipo, ARegion *ar)
immUniform1f("dash_width", 20.0f);
immUniform1f("dash_factor", 0.5f);
- /* the ghost curves are simply sampled F-Curves stored in sipo->ghostCurves */
- for (fcu = sipo->ghostCurves.first; fcu; fcu = fcu->next) {
+ /* the ghost curves are simply sampled F-Curves stored in sipo->runtime.ghost_curves */
+ for (fcu = sipo->runtime.ghost_curves.first; fcu; fcu = fcu->next) {
/* set whatever color the curve has set
* - this is set by the function which creates these
* - draw with a fixed opacity of 2
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index 08a5a6aeedd..e610aee4810 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -345,7 +345,7 @@ static void create_ghost_curves(bAnimContext *ac, int start, int end)
int filter;
/* free existing ghost curves */
- free_fcurves(&sipo->ghostCurves);
+ free_fcurves(&sipo->runtime.ghost_curves);
/* sanity check */
if (start >= end) {
@@ -396,7 +396,7 @@ static void create_ghost_curves(bAnimContext *ac, int start, int end)
gcu->color[2] = fcu->color[2] - 0.07f;
/* store new ghost curve */
- BLI_addtail(&sipo->ghostCurves, gcu);
+ BLI_addtail(&sipo->runtime.ghost_curves, gcu);
/* restore driver */
fcu->driver = driver;
@@ -463,11 +463,11 @@ static int graphkeys_clear_ghostcurves_exec(bContext *C, wmOperator *UNUSED(op))
sipo = (SpaceIpo *)ac.sl;
/* if no ghost curves, don't do anything */
- if (BLI_listbase_is_empty(&sipo->ghostCurves))
+ if (BLI_listbase_is_empty(&sipo->runtime.ghost_curves)) {
return OPERATOR_CANCELLED;
-
+ }
/* free ghost curves */
- free_fcurves(&sipo->ghostCurves);
+ free_fcurves(&sipo->runtime.ghost_curves);
/* update this editor only */
ED_area_tag_redraw(CTX_wm_area(C));
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 1fa6cb9b3de..bfe52459a58 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -179,8 +179,9 @@ static void graph_free(SpaceLink *sl)
MEM_freeN(si->ads);
}
- if (si->ghostCurves.first)
- free_fcurves(&si->ghostCurves);
+ if (si->runtime.ghost_curves.first) {
+ free_fcurves(&si->runtime.ghost_curves);
+ }
}
@@ -208,7 +209,7 @@ static SpaceLink *graph_duplicate(SpaceLink *sl)
SpaceIpo *sipon = MEM_dupallocN(sl);
/* clear or remove stuff from old */
- BLI_duplicatelist(&sipon->ghostCurves, &((SpaceIpo *)sl)->ghostCurves);
+ BLI_duplicatelist(&sipon->runtime.ghost_curves, &((SpaceIpo *)sl)->runtime.ghost_curves);
sipon->ads = MEM_dupallocN(sipon->ads);
return (SpaceLink *)sipon;
@@ -585,7 +586,7 @@ static void graph_listener(wmWindow *UNUSED(win), ScrArea *sa, wmNotifier *wmn,
switch (wmn->data) {
case ND_OB_ACTIVE: /* selection changed, so force refresh to flush (needs flag set to do syncing) */
case ND_OB_SELECT:
- sipo->flag |= SIPO_TEMP_NEEDCHANSYNC;
+ sipo->runtime.flag |= SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
break;
@@ -598,7 +599,7 @@ static void graph_listener(wmWindow *UNUSED(win), ScrArea *sa, wmNotifier *wmn,
switch (wmn->data) {
case ND_BONE_SELECT: /* selection changed, so force refresh to flush (needs flag set to do syncing) */
case ND_BONE_ACTIVE:
- sipo->flag |= SIPO_TEMP_NEEDCHANSYNC;
+ sipo->runtime.flag |= SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
break;
case ND_TRANSFORM:
@@ -612,7 +613,7 @@ static void graph_listener(wmWindow *UNUSED(win), ScrArea *sa, wmNotifier *wmn,
case NC_NODE:
if (wmn->action == NA_SELECTED) {
/* selection changed, so force refresh to flush (needs flag set to do syncing) */
- sipo->flag |= SIPO_TEMP_NEEDCHANSYNC;
+ sipo->runtime.flag |= SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_refresh(sa);
}
break;
@@ -621,7 +622,7 @@ static void graph_listener(wmWindow *UNUSED(win), ScrArea *sa, wmNotifier *wmn,
ED_area_tag_redraw(sa);
break;
case NC_WINDOW:
- if (sipo->flag & SIPO_TEMP_NEEDCHANSYNC) {
+ if (sipo->runtime.flag & SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC) {
/* force redraw/refresh after undo/redo - prevents "black curve" problem */
ED_area_tag_refresh(sa);
}
@@ -778,9 +779,9 @@ static void graph_refresh(const bContext *C, ScrArea *sa)
/* update the state of the animchannels in response to changes from the data they represent
* NOTE: the temp flag is used to indicate when this needs to be done, and will be cleared once handled
*/
- if (sipo->flag & SIPO_TEMP_NEEDCHANSYNC) {
+ if (sipo->runtime.flag & SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC) {
ANIM_sync_animchannels_to_data(C);
- sipo->flag &= ~SIPO_TEMP_NEEDCHANSYNC;
+ sipo->runtime.flag &= ~SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC;
ED_area_tag_redraw(sa);
}
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index 4d0f4ef1b0f..538604f46d0 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -692,6 +692,11 @@ typedef enum eDopeSheet_Flag {
+typedef struct SpaceAction_Runtime {
+ char flag;
+ char _pad0[7];
+} SpaceAction_Runtime;
+
/* Action Editor Space. This is defined here instead of in DNA_space_types.h */
typedef struct SpaceAction {
struct SpaceLink *next, *prev;
@@ -716,6 +721,8 @@ typedef struct SpaceAction {
char autosnap; /* automatic keyframe snapping mode */
char cache_display; /* (eTimeline_Cache_Flag) */
char _pad1[6];
+
+ SpaceAction_Runtime runtime;
} SpaceAction;
/* SpaceAction flag */
@@ -738,8 +745,6 @@ typedef enum eSAction_Flag {
SACTION_NODRAWGCOLORS = (1 << 7),
/* don't draw current frame number beside frame indicator */
SACTION_NODRAWCFRANUM = (1 << 8),
- /* temporary flag to force channel selections to be synced with main */
- SACTION_TEMP_NEEDCHANSYNC = (1 << 9),
/* don't perform realtime updates */
SACTION_NOREALTIMEUPDATES = (1 << 10),
/* move markers as well as keyframes */
@@ -750,6 +755,13 @@ typedef enum eSAction_Flag {
SACTION_SHOW_EXTREMES = (1 << 13),
} eSAction_Flag;
+
+/* SpaceAction_Runtime.flag */
+typedef enum eSAction_Runtime_Flag {
+ /** Temporary flag to force channel selections to be synced with main */
+ SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC = (1 << 0),
+} eSAction_Runtime_Flag;
+
/* SpaceAction Mode Settings */
typedef enum eAnimEdit_Context {
/* action on the active object */
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index 9c1b999cbd6..1e4e58b7c7e 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -358,6 +358,14 @@ typedef enum eSpaceOutliner_Search_Flags {
/** \name Graph Editor
* \{ */
+typedef struct SpaceIpo_Runtime {
+ /** #eGraphEdit_Runtime_Flag */
+ char flag;
+ char _pad[7];
+ /** Sampled snapshots of F-Curves used as in-session guides */
+ ListBase ghost_curves;
+} SpaceIpo_Runtime;
+
/* 'Graph' Editor (formerly known as the IPO Editor) */
typedef struct SpaceIpo {
SpaceLink *next, *prev;
@@ -371,8 +379,6 @@ typedef struct SpaceIpo {
struct bDopeSheet *ads; /* settings for filtering animation data (NOTE: we use a pointer due to code-linking issues) */
- ListBase ghostCurves; /* sampled snapshots of F-Curves used as in-session guides */
-
short mode; /* mode for the Graph editor (eGraphEdit_Mode) */
short autosnap; /* time-transform autosnapping settings for Graph editor (eAnimEdit_AutoSnap in DNA_action_types.h) */
int flag; /* settings for Graph editor (eGraphEdit_Flag) */
@@ -381,6 +387,8 @@ typedef struct SpaceIpo {
float cursorVal; /* cursor value (y-value, x-value is current frame) */
int around; /* pivot point for transforms */
int pad;
+
+ SpaceIpo_Runtime runtime;
} SpaceIpo;
@@ -408,8 +416,6 @@ typedef enum eGraphEdit_Flag {
SIPO_NODRAWCURSOR = (1 << 8),
/* only show handles of selected keyframes */
SIPO_SELVHANDLESONLY = (1 << 9),
- /* temporary flag to force channel selections to be synced with main */
- SIPO_TEMP_NEEDCHANSYNC = (1 << 10),
/* don't perform realtime updates */
SIPO_NOREALTIMEUPDATES = (1 << 11),
/* don't draw curves with AA ("beauty-draw") for performance */
@@ -429,6 +435,11 @@ typedef enum eGraphEdit_Mode {
SIPO_MODE_DRIVERS = 1,
} eGraphEdit_Mode;
+typedef enum eGraphEdit_Runtime_Flag {
+ /** Temporary flag to force channel selections to be synced with main. */
+ SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC = (1 << 0),
+} eGraphEdit_Runtime_Flag;
+
/** \} */
/* -------------------------------------------------------------------- */
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 8a792e4fa41..dad521b56cf 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -1593,7 +1593,7 @@ static void rna_SpaceDopeSheetEditor_mode_update(bContext *C, PointerRNA *ptr)
}
/* recalculate extents of channel list */
- saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
+ saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC;
/* store current mode as "old mode", so that returning from other editors doesn't always reset to "Action Editor" */
if (saction->mode != SACTCONT_TIMELINE) {
@@ -1623,7 +1623,7 @@ static void rna_SpaceGraphEditor_display_mode_update(bContext *C, PointerRNA *pt
static bool rna_SpaceGraphEditor_has_ghost_curves_get(PointerRNA *ptr)
{
SpaceIpo *sipo = (SpaceIpo *)(ptr->data);
- return (BLI_listbase_is_empty(&sipo->ghostCurves) == false);
+ return (BLI_listbase_is_empty(&sipo->runtime.ghost_curves) == false);
}
static void rna_SpaceConsole_rect_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)