YSTest: YSLib::Drawing 命名空间参考

YSTest PreAlpha_b500_20140530 The YSLib Test Project

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

- 命名空间列表
- 命名空间成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
命名空间 | 类 | 类型定义 | 枚举 | 函数 | 变量
YSLib::Drawing 命名空间参考

图形处理。 更多...

## 命名空间

| Shaders
| 着色器命名空间。

## 类

class | BadImageAlloc
| 图像资源分配失败异常：表示存储等资源不足导致无法创建图像。 更多...
class | BasicImage
| 使用 Graphics 定义的基本图像。 更多...
struct | BlitLineLoop
| 贴图扫描点循环操作。 更多...
struct | BlitScannerLoop
| 贴图扫描线循环操作。 更多...
class | CharBitmap
| 字符位图。 更多...
class | CompactPixmap
| 标准矩形像素图缓冲区。 更多...
struct | CopyLine
| 扫描线：按指定扫描顺序复制一行像素。 更多...
struct | CopyLine< false >
class | CustomTextRenderer
| 定制文本渲染器：使用自定义的渲染函数替代的 TextRenderer 。 更多...
class | EmptyTextRenderer
| 空文本渲染器。 更多...
class | Font
| 字体：字模，包含字型、样式和大小。 更多...
class | FontCache
| 字体缓存。 更多...
class | FontException
| 字体异常。 更多...
class | FontFamily
| 字型家族 (Typeface Family) 标识。 更多...
class | GBinaryGroup
| 屏幕二元组。 更多...
class | Graphics
| 二维图形接口上下文。 更多...
class | GTextRendererBase
| 文本渲染器静态多态基类模板。 更多...
class | HBitmap
| 位图句柄：指向位图数据。 更多...
class | HMultiBitmap
| 多页面位图句柄：指向多页面位图数据。 更多...
struct | hsl_t
| 按指定颜色或分量选取彩色或灰度色。 更多...
class | ImageMemory
| 图像内存对象；保存图像内容的数据缓冲对象。 更多...
class | MultiBitmapData
class | NativeFontSize
| 本机字体大小。 更多...
struct | Padding
| 空白样式。 更多...
class | PenStyle
| 笔样式：字体和笔颜色。 更多...
struct | PixelFiller
| 像素填充器。 更多...
class | Rect
| 屏幕标准矩形：表示屏幕矩形区域。 更多...
struct | RectTransformer
| 标准矩形转换器。 更多...
struct | SequenceTransformer
| 序列转换器。 更多...
class | Size
| 屏幕区域大小。 更多...
class | TextRegion
| 文本区域。 更多...
class | TextRenderer
| 文本渲染器：简单实现。 更多...
class | TextState
| 文本状态。 更多...
class | Typeface
| 字型标识。 更多...
class | UnknownImageFormat
| 未知图像格式异常：表示请求的操作涉及的图像格式因为不明确而不受库的支持。 更多...
class | UnsupportedImageFormat
| 未被支持的图像格式异常：表示请求的操作涉及的图像格式不受库的支持。 更多...
struct | VerticalLineTransfomer
| 竖直线转换器。 更多...

## 类型定义

using | FontSize = u8
| 字体大小。 更多...
using | FontPath = std::string
| 字体文件路径。 更多...
using | FamilyName = std::string
| 字型家族名称。 更多...
using | StyleName = std::string
| 字型样式名称。 更多...
using | BitPerPixel = u8
using | Point = GBinaryGroup< SPos >
| 屏幕二维点（直角坐标表示）。 更多...
using | Vec = GBinaryGroup< SPos >
| 屏幕二维向量（直角坐标表示）。 更多...
using | IteratorPair = ystdex::pair_iterator< ConstBitmapPtr, const AlphaType * >
| Alpha 光栅化源迭代器对。 更多...

## 枚举

enum | FontStyle : u8 { FontStyle::Regular = 0, FontStyle::Bold = 1, FontStyle::Italic = 2, FontStyle::Underline = 4, FontStyle::Strikeout = 8 }
| 字体样式。 更多...
enum | ImageFormat : int { ImageFormat::Unknown = -1, ImageFormat::BMP = 0, ImageFormat::ICO = 1, ImageFormat::JPEG = 2, ImageFormat::PNG = 13, ImageFormat::GIF = 25 }
| 图像格式。 更多...

enum

ImageDecoderFlags : int {
ImageDecoderFlags::Default = 0, ImageDecoderFlags::GIF_Load256 = 1, ImageDecoderFlags::GIF_Playback = 2, ImageDecoderFlags::ICO_MakeAlpha = 1,
ImageDecoderFlags::JPEG_Fast = 0x0001, ImageDecoderFlags::JPEG_Accurate = 0x0002, ImageDecoderFlags::JPEG_CMYK = 0x0004, ImageDecoderFlags::JPEG_EXIFRotate = 0x0008,
ImageDecoderFlags::JPEG_GreyScale = 0x0010, ImageDecoderFlags::JPEG_QualitySuperb = 0x80, ImageDecoderFlags::JPEG_QualityGood = 0x0100, ImageDecoderFlags::JPEG_QualityNormal = 0x0200,
ImageDecoderFlags::JPEG_QualityAverage = 0x0400, ImageDecoderFlags::JPEG_QualityBad = 0x0800, ImageDecoderFlags::JPEG_Progressive = 0x2000, ImageDecoderFlags::JPEG_Subsampling_411 = 0x1000,
ImageDecoderFlags::JPEG_Subsampling_420 = 0x4000, ImageDecoderFlags::JPEG_Subsampling_422 = 0x8000, ImageDecoderFlags::JPEG_Subsampling_444 = 0x10000, ImageDecoderFlags::JPEG_Optimize = 0x20000,
ImageDecoderFlags::JPEG_Baseline = 0x40000
}

| 图像解码器标识。 更多...
enum | Orientation { Horizontal = 0, Vertical = 1 }
| 二元方向。 更多...

## 函数

