1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-12-23 01:59:43 +01: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,238-textheight,320,240, graphics.getRGB(32,32,32));
graphics.fill_rect(0,239-textheight,320,240, graphics.getRGB(0,0,0)); 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) 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, 238-textheight, 320, 240, graphics.getRGB(32, 32, 32));
graphics.fill_rect(0, 239-textheight, 320, 240, graphics.getRGB(0, 0, 0)); 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; std::string input = key.keybuffer;
if (ed.entframe < 2) if (ed.entframe < 2)
{ {
@ -1640,7 +1640,7 @@ void editorrender(void)
float alpha = graphics.lerp(ed.oldnotedelay, ed.notedelay); 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, 320, 10+textheight, graphics.getRGB(92,92,92));
graphics.fill_rect(0, banner_y+1, 320, 8+textheight, graphics.getRGB(0,0,0)); 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(); graphics.drawfade();

View file

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

View file

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

View file

@ -614,7 +614,7 @@ static void menurender(void)
} }
else if ((unsigned)game.currentmenuoption < loc::languagelist.size()) 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); font::print(PR_CEN, -1, 230, loc::languagelist[game.currentmenuoption].action_hint, tr/2, tg/2, tb/2);
} }
break; break;