29 auto setup(dius::SyncFile& output,
Feature features) -> di::Result<>;
30 auto cleanup(dius::SyncFile& output) -> di::Result<>;
32 void start(Size
const& size);
33 auto finish(dius::SyncFile& output, RenderedCursor
const& cursor) -> di::Result<>;
35 void put_text(di::StringView text, u32 row, u32 col, GraphicsRendition
const& rendition = {},
36 di::Optional<terminal::Hyperlink const&> hyperlink = {});
37 void put_text(c32 text, u32 row, u32 col, GraphicsRendition
const& rendition = {},
38 di::Optional<terminal::Hyperlink const&> hyperlink = {});
40 void put_cell(di::StringView text, u32 row, u32 col, GraphicsRendition
const& rendition,
41 di::Optional<terminal::Hyperlink const&> hyperlink, terminal::MultiCellInfo
const& multi_cell_info,
42 bool explicitly_sized,
bool complex_grapheme_cluster);
44 void clear_row(u32 row, GraphicsRendition
const& graphics_rendition = {},
45 di::Optional<terminal::Hyperlink const&> hyperlink = {});
47 void set_bound(u32 row, u32 col, u32 width, u32 height);
50 auto size() const -> Size {
return m_current_screen.size(); }
52 terminal::Screen m_current_screen;
53 terminal::Screen m_desired_screen;
54 di::Optional<RenderedCursor> m_current_cursor;
55 di::Vector<di::String> m_cleanup;
58 u32 m_row_offset { 0 };
59 u32 m_col_offset { 0 };
60 u32 m_bound_width { 0 };
61 u32 m_bound_height { 0 };
62 bool m_size_changed {
true };
void put_cell(di::StringView text, u32 row, u32 col, GraphicsRendition const &rendition, di::Optional< terminal::Hyperlink const & > hyperlink, terminal::MultiCellInfo const &multi_cell_info, bool explicitly_sized, bool complex_grapheme_cluster)
Definition renderer.cpp:568
void put_text(di::StringView text, u32 row, u32 col, GraphicsRendition const &rendition={}, di::Optional< terminal::Hyperlink const & > hyperlink={})
Definition renderer.cpp:540
void clear_row(u32 row, GraphicsRendition const &graphics_rendition={}, di::Optional< terminal::Hyperlink const & > hyperlink={})
Definition renderer.cpp:593