Color | GenerateRandomColor ()
template<typename _tOut , typename _tGen >
void | ScrDraw (_tOut buf, _tGen &&f)
| 全屏幕描点。 更多...
shared_ptr< Image > | CreateSharedScreenImage (ConstBitmapPtr p)
| 新建屏幕图像。 更多...
template<typename _tPixel >
_tPixel * | CreateRawBitmap (const _tPixel *s, size_t n)
| 使用 new 分配空间并复制无压缩位图。 更多...
YF_API const Typeface & | FetchDefaultTypeface ()
| 取默认字型引用。 更多...
bool | operator!= (const HMultiBitmap::iterator &x, const HMultiBitmap::iterator &y) ynothrow
template<typename _type >
yconstfn bool | operator== (const GBinaryGroup< _type > &a, const GBinaryGroup< _type > &b) ynothrow
| 比较：屏幕二元组相等关系。 更多...
template<typename _type >
yconstfn bool | operator!= (const GBinaryGroup< _type > &a, const GBinaryGroup< _type > &b) ynothrow
| 比较：屏幕二元组不等关系。 更多...
template<typename _type >
yconstfn GBinaryGroup< _type > | operator+ (const GBinaryGroup< _type > &a, const GBinaryGroup< _type > &b) ynothrow
| 加法：屏幕二元组。 更多...
template<typename _type >
yconstfn GBinaryGroup< _type > | operator- (const GBinaryGroup< _type > &a, const GBinaryGroup< _type > &b) ynothrow
| 减法：屏幕二元组。 更多...
template<typename _type , typename _tScalar >
yconstfn GBinaryGroup< _type > | operator* (const GBinaryGroup< _type > &val, _tScalar l) ynothrow
| 数乘：屏幕二元组。 更多...
yconstfn bool | operator== (const Size &a, const Size &b) ynothrow
| 比较：屏幕区域大小相等关系。 更多...
yconstfn bool | operator!= (const Size &a, const Size &b) ynothrow
| 比较：屏幕区域大小不等关系。 更多...
template<typename _type >
yconstfn GBinaryGroup< _type > | operator+ (GBinaryGroup< _type > val, const Size &s) ynothrow
| 加法：使用屏幕二元组和屏幕区域大小分量对应相加构造屏幕二元组。 更多...
template<class _tBinary >
yconstfn _tBinary | Transpose (_tBinary &obj) ynothrow
| 二元对象转置。 更多...
yconstfn auto | GetAreaOf (const Size &s) ynothrow-> decltype(s.Width *s.Height)
| 取面积。 更多...
| DeclDerivedI (YF_API, IImage, ystdex::cloneable) DeclIEntry(const Graphics &GetContext() const ynothrow) DeclIEntry(void SetSize(const Size &)) DeclIEntry(IImage *clone() const override) EndDeclstruct YF_API PaintContext
| 图像接口。 更多...
template<typename _tOut , typename _tIn , typename _fBlitScanner >
void | BlitGlyphLines (_fBlitScanner scanner, _tOut dst, _tIn src, const Size &ss, const PaintContext &pc, bool neg_pitch)
| 字符按扫描线块传输。 更多...
template<typename _tOut , typename _tIn , typename _fPixelShader >
void | BlitGlyphPixels (_fPixelShader blit, _tOut dst, _tIn src, const Size &ss, const PaintContext &pc, bool neg_pitch)
| 字符按像素块传输。 更多...
YF_API void | RenderChar (PaintContext &&pc, Color, bool, CharBitmap::BufferType, CharBitmap::FormatType, const Size &)
| 渲染单个字符。 更多...
YF_API void | RenderCharAlpha (PaintContext &&pc, Color, bool, CharBitmap::BufferType, CharBitmap::FormatType, const Size &, AlphaType *)
| 渲染带 Alpha 缓冲的单个字符。 更多...
template<class _tRenderer >
SDst | GetEndOfLinePositionOf (const _tRenderer &r)
| 取文本渲染器的行末位置（横坐标）。 更多...
template<class _tRenderer >
void | PrintChar (_tRenderer &r, ucs4_t c)
| 打印单个可打印字符。 更多...
YF_API u8 | PutCharBase (TextState &, SDst, ucs4_t)
| 使用指定的文本状态和行末位置（横坐标）按需打印换行并判断是否需要渲染单个字符。 更多...
template<class _tRenderer >
u8 | PutChar (_tRenderer &r, ucs4_t c)
| 打印单个字符。 更多...
yconstexpr Padding | DefaultMargin (2, 2, 2, 2)
| 默认边距。 更多...
YF_API SDst | FetchResizedBottomMargin (const TextState &, SDst)
| 取指定文本状态和文本区域高调整的底边距。 更多...
YF_API u16 | FetchResizedLineN (const TextState &ts, SDst)
| 取指定文本状态和文本区域高所能显示的最大文本行数。 更多...
YF_API SPos | FetchLastLineBasePosition (const TextState &, SDst)
| 取指定文本状态在指定高的区域中表示的最底行的基线位置（纵坐标）。 更多...
SDst | FetchResizedBottomMargin (const TextRegion &tr)
| 取按字体高度和行距调整文本区域的底边距。 更多...
SDst | AdjustBottomMarginOf (TextRegion &tr)
| 按字体高度和行距调整文本区域的底边距。 更多...
YF_API SDst | FetchCharWidth (const Font &, ucs4_t)
| 取指定的字符使用指定字体的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst | FetchStringWidth (const Font &fnt, _tIter s)
| 取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst | FetchStringWidth (const Font &fnt, _tIter s, size_t n, ucs4_t c={})
| 取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst | FetchStringWidth (const Font &fnt, _tIter s, _tIter g, ucs4_t c={})
| 取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
SDst | FetchStringWidth (const Font &fnt, const _tString &str)
| 取单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
SDst | FetchStringWidth (const Font &fnt, const _tString &str, size_t n)
| 取单行字符串前不超过 n 个字符在字体指定、无边界限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst | FetchStringWidth (TextState &ts, SDst h, _tIter s)
| 取迭代器指定的单行字符串在指定文本状态和高度限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst | FetchStringWidth (TextState &ts, SDst h, _tIter s, _tIter g, ucs4_t c={})
| 取迭代器指定的单行字符串在指定文本状态和高度限制时的显示宽度。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
SDst | FetchStringWidth (TextState &ts, SDst h, const _tString &str)
| 取单行字符串在指定文本状态和高度限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst | FetchMaxTextWidth (const Font &font, _tIter first, _tIter last)
| 取指定字体显示的迭代器范围中的文本的最大宽度。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintLine (_tRenderer &r, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintLine (_tRenderer &r, _tIter s, _tIter g, ucs4_t c={})
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PrintLine (_tRenderer &r, const _tString &str)
| 打印字符串，直至行尾或字符串结束。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutLine (_tRenderer &r, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutLine (_tRenderer &r, _tIter s, _tIter g, ucs4_t c={})
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PutLine (_tRenderer &r, const _tString &str)
| 打印字符串，直至行尾或字符串结束。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintString (_tRenderer &r, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintString (_tRenderer &r, _tIter s, _tIter g, ucs4_t c={})
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PrintString (_tRenderer &r, const _tString &str)
| 打印字符串，直至区域末尾或字符串结束。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutString (_tRenderer &r, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutString (_tRenderer &r, _tIter s, _tIter g, ucs4_t c={})
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PutString (_tRenderer &r, const _tString &str)
| 打印字符串，直至区域末尾或字符串结束。 更多...
template<typename... _tParams>
void | PutText (bool multi, _tParams &&...args)
| 打印文本。 更多...
YF_API void | DrawClippedText (const Graphics &g, const Rect &mask, TextState &ts, const String &str, bool line_wrap)
| 绘制剪切区域的文本。 更多...
YF_API void | DrawClippedText (const Graphics &g, const Rect &mask, const Rect &bounds, const String &str, const Padding &m, Color, bool line_wrap, const Font &fnt={})
| 绘制剪切区域的文本。 更多...
YF_API void | DrawText (const Graphics &g, TextState &ts, const String &str, bool line_wrap)
| 绘制文本。 更多...
YF_API void | DrawText (const Graphics &g, const Rect &bounds, const String &str, const Padding &m, Color, bool line_wrap, const Font &fnt={})
| 绘制文本。 更多...
YF_API void | DrawText (TextRegion &r, const Graphics &g, const Point &pt, const Size &s, const String &str, bool line_wrap)
| 绘制文本。 更多...
YF_API bool | BlitBounds (const Point &, const Point &, const Size &, const Size &, const Size &, SDst &, SDst &, SDst &, SDst &)
| 贴图边界计算器。 更多...
template<bool _bDec, typename _tScalar , typename _tDiff , typename _tOut , typename _tIn , typename _fBlitLoop >
void | BlitScan (_fBlitLoop loop, _tOut dst, _tIn src, _tScalar d_width, _tScalar s_width, _tDiff delta_x, _tDiff delta_y)
| 贴图扫描函数模板。 更多...
template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fBlitLoop >
void | Blit (_fBlitLoop loop, _tOut dst, _tIn src, const Size &ds, const Size &ss, const Point &dp, const Point &sp, const Size &sc)
| 贴图函数模板。 更多...
template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fBlitScanner >
void | BlitLines (_fBlitScanner scanner, _tOut dst, _tIn src, const Size &ds, const Size &ss, const Point &dp, const Point &sp, const Size &sc)
| 扫描线贴图函数模板。 更多...
template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fPixelShader >
void | BlitPixels (_fPixelShader shader, _tOut dst, _tIn src, const Size &ds, const Size &ss, const Point &dp, const Point &sp, const Size &sc)
| 像素贴图函数模板。 更多...
template<class _fTransformPixel >
bool | TransformRect (const Graphics &g, const Point &pt, const Size &s, _fTransformPixel tp)
| 以像素为单位变换标准矩形。 更多...
template<class _fTransformPixel >
bool | TransformRect (const Graphics &g, const Rect &r, _fTransformPixel tp)
| 以像素为单位变换标准矩形。 更多...
YF_API void | CopyBuffer (const Graphics &, const Graphics &)
| 以第一个参数作为目标，复制第二个参数的缓冲区内容。 更多...
YF_API void | ClearImage (const Graphics &)
| 清除图形接口上下文缓冲区。 更多...
YF_API void | Fill (const Graphics &, Color)
| 使用指定颜色填充图形接口上下文缓冲区。 更多...
void | PutPixel (BitmapPtr dst, SDst w, SPos x, SPos y, Color c)
| 修改指定位置的像素：(x, y) 。 更多...
void | PutPixel (const Graphics &g, SPos x, SPos y, Color c)
| 修改指定位置的像素：(x, y) 。 更多...
YF_API void | PlotHLineSeg (BitmapPtr dst, const Rect &bounds, SDst w, SPos y, SPos x1, SPos x2, Color)
| 绘制水平线段：在宽 w 的缓冲区内的区域 bounds 绘制指定端点水平坐标 x1 、 x2 - 1 ，竖直坐标 y 。 更多...
void | DrawHLineSeg (const Graphics &g, const Rect &bounds, SPos y, SPos x1, SPos x2, Color c)
| 描画水平线段。 更多...
YF_API void | PlotVLineSeg (BitmapPtr dst, const Rect &bounds, SDst w, SPos x, SPos y1, SPos y2, Color)
| 绘制竖直线段：在宽 w 的缓冲区内的区域 bounds 绘制指定竖直水平坐标 x ， 竖直坐标 y1 - 1 、 y2 。 更多...
void | DrawVLineSeg (const Graphics &g, const Rect &bounds, SPos x, SPos y1, SPos y2, Color c)
| 描画竖直线段。 更多...
YF_API void | PlotLineSeg (BitmapPtr dst, const Rect &bounds, SDst w, SPos x1, SPos y1, SPos x2, SPos y2, Color)
| 绘制线段：在宽 w 的缓冲区内的区域 bounds 绘制端点为 p1(x1, y1) 和 p2(x2, y2) 的线段。 更多...
template<typename _tIn >
void | DrawPolygon (Graphics &g, const Rect &bounds, _tIn first, _tIn last, Color c)
| 描画多边形。 更多...
SDst | GetVerticalOf (const Padding &m)
| 取竖直边距和。 更多...
YF_API Padding | FetchMargin (const Rect &, const Size &)
| 取内边界相对于外边界的边距。 更多...
bool | Clip (Rect &x, const Rect &y)
| 剪切操作：取标准矩形交集并判断是否严格非空。 更多...
YF_API Point | ClipBounds (Rect &, const Rect &)
| 根据指定源的边界优化绘制上下文的剪切区域。 更多...
YF_API Point | ClipMargin (PaintContext &, const Padding &, const Size &)
| 根据指定边距和源的大小优化绘制上下文的剪切区域。 更多...
| CompactPixmapEx (ConstBitmapPtr, SDst, SDst)
| 构造：使用指定位图指针和大小。 更多...
| CompactPixmapEx (const CompactPixmapEx &)
| CompactPixmapEx (CompactPixmapEx &&) ynothrow
| 转移构造：转移资源。 更多...
| ~CompactPixmapEx () override
| 析构：释放资源。 更多...
CompactPixmapEx & | operator= (const CompactPixmapEx &buf)
CompactPixmapEx & | operator= (CompactPixmapEx &&buf) ynothrow
| DefGetter (const ynothrow, AlphaType *, BufferAlphaPtr, pBufferAlpha) DefGetter(const ynothrow
| 取 Alpha 缓冲区的指针。 更多...
sizeof(AlphaType)*GetAreaOf(GetSize())) using CompactPixmap void | SetSize (const Size &) override
| 重新设置缓冲区大小。 更多...
void | ClearImage () const override
| 清除缓冲区。 更多...
| DefClone (const override, CompactPixmapEx) void swap(CompactPixmapEx &buf) ynothrow
YF_API bool | CopyTo (BitmapPtr, const CompactPixmapEx &, const Size &, const Point &, const Point &, const Size &, Rotation=RDeg0)
| 位图缓冲区向指针指定的缓冲区复制。 更多...
bool | CopyTo (const Graphics &dst, const Graphics &src, const Point &dp={}, const Point &sp={}, Rotation rot=RDeg0)
| 图形接口上下文复制。 更多...
bool | CopyTo (const Graphics &dst, const CompactPixmapEx &src, const Point &dp={}, const Point &sp={}, Rotation rot=RDeg0)
| 位图缓冲区向图形接口上下文复制。 更多...
YF_API bool | BlitTo (BitmapPtr, const CompactPixmapEx &, const Size &, const Point &, const Point &, const Size &, Rotation=RDeg0)
| 贴图：位图缓冲区向指针指定的缓冲区以贴图算法复制。 更多...
bool | BlitTo (const Graphics &dst, const CompactPixmapEx &src, const Point &dp={}, const Point &sp={}, Rotation rot=RDeg0)
| 贴图：位图缓冲区向指针指定的缓冲区以贴图算法复制。 更多...
template<typename _type >
string | to_string (const GBinaryGroup< _type > &val)
| 转换为字符串。 更多...
YF_API string | to_string (const Size &)
YF_API string | to_string (const Rect &)
auto | error (::FT_New_Face(cache.library, Path.c_str(), face_index,&face))
| if (YB_LIKELY(!error)) if(YB_LIKELY(!(error
| if (YB_UNLIKELY(error))
const FamilyName | family_name (face->family_name)
auto & | p_ff (cache.mFamilies[family_name])
| if (!p_ff) p_ff.reset(new FontFamily(cache
return pair < std::reference_wrapper < FontFamily > , std::reference_wrapper <::FT_FaceRec_ > > * | p_ff (),*face
| bitmap_cache (2047U)
| glyph_index_cache ()
| handle (::FreeImage_OpenMemory(static_cast< byte * >(buffer.data()), static_cast< ::DWORD >(buffer.size())))
| format (fmt)
bool | operator== (const HMultiBitmap::iterator &x, const HMultiBitmap::iterator &y) ynothrow
Rect | operator& (const Rect &a, const Rect &b) ynothrow
Rect | operator| (const Rect &a, const Rect &b) ynothrow
void | SetCurrentTextLineNOf (TextState &ts, u16 n)
void | MovePen (TextState &ts, ucs4_t c)
Rect | operator+ (const Rect &r, const Padding &m)
bool | CopyTo (BitmapPtr dst, const Graphics &g, const Size &ds, const Point &dp, const Point &sp, const Size &sc, Rotation rot)
hsl_t | ColorToHSL (Color c)
Color | HSLToColor (hsl_t c)
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, _tIter s)
| 取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, _tIter s, size_t n, ucs4_t c={})
| 取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, _tIter s, _tIter g, ucs4_t c={})
| 取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, const _tString &str)
| 取单行字符串在指定字体和宽度时的最多能显示的字符数和宽。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, const _tString &str, size_t n)
| 取单行字符串前不超过 n 个字符在指定字体和宽度时的 最多能显示的字符数和宽。 更多...
template<bool >
yconstfn size_t | BlitScaleComponent (SPos d, SDst)
| 贴图偏移分量计算器。 更多...
template<>
yconstfn size_t | BlitScaleComponent< true > (SPos d, SDst delta)
template<typename _tOut >
_tOut | ClearPixel (_tOut dst, size_t n) ynothrow
| 清除指定位置的 n 个连续像素。 更多...
template<typename _tPixel , typename _tOut >
void | FillPixel (_tOut dst, size_t n, _tPixel c)
| 使用 n 个指定像素连续填充指定位置。 更多...
template<typename _tPixel , typename _tOut >
void | FillVerticalLine (_tOut dst, size_t n, SDst dw, _tPixel c)
| 使用 n 个指定像素竖直填充指定位置。 更多...
template<typename _tPixel , typename _tOut >
void | FillRectRaw (_tOut dst, const Size &ds, const Point &sp, const Size &sc, _tPixel c)
| 使用指定像素填充指定的标准矩形区域。 更多...
template<typename _tPixel , typename _tOut >
void | FillRectRaw (_tOut dst, const Size &ds, const Rect &r, _tPixel c)
template<typename _tPixel , typename _tOut >
void | FillRectRaw (_tOut dst, SDst dw, SDst dh, SPos x, SPos y, SDst w, SDst h, _tPixel c)
void | PlotPixel (BitmapPtr dst, const Rect &bounds, SDst w, SPos x, SPos y, Color c)
| 绘制指定位置的像素：(x, y) 。 更多...
void | DrawPoint (const Graphics &g, const Rect &bounds, SPos x, SPos y, Color c)
| 描画点。 更多...
void | DrawPoint (const Graphics &g, const Rect &bounds, const Point &pt, Color c)
p1 p1 p2 p2 c YF_API void | DrawRect (const Graphics &g, const Rect &bounds, const Point &pt, const Size &s, Color c)
| 描画标准矩形。 更多...
void | DrawRect (const Graphics &g, const Rect &bounds, const Rect &r, Color c)
bounds c YF_API void | DrawCircle (const Graphics &, const Rect &, const Point &, SDst, Color c)
| 描画圆形。 更多...
YF_API void | FillCircle (const Graphics &, const Rect &, const Point &, SDst, Color c)
| 填充圆形。 更多...

## 变量

| size_t
| SizeOfBufferAlpha
const Graphics const Size const Point const Point const Size | Rotation = RDeg0)
Typeface::Typeface(FontCache &cache, const FontPath &path, u32 i)::FT_Face | face
| family_name
pixmap | bitmap
pixmap | bpp
if(YB_UNLIKELY(r > =sGraphics.Height)) throw std return pBuffer r *sGraphics | Width
| bounds
p1 | X
p1 p1 | Y
void | DrawLineSeg (const Graphics &g, const Rect &bounds, SPos x1, SPos y1, SPos x2, SPos y2, Color c)
| 描画线段：在区域 ds 绘制端点为 p1(x1, y1) 和 p2(x2, y2) 的线段。 更多...
| PDefH (void, DrawLineSeg, const Graphics &g, const Rect &bounds, const Point &p1, const Point &p2, Color c) ImplExpr(DrawLineSeg(g
bounds & | r
YF_API void | FillRect (const Graphics &g, const Rect &, Color c)
| 填充标准矩形。 更多...
| PDefH (void, FillRect, const Graphics &g, const Rect &bounds, const Rect &r, Color c) ImplExpr(FillRect(g
| c
YF_API void | DrawRectRoundCorner (const PaintContext &pc, const Size &s, Color)
| 绘制部件边框用空心标准矩形。 更多...
YF_API void | RectDrawArrow (const PaintContext &, SDst, Rotation=RDeg0, Color=ColorSpace::Black)
| 在指定上下文的矩形中画箭头。 更多...
YF_API void | DrawArrow (const Graphics &, const Rect &, SDst=4, Rotation=RDeg0, Color=ColorSpace::Black)
| 在指定图形接口上下文上描画箭头。 更多...
YF_API void | DrawCross (const Graphics &, const Rect &, const Rect &, Color)
| 在指定图形接口上下文中使用指定颜色描画交叉直线段（“×”）。 更多...
YF_API void | DrawTick (const Graphics &, const Rect &, const Rect &, Color, Color)
| PDefH (void, DrawTick, const Graphics &g, const Rect &bounds, const Rect &r, Color c) ImplExpr(DrawTick(g
c yconstfn | g
c yconstfn | PDefH (Color, MakeGray, MonoType g) ImplRet(Color(g
| 按指定分量取灰度色。 更多...
YF_API Color | RollColor (hsl_t, Hue)
| 色调偏移。 更多...

## 详细描述

图形处理。

自从
  build 456

## 类型定义说明

using YSLib::Drawing::BitPerPixel = typedef u8

自从
  build 402

在文件 Image.h 第 55 行定义.

using YSLib::Drawing::FamilyName = typedef std::string

字型家族名称。

自从
  build 277

在文件 Font.h 第 73 行定义.

using YSLib::Drawing::FontPath = typedef std::string

字体文件路径。

自从
  build 277

在文件 Font.h 第 68 行定义.

using YSLib::Drawing::FontSize = typedef u8

字体大小。

自从
  build 277

在文件 Font.h 第 63 行定义.

using YSLib::Drawing::IteratorPair = typedef ystdex::pair_iterator<ConstBitmapPtr, const AlphaType*>

Alpha 光栅化源迭代器对。

自从
  build 417

在文件 yblit.h 第 520 行定义.

using YSLib::Drawing::Point = typedef GBinaryGroup<SPos>

屏幕二维点（直角坐标表示）。

自从
  build 242

在文件 ygdibase.h 第 235 行定义.

using YSLib::Drawing::StyleName = typedef std::string

字型样式名称。

自从
  build 277

在文件 Font.h 第 78 行定义.

using YSLib::Drawing::Vec = typedef GBinaryGroup<SPos>

屏幕二维向量（直角坐标表示）。

自从
  build 242

在文件 ygdibase.h 第 242 行定义.

## 枚举类型说明

enum YSLib::Drawing::FontStyle : u8

strong

字体样式。

自从
  build 197

枚举值
Regular | 常规字体。
Bold | 粗体。
Italic | 斜体。
Underline | 下划线。
Strikeout | 删除线。

在文件 Font.h 第 85 行定义.

enum YSLib::Drawing::ImageDecoderFlags : int

strong

图像解码器标识。

注解
  数值对应 FreeImage 实现。

自从
  build 457

枚举值
Default |
GIF_Load256 |
GIF_Playback |
ICO_MakeAlpha |
JPEG_Fast |
JPEG_Accurate |
JPEG_CMYK |
JPEG_EXIFRotate |
JPEG_GreyScale |
JPEG_QualitySuperb |
JPEG_QualityGood |
JPEG_QualityNormal |
JPEG_QualityAverage |
JPEG_QualityBad |
JPEG_Progressive |
JPEG_Subsampling_411 |
JPEG_Subsampling_420 |
JPEG_Subsampling_422 |
JPEG_Subsampling_444 |
JPEG_Optimize |
JPEG_Baseline |

在文件 Image.h 第 81 行定义.

enum YSLib::Drawing::ImageFormat : int

strong

图像格式。

注解
  枚举值和 ::FREE_IMAGE_FORMAT 兼容。

参见
  FreeImage 宏 FI_ENUM 。

自从
  build 457

枚举值
Unknown |
BMP |
ICO |
JPEG |

PNG

自从
  build 470

GIF |

在文件 Image.h 第 64 行定义.

enum YSLib::Drawing::Orientation

二元方向。

自从
  build 416

枚举值
Horizontal |
Vertical |

在文件 ygdibase.h 第 880 行定义.

## 函数说明

SDst YSLib::Drawing::AdjustBottomMarginOf | ( | TextRegion & | tr | ) |

inline

按字体高度和行距调整文本区域的底边距。

自从
  build 252

在文件 TextLayout.h 第 84 行定义.

参考 YSLib::Drawing::Padding::Bottom, FetchResizedBottomMargin() , 以及 YSLib::Drawing::TextState::Margin.

参考自 YSLib::DS::UI::DualScreenReader::AdjustMargins().

函数调用图:

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

YSLib::Drawing::bitmap_cache | ( | 2047U |  | ) |

template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fBlitLoop >

void YSLib::Drawing::Blit | ( | _fBlitLoop | loop,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ds,
|  | const Size & | ss,
|  | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | sc
| ) |  |

贴图函数模板。

模板参数

  _bSwapLR | 水平翻转镜像（关于水平中轴对称）。
  _bSwapUD | 竖直翻转镜像（关于竖直中轴对称）。
  _tOut | 输出迭代器类型（需要支持 + 操作，一般应是随机迭代器）。
  _tIn | 输入迭代器类型（需要支持 + 操作，一般应是随机迭代器）。
  _fBlitLoop | 循环操作类型。

参数

  loop | 循环操作。
  dst | 目标迭代器。
  ds | 目标迭代器所在缓冲区大小。
  src | 源迭代器。
  ss | 源迭代器所在缓冲区大小。
  dp | 目标迭代器起始点所在缓冲区偏移。
  sp | 源迭代器起始点所在缓冲区偏移。
  sc | 源迭代器需要复制的区域大小。

注解
  允许坐标分量越界。越上界时由 BlitBounds 过滤，越下界时修正为 0 。

参见
  BlitBounds
  BlitScan

自从
  build 437

对一块矩形区域逐像素顺序批量操作（如复制或贴图）。

在文件 yblit.h 第 231 行定义.

参考 BlitBounds(), YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

函数调用图:

bool YSLib::Drawing::BlitBounds | ( | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | ds,
|  | const Size & | ss,
|  | const Size & | sc,
|  | SDst & | min_x,
|  | SDst & | min_y,
|  | SDst & | delta_x,
|  | SDst & | delta_y
| ) |  |

贴图边界计算器。

返回
  是否存在合适边界。

自从
  build 438

按指定的目标区域位置、源区域位置、目标边界大小、源边界大小和贴图区域大小计算和最 终边界相关的值。前两个 SDst 参数总是赋值为源坐标系的边界左上最小值。当无合适边 界时后两个 SDst 参数不被修改，否则赋值为最终贴图区域的宽和高。

在文件 yblit.cpp 第 58 行定义.

参考 YSLib::Drawing::Size::Height, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y , 以及 yunseq.

参考自 Blit().

这是这个函数的调用关系图:
template<typename _tOut , typename _tIn , typename _fBlitScanner >

void YSLib::Drawing::BlitGlyphLines | ( | _fBlitScanner | scanner,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ss,
|  | const PaintContext & | pc,
|  | bool | neg_pitch
| ) |  |

字符按扫描线块传输。

模板参数

  _tOut | 输出迭代器类型。
  _tIn | 输入迭代器类型。
  _fBlitScanner | 扫描线操作类型。

参数

  scanner | 扫描线操作。
  src | 源迭代器。
  ss | 源迭代器所在缓冲区大小。
  pc | 指定字符所在区域和渲染目标的绘制上下文， 其中 Location 为相对于源的坐标。
  neg_pitch | 指定交换行渲染顺序。

参见
  Blit
  BlitLines

自从
  build 438

在文件 CharRenderer.h 第 59 行定义.

参考 r.

template<typename _tOut , typename _tIn , typename _fPixelShader >

void YSLib::Drawing::BlitGlyphPixels | ( | _fPixelShader | blit,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ss,
|  | const PaintContext & | pc,
|  | bool | neg_pitch
| ) |  |

字符按像素块传输。

模板参数

  _tOut | 输出迭代器类型。
  _tIn | 输入迭代器类型。
  _fPixelShader | 像素着色器类型。

参数

  blit | 像素操作。
  src | 源迭代器。
  ss | 源迭代器所在缓冲区大小。
  pc | 指定字符所在区域和渲染目标的绘制上下文， 其中 Location 为相对于源的坐标。
  neg_pitch | 指定交换行渲染顺序。

参见
  Blit
  BlitPixels

自从
  build 440

在文件 CharRenderer.h 第 91 行定义.

参考 r.

参考自 RenderChar() , 以及 RenderCharAlpha().

这是这个函数的调用关系图:
template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fBlitScanner >

void YSLib::Drawing::BlitLines | ( | _fBlitScanner | scanner,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ds,
|  | const Size & | ss,
|  | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | sc
| ) |  |

扫描线贴图函数模板。

模板参数

  _bSwapLR | 水平翻转镜像（关于水平中轴对称）。
  _bSwapUD | 竖直翻转镜像（关于竖直中轴对称）。
  _tOut | 输出迭代器类型（需要支持 + 操作，一般应是随机迭代器）。
  _tIn | 输入迭代器类型（需要支持 + 操作，一般应是随机迭代器）。
  _fBlitScanner | 扫描线操作类型。

参数

  scanner | 扫描线操作。
  dst | 目标迭代器。
  ds | 目标迭代器所在缓冲区大小。
  src | 源迭代器。
  ss | 源迭代器所在缓冲区大小。
  dp | 目标迭代器起始点所在缓冲区偏移。
  sp | 源迭代器起始点所在缓冲区偏移。
  sc | 源迭代器需要复制的区域大小。

参见
  Blit
  BlitScannerLoop

自从
  build 437

对一块矩形区域逐（水平）扫描线批量操作（如复制或贴图）。

在文件 yblit.h 第 294 行定义.

template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fPixelShader >

void YSLib::Drawing::BlitPixels | ( | _fPixelShader | shader,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ds,
|  | const Size & | ss,
|  | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | sc
| ) |  |

像素贴图函数模板。

模板参数

  _bSwapLR | 水平翻转镜像（关于水平中轴对称）。
  _bSwapUD | 竖直翻转镜像（关于竖直中轴对称）。
  _tOut | 输出迭代器类型（需要支持 + 操作，一般应是随机迭代器）。
  _tIn | 输入迭代器类型（需要支持 + 操作，一般应是随机迭代器）。
  _fPixelShader | 像素着色器类型。

参数

  blit | 像素操作。
  dst | 目标迭代器。
  ds | 目标迭代器所在缓冲区大小。
  src | 源迭代器。
  ss | 源迭代器所在缓冲区大小。
  dp | 目标迭代器起始点所在缓冲区偏移。
  sp | 源迭代器起始点所在缓冲区偏移。
  sc | 源迭代器需要复制的区域大小。

参见
  Blit
  BlitScannerLoop
  BlitLineLoop

自从
  build 440

对一块矩形区域逐（水平）扫描线批量操作（如复制或贴图）。

在文件 yblit.h 第 354 行定义.

template<bool >

yconstfn size_t YSLib::Drawing::BlitScaleComponent | ( | SPos | d,
|  | SDst |
| ) |  |

贴图偏移分量计算器。

自从
  build 445

在文件 yblit.h 第 151 行定义.

template<>

yconstfn size_t YSLib::Drawing::BlitScaleComponent< true > | ( | SPos | d,
|  | SDst | delta
| ) |  |

在文件 yblit.h 第 157 行定义.

template<bool _bDec, typename _tScalar , typename _tDiff , typename _tOut , typename _tIn , typename _fBlitLoop >

void YSLib::Drawing::BlitScan | ( | _fBlitLoop | loop,
|  | _tOut | dst,
|  | _tIn | src,
|  | _tScalar | d_width,
|  | _tScalar | s_width,
|  | _tDiff | delta_x,
|  | _tDiff | delta_y
| ) |  |

贴图扫描函数模板。

模板参数

  _bDec | 指定是否翻转水平和竖直方向之一。
  _tScalar | 度量大小的纯量类型。
  _tDiff | 度量偏移量的差值类型。
  _tOut | 输出迭代器类型。
  _tIn | 输入迭代器类型。
  _fBlitLoop | 循环操作类型。

参数

  loop | 循环操作。
  d_width | 目标缓冲区的宽。
  s_width | 源缓冲区的宽。
  delta_x | 实际操作的宽。
  delta_y | 实际操作的高。
  dst | 目标迭代器。
  src | 源迭代器。

警告
  loop 接受的最后两个参数应保证不是无符号整数类型。

自从
  build 437

对一块矩形区域调用指定的逐像素扫描操作。

在文件 yblit.h 第 187 行定义.

bool YSLib::Drawing::BlitTo | ( | BitmapPtr | dst,
|  | const CompactPixmapEx & | buf,
|  | const Size & | ds,
|  | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | sc,
|  | Rotation | rot = `RDeg0`
| ) |  |

贴图：位图缓冲区向指针指定的缓冲区以贴图算法复制。

注解
  仅当指针和指向有效。自动裁剪适应大小。

自从
  build 418

向指定大小和点（相对左上角）的指定图形接口上下文以指定输出指向以缓冲区内容贴图。

在文件 ygdi.cpp 第 253 行定义.

参考 RDeg0.

参考自 DrawText() , 以及 YSLib::UI::BufferedTextArea::Refresh().

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

bool YSLib::Drawing::BlitTo | ( | const Graphics & | dst,
|  | const CompactPixmapEx & | src,
|  | const Point & | dp = `{}`,
|  | const Point & | sp = `{}`,
|  | Rotation | rot = `RDeg0`
| ) |  |

inline

贴图：位图缓冲区向指针指定的缓冲区以贴图算法复制。

注解
  仅当指针和指向有效。自动裁剪适应大小。

自从
  build 418

向指定大小和点（相对左上角）的指定图形接口上下文以指定输出指向以缓冲区内容贴图。

在文件 ygdi.h 第 459 行定义.

void YSLib::Drawing::ClearImage | ( |  | ) | const

override

清除缓冲区。

void YSLib::Drawing::ClearImage | ( | const Graphics & | g | ) |

清除图形接口上下文缓冲区。

自从
  早于 build 132

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

参考 ClearPixel() , 以及 GetAreaOf().

参考自 YSLib::Drawing::CompactPixmap::ClearImage().

函数调用图:

这是这个函数的调用关系图:
template<typename _tOut >

_tOut YSLib::Drawing::ClearPixel | ( | _tOut | dst,
|  | size_t | n
| ) |  |

inline

清除指定位置的 n 个连续像素。

模板参数

  _tOut | 输出迭代器类型。

参见
  ClearSequence

在文件 yblit.h 第 424 行定义.

参考 YSLib::ClearSequence().

参考自 ClearImage() , 以及 YSLib::Drawing::TextRegion::ClearLine().

函数调用图:

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

bool YSLib::Drawing::Clip | ( | Rect & | x,
|  | const Rect & | y
| ) |  |

inline

剪切操作：取标准矩形交集并判断是否严格非空。

自从
  build 372

在文件 ygdi.h 第 134 行定义.

参考自 ClipBounds(), YSLib::UI::PaintChild() , 以及 YSLib::UI::TabBar::Refresh().

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

Point YSLib::Drawing::ClipBounds | ( | Rect & | clip,
|  | const Rect & | bounds
| ) |  |

根据指定源的边界优化绘制上下文的剪切区域。

返回
  若边距决定不足以被渲染则为 Point() ，否则为源的起始偏移位置。

注解
  当不需要绘制时，不修改偏移坐标。

自从
  build 372

检查边距限制下需要保留绘制的区域，结果保存至绘制上下文的除渲染目标外的其它成员。

在文件 ygdi.cpp 第 59 行定义.

参考 Clip().

函数调用图:

Point YSLib::Drawing::ClipMargin | ( | PaintContext & | pc,
|  | const Padding & | m,
|  | const Size & | ss
| ) |  |

根据指定边距和源的大小优化绘制上下文的剪切区域。

返回
  若边距决定不足以被渲染则为 Point() ，否则为源的起始偏移位置。

注解
  当不需要绘制时，不修改偏移坐标。

自从
  build 369

检查边距限制下需要保留绘制的区域，结果保存至绘制上下文的除渲染目标外的其它成员。

在文件 ygdi.cpp 第 68 行定义.

参考 YSLib::Drawing::Padding::Bottom, GetVerticalOf(), YSLib::Drawing::Size::Height, YSLib::Drawing::Padding::Left, YSLib::Drawing::Padding::Right, YSLib::Drawing::Padding::Top, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

函数调用图:

hsl_t YSLib::Drawing::ColorToHSL | ( | Color | c | ) |

related

在文件 ystyle.cpp 第 161 行定义.

参考 g, platform_ex::Windows::l, r , 以及 platform_ex::Windows::s.

YSLib::Drawing::CompactPixmapEx | ( | ConstBitmapPtr | ,
|  | SDst | ,
|  | SDst |
| ) |  |

构造：使用指定位图指针和大小。

参考自 operator=().

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

YSLib::Drawing::CompactPixmapEx | ( | const CompactPixmapEx & |  | ) |

YSLib::Drawing::CompactPixmapEx | ( | CompactPixmapEx && |  | ) |

转移构造：转移资源。

void YSLib::Drawing::CopyBuffer | ( | const Graphics & | dst,
|  | const Graphics & | src
| ) |  |

以第一个参数作为目标，复制第二个参数的缓冲区内容。

前置条件
  断言：指针非空；大小相等。

注解
  缓冲区指针相等时忽略。

自从
  build 177

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

参考 GetAreaOf(), YAssert, YAssertNonnull , 以及 YB_LIKELY.

函数调用图:

bool YSLib::Drawing::CopyTo | ( | BitmapPtr | dst,
|  | const Graphics & | g,
|  | const Size & | ds,
|  | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | sc,
|  | Rotation | rot
| ) |  |

在文件 ygdi.cpp 第 218 行定义.

参考 RDeg0.

bool YSLib::Drawing::CopyTo | ( | BitmapPtr | dst,
|  | const CompactPixmapEx & | buf,
|  | const Size & | ds,
|  | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | sc,
|  | Rotation | rot = `RDeg0`
| ) |  |

位图缓冲区向指针指定的缓冲区复制。

注解
  仅当指针和指向有效。自动裁剪适应大小。

自从
  build 418

向指定大小和点（相对左上角）的指定图形接口上下文以指定输出指向复制缓冲区内容。

在文件 ygdi.cpp 第 234 行定义.

参考 RDeg0.

参考自 YSLib::UI::BufferedRenderer::UpdateTo() , 以及 YSLib::UI::BufferedRenderer::Validate().

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

bool YSLib::Drawing::CopyTo | ( | const Graphics & | dst,
|  | const Graphics & | src,
|  | const Point & | dp = `{}`,
|  | const Point & | sp = `{}`,
|  | Rotation | rot = `RDeg0`
| ) |  |

inline

图形接口上下文复制。

注解
  仅当指针和指向有效。自动裁剪适应大小。

自从
  build 337

以第一个参数作为目标，以指定输出指向复制第二个参数的缓冲区内容 至相对于目标缓冲区的点。

在文件 ygdi.h 第 420 行定义.

bool YSLib::Drawing::CopyTo | ( | const Graphics & | dst,
|  | const CompactPixmapEx & | src,
|  | const Point & | dp = `{}`,
|  | const Point & | sp = `{}`,
|  | Rotation | rot = `RDeg0`
| ) |  |

inline

位图缓冲区向图形接口上下文复制。

注解
  仅当指针和指向有效。自动裁剪适应大小。

自从
  build 418

向指定大小和点（相对左上角）的指定图形接口上下文以指定输出指向复制缓冲区内容。

在文件 ygdi.h 第 434 行定义.

template<typename _tPixel >

_tPixel* YSLib::Drawing::CreateRawBitmap | ( | const _tPixel * | s,
|  | size_t | n
| ) |  |

使用 new 分配空间并复制无压缩位图。

自从
  build 213

在文件 ShellHelper.h 第 330 行定义.

参考 YB_LIKELY.

shared_ptr<Image> YSLib::Drawing::CreateSharedScreenImage | ( | ConstBitmapPtr | p | ) |

inline

新建屏幕图像。

自从
  build 213

在文件 ShellHelper.h 第 319 行定义.

YSLib::Drawing::DeclDerivedI | ( | YF_API | ,
|  | IImage | ,
|  | ystdex::cloneable |
| ) |  | const

override

图像接口。

自从
  build 405
  build 406
  build 409

< 渲染目标：图形接口上下文。

参考位置。

指定渲染目标关联的参考点的位置的偏移坐标。 如无额外说明，选取渲染目标左上角为原点的屏幕坐标系。

剪切区域。

相对于图形接口上下文的标准矩形，指定需要保证被刷新的边界区域。 如无额外说明，剪切区域的位置坐标选取渲染目标左上角为原点的屏幕坐标系。

在文件 ygdibase.h 第 810 行定义.

yconstexpr Padding YSLib::Drawing::DefaultMargin | ( | 2 | ,
|  | 2 | ,
|  | 2 | ,
|  | 2 |
| ) |  |

默认边距。

自从
  build 286

参考自 YReader::ShlExplorer::OnPaint().

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

YSLib::Drawing::DefClone | ( | const override | ,
|  | CompactPixmapEx |
| ) |  |

在文件 ygdi.h 第 371 行定义.

参考 ystdex::swap().

函数调用图:

YSLib::Drawing::DefGetter | ( | const ynothrow | ,
|  | AlphaType * | ,
|  | BufferAlphaPtr | ,
|  | pBufferAlpha |
| ) |  | const

取 Alpha 缓冲区的指针。

自从
  build 417

取 Alpha 缓冲区占用空间。

自从
  build 407

void YSLib::Drawing::DrawArrow | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | SDst | half_size = `4`,
|  | Rotation | rot = `RDeg0`,
|  | Color | c = `ColorSpace::Black`
| ) |  |

在指定图形接口上下文上描画箭头。

自从
  build 302

在文件 ystyle.cpp 第 100 行定义.

参考 CHRLib::c, g, YSLib::Drawing::Size::Height, RDeg0, RDeg180, RDeg270, RDeg90, RectDrawArrow(), YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

参考自 YSLib::UI::Menu::DrawItem() , 以及 YSLib::UI::DropDownList::Refresh().

函数调用图:

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

void YSLib::Drawing::DrawCircle | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Point & | pt,
|  | SDst | r,
|  | Color | c
| ) |  |

描画圆形。

前置条件
  间接断言：图形接口缓冲区指针非空。

在文件 ydraw.cpp 第 173 行定义.

参考 bounds, c, g, PlotPixel() , 以及 r.

参考自 YSLib::UI::DialogPanel::DialogPanel().

函数调用图:

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

void YSLib::Drawing::DrawClippedText | ( | const Graphics & | g,
|  | const Rect & | mask,
|  | TextState & | ts,
|  | const String & | str,
|  | bool | line_wrap
| ) |  |

绘制剪切区域的文本。

参数

  g | 输出图形接口上下文。
  mask | 相对于输出图形接口上下文矩形，限定输出边界。
  ts | 输出时使用的文本状态。
  str | 待绘制的字符串。
  line_wrap | 自动换行。

自从
  build 309

在文件 TextRenderer.cpp 第 214 行定义.

参考 PutText().

参考自 YSLib::UI::MLabel::DrawClippedText(), DrawClippedText() , 以及 DrawText().

函数调用图:

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

void YSLib::Drawing::DrawClippedText | ( | const Graphics & | g,
|  | const Rect & | mask,
|  | const Rect & | bounds,
|  | const String & | str,
|  | const Padding & | m,
|  | Color | c,
|  | bool | line_wrap,
|  | const Font & | fnt = `{}`
| ) |  |

绘制剪切区域的文本。

参数

  g | 输出图形接口上下文。
  mask | 相对于输出图形接口上下文矩形，限定输出边界。
  bounds | 绘制区域的外边界。
  str | 待绘制的字符串。
  m | 绘制区域边界和外边界之间的边距。
  line_wrap | 自动换行。
  fnt | 输出时使用的字体。

自从
  build 309

在文件 TextRenderer.cpp 第 222 行定义.

参考 c, YSLib::Drawing::PenStyle::Color, DrawClippedText(), FetchMargin(), YSLib::Drawing::TextState::Margin , 以及 YSLib::Drawing::TextState::ResetPen.

函数调用图:

void YSLib::Drawing::DrawCross | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Rect & | r,
|  | Color | c
| ) |  |

在指定图形接口上下文中使用指定颜色描画交叉直线段（“×”）。

注解
  第二个参数指定边界；绘制的图形顶点为第三个参数指定的矩形的顶点或边的中点。
  若不满足长和宽都大于 8 则忽略。

自从
  build 480

在文件 ystyle.cpp 第 125 行定义.

参考 DrawLineSeg(), YSLib::Drawing::Size::Height, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y , 以及 YB_LIKELY.

参考自 YSLib::UI::DecorateAsCloseButton().

函数调用图:

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

void YSLib::Drawing::DrawHLineSeg | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | SPos | y,
|  | SPos | x1,
|  | SPos | x2,
|  | Color | c
| ) |  |

inline

描画水平线段。

前置条件
  断言： `bool(g)` 。
  断言： bounds 在 g 指定的边界内。

参见
  PlotHLineSeg

在文件 ydraw.h 第 128 行定义.

参考 bounds, c, YSLib::UI::Contains, PlotHLineSeg() , 以及 YAssert.

参考自 DrawRect(), DrawRectRoundCorner(), YSLib::UI::DrawTrackBackground() , 以及 RectDrawArrow().

函数调用图:

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

void YSLib::Drawing::DrawLineSeg | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | SPos | x1,
|  | SPos | y1,
|  | SPos | x2,
|  | SPos | y2,
|  | Color | c
| ) |  |

inline

描画线段：在区域 ds 绘制端点为 p1(x1, y1) 和 p2(x2, y2) 的线段。

在文件 ydraw.h 第 178 行定义.

参考 bounds, c, YSLib::UI::Contains, PlotLineSeg() , 以及 YAssert.

参考自 DrawCross(), DrawPolygon() , 以及 DrawTick().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIn >

void YSLib::Drawing::DrawPolygon | ( | Graphics & | g,
|  | const Rect & | bounds,
|  | _tIn | first,
|  | _tIn | last,
|  | Color | c
| ) |  |

描画多边形。

在文件 ydraw.h 第 240 行定义.

参考 DrawLineSeg(), ystdex::is_undereferenceable(), YAssert, YB_LIKELY , 以及 yunseq.

函数调用图:

void YSLib::Drawing::DrawRect | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Point & | pt,
|  | const Size & | s,
|  | Color | c
| ) |  |

描画标准矩形。

前置条件
  间接断言：图形接口上下文有效。

注解
  右下角顶点坐标 (pt.X + s.Width - 1, pt.Y + s.Height - 1) 。

在文件 ydraw.cpp 第 131 行定义.

参考 DrawHLineSeg(), DrawVLineSeg(), YSLib::Drawing::Size::Height, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y , 以及 YB_LIKELY.

参考自 YSLib::UI::TabBar::DefaultPaintTabBorder() , 以及 DrawRect().

函数调用图:

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

void YSLib::Drawing::DrawRect | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Rect & | r,
|  | Color | c
| ) |  |

inline

注解
  右下角顶点坐标 (r.X + r.Width - 1, r.Y + r.Height - 1) 。

在文件 ydraw.h 第 203 行定义.

参考 c , 以及 DrawRect().

函数调用图:

void YSLib::Drawing::DrawRectRoundCorner | ( | const PaintContext & | pc,
|  | const Size & | s,
|  | Color | c
| ) |  |

绘制部件边框用空心标准矩形。

前置条件
  间接断言：图形上下文接口有效。

注解
  右下角顶点坐标 (pc.Location.X + s.Width - 1, pc.Location.Y + s.Height - 1) 。

自从
  build 453

在文件 ystyle.cpp 第 42 行定义.

参考 DrawHLineSeg(), DrawPoint(), DrawVLineSeg(), g, YSLib::Drawing::Size::Height, r, YSLib::Drawing::Size::Width , 以及 YB_LIKELY.

函数调用图:

void YSLib::Drawing::DrawText | ( | const Graphics & | g,
|  | TextState & | ts,
|  | const String & | str,
|  | bool | line_wrap
| ) |  |

绘制文本。

参数

  g | 输出图形接口上下文。
  ts | 输出时使用的文本状态。
  str | 待绘制的字符串。
  line_wrap | 自动换行。

自从
  build 309

在文件 TextRenderer.cpp 第 236 行定义.

参考 DrawClippedText().

参考自 YReader::ShlExplorer::OnPaint(), YSLib::UI::TextBox::Refresh(), YSLib::UI::CheckButton::Refresh() , 以及 YSLib::UI::RadioButton::Refresh().

函数调用图:

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

void YSLib::Drawing::DrawText | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const String & | str,
|  | const Padding & | m,
|  | Color | c,
|  | bool | line_wrap,
|  | const Font & | fnt = `{}`
| ) |  |

绘制文本。

参数

  g | 输出图形接口上下文。
  bounds | 绘制区域的外边界。
  str | 待绘制的字符串。
  m | 绘制区域边界和外边界之间的边距。
  line_wrap | 自动换行。
  fnt | 输出时使用的字体。

自从
  build 309

在文件 TextRenderer.cpp 第 241 行定义.

参考 DrawClippedText().

函数调用图:

void YSLib::Drawing::DrawText | ( | TextRegion & | r,
|  | const Graphics & | g,
|  | const Point & | pt,
|  | const Size & | s,
|  | const String & | str,
|  | bool | line_wrap
| ) |  |

绘制文本。

参数

  r | 文本区域。
  g | 输出图形接口上下文。
  pt | 绘制区域左上角相对于图形接口上下文的位置偏移。
  s | 绘制区域大小。
  str | 待绘制的字符串。
  line_wrap | 自动换行。

注解
  间接绘制并贴图。

自从
  build 309

在文件 TextRenderer.cpp 第 247 行定义.

参考 BlitTo(), PutText() , 以及 platform_ex::Windows::s.

函数调用图:

void YSLib::Drawing::DrawTick | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Rect & | r,
|  | Color | c1,
|  | Color | c2
| ) |  |

注解
  使用指定颜色以及底色。

在文件 ystyle.cpp 第 138 行定义.

参考 DrawLineSeg(), YSLib::Drawing::Size::Height, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y , 以及 YB_LIKELY.

函数调用图:

void YSLib::Drawing::DrawVLineSeg | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | SPos | x,
|  | SPos | y1,
|  | SPos | y2,
|  | Color | c
| ) |  |

inline

描画竖直线段。

前置条件
  断言： `bool(g)` 。
  断言： bounds 在 g 指定的边界内。

参见
  PlotVLineSeg

在文件 ydraw.h 第 153 行定义.

参考 bounds, c, YSLib::UI::Contains, PlotVLineSeg() , 以及 YAssert.

参考自 DrawRect(), DrawRectRoundCorner(), YSLib::UI::DrawTrackBackground(), YSLib::UI::TextBox::PaintDefaultCaret() , 以及 RectDrawArrow().

函数调用图:

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

auto YSLib::Drawing::error | ( | :: | FT_New_Facecache.library, Path.c_str(), face_index,&face | ) |

参考自 YSLib::Drawing::FontCache::FontCache() , 以及 if().

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

const FamilyName YSLib::Drawing::family_name | ( | face-> | family_name | ) |

SDst YSLib::Drawing::FetchCharWidth | ( | const Font & | font,
|  | ucs4_t | c
| ) |  |

取指定的字符使用指定字体的显示宽度。

注解
  无边界限制。

自从
  build 280

在文件 TextLayout.cpp 第 71 行定义.

参考自 FetchStringOffsets() , 以及 FetchStringWidth().

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

const Typeface & YSLib::Drawing::FetchDefaultTypeface | ( |  | ) |

取默认字型引用。

异常

  LoggedEvent | 记录异常事件。

自从
  build 425

在文件 Font.cpp 第 367 行定义.

参考 platform::Descriptions::Critical, YSLib::FetchDefaultFontCache() , 以及 YB_UNLIKELY.

函数调用图:

SPos YSLib::Drawing::FetchLastLineBasePosition | ( | const TextState & | ts,
|  | SDst | h
| ) |  |

取指定文本状态在指定高的区域中表示的最底行的基线位置（纵坐标）。

注解
  若不足一行则最底行视为首行。

警告
  不检查边距正确性。若顶边距正确，则返回值应小于输入的高。

自从
  build 190

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

参考 FetchResizedLineN(), YSLib::Drawing::PenStyle::Font, YSLib::Drawing::Font::GetAscender(), YSLib::Drawing::TextState::Margin , 以及 YSLib::Drawing::Padding::Top.

参考自 PutString().

函数调用图:

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

Padding YSLib::Drawing::FetchMargin | ( | const Rect & | r,
|  | const Size & | s
| ) |  |

取内边界相对于外边界的边距。

在文件 ygdi.cpp 第 51 行定义.

参考 YSLib::Drawing::Size::Height, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

参考自 DrawClippedText() , 以及 YSLib::UI::TextBox::PaintDefaultCaret().

这是这个函数的调用关系图:
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

SDst YSLib::Drawing::FetchMaxTextWidth | ( | const Font & | font,
|  | _tIter | first,
|  | _tIter | last
| ) |  |

取指定字体显示的迭代器范围中的文本的最大宽度。

自从
  build 483

在文件 TextLayout.h 第 318 行定义.

参考 FetchStringWidth().

函数调用图:

SDst YSLib::Drawing::FetchResizedBottomMargin | ( | const TextState & | ts,
|  | SDst | h
| ) |  |

取指定文本状态和文本区域高调整的底边距。

前置条件
  断言： `GetTextLineHeightExOf(ts) != 0` 。

后置条件
  `ts.Margin.Bottom` 不小于原值。

返回
  返回调整后的底边距值（由字体大小、行距和高决定）。

自从
  build 252

在文件 TextLayout.cpp 第 44 行定义.

参考 YSLib::Drawing::Padding::Bottom, GetVerticalOf(), YSLib::Drawing::TextState::LineGap, YSLib::Drawing::TextState::Margin , 以及 YAssert.

参考自 AdjustBottomMarginOf() , 以及 FetchResizedBottomMargin().

函数调用图:

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

SDst YSLib::Drawing::FetchResizedBottomMargin | ( | const TextRegion & | tr | ) |

inline

取按字体高度和行距调整文本区域的底边距。

自从
  build 252

在文件 TextLayout.h 第 74 行定义.

参考 FetchResizedBottomMargin().

函数调用图:

u16 YSLib::Drawing::FetchResizedLineN | ( | const TextState & | ts,
|  | SDst | h
| ) |  |

取指定文本状态和文本区域高所能显示的最大文本行数。

前置条件
  断言： `GetTextLineHeightExOf(ts) != 0` 。

返回
  最大能容纳的文本行数。

自从
  build 252

在文件 TextLayout.cpp 第 52 行定义.

参考 GetVerticalOf(), YSLib::Drawing::TextState::LineGap, YSLib::Drawing::TextState::Margin , 以及 YAssert.

参考自 FetchLastLineBasePosition().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets | ( | size_t | max_width,
|  | const Font & | fnt,
|  | _tIter | s
| ) |  |

取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。

注解
  能被显示的（含不完整显示的）字符数和这些字符占用的。

自从
  build 484

注解
  迭代器 s 指向字符串首字符，迭代直至字符串结束符。

在文件 TextLayout.h 第 110 行定义.

参考 FetchCharWidth(), ystdex::is_undereferenceable(), r, YAssert , 以及 yunseq.

参考自 FetchStringOffsets().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets | ( | size_t | max_width,
|  | const Font & | fnt,
|  | _tIter | s,
|  | size_t | n,
|  | ucs4_t | c = `{}`
| ) |  |

取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。

注解
  迭代器 s 指向字符串首字符，迭代直至 n 次或指定字符 c 。

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

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets | ( | size_t | max_width,
|  | const Font & | fnt,
|  | _tIter | s,
|  | _tIter | g,
|  | ucs4_t | c = `{}`
| ) |  |

取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。

注解
  迭代器 s 指向字符串首字符，迭代直至边界迭代器 g 或指定字符 c 。

在文件 TextLayout.h 第 149 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets | ( | size_t | max_width,
|  | const Font & | fnt,
|  | const _tString & | str
| ) |  |

inline

取单行字符串在指定字体和宽度时的最多能显示的字符数和宽。

在文件 TextLayout.h 第 166 行定义.

参考 FetchStringOffsets().

函数调用图:
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets | ( | size_t | max_width,
|  | const Font & | fnt,
|  | const _tString & | str,
|  | size_t | n
| ) |  |

inline

取单行字符串前不超过 n 个字符在指定字体和宽度时的 最多能显示的字符数和宽。

在文件 TextLayout.h 第 177 行定义.

参考 FetchStringOffsets().

函数调用图:
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

SDst YSLib::Drawing::FetchStringWidth | ( | const Font & | fnt,
|  | _tIter | s
| ) |  |

取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。

注解
  迭代器 s 指向字符串首字符，迭代直至字符串结束符。

自从
  build 483

在文件 TextLayout.h 第 192 行定义.

参考 FetchCharWidth(), ystdex::is_undereferenceable(), platform_ex::Windows::s , 以及 YAssert.

参考自 FetchMaxTextWidth(), FetchStringWidth(), YSLib::UI::TextBox::InvalidateDefaultCaret() , 以及 YSLib::UI::TextBox::PaintDefaultCaret().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

SDst YSLib::Drawing::FetchStringWidth | ( | const Font & | fnt,
|  | _tIter | s,
|  | size_t | n,
|  | ucs4_t | c = `{}`
| ) |  |

取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。

注解
  迭代器 s 指向字符串首字符，迭代直至 n 次或指定字符 c 。

自从
  build 484

在文件 TextLayout.h 第 211 行定义.

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

SDst YSLib::Drawing::FetchStringWidth | ( | const Font & | fnt,
|  | _tIter | s,
|  | _tIter | g,
|  | ucs4_t | c = `{}`
| ) |  |

取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。

注解
  迭代器 s 指向字符串首字符，迭代直至边界迭代器 g 或指定字符 c 。

自从
  build 483

在文件 TextLayout.h 第 230 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

SDst YSLib::Drawing::FetchStringWidth | ( | const Font & | fnt,
|  | const _tString & | str
| ) |  |

inline

取单行字符串在字体指定、无边界限制时的显示宽度。

自从
  build 483

在文件 TextLayout.h 第 248 行定义.

参考 FetchStringWidth().

函数调用图:
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

SDst YSLib::Drawing::FetchStringWidth | ( | const Font & | fnt,
|  | const _tString & | str,
|  | size_t | n
| ) |  |

inline

取单行字符串前不超过 n 个字符在字体指定、无边界限制时的显示宽度。

自从
  build 484

在文件 TextLayout.h 第 259 行定义.

参考 FetchStringWidth().

函数调用图:
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

SDst YSLib::Drawing::FetchStringWidth | ( | TextState & | ts,
|  | SDst | h,
|  | _tIter | s
| ) |  |

取迭代器指定的单行字符串在指定文本状态和高度限制时的显示宽度。

注解
  迭代器 s 指向字符串首字符，迭代直至字符串结束符。
  字体由文本状态指定。

自从
  build 483

在文件 TextLayout.h 第 272 行定义.

参考 YSLib::Drawing::TextState::Pen, PrintString(), r , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

函数调用图:
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

SDst YSLib::Drawing::FetchStringWidth | ( | TextState & | ts,
|  | SDst | h,
|  | _tIter | s,
|  | _tIter | g,
|  | ucs4_t | c = `{}`
| ) |  |

取迭代器指定的单行字符串在指定文本状态和高度限制时的显示宽度。

注解
  迭代器 s 指向字符串首字符，迭代直至边界迭代器 g 或指定字符 c 。
  字体由文本状态指定。

自从
  build 483

在文件 TextLayout.h 第 289 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

SDst YSLib::Drawing::FetchStringWidth | ( | TextState & | ts,
|  | SDst | h,
|  | const _tString & | str
| ) |  |

inline

取单行字符串在指定文本状态和高度限制时的显示宽度。

注解
  字体由文本状态指定。

自从
  build 483

在文件 TextLayout.h 第 305 行定义.

参考 FetchStringWidth().

函数调用图:

void YSLib::Drawing::Fill | ( | const Graphics & | g,
|  | Color | c
| ) |  |

使用指定颜色填充图形接口上下文缓冲区。

自从
  build 177

在文件 yblit.cpp 第 95 行定义.

参考 GetAreaOf().

函数调用图:

void YSLib::Drawing::FillCircle | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Point & | pt,
|  | SDst | r,
|  | Color | c
| ) |  |

