Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
clip_draw.c File Reference
#include "DNA_gpencil_types.h"
#include "DNA_movieclip_types.h"
#include "DNA_scene_types.h"
#include "MEM_guardedalloc.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "BLI_math.h"
#include "BLI_math_base.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_image.h"
#include "BKE_movieclip.h"
#include "BKE_tracking.h"
#include "ED_clip.h"
#include "ED_gpencil.h"
#include "ED_mask.h"
#include "ED_screen.h"
#include "ED_util.h"
#include "BIF_glutil.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_matrix.h"
#include "GPU_state.h"
#include "WM_types.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "BLF_api.h"
#include "clip_intern.h"

Go to the source code of this file.

Classes

struct  TrachPathPoint
 

Macros

#define MAX_STATIC_PATH   64
 

Typedefs

typedef struct TrachPathPoint TrackPathPoint
 

Enumerations

enum  { PATH_POINT_FLAG_KEYFRAME = (1 << 0) }
 

Functions

static void draw_keyframe (int frame, int cfra, int sfra, float framelen, int width, uint pos)
 
static int generic_track_get_markersnr (MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track)
 
static int generic_track_get_marker_framenr (MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track, int marker_index)
 
static bool generic_track_is_marker_enabled (MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track, int marker_index)
 
static bool generic_track_is_marker_keyframed (MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track, int marker_index)
 
static void draw_movieclip_cache (SpaceClip *sc, ARegion *region, MovieClip *clip, Scene *scene)
 
static void draw_movieclip_notes (SpaceClip *sc, ARegion *region)
 
static void draw_movieclip_muted (ARegion *region, int width, int height, float zoomx, float zoomy)
 
static void draw_movieclip_buffer (const bContext *C, SpaceClip *sc, ARegion *region, ImBuf *ibuf, int width, int height, float zoomx, float zoomy)
 
static void draw_stabilization_border (SpaceClip *sc, ARegion *region, int width, int height, float zoomx, float zoomy)
 
static void marker_to_path_point (SpaceClip *sc, const MovieTrackingTrack *track, const MovieTrackingMarker *marker, TrackPathPoint *point)
 
static int track_to_path_segment (SpaceClip *sc, MovieTrackingTrack *track, int direction, TrackPathPoint *path)
 
static void draw_track_path_points (const TrackPathPoint *path, uint position_attribute, const int start_point, const int num_points)
 
static void draw_track_path_keyframe_points (const TrackPathPoint *path, uint position_attribute, const int start_point, const int num_points)
 
static void draw_track_path_lines (const TrackPathPoint *path, uint position_attribute, const int start_point, const int num_points)
 
static void draw_track_path (SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackingTrack *track)
 
static void draw_marker_outline (SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int width, int height, uint position)
 
static void track_colors (MovieTrackingTrack *track, int act, float col[3], float scol[3])
 
static void set_draw_marker_area_color (const MovieTrackingTrack *track, const MovieTrackingMarker *marker, const bool is_track_active, const bool is_area_selected, const float color[3], const float selected_color[3])
 
static void draw_marker_areas (SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int width, int height, int act, int sel, const uint shdr_pos)
 
static float get_shortest_pattern_side (MovieTrackingMarker *marker)
 
static void draw_marker_slide_square (float x, float y, float dx, float dy, int outline, const float px[2], uint pos)
 
static void draw_marker_slide_triangle (float x, float y, float dx, float dy, int outline, const float px[2], uint pos)
 
static void draw_marker_slide_zones (SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int outline, int sel, int act, int width, int height, uint pos)
 
static void draw_marker_texts (SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int act, int width, int height, float zoomx, float zoomy)
 
static void plane_track_colors (bool is_active, float color[3], float selected_color[3])
 
static void getArrowEndPoint (const int width, const int height, const float zoom, const float start_corner[2], const float end_corner[2], float end_point[2])
 
static void homogeneous_2d_to_gl_matrix (float matrix[3][3], float gl_matrix[4][4])
 
static void draw_plane_marker_image (Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker)
 
static void draw_plane_marker_ex (SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker, bool is_active_track, bool draw_outline, int width, int height)
 
static void draw_plane_marker_outline (SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker, int width, int height)
 
