74 size -= 0.8f * key_type;
105 fill_col[3] *= alpha;
109 outline_col[0] = fill_col[0];
110 outline_col[1] = fill_col[1];
111 outline_col[2] = fill_col[2];
112 outline_col[3] = fill_col[3];
119 outline_col[3] *= alpha;
123 fill_col[0] = outline_col[0];
124 fill_col[1] = outline_col[1];
125 fill_col[2] = outline_col[2];
130 switch (handle_type) {
196 ctx->
alpha = channel_locked ? 0.25f : 1.0f;
198 ctx->
icon_size =
U.widget_unit * 0.5f * yscale_fac;
314 if (valid_hold != 0) {
337 for (
int i = 0; i < key_len; i++) {
358 for (
int i = 0; i < key_len; i++) {
419 switch (elem->
type) {
539 if (visible_key_len == 0) {
603 draw_elem->
type = elem_type;
605 draw_elem->
ypos = ypos;
635 draw_elem->
ads = ads;
636 draw_elem->
sce = sce;
649 draw_elem->
ads = ads;
667 draw_elem->
adt = adt;
668 draw_elem->
fcu = fcu;
685 draw_elem->
adt = adt;
686 draw_elem->
agrp = agrp;
702 draw_elem->
adt = adt;
703 draw_elem->
act = act;
717 draw_elem->
ads = ads;
718 draw_elem->
gpl = gpl;
732 draw_elem->
ads = ads;
typedef float(TangentPoint)[2]
#define LISTBASE_FOREACH(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE float min_ff(float a, float b)
MINLINE void copy_v4_v4(float r[4], const float a[4])
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
#define IN_RANGE_INCL(a, b, c)
#define ID_IS_LINKED(_id)
#define ID_IS_OVERRIDE_LIBRARY(_id)
@ SACTION_SHOW_INTERPOLATION
Object is a sort of wrapper for general info.
@ ACTKEYBLOCK_FLAG_GPENCIL
@ ACTKEYBLOCK_FLAG_NON_BEZIER
@ ACTKEYBLOCK_FLAG_STATIC_HOLD
@ KEYFRAME_HANDLE_AUTO_CLAMP
@ KEYFRAME_HANDLE_ALIGNED
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
@ GPU_SHADER_KEYFRAME_SHAPE
@ GPU_KEYFRAME_SHAPE_INNER_DOT
@ GPU_KEYFRAME_SHAPE_CIRCLE
@ GPU_KEYFRAME_SHAPE_ARROW_END_MIXED
@ GPU_KEYFRAME_SHAPE_DIAMOND
@ GPU_KEYFRAME_SHAPE_ARROW_END_MAX
@ GPU_KEYFRAME_SHAPE_ARROW_END_MIN
@ GPU_KEYFRAME_SHAPE_CLIPPED_VERTICAL
#define GPU_KEYFRAME_SHAPE_SQUARE
void GPU_program_point_size(bool enable)
void GPU_blend(eGPUBlend blend)
Read Guarded memory(de)allocation.
void UI_draw_roundbox_4fv(const struct rctf *rect, bool filled, float rad, const float col[4])
void UI_draw_roundbox_corner_set(int type)
@ TH_KEYTYPE_KEYFRAME_SELECT
@ TH_KEYTYPE_BREAKDOWN_SELECT
@ TH_KEYTYPE_EXTREME_SELECT
@ TH_KEYTYPE_MOVEHOLD_SELECT
@ TH_KEYTYPE_JITTER_SELECT
void UI_GetThemeColor4fv(int colorid, float col[4])
void UI_GetThemeColor4ubv(int colorid, unsigned char col[4])
float UI_view2d_scale_get_x(const struct View2D *v2d)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static void draw_keylist_block_standard(const DrawKeylistUIData *ctx, const ActKeyColumn *ab, float ypos)
static void ED_keylist_draw_list_build_keylists(AnimKeylistDrawList *draw_list)
static void draw_keylist_block_gpencil(const DrawKeylistUIData *ctx, const ActKeyColumn *ab, float ypos)
static void ED_keylist_draw_list_elem_build_keylist(AnimKeylistDrawListElem *elem)
void draw_gpl_channel(AnimKeylistDrawList *draw_list, bDopeSheet *ads, bGPDlayer *gpl, float ypos, float yscale_fac, int saction_flag)
static int ED_keylist_draw_keylist_visible_key_len(const View2D *v2d, const ListBase *keys)
void draw_object_channel(AnimKeylistDrawList *draw_list, bDopeSheet *ads, Object *ob, float ypos, float yscale_fac, int saction_flag)
static void ED_keylist_draw_list_draw_keys(AnimKeylistDrawList *draw_list, View2D *v2d)
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)
struct DrawKeylistUIData DrawKeylistUIData
static int ED_keylist_draw_list_visible_key_len(const AnimKeylistDrawList *draw_list, const View2D *v2d)
struct AnimKeylistDrawListElem AnimKeylistDrawListElem
static void draw_keylist_block_interpolation_line(const DrawKeylistUIData *ctx, const ActKeyColumn *ab, float ypos)
static AnimKeylistDrawListElem * ed_keylist_draw_list_add_elem(AnimKeylistDrawList *draw_list, eAnimKeylistDrawListElemType elem_type, float ypos, float yscale_fac, eSAction_Flag saction_flag)
static void draw_keylist_block(const DrawKeylistUIData *ctx, const ActKeyColumn *ab, float ypos)
AnimKeylistDrawList * ED_keylist_draw_list_create(void)
eAnimKeylistDrawListElemType
@ ANIM_KEYLIST_MASK_LAYER
static void ED_keylist_draw_list_elem_draw_blocks(AnimKeylistDrawListElem *elem, View2D *v2d)
static void draw_keylist_ui_data_init(DrawKeylistUIData *ctx, View2D *v2d, float yscale_fac, bool channel_locked, eSAction_Flag saction_flag)
static void ED_keylist_draw_list_draw_blocks(AnimKeylistDrawList *draw_list, View2D *v2d)
void draw_keyframe_shape(float x, float y, float size, bool sel, short key_type, short mode, float alpha, const KeyframeShaderBindings *sh_bindings, short handle_type, short extreme_type)
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)
static void ED_keylist_draw_list_elem_prepare_for_drawing(AnimKeylistDrawListElem *elem)
static void draw_keylist_block_moving_hold(const DrawKeylistUIData *ctx, const ActKeyColumn *ab, float ypos)
static bool draw_keylist_is_visible_key(const View2D *v2d, const ActKeyColumn *ak)
struct AnimKeylistDrawList AnimKeylistDrawList
static void ED_keylist_draw_list_elem_draw_keys(AnimKeylistDrawListElem *elem, View2D *v2d, const KeyframeShaderBindings *sh_bindings)
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)
static void draw_keylist_keys(const DrawKeylistUIData *ctx, View2D *v2d, const KeyframeShaderBindings *sh_bindings, const ActKeyColumn *keys, const int key_len, float ypos, eSAction_Flag saction_flag)
static void draw_keylist_blocks(const DrawKeylistUIData *ctx, const ActKeyColumn *keys, const int key_len, float ypos)
void draw_summary_channel(struct AnimKeylistDrawList *draw_list, bAnimContext *ac, float ypos, float yscale_fac, int saction_flag)
static void ED_keylist_draw_list_draw(AnimKeylistDrawList *draw_list, View2D *v2d)
void fcurve_to_keylist(AnimData *adt, FCurve *fcu, AnimKeylist *keylist, const int saction_flag)
AnimKeylist * ED_keylist_create()
void scene_to_keylist(bDopeSheet *ads, Scene *sce, AnimKeylist *keylist, const int saction_flag)
void mask_to_keylist(bDopeSheet *UNUSED(ads), MaskLayer *masklay, AnimKeylist *keylist)
bool actkeyblock_is_valid(const ActKeyColumn *ac)
void ob_to_keylist(bDopeSheet *ads, Object *ob, AnimKeylist *keylist, const int saction_flag)
const ActKeyColumn * ED_keylist_array(const struct AnimKeylist *keylist)
void summary_to_keylist(bAnimContext *ac, AnimKeylist *keylist, const int saction_flag)
void ED_keylist_prepare_for_direct_access(AnimKeylist *keylist)
int actkeyblock_get_valid_hold(const ActKeyColumn *ac)
void ED_keylist_free(AnimKeylist *keylist)
int64_t ED_keylist_array_len(const struct AnimKeylist *keylist)
void action_to_keylist(AnimData *adt, bAction *act, AnimKeylist *keylist, const int saction_flag)
const struct ListBase * ED_keylist_listbase(const AnimKeylist *keylist)
void gpl_to_keylist(bDopeSheet *UNUSED(ads), bGPDlayer *gpl, AnimKeylist *keylist)
void agroup_to_keylist(AnimData *adt, bActionGroup *agrp, AnimKeylist *keylist, const int saction_flag)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
struct ActKeyColumn * next
struct AnimKeylistDrawListElem * next
struct AnimKeylist * keylist
eSAction_Flag saction_flag
struct AnimKeylistDrawListElem * prev
eAnimKeylistDrawListElemType type