填充圆形。

在文件 ydraw.cpp 第 195 行定义.

参考 bounds, c, g, PlotHLineSeg() , 以及 r.

函数调用图:
template<typename _tPixel , typename _tOut >

void YSLib::Drawing::FillPixel | ( | _tOut | dst,
|  | size_t | n,
|  | _tPixel | c
| ) |  |

inline

使用 n 个指定像素连续填充指定位置。

在文件 yblit.h 第 435 行定义.

参考 c.

void YSLib::Drawing::FillRect | ( | const Graphics & | g,
|  | const Rect & | r,
|  | Color | c
| ) |  |

填充标准矩形。

前置条件
  断言：图形接口上下文有效。

注解
  右下角顶点坐标 (pt.X + s.Width - 1, pt.Y + s.Height - 1) 。

在文件 ydraw.cpp 第 146 行定义.

参考 c, r , 以及 YAssert.

参考自 YSLib::UI::TextBox::DrawClippedText(), YSLib::UI::DrawTrackBackground(), YReader::ShlExplorer::OnPaint(), YSLib::UI::SolidBrush::operator()() , 以及 YSLib::UI::ProgressBar::Refresh().

这是这个函数的调用关系图:
template<typename _tPixel , typename _tOut >

void YSLib::Drawing::FillRectRaw | ( | _tOut | dst,
|  | const Size & | ds,
|  | const Point & | sp,
|  | const Size & | sc,
|  | _tPixel | c
| ) |  |