static void draw_plane_marker (SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker, bool is_active_track, int width, int height)
 
static void draw_plane_track (SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, int framenr, bool is_active_track, int width, int height)
 
static void draw_tracking_tracks (SpaceClip *sc, Scene *scene, ARegion *region, MovieClip *clip, int width, int height, float zoomx, float zoomy)
 
static void draw_distortion (SpaceClip *sc, ARegion *region, MovieClip *clip, int width, int height, float zoomx, float zoomy)
 
void clip_draw_main (const bContext *C, SpaceClip *sc, ARegion *region)
 
void clip_draw_cache_and_notes (const bContext *C, SpaceClip *sc, ARegion *region)
 
void clip_draw_grease_pencil (bContext *C, int onlyv2d)
 

Macro Definition Documentation

◆ MAX_STATIC_PATH

#define MAX_STATIC_PATH   64

Typedef Documentation

◆ TrackPathPoint

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PATH_POINT_FLAG_KEYFRAME 

Definition at line 388 of file clip_draw.c.

Function Documentation

◆ clip_draw_cache_and_notes()

void clip_draw_cache_and_notes ( const bContext C,
SpaceClip sc,
ARegion region 
)

◆ clip_draw_grease_pencil()

void clip_draw_grease_pencil ( bContext C,
int  onlyv2d 
)

◆ clip_draw_main()

void clip_draw_main ( const bContext C,
SpaceClip sc,
ARegion region 
)

◆ draw_distortion()

static void draw_distortion ( SpaceClip sc,
ARegion region,
MovieClip clip,
int  width,
int  height,
float  zoomx,
float  zoomy 
)
static

◆ draw_keyframe()

static void draw_keyframe ( int  frame,
int  cfra,
int  sfra,
float  framelen,
int  width,
uint  pos 
)
static

Definition at line 54 of file clip_draw.c.

References GPU_PRIM_LINES, height, immBegin(), immEnd(), immRecti(), immVertex2i(), pos, UI_DPI_FAC, width, and x.

Referenced by draw_movieclip_cache().

◆ draw_marker_areas()

static void draw_marker_areas ( SpaceClip sc,
MovieTrackingTrack track,
MovieTrackingMarker marker,
const float  marker_pos[2],
int  width,
int  height,
int  act,
int  sel,
const uint  shdr_pos 
)
static

◆ draw_marker_outline()

static void draw_marker_outline ( SpaceClip sc,
MovieTrackingTrack track,
MovieTrackingMarker marker,
const float  marker_pos[2],
int  width,
int  height,
uint  position 
)
static

◆ draw_marker_slide_square()

static void draw_marker_slide_square ( float  x,
float  y,
float  dx,
float  dy,
int  outline,
const float  px[2],
uint  pos 
)
static

Definition at line 884 of file clip_draw.c.

References immRectf(), pos, x, and y.

Referenced by draw_marker_slide_zones(), and draw_plane_marker_ex().

◆ draw_marker_slide_triangle()

static void draw_marker_slide_triangle ( float  x,
float  y,
float  dx,
float  dy,
int  outline,
const float  px[2],
uint  pos 
)
static

Definition at line 900 of file clip_draw.c.

References GPU_PRIM_TRIS, immBegin(), immEnd(), immVertex2f(), pos, x, and y.

Referenced by draw_marker_slide_zones().

◆ draw_marker_slide_zones()

static void draw_marker_slide_zones ( SpaceClip sc,
MovieTrackingTrack track,
MovieTrackingMarker marker,
const float  marker_pos[2],
int  outline,
int  sel,
int  act,
int  width,
int  height,
uint  pos 
)
static

◆ draw_marker_texts()

static void draw_marker_texts ( SpaceClip sc,
MovieTrackingTrack track,
MovieTrackingMarker marker,
const float  marker_pos[2],
int  act,
int  width,
int  height,
float  zoomx,
float  zoomy 
)
static

◆ draw_movieclip_buffer()

static void draw_movieclip_buffer ( const bContext C,
SpaceClip sc,
ARegion region,
ImBuf ibuf,
int  width,
int  height,
float  zoomx,
float  zoomy 
)
static

◆ draw_movieclip_cache()

