YSTest  PreAlpha_b400_20130424
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
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 RectGetInvalidatedArea () const ynothrow
 取无效区域。
 
const GraphicsGetContext () const ynothrow
 取图形接口上下文。
 
void SetSize (const Size &) override
 设置缓冲区大小。
 
BufferedRendererClone () 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.h90 行定义.

构造及析构函数说明

YSLib::UI::BufferedRenderer::BufferedRenderer ( bool  b = false)
inline

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

自从
build 278

在文件 yrender.h108 行定义.

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

成员函数说明

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

重载 YSLib::UI::Renderer .

在文件 yrender.h137 行定义.

Rect BufferedRenderer::CommitInvalidation ( const Rect r)
overridevirtual

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

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

重载 YSLib::UI::Renderer .

在文件 yrender.cpp60 行定义.

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

取图形接口上下文。

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

在文件 yrender.h129 行定义.

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

取无效区域。

在文件 yrender.h124 行定义.

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

按参数绘制。

前置条件
断言: &e.GetSender().GetRenderer() == this
注解
在 Validate 后 Update 。
不调用 wgt.IsVisible() 检查可见性。
自从
build 263

重载 YSLib::UI::Renderer .

在文件 yrender.cpp66 行定义.

参考 Validate() , 以及 YAssert.

函数调用图:

bool BufferedRenderer::RequiresRefresh ( ) const

判断是否需要刷新。

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

在文件 yrender.cpp47 行定义.

void BufferedRenderer::SetSize ( const Size s)
overridevirtual

设置缓冲区大小。

重载 YSLib::UI::Renderer .

在文件 yrender.cpp53 行定义.

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

void BufferedRenderer::UpdateTo ( const PaintContext pc) const

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

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

在文件 yrender.cpp77 行定义.

参考 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.cpp87 行定义.

参考 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.h97 行定义.

bool YSLib::UI::BufferedRenderer::IgnoreBackground

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

自从
build 278

在文件 yrender.h102 行定义.

Rect YSLib::UI::BufferedRenderer::rInvalidated
mutableprotected

无效区域:包含所有新绘制请求的区域(不一定是最小的)。

在文件 yrender.h94 行定义.


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