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

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 成员函数 | Public 属性 | Protected 属性 | 所有成员列表
YSLib::UI::BufferedRenderer类 参考

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

`#include <YRenderer.h>`

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

## Public 成员函数

| BufferedRenderer (bool={}, unique_ptr< Drawing::IImage >={})
| 构造：指定是否忽略上层缓冲区背景。 更多...
| BufferedRenderer (const BufferedRenderer &)
| DefDeMoveCtor (BufferedRenderer) bool RequiresRefresh() const
| 判断是否需要刷新。 更多...
| DefGetter (const ynothrow, Drawing::IImage &, ImageBuffer,*pImageBuffer) DefGetter(const ynothrow
| 取无效区域。 更多...
const Rect rInvalidated | DefGetterMem (const ynothrow, Graphics, Context, GetImageBuffer()) void SetSize(const Size &) override
| 取图形接口上下文。 更多...
void | SetImageBuffer (unique_ptr< Drawing::IImage >)
| DefClone (const override, BufferedRenderer) Rect CommitInvalidation(const Rect &) override
| 提交无效区域，使之合并至现有无效区域中。 更多...
Rect | Paint (IWidget &wgt, PaintEventArgs &&e) override
| 按参数绘制。 更多...
void | UpdateTo (const PaintContext &) const
| 更新至指定图形设备上下文的指定点。 更多...
Rect | Validate (IWidget &wgt, IWidget &sender, const PaintContext &)
| 验证并按需绘制。 更多...
Public 成员函数 继承自 YSLib::UI::Renderer
| DefDeCtor (Renderer) DefDeCopyMoveCtorAssignment(Renderer) virtual void SetSize(const Size &)
| 设置缓冲区大小。 更多...
| DefClone (const ImplI(ystdex::cloneable), Renderer) virtual PDefH(Rect
| 提交无效区域。 更多...
const Rect &r | ImplRet (r) virtual Rect Paint(IWidget &wgt
| 按参数绘制。 更多...
Public 成员函数 继承自 ystdex::cloneable
| cloneable ()=default
| cloneable (const cloneable &)=default
virtual | ~cloneable ()
| 虚析构：类定义外默认实现。 更多...
virtual cloneable * | clone () const =0

## Public 属性

bool | IgnoreBackground
| 指定验证时忽略上层缓冲区背景。 更多...
const Rect | InvalidatedArea
Public 属性 继承自 YSLib::UI::Renderer
| CommitInvalidation

## Protected 属性

Rect | rInvalidated
| 无效区域：包含所有新绘制请求的区域（不一定是最小的）。 更多...
unique_ptr< Drawing::IImage > | pImageBuffer
| 显示图像缓冲区指针。 更多...

## 详细描述

带缓冲的部件渲染器。

注解
  除了明确可能导致缓冲区失效的操作，缓冲区指针保持不变。

自从
  build 237

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

在文件 YRenderer.h 第 111 行定义.

## 构造及析构函数说明

YSLib::UI::BufferedRenderer::BufferedRenderer | ( | bool | = `{}`,
|  | unique_ptr< Drawing::IImage > | = `{}`
| ) |  |

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

注解
  当指针为空时新建缓冲区。

自从
  build 407

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

在文件 YRenderer.cpp 第 57 行定义.

## 成员函数说明

YSLib::UI::BufferedRenderer::DefClone | ( | const override | ,
|  | BufferedRenderer |
| ) |  | const

override

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

自从
  build 409

返回
  新的无效区域。

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

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

判断是否需要刷新。

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

YSLib::UI::BufferedRenderer::DefGetter | ( | const ynothrow | ,
|  | Drawing::IImage & | ,
|  | ImageBuffer | ,
|  | * | pImageBuffer
| ) |  | const

取无效区域。

自从
  build 406

const Rect rInvalidated YSLib::UI::BufferedRenderer::DefGetterMem | ( | const ynothrow | ,
|  | Graphics | ,
|  | Context | ,
|  | GetImageBuffer() |
| ) |  | const

override

取图形接口上下文。

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

自从
  build 566

设置缓冲区大小。

警告
  可能导致原缓冲区指针失效。

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

override

按参数绘制。

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

注解
  在 Validate 后 Update 。
  不检查部件可见性。

自从
  build 263

在文件 YRenderer.cpp 第 89 行定义.

参考 YSLib::UI::e, YSLib::Drawing::r, UpdateTo() , 以及 Validate().

函数调用图:

void YSLib::UI::BufferedRenderer::SetImageBuffer | ( | unique_ptr< Drawing::IImage > | p | ) |

自从
  build 406

在文件 YRenderer.cpp 第 70 行定义.

参考 pImageBuffer.

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

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

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

在文件 YRenderer.cpp 第 98 行定义.

参考 YSLib::Drawing::bounds, YSLib::Drawing::CopyTo() , 以及 YSLib::Drawing::g.

参考自 Paint().

函数调用图:

这是这个函数的调用关系图:

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

验证并按需绘制。

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

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

自从
  build 293

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

在文件 YRenderer.cpp 第 108 行定义.

参考 YSLib::Drawing::CopyTo(), NPL::dst, YSLib::UI::e, YSLib::Drawing::g, IgnoreBackground, YSLib::UI::Invalidate(), rInvalidated, YSLib::UI::wgt , 以及 YSLib::YAssert().

参考自 Paint().

函数调用图:

这是这个函数的调用关系图:

## 类成员变量说明

bool YSLib::UI::BufferedRenderer::IgnoreBackground

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

自从
  build 278

在文件 YRenderer.h 第 127 行定义.

参考自 Validate().

const Rect YSLib::UI::BufferedRenderer::InvalidatedArea

在文件 YRenderer.h 第 150 行定义.

unique_ptr<Drawing::IImage> YSLib::UI::BufferedRenderer::pImageBuffer

protected

显示图像缓冲区指针。

自从
  build 406

在文件 YRenderer.h 第 120 行定义.

参考自 SetImageBuffer().

Rect YSLib::UI::BufferedRenderer::rInvalidated

mutableprotected

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

在文件 YRenderer.h 第 114 行定义.

参考自 Validate().

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

- YRenderer.h
- YRenderer.cpp