static void draw_movieclip_cache ( SpaceClip sc,
ARegion region,
MovieClip clip,
Scene scene 
)
static

◆ draw_movieclip_muted()

static void draw_movieclip_muted ( ARegion region,
int  width,
int  height,
float  zoomx,
float  zoomy 
)
static

◆ draw_movieclip_notes()

static void draw_movieclip_notes ( SpaceClip sc,
ARegion region 
)
static

◆ draw_plane_marker()

static void draw_plane_marker ( SpaceClip sc,
Scene scene,
MovieTrackingPlaneTrack plane_track,
MovieTrackingPlaneMarker plane_marker,
bool  is_active_track,
int  width,
int  height 
)
static

Definition at line 1394 of file clip_draw.c.

References draw_plane_marker_ex(), height, scene, and width.

Referenced by draw_plane_track().

◆ draw_plane_marker_ex()

static void draw_plane_marker_ex ( SpaceClip sc,
Scene scene,
MovieTrackingPlaneTrack plane_track,
MovieTrackingPlaneMarker plane_marker,
bool  is_active_track,
bool  draw_outline,
int  width,
int  height 
)
static

◆ draw_plane_marker_image()

static void draw_plane_marker_image ( Scene scene,
MovieTrackingPlaneTrack plane_track,
MovieTrackingPlaneMarker plane_marker 
)
static

◆ draw_plane_marker_outline()

static void draw_plane_marker_outline ( SpaceClip sc,
Scene scene,
MovieTrackingPlaneTrack plane_track,
MovieTrackingPlaneMarker plane_marker,
int  width,
int  height 
)
static

Definition at line 1384 of file clip_draw.c.

References draw_plane_marker_ex(), height, scene, and width.

Referenced by draw_plane_track().

◆ draw_plane_track()

static void draw_plane_track ( SpaceClip sc,
Scene scene,
MovieTrackingPlaneTrack plane_track,
int  framenr,
bool  is_active_track,
int  width,
int  height 
)
static

◆ draw_stabilization_border()

static void draw_stabilization_border ( SpaceClip sc,
ARegion region,
int  width,
int  height,
float  zoomx,
float  zoomy 
)
static

◆ draw_track_path()

static void draw_track_path ( SpaceClip sc,
MovieClip UNUSEDclip,
MovieTrackingTrack track 
)
static

◆ draw_track_path_keyframe_points()

static void draw_track_path_keyframe_points ( const TrackPathPoint path,
uint  position_attribute,
const int  start_point,
const int  num_points 
)
static

◆ draw_track_path_lines()

static void draw_track_path_lines ( const TrackPathPoint path,
uint  position_attribute,
const int  start_point,
const int  num_points 
)
static

Definition at line 472 of file clip_draw.c.

References Particle::co, GPU_PRIM_LINE_STRIP, immBegin(), immEnd(), immVertex2fv(), and point.

Referenced by draw_track_path().

◆ draw_track_path_points()

static void draw_track_path_points ( const TrackPathPoint path,
uint  position_attribute,
const int  start_point,
const int  num_points 
)
static

Definition at line 441 of file clip_draw.c.

References Particle::co, GPU_PRIM_POINTS, immBegin(), immEnd(), immVertex2fv(), and point.

Referenced by draw_track_path().

◆ draw_tracking_tracks()

static void draw_tracking_tracks ( SpaceClip sc,
Scene scene,
ARegion region,
MovieClip clip,
int  width,
int  height,
float  zoomx,
float  zoomy 
)
static

Definition at line 1423 of file clip_draw.c.

References BKE_tracking_distort_v2(), BKE_tracking_get_active_plane_tracks(), BKE_tracking_get_active_tracks(), BKE_tracking_get_projection_matrix(), BKE_tracking_marker_get(), BKE_tracking_object_get_active(), BKE_tracking_plane_track_get_active(), BKE_tracking_track_get_active(), MovieTrackingTrack::bundle_pos, MovieTracking::camera, copy_v2_v2(), copy_v3_v3(), count, draw_marker_areas(), draw_marker_outline(), draw_marker_slide_zones(), draw_marker_texts(), draw_plane_track(), draw_track_path(), ED_clip_point_undistorted_pos(), ED_space_clip_get_clip_frame_number(), ListBase::first, SpaceClip::flag, MovieTrackingTrack::flag, MovieTrackingPlaneTrack::flag, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_matrix_scale_2f(), GPU_matrix_translate_2f(), GPU_point_size(), GPU_PRIM_POINTS, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), height, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformColor3f(), immVertex2f(), immVertexFormat(), len_squared_v2(), MARKER_VISIBLE, MCLIP_PROXY_RENDER_UNDISTORT, MEM_callocN, MEM_freeN, mul_v4_m4v4(), MovieTrackingTrack::next, MovieTrackingPlaneTrack::next, NULL, MovieTrackingTrack::offset, MovieTrackingCamera::pixel_aspect, PLANE_TRACK_HIDDEN, pos, MovieTrackingMarker::pos, MovieClipUser::render_flag, SC_SHOW_BUNDLES, SC_SHOW_NAMES, SC_SHOW_TRACK_PATH, scene, SpaceClip::stabmat, sub_v2_v2(), TRACK_HAS_BUNDLE, TRACK_HIDDEN, MovieClip::tracking, UI_view2d_view_to_region_fl(), SpaceClip::user, ARegion::v2d, width, x, and y.

Referenced by clip_draw_main().

◆ generic_track_get_marker_framenr()

static int generic_track_get_marker_framenr ( MovieTrackingTrack track,
MovieTrackingPlaneTrack plane_track,
int  marker_index 
)
static

◆ generic_track_get_markersnr()

static int generic_track_get_markersnr ( MovieTrackingTrack track,
MovieTrackingPlaneTrack plane_track 
)
static

Definition at line 70 of file clip_draw.c.

References MovieTrackingTrack::markersnr, and MovieTrackingPlaneTrack::markersnr.

Referenced by draw_movieclip_cache().

◆ generic_track_is_marker_enabled()

static bool generic_track_is_marker_enabled ( MovieTrackingTrack track,
MovieTrackingPlaneTrack plane_track,
int  marker_index 
)
static

◆ generic_track_is_marker_keyframed()

static bool generic_track_is_marker_keyframed ( MovieTrackingTrack track,
MovieTrackingPlaneTrack plane_track,
int  marker_index 
)
static

◆ get_shortest_pattern_side()

static float get_shortest_pattern_side ( MovieTrackingMarker marker)
static

◆ getArrowEndPoint()

static void getArrowEndPoint ( const int  width,
const int  height,
const float  zoom,
const float  start_corner[2],
const float  end_corner[2],
float  end_point[2] 
)
static

Definition at line 1120 of file clip_draw.c.

References add_v2_v2v2(), height, min_ff(), mul_v2_fl(), normalize_v2(), sub_v2_v2v2(), and width.

Referenced by draw_plane_marker_ex().

◆ homogeneous_2d_to_gl_matrix()

static void homogeneous_2d_to_gl_matrix ( float  matrix[3][3],
float  gl_matrix[4][4] 
)
static

Definition at line 1142 of file clip_draw.c.

Referenced by draw_plane_marker_image().

◆ marker_to_path_point()

static void marker_to_path_point ( SpaceClip sc,
const MovieTrackingTrack track,
const MovieTrackingMarker marker,
TrackPathPoint point 
)
static

◆ plane_track_colors()

static void plane_track_colors ( bool  is_active,
float  color[3],
float  selected_color[3] 
)
static

Definition at line 1113 of file clip_draw.c.

References color, TH_ACT_MARKER, TH_MARKER, TH_SEL_MARKER, and UI_GetThemeColor3fv().

Referenced by draw_plane_marker_ex().

◆ set_draw_marker_area_color()

static void set_draw_marker_area_color ( const MovieTrackingTrack track,
const MovieTrackingMarker marker,
const bool  is_track_active,
const bool  is_area_selected,
const float  color[3],
const float  selected_color[3] 
)
static

◆ track_colors()

static void track_colors ( MovieTrackingTrack track,
int  act,
float  col[3],
float  scol[3] 
)
static

◆ track_to_path_segment()

static int track_to_path_segment ( SpaceClip sc,
MovieTrackingTrack track,
int  direction,
TrackPathPoint path 
)
static