doxygen: prevent GPL license block from being parsed as doxygen comment.
[blender.git] / source / gameengine / BlenderRoutines / KX_BlenderGL.cpp
index 5e1e213..08280cd 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * $Id$
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
 
 #include "KX_BlenderGL.h"
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include "BLF_api.h"
-#ifdef __cplusplus
-}
-#endif
-
 /* 
  * This little block needed for linking to Blender... 
  */
@@ -81,18 +73,10 @@ extern "C" {
 #include "wm_event_system.h"
 #include "wm_cursors.h"
 #include "wm_window.h"
+#include "BLF_api.h"
 }
 
 /* end of blender block */
-
-/* was in drawmesh.c */
-void spack(unsigned int ucol)
-{
-       char *cp= (char *)&ucol;
-        
-       glColor3ub(cp[3], cp[2], cp[1]);
-}
-
 void BL_warp_pointer(wmWindow *win, int x,int y)
 {
        WM_cursor_warp(win, x, y);
@@ -139,10 +123,36 @@ void DisableForText()
        }
 }
 
+/* Print 3D text */
+void BL_print_game_line(int fontid, const char* text, int size, int dpi, float* color, double* mat, float aspect)
+{
+       /* gl prepping */
+       DisableForText();
+
+       /* the actual drawing */
+       glColor4fv(color);
+
+       /* multiply the text matrix by the object matrix */
+       BLF_enable(fontid, BLF_MATRIX|BLF_ASPECT);
+       BLF_matrix(fontid, mat);
+
+       /* aspect is the inverse scale that allows you to increase */
+       /* your resolution without sizing the final text size      */
+       /* the bigger the size, the smaller the aspect             */
+       BLF_aspect(fontid, aspect, aspect, aspect);
+
+       BLF_size(fontid, size, dpi);
+       BLF_position(fontid, 0, 0, 0);
+       BLF_draw(fontid, (char *)text, strlen(text));
+
+       BLF_disable(fontid, BLF_MATRIX|BLF_ASPECT);
+}
+
 void BL_print_gamedebug_line(const char* text, int xco, int yco, int width, int height)
 {      
        /* gl prepping */
        DisableForText();
+       glDisable(GL_DEPTH_TEST);
 
        glMatrixMode(GL_PROJECTION);
        glPushMatrix();
@@ -156,7 +166,7 @@ void BL_print_gamedebug_line(const char* text, int xco, int yco, int width, int
 
        /* the actual drawing */
        glColor3ub(255, 255, 255);
-       BLF_draw_default(xco, height-yco, 0.0f, (char *)text);
+       BLF_draw_default(xco, height-yco, 0.0f, (char *)text, 65535); /* XXX, use real len */
 
        glMatrixMode(GL_PROJECTION);
        glPopMatrix();
@@ -171,6 +181,7 @@ void BL_print_gamedebug_line_padded(const char* text, int xco, int yco, int widt
         * behind quite as neatly as we'd have wanted to. I don't know
         * what cause it, though :/ .*/
        DisableForText();
+       glDisable(GL_DEPTH_TEST);
 
        glMatrixMode(GL_PROJECTION);
        glPushMatrix();
@@ -184,9 +195,9 @@ void BL_print_gamedebug_line_padded(const char* text, int xco, int yco, int widt
 
        /* draw in black first*/
        glColor3ub(0, 0, 0);
-       BLF_draw_default(xco+2, height-yco-2, 0.0f, (char *)text);
+       BLF_draw_default(xco+2, height-yco-2, 0.0f, text, 65535); /* XXX, use real len */
        glColor3ub(255, 255, 255);
-       BLF_draw_default(xco, height-yco, 0.0f, (char *)text);
+       BLF_draw_default(xco, height-yco, 0.0f, text, 65535); /* XXX, use real len */
 
        glMatrixMode(GL_PROJECTION);
        glPopMatrix();