From 8731021466634ac93b5f456220fe896ff7d7d614 Mon Sep 17 00:00:00 2001 From: gigaherz Date: Fri, 8 Aug 2008 22:17:03 +0000 Subject: [PATCH] I implemented "tabs" in the string handling, but it's not working right, so I made the statistics use spaces instead. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@157 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 26 +++++++++---------- .../Plugin_VideoOGL/Src/rasterfont.cpp | 17 +++++++++++- .../Plugins/Plugin_VideoOGL/Src/rasterfont.h | 2 +- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index 32ddd29563..46e607f754 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -369,7 +369,7 @@ void Renderer::ProcessMessages() void Renderer::DrawText(const char* pstr, int left, int top, u32 color) { glColor3f(((color>>16) & 0xff)/255.0f, ((color>>8) & 0xff)/255.0f, (color & 0xff)/255.0f); - s_pfont->printStuff(pstr, left * 2.0f / (float)nBackbufferWidth - 1, 1 - top * 2.0f / (float)nBackbufferHeight,0,nBackbufferHeight); + s_pfont->printStuff(pstr, left * 2.0f / (float)nBackbufferWidth - 1, 1 - top * 2.0f / (float)nBackbufferHeight,0,nBackbufferWidth,nBackbufferHeight); } void Renderer::SetAA(int aa) @@ -666,23 +666,23 @@ void Renderer::Swap(const TRectangle& rc) char st[2048]; char *p = st; p+=sprintf(p,"Num textures created: %i\n",stats.numTexturesCreated); - p+=sprintf(p,"Num textures alive: %i\n",stats.numTexturesAlive); + p+=sprintf(p,"Num textures alive: %i\n",stats.numTexturesAlive); p+=sprintf(p,"Num pshaders created: %i\n",stats.numPixelShadersCreated); - p+=sprintf(p,"Num pshaders alive: %i\n",stats.numPixelShadersAlive); + p+=sprintf(p,"Num pshaders alive: %i\n",stats.numPixelShadersAlive); p+=sprintf(p,"Num vshaders created: %i\n",stats.numVertexShadersCreated); - p+=sprintf(p,"Num vshaders alive: %i\n",stats.numVertexShadersAlive); - p+=sprintf(p,"Num dlists called: %i\n",stats.numDListsCalled); - p+=sprintf(p,"Num dlists created: %i\n",stats.numDListsCreated); - p+=sprintf(p,"Num dlists alive: %i\n",stats.numDListsAlive); - p+=sprintf(p,"Num strip joins: %i\n",stats.numJoins); - p+=sprintf(p,"Num primitives: %i\n",stats.thisFrame.numPrims); + p+=sprintf(p,"Num vshaders alive: %i\n",stats.numVertexShadersAlive); + p+=sprintf(p,"Num dlists called: %i\n",stats.numDListsCalled); + p+=sprintf(p,"Num dlists created: %i\n",stats.numDListsCreated); + p+=sprintf(p,"Num dlists alive: %i\n",stats.numDListsAlive); + p+=sprintf(p,"Num strip joins: %i\n",stats.numJoins); + p+=sprintf(p,"Num primitives: %i\n",stats.thisFrame.numPrims); p+=sprintf(p,"Num primitives (DL): %i\n",stats.thisFrame.numDLPrims); - p+=sprintf(p,"Num bad commands: %i%s\n",stats.thisFrame.numBadCommands,stats.thisFrame.numBadCommands?"!!!":""); - p+=sprintf(p,"Num XF loads: %i\n",stats.thisFrame.numXFLoads); + p+=sprintf(p,"Num bad commands: %i%s\n",stats.thisFrame.numBadCommands,stats.thisFrame.numBadCommands?"!!!":""); + p+=sprintf(p,"Num XF loads: %i\n",stats.thisFrame.numXFLoads); p+=sprintf(p,"Num XF loads (DL): %i\n",stats.thisFrame.numXFLoadsInDL); - p+=sprintf(p,"Num CP loads: %i\n",stats.thisFrame.numCPLoads); + p+=sprintf(p,"Num CP loads: %i\n",stats.thisFrame.numCPLoads); p+=sprintf(p,"Num CP loads (DL): %i\n",stats.thisFrame.numCPLoadsInDL); - p+=sprintf(p,"Num BP loads: %i\n",stats.thisFrame.numBPLoads); + p+=sprintf(p,"Num BP loads: %i\n",stats.thisFrame.numBPLoads); p+=sprintf(p,"Num BP loads (DL): %i\n",stats.thisFrame.numBPLoadsInDL); Renderer::DrawText(st, 20, 20, 0xFF00FFFF); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp b/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp index 9bacf0ca09..c0ed756b6c 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.cpp @@ -172,8 +172,9 @@ void RasterFont::printCenteredString(const char *s, double y, int screen_width, printString(s, x, y, z); } -void RasterFont::printStuff(const char *text, double x, double start_y, double z, int bbHeight) +void RasterFont::printStuff(const char *text, double start_x, double start_y, double z, int bbWidth, int bbHeight) { + double x=start_x; double y=start_y; static char temp[1024]; @@ -186,6 +187,7 @@ void RasterFont::printStuff(const char *text, double x, double start_y, double z *t=0; printString(temp,x,y,z); y-=char_height * 2.0f / bbHeight; + x=start_x; t=temp; } else if(*text=='\r') @@ -195,6 +197,19 @@ void RasterFont::printStuff(const char *text, double x, double start_y, double z else if(*text=='\t') { //todo: add tabs every something like 4*char_width + *t=0; + + int cpos = strlen(temp); + + int newpos = cpos+4&(~3); + + + printString(temp,x,y,z); + + x =start_x + (char_width*newpos) * 2.0f / bbWidth; + + t=temp; + *(t++)=' '; } else diff --git a/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.h b/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.h index e18687fe22..a07377b5e7 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/rasterfont.h @@ -35,7 +35,7 @@ public: void printString(const char *s, double x, double y, double z=0.0); void printCenteredString(const char *s, double y, int screen_width, double z=0.0); - void printStuff(const char *text, double x, double y, double z, int bbHeight); + void printStuff(const char *text, double x, double y, double z, int bbWidth, int bbHeight); }; #endif