diff options
Diffstat (limited to 'source/gameengine/BlenderRoutines/KX_BlenderGL.cpp')
-rw-r--r-- | source/gameengine/BlenderRoutines/KX_BlenderGL.cpp | 60 |
1 files changed, 55 insertions, 5 deletions
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp index 00836fa8ecb..f24392352b0 100644 --- a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp +++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp @@ -121,8 +121,52 @@ static void DisableForText() } } +void BL_draw_gamedebug_box(int xco, int yco, int width, int height, float percentage) +{ + /* 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 :/ .*/ + glDisable(GL_DEPTH_TEST); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + + glOrtho(0, width, 0, height, -100, 100); + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); + + yco = height - yco; + int barsize = 50; + + /* draw in black first*/ + glColor3ub(0, 0, 0); + glBegin(GL_QUADS); + glVertex2f(xco + 1 + 1 + barsize * percentage, yco - 1 + 10); + glVertex2f(xco + 1, yco - 1 + 10); + glVertex2f(xco + 1, yco - 1); + glVertex2f(xco + 1 + 1 + barsize * percentage, yco - 1); + glEnd(); + + glColor3ub(255, 255, 255); + glBegin(GL_QUADS); + glVertex2f(xco + 1 + barsize * percentage, yco + 10); + glVertex2f(xco, yco + 10); + glVertex2f(xco, yco); + glVertex2f(xco + 1 + barsize * percentage, yco); + glEnd(); + + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + glEnable(GL_DEPTH_TEST); +} + /* Print 3D text */ -void BL_print_game_line(int fontid, const char* text, int size, int dpi, float* color, double* mat, float aspect) +void BL_print_game_line(int fontid, const char *text, int size, int dpi, float *color, double *mat, float aspect) { /* gl prepping */ DisableForText(); @@ -164,7 +208,9 @@ 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((float)xco, (float)(height-yco), 0.0f, (char *)text, 65535); /* XXX, use real len */ + BLF_size(blf_mono_font, 11, 72); + BLF_position(blf_mono_font, (float)xco, (float)(height-yco), 0.0f); + BLF_draw(blf_mono_font, (char *)text, 65535); /* XXX, use real len */ glMatrixMode(GL_PROJECTION); glPopMatrix(); @@ -193,9 +239,13 @@ 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((float)(xco+2), (float)(height-yco-2), 0.0f, text, 65535); /* XXX, use real len */ + BLF_size(blf_mono_font, 11, 72); + BLF_position(blf_mono_font, (float)xco+1, (float)(height-yco-1), 0.0f); + BLF_draw(blf_mono_font, (char *)text, 65535);/* XXX, use real len */ + glColor3ub(255, 255, 255); - BLF_draw_default((float)xco, (float)(height-yco), 0.0f, text, 65535); /* XXX, use real len */ + BLF_position(blf_mono_font, (float)xco, (float)(height-yco), 0.0f); + BLF_draw(blf_mono_font, (char *)text, 65535); glMatrixMode(GL_PROJECTION); glPopMatrix(); @@ -259,7 +309,7 @@ void BL_MakeScreenShot(ScrArea *curarea, const char* filename) ImBuf *ibuf; BLI_path_abs(path, G.main->name); /* BKE_add_image_extension() checks for if extension was already set */ - BKE_add_image_extension(path, R_IMF_IMTYPE_PNG); /* scene->r.im_format.imtype */ + BKE_add_image_extension_from_type(path, R_IMF_IMTYPE_PNG); /* scene->r.im_format.imtype */ ibuf= IMB_allocImBuf(dumpsx, dumpsy, 24, 0); ibuf->rect= dumprect; ibuf->ftype= PNG; |