Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2009-01-09 18:04:52 +0300
committerTon Roosendaal <ton@blender.org>2009-01-09 18:04:52 +0300
commit2fe5005bbb6b81831eba33f3d6a93c4719b912a0 (patch)
tree9acfe689896396844f5466bafab10cfa91e47ab6 /source/blender/editors/space_view3d/view3d_draw.c
parentc7fa55eebdd74812c5bd993e8ec54ec5b04197f2 (diff)
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.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_draw.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 48fb6d76703..4fc64782fe8 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -51,6 +51,7 @@
#include "BLI_rand.h"
#include "BKE_anim.h"
+#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_image.h"
#include "BKE_ipo.h"
@@ -76,6 +77,7 @@
#include "ED_keyframing.h"
#include "ED_mesh.h"
#include "ED_screen.h"
+#include "ED_space_api.h"
#include "ED_util.h"
#include "ED_types.h"
@@ -1835,10 +1837,11 @@ static CustomDataMask get_viewedit_datamask(bScreen *screen)
return mask;
}
-
-
-void drawview3dspace(bScreen *screen, Scene *scene, ARegion *ar, View3D *v3d)
+void view3d_main_area_draw(const bContext *C, ARegion *ar)
{
+ Scene *scene= CTX_data_scene(C);
+ ScrArea *sa= CTX_wm_area(C);
+ View3D *v3d= sa->spacedata.first; /* XXX get from region */
Scene *sce;
Base *base;
Object *ob;
@@ -1846,7 +1849,7 @@ void drawview3dspace(bScreen *screen, Scene *scene, ARegion *ar, View3D *v3d)
Object *obact = OBACT;
/* from now on all object derived meshes check this */
- v3d->customdata_mask= get_viewedit_datamask(screen);
+ v3d->customdata_mask= get_viewedit_datamask(CTX_wm_screen(C));
/* update all objects, ipos, matrices, displists, etc. Flags set by depgraph or manual,
no layer check here, gets correct flushed */
@@ -1999,12 +2002,7 @@ void drawview3dspace(bScreen *screen, Scene *scene, ARegion *ar, View3D *v3d)
view3d_update_depths(ar, v3d);
}
- if(G.moving) {
-// BIF_drawConstraint();
-// if(obedit || (G.f & G_PARTICLEEDIT))
-// BIF_drawPropCircle(); // only editmode and particles have proportional edit
-// BIF_drawSnap();
- }
+ ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST);
// REEB_draw();