Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_action/space_action.c
| Show First 20 Lines • Show All 169 Lines • ▼ Show 20 Lines | static void action_main_region_init(wmWindowManager *wm, ARegion *region) | ||||
| keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet", SPACE_ACTION, 0); | keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet", SPACE_ACTION, 0); | ||||
| WM_event_add_keymap_handler_v2d_mask(®ion->handlers, keymap); | WM_event_add_keymap_handler_v2d_mask(®ion->handlers, keymap); | ||||
| keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0); | keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0); | ||||
| WM_event_add_keymap_handler(®ion->handlers, keymap); | WM_event_add_keymap_handler(®ion->handlers, keymap); | ||||
| } | } | ||||
| static void action_main_region_draw(const bContext *C, ARegion *region) | static void action_main_region_draw(const bContext *C, ARegion *region) | ||||
| { | { | ||||
| const bool do_draw_main = (region->do_draw & RGN_DRAW) != 0; | |||||
| /* draw entirely, view changes should be handled here */ | /* draw entirely, view changes should be handled here */ | ||||
| SpaceAction *saction = CTX_wm_space_action(C); | SpaceAction *saction = CTX_wm_space_action(C); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| Object *obact = CTX_data_active_object(C); | Object *obact = CTX_data_active_object(C); | ||||
| bAnimContext ac; | bAnimContext ac; | ||||
| View2D *v2d = ®ion->v2d; | View2D *v2d = ®ion->v2d; | ||||
| View2DScrollers *scrollers; | View2DScrollers *scrollers; | ||||
| short marker_flag = 0; | short marker_flag = 0; | ||||
| short cfra_flag = 0; | short cfra_flag = 0; | ||||
| UI_view2d_view_ortho(v2d); | |||||
| if (saction->flag & SACTION_DRAWTIME) { | |||||
| cfra_flag |= DRAWCFRA_UNIT_SECONDS; | |||||
| } | |||||
| if (!do_draw_main) { | |||||
| /* TODO: these should be done using a paint cursor? */ | |||||
| ANIM_draw_cfra(C, v2d, cfra_flag); | |||||
| /* reset view matrix */ | |||||
| UI_view2d_view_restore(C); | |||||
| /* scrubbing region */ | |||||
| ED_time_scrub_draw(region, scene, saction->flag & SACTION_DRAWTIME, true); | |||||
| return; | |||||
| } | |||||
| /* clear and setup matrix */ | /* clear and setup matrix */ | ||||
| UI_ThemeClearColor(TH_BACK); | UI_ThemeClearColor(TH_BACK); | ||||
| GPU_clear(GPU_COLOR_BIT); | GPU_clear(GPU_COLOR_BIT); | ||||
| UI_view2d_view_ortho(v2d); | UI_view2d_view_ortho(v2d); | ||||
| /* time grid */ | /* time grid */ | ||||
| UI_view2d_draw_lines_x__discrete_frames_or_seconds(v2d, scene, saction->flag & SACTION_DRAWTIME); | UI_view2d_draw_lines_x__discrete_frames_or_seconds(v2d, scene, saction->flag & SACTION_DRAWTIME); | ||||
| ED_region_draw_cb_draw(C, region, REGION_DRAW_PRE_VIEW); | ED_region_draw_cb_draw(C, region, REGION_DRAW_PRE_VIEW); | ||||
| /* start and end frame */ | /* start and end frame */ | ||||
| ANIM_draw_framerange(scene, v2d); | ANIM_draw_framerange(scene, v2d); | ||||
| /* data */ | /* data */ | ||||
| if (ANIM_animdata_get_context(C, &ac)) { | if (ANIM_animdata_get_context(C, &ac)) { | ||||
| draw_channel_strips(&ac, saction, region); | draw_channel_strips(&ac, saction, region); | ||||
| } | } | ||||
| /* current frame */ | /* current frame */ | ||||
| if (saction->flag & SACTION_DRAWTIME) { | |||||
| cfra_flag |= DRAWCFRA_UNIT_SECONDS; | |||||
| } | |||||
| ANIM_draw_cfra(C, v2d, cfra_flag); | ANIM_draw_cfra(C, v2d, cfra_flag); | ||||
| /* markers */ | /* markers */ | ||||
| UI_view2d_view_orthoSpecial(region, v2d, 1); | UI_view2d_view_orthoSpecial(region, v2d, 1); | ||||
| marker_flag = ((ac.markers && (ac.markers != &ac.scene->markers)) ? DRAW_MARKERS_LOCAL : 0) | | marker_flag = ((ac.markers && (ac.markers != &ac.scene->markers)) ? DRAW_MARKERS_LOCAL : 0) | | ||||
| DRAW_MARKERS_MARGIN; | DRAW_MARKERS_MARGIN; | ||||
| ▲ Show 20 Lines • Show All 704 Lines • Show Last 20 Lines | |||||