Quan canvia de RendererSurface, torna a deixar la que havia, no la de per defecte

This commit is contained in:
2025-03-06 12:09:59 +01:00
parent 60c926a9c9
commit f2bfc970bc
11 changed files with 75 additions and 59 deletions

View File

@@ -147,10 +147,11 @@ std::shared_ptr<Surface> Text::writeToSurface(const std::string &text, int zoom,
auto width = lenght(text, kerning) * zoom;
auto height = box_height_ * zoom;
auto surface = std::make_shared<Surface>(width, height);
auto previuos_renderer = Screen::get()->getRendererSurface();
Screen::get()->setRendererSurface(surface);
surface->clear(stringToColor("transparent"));
write(0, 0, text, kerning);
Screen::get()->setRendererSurface(nullptr);
Screen::get()->setRendererSurface(previuos_renderer);
return surface;
}
@@ -161,10 +162,11 @@ std::shared_ptr<Surface> Text::writeDXToSurface(Uint8 flags, const std::string &
auto width = Text::lenght(text, kerning) + shadow_distance;
auto height = box_height_ + shadow_distance;
auto surface = std::make_shared<Surface>(width, height);
auto previuos_renderer = Screen::get()->getRendererSurface();
Screen::get()->setRendererSurface(surface);
surface->clear(stringToColor("transparent"));
writeDX(flags, 0, 0, text, kerning, textColor, shadow_distance, shadow_color, lenght);
Screen::get()->setRendererSurface(nullptr);
Screen::get()->setRendererSurface(previuos_renderer);
return surface;
}