[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19616] trunk/blender/source/blender/gpu/ intern/gpu_draw.c: BGE Text - fix for tab drawing as an @ and not adding white space.

Campbell Barton ideasman42 at gmail.com
Thu Apr 9 12:05:17 CEST 2009


Revision: 19616
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19616
Author:   campbellbarton
Date:     2009-04-09 12:05:17 +0200 (Thu, 09 Apr 2009)

Log Message:
-----------
BGE Text - fix for tab drawing as an @ and not adding white space.
Tab width is always space*4.

Modified Paths:
--------------
    trunk/blender/source/blender/gpu/intern/gpu_draw.c

Modified: trunk/blender/source/blender/gpu/intern/gpu_draw.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_draw.c	2009-04-09 09:50:17 UTC (rev 19615)
+++ trunk/blender/source/blender/gpu/intern/gpu_draw.c	2009-04-09 10:05:17 UTC (rev 19616)
@@ -83,7 +83,9 @@
 		Image* ima;
 		int characters, index, character;
 		float centerx, centery, sizex, sizey, transx, transy, movex, movey, advance;
-
+		float advance_tab;
+		
+		
 		/* multiline */
 		float line_start= 0.0f, line_height; 
 		if (v4)
@@ -107,6 +109,13 @@
 
 		glPushMatrix();
 		
+		/* get the tab width */
+		matrixGlyph((ImBuf *)ima->ibufs.first, ' ', & centerx, &centery,
+			&sizex, &sizey, &transx, &transy, &movex, &movey, &advance);
+		
+		advance_tab= advance * 4; /* tab width could also be an option */
+		
+		
 		for (index = 0; index < characters; index++) {
 			float uv[4][2];
 
@@ -118,6 +127,12 @@
 				line_start = 0.0f;
 				continue;
 			}
+			else if (character=='\t') {
+				glTranslatef(advance_tab, 0.0, 0.0);
+				line_start -= advance_tab; /* so we can go back to the start of the line */
+				continue;
+				
+			}
 			
 			// space starts at offset 1
 			// character = character - ' ' + 1;





More information about the Bf-blender-cvs mailing list