From 2fe5005bbb6b81831eba33f3d6a93c4719b912a0 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 9 Jan 2009 15:04:52 +0000 Subject: 2.5 New: Custom region draw callbacks. For Martin: an example is now in space_view3d/view3d_edit.c On middlemouse rotate view, it draws a small square in center. It works likes this: #include "ED_space_api.h" handle= ED_region_draw_cb_activate(region->type, drawfunc, type) and to stop it: ED_region_draw_cb_exit(region->type, handle) drawfunc is of type (const bContext *C, ARegion *ar) currently it gets called only as type REGION_DRAW_POST, later we can add more (PRE, POST_XRAY, POST_2D, etc). For correct usage, these calls should return leaving view transform unaltered. --- source/blender/blenkernel/intern/screen.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender/blenkernel/intern/screen.c') diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c index b46d4af8887..fd15c69e775 100644 --- a/source/blender/blenkernel/intern/screen.c +++ b/source/blender/blenkernel/intern/screen.c @@ -52,6 +52,11 @@ static ListBase spacetypes= {NULL, NULL}; /* not SpaceType itself */ static void spacetype_free(SpaceType *st) { + ARegionType *art; + + for(art= st->regiontypes.first; art; art= art->next) + BLI_freelistN(&art->drawcalls); + BLI_freelistN(&st->regiontypes); } -- cgit v1.2.3