NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::tui::renderer类 参考

元素树渲染器 更多...

#include <renderer.hpp>

Public 成员函数

 renderer (screen &target, const theme &t, int term_w, int term_h)
 构造函数
void render (const element &tree, const vector< layout_rect > &layout, bool has_focus)
 渲染元素树
void set_term_size (int w, int h)
 更新终端尺寸
const vector< scrollbar_hit > & scrollbar_hits () const noexcept
 获取本次渲染收集的滚动条命中信息
void render_text_block (int x, int y, int w, int h, const string &text, const tui::style &style, style::wrap_mode wm, int *out_end_x=nullptr, int *out_end_y=nullptr)
 渲染文本块
void apply_border (int x, int y, int w, int h, enum style::border border, const _NEFORCE color &c)
 绘制边框
void apply_style_to_cell (cell &cell, const style &style)
 将样式字段应用到 cell
void render_button (int x, int y, int w, int h, const string &label, const style &style, const tui::theme &theme, style::variant variant)
 渲染按钮
void render_checkbox (int x, int y, int w, int h, const string &label, bool checked, const style &style)
 渲染复选框
void render_separator (int x, int y, int w)
 渲染分隔线
void apply_clear (int x, int y, int w, int h)
 清除指定区域
void apply_text (int x, int y, const string &text, const style &style)
 写入文本
void apply_text (int x, int y, const string &text, const style &style, int max_x)
 写入文本
void clear_element_area (const element &el, const vector< layout_rect > &layout, int &idx)
 清除元素树中所有叶子元素区域

详细描述

元素树渲染器

将元素树与布局结果渲染到 screen 帧缓冲区。 负责文本换行、边框绘制、样式应用、滚动条绘制等。

在文件 renderer.hpp51 行定义.

构造及析构函数说明

◆ renderer()

neforce::tui::renderer::renderer ( screen & target,
const theme & t,
int term_w,
int term_h )

构造函数

参数
target渲染目标 screen
t主题
term_w终端宽度
term_h终端高度

成员函数说明

◆ apply_border()

void neforce::tui::renderer::apply_border ( int x,
int y,
int w,
int h,
enum style::border border,
const _NEFORCE color & c )

绘制边框

参数
x起始列
y起始行
w宽度
h高度
border边框样式
c边框颜色

引用了 neforce::tui::border() , 以及 neforce::tui::color().

◆ apply_clear()

void neforce::tui::renderer::apply_clear ( int x,
int y,
int w,
int h )

清除指定区域

参数
x起始列
y起始行
w宽度
h高度

◆ apply_style_to_cell()

void neforce::tui::renderer::apply_style_to_cell ( cell & cell,
const style & style )

将样式字段应用到 cell

参数
cell目标 cell
style样式

◆ apply_text() [1/2]

void neforce::tui::renderer::apply_text ( int x,
int y,
const string & text,
const style & style )

写入文本

参数
x起始列
y
text文本
style样式

◆ apply_text() [2/2]

void neforce::tui::renderer::apply_text ( int x,
int y,
const string & text,
const style & style,
int max_x )

写入文本

参数
x起始列
y
text文本
style样式
max_x最大列(超出则截断)

◆ clear_element_area()

void neforce::tui::renderer::clear_element_area ( const element & el,
const vector< layout_rect > & layout,
int & idx )

清除元素树中所有叶子元素区域

参数
el元素树根
layout布局结果
idx当前布局索引

◆ render()

void neforce::tui::renderer::render ( const element & tree,
const vector< layout_rect > & layout,
bool has_focus )

渲染元素树

参数
tree元素树根节点
layout布局结果
has_focus当前是否有焦点组件

◆ render_button()

void neforce::tui::renderer::render_button ( int x,
int y,
int w,
int h,
const string & label,
const style & style,
const tui::theme & theme,
style::variant variant )

渲染按钮

参数
x起始列
y起始行
w宽度
h高度
label按钮文本
style样式
theme主题
variant按钮变体

◆ render_checkbox()

void neforce::tui::renderer::render_checkbox ( int x,
int y,
int w,
int h,
const string & label,
bool checked,
const style & style )

渲染复选框

参数
x起始列
y起始行
w宽度
h高度
label标签文本
checked是否选中
style样式

◆ render_separator()

void neforce::tui::renderer::render_separator ( int x,
int y,
int w )

渲染分隔线

参数
x起始列
y
w宽度

◆ render_text_block()

void neforce::tui::renderer::render_text_block ( int x,
int y,
int w,
int h,
const string & text,
const tui::style & style,
style::wrap_mode wm,
int * out_end_x = nullptr,
int * out_end_y = nullptr )

渲染文本块

参数
x起始列
y起始行
w宽度约束
h高度约束
text文本内容
style样式
wm换行模式
out_end_x输出结束列
out_end_y输出结束行

◆ scrollbar_hits()

const vector< scrollbar_hit > & neforce::tui::renderer::scrollbar_hits ( ) const
inlinenodiscardnoexcept

获取本次渲染收集的滚动条命中信息

返回
滚动条命中列表

在文件 renderer.hpp84 行定义.

◆ set_term_size()

void neforce::tui::renderer::set_term_size ( int w,
int h )
inline

更新终端尺寸

参数
w新宽度
h新高度

在文件 renderer.hpp75 行定义.


该类的文档由以下文件生成: