[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41222] trunk/blender/source/blender/ editors: Code refactoring: split main 3d view drawing function into object drawing and

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Oct 23 15:00:41 CEST 2011


Revision: 41222
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41222
Author:   blendix
Date:     2011-10-23 13:00:41 +0000 (Sun, 23 Oct 2011)
Log Message:
-----------
Code refactoring: split main 3d view drawing function into object drawing and
info overlay drawing functions.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/gpencil/drawgpencil.c
    trunk/blender/source/blender/editors/include/ED_gpencil.h
    trunk/blender/source/blender/editors/space_view3d/drawmesh.c
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c

Modified: trunk/blender/source/blender/editors/gpencil/drawgpencil.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/drawgpencil.c	2011-10-23 12:58:19 UTC (rev 41221)
+++ trunk/blender/source/blender/editors/gpencil/drawgpencil.c	2011-10-23 13:00:41 UTC (rev 41222)
@@ -778,7 +778,7 @@
  * Note: this gets called twice - first time with only3d=1 to draw 3d-strokes, second time with only3d=0 for screen-aligned strokes
  */
 
-void draw_gpencil_view3d_ext (Scene *scene, View3D *v3d, ARegion *ar, short only3d)
+void draw_gpencil_view3d (Scene *scene, View3D *v3d, ARegion *ar, short only3d)
 {
 	bGPdata *gpd;
 	int dflag = 0;
@@ -809,12 +809,4 @@
 	gp_draw_data(gpd, rect.xmin, rect.ymin, rect.xmax, rect.ymax, CFRA, dflag);
 }
 
-void draw_gpencil_view3d (bContext *C, short only3d)
-{
-	ARegion *ar= CTX_wm_region(C);
-	View3D *v3d= CTX_wm_view3d(C);
-	Scene *scene= CTX_data_scene(C);
-	draw_gpencil_view3d_ext(scene, v3d, ar, only3d);
-}
-
 /* ************************************************** */

Modified: trunk/blender/source/blender/editors/include/ED_gpencil.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_gpencil.h	2011-10-23 12:58:19 UTC (rev 41221)
+++ trunk/blender/source/blender/editors/include/ED_gpencil.h	2011-10-23 13:00:41 UTC (rev 41222)
@@ -78,8 +78,7 @@
 
 void draw_gpencil_2dimage(struct bContext *C, struct ImBuf *ibuf);
 void draw_gpencil_view2d(struct bContext *C, short onlyv2d);
-void draw_gpencil_view3d(struct bContext *C, short only3d);
-void draw_gpencil_view3d_ext(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, short only3d);
+void draw_gpencil_view3d(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, short only3d);
 
 void gpencil_panel_standard(const struct bContext *C, struct Panel *pa);
 

Modified: trunk/blender/source/blender/editors/space_view3d/drawmesh.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawmesh.c	2011-10-23 12:58:19 UTC (rev 41221)
+++ trunk/blender/source/blender/editors/space_view3d/drawmesh.c	2011-10-23 13:00:41 UTC (rev 41222)
@@ -55,7 +55,6 @@
 #include "BKE_paint.h"
 #include "BKE_property.h"
 
-
 #include "BIF_gl.h"
 #include "BIF_glutil.h"
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2011-10-23 12:58:19 UTC (rev 41221)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2011-10-23 13:00:41 UTC (rev 41222)
@@ -1917,7 +1917,7 @@
 	v3d->zbuf= TRUE;
 	glEnable(GL_DEPTH_TEST);
 
-	draw_gpencil_view3d_ext(scene, v3d, ar, 1);
+	draw_gpencil_view3d(scene, v3d, ar, 1);
 	
 	v3d->zbuf= zbuf;
 
