YSTest: YSLib::UI::BufferedRenderer类 参考

YSTest PreAlpha_b400_20130424 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
Public 成员函数 | Public 属性 | Protected 属性 | 所有成员列表
YSLib::UI::BufferedRenderer类 参考

带缓冲的部件渲染器。 更多...

`#include <yrender.h>`

类 YSLib::UI::BufferedRenderer 继承关系图:
[图例]
YSLib::UI::BufferedRenderer 的协作图:
[图例]

## Public 成员函数

| BufferedRenderer (bool b=false)
| 构造：指定是否忽略上层缓冲区背景。
| BufferedRenderer (const BufferedRenderer &)=default
| BufferedRenderer (BufferedRenderer &&)=default
bool | RequiresRefresh () const
| 判断是否需要刷新。
const Rect & | GetInvalidatedArea () const ynothrow
| 取无效区域。
const Graphics & | GetContext () const ynothrow
| 取图形接口上下文。
void | SetSize (const Size &) override
| 设置缓冲区大小。
BufferedRenderer * | Clone () const override
Rect | CommitInvalidation (const Rect &) override
| 提交无效区域，使之合并至现有无效区域中。
Rect | Paint (IWidget &wgt, PaintEventArgs &&) override
| 按参数绘制。
void | UpdateTo (const PaintContext &) const
| 更新至指定图形设备上下文的指定点。
Rect | Validate (IWidget &wgt, IWidget &sender, const PaintContext &)
| 验证并按需绘制。
Public 成员函数 继承自 YSLib::UI::Renderer
| Renderer ()=default
| Renderer (const Renderer &)=default
| Renderer (Renderer &&)=default
virtual | ~Renderer ()

## Public 属性

Drawing::BitmapBuffer | Buffer
| 显示缓冲区。
bool | IgnoreBackground
| 指定验证时忽略上层缓冲区背景。

## Protected 属性

Rect | rInvalidated
| 无效区域：包含所有新绘制请求的区域（不一定是最小的）。

## 详细描述

带缓冲的部件渲染器。

自从
  build 237

缓冲渲染策略：保存部件渲染状态和有效的图形接口上下文。

在文件 yrender.h 第 90 行定义.

## 构造及析构函数说明

YSLib::UI::BufferedRenderer::BufferedRenderer | ( | bool | b = `false` | ) |

inline

构造：指定是否忽略上层缓冲区背景。

自从
  build 278

在文件 yrender.h 第 108 行定义.

YSLib::UI::BufferedRenderer::BufferedRenderer | ( | const BufferedRenderer & |  | ) |

default

YSLib::UI::BufferedRenderer::BufferedRenderer | ( | BufferedRenderer && |  | ) |

default

## 成员函数说明

BufferedRenderer* YSLib::UI::BufferedRenderer::Clone | ( |  | ) | const

inlineoverridevirtual

重载 YSLib::UI::Renderer .

在文件 yrender.h 第 137 行定义.

Rect BufferedRenderer::CommitInvalidation | ( | const Rect & | r | ) |

overridevirtual

提交无效区域，使之合并至现有无效区域中。

返回
  新的无效区域。

注解
  由于无效区域的形状限制，可能会存在部分有效区域被合并。

重载 YSLib::UI::Renderer .

在文件 yrender.cpp 第 60 行定义.

const Graphics& YSLib::UI::BufferedRenderer::GetContext | ( |  | ) | const

inline

取图形接口上下文。

返回
  缓冲区图形接口上下文。

在文件 yrender.h 第 129 行定义.

const Rect& YSLib::UI::BufferedRenderer::GetInvalidatedArea | ( |  | ) | const

inline

取无效区域。

在文件 yrender.h 第 124 行定义.

Rect BufferedRenderer::Paint | ( | IWidget & | wgt,
|  | PaintEventArgs && | e
| ) |  |

overridevirtual

按参数绘制。

前置条件
  断言： `&e.GetSender().GetRenderer() == this` 。

注解
  在 Validate 后 Update 。
  不调用 wgt.IsVisible() 检查可见性。

自从
  build 263

重载 YSLib::UI::Renderer .

在文件 yrender.cpp 第 66 行定义.

参考 Validate() , 以及 YAssert.

函数调用图:

bool BufferedRenderer::RequiresRefresh | ( |  | ) | const

判断是否需要刷新。

注解
  若无效区域长宽都不为零，则需要刷新。

在文件 yrender.cpp 第 47 行定义.

void BufferedRenderer::SetSize | ( | const Size & | s | ) |

overridevirtual

设置缓冲区大小。

重载 YSLib::UI::Renderer .

在文件 yrender.cpp 第 53 行定义.

参考 YSLib::Drawing::Size::Height , 以及 YSLib::Drawing::Size::Width.

void BufferedRenderer::UpdateTo | ( | const PaintContext & | pc | ) | const

更新至指定图形设备上下文的指定点。

注解
  复制显示缓冲区内容。

在文件 yrender.cpp 第 77 行定义.

参考 YSLib::Drawing::PaintContext::ClipArea,YSLib::Drawing::CopyTo(),YSLib::Drawing::Rect::GetPoint(),YSLib::Drawing::Rect::GetSize(),YSLib::Drawing::PaintContext::Location , 以及 YSLib::Drawing::PaintContext::Target.

函数调用图:

Rect BufferedRenderer::Validate | ( | IWidget & | wgt,
|  | IWidget & | sender,
|  | const PaintContext & | pc
| ) |  |

验证并按需绘制。

返回
  验证中被刷新的区域边界。

自从
  build 293

验证 sender 的指定图形设备上下文的关联的缓冲区， 若存在无效区域则调用 wgt 的 Paint 事件绘制。

在文件 yrender.cpp 第 87 行定义.

参考 YSLib::Drawing::PaintContext::ClipArea,YSLib::Drawing::CopyTo(),YSLib::UI::FetchContainerPtr(),YSLib::UI::GetLocationOf(),YSLib::Drawing::Rect::GetPoint(),YSLib::Drawing::Rect::GetSize(),YSLib::Drawing::Graphics::GetSize(),YSLib::UI::Invalidate(),YSLib::Drawing::PaintContext::Location , 以及 YSLib::Drawing::PaintContext::Target.

函数调用图:

## 类成员变量说明

Drawing::BitmapBuffer YSLib::UI::BufferedRenderer::Buffer

显示缓冲区。

在文件 yrender.h 第 97 行定义.

bool YSLib::UI::BufferedRenderer::IgnoreBackground

指定验证时忽略上层缓冲区背景。

自从
  build 278

在文件 yrender.h 第 102 行定义.

Rect YSLib::UI::BufferedRenderer::rInvalidated

mutableprotected

无效区域：包含所有新绘制请求的区域（不一定是最小的）。

在文件 yrender.h 第 94 行定义.

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

- yrender.h
- yrender.cpp