inline

使用指定像素填充指定的标准矩形区域。

自从
  build 452

在文件 yblit.h 第 458 行定义.

参考 c.

template<typename _tPixel , typename _tOut >

void YSLib::Drawing::FillRectRaw | ( | _tOut | dst,
|  | const Size & | ds,
|  | const Rect & | r,
|  | _tPixel | c
| ) |  |

inline

在文件 yblit.h 第 466 行定义.

参考 c , 以及 r.

template<typename _tPixel , typename _tOut >

void YSLib::Drawing::FillRectRaw | ( | _tOut | dst,
|  | SDst | dw,
|  | SDst | dh,
|  | SPos | x,
|  | SPos | y,
|  | SDst | w,
|  | SDst | h,
|  | _tPixel | c
| ) |  |

inline

在文件 yblit.h 第 473 行定义.

参考 c.

template<typename _tPixel , typename _tOut >

void YSLib::Drawing::FillVerticalLine | ( | _tOut | dst,
|  | size_t | n,
|  | SDst | dw,
|  | _tPixel | c
| ) |  |

inline

使用 n 个指定像素竖直填充指定位置。

在文件 yblit.h 第 445 行定义.

参考 c.

YSLib::Drawing::format | ( | fmt |  | ) |

在文件 Image.cpp 第 242 行定义.

参考 handle().

参考自 YSLib::TranslateTime().

函数调用图:

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

Color YSLib::Drawing::GenerateRandomColor | ( |  | ) |

inline

自从
  build 360

在文件 ShellHelper.h 第 293 行定义.

yconstfn auto YSLib::Drawing::GetAreaOf | ( | const Size & | s | ) | -> decltype(s.Width * s.Height)

取面积。

自从
  build 319

在文件 ygdibase.h 第 404 行定义.

参考 platform_ex::Windows::s.

参考自 ClearImage(), YSLib::Drawing::CompactPixmap::CompactPixmap(), CopyBuffer(), Fill(), YSLib::Drawing::CompactPixmap::SetContent(), YSLib::Drawing::CompactPixmap::SetSize(), YSLib::Devices::Screen::Update() , 以及 platform_ex::Android::ScreenBuffer::UpdateFrom().

这是这个函数的调用关系图:
template<class _tRenderer >

SDst YSLib::Drawing::GetEndOfLinePositionOf | ( | const _tRenderer & | r | ) |

inline

取文本渲染器的行末位置（横坐标）。

自从
  build 372

在文件 CharRenderer.h 第 136 行定义.

参考自 PutChar().

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

SDst YSLib::Drawing::GetVerticalOf | ( | const Padding & | m | ) |

