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/include | |
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/include')
-rw-r--r-- | source/blender/include/BDR_drawaction.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/include/BDR_drawaction.h b/source/blender/include/BDR_drawaction.h index 1753f4ecf42..72b3de1e54d 100644 --- a/source/blender/include/BDR_drawaction.h +++ b/source/blender/include/BDR_drawaction.h @@ -68,6 +68,12 @@ typedef struct ActKeyBlock { } ActKeyBlock; +/* Inclusion-Range Limiting Struct (optional) */ +typedef struct ActKeysInc { + struct Object *ob; /* if present, used to find action-scaled time */ + float start, end; /* frames (global-time) to only consider keys between */ +} ActKeysInc; + /* ******************************* Methods ****************************** */ /* Action Generics */ @@ -81,11 +87,11 @@ void draw_action_channel(struct gla2DDrawInfo *di, struct bAction *act, float yp void draw_object_channel(struct gla2DDrawInfo *di, struct Object *ob, float ypos); /* Keydata Generation */ -void icu_to_keylist(struct IpoCurve *icu, ListBase *keys, ListBase *blocks); -void ipo_to_keylist(struct Ipo *ipo, ListBase *keys, ListBase *blocks); -void agroup_to_keylist(struct bActionGroup *agrp, ListBase *keys, ListBase *blocks); -void action_to_keylist(struct bAction *act, ListBase *keys, ListBase *blocks); -void ob_to_keylist(struct Object *ob, ListBase *keys, ListBase *blocks); +void icu_to_keylist(struct IpoCurve *icu, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void ipo_to_keylist(struct Ipo *ipo, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void agroup_to_keylist(struct bActionGroup *agrp, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void action_to_keylist(struct bAction *act, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void ob_to_keylist(struct Object *ob, ListBase *keys, ListBase *blocks, ActKeysInc *aki); #endif /* BDR_DRAWACTION_H */ |