@@ -2151,6 +2151,7 @@
 CustomDataMask ED_view3d_datamask(Scene *scene, View3D *v3d)
 {
 	CustomDataMask mask= 0;
+
 	if((v3d->drawtype == OB_TEXTURE) || ((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX))) {
 		mask |= CD_MASK_MTFACE | CD_MASK_MCOL;
 
@@ -2331,7 +2332,7 @@
 
 	/* must be before xray draw which clears the depth buffer */
 	if(v3d->zbuf) glDisable(GL_DEPTH_TEST);
-	draw_gpencil_view3d_ext(scene, v3d, ar, 1);
+	draw_gpencil_view3d(scene, v3d, ar, 1);
 	if(v3d->zbuf) glEnable(GL_DEPTH_TEST);
 
 	/* transp and X-ray afterdraw stuff */
@@ -2352,7 +2353,7 @@
 	ED_region_pixelspace(ar);
 
 	/* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */
-	draw_gpencil_view3d_ext(scene, v3d, ar, 0);
+	draw_gpencil_view3d(scene, v3d, ar, 0);
 
 	/* freeing the images again here could be done after the operator runs, leaving for now */
 	GPU_free_images_anim();
@@ -2513,16 +2514,14 @@
 }
 
 /* warning: this function has duplicate drawing in ED_view3d_draw_offscreen() */
-void view3d_main_area_draw(const bContext *C, ARegion *ar)
+static void view3d_main_area_draw_objects(const bContext *C, ARegion *ar, const char **grid_unit)
 {
 	Scene *scene= CTX_data_scene(C);
 	View3D *v3d = CTX_wm_view3d(C);
 	RegionView3D *rv3d= CTX_wm_region_view3d(C);
 	Base *base;
-	Object *ob;
 	float backcol[3];
 	unsigned int lay_used;
-	const char *grid_unit= NULL;
 
 	/* shadow buffers, before we setup matrices */
 	if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype))
@@ -2572,7 +2571,7 @@
 
 	if((rv3d->view == RV3D_VIEW_USER) || (rv3d->persp != RV3D_ORTHO)) {
 		if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
-			drawfloor(scene, v3d, &grid_unit);
+			drawfloor(scene, v3d, grid_unit);
 		}
 		if(rv3d->persp==RV3D_CAMOB) {
 			if(scene->world) {
@@ -2589,7 +2588,7 @@
 	else {
 		if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
 			ED_region_pixelspace(ar);
-			drawgrid(&scene->unit, ar, v3d, &grid_unit);
+			drawgrid(&scene->unit, ar, v3d, grid_unit);
 			/* XXX make function? replaces persp(1) */
 			glMatrixMode(GL_PROJECTION);
 			glLoadMatrixf(rv3d->winmat);
@@ -2664,7 +2663,7 @@
 	if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
 		/* must be before xray draw which clears the depth buffer */
 		if(v3d->zbuf) glDisable(GL_DEPTH_TEST);
-		draw_gpencil_view3d((bContext *)C, 1);
+		draw_gpencil_view3d(scene, v3d, ar, 1);
 		if(v3d->zbuf) glEnable(GL_DEPTH_TEST);
 	}
 
@@ -2697,21 +2696,24 @@
 		// TODO: draw something else (but not this) during fly mode
 		draw_rotation_guide(rv3d);
 
-	ED_region_pixelspace(ar);
-	
-//	retopo_paint_view_update(v3d);
-//	retopo_draw_paint_lines();
-	
-	/* Draw particle edit brush XXX (removed) */
-	
+}
 
+static void view3d_main_area_draw_info(const bContext *C, ARegion *ar, const char *grid_unit)
+{
+	Scene *scene= CTX_data_scene(C);
+	View3D *v3d = CTX_wm_view3d(C);
+	RegionView3D *rv3d= CTX_wm_region_view3d(C);
+	bScreen *screen= CTX_wm_screen(C);
+
+	Object *ob;
+
 	if(rv3d->persp==RV3D_CAMOB)
 		drawviewborder(scene, ar, v3d);
 
 	if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
 		/* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */
 	//	if (v3d->flag2 & V3D_DISPGP)
-			draw_gpencil_view3d((bContext *)C, 0);
+			draw_gpencil_view3d(scene, v3d, ar, 0);
 
 		drawcursor(scene, ar, v3d);
 	}
@@ -2721,7 +2723,7 @@
 	else	
 		draw_view_icon(rv3d);
 	
-	if((U.uiflag & USER_SHOW_FPS) && (CTX_wm_screen(C)->animtimer)) {
+	if((U.uiflag & USER_SHOW_FPS) && screen->animtimer) {
 		draw_viewport_fps(scene, ar);
 	}
 	else if(U.uiflag & USER_SHOW_VIEWPORTNAME) {
@@ -2741,8 +2743,18 @@
 	ob= OBACT;
 	if(U.uiflag & USER_DRAWVIEWINFO) 
 		draw_selected_name(scene, ob);
+}
+
+void view3d_main_area_draw(const bContext *C, ARegion *ar)
+{
+	View3D *v3d = CTX_wm_view3d(C);
+	const char *grid_unit= NULL;
+
+	view3d_main_area_draw_objects(C, ar, &grid_unit);
+
+	ED_region_pixelspace(ar);
 	
-	/* XXX here was the blockhandlers for floating panels */
+	view3d_main_area_draw_info(C, ar, grid_unit);
 
 	v3d->flag |= V3D_INVALID_BACKBUF;
 }




More information about the Bf-blender-cvs mailing list