inline

取竖直边距和。

在文件 ygdi.h 第 116 行定义.

参考 YSLib::Drawing::Padding::Bottom , 以及 YSLib::Drawing::Padding::Top.

参考自 ClipMargin(), FetchResizedBottomMargin(), FetchResizedLineN(), YSLib::UI::TextBox::InvalidateDefaultCaret() , 以及 YSLib::UI::MTextList::RefreshTextState().

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

YSLib::Drawing::glyph_index_cache | ( |  | ) |

在文件 Font.cpp 第 270 行定义.

YSLib::Drawing::handle | ( | :: | FreeImage_OpenMemorystatic_cast< byte * >(buffer.data()), static_cast< ::DWORD >(buffer.size()) | ) |

参考自 format().

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

Color YSLib::Drawing::HSLToColor | ( | hsl_t | c | ) |

related

在文件 ystyle.cpp 第 200 行定义.

参考 YSLib::Drawing::hsl_t::h, YSLib::IsInClosedInterval(), YSLib::Drawing::hsl_t::l, YSLib::Drawing::hsl_t::s , 以及 YAssert.

参考自 RollColor().

函数调用图:

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

YSLib::Drawing::if | ( | YB_LIKELY(!error) |  | ) |

YSLib::Drawing::if | ( | YB_UNLIKELY(error) |  | ) |

在文件 Font.cpp 第 257 行定义.

参考 platform::Descriptions::Critical, error() , 以及 platform::yprintf().

函数调用图:

YSLib::Drawing::if | ( | ! | p_ff | ) |

new

void YSLib::Drawing::MovePen | ( | TextState & | ts,
|  | ucs4_t | c
| ) |  |

related

在文件 TextBase.cpp 第 80 行定义.

参考 YSLib::Drawing::PenStyle::Font, YSLib::Drawing::TextState::Pen , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

template<typename _type >

yconstfn bool YSLib::Drawing::operator!= | ( | const GBinaryGroup< _type > & | a,
|  | const GBinaryGroup< _type > & | b
| ) |  |

比较：屏幕二元组不等关系。

自从
  build 319

在文件 ygdibase.h 第 192 行定义.

yconstfn bool YSLib::Drawing::operator!= | ( | const Size & | a,
|  | const Size & | b
| ) |  |

比较：屏幕区域大小不等关系。

自从
  build 319

在文件 ygdibase.h 第 370 行定义.

bool YSLib::Drawing::operator!= | ( | const HMultiBitmap::iterator & | x,
|  | const HMultiBitmap::iterator & | y
| ) |  |

inline

在文件 Image.h 第 605 行定义.

Rect YSLib::Drawing::operator& | ( | const Rect & | a,
|  | const Rect & | b
| ) |  |

related

在文件 ygdibase.cpp 第 128 行定义.

template<typename _type , typename _tScalar >

yconstfn GBinaryGroup<_type> YSLib::Drawing::operator* | ( | const GBinaryGroup< _type > & | val,
|  | _tScalar | l
| ) |  |

数乘：屏幕二元组。

自从
  build 319

在文件 ygdibase.h 第 225 行定义.

参考 platform_ex::Windows::l.

Rect YSLib::Drawing::operator+ | ( | const Rect & | r,
|  | const Padding & | m
| ) |  |

related

在文件 ygdi.cpp 第 42 行定义.

参考 YSLib::Drawing::Padding::Bottom, YSLib::Drawing::Size::Height, YSLib::Drawing::Padding::Left, YSLib::Drawing::Padding::Right, YSLib::Drawing::Padding::Top, YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

template<typename _type >

yconstfn GBinaryGroup<_type> YSLib::Drawing::operator+ | ( | const GBinaryGroup< _type > & | a,
|  | const GBinaryGroup< _type > & | b
| ) |  |

加法：屏幕二元组。

自从
  build 319

在文件 ygdibase.h 第 203 行定义.

template<typename _type >

yconstfn GBinaryGroup<_type> YSLib::Drawing::operator+ | ( | GBinaryGroup< _type > | val,
|  | const Size & | s
| ) |  |

加法：使用屏幕二元组和屏幕区域大小分量对应相加构造屏幕二元组。

自从
  build 319

在文件 ygdibase.h 第 382 行定义.

参考 platform_ex::Windows::s.

template<typename _type >

yconstfn GBinaryGroup<_type> YSLib::Drawing::operator- | ( | const GBinaryGroup< _type > & | a,
|  | const GBinaryGroup< _type > & | b
| ) |  |

减法：屏幕二元组。

自从
  build 319

在文件 ygdibase.h 第 214 行定义.

CompactPixmapEx& YSLib::Drawing::operator= | ( | const CompactPixmapEx & | buf | ) |

在文件 ygdi.h 第 328 行定义.

参考 CompactPixmapEx().

参考自 ystdex::container_adaptor< _tSeqCon >::operator=().

函数调用图:

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

CompactPixmapEx& YSLib::Drawing::operator= | ( | CompactPixmapEx && | buf | ) |

在文件 ygdi.h 第 337 行定义.

参考 ystdex::swap().

函数调用图:
template<typename _type >

yconstfn bool YSLib::Drawing::operator== | ( | const GBinaryGroup< _type > & | a,
|  | const GBinaryGroup< _type > & | b
| ) |  |

比较：屏幕二元组相等关系。

自从
  build 319

在文件 ygdibase.h 第 181 行定义.

yconstfn bool YSLib::Drawing::operator== | ( | const Size & | a,
|  | const Size & | b
| ) |  |

比较：屏幕区域大小相等关系。

自从
  build 319

在文件 ygdibase.h 第 360 行定义.

bool YSLib::Drawing::operator== | ( | const HMultiBitmap::iterator & | x,
|  | const HMultiBitmap::iterator & | y
| ) |  |

在文件 Image.cpp 第 508 行定义.

Rect YSLib::Drawing::operator| | ( | const Rect & | a,
|  | const Rect & | b
| ) |  |

related

在文件 ygdibase.cpp 第 134 行定义.

auto& YSLib::Drawing::p_ff | ( | cache. | mFamilies[family_name] | ) |

return pair<std::reference_wrapper<FontFamily>, std::reference_wrapper<::FT_FaceRec_> >* YSLib::Drawing::p_ff | ( |  | ) |

YSLib::Drawing::PDefH | ( | void | ,
|  | DrawTick | ,
|  | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Rect & | r,
|  | Color | c
| ) |  |

inline

注解
  使用单一颜色。

c yconstfn YSLib::Drawing::PDefH | ( | Color | ,
|  | MakeGray | ,
|  | MonoType | g
| ) |  |

按指定分量取灰度色。

自从
  build 464

YSLib::Drawing::PDefH | ( | void | ,
|  | DrawLineSeg | ,
|  | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Point & | p1,
|  | const Point & | p2,
|  | Color | c
| ) |  |

inline

YSLib::Drawing::PDefH | ( | void | ,
|  | FillRect | ,
|  | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Rect & | r,
|  | Color | c
| ) |  |

inline

void YSLib::Drawing::PlotHLineSeg | ( | BitmapPtr | dst,
|  | const Rect & | bounds,
|  | SDst | w,
|  | SPos | y,
|  | SPos | x1,
|  | SPos | x2,
|  | Color | c
| ) |  |

绘制水平线段：在宽 w 的缓冲区内的区域 bounds 绘制指定端点水平坐标 x1 、 x2 - 1 ，竖直坐标 y 。

前置条件
  断言： `dst` 。

在文件 ydraw.cpp 第 39 行定义.

参考 c, YSLib::Drawing::Size::Height, YSLib::RestrictInInterval(), YSLib::RestrictLessEqual(), YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y, YAssert , 以及 YAssertNonnull.

参考自 DrawHLineSeg(), FillCircle() , 以及 PlotLineSeg().

函数调用图:

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

void YSLib::Drawing::PlotLineSeg | ( | BitmapPtr | dst,
|  | const Rect & | bounds,
|  | SDst | w,
|  | SPos | x1,
|  | SPos | y1,
|  | SPos | x2,
|  | SPos | y2,
|  | Color | c
| ) |  |

绘制线段：在宽 w 的缓冲区内的区域 bounds 绘制端点为 p1(x1, y1) 和 p2(x2, y2) 的线段。

前置条件
  间接断言： `dst` 。

在文件 ydraw.cpp 第 83 行定义.

参考 YSLib::UI::f, YSLib::FetchSign(), PlotHLineSeg(), PlotPixel(), PlotVLineSeg() , 以及 ystdex::swap().

参考自 DrawLineSeg().

函数调用图:

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

void YSLib::Drawing::PlotVLineSeg | ( | BitmapPtr | dst,
|  | const Rect & | bounds,
|  | SDst | w,
|  | SPos | x,
|  | SPos | y1,
|  | SPos | y2,
|  | Color | c
| ) |  |

绘制竖直线段：在宽 w 的缓冲区内的区域 bounds 绘制指定竖直水平坐标 x ， 竖直坐标 y1 - 1 、 y2 。

前置条件
  断言： `dst` 。

在文件 ydraw.cpp 第 61 行定义.

参考 c, YSLib::Drawing::Size::Height, YSLib::RestrictInInterval(), YSLib::RestrictLessEqual(), YSLib::Drawing::Size::Width, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y, YAssert , 以及 YAssertNonnull.

参考自 DrawVLineSeg() , 以及 PlotLineSeg().

函数调用图:

这是这个函数的调用关系图:
template<class _tRenderer >

void YSLib::Drawing::PrintChar | ( | _tRenderer & | r,
|  | ucs4_t | c
| ) |  |

打印单个可打印字符。

自从
  build 270

待办事项:
  行的结尾位置计算和边距解除耦合。

在文件 CharRenderer.h 第 148 行定义.

参考 r , 以及 YB_LIKELY.

参考自 PrintLine() , 以及 PrintString().

这是这个函数的调用关系图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PrintLine | ( | _tRenderer & | r,
|  | _tIter | s
| ) |  |

打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。

返回
  指向结束位置的迭代器。

注解
  迭代直至字符串结束符。

自从
  build 483

在文件 TextRenderer.h 第 52 行定义.

参考 PrintChar() , 以及 platform_ex::Windows::s.

参考自 PrintLine().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PrintLine | ( | _tRenderer & | r,
|  | _tIter | s,
|  | _tIter | g,
|  | ucs4_t | c = `{}`
| ) |  |

打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。
  g | 指示迭代终止位置的输入迭代器。
  c | 指向迭代终止的字符。

返回
  指向结束位置的迭代器。

注解
  迭代直至 g 指定的位置或指定位置的字符为 c 。

自从
  build 483

在文件 TextRenderer.h 第 74 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

String::size_type YSLib::Drawing::PrintLine | ( | _tRenderer & | r,
|  | const _tString & | str
| ) |  |

inline

打印字符串，直至行尾或字符串结束。

参数

  r | 使用的字符渲染器。
  str | 被输出的字符串。

返回
  打印字符数。

自从
  build 483

在文件 TextRenderer.h 第 93 行定义.

参考 PrintLine().

函数调用图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PrintString | ( | _tRenderer & | r,
|  | _tIter | s
| ) |  |

打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。

返回
  指向结束位置的迭代器。

注解
  迭代直至字符串结束符。

自从
  build 483

在文件 TextRenderer.h 第 171 行定义.

参考 PrintChar() , 以及 platform_ex::Windows::s.

参考自 FetchStringWidth() , 以及 PrintString().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PrintString | ( | _tRenderer & | r,
|  | _tIter | s,
|  | _tIter | g,
|  | ucs4_t | c = `{}`
| ) |  |

打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。
  g | 指示迭代终止位置的输入迭代器。
  c | 指向迭代终止的字符。

返回
  指向结束位置的迭代器。

注解
  迭代直至 g 指定的位置或指定位置的字符为 c 。

自从
  build 483

在文件 TextRenderer.h 第 190 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

String::size_type YSLib::Drawing::PrintString | ( | _tRenderer & | r,
|  | const _tString & | str
| ) |  |

inline

打印字符串，直至区域末尾或字符串结束。

参数

  r | 使用的字符渲染器。
  str | 被输出的字符串。

返回
  打印字符数。

自从
  build 483

在文件 TextRenderer.h 第 206 行定义.

参考 PrintString().

函数调用图:
template<class _tRenderer >

u8 YSLib::Drawing::PutChar | ( | _tRenderer & | r,
|  | ucs4_t | c
| ) |  |

打印单个字符。

返回
  遇到行内无法容纳而换行时返回非零值，否则返回 0 。

注解
  处理换行符。
  当行内无法容纳完整字符时换行。

自从
  build 190

在文件 CharRenderer.h 第 171 行定义.

参考 c, GetEndOfLinePositionOf(), PutCharBase() , 以及 r.

参考自 PutLine() , 以及 PutString().

函数调用图:

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

u8 YSLib::Drawing::PutCharBase | ( | TextState & | ts,
|  | SDst | eol,
|  | ucs4_t | c
| ) |  |

使用指定的文本状态和行末位置（横坐标）按需打印换行并判断是否需要渲染单个字符。

返回
  遇到行内无法容纳而换行时为 1 ，需要继续渲染为 2 ，否则为 0 。

自从
  build 372

在文件 CharRenderer.cpp 第 179 行定义.

参考 YSLib::Drawing::PenStyle::Font, YSLib::Drawing::TextState::Pen, YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YB_UNLIKELY.

参考自 PutChar().

这是这个函数的调用关系图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PutLine | ( | _tRenderer & | r,
|  | _tIter | s
| ) |  |

打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。

返回
  指向结束位置的迭代器。

注解
  迭代直至字符串结束符。
  当行内无法容纳完整字符时换行。

自从
  build 483

在文件 TextRenderer.h 第 110 行定义.

参考 PutChar() , 以及 platform_ex::Windows::s.

参考自 YSLib::DS::UI::DualScreenReader::Execute(), YSLib::DS::UI::DualScreenReader::PutLastLine(), PutLine(), PutText() , 以及 YSLib::UI::HexViewArea::Refresh().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PutLine | ( | _tRenderer & | r,
|  | _tIter | s,
|  | _tIter | g,
|  | ucs4_t | c = `{}`
| ) |  |

打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。
  g | 指示迭代终止位置的输入迭代器。
  c | 指向迭代终止的字符。

返回
  指向结束位置的迭代器。

注解
  迭代直至 g 指定的位置或指定位置的字符为 c 。
  当行内无法容纳完整字符时换行。

自从
  build 483

在文件 TextRenderer.h 第 134 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

String::size_type YSLib::Drawing::PutLine | ( | _tRenderer & | r,
|  | const _tString & | str
| ) |  |

inline

打印字符串，直至行尾或字符串结束。

参数

  r | 使用的字符渲染器。
  str | 被输出的字符串。

返回
  打印字符数。

注解
  当行内无法容纳完整字符时换行。

自从
  build 483

在文件 TextRenderer.h 第 155 行定义.

参考 PutLine().

函数调用图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PutString | ( | _tRenderer & | r,
|  | _tIter | s
| ) |  |

打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。

返回
  指向结束位置的迭代器。

注解
  迭代直至字符串结束符。
  当行内无法容纳完整字符时换行。

自从
  build 483

在文件 TextRenderer.h 第 223 行定义.

参考 FetchLastLineBasePosition(), PutChar() , 以及 platform_ex::Windows::s.

参考自 YSLib::DS::UI::DualScreenReader::LoadText(), PutString(), PutText() , 以及 YSLib::DS::UI::DualScreenReader::UpdateView().

函数调用图:

这是这个函数的调用关系图:
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >

_tIter YSLib::Drawing::PutString | ( | _tRenderer & | r,
|  | _tIter | s,
|  | _tIter | g,
|  | ucs4_t | c = `{}`
| ) |  |

打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。

参数

  r | 使用的字符渲染器。
  s | 指向字符串起始字符的输入迭代器。
  g | 指示迭代终止位置的输入迭代器。
  c | 指向迭代终止的字符。

返回
  指向结束位置的迭代器。

注解
  迭代直至 g 指定的位置或指定位置的字符为 c 。
  当行内无法容纳完整字符时换行。

自从
  build 483

在文件 TextRenderer.h 第 247 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

String::size_type YSLib::Drawing::PutString | ( | _tRenderer & | r,
|  | const _tString & | str
| ) |  |

inline

打印字符串，直至区域末尾或字符串结束。

参数

  r | 使用的字符渲染器。
  str | 被输出的字符串。

返回
  打印字符数。

注解
  当行内无法容纳完整字符时换行。

自从
  build 483

在文件 TextRenderer.h 第 268 行定义.

参考 PutString().

函数调用图:
template<typename... _tParams>

void YSLib::Drawing::PutText | ( | bool | multi,
|  | _tParams &&... | args
| ) |  |

打印文本。

参数

  multi | 指定是否可输出多行。
  args | 传递给 PutString 或 PutLine 的参数。

自从
  build 485

在文件 TextRenderer.h 第 281 行定义.

参考 YSLib::UI::args, PutLine(), PutString() , 以及 yforward.

参考自 YSLib::UI::TextBox::DrawClippedText(), DrawClippedText() , 以及 DrawText().

函数调用图:

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

void YSLib::Drawing::RectDrawArrow | ( | const PaintContext & | pc,
|  | SDst | half_size,
|  | Rotation | rot = `RDeg0`,
|  | Color | c = `ColorSpace::Black`
| ) |  |

在指定上下文的矩形中画箭头。

自从
  build 453

在文件 ystyle.cpp 第 68 行定义.

参考 bounds, DrawHLineSeg(), DrawVLineSeg(), g, RDeg0, RDeg180, RDeg270 , 以及 RDeg90.

参考自 DrawArrow().

函数调用图:

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

void YSLib::Drawing::RenderChar | ( | PaintContext && | pc,
|  | Color | c,
|  | bool | neg_pitch,
|  | CharBitmap::BufferType | cbuf,
|  | CharBitmap::FormatType | fmt,
|  | const Size & | ss
| ) |  |

渲染单个字符。

参数

  pc | 指定字符所在区域和渲染目标的绘制上下文， 其中 Location 为相对于源的坐标。

前置条件
  断言：缓冲区非空。

注解
  忽略 Alpha 缓冲。

自从
  build 415

在文件 CharRenderer.cpp 第 120 行定义.

参考 BlitGlyphPixels(), platform::Consoles::Gray , 以及 YAssert.

函数调用图:

void YSLib::Drawing::RenderCharAlpha | ( | PaintContext && | pc,
|  | Color | c,
|  | bool | neg_pitch,
|  | CharBitmap::BufferType | cbuf,
|  | CharBitmap::FormatType | fmt,
|  | const Size & | ss,
|  | AlphaType * | alpha
| ) |  |

渲染带 Alpha 缓冲的单个字符。

参数

  pc | 指定字符所在区域和渲染目标的绘制上下文， 其中 Location 为相对于源的坐标。

前置条件
  断言：缓冲区非空。

自从
  build 417

在文件 CharRenderer.cpp 第 149 行定义.

参考 BlitGlyphPixels(), CHRLib::c, platform::Consoles::Gray , 以及 YAssert.

函数调用图:

Color YSLib::Drawing::RollColor | ( | hsl_t | c,
|  | Hue | delta
| ) |  |

色调偏移。

前置条件
  断言：输入值在范围内。

自从
  build 472

在文件 ystyle.cpp 第 238 行定义.

参考 YSLib::Drawing::hsl_t::h, HSLToColor() , 以及 YAssert.

函数调用图:
template<typename _tOut , typename _tGen >

void YSLib::Drawing::ScrDraw | ( | _tOut | buf,
|  | _tGen && | f
| ) |  |

全屏幕描点。

注解
  颜色由坐标决定。

自从
  build 360

在文件 ShellHelper.h 第 307 行定义.

参考 YSLib::UI::f, yforward , 以及 yunseq.

参考自 YReader::FetchImage().

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

void YSLib::Drawing::SetCurrentTextLineNOf | ( | TextState & | ts,
|  | u16 | n
| ) |  |

related

在文件 TextBase.cpp 第 74 行定义.

参考 YSLib::Drawing::TextState::Pen , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

参考自 YSLib::DS::UI::DualScreenReader::Execute() , 以及 YSLib::DS::UI::DualScreenReader::MoveUpForLastLine().

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

sizeof (AlphaType) * GetAreaOf(GetSize())) using CompactPixmap void YSLib::Drawing::SetSize | ( | const Size & |  | ) |

override

重新设置缓冲区大小。

注解
  若有一边为零则删除缓冲区；若大于缓冲区空间则重新分配； 设置后清除缓冲区。

自从
  build 405

参考自 YSLib::UI::BufferedTextArea::BufferedTextArea().

这是这个函数的调用关系图:
template<class _fTransformPixel >

bool YSLib::Drawing::TransformRect | ( | const Graphics & | g,
|  | const Point & | pt,
|  | const Size & | s,
|  | _fTransformPixel | tp
| ) |  |

以像素为单位变换标准矩形。

自从
  build 166

在文件 yblit.h 第 529 行定义.

参考 platform_ex::Windows::s , 以及 YB_LIKELY.

template<class _fTransformPixel >

bool YSLib::Drawing::TransformRect | ( | const Graphics & | g,
|  | const Rect & | r,
|  | _fTransformPixel | tp
| ) |  |

inline

以像素为单位变换标准矩形。

自从
  build 166

在文件 yblit.h 第 546 行定义.

参考 g.

template<class _tBinary >

yconstfn _tBinary YSLib::Drawing::Transpose | ( | _tBinary & | obj | ) |

二元对象转置。

自从
  build 319

在文件 ygdibase.h 第 394 行定义.

YSLib::Drawing::~CompactPixmapEx | ( |  | ) |

override

析构：释放资源。

在文件 ygdi.h 第 318 行定义.

## 变量说明

pixmap YSLib::Drawing::bitmap

在文件 Image.cpp 第 317 行定义.

参考自 YSLib::Drawing::Typeface::SmallBitmapData::SmallBitmapData().

YSLib::Drawing::bounds

在文件 ydraw.h 第 188 行定义.

参考自 YSLib::UI::WidgetLoader::DetectWidgetNode(), DrawCircle(), DrawHLineSeg(), DrawLineSeg(), DrawPoint(), DrawVLineSeg(), FillCircle(), RectDrawArrow() , 以及 YSLib::UI::BorderResizer::Wrap().

pixmap YSLib::Drawing::bpp

初始值:
{
if(!bitmap)
throw LoggedEvent("Converting bitmap failed.")
YSLib::Drawing::bitmap
pixmap bitmap
Definition: Image.cpp:317

在文件 Image.cpp 第 318 行定义.

YSLib::Drawing::c

在文件 ystyle.h 第 93 行定义.

参考自 YSLib::UI::Styles::AddHandlers(), DrawCircle(), DrawClippedText(), DrawHLineSeg(), DrawLineSeg(), DrawPoint(), DrawRect(), DrawVLineSeg(), FillCircle(), FillPixel(), FillRect(), FillRectRaw(), FillVerticalLine(), PlotHLineSeg(), PlotVLineSeg(), PutChar() , 以及 PutPixel().

Typeface::Typeface (FontCache& cache, const FontPath& path, u32 i) ::FT_Face YSLib::Drawing::face

在文件 Font.cpp 第 243 行定义.

参考自 YSLib::Drawing::NativeFontSize::Activate(), YSLib::Drawing::FontCache::LoadTypefaces(), YSLib::Drawing::FontFamily::operator+=(), YSLib::Drawing::Typeface::SmallBitmapData::SmallBitmapData() , 以及 YSLib::Drawing::Typeface::~Typeface().

YSLib::Drawing::family_name

在文件 Font.cpp 第 267 行定义.

c yconstfn YSLib::Drawing::g

在文件 ystyle.h 第 104 行定义.

参考自 YSLib::Drawing::TextRegion::ClearLine(), ColorToHSL(), YSLib::UI::ImageBrush::DefaultUpdate(), DrawArrow(), DrawCircle(), YSLib::UI::TextBox::DrawClippedText(), YSLib::UI::DrawItems(), DrawRectRoundCorner(), YSLib::UI::DrawTrackBackground(), FillCircle(), YReader::ShlExplorer::OnPaint(), platform::Color::operator PixelType(), YSLib::UI::PaintEventArgs::PaintEventArgs(), RectDrawArrow(), YSLib::UI::ProgressBar::Refresh(), YSLib::UI::BufferedTextArea::Refresh(), TransformRect(), YSLib::UI::UpdatePixels(), YSLib::UI::BufferedRenderer::UpdateTo() , 以及 YSLib::UI::BufferedRenderer::Validate().

YSLib::Drawing::r

在文件 ydraw.h 第 220 行定义.

参考自 BlitGlyphLines(), BlitGlyphPixels(), ColorToHSL(), YSLib::Drawing::Rect::Contains(), YSLib::Drawing::Rect::ContainsStrict(), YSLib::UI::ImageBrush::DefaultUpdate(), YSLib::UI::Renderer::DefClone(), platform_ex::Windows::WindowReference::DefDeCopyCtor(), platform_ex::Android::WindowReference::DefDeCopyCtor(), DrawCircle(), YSLib::UI::DrawItems(), DrawRectRoundCorner(), YSLib::UI::DrawTrackBackground(), CHRLib::FetchMaxCharWidth(), FetchStringOffsets(), FetchStringWidth(), CHRLib::FillByte(), FillCircle(), FillRect(), FillRectRaw(), ystdex::get_mid(), YSLib::UI::Invalidate(), YSLib::UI::InvalidateChildren(), YSLib::UI::InvalidateSelected(), YSLib::UI::InvalidateVisible(), CHRLib::MBCToUC(), YReader::ShlExplorer::OnPaint(), platform::Color::operator PixelType(), YSLib::Drawing::Rect::operator+(), YSLib::Drawing::Rect::operator-(), YSLib::Drawing::Rect::operator|=(), YSLib::UI::BufferedRenderer::Paint(), PrintChar(), PutChar(), YSLib::UI::ProgressBar::Refresh(), YSLib::UI::BufferedTextArea::Refresh(), YSLib::FPSCounter::Refresh(), YSLib::UI::TextBox::ReplaceSelection(), YSLib::UI::WidgetLoader::TransformUILayout(), YSLib::UI::UpdatePixels() , 以及 YSLib::UI::BufferedRenderer::UpdateTo().

const Graphics const Size const Point const Point const Size YSLib::Drawing::Rotation = RDeg0)

在文件 ygdi.h 第 400 行定义.

YSLib::Drawing::size_t

在文件 ygdi.h 第 352 行定义.

参考自 platform_ex::UpdateKeyStates().

YSLib::Drawing::SizeOfBufferAlpha

在文件 ygdi.h 第 352 行定义.

if (YB_UNLIKELY(r >= sGraphics.Height)) throw std return pBuffer r* sGraphics YSLib::Drawing::Width

在文件 ygdibase.cpp 第 155 行定义.

参考自 YSLib::Drawing::Rect::ContainsStrict(), YSLib::UI::MoveToRight() , 以及 YSLib::Drawing::Rect::operator|=().

p1 p1 p2 YSLib::Drawing::X

在文件 ydraw.h 第 188 行定义.

参考自 platform::ImplRet(), YSLib::UI::MoveToBottom(), YSLib::UI::MoveToTop(), YReader::ShlTextReader::OnKeyDown() , 以及 YSLib::Drawing::Rect::operator|=().

p1 p1 p2 p2 YSLib::Drawing::Y

在文件 ydraw.h 第 188 行定义.

参考自 YSLib::UI::HorizontalTrack::HorizontalTrack(), platform::ImplRet(), YSLib::UI::MoveToLeft(), YSLib::UI::MoveToRight(), YReader::ShlTextReader::OnKeyDown() , 以及 YSLib::Drawing::Rect::operator|=().