135 lines
5.0 KiB
C++
135 lines
5.0 KiB
C++
/* SPDX-FileCopyrightText: 2009 Blender Authors, Joshua Leung. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup editors
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "BLI_sys_types.h"
|
|
|
|
struct AnimData;
|
|
struct ChannelDrawList;
|
|
struct FCurve;
|
|
struct MaskLayer;
|
|
struct Object;
|
|
struct Scene;
|
|
struct View2D;
|
|
struct bAction;
|
|
struct bActionGroup;
|
|
struct bAnimContext;
|
|
struct bDopeSheet;
|
|
struct bGPDlayer;
|
|
struct GreasePencil;
|
|
struct GreasePencilLayer;
|
|
struct GreasePencilLayerTreeGroup;
|
|
|
|
/* draw simple diamond-shape keyframe */
|
|
/* caller should set up vertex format, bind GPU_SHADER_KEYFRAME_SHAPE,
|
|
* immBegin(GPU_PRIM_POINTS, n), then call this n times */
|
|
struct KeyframeShaderBindings {
|
|
uint pos_id;
|
|
uint size_id;
|
|
uint color_id;
|
|
uint outline_color_id;
|
|
uint flags_id;
|
|
};
|
|
|
|
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);
|
|
|
|
/* ******************************* Methods ****************************** */
|
|
|
|
/* Channel Drawing ------------------ */
|
|
/* F-Curve */
|
|
void ED_add_fcurve_channel(ChannelDrawList *draw_list,
|
|
AnimData *adt,
|
|
FCurve *fcu,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
/* Action Group Summary */
|
|
void ED_add_action_group_channel(ChannelDrawList *draw_list,
|
|
AnimData *adt,
|
|
bActionGroup *agrp,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
/* Action Summary */
|
|
void ED_add_action_channel(ChannelDrawList *draw_list,
|
|
AnimData *adt,
|
|
bAction *act,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
/* Object Summary */
|
|
void ED_add_object_channel(ChannelDrawList *draw_list,
|
|
bDopeSheet *ads,
|
|
Object *ob,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
/* Scene Summary */
|
|
void ED_add_scene_channel(ChannelDrawList *draw_list,
|
|
bDopeSheet *ads,
|
|
Scene *sce,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
/* DopeSheet Summary */
|
|
void ED_add_summary_channel(
|
|
ChannelDrawList *draw_list, bAnimContext *ac, float ypos, float yscale_fac, int saction_flag);
|
|
|
|
/* Grease Pencil cels channels */
|
|
void ED_add_grease_pencil_cels_channel(ChannelDrawList *draw_list,
|
|
bDopeSheet *ads,
|
|
const GreasePencilLayer *layer,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
|
|
/* Grease Pencil layer group channels */
|
|
void ED_add_grease_pencil_layer_group_channel(ChannelDrawList *draw_list,
|
|
bDopeSheet *ads,
|
|
const GreasePencilLayerTreeGroup *layer,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
|
|
/* Grease Pencil data channels */
|
|
void ED_add_grease_pencil_datablock_channel(ChannelDrawList *draw_list,
|
|
bDopeSheet *ads,
|
|
const GreasePencil *grease_pencil,
|
|
const float ypos,
|
|
const float yscale_fac,
|
|
int saction_flag);
|
|
|
|
/* Grease Pencil Layer */
|
|
void ED_add_grease_pencil_layer_legacy_channel(ChannelDrawList *draw_list,
|
|
bDopeSheet *ads,
|
|
bGPDlayer *gpl,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
/* Mask Layer */
|
|
void ED_add_mask_layer_channel(ChannelDrawList *draw_list,
|
|
bDopeSheet *ads,
|
|
MaskLayer *masklay,
|
|
float ypos,
|
|
float yscale_fac,
|
|
int saction_flag);
|
|
|
|
ChannelDrawList *ED_channel_draw_list_create();
|
|
void ED_channel_list_flush(ChannelDrawList *draw_list, View2D *v2d);
|
|
void ED_channel_list_free(ChannelDrawList *draw_list);
|