Refactored the ansi_parser into a class that can be reused between render calls.
This commit is contained in:
parent
e864e14eab
commit
fd8180bc61
6 changed files with 68 additions and 27 deletions
|
@ -1,7 +1,21 @@
|
|||
#pragma once
|
||||
#include <string_view>
|
||||
#include <SFML/Graphics.hpp>
|
||||
#include <codecvt>
|
||||
|
||||
typedef std::function<void(sf::Color bgcolor, sf::Color color, wchar_t ch)> WriteCB;
|
||||
|
||||
bool parse_ansi(std::wstring_view codes, sf::Color default_fg, sf::Color default_bg, WriteCB write);
|
||||
class ANSIParser {
|
||||
sf::Color $default_fg;
|
||||
sf::Color $default_bg;
|
||||
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> $converter;
|
||||
|
||||
public:
|
||||
ANSIParser(sf::Color default_fg, sf::Color default_bg);
|
||||
|
||||
// disable copying
|
||||
ANSIParser(ANSIParser& ap) = delete;
|
||||
|
||||
bool parse(const std::string &screen, WriteCB write);
|
||||
bool parse(std::wstring_view codes, WriteCB write);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue