Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_nla/space_nla.c
| Show First 20 Lines • Show All 231 Lines • ▼ Show 20 Lines | |||||
| static void nla_main_region_draw(const bContext *C, ARegion *region) | static void nla_main_region_draw(const bContext *C, ARegion *region) | ||||
| { | { | ||||
| /* draw entirely, view changes should be handled here */ | /* draw entirely, view changes should be handled here */ | ||||
| SpaceNla *snla = CTX_wm_space_nla(C); | SpaceNla *snla = CTX_wm_space_nla(C); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| bAnimContext ac; | bAnimContext ac; | ||||
| View2D *v2d = ®ion->v2d; | View2D *v2d = ®ion->v2d; | ||||
| View2DScrollers *scrollers; | |||||
| short cfra_flag = 0; | short cfra_flag = 0; | ||||
| /* 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); | ||||
| Show All 9 Lines | static void nla_main_region_draw(const bContext *C, ARegion *region) | ||||
| if (ANIM_animdata_get_context(C, &ac)) { | if (ANIM_animdata_get_context(C, &ac)) { | ||||
| /* strips and backdrops */ | /* strips and backdrops */ | ||||
| draw_nla_main_data(&ac, snla, region); | draw_nla_main_data(&ac, snla, region); | ||||
| /* text draw cached, in pixelspace now */ | /* text draw cached, in pixelspace now */ | ||||
| UI_view2d_text_cache_draw(region); | UI_view2d_text_cache_draw(region); | ||||
| } | } | ||||
| UI_view2d_view_ortho(v2d); | |||||
| /* current frame */ | /* current frame */ | ||||
| if (snla->flag & SNLA_DRAWTIME) { | if (snla->flag & SNLA_DRAWTIME) { | ||||
| cfra_flag |= DRAWCFRA_UNIT_SECONDS; | cfra_flag |= DRAWCFRA_UNIT_SECONDS; | ||||
| } | } | ||||
| ANIM_draw_cfra(C, v2d, cfra_flag); | |||||
| /* markers */ | /* markers */ | ||||
| UI_view2d_view_orthoSpecial(region, v2d, 1); | UI_view2d_view_orthoSpecial(region, v2d, 1); | ||||
| int marker_draw_flag = DRAW_MARKERS_MARGIN; | int marker_draw_flag = DRAW_MARKERS_MARGIN; | ||||
| if (snla->flag & SNLA_SHOW_MARKERS) { | if (snla->flag & SNLA_SHOW_MARKERS) { | ||||
| ED_markers_draw(C, marker_draw_flag); | ED_markers_draw(C, marker_draw_flag); | ||||
| } | } | ||||
| /* preview range */ | /* preview range */ | ||||
| UI_view2d_view_ortho(v2d); | UI_view2d_view_ortho(v2d); | ||||
| ANIM_draw_previewrange(C, v2d, 0); | ANIM_draw_previewrange(C, v2d, 0); | ||||
| /* callback */ | /* callback */ | ||||
| UI_view2d_view_ortho(v2d); | UI_view2d_view_ortho(v2d); | ||||
| ED_region_draw_cb_draw(C, region, REGION_DRAW_POST_VIEW); | ED_region_draw_cb_draw(C, region, REGION_DRAW_POST_VIEW); | ||||
| /* reset view matrix */ | /* reset view matrix */ | ||||
| UI_view2d_view_restore(C); | UI_view2d_view_restore(C); | ||||
| ED_time_scrub_draw(region, scene, snla->flag & SNLA_DRAWTIME, true); | ED_time_scrub_draw(region, scene, snla->flag & SNLA_DRAWTIME, true); | ||||
| } | |||||
| static void nla_main_region_draw_display(const bContext *C, ARegion *region) | |||||
| { | |||||
| /* draw entirely, view changes should be handled here */ | |||||
| const SpaceNla *snla = CTX_wm_space_nla(C); | |||||
| const Scene *scene = CTX_data_scene(C); | |||||
| View2D *v2d = ®ion->v2d; | |||||
| View2DScrollers *scrollers; | |||||
| /* scrubbing region */ | |||||
| ED_time_scrub_draw_current_frame(region, scene, snla->flag & SNLA_DRAWTIME, true); | |||||
| /* scrollers */ | /* scrollers */ | ||||
| scrollers = UI_view2d_scrollers_calc(v2d, NULL); | scrollers = UI_view2d_scrollers_calc(v2d, NULL); | ||||
| UI_view2d_scrollers_draw(v2d, scrollers); | UI_view2d_scrollers_draw(v2d, scrollers); | ||||
| UI_view2d_scrollers_free(scrollers); | UI_view2d_scrollers_free(scrollers); | ||||
| } | } | ||||
| /* add handlers, stuff you only do once or on area/region changes */ | /* add handlers, stuff you only do once or on area/region changes */ | ||||
| ▲ Show 20 Lines • Show All 314 Lines • ▼ Show 20 Lines | void ED_spacetype_nla(void) | ||||
| st->keymap = nla_keymap; | st->keymap = nla_keymap; | ||||
| st->id_remap = nla_id_remap; | st->id_remap = nla_id_remap; | ||||
| /* regions: main window */ | /* regions: main window */ | ||||
| art = MEM_callocN(sizeof(ARegionType), "spacetype nla region"); | art = MEM_callocN(sizeof(ARegionType), "spacetype nla region"); | ||||
| art->regionid = RGN_TYPE_WINDOW; | art->regionid = RGN_TYPE_WINDOW; | ||||
| art->init = nla_main_region_init; | art->init = nla_main_region_init; | ||||
| art->draw = nla_main_region_draw; | art->draw = nla_main_region_draw; | ||||
| art->draw_display = nla_main_region_draw_display; | |||||
| art->listener = nla_main_region_listener; | art->listener = nla_main_region_listener; | ||||
| art->message_subscribe = nla_main_region_message_subscribe; | art->message_subscribe = nla_main_region_message_subscribe; | ||||
| art->keymapflag = ED_KEYMAP_VIEW2D | ED_KEYMAP_ANIMATION | ED_KEYMAP_FRAMES; | art->keymapflag = ED_KEYMAP_VIEW2D | ED_KEYMAP_ANIMATION | ED_KEYMAP_FRAMES; | ||||
| BLI_addhead(&st->regiontypes, art); | BLI_addhead(&st->regiontypes, art); | ||||
| /* regions: header */ | /* regions: header */ | ||||
| art = MEM_callocN(sizeof(ARegionType), "spacetype nla region"); | art = MEM_callocN(sizeof(ARegionType), "spacetype nla region"); | ||||
| Show All 37 Lines | |||||