Renderer now knows how to render panels as grid/text based on how the panel is configured.
This commit is contained in:
parent
f79e7638c0
commit
7cb03594a3
5 changed files with 30 additions and 31 deletions
42
render.cpp
42
render.cpp
|
@ -180,7 +180,7 @@ void SFMLRender::render_text(const std::wstring &text, float start_x, float star
|
|||
$ui_text.setFillColor($default_fg);
|
||||
|
||||
$ansi.parse(text,
|
||||
[&](sf::Color fg, sf::Color bg){
|
||||
[&](sf::Color fg, sf::Color bg) {
|
||||
if(out.size() > 0 ) {
|
||||
auto bounds = draw_chunk($window, $ui_bounds, $ui_text, bgcolor, x, y, out);
|
||||
x += bounds.width;
|
||||
|
@ -216,28 +216,26 @@ void SFMLRender::render_text(const std::wstring &text, float start_x, float star
|
|||
}
|
||||
}
|
||||
|
||||
void SFMLRender::draw_text(Panel &panel) {
|
||||
sf::RectangleShape backing(
|
||||
sf::Vector2f($ui_bounds.width * panel.width + panel.border_px,
|
||||
$ui_bounds.height * panel.height + panel.border_px));
|
||||
void SFMLRender::draw(Panel &panel, float x_offset, float y_offset) {
|
||||
panel.render();
|
||||
const std::wstring &panelout = panel.to_string();
|
||||
|
||||
backing.setFillColor(panel.default_bg);
|
||||
if(panel.grid) {
|
||||
render_grid(panelout, panel.x + x_offset, panel.y + y_offset);
|
||||
} else {
|
||||
sf::RectangleShape backing(
|
||||
sf::Vector2f($ui_bounds.width * panel.width + panel.border_px,
|
||||
$ui_bounds.height * panel.height + panel.border_px));
|
||||
|
||||
if(panel.has_border) {
|
||||
backing.setOutlineColor(panel.border_color);
|
||||
backing.setOutlineThickness(panel.border_px);
|
||||
backing.setFillColor(panel.default_bg);
|
||||
|
||||
if(panel.has_border) {
|
||||
backing.setOutlineColor(panel.border_color);
|
||||
backing.setOutlineThickness(panel.border_px);
|
||||
}
|
||||
|
||||
backing.setPosition(panel.x + x_offset, panel.y + y_offset);
|
||||
$window.draw(backing);
|
||||
render_text(panelout, panel.x, panel.y);
|
||||
}
|
||||
|
||||
backing.setPosition(panel.x, panel.y);
|
||||
$window.draw(backing);
|
||||
|
||||
panel.render();
|
||||
const std::wstring &panelout = panel.to_string();
|
||||
render_text(panelout, panel.x, panel.y);
|
||||
}
|
||||
|
||||
void SFMLRender::draw_grid(Panel &panel, float x, float y) {
|
||||
panel.render();
|
||||
const std::wstring &panelout = panel.to_string();
|
||||
render_grid(panelout, panel.x + x, panel.y + y);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue