diff options
author | Joshua Leung <aligorith@gmail.com> | 2008-01-27 06:21:24 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2008-01-27 06:21:24 +0300 |
commit | 8c59520060009d08d50b79e2a37734e77fd6aebe (patch) | |
tree | e4989001053626ef8d267c0cc063b112b4147a78 /source/blender/src/drawarmature.c | |
parent | 4213dac345f053cb5674143d719276e742bc69da (diff) |
== Action Editor Drawing - Optimisations (Part 2 out of ?) ==
Keyframes are now checked for whether they are visible or not before they are prepared for drawing. This should provide some improvements for large data-sets...
In general there don't appear to be any major issues, although in a few situations, long-keyframes may end up appearing/disappearing.
Diffstat (limited to 'source/blender/src/drawarmature.c')
-rw-r--r-- | source/blender/src/drawarmature.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/src/drawarmature.c b/source/blender/src/drawarmature.c index abe22a1804d..52f5f4e8954 100644 --- a/source/blender/src/drawarmature.c +++ b/source/blender/src/drawarmature.c @@ -2111,7 +2111,7 @@ static void draw_pose_paths(Object *ob) if (act) { achan= get_action_channel(act, pchan->name); if (achan) - ipo_to_keylist(achan->ipo, &keys, NULL); + ipo_to_keylist(achan->ipo, &keys, NULL, NULL); } /* Draw slightly-larger yellow dots at each keyframe */ @@ -2257,17 +2257,18 @@ static void draw_ghost_poses_keys(Base *base) bArmature *arm= ob->data; bPose *posen, *poseo; ListBase keys= {NULL, NULL}; + ActKeysInc aki = {0, 0, 0}; ActKeyColumn *ak, *akn; float start, end, range, colfac, i; int cfrao, flago, ipoflago; - start = arm->ghostsf; - end = arm->ghostef; + aki.start= start = arm->ghostsf; + aki.end= end = arm->ghostef; if (end <= start) return; /* get keyframes - then clip to only within range */ - action_to_keylist(act, &keys, NULL); + action_to_keylist(act, &keys, NULL, &aki); range= 0; for (ak= keys.first; ak; ak= akn) { akn= ak->next; |