[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [10869] trunk/blender/source/blender/src/ drawview.c: Patch from GSR [#6595] Ortho/Persp reporting in the View names

Campbell Barton cbarton at metavr.com
Mon Jun 4 02:35:19 CEST 2007


Revision: 10869
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10869
Author:   campbellbarton
Date:     2007-06-04 02:35:19 +0200 (Mon, 04 Jun 2007)

Log Message:
-----------
Patch from GSR [#6595] Ortho/Persp reporting in the View names

Modified Paths:
--------------
    trunk/blender/source/blender/src/drawview.c

Modified: trunk/blender/source/blender/src/drawview.c
===================================================================
--- trunk/blender/source/blender/src/drawview.c	2007-06-04 00:09:41 UTC (rev 10868)
+++ trunk/blender/source/blender/src/drawview.c	2007-06-04 00:35:19 UTC (rev 10869)
@@ -1481,26 +1481,59 @@
 static void draw_viewport_name(ScrArea *sa)
 {
 	char *name = NULL;
+	char *printable = NULL;
 	
 	switch(G.vd->view) {
 		case 1:
-			name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Back" : "Front";
+			if (G.vd->persp & V3D_PERSP_DO_3D_PERSP)
+				name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Back Persp" : "Front Persp";
+			else
+				name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Back Ortho" : "Front Ortho";
 			break;
 		case 3:
-			name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Left" : "Right";
+			if (G.vd->persp & V3D_PERSP_DO_3D_PERSP)
+				name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Left Persp" : "Right Persp";
+			else
+				name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Left Ortho" : "Right Ortho";
 			break;
 		case 7:
-			name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Bottom" : "Top";
+			if (G.vd->persp & V3D_PERSP_DO_3D_PERSP)
+				name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Bottom Persp" : "Top Persp";
+			else
+				name = (G.vd->flag2 & V3D_OPP_DIRECTION_NAME) ? "Bottom Ortho" : "Top Ortho";
 			break;
 		default:
-			name = G.vd->persp==V3D_PERSP_USE_THE_CAMERA ? "Camera" : "User";
+			if(G.vd->persp==V3D_PERSP_USE_THE_CAMERA) {
+				if (G.vd->camera->type == OB_CAMERA) {
+					Camera *cam;
+					cam = G.vd->camera->data;
+					name = (cam->type != CAM_ORTHO) ? "Camera Persp" : "Camera Ortho";
+				} else {
+					name = "Object as Camera";
+				}
+			} else { 
+				name = (G.vd->persp & V3D_PERSP_DO_3D_PERSP) ? "User Persp" : "User Ortho";
+			}
 	}
 
-	if (name) {
+	/* Easy sync of tests to clean up the string allocation */
+	if (G.vd->localview) {
+		printable = malloc(strlen(name) + strlen(" (Local)_")); /* '_' gives space for '\0' */
+		strcpy(printable, name);
+		strcat(printable, " (Local)");
+	} else {
+		printable = name;
+	}
+
+	if (printable) {
 		BIF_ThemeColor(TH_TEXT_HI);
 		glRasterPos2i(10,  sa->winy-20);
-		BMF_DrawString(G.fonts, name);
+		BMF_DrawString(G.fonts, printable);
 	}
+
+	if (G.vd->localview) {
+		free(printable);
+	}
 }
 
 /* ******************* view3d space & buttons ************** */





More information about the Bf-blender-cvs mailing list