A bit more cleanup of render but kind of stuck on what to do further.
This commit is contained in:
parent
7cb03594a3
commit
c8fa68815b
2 changed files with 24 additions and 22 deletions
45
render.cpp
45
render.cpp
|
@ -122,29 +122,32 @@ void SFMLRender::render_grid(const std::wstring &text, float x, float y) {
|
|||
},
|
||||
|
||||
[&](wchar_t tile) {
|
||||
if(tile == '\n') {
|
||||
// don't bother processing newlines, just skip
|
||||
y += $line_spacing;
|
||||
x = start_x;
|
||||
} else if(tile == L'\r') {
|
||||
return; // skip these, just windows junk
|
||||
} else {
|
||||
$bg_sprite.setPosition({x, y});
|
||||
switch(tile) {
|
||||
case '\r': break; // ignore it
|
||||
case '\n': {
|
||||
// don't bother processing newlines, just skip
|
||||
y += $line_spacing;
|
||||
x = start_x;
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
$bg_sprite.setPosition({x, y});
|
||||
|
||||
// only get a new sprite if the tile changed
|
||||
if(last_tile != tile) {
|
||||
last_tile = tile; // update last tile seen
|
||||
sprite = get_text_sprite(tile);
|
||||
configure_tile(sprite, sp_bounds, $bg_bounds, width_delta, height_delta);
|
||||
// only get a new sprite if the tile changed
|
||||
if(last_tile != tile) {
|
||||
last_tile = tile; // update last tile seen
|
||||
sprite = get_text_sprite(tile);
|
||||
configure_tile(sprite, sp_bounds, $bg_bounds, width_delta, height_delta);
|
||||
}
|
||||
|
||||
sprite.setPosition({x+width_delta, y+height_delta});
|
||||
sprite.setColor(cur_fg);
|
||||
|
||||
$window.draw($bg_sprite);
|
||||
$window.draw(sprite);
|
||||
// next cell
|
||||
x += $base_glyph.advance;
|
||||
}
|
||||
|
||||
sprite.setPosition({x+width_delta, y+height_delta});
|
||||
sprite.setColor(cur_fg);
|
||||
|
||||
$window.draw($bg_sprite);
|
||||
$window.draw(sprite);
|
||||
// next cell
|
||||
x += $base_glyph.advance;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue