71 size_t channel_index = 0;
87 size_t channel_index = 0;
115 #define EXTRA_SCROLL_PAD 100.0f
128 float ymin = ymax - ystep;
130 for (
bAnimListElem *ale = anim_data->
first; ale; ale = ale->next, ymax = ymin, ymin -= ystep) {
148 if (action != cur_action || adt != cur_adt) {
174 uchar col1[4], col2[4];
175 uchar col1a[4], col2a[4];
176 uchar col1b[4], col2b[4];
177 uchar col_summary[4];
252 if (show_group_colors && agrp->
customCol) {
292 gpl_col[3] = col1[3];
294 color = sel ? col1 : gpl_col;
297 color = sel ? col1 : col2;
316 color = sel ? col1 : col2;
349 int action_flag = saction->
flag;
361 float ycenter = (ymin + ymax) / 2.0f;
520 int search_start_frame,
521 int *r_segment_start,
525 int current = search_start_frame;
533 *r_segment_start = current;
542 *r_segment_end = current - 1;
546 *r_segment_end = current - 1;
562 current = segment_end + 1;
571 if (segments_count == 0) {
581 immRectf_fast(pos_id, segment_start - 0.5f, 0, segment_end + 0.5f, 1.0f);
582 current = segment_end + 1;
625 float y_offset = 0.0f;
626 const float cache_draw_height = 4.0f *
UI_DPI_FAC *
U.pixelsize;
632 if (pid->cache->cached_frames ==
NULL) {
638 y_offset += cache_draw_height;
Blender kernel action and pose functionality.
#define PTCACHE_TYPE_SMOKE_HIGHRES
void BKE_ptcache_ids_from_object(struct ListBase *lb, struct Object *ob, struct Scene *scene, int duplis)
#define PTCACHE_TYPE_CLOTH
#define PTCACHE_TYPE_DYNAMICPAINT
#define PTCACHE_TYPE_PARTICLES
#define PTCACHE_TYPE_SOFTBODY
#define PTCACHE_TYPE_SMOKE_DOMAIN
#define PTCACHE_TYPE_SIM_PARTICLES
#define PTCACHE_TYPE_RIGIDBODY
#define LISTBASE_FOREACH(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void rgb_float_to_uchar(unsigned char r_col[3], const float col_f[3])
void BLI_rctf_init(struct rctf *rect, float xmin, float xmax, float ymin, float ymax)
#define IN_RANGE(a, b, c)
@ TIME_CACHE_DYNAMICPAINT
@ SACTION_SHOW_INTERPOLATION
Object is a sort of wrapper for general info.
@ USER_ANIM_SHOW_CHANNEL_GROUP_COLORS
#define ACHANNEL_HEIGHT(ac)
#define ACHANNEL_FIRST_TOP(ac)
@ ACHANNEL_SETTING_SELECT
#define ACHANNEL_STEP(ac)
#define ACHANNEL_TOT_HEIGHT(ac, item_amount)
@ ANIMFILTER_DATA_VISIBLE
@ ANIMFILTER_LIST_VISIBLE
@ ANIMFILTER_LIST_CHANNELS
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
void GPU_matrix_pop(void)
void GPU_matrix_scale_2f(float x, float y)
void GPU_matrix_push(void)
void GPU_matrix_translate_2f(float x, float y)
@ GPU_SHADER_2D_UNIFORM_COLOR
void GPU_blend(eGPUBlend blend)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
void UI_block_end(const struct bContext *C, uiBlock *block)
void UI_block_draw(const struct bContext *C, struct uiBlock *block)
uiBlock * UI_block_begin(const struct bContext *C, struct ARegion *region, const char *name, eUIEmbossType emboss)
@ TH_DOPESHEET_CHANNELSUBOB
void UI_GetThemeColor4ubv(int colorid, unsigned char col[4])
#define V2D_SCROLL_HANDLE_HEIGHT
void UI_view2d_sync(struct bScreen *screen, struct ScrArea *area, struct View2D *v2dcur, int flag)
void draw_channel_names(bContext *C, bAnimContext *ac, ARegion *region)
void timeline_draw_cache(SpaceAction *saction, Object *ob, Scene *scene)
void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *region)
static uint timeline_cache_segments_count(PointCache *cache)
static void timeline_cache_draw_cached_segments(PointCache *cache, uint pos_id)
static void timeline_cache_draw_single(PTCacheID *pid, float y_offset, float height, uint pos_id)
static bool timeline_cache_is_hidden_by_setting(SpaceAction *saction, PTCacheID *pid)
static void draw_channel_action_ranges(bAnimContext *ac, ListBase *anim_data, View2D *v2d)
static void timeline_cache_modify_color_based_on_state(PointCache *cache, float color[4])
static void timeline_cache_color_get(PTCacheID *pid, float color[4])
static bool timeline_cache_find_next_cached_segment(PointCache *cache, int search_start_frame, int *r_segment_start, int *r_segment_end)
void ANIM_channel_draw_widgets(const bContext *C, bAnimContext *ac, bAnimListElem *ale, uiBlock *block, rctf *rect, size_t channel_index)
void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc, size_t channel_index)
short ANIM_channel_setting_get(bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting)
bAction * ANIM_channel_action_get(const bAnimListElem *ale)
const bAnimChannelType * ANIM_channel_get_typeinfo(bAnimListElem *ale)
void ANIM_animdata_freelist(ListBase *anim_data)
AnimData * ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale)
void ANIM_draw_action_framerange(AnimData *adt, bAction *action, View2D *v2d, float ymin, float ymax)
size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, eAnimFilter_Flags filter_mode, void *data, eAnimCont_Types datatype)
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
void draw_gpl_channel(AnimKeylistDrawList *draw_list, bDopeSheet *ads, bGPDlayer *gpl, float ypos, float yscale_fac, int saction_flag)
void draw_object_channel(AnimKeylistDrawList *draw_list, bDopeSheet *ads, Object *ob, float ypos, float yscale_fac, int saction_flag)
void draw_fcurve_channel(AnimKeylistDrawList *draw_list, AnimData *adt, FCurve *fcu, float ypos, float yscale_fac, int saction_flag)
void ED_keylist_draw_list_flush(AnimKeylistDrawList *draw_list, View2D *v2d)
AnimKeylistDrawList * ED_keylist_draw_list_create(void)
void ED_keylist_draw_list_free(AnimKeylistDrawList *draw_list)
void draw_action_channel(AnimKeylistDrawList *draw_list, AnimData *adt, bAction *act, float ypos, float yscale_fac, int saction_flag)
void draw_agroup_channel(AnimKeylistDrawList *draw_list, AnimData *adt, bActionGroup *agrp, float ypos, float yscale_fac, int saction_flag)
void draw_scene_channel(AnimKeylistDrawList *draw_list, bDopeSheet *ads, Scene *sce, float ypos, float yscale_fac, int saction_flag)
void draw_masklay_channel(AnimKeylistDrawList *draw_list, bDopeSheet *ads, MaskLayer *masklay, float ypos, float yscale_fac, int saction_flag)
void draw_summary_channel(struct AnimKeylistDrawList *draw_list, bAnimContext *ac, float ypos, float yscale_fac, int saction_flag)
struct PointCache * cache
bool(* has_setting)(bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting)
struct bAnimListElem * next