[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