1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-25 05:58:30 +02:00

Change font::print_wrap text argument from std::string to const char*

We no longer need to pass a std::string object to the print and len
functions - in fact, we often only have a C string that we want to
print or get the visual width of (that C string most often comes from
loc::gettext), and it's a bit wasteful to wrap it in a new std::string
object on every print/len call.

This does mean adding a few more .c_str()s, but there's not many places
where a std::string is being passed to these functions, and we already
use .c_str() sometimes.

-> Commit 1/3: font::print_wrap
   Commit 2/3: font::print
   Commit 3/3: font::len
This commit is contained in:
Dav999-v 2023-03-04 23:29:12 +01:00 committed by Misa Elizabeth Kai
parent 58d21e956b
commit 264b6474be
4 changed files with 8 additions and 9 deletions

View File

@ -1181,7 +1181,7 @@ void editorrender(void)
graphics.fill_rect(0,238-textheight,320,240, graphics.getRGB(32,32,32));
graphics.fill_rect(0,239-textheight,320,240, graphics.getRGB(0,0,0));
font::print_wrap(0, 4, 240-textheight, message, 255,255,255, 8, 312);
font::print_wrap(0, 4, 240-textheight, message.c_str(), 255,255,255, 8, 312);
}
else if(ed.scripteditmod)
{
@ -1283,7 +1283,7 @@ void editorrender(void)
graphics.fill_rect(0, 238-textheight, 320, 240, graphics.getRGB(32, 32, 32));
graphics.fill_rect(0, 239-textheight, 320, 240, graphics.getRGB(0, 0, 0));
font::print_wrap(0, 4, 240-textheight, wrapped, 255, 255, 255, 8, 312);
font::print_wrap(0, 4, 240-textheight, wrapped.c_str(), 255, 255, 255, 8, 312);
std::string input = key.keybuffer;
if (ed.entframe < 2)
{
@ -1640,7 +1640,7 @@ void editorrender(void)
float alpha = graphics.lerp(ed.oldnotedelay, ed.notedelay);
graphics.fill_rect(0, banner_y, 320, 10+textheight, graphics.getRGB(92,92,92));
graphics.fill_rect(0, banner_y+1, 320, 8+textheight, graphics.getRGB(0,0,0));
font::print_wrap(PR_CEN, -1,banner_y+5, wrapped, 196-((45.0f-alpha)*4), 196-((45.0f-alpha)*4), 196-((45.0f-alpha)*4));
font::print_wrap(PR_CEN, -1,banner_y+5, wrapped.c_str(), 196-((45.0f-alpha)*4), 196-((45.0f-alpha)*4), 196-((45.0f-alpha)*4));
}
graphics.drawfade();

View File

@ -1261,7 +1261,7 @@ int print_wrap(
uint32_t flags,
const int x,
int y,
const std::string& text,
const char* text,
const uint8_t r,
const uint8_t g,
const uint8_t b,
@ -1292,7 +1292,6 @@ int print_wrap(
flags &= ~PR_BOR;
}
const char* str = text.c_str();
// This could fit 64 non-BMP characters onscreen, should be plenty
char buffer[256];
size_t start = 0;
@ -1301,7 +1300,7 @@ int print_wrap(
{
// Correct for the height of the resulting print.
size_t len = 0;
while (next_wrap(pf.font_sel, &start, &len, &str[start], maxwidth))
while (next_wrap(pf.font_sel, &start, &len, &text[start], maxwidth))
{
y += linespacing;
}
@ -1309,7 +1308,7 @@ int print_wrap(
start = 0;
}
while (next_wrap_buf(pf.font_sel, buffer, sizeof(buffer), &start, str, maxwidth))
while (next_wrap_buf(pf.font_sel, buffer, sizeof(buffer), &start, text, maxwidth))
{
print(flags, x, y, buffer, r, g, b);

View File

@ -96,7 +96,7 @@ int print_wrap(
uint32_t flags,
int x,
int y,
const std::string& text,
const char* text,
uint8_t r, uint8_t g, uint8_t b,
int linespacing = -1,
int maxwidth = -1

View File

@ -614,7 +614,7 @@ static void menurender(void)
}
else if ((unsigned)game.currentmenuoption < loc::languagelist.size())
{
font::print_wrap(PR_CEN, -1, 8, loc::languagelist[game.currentmenuoption].credit, tr/2, tg/2, tb/2);
font::print_wrap(PR_CEN, -1, 8, loc::languagelist[game.currentmenuoption].credit.c_str(), tr/2, tg/2, tb/2);
font::print(PR_CEN, -1, 230, loc::languagelist[game.currentmenuoption].action_hint, tr/2, tg/2, tb/2);
}
break;