YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
YSLib::UI::BufferedRenderer类 参考

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

#include <yrender.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, const 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 &&) override
 按参数绘制。 更多...
 
void UpdateTo (const PaintContext &) const
 更新至指定图形设备上下文的指定点。 更多...
 
Rect Validate (IWidget &wgt, IWidget &sender, const PaintContext &)
 验证并按需绘制。 更多...
 
- Public 成员函数 继承自 YSLib::UI::Renderer
 DefDeCtor (Renderer) DefDeCopyCtor(Renderer) DefDeMoveCtor(Renderer) virtual DefDeDtor(Renderer) virtual void SetSize(const Size &)
 设置缓冲区大小。 更多...
 
virtual DefClone (const, Renderer) virtual Rect CommitInvalidation(const Rect &r)
 提交无效区域。 更多...
 

Public 属性

bool IgnoreBackground
 指定验证时忽略上层缓冲区背景。 更多...
 
const Rect InvalidatedArea
 

Protected 属性

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

详细描述

带缓冲的部件渲染器。

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

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

在文件 yrender.h94 行定义.

构造及析构函数说明

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

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

注解
当指针为空时新建缓冲区。
自从
build 407

在文件 yrender.cpp49 行定义.

YSLib::UI::BufferedRenderer::BufferedRenderer ( const BufferedRenderer r)

在文件 yrender.cpp54 行定义.

成员函数说明

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  ,
const Graphics ,
Context  ,
GetImageBuffer()   
) const
override

取图形接口上下文。

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

设置缓冲区大小。

警告
可能导致原缓冲区指针失效。
Rect YSLib::UI::BufferedRenderer::Paint ( IWidget &  wgt,
PaintEventArgs &&  e 
)
overridevirtual

按参数绘制。

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

重载 YSLib::UI::Renderer .

在文件 yrender.cpp86 行定义.

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

函数调用图:

void YSLib::UI::BufferedRenderer::SetImageBuffer ( unique_ptr< Drawing::IImage >  p)
自从
build 406

在文件 yrender.cpp67 行定义.

参考 pImageBuffer.

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

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

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

在文件 yrender.cpp97 行定义.

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

参考自 Paint().

函数调用图:

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

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

验证并按需绘制。

返回
验证中被刷新的区域边界。
自从
build 293

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

在文件 yrender.cpp107 行定义.

参考 YSLib::Drawing::CopyTo(), YSLib::Drawing::g, YSLib::UI::GetLocationOf, IgnoreBackground, YSLib::UI::Invalidate(), platform_ex::Windows::l, rInvalidated , 以及 YSLib::UI::wgt.

参考自 Paint().

函数调用图:

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

类成员变量说明

bool YSLib::UI::BufferedRenderer::IgnoreBackground

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

自从
build 278

在文件 yrender.h110 行定义.

参考自 Validate().

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

在文件 yrender.h133 行定义.

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

显示图像缓冲区指针。

自从
build 406

在文件 yrender.h103 行定义.

参考自 SetImageBuffer().

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

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

在文件 yrender.h97 行定义.

参考自 Validate().


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