[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22945] branches/blender2.5/blender/source /gameengine: text display (debug info) in the game engine working again & other minor changes.

Campbell Barton ideasman42 at gmail.com
Wed Sep 2 05:14:39 CEST 2009


Revision: 22945
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22945
Author:   campbellbarton
Date:     2009-09-02 05:14:38 +0200 (Wed, 02 Sep 2009)

Log Message:
-----------
text display (debug info) in the game engine working again & other minor changes.

Modified Paths:
--------------
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.h
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
    branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.cpp

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp	2009-09-02 01:39:46 UTC (rev 22944)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp	2009-09-02 03:14:38 UTC (rev 22945)
@@ -103,6 +103,8 @@
 
 void DisableForText()
 {
+	glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); /* needed for texture fonts otherwise they render as wireframe */
+
 	if(glIsEnabled(GL_BLEND)) glDisable(GL_BLEND);
 	if(glIsEnabled(GL_ALPHA_TEST)) glDisable(GL_ALPHA_TEST);
 
@@ -135,32 +137,25 @@
 	}
 }
 
-void BL_print_gamedebug_line(char* text, int xco, int yco, int width, int height)
+void BL_print_gamedebug_line(const char* text, int xco, int yco, int width, int height)
 {	
 	/* gl prepping */
 	DisableForText();
-	//glDisable(GL_TEXTURE_2D);
 
 	glMatrixMode(GL_PROJECTION);
 	glPushMatrix();
 	glLoadIdentity();
-	
-	glOrtho(0, width,
-			0, height, 0, 1);
-	
+
+	glOrtho(0, width, 0, height, -100, 100);
+
 	glMatrixMode(GL_MODELVIEW);
 	glPushMatrix();
 	glLoadIdentity();
-	glMatrixMode(GL_TEXTURE);
-	glPushMatrix();
-	glLoadIdentity();
 
 	/* the actual drawing */
 	glColor3ub(255, 255, 255);
-	BLF_draw_default(xco, height-yco, 0.0f, text);
+	BLF_draw_default(xco, height-yco, 0.0f, (char *)text);
 
-	glMatrixMode(GL_TEXTURE);
-	glPopMatrix();
 	glMatrixMode(GL_PROJECTION);
 	glPopMatrix();
 	glMatrixMode(GL_MODELVIEW);
@@ -168,36 +163,29 @@
 	glEnable(GL_DEPTH_TEST);
 }
 
-void BL_print_gamedebug_line_padded(char* text, int xco, int yco, int width, int height)
+void BL_print_gamedebug_line_padded(const char* text, int xco, int yco, int width, int height)
 {
 	/* This is a rather important line :( The gl-mode hasn't been left
 	 * behind quite as neatly as we'd have wanted to. I don't know
 	 * what cause it, though :/ .*/
 	DisableForText();
-	//glDisable(GL_TEXTURE_2D);
 
 	glMatrixMode(GL_PROJECTION);
 	glPushMatrix();
 	glLoadIdentity();
 	
-	glOrtho(0, width,
-			0, height, 0, 1);
+	glOrtho(0, width, 0, height, -100, 100);
 	
 	glMatrixMode(GL_MODELVIEW);
 	glPushMatrix();
 	glLoadIdentity();
-	glMatrixMode(GL_TEXTURE);
-	glPushMatrix();
-	glLoadIdentity();
 
 	/* draw in black first*/
 	glColor3ub(0, 0, 0);
-	BLF_draw_default(xco+1, height-yco-1, 0.0f, text);
+	BLF_draw_default(xco+2, height-yco-2, 0.0f, (char *)text);
 	glColor3ub(255, 255, 255);
-	BLF_draw_default(xco, height-yco, 0.0f, text);
+	BLF_draw_default(xco, height-yco, 0.0f, (char *)text);
 
-	glMatrixMode(GL_TEXTURE);
-	glPopMatrix();
 	glMatrixMode(GL_PROJECTION);
 	glPopMatrix();
 	glMatrixMode(GL_MODELVIEW);

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.h
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.h	2009-09-02 01:39:46 UTC (rev 22944)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.h	2009-09-02 03:14:38 UTC (rev 22945)
@@ -47,8 +47,8 @@
 void	BL_NormalMouse();
 void	BL_WaitMouse();
 
-void BL_print_gamedebug_line(char* text, int xco, int yco, int width, int height);
-void BL_print_gamedebug_line_padded(char* text, int xco, int yco, int width, int height);
+void BL_print_gamedebug_line(const char* text, int xco, int yco, int width, int height);
+void BL_print_gamedebug_line_padded(const char* text, int xco, int yco, int width, int height);
 
 
 

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp	2009-09-02 01:39:46 UTC (rev 22944)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp	2009-09-02 03:14:38 UTC (rev 22945)
@@ -284,12 +284,10 @@
 										 int width,
 										 int height)
 {
-	STR_String tmpstr(text);
-
 	if(mode == RAS_IRenderTools::RAS_TEXT_PADDED)
-		BL_print_gamedebug_line_padded(tmpstr.Ptr(), xco, yco, width, height);
+		BL_print_gamedebug_line_padded(text, xco, yco, width, height);
 	else
-		BL_print_gamedebug_line(tmpstr.Ptr(), xco, yco, width, height);
+		BL_print_gamedebug_line(text, xco, yco, width, height);
 }
 
 /* Render Text renders text into a (series of) polygon, using a texture font,
@@ -390,4 +388,4 @@
 void KX_BlenderRenderTools::Render2DFilters(RAS_ICanvas* canvas)
 {
 	m_filtermanager.RenderFilters(canvas);
-}
\ No newline at end of file
+}

Modified: branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.cpp	2009-09-02 01:39:46 UTC (rev 22944)
+++ branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.cpp	2009-09-02 03:14:38 UTC (rev 22945)
@@ -751,16 +751,17 @@
 				STR_String *var = reinterpret_cast<STR_String*>(ptr);
 				if (PyUnicode_Check(value)) 
 				{
-					char *val = _PyUnicode_AsString(value);
+					Py_ssize_t val_len;
+					char *val = _PyUnicode_AsStringAndSize(value, &val_len);
 					if (attrdef->m_clamp)
 					{
-						if (strlen(val) < attrdef->m_imin)
+						if (val_len < attrdef->m_imin)
 						{
 							// can't increase the length of the string
 							PyErr_Format(PyExc_ValueError, "string length too short for attribute \"%s\"", attrdef->m_name);
 							goto FREE_AND_ERROR;
 						}
-						else if (strlen(val) > attrdef->m_imax)
+						else if (val_len > attrdef->m_imax)
 						{
 							// trim the string
 							char c = val[attrdef->m_imax];
@@ -769,7 +770,7 @@
 							val[attrdef->m_imax] = c;
 							break;
 						}
-					} else if (strlen(val) < attrdef->m_imin || strlen(val) > attrdef->m_imax)
+					} else if (val_len < attrdef->m_imin || val_len > attrdef->m_imax)
 					{
 						PyErr_Format(PyExc_ValueError, "string length out of range for attribute \"%s\"", attrdef->m_name);
 						goto FREE_AND_ERROR;





More information about the Bf-blender-cvs mailing list