Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_graph/space_graph.c
| Show First 20 Lines • Show All 192 Lines • ▼ Show 20 Lines | |||||
| static void graph_main_region_draw(const bContext *C, ARegion *ar) | static void graph_main_region_draw(const bContext *C, ARegion *ar) | ||||
| { | { | ||||
| /* draw entirely, view changes should be handled here */ | /* draw entirely, view changes should be handled here */ | ||||
| SpaceGraph *sipo = CTX_wm_space_graph(C); | SpaceGraph *sipo = CTX_wm_space_graph(C); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| bAnimContext ac; | bAnimContext ac; | ||||
| View2D *v2d = &ar->v2d; | View2D *v2d = &ar->v2d; | ||||
| View2DGrid *grid; | |||||
| View2DScrollers *scrollers; | View2DScrollers *scrollers; | ||||
| float col[3]; | float col[3]; | ||||
| short unitx = 0, unity = V2D_UNIT_VALUES, cfra_flag = 0; | short cfra_flag = 0; | ||||
| /* clear and setup matrix */ | /* clear and setup matrix */ | ||||
| UI_GetThemeColor3fv(TH_BACK, col); | UI_GetThemeColor3fv(TH_BACK, col); | ||||
| GPU_clear_color(col[0], col[1], col[2], 0.0); | GPU_clear_color(col[0], col[1], col[2], 0.0); | ||||
| GPU_clear(GPU_COLOR_BIT); | GPU_clear(GPU_COLOR_BIT); | ||||
| UI_view2d_view_ortho(v2d); | UI_view2d_view_ortho(v2d); | ||||
| /* grid */ | /* grid */ | ||||
| unitx = ((sipo->mode == SIPO_MODE_ANIMATION) && (sipo->flag & SIPO_DRAWTIME)) ? | bool display_seconds = (sipo->mode == SIPO_MODE_ANIMATION) && (sipo->flag & SIPO_DRAWTIME); | ||||
| V2D_UNIT_SECONDS : | UI_view2d_draw_lines_x__frames_or_seconds(v2d, scene, display_seconds); | ||||
| V2D_UNIT_FRAMESCALE; | UI_view2d_draw_lines_y__values(v2d); | ||||
| grid = UI_view2d_grid_calc(CTX_data_scene(C), | |||||
| v2d, | |||||
| unitx, | |||||
| V2D_GRID_NOCLAMP, | |||||
| unity, | |||||
| V2D_GRID_NOCLAMP, | |||||
| ar->winx, | |||||
| ar->winy); | |||||
| UI_view2d_grid_draw(v2d, grid, V2D_GRIDLINES_ALL); | |||||
| ED_region_draw_cb_draw(C, ar, REGION_DRAW_PRE_VIEW); | ED_region_draw_cb_draw(C, ar, REGION_DRAW_PRE_VIEW); | ||||
| /* start and end frame (in F-Curve mode only) */ | /* start and end frame (in F-Curve mode only) */ | ||||
| if (sipo->mode != SIPO_MODE_DRIVERS) { | if (sipo->mode != SIPO_MODE_DRIVERS) { | ||||
| ANIM_draw_framerange(scene, v2d); | ANIM_draw_framerange(scene, v2d); | ||||
| } | } | ||||
| /* draw data */ | /* draw data */ | ||||
| if (ANIM_animdata_get_context(C, &ac)) { | if (ANIM_animdata_get_context(C, &ac)) { | ||||
| /* draw ghost curves */ | /* draw ghost curves */ | ||||
| graph_draw_ghost_curves(&ac, sipo, ar); | graph_draw_ghost_curves(&ac, sipo, ar); | ||||
| /* draw curves twice - unselected, then selected, so that the are fewer occlusion problems */ | /* draw curves twice - unselected, then selected, so that the are fewer occlusion problems */ | ||||
| graph_draw_curves(&ac, sipo, ar, grid, 0); | graph_draw_curves(&ac, sipo, ar, 0); | ||||
| graph_draw_curves(&ac, sipo, ar, grid, 1); | graph_draw_curves(&ac, sipo, ar, 1); | ||||
| /* XXX the slow way to set tot rect... but for nice sliders needed (ton) */ | /* XXX the slow way to set tot rect... but for nice sliders needed (ton) */ | ||||
| get_graph_keyframe_extents( | get_graph_keyframe_extents( | ||||
| &ac, &v2d->tot.xmin, &v2d->tot.xmax, &v2d->tot.ymin, &v2d->tot.ymax, false, true); | &ac, &v2d->tot.xmin, &v2d->tot.xmax, &v2d->tot.ymin, &v2d->tot.ymax, false, true); | ||||
| /* extra offset so that these items are visible */ | /* extra offset so that these items are visible */ | ||||
| v2d->tot.xmin -= 10.0f; | v2d->tot.xmin -= 10.0f; | ||||
| v2d->tot.xmax += 10.0f; | v2d->tot.xmax += 10.0f; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | static void graph_main_region_draw(const bContext *C, ARegion *ar) | ||||
| /* scrollers */ | /* scrollers */ | ||||
| // FIXME: args for scrollers depend on the type of data being shown... | // FIXME: args for scrollers depend on the type of data being shown... | ||||
| 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); | ||||
| /* scale numbers */ | /* scale numbers */ | ||||
| UI_view2d_grid_draw_numbers_horizontal(scene, v2d, grid, &v2d->hor, unitx, false); | UI_view2d_draw_scale_x__frames_or_seconds(ar, v2d, &v2d->hor, scene, display_seconds); | ||||
| UI_view2d_grid_draw_numbers_vertical(scene, v2d, grid, &v2d->vert, unity, 0.0f); | UI_view2d_draw_scale_y__values(ar, v2d, &v2d->vert); | ||||
| UI_view2d_grid_free(grid); | |||||
| /* draw current frame number-indicator on top of scrollers */ | /* draw current frame number-indicator on top of scrollers */ | ||||
| if ((sipo->mode != SIPO_MODE_DRIVERS) && ((sipo->flag & SIPO_NODRAWCFRANUM) == 0)) { | if ((sipo->mode != SIPO_MODE_DRIVERS) && ((sipo->flag & SIPO_NODRAWCFRANUM) == 0)) { | ||||
| UI_view2d_view_orthoSpecial(ar, v2d, 1); | UI_view2d_view_orthoSpecial(ar, v2d, 1); | ||||
| ANIM_draw_cfra_number(C, v2d, cfra_flag); | ANIM_draw_cfra_number(C, v2d, cfra_flag); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 566 Lines • Show Last 20 Lines | |||||