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

YSTest PreAlpha_b900_20201012 The YSLib Test Project

命名空间 | 类 | 类型定义 | 枚举 | 函数 | 变量
YSLib::Drawing 命名空间参考

图形处理。 更多...

## 命名空间

| ColorSpace
| 取不透明像素。
| Shaders
| 着色器命名空间。

## 类

class | BadImageAlloc
| 图像资源分配失败异常：表示存储等资源不足导致无法创建图像。 更多...
class | BasicImage
| 使用 Graphics 定义的基本图像。 更多...
struct | BlitLineLoop
| 块传输扫描点循环操作。 更多...
struct | BlitScannerLoop
| 块传输扫描线循环操作。 更多...
class | CharBitmap
| 字符位图。 更多...
class | CompactPixmap
| 标准矩形像素图缓冲区。 更多...
class | CompactPixmapEx
| 使用 8 位 Alpha 扩展的标准矩形像素图缓冲区。 更多...
struct | ComponentTraits
| 分量特征。 更多...
struct | ComponentTraits< 1 >
struct | ComponentTraits< 8 >
struct | CopyLine
| 扫描线：按指定扫描顺序复制一行像素。 更多...
struct | CopyLine< false >
class | CustomTextRenderer
| 定制文本渲染器：使用自定义的渲染函数替代的 TextRenderer 。 更多...
class | EmptyTextRenderer
| 空文本渲染器。 更多...
class | Font
| 字体：字模，包含字型、样式和大小。 更多...
class | FontCache
| 字体缓存。 更多...
class | FontFamily
| 字型家族。 更多...
class | GBinaryGroup
| 屏幕二元组。 更多...
class | GGraphics
| 二维图形接口上下文模板。 更多...
class | GTextRendererBase
| 文本渲染器静态多态基类模板。 更多...
class | HBitmap
| 位图句柄：指向位图数据。 更多...
class | HImageMetadata
| 元数据句柄：表示打开的元数据和内容迭代状态。 更多...
class | HMultiBitmap
| 多页面位图句柄：指向多页面位图数据。 更多...
class | HS
| 按指定颜色或分量选取彩色或灰度色。 更多...
class | HSL
| HSL 颜色。 更多...
class | HSV
| HSV 颜色。 更多...
class | ImageBrush
| 图像画刷。 更多...
class | ImageCodec
class | ImageMemory
| 图像内存对象；保存图像内容的数据缓冲对象。 更多...
class | ImageMetadataFindData
| 图像元数据。 更多...
class | ImagePages
| 图像页面集。 更多...
class | ImageTag
| 图像元数据标签。 更多...
class | MultiBitmapData
class | NativeFontSize
| 字体异常。 更多...
struct | Padding
| 空白样式。 更多...
class | PenStyle
| 笔样式：字体和笔颜色。 更多...
class | Rect
| 屏幕标准矩形：表示屏幕矩形区域。 更多...
class | Size
| 屏幕区域大小。 更多...
class | SolidBlendBrush
| 单色 Alpha 混合画刷。 更多...
class | SolidBrush
| 单色画刷。 更多...
class | SolidCompositeBrush
| 单色 Alpha 组合画刷。 更多...
class | TextRegion
| 文本区域。 更多...
class | TextRenderer
| 文本渲染器：简单实现。 更多...
class | TextState
| 文本状态。 更多...
class | Typeface
| 字型。 更多...
class | UnknownImageFormat
| 未知图像格式异常：表示请求的操作涉及的图像格式因为不明确而不受库的支持。 更多...
class | UnsupportedImageFormat
| 未被支持的图像格式异常：表示请求的操作涉及的图像格式不受库的支持。 更多...
struct | VerticalLineTransfomer
| 竖直线转换器。 更多...
class | ZoomedImageCache
| 缩放图像缓冲。 更多...

## 类型定义

using | FontSize = std::uint8_t
| 字体大小。 更多...
using | FontPath = string
| 字体文件路径。 更多...
using | FamilyName = string
| 字型家族名称。 更多...
using | StyleName = string
| 字型样式名称。 更多...
using | BitPerPixel = std::uint8_t
using | HImageMetadataIterator = ystdex::indirect_input_iterator< HImageMetadata * >
| 元数据迭代器。 更多...
using | MonoType = octet
| 单色分量类型。 更多...
using | AlphaType = octet
| Alpha 分量类型。 更多...
using | Point = GBinaryGroup< SPos >
| 屏幕二维点（直角坐标表示）。 更多...
using | Vec = GBinaryGroup< SPos >
| 屏幕二维向量（直角坐标表示）。 更多...
using | BitmapPtr = Pixel *
using | ConstBitmapPtr = const Pixel *
using | ConstGraphics = GGraphics< ConstBitmapPtr >
using | Graphics = GGraphics< BitmapPtr >
using | ImageScale = ystdex::fixed_point< yimpl(std::uint32_t, 12U)>
| 图像缩放类型。 更多...
using | IteratorPair = ystdex::pair_iterator< ConstBitmapPtr, const AlphaType * >
| Alpha 光栅化源迭代器对。 更多...
template<typename... _types>
using | GBrushUpdater = GHEvent< void(const PaintContext &, _types...)>
| 画刷更新器类型。 更多...
template<class _tPixel >
using | MaskTrait = typename _tPixel::traits_type
template<class _tPixel , class _tMask >
using | EnableForMask = ystdex::enable_when< std::is_same< ystdex::detected_or_t< void, MaskTrait, _tPixel >, _tMask >::value >

## 枚举

enum | FontStyle : std::uint8_t { 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

ImageMetadataModel {
ImageMetadataModel::NoData = -1, ImageMetadataModel::Comments = 0, ImageMetadataModel::EXIF_Main = 1, ImageMetadataModel::EXIF_EXIF = 2,
ImageMetadataModel::EXIF_GPS = 3, ImageMetadataModel::EXIF_MakerNote = 4, ImageMetadataModel::EXIF_Interop = 5, ImageMetadataModel::IPTC = 6,
ImageMetadataModel::XMP = 7, ImageMetadataModel::GeoTIFF = 8, ImageMetadataModel::Animation = 9, ImageMetadataModel::Custom = 10,
ImageMetadataModel::EXIF_RAW = 11
}

| 图像元数据模型标识。 更多...
enum | Rotation : yimpl(size_t) { RDeg0 = 0, RDeg90 = 1, RDeg180 = 2, RDeg270 = 3 }
| 逆时针旋转角度指示输出指向。 更多...
enum | PutCharResult { PutCharResult::NeedNewline, PutCharResult::PutNewline, PutCharResult::NotPrintable, PutCharResult::Normal }
| 输出字符结果。 更多...

## 函数

YB_ATTR_nodiscard YF_API const Typeface & | FetchDefaultTypeface ()
| 取默认字型引用。 更多...
YB_ATTR_nodiscard YF_API YB_PURE Size | GetLogicalSizeOf (const HBitmap &)
| 取图像逻辑大小。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn bool | operator== (const GBinaryGroup< _type > &x, const GBinaryGroup< _type > &y) ynothrow
| 比较：屏幕二元组相等关系。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup< _type > | operator+ (const GBinaryGroup< _type > &x, const GBinaryGroup< _type > &y) ynothrow
| 加法：屏幕二元组。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup< _type > | operator- (const GBinaryGroup< _type > &x, const GBinaryGroup< _type > &y) ynothrow
| 减法：屏幕二元组。 更多...
template<typename _type , typename _tScalar >
YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup< _type > | operator* (const GBinaryGroup< _type > &val, _tScalar l) ynothrow
| 数乘：屏幕二元组。 更多...
template<class _tBinary >
YB_ATTR_nodiscard YB_PURE yconstfn _tBinary | Transpose (const _tBinary &obj) ynothrow
| 转置。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup< _type > | TransposeCCW (const GBinaryGroup< _type > &val) ynothrow
| 转置变换：逆时针旋转直角。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup< _type > | TransposeCW (const GBinaryGroup< _type > &val) ynothrow
| 转置变换：顺时针旋转直角。 更多...
template<size_t _vIdx, typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn _type & | get (GBinaryGroup< _type > &val)
| 取分量。 更多...
template<size_t _vIdx, typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn const _type & | get (const GBinaryGroup< _type > &val)
template<typename _type >
YB_ATTR_nodiscard YB_PURE std::string | to_string (const GBinaryGroup< _type > &val)
| 转换为字符串。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup< _type > | operator+ (GBinaryGroup< _type > val, const Size &s) ynothrow
| 加法：使用屏幕二元组和屏幕区域大小分量对应相加构造屏幕二元组。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup< _type > | operator- (GBinaryGroup< _type > val, const Size &s) ynothrow
| 减法：使用屏幕二元组和屏幕区域大小分量对应相加构造屏幕二元组。 更多...
YB_ATTR_nodiscard YB_PURE yconstfn | PDefH (Size, Transpose, const Size &s) ynothrow ImplRet(
| 转置。 更多...
template<typename _tScalar = float>
YB_ATTR_nodiscard YB_PURE yconstfn _tScalar | ScaleMin (const Size &x, const Size &y, _tScalar threshold=1.F)
| 计算两个大小和阈值限定的最小缩放值。 更多...
YB_ATTR_nodiscard YB_STATELESS yconstfn Rotation rot | ImplRet (Rotation((size_t(rot)+1) % 4)) YB_ATTR_nodiscard YB_STATELESS yconstfn PDefH(Rotation
YB_ATTR_nodiscard YB_STATELESS yconstfn Rotation rot Rotation rot | ImplRet (Rotation((size_t(rot) - 1) % 4)) enum Orientation
| 二元方向。 更多...
template<typename _tOut , typename _tIn >
void | CopyBitmapBuffer (_tOut p_dst, _tIn p_src, const Size &s)
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 >
SPos | GetEndOfLinePositionOf (const _tRenderer &rd)
| 取文本渲染器的行末位置（横坐标）。 更多...
template<class _tRenderer >
SPos | GetEndOfLineOffsetOf (const _tRenderer &rd)
| 取文本渲染器的行末位置剩余偏移。 更多...
template<class _tRenderer >
void | PrintChar (_tRenderer &rd, char32_t c)
| 打印单个可打印字符。 更多...
YF_API PutCharResult | PutCharBase (TextState &, SDst, char32_t)
| 使用指定的文本状态和行末位置按需打印换行并判断是否需要渲染单个字符。 更多...
template<class _tRenderer >
PutCharResult | PutChar (_tRenderer &rd, char32_t c, SDst eol)
| 打印单个字符。 更多...
template<class _tRenderer >
PutCharResult | PutChar (_tRenderer &rd, char32_t c)
template<class _tRenderer , typename _tChar , typename... _tParams>
PutCharResult | PutChar (_tRenderer &rd, _tChar c, _tParams &&... args)
YF_API CompactPixmap | Zoom (const HBitmap &, ImageScale)
| 缩放位图。 更多...
yconstexpr const Padding | DefaultMargin (2, 2, 2, 2)
| 默认边距。 更多...
const TextState &ts | ImplRet (SDst(ts.Font.GetHeight()+ts.LineGap)) inline PDefH(ptrdiff_t
| 取笔所在的当前行数。 更多...
const TextState &ts const TextState &ts | ImplRet ((ts.Pen.Y - ts.Margin.Top)/SPos(GetTextLineHeightExOf(ts))) inline PDefH(SPos
| 取第一行的基线位置（纵坐标）。 更多...
const TextState &ts const TextState &ts const TextState &ts | ImplRet (ts.Margin.Top+SPos(ts.Font.GetAscender())) inline PDefH(void
| 设置笔位置。 更多...
const TextState &ts const TextState &ts const TextState &ts TextState SPos SPos y | ImplExpr (ts.Pen=Point(x, y)) YF_API void SetCurrentTextLineNOf(TextState &
| 设置笔的行位置。 更多...
| PDefH (void, AdjustEndOfLine, TextState &ts, const Rect &r, SDst w) ImplExpr(ts.Margin.Right
| 按指定显示区域和文本区域的宽重新设置右边距。 更多...
YB_ATTR_nodiscard YF_API YB_PURE SDst | FetchResizedBottomMargin (const TextState &, SDst)
| 取指定文本状态和文本区域高调整的底边距。 更多...
YB_ATTR_nodiscard YF_API YB_PURE std::uint16_t | FetchResizedLineN (const TextState &ts, SDst)
| 取指定文本状态和文本区域高所能显示的最大文本行数。 更多...
YB_ATTR_nodiscard YF_API YB_PURE SPos | FetchLastLineBasePosition (const TextState &, SDst)
| 取指定文本状态在指定高的区域中表示的最底行的基线位置（纵坐标）。 更多...
YB_ATTR_nodiscard YB_PURE | PDefH (SDst, FetchResizedBottomMargin, const TextRegion &tr) ImplRet(FetchResizedBottomMargin(tr
| 取按字体高度和行距调整文本区域的底边距。 更多...
YB_ATTR_nodiscard YB_PURE tr | GetHeight ())) inline PDefH(void
| 按字体高度和行距调整文本区域的底边距。 更多...
YB_ATTR_nodiscard YB_PURE tr TextRegion &tr | ImplExpr (tr.Margin.Bottom=SPos(FetchResizedBottomMargin(tr))) YB_ATTR_nodiscard YF_API YB_PURE SDst FetchCharWidth(const Font &
| 取指定的字符使用指定字体的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
YB_ATTR_nodiscard YB_PURE 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 >) >
YB_ATTR_nodiscard YB_PURE pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, _tIter s, size_t n, char32_t c={})
| 取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
YB_ATTR_nodiscard YB_PURE pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, _tIter s, _tIter g, char32_t c={})
| 取迭代器指定的单行字符串在指定字体和宽度时的最多能显示的字符数和宽。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
YB_ATTR_nodiscard YB_PURE 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 >) >
YB_ATTR_nodiscard YB_PURE pair< size_t, SDst > | FetchStringOffsets (size_t max_width, const Font &fnt, const _tString &str, size_t n)
| 取单行字符串前不超过 n 个字符在指定字体和宽度时的 最多能显示的字符数和宽。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (const Font &fnt, _tIter s)
| 取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (const Font &fnt, _tIter s, size_t n, char32_t c={})
| 取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (const Font &fnt, _tIter s, _tIter g, char32_t c={})
| 取迭代器指定的单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (const Font &fnt, const _tString &str)
| 取单行字符串在字体指定、无边界限制时的显示宽度。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (const Font &fnt, const _tString &str, size_t n)
| 取单行字符串前不超过 n 个字符在字体指定、无边界限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (TextState &ts, SDst h, _tIter s)
| 取迭代器指定的单行字符串在指定文本状态和高度限制时的显示宽度。 更多...
template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (TextState &ts, SDst h, _tIter s, _tIter g, char32_t c={})
| 取迭代器指定的单行字符串在指定文本状态和高度限制时的显示宽度。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchStringWidth (TextState &ts, SDst h, const _tString &str)
| 取单行字符串在指定文本状态和高度限制时的显示宽度。 更多...
template<typename _tIn , yimpl(typename=ystdex::enable_for_iterator_t< _tIn >) >
YB_ATTR_nodiscard YB_PURE SDst | FetchMaxTextWidth (const Font &font, _tIn first, _tIn last)
| 取指定字体显示的迭代器范围中的文本的最大宽度。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintLine (_tRenderer &rd, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintLine (_tRenderer &rd, _tIter s, _tIter g, char32_t c={})
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PrintLine (_tRenderer &rd, const _tString &str)
| 打印字符串，直至行尾或字符串结束。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintString (_tRenderer &rd, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PrintString (_tRenderer &rd, _tIter s, _tIter g, char32_t c={})
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PrintString (_tRenderer &rd, const _tString &str)
| 打印字符串，直至区域末尾或字符串结束。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutLine (_tRenderer &rd, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutLine (_tRenderer &rd, _tIter s, _tIter g, char32_t c={})
| 打印迭代器指定的起始字符的字符串，直至行尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PutLine (_tRenderer &rd, const _tString &str)
| 打印字符串，直至行尾或字符串结束。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutString (_tRenderer &rd, _tIter s)
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter | PutString (_tRenderer &rd, _tIter s, _tIter g, char32_t c={})
| 打印迭代器指定的起始字符的字符串，直至区域末尾或字符迭代终止。 更多...
template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type | PutString (_tRenderer &rd, const _tString &str)
| 打印字符串，直至区域末尾或字符串结束。 更多...
template<typename... _tParams>
void | PutText (bool multi, _tParams &&... args)
| 打印文本。 更多...
YF_API void | DrawClippedText (const Graphics &g, const Rect &bounds, TextState &ts, const String &str, bool line_wrap)
| 绘制剪切区域的文本。 更多...
YF_API void | DrawClippedText (const Graphics &g, const Rect &bounds, const Rect &r, 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)
template<typename _tPixel , typename _tOut , typename... _tParams>
void | BlendRectRaw (_tOut dst, _tPixel c, _tParams &&... args)
| 使用指定像素 Alpha 混合指定的标准矩形区域。 更多...
YF_API void | BlendRect (const Graphics &, const Rect &, Color)
template<typename _tPixel , typename _tOut , typename... _tParams>
void | CompositeRectRaw (_tOut dst, _tPixel c, _tParams &&... args)
| 使用指定像素 Alpha 组合指定的标准矩形区域。 更多...
YF_API void | CompositeRect (const Graphics &, const Rect &, Color)
YF_API bool | BlitBounds (const Point &, const Point &, const Size &, const Size &, const Size &, SDst &, SDst &, SDst &, SDst &)
| 块传输边界计算器。 更多...
template<bool _bDec>
YB_ATTR_nodiscard YB_STATELESS yconstfn size_t | BlitScaleComponent (SPos d, SPos s, SDst delta) ynothrow
| 块传输偏移分量计算器。 更多...
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<typename _func , typename _tOut , typename _tIn >
void | BlitRect (_func f, _tOut dst, _tIn src, const Size &ds, const Size &ss, const Point &dp, const Point &sp, const Size &sc)
| 矩形块传输函数模板。 更多...
template<typename _func , typename _tOut , typename _tIn >
void | BlitRect (_func f, _tOut dst, _tIn src, const Size &ds, const Point &sp, const Size &sc)
template<typename _func , typename _tOut , typename _tIn >
void | BlitRect (_func f, _tOut dst, _tIn src, const Size &ds, const Rect &r)
template<typename _func , typename _tOut , typename _tIn >
void | BlitRect (_func f, _tOut dst, _tIn src, SDst dw, SDst dh, SPos x, SPos y, SDst w, SDst h)
template<typename _tOut , typename _tIn , typename _fBlitScanner , typename... _tParams>
void | BlitRectLines (_fBlitScanner scanner, _tOut dst, _tIn src, _tParams &&... args)
| 根据指定批量操作（块传输扫描器或像素着色器）函数对象对矩形像素块进行批量操作。 更多...
template<typename _tOut , typename _tIn , typename _fPixelShader , typename... _tParams>
void | BlitRectPixels (_fPixelShader shader, _tOut dst, _tIn src, _tParams &&... args)
template<typename _func >
void | DispatchTranspose (ystdex::false_, _func updater, const ConstGraphics &src)
| 分派用于着色器更新的可能转置的图像。 更多...
template<typename _func >
void | DispatchTranspose (ystdex::true_, _func updater, const ConstGraphics &src)
template<typename _tOut >
_tOut | ClearPixels (_tOut dst, size_t n) ynothrowv
| 显示缓存操作：清除/以纯色像素填充。 更多...
template<typename _tPixel , typename _tOut >
void | FillPixels (_tOut dst_iter, 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 , typename... _tParams>
void | FillRectRaw (_tOut dst, _tPixel c, _tParams &&... args)
| 使用指定像素填充指定的标准矩形区域。 更多...
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 ConstGraphics &)
| 以第一参数作为目标，复制第二参数的缓冲区内容。 更多...
YF_API void | ClearImage (const Graphics &)
| 清除图形接口上下文缓冲区。 更多...
YF_API void | Fill (const Graphics &, Color)
| 使用指定颜色填充图形接口上下文缓冲区。 更多...
template<typename _fPixelShader , bool _bSwapLR = false, bool _bSwapUD = false>
void | UpdatePixels (_fPixelShader shader, const PaintContext &pc, const Drawing::Image &img, const Point &dst_offset, const Point &src_offset)
| 更新：逐像素操作。 更多...
template<typename _fPixelShader , bool _bSwapLR = false, bool _bSwapUD = false>
void | UpdateTranposedPixels (_fPixelShader shader, const PaintContext &pc, const Drawing::Image &img, const Point &dst_offset, const Point &src_offset)
| 更新：转置的逐像素操作。 更多...
template<Rotation _vRot = RDeg0, typename _fPixelShader = Shaders::BlitAlphaPoint>
void | UpdatePixelsWithRotation (_fPixelShader shader, const PaintContext &pc, const Drawing::Image &img, const Point &dst_offset, const Point &src_offset)
| 更新：可能旋转源图像的像素操作。 更多...
template<Rotation _vRot = RDeg0, typename _fPixelShader = Shaders::BlitAlphaPoint>
void | UpdateRotatedBrush (const PaintContext &pc, const Drawing::Image &img, const Point &dst_offset, const Point &src_offset)
| 使用默认构造的画刷更新：可能旋转源图像的像素操作。 更多...
template<typename _fPixelShader = Shaders::BlitAlphaPoint, typename _tImage = Drawing::Image>
GBrushUpdater< const _tImage &, const Point &, const Point & > | DispatchRotatedBrush (Rotation rot)
| 按指定的源图像旋转方向构造画刷。 更多...
| PDefH (void, PutPixel, BitmapPtr dst, SDst w, SPos x, SPos y, Color c) ImplExpr(Nonnull(dst)[y *ptrdiff_t(w)+x]
| 修改指定位置的像素：(x, y) 。 更多...
| PDefH (void, DrawHLineSeg, const Graphics &g, const Rect &bounds, SPos y, SPos x1, SPos x2, Color c) ImplExpr(YAssert(bounds.IsUnstrictlyEmpty()||Rect(g.GetSize()).Contains(bounds)
| 描画水平线段。 更多...
The boundary is out of the | PlotHLineSeg (g.GetBufferPtr(), bounds, g.GetWidth(), y, x1, x2, c)) YF_API void PlotVLineSeg(BitmapPtr dst
| 绘制竖直线段：在宽 w 的缓冲区内的区域 bounds 绘制指定竖直水平坐标 x ， 竖直坐标 y1 - 1 、 y2 。 更多...
| PDefH (void, DrawVLineSeg, const Graphics &g, const Rect &bounds, SPos x, SPos y1, SPos y2, Color c) ImplExpr(YAssert(bounds.IsUnstrictlyEmpty()||Rect(g.GetSize()).Contains(bounds)
| 描画竖直线段。 更多...
The boundary is out of the | PlotVLineSeg (g.GetBufferPtr(), bounds, g.GetWidth(), x, y1, y2, c)) YF_API void PlotLineSeg(BitmapPtr dst
| 绘制线段：在宽 w 的缓冲区内的区域 bounds 绘制端点为 p1(x1, y1) 和 p2(x2, y2) 的线段。 更多...
| PDefH (void, DrawLineSeg, const Graphics &g, const Rect &bounds, SPos x1, SPos y1, SPos x2, SPos y2, Color c) ImplExpr(YAssert(bounds.IsUnstrictlyEmpty()||Rect(g.GetSize()).Contains(bounds)
| 描画线段：在区域 ds 绘制端点为 p1(x1, y1) 和 p2(x2, y2) 的线段。 更多...
The boundary is out of the | PlotLineSeg (g.GetBufferPtr(), bounds, g.GetWidth(), x1, y1, x2, y2, c)) inline PDefH(void
The boundary is out of the const Graphics const Rect const Point const Point Color c | ImplExpr (DrawLineSeg(g, bounds, p1.X, p1.Y, p2.X, p2.Y, c)) YF_API void DrawRect(const Graphics &g
| 描画标准矩形。 更多...
| PDefH (void, DrawRect, const Graphics &g, const Rect &bounds, const Point &pt, const Size &s, Color c) ImplExpr(DrawRect(g
c YF_API void | FillRect (const Graphics &g, const Rect &r, Color c)
| 填充标准矩形。 更多...
| PDefH (void, FillRect, const Graphics &g, const Rect &bounds, const Rect &r, Color c) ImplExpr(FillRect(g
bounds c YF_API void | DrawCircle (const Graphics &g, const Rect &bounds, const Point &, SDst, Color)
| 描画圆形。 更多...
YF_API void | FillCircle (const Graphics &g, const Rect &bounds, const Point &, SDst, Color)
| 填充圆形。 更多...
template<typename _tIn >
void | DrawPolygon (Graphics &g, const Rect &bounds, _tIn first, _tIn last, Color c)
| 描画多边形。 更多...
YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE | PDefHOp (Padding,+, const Padding &x, const Padding &y) ynothrow ImplRet(Padding(x.Left+y.Left
| 加法：对应分量调用 operator+ 。 更多...
YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE | PDefHOp (Padding, -, const Padding &x, const Padding &y) ynothrow ImplRet(Padding(x.Left - y.Left
| 减法：对应分量调用 operator- 。 更多...
YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE | PDefHOp (Padding, *, const Padding &x, size_t n) ynothrow ImplRet(Padding(SPos(x.Left *ptrdiff_t(n))
| 乘法：对应分量调用 operator* 。 更多...
YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE | SPos (x.Right *ptrdiff_t(n))
YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE | SPos (x.Top *ptrdiff_t(n))
YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE | SPos (x.Bottom *ptrdiff_t(n)))) YB_ATTR_nodiscard YF_API YB_PURE Rect operator+(const Rect &
| 加法：缩小屏幕标准矩形，相对位置由指定边距决定。 更多...
YB_ATTR_nodiscard YB_PURE | PDefHOp (Rect, -, const Rect &r, const Padding &m) ynothrow ImplRet(r+-m) YB_ATTR_nodiscard YB_PURE yconstfn PDefH(SDst
| 减法：放大屏幕标准矩形，相对位置由指定边距决定。 更多...
YB_ATTR_nodiscard YB_PURE const Padding &m ynothrowv | ImplRet (SDst(ystdex::max< SPos >(0, m.Left)+ystdex::max< SPos >(0, m.Right))) YB_ATTR_nodiscard YB_PURE yconstfn PDefH(SDst
| 取竖直边距和。 更多...
YB_ATTR_nodiscard YB_PURE const Padding &m ynothrowv const Padding &m ynothrowv | ImplRet (SDst(ystdex::max< SPos >(0, m.Top)+ystdex::max< SPos >(0, m.Bottom))) YB_ATTR_nodiscard YF_API YB_PURE Padding FetchMargin(const Rect &
| 取内边界相对外边界的边距。 更多...
YB_ATTR_nodiscard | PDefH (bool, Clip, Rect &x, const Rect &y) ynothrow ImplRet(x &
| 剪切操作：取标准矩形交集并判断是否严格非空。 更多...
YB_ATTR_nodiscard !x | IsUnstrictlyEmpty ()) YB_ATTR_nodiscard YF_API Point ClipBounds(Rect &
| 根据指定源的边界优化绘制上下文的剪切区域。 更多...
YB_ATTR_nodiscard YF_API Point | ClipMargin (PaintContext &, const Padding &, const Size &) ynothrow
| 根据指定边距和源的大小优化绘制上下文的剪切区域。 更多...
YF_API bool | CopyTo (BitmapPtr, const ConstGraphics &, const Size &, const Point &, const Point &, const Size &, Rotation=RDeg0)
| 图形接口上下文向指针指定的缓冲区复制。 更多...
YF_API bool | CopyTo (BitmapPtr, const CompactPixmapEx &, const Size &, const Point &, const Point &, const Size &, Rotation=RDeg0)
| 位图缓冲区向指针指定的缓冲区复制。 更多...
| PDefH (bool, CopyTo, const Graphics &dst, const ConstGraphics &src, const Point &dp={}, const Point &sp={}, Rotation rot=RDeg0) ImplRet(CopyTo(dst.GetBufferPtr()
| 图形接口上下文复制。 更多...
dst | GetSize ()
dst src rot | PDefH (bool, CopyTo, const Graphics &dst, const CompactPixmapEx &src, const Point &dp={}, const Point &sp={}, Rotation rot=RDeg0) ImplRet(CopyTo(dst.GetBufferPtr()
| 位图缓冲区向图形接口上下文复制。 更多...
dst src rot dst src rot YF_API bool | BlitTo (BitmapPtr, const CompactPixmapEx &, const Size &, const Point &, const Point &, const Size &, Rotation=RDeg0)
| 贴图：位图缓冲区向指针指定的缓冲区以贴图算法复制。 更多...
| PDefH (bool, BlitTo, const Graphics &dst, const CompactPixmapEx &src, const Point &dp={}, const Point &sp={}, Rotation rot=RDeg0) ImplRet(BlitTo(dst.GetBufferPtr()
| 贴图：位图缓冲区向指针指定的缓冲区以贴图算法复制。 更多...
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 | RectDrawArrowOutline (const PaintContext &, SDst, Rotation=RDeg0, Color=ColorSpace::Black)
| 在指定上下文的矩形中描画底边和坐标轴共线的等腰直角三角形箭头轮廓。 更多...
YF_API void | RectDrawCornerArrow (const PaintContext &, SDst, Rotation=RDeg0, Color=ColorSpace::Black)
| 在指定上下文的矩形中描画腰和坐标轴共线的等腰直角三角形箭头。 更多...
YF_API void | RectDrawCornerArrowOutline (const PaintContext &, SDst, Rotation=RDeg0, Color=ColorSpace::Black)
| 在指定上下文的矩形中描画腰和坐标轴共线的等腰直角三角形箭头轮廓。 更多...
YF_API void | DrawArrow (const Graphics &, const Rect &, const Rect &, SDst=4, Rotation=RDeg0, Color=ColorSpace::Black, bool={})
| 在指定图形接口上下文上描画底边和坐标轴共线的等腰直角三角形箭头。 更多...
YF_API void | DrawCornerArrow (const Graphics &, const Rect &, const Point &, SDst=4, Rotation=RDeg0, Color=ColorSpace::Black, bool={})
| 在指定图形接口上下文上描画腰和坐标轴共线的等腰直角三角形箭头。 更多...
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 | PDefH (Color, MakeGray, MonoType g) ImplRet(Color(g
| 按指定分量取灰度色。 更多...
| ImplDeDtor (FontException) namespace
| ImplDeDtor (BadImageAlloc) ImplDeDtor(UnsupportedImageFormat) ImplDeDtor(UnknownImageFormat) void ImageMemory
TimeSpan | GetFrameTimeOf (const HBitmap &bmp)
string | to_string (const ImageTag &tag, ImageMetadataModel model)
std::string | to_string (const Size &s)
std::string | to_string (const Rect &r)
void | SetCurrentTextLineNOf (TextState &ts, std::uint16_t n)
void | MovePen (TextState &ts, char32_t c)
SDst | FetchCharWidth (const Font &fnt, char32_t c)
| ImplDeDtor (TextRegion) void TextRegion
void | PlotHLineSeg (BitmapPtr dst, const Rect &bounds, SDst w, SPos y, SPos x1, SPos x2, Color c)
void | PlotVLineSeg (BitmapPtr dst, const Rect &bounds, SDst w, SPos x, SPos y1, SPos y2, Color c)
void | PlotLineSeg (BitmapPtr dst, const Rect &bounds, SDst w, SPos x1, SPos y1, SPos x2, SPos y2, Color c)
void | DrawRect (const Graphics &g, const Rect &bounds, const Rect &r, Color c)
Rect | operator+ (const Rect &r, const Padding &m) ynothrow
Padding | FetchMargin (const Rect &r, const Size &s) ynothrow
Point | ClipBounds (Rect &clip, const Rect &bounds) ynothrow
| ImplDeDtor (BasicImage) CompactPixmap

## 变量

| FetchName
YB_ATTR_nodiscard YB_STATELESS yconstfn | RotateCCW
YB_ATTR_nodiscard YB_STATELESS yconstfn Rotation rot | RotateCW
| GetTextLineHeightExOf
const TextState &ts | GetCurrentTextLineNOf
const TextState &ts const TextState &ts | GetTextLineBaseOf
const TextState &ts const TextState &ts const TextState &ts | SetPenOf
const TextState &ts const TextState &ts const TextState &ts TextState & | ts
const TextState &ts const TextState &ts const TextState &ts TextState SPos | x
YB_ATTR_nodiscard YB_PURE tr | AdjustBottomMarginOf
YB_ATTR_nodiscard YB_PURE tr TextRegion &tr | char32_t
The boundary is out of the | buffer
The boundary is out of the const Rect & | bounds
The boundary is out of the const Rect SDst | w
The boundary is out of the const Rect SDst SPos SPos | y1
The boundary is out of the const Rect SDst SPos SPos SPos | y2
The boundary is out of the const Rect SDst SPos SPos SPos | Color
The boundary is out of the const Rect SDst SPos | x1
The boundary is out of the const Rect SDst SPos SPos SPos | x2
The boundary is out of the | DrawLineSeg
The boundary is out of the const Graphics & | g
The boundary is out of the const Graphics const Rect const Point & | p1
The boundary is out of the const Graphics const Rect const Point const Point & | p2
The boundary is out of the const Graphics const Rect const Point const Point Color c const Rect const Rect & | r
The boundary is out of the const Graphics const Rect const Point const Point Color c const Rect const Rect Color | c
YB_ATTR_nodiscard yconstfn YB_PURE x | Right
YB_ATTR_nodiscard yconstfn YB_PURE x x | Top
YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE const Padding & | ynothrow
YB_ATTR_nodiscard YB_PURE | GetHorizontalOf
YB_ATTR_nodiscard YB_PURE const Padding &m ynothrowv | GetVerticalOf
| src
dst | dp
dst | sp

## 详细描述

图形处理。

自从
  build 456

## 类型定义说明

## ◆ AlphaType

using YSLib::Drawing::AlphaType = typedef octet

Alpha 分量类型。

在文件 YGDIBase.h 第 49 行定义.

## ◆ BitmapPtr

using YSLib::Drawing::BitmapPtr = typedef Pixel*

自从
  早于 build 132

在文件 YGraphics.h 第 42 行定义.

## ◆ BitPerPixel

using YSLib::Drawing::BitPerPixel = typedef std::uint8_t

自从
  build 402

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

## ◆ ConstBitmapPtr

using YSLib::Drawing::ConstBitmapPtr = typedef const Pixel*

自从
  早于 build 132

在文件 YGraphics.h 第 44 行定义.

## ◆ ConstGraphics

using YSLib::Drawing::ConstGraphics = typedef GGraphics<ConstBitmapPtr>

自从
  build 559

在文件 YGraphics.h 第 160 行定义.

## ◆ EnableForMask

template<class _tPixel , class _tMask >

using YSLib::Drawing::EnableForMask = typedef ystdex::enable_when<std::is_same<ystdex::detected_or_t< void, MaskTrait, _tPixel>, _tMask>::value>

在文件 YPixel.h 第 57 行定义.

## ◆ FamilyName

using YSLib::Drawing::FamilyName = typedef string

字型家族名称。

自从
  build 277

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

## ◆ FontPath

using YSLib::Drawing::FontPath = typedef string

字体文件路径。

自从
  build 277

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

## ◆ FontSize

using YSLib::Drawing::FontSize = typedef std::uint8_t

字体大小。

自从
  build 277

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

## ◆ GBrushUpdater

template<typename... _types>

using YSLib::Drawing::GBrushUpdater = typedef GHEvent<void(const PaintContext&, _types...)>

画刷更新器类型。

自从
  build 525

按目标绘制上下文、源和附加偏移更新目标图像的回调接口。

在文件 YBrush.h 第 119 行定义.

## ◆ Graphics

using YSLib::Drawing::Graphics = typedef GGraphics<BitmapPtr>

自从
  build 559

在文件 YGraphics.h 第 163 行定义.

## ◆ HImageMetadataIterator

using YSLib::Drawing::HImageMetadataIterator = typedef ystdex::indirect_input_iterator<HImageMetadata*>

元数据迭代器。

自从
  build 557

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

## ◆ ImageScale

using YSLib::Drawing::ImageScale = typedef ystdex::fixed_point<yimpl(std::uint32_t, 12U)>

图像缩放类型。

自从
  build 555

在文件 ImageProcessing.h 第 49 行定义.

## ◆ IteratorPair

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

Alpha 光栅化源迭代器对。

自从
  build 417

在文件 YBlit.h 第 560 行定义.

## ◆ MonoType

using YSLib::Drawing::MonoType = typedef octet

单色分量类型。

自从
  build 417

在文件 YGDIBase.h 第 47 行定义.

## ◆ Point

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

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

自从
  build 242

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

## ◆ StyleName

using YSLib::Drawing::StyleName = typedef string

字型样式名称。

自从
  build 277

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

## ◆ Vec

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

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

自从
  build 242

在文件 YGDIBase.h 第 527 行定义.

## 枚举类型说明

## ◆ FontStyle

enum YSLib::Drawing::FontStyle : std::uint8_t

strong

字体样式。

自从
  build 197

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

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

## ◆ ImageDecoderFlags

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 第 85 行定义.

## ◆ ImageFormat

enum YSLib::Drawing::ImageFormat : int

strong

图像格式。

注解
  数值对应 FreeImage 实现的 `::FREE_IMAGE_FORMAT` 。

参见
  FreeImage 宏 FI_ENUM 。

自从
  build 457

枚举值
Unknown |
BMP |
ICO |
JPEG |

PNG

自从
  build 470

GIF |

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

## ◆ ImageMetadataModel

enum YSLib::Drawing::ImageMetadataModel

strong

图像元数据模型标识。

注解
  数值对应 FreeImage 实现的 `::FREE_IMAGE_MDMODEL` 。

自从
  build 557

枚举值
NoData |
Comments |
EXIF_Main |
EXIF_EXIF |
EXIF_GPS |
EXIF_MakerNote |
EXIF_Interop |
IPTC |
XMP |
GeoTIFF |
Animation |
Custom |
EXIF_RAW |

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

## ◆ PutCharResult

enum YSLib::Drawing::PutCharResult

strong

输出字符结果。

自从
  build 587

枚举值
NeedNewline | 行内无法容纳而换行。
PutNewline | 输出换行符。
NotPrintable | 遇到不可打印字符。
Normal | 可继续在同一行输出可打印字符。

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

## ◆ Rotation

enum YSLib::Drawing::Rotation : yimpl(size_t)

逆时针旋转角度指示输出指向。

注解
  保证底层为无符号整数类型。

自从
  build 416

枚举值
RDeg0 |
RDeg90 |
RDeg180 |
RDeg270 |

在文件 YGDIBase.h 第 1144 行定义.

## 函数说明

## ◆ BlendRect()

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

在文件 YBlend.cpp 第 40 行定义.

引用了 BlendRectRaw(), CHRLib::c, g, r , 以及 YAssert.

被这些函数引用 YSLib::Drawing::SolidBlendBrush::operator()().

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

## ◆ BlendRectRaw()

template<typename _tPixel , typename _tOut , typename... _tParams>

void YSLib::Drawing::BlendRectRaw | ( | _tOut | dst,
|  | _tPixel | c,
|  | _tParams &&... | args
| ) |  |

inline

使用指定像素 Alpha 混合指定的标准矩形区域。

自从
  build 584

在文件 YBlend.h 第 121 行定义.

引用了 YSLib::args, BlitRectPixels(), c, NPL::dst , 以及 yforward.

被这些函数引用 BlendRect().

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

## ◆ Blit()

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 | 目标迭代器。
  src | 源迭代器。
  ds | 目标迭代器所在缓冲区大小。
  ss | 源迭代器所在缓冲区大小。
  dp | 目标迭代器起始点所在缓冲区偏移。
  sp | 源迭代器起始点所在缓冲区偏移。
  sc | 源迭代器需要复制的区域大小。

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

参见
  BlitBounds
  BlitScaleComponent
  Drawing::BlitScan

自从
  build 437

对一块矩形区域逐像素顺序批量操作。

在文件 YBlit.h 第 168 行定义.

引用了 BlitBounds(), BlitScaleComponent(), dp, NPL::dst, YSLib::Drawing::Size::Height, sp, src , 以及 YSLib::Drawing::Size::Width.

函数调用图:

## ◆ BlitBounds()

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

引用了 dp, YSLib::Drawing::Size::Height, sp, YSLib::Drawing::Size::Width , 以及 yunseq.

被这些函数引用 Blit().

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

## ◆ BlitGlyphLines()

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 | 指定交换行渲染顺序。

参见
  Drawing::Blit
  Drawing::BlitLines

自从
  build 438

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

引用了 bounds, NPL::dst , 以及 src.

## ◆ BlitGlyphPixels()

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 | 指定交换行渲染顺序。

参见
  Drawing::Blit
  Drawing::BlitPixels

自从
  build 440

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

引用了 bounds, NPL::dst , 以及 src.

被这些函数引用 RenderChar() , 以及 RenderCharAlpha().

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

## ◆ BlitLines()

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
| ) |  |

inline

扫描线块传输函数模板。

模板参数

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

参数

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

参见
  Drawing::Blit
  BlitScannerLoop

自从
  build 437

对一块矩形区域逐（水平）扫描线批量操作。

在文件 YBlit.h 第 236 行定义.

引用了 dp, NPL::dst, sp , 以及 src.

被这些函数引用 BlitRectLines().

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

## ◆ BlitPixels()

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
| ) |  |

inline

像素块传输函数模板。

模板参数

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

参数

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

参见
  Drawing::Blit
  BlitScannerLoop
  BlitLineLoop

自从
  build 440

对一块矩形区域逐（水平）扫描线批量操作。

在文件 YBlit.h 第 296 行定义.

引用了 dp, NPL::dst, sp , 以及 src.

被这些函数引用 BlitRectPixels() , 以及 UpdatePixelsWithRotation().

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

## ◆ BlitRect() [1/4]

template<typename _func , typename _tOut , typename _tIn >

void YSLib::Drawing::BlitRect | ( | _func | f,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ds,
|  | const Point & | sp,
|  | const Size & | sc
| ) |  |

inline

在文件 YBlit.h 第 342 行定义.

引用了 BlitRect(), NPL::dst, CHRLib::f(), sp , 以及 src.

函数调用图:

## ◆ BlitRect() [2/4]

template<typename _func , typename _tOut , typename _tIn >

void YSLib::Drawing::BlitRect | ( | _func | f,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ds,
|  | const Rect & | r
| ) |  |

inline

参数

  r | 源迭代器所在缓冲区边界。

在文件 YBlit.h 第 351 行定义.

引用了 BlitRect(), NPL::dst, CHRLib::f(), r , 以及 src.

函数调用图:

## ◆ BlitRect() [3/4]

template<typename _func , typename _tOut , typename _tIn >

void YSLib::Drawing::BlitRect | ( | _func | f,
|  | _tOut | dst,
|  | _tIn | src,
|  | const Size & | ds,
|  | const Size & | ss,
|  | const Point & | dp,
|  | const Point & | sp,
|  | const Size & | sc
| ) |  |

inline

矩形块传输函数模板。

模板参数

  _tOut | 输出迭代器类型（需要支持 + 操作，一般应是随机迭代器）。
  _tIn | 输入迭代器类型（需要支持 + 操作，一般应是随机迭代器）。

自从
  build 584

模板参数

  _func | 处理函数对象类型。

参数

  f | 处理函数。
  dst | 目标迭代器。
  src | 源迭代器。

对一块矩形区域按指定处理函数对象进行操作。

参数

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

在文件 YBlit.h 第 335 行定义.

引用了 dp, NPL::dst, CHRLib::f(), sp , 以及 src.

被这些函数引用 BlitRect(), BlitRectLines() , 以及 BlitRectPixels().

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

## ◆ BlitRect() [4/4]

template<typename _func , typename _tOut , typename _tIn >

void YSLib::Drawing::BlitRect | ( | _func | f,
|  | _tOut | dst,
|  | _tIn | src,
|  | SDst | dw,
|  | SDst | dh,
|  | SPos | x,
|  | SPos | y,
|  | SDst | w,
|  | SDst | h
| ) |  |

inline

参数

  dw | 目标迭代器所在缓冲区的宽。
  dh | 目标迭代器所在缓冲区的高。
  x | 源迭代器起始点所在缓冲区水平偏移。
  y | 源迭代器起始点所在缓冲区竖直偏移。
  w | 源迭代器需要复制的区域的宽。
  h | 源迭代器需要复制的区域的高。

在文件 YBlit.h 第 366 行定义.

引用了 BlitRect(), NPL::dst, CHRLib::f(), src, w, x , 以及 YSLib::UI::y.

函数调用图:

## ◆ BlitRectLines()

template<typename _tOut , typename _tIn , typename _fBlitScanner , typename... _tParams>

void YSLib::Drawing::BlitRectLines | ( | _fBlitScanner | scanner,
|  | _tOut | dst,
|  | _tIn | src,
|  | _tParams &&... | args
| ) |  |

inline

根据指定批量操作（块传输扫描器或像素着色器）函数对象对矩形像素块进行批量操作。

注解
  使用 ADL 调用 BlitRect 进行操作。

参见
  BlitRect
  Drawing::BlitLines

在文件 YBlit.h 第 384 行定义.

引用了 YSLib::args, BlitLines(), BlitRect(), NPL::dst, src , 以及 yforward.

被这些函数引用 FillRectRaw().

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

## ◆ BlitRectPixels()

template<typename _tOut , typename _tIn , typename _fPixelShader , typename... _tParams>

void YSLib::Drawing::BlitRectPixels | ( | _fPixelShader | shader,
|  | _tOut | dst,
|  | _tIn | src,
|  | _tParams &&... | args
| ) |  |

inline

参见
  Drawing::BlitPixels

在文件 YBlit.h 第 397 行定义.

引用了 YSLib::args, BlitPixels(), BlitRect(), NPL::dst, src , 以及 yforward.

被这些函数引用 BlendRectRaw() , 以及 CompositeRectRaw().

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

## ◆ BlitScaleComponent()

template<bool _bDec>

YB_ATTR_nodiscard YB_STATELESS yconstfn size_t YSLib::Drawing::BlitScaleComponent | ( | SPos | d,
|  | SPos | s,
|  | SDst | delta
| ) |  |

块传输偏移分量计算器。

自从
  build 850

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

引用了 CHRLib::d, CHRLib::s , 以及 YSLib::size_t.

被这些函数引用 Blit().

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

## ◆ BlitScan()

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 第 123 行定义.

引用了 NPL::dst , 以及 src.

## ◆ BlitTo()

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 第 238 行定义.

引用了 YSLib::Text::buf, dp, NPL::dst, RDeg0 , 以及 sp.

被这些函数引用 DrawText() , 以及 YSLib::UI::BufferedTextArea::Refresh().

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

## ◆ ClearImage()

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

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

自从
  早于 build 132

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

引用了 ClearPixels() , 以及 g.

被这些函数引用 YSLib::Drawing::CompactPixmap::ClearImage().

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

## ◆ ClearPixels()

template<typename _tOut >

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

inline

显示缓存操作：清除/以纯色像素填充。

模板参数

  _tOut | 输出迭代器类型（需要支持 += 操作，一般应是随机迭代器）。

自从
  build 624

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

模板参数

  _tOut | 输出迭代器类型。

参见
  YSLib::ClearSequence

在文件 YBlit.h 第 517 行定义.

引用了 YSLib::ClearSequence() , 以及 NPL::dst.

被这些函数引用 ClearImage(), YSLib::Drawing::CompactPixmapEx::ClearImage() , 以及 YSLib::Drawing::TextRegion::ClearLine().

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

## ◆ ClipBounds()

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

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

引用了 bounds.

## ◆ ClipMargin()

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

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

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

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

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

在文件 YGDI.cpp 第 69 行定义.

引用了 dp, GetHorizontalOf, GetVerticalOf, YSLib::Drawing::Size::Height, sp , 以及 YSLib::Drawing::Size::Width.

## ◆ CompositeRect()

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

在文件 YBlend.cpp 第 48 行定义.

引用了 CHRLib::c, CompositeRectRaw(), g, r , 以及 YAssert.

被这些函数引用 YSLib::Drawing::SolidCompositeBrush::operator()().

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

## ◆ CompositeRectRaw()

template<typename _tPixel , typename _tOut , typename... _tParams>

void YSLib::Drawing::CompositeRectRaw | ( | _tOut | dst,
|  | _tPixel | c,
|  | _tParams &&... | args
| ) |  |

inline

使用指定像素 Alpha 组合指定的标准矩形区域。

在文件 YBlend.h 第 139 行定义.

引用了 YSLib::args, BlitRectPixels(), c, NPL::dst , 以及 yforward.

被这些函数引用 CompositeRect().

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

## ◆ CopyBitmapBuffer()

template<typename _tOut , typename _tIn >

void YSLib::Drawing::CopyBitmapBuffer | ( | _tOut | p_dst,
|  | _tIn | p_src,
|  | const Size & | s
| ) |  |

自从
  build 594

在文件 YGraphics.h 第 50 行定义.

引用了 platform::Nonnull() , 以及 CHRLib::s.

被这些函数引用 YSLib::Drawing::CompactPixmap::CompactPixmap(), YSLib::Drawing::CompactPixmapEx::CompactPixmapEx(), CopyBuffer() , 以及 ImplDeDtor().

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

## ◆ CopyBuffer()

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

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

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

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

自从
  build 559

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

引用了 CopyBitmapBuffer(), NPL::dst, platform::Nonnull(), src, YSLib::YAssert() , 以及 YB_LIKELY.

函数调用图:

## ◆ CopyTo() [1/2]

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 第 219 行定义.

引用了 YSLib::Text::buf, dp, NPL::dst, RDeg0 , 以及 sp.

## ◆ CopyTo() [2/2]

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

图形接口上下文向指针指定的缓冲区复制。

自从
  build 630

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

自从
  build 559

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

在文件 YGDI.cpp 第 203 行定义.

引用了 dp, NPL::dst, g, RDeg0 , 以及 sp.

被这些函数引用 YSLib::UI::BufferedRenderer::UpdateTo() , 以及 YSLib::UI::BufferedRenderer::Validate().

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

## ◆ DefaultMargin()

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

默认边距。

自从
  build 286

被这些函数引用 YReader::ShlExplorer::OnPaint().

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

## ◆ DispatchRotatedBrush()

template<typename _fPixelShader = Shaders::BlitAlphaPoint, typename _tImage = Drawing::Image>

GBrushUpdater<const _tImage&, const Point&, const Point&> YSLib::Drawing::DispatchRotatedBrush | ( | Rotation | rot | ) |

按指定的源图像旋转方向构造画刷。

参见
  UpdateRotatedBrush

自从
  build 580

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

引用了 RDeg0, RDeg180, RDeg270, RDeg90 , 以及 YSLib::YAssert().

函数调用图:

## ◆ DispatchTranspose() [1/2]

template<typename _func >

void YSLib::Drawing::DispatchTranspose | ( | ystdex::false_ | ,
|  | _func | updater,
|  | const ConstGraphics & | src
| ) |  |

inline

分派用于着色器更新的可能转置的图像。

自从
  build 729

第一参数指定是否需要转置（原始图像旋转一个直角）。 第二参数指定更新器，接受可能转置的原迭代器、可能转置的源图像大小和转置偏移位置。 未转置时，转置偏移位置为原点；否则使用 RotateCenter 指定。

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

引用了 src.

被这些函数引用 UpdatePixelsWithRotation().

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

## ◆ DispatchTranspose() [2/2]

template<typename _func >

void YSLib::Drawing::DispatchTranspose | ( | ystdex::true_ | ,
|  | _func | updater,
|  | const ConstGraphics & | src
| ) |  |

inline

在文件 YBlit.h 第 426 行定义.

引用了 ystdex::make_transposed(), src , 以及 Transpose().

函数调用图:

## ◆ DrawArrow()

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

在指定图形接口上下文上描画底边和坐标轴共线的等腰直角三角形箭头。

注解
  第二参数指定边界；第三参数指定矩形外框，图形位于正中。
  图形大小以第四参数指定的高度量； RDeg0 指向右侧。
  最后的参数决定是否仅描画轮廓。

自从
  build 530

在文件 YStyle.cpp 第 202 行定义.

引用了 bounds, CHRLib::c, g, YSLib::Drawing::GGraphics< _tPointer, _tSize >::Height, r, RDeg0, RDeg180, RDeg270, RDeg90, RectDrawArrow(), RectDrawArrowOutline(), x , 以及 YSLib::UI::y.

被这些函数引用 YSLib::UI::ScrollBar::InitializeArrowPainters(), YSLib::UI::Menu::Menu(), YSLib::UI::DropDownList::Refresh() , 以及 YSLib::UI::TreeList::TreeList().

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

## ◆ DrawCircle()

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

描画圆形。

前置条件
  断言： bounds 在 g 指定的边界内。
  间接断言：图形接口缓冲区有效。

在文件 YDraw.cpp 第 180 行定义.

引用了 bounds, c, Color, ystdex::cref(), g, r, x , 以及 YSLib::UI::y.

被这些函数引用 YSLib::UI::ImplDeDtor() , 以及 main().

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

## ◆ DrawClippedText() [1/2]

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

参数

  r | 绘制区域的外边界。
  m | 绘制区域边界和外边界之间的边距。
  fnt | 输出时使用的字体。

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

引用了 bounds, c, YSLib::Drawing::TextState::Color, DrawClippedText(), FetchMargin(), g, YSLib::Drawing::TextState::Margin, r, YSLib::Drawing::TextState::ResetPen, YSLib::str , 以及 ts.

函数调用图:

## ◆ DrawClippedText() [2/2]

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

绘制剪切区域的文本。

参数

  g | 输出图形接口上下文。
  str | 待绘制的字符串。
  line_wrap | 自动换行。

前置条件
  间接断言：字符串参数的数据指针非空。

自从
  build 309

参数

  bounds | 相对输出图形接口上下文矩形，限定输出边界。
  ts | 输出时使用的文本状态。

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

引用了 bounds, g, PutText(), YSLib::str , 以及 ts.

被这些函数引用 YSLib::UI::MLabel::DefaultUpdateClippedText(), DrawClippedText() , 以及 DrawText().

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

## ◆ DrawCornerArrow()

void YSLib::Drawing::DrawCornerArrow | ( | const Graphics & | g,
|  | const Rect & | bounds,
|  | const Point & | pt,
|  | SDst | size = `4`,
|  | Rotation | rot = `RDeg0`,
|  | Color | c = `ColorSpace::Black`,
|  | bool | outline = `{}`
| ) |  |

在指定图形接口上下文上描画腰和坐标轴共线的等腰直角三角形箭头。

注解
  第二参数指定边界；第三参数指定图形左上角。
  图形大小以第四参数指定的斜边度量； RDeg0 指向右下角。
  最后的参数决定是否仅描画轮廓。

自从
  build 530

在文件 YStyle.cpp 第 230 行定义.

引用了 bounds, CHRLib::c, g, RDeg0, RDeg180, RDeg270, RectDrawCornerArrow(), RectDrawCornerArrowOutline(), ystdex::cpp2017::size(), YSLib::Drawing::GBinaryGroup< _type >::X, x, YSLib::UI::y , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

被这些函数引用 YSLib::UI::TreeList::TreeList().

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

## ◆ DrawCross()

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

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

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

自从
  build 480

在文件 YStyle.cpp 第 244 行定义.

引用了 bounds, CHRLib::c, DrawLineSeg, g, YSLib::Drawing::GGraphics< _tPointer, _tSize >::Height, r , 以及 YB_LIKELY.

被这些函数引用 YSLib::UI::ImplDeDtor().

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

## ◆ DrawPolygon()

template<typename _tIn >

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

描画多边形。

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

引用了 bounds, c, DrawLineSeg, g, ystdex::is_undereferenceable(), YSLib::YAssert(), YB_LIKELY , 以及 yunseq.

函数调用图:

## ◆ DrawRect()

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

在文件 YDraw.cpp 第 136 行定义.

引用了 bounds, c, g, r, x1, x2, y1, y2 , 以及 YB_LIKELY.

被这些函数引用 YSLib::UI::TabBar::DefaultPaintTabBorder().

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

## ◆ DrawRectRoundCorner()

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

引用了 bounds, CHRLib::c, g, CHRLib::s, x1, x2, y1, y2 , 以及 YB_LIKELY.

## ◆ DrawText() [1/3]

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

参数

  bounds | 绘制区域的外边界。
  m | 绘制区域边界和外边界之间的边距。
  fnt | 输出时使用的字体。

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

引用了 bounds, c, DrawClippedText(), g , 以及 YSLib::str.

函数调用图:

## ◆ DrawText() [2/3]

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

绘制文本。

参数

  ts | 输出时使用的文本状态。

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

引用了 DrawClippedText(), g, YSLib::str , 以及 ts.

被这些函数引用 YReader::ShlExplorer::OnPaint() , 以及 YSLib::UI::MLabel::operator()().

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

## ◆ DrawText() [3/3]

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

参数

  r | 文本区域。
  pt | 绘制区域左上角相对图形接口上下文的位置偏移。
  s | 绘制区域大小。

注解
  使用块传输间接绘制。

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

引用了 BlitTo(), g, PutText(), CHRLib::s , 以及 YSLib::str.

函数调用图:

## ◆ DrawTick()

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

在指定图形接口上下文中使用指定颜色描画对勾（“√”）。

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

自从
  build 480

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

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

引用了 bounds, DrawLineSeg, g, YSLib::Drawing::GGraphics< _tPointer, _tSize >::Height, p1, p2, r , 以及 YB_LIKELY.

## ◆ FetchCharWidth()

SDst YSLib::Drawing::FetchCharWidth | ( | const Font & | fnt,
|  | char32_t | c
| ) |  |

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

引用了 CHRLib::c.

被这些函数引用 FetchStringOffsets(), FetchStringWidth(), YSLib::UI::TextBox::GetCaretLocation() , 以及 YSLib::UI::TextBox::GetCaretPosition().

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

## ◆ FetchDefaultTypeface()

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

取默认字型引用。

异常

  LoggedEvent | 严重：异常事件。

自从
  build 425

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

引用了 platform::Descriptions::Critical, YSLib::FetchDefaultFontCache() , 以及 platform::p.

被这些函数引用 main().

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

## ◆ FetchLastLineBasePosition()

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

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

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

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

自从
  build 190

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

引用了 FetchResizedLineN(), GetTextLineBaseOf, GetTextLineHeightExOf , 以及 ts.

被这些函数引用 PutString().

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

## ◆ FetchMargin()

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

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

引用了 YSLib::Drawing::GGraphics< _tPointer, _tSize >::Height, r , 以及 CHRLib::s.

被这些函数引用 DrawClippedText().

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

## ◆ FetchMaxTextWidth()

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

YB_ATTR_nodiscard YB_PURE SDst YSLib::Drawing::FetchMaxTextWidth | ( | const Font & | font,
|  | _tIn | first,
|  | _tIn | last
| ) |  |

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

自从
  build 483

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

引用了 FetchStringWidth(), ystdex::cpp2014::max(), YSLib::str , 以及 YB_PURE.

被这些函数引用 YSLib::UI::ImplDeDtor() , 以及 YSLib::UI::ResizeForContent().

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

## ◆ FetchResizedBottomMargin()

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

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

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

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

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

自从
  build 252

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

引用了 YSLib::Drawing::Padding::Bottom, GetTextLineHeightExOf, GetVerticalOf, YSLib::Drawing::TextState::LineGap, YSLib::Drawing::TextState::Margin, ts , 以及 YAssert.

## ◆ FetchResizedLineN()

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

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

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

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

自从
  build 252

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

引用了 GetTextLineHeightExOf, GetVerticalOf, YSLib::Drawing::TextState::LineGap, YSLib::Drawing::TextState::Margin, ts , 以及 YAssert.

被这些函数引用 FetchLastLineBasePosition().

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

## ◆ FetchStringOffsets() [1/5]

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

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

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

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

自从
  build 484

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

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

引用了 FetchCharWidth(), ystdex::is_undereferenceable(), r, CHRLib::s, w, YSLib::YAssert() , 以及 yunseq.

被这些函数引用 FetchStringOffsets() , 以及 YSLib::UI::TextBox::GetCaretPosition().

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

## ◆ FetchStringOffsets() [2/5]

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

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

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

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

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

## ◆ FetchStringOffsets() [3/5]

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

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

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

自从
  build 641

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

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

## ◆ FetchStringOffsets() [4/5]

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

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

inline

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

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

引用了 FetchStringOffsets() , 以及 YSLib::str.

函数调用图:

## ◆ FetchStringOffsets() [5/5]

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

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

inline

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

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

引用了 FetchStringOffsets() , 以及 YSLib::str.

函数调用图:

## ◆ FetchStringWidth() [1/8]

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

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

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

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

自从
  build 483

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

引用了 FetchCharWidth(), ystdex::is_undereferenceable(), CHRLib::s, w , 以及 YSLib::YAssert().

被这些函数引用 YSLib::UI::Label::CalculateBounds(), FetchMaxTextWidth(), FetchStringWidth(), YSLib::UI::MLabel::GetAlignedPenOffset() , 以及 YSLib::UI::TextBox::GetCaretLocation().

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

## ◆ FetchStringWidth() [2/8]

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

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

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

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

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

## ◆ FetchStringWidth() [3/8]

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

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

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

自从
  build 641

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

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

## ◆ FetchStringWidth() [4/8]

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

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

inline

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

自从
  build 483

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

引用了 FetchStringWidth() , 以及 YSLib::str.

函数调用图:

## ◆ FetchStringWidth() [5/8]

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

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

inline

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

自从
  build 484

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

引用了 FetchStringWidth() , 以及 YSLib::str.

函数调用图:

## ◆ FetchStringWidth() [6/8]

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

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

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

注解
  使用 ADL PrintString 和空文本渲染器渲染字符串。
  迭代器 s 指向字符串首字符，迭代直至字符串结束符。
  字体由文本状态指定。

自从
  build 483

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

引用了 YSLib::Drawing::TextState::Pen, PrintString(), r, CHRLib::s, ts, x , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

函数调用图:

## ◆ FetchStringWidth() [7/8]

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

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

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

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

自从
  build 641

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

## ◆ FetchStringWidth() [8/8]

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

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

inline

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

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

自从
  build 483

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

引用了 FetchStringWidth(), YSLib::str , 以及 ts.

函数调用图:

## ◆ Fill()

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

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

自从
  build 177

在文件 YBlit.cpp 第 93 行定义.

引用了 c , 以及 g.

## ◆ FillCircle()

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

填充圆形。

在文件 YDraw.cpp 第 202 行定义.

引用了 bounds, c, Color, ystdex::cref(), g, PlotHLineSeg(), r, x , 以及 YSLib::UI::y.

被这些函数引用 main().

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

## ◆ FillPixels()

template<typename _tPixel , typename _tOut >

void YSLib::Drawing::FillPixels | ( | _tOut | dst_iter,
|  | size_t | n,
|  | _tPixel | c
| ) |  |

inline

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

在文件 YBlit.h 第 526 行定义.

引用了 c.

## ◆ FillRect()

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

填充标准矩形。

注解
  右下角顶点坐标 `(r.GetRight() - 1, r.GetBottom() - 1)` 。

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

注解
  无绘制边界检查。

在文件 YDraw.cpp 第 150 行定义.

引用了 c, FillRectRaw(), g, r , 以及 YSLib::YAssert().

被这些函数引用 YSLib::UI::DrawTrackBackground(), YReader::ShlExplorer::OnPaint(), YSLib::Drawing::SolidBrush::operator()(), YSLib::UI::ProgressBar::Refresh(), YSLib::UI::TextList::TextList() , 以及 YSLib::UI::TextBox::UpdateTextBoxClippedText().

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

## ◆ FillRectRaw()

template<typename _tPixel , typename _tOut , typename... _tParams>

void YSLib::Drawing::FillRectRaw | ( | _tOut | dst,
|  | _tPixel | c,
|  | _tParams &&... | args
| ) |  |

inline

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

自从
  build 584

在文件 YBlit.h 第 549 行定义.

引用了 YSLib::args, BlitRectLines(), c, NPL::dst , 以及 yforward.

被这些函数引用 FillRect().

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

## ◆ FillVerticalLine()

template<typename _tPixel , typename _tOut >

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

inline

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

自从
  build 438

在文件 YBlit.h 第 537 行定义.

引用了 c , 以及 NPL::dst.

## ◆ get() [1/2]

template<size_t _vIdx, typename _type >

YB_ATTR_nodiscard YB_PURE yconstfn const _type& YSLib::Drawing::get | ( | const GBinaryGroup< _type > & | val | ) |

在文件 YGDIBase.h 第 492 行定义.

引用了 YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

## ◆ get() [2/2]

template<size_t _vIdx, typename _type >

YB_ATTR_nodiscard YB_PURE yconstfn _type& YSLib::Drawing::get | ( | GBinaryGroup< _type > & | val | ) |

取分量。

自从
  build 554

在文件 YGDIBase.h 第 484 行定义.

引用了 YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

被这些函数引用 YSLib::Drawing::Shaders::GBlender< _tPixel, ystdex::when< _bCond > >::BlendAlpha(), YSLib::Drawing::Shaders::BlendComponent(), YSLib::Drawing::Shaders::Composite(), YSLib::Drawing::Shaders::CompositeComponent(), YSLib::Drawing::HBitmap::operator CompactPixmap() , 以及 YSLib::Drawing::HBitmap::SaveTo().

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

## ◆ GetEndOfLineOffsetOf()

template<class _tRenderer >

SPos YSLib::Drawing::GetEndOfLineOffsetOf | ( | const _tRenderer & | rd | ) |

inline

取文本渲染器的行末位置剩余偏移。

注解
  使用 ADL `GetEndOfLinePositionOf` 取行末位置。

自从
  build 587

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

引用了 GetEndOfLinePositionOf() , 以及 SPos().

被这些函数引用 PutChar(), PutLine() , 以及 PutString().

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

## ◆ GetEndOfLinePositionOf()

template<class _tRenderer >

SPos YSLib::Drawing::GetEndOfLinePositionOf | ( | const _tRenderer & | rd | ) |

inline

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

自从
  build 587

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

被这些函数引用 GetEndOfLineOffsetOf().

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

## ◆ GetFrameTimeOf()

TimeSpan YSLib::Drawing::GetFrameTimeOf | ( | const HBitmap & | bmp | ) |

related

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

引用了 Animation , 以及 platform::Descriptions::Warning.

## ◆ GetHeight()

YB_ATTR_nodiscard YB_PURE tr YSLib::Drawing::GetHeight | ( |  | ) |

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

自从
  build 587

被这些函数引用 YSLib::UI::BufferedTextArea::BufferedTextArea(), YSLib::Drawing::HBitmap::DefGetter(), YSLib::UI::TextList::end(), YSLib::UI::TextList::GetLastLabelIndex(), YSLib::UI::HorizontalTrack::HorizontalTrack(), YSLib::UI::ImplDeDtor(), YSLib::UI::TextList::InvalidateSelected(), YSLib::UI::ListBox::ListBox(), YSLib::UI::TextList::LocateViewPosition(), YSLib::UI::TabBar::PerformLayout(), YSLib::UI::HexViewArea::Refresh(), YSLib::UI::DropDownList::Refresh(), YSLib::UI::TextList::Refresh(), YSLib::UI::HexViewArea::Reset(), YSLib::Drawing::TextRegion::Scroll(), YSLib::UI::TextList::SelectFirst(), YSLib::UI::TextList::SelectLast() , 以及 YSLib::UI::TextList::TextList().

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

## ◆ GetLogicalSizeOf()

Size YSLib::Drawing::GetLogicalSizeOf | ( | const HBitmap & | bmp | ) |

取图像逻辑大小。

返回
  CheckPositive 检查后的元数据指定分量的大小，保证分量大于 0 。

异常

  GenerlError | 元数据读取失败或不完整。
  LoggedEvent | 大小分量溢出。

注解
  当前只支持 ImageMetadataModel::Animation 模型。

自从
  build 557

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

引用了 Animation , 以及 platform::Descriptions::Warning.

被这些函数引用 YSLib::Drawing::ImagePages::ImagePages().

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

## ◆ GetSize()

dst src YSLib::Drawing::GetSize | ( |  | ) |

被这些函数引用 YSLib::Drawing::CompactPixmap::CompactPixmap(), YSLib::Drawing::CompactPixmapEx::CompactPixmapEx(), YSLib::Drawing::ImagePages::ImagePages(), ImplDeDtor(), YSLib::Drawing::HBitmap::operator CompactPixmap() , 以及 YSLib::Drawing::TextRegion::Scroll().

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

## ◆ ImplDeDtor() [1/4]

YSLib::Drawing::ImplDeDtor | ( | BadImageAlloc |  | ) |

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

引用了 platform::p.

## ◆ ImplDeDtor() [2/4]

YSLib::Drawing::ImplDeDtor | ( | BasicImage |  | ) |

在文件 YGDI.cpp 第 94 行定义.

引用了 CopyBitmapBuffer(), GetSize(), YSLib::i , 以及 w.

函数调用图:

## ◆ ImplDeDtor() [3/4]

YSLib::Drawing::ImplDeDtor | ( | FontException |  | ) |

自从
  build 562
  build 420

替代 ::FT_Set_Pixel_Sizes 。

自从
  build 849
  build 421

参见
  ::FT_GlyphSlot_Oblique 实现。

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

引用了 platform::KeyCodes::DS::L, CHRLib::s, v, YB_ATTR_nodiscard, YB_STATELESS , 以及 ynothrow.

被这些函数引用 YSLib::ImplDeDtor().

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

## ◆ ImplDeDtor() [4/4]

YSLib::Drawing::ImplDeDtor | ( | TextRegion |  | ) |

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

引用了 c, GetSize() , 以及 YSLib::Drawing::TextState::Margin.

函数调用图:

## ◆ ImplExpr() [1/3]

The boundary is out of the const Graphics const Rect const Point const Point Color c YSLib::Drawing::ImplExpr | ( | DrawLineSeg(g, bounds, p1.X, p1.Y, p2.X, p2.Y, c) |  | ) | const &

描画标准矩形。

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

注解
  右下角顶点坐标 `(r.GetRight() - 1, r.GetBottom() - 1)` 。

## ◆ ImplExpr() [2/3]

YB_ATTR_nodiscard YB_PURE tr TextRegion& tr YSLib::Drawing::ImplExpr | ( | tr.Margin. | Bottom = `SPos(FetchResizedBottomMargin(tr))` | ) | const &

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

注解
  无边界限制。

自从
  build 641

## ◆ ImplExpr() [3/3]

const TextState& ts const TextState& ts const TextState& ts TextState SPos SPos y YSLib::Drawing::ImplExpr | ( | ts. | Pen = `Point(x, y)` | ) | &

设置笔的行位置。

自从
  build 231

## ◆ ImplRet() [1/7]

const TextState& ts const TextState& ts YSLib::Drawing::ImplRet | ( | (ts.Pen.Y - ts.Margin.Top)/SPos(GetTextLineHeightExOf(ts)) |  | ) |

取第一行的基线位置（纵坐标）。

自从
  build 372

## ◆ ImplRet() [2/7]

YB_ATTR_nodiscard YB_STATELESS yconstfn Rotation rot Rotation rot YSLib::Drawing::ImplRet | ( | Rotation((size_t(rot) - 1) % 4) |  | ) |

二元方向。

自从
  build 416

在文件 YGDIBase.h 第 1164 行定义.

## ◆ ImplRet() [3/7]

YB_ATTR_nodiscard YB_STATELESS yconstfn Rotation rot YSLib::Drawing::ImplRet | ( | Rotation((size_t(rot)+1) % 4) |  | ) |

自从
  build 575

被这些函数引用 YSLib::DeclI().

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

## ◆ ImplRet() [4/7]

const TextState& ts YSLib::Drawing::ImplRet | ( | SDst(ts.Font.GetHeight()+ts.LineGap) |  | ) |

取笔所在的当前行数。

自从
  build 587

## ◆ ImplRet() [5/7]

YB_ATTR_nodiscard YB_PURE const Padding& m ynothrowv YSLib::Drawing::ImplRet | ( | SDst(ystdex::max< SPos >(0, m.Left)+ystdex::max< SPos >(0, m.Right)) |  | ) |

取竖直边距和。

## ◆ ImplRet() [6/7]

YB_ATTR_nodiscard YB_PURE const Padding& m ynothrowv const Padding& m ynothrowv YSLib::Drawing::ImplRet | ( | SDst(ystdex::max< SPos >(0, m.Top)+ystdex::max< SPos >(0, m.Bottom)) |  | ) | const &

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

## ◆ ImplRet() [7/7]

const TextState& ts const TextState& ts const TextState& ts YSLib::Drawing::ImplRet | ( | ts.Margin.Top+ | SPosts.Font.GetAscender() | ) |

设置笔位置。

自从
  build 231

## ◆ IsUnstrictlyEmpty()

YB_ATTR_nodiscard !x YSLib::Drawing::IsUnstrictlyEmpty | ( |  | ) | &

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

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

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

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

被这些函数引用 YSLib::Drawing::Rect::Contains().

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

## ◆ MovePen()

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

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

引用了 c, YSLib::Drawing::TextState::Font, YSLib::Drawing::TextState::Pen, ts , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

## ◆ operator*()

template<typename _type , typename _tScalar >

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

数乘：屏幕二元组。

自从
  build 319

在文件 YGDIBase.h 第 442 行定义.

引用了 platform::l.

## ◆ operator+() [1/3]

template<typename _type >

YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup<_type> YSLib::Drawing::operator+ | ( | const GBinaryGroup< _type > & | x,
|  | const GBinaryGroup< _type > & | y
| ) |  |

加法：屏幕二元组。

自从
  build 319

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

引用了 x , 以及 YSLib::UI::y.

## ◆ operator+() [2/3]

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

在文件 YGDI.cpp 第 41 行定义.

引用了 YSLib::Drawing::GGraphics< _tPointer, _tSize >::Height , 以及 r.

## ◆ operator+() [3/3]

template<typename _type >

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

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

自从
  build 319

在文件 YGDIBase.h 第 740 行定义.

引用了 YSLib::Drawing::GBinaryGroup< _type >::_type, CHRLib::s , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

## ◆ operator-() [1/2]

template<typename _type >

YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup<_type> YSLib::Drawing::operator- | ( | const GBinaryGroup< _type > & | x,
|  | const GBinaryGroup< _type > & | y
| ) |  |

减法：屏幕二元组。

自从
  build 319

在文件 YGDIBase.h 第 431 行定义.

引用了 x , 以及 YSLib::UI::y.

## ◆ operator-() [2/2]

template<typename _type >

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

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

自从
  build 577

在文件 YGDIBase.h 第 752 行定义.

引用了 YSLib::Drawing::GBinaryGroup< _type >::_type, CHRLib::s , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

## ◆ operator==()

template<typename _type >

YB_ATTR_nodiscard YB_PURE yconstfn bool YSLib::Drawing::operator== | ( | const GBinaryGroup< _type > & | x,
|  | const GBinaryGroup< _type > & | y
| ) |  |

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

自从
  build 319

在文件 YGDIBase.h 第 409 行定义.

引用了 x , 以及 YSLib::UI::y.

## ◆ PDefH() [1/14]

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

inline

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

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

自从
  build 418

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

## ◆ PDefH() [2/14]

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

inline

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

## ◆ PDefH() [3/14]

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

inline

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

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

自从
  build 418

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

## ◆ PDefH() [4/14]

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

inline

图形接口上下文复制。

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

自从
  build 559

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

## ◆ PDefH() [5/14]

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

按指定分量取灰度色。

自从
  build 464

## ◆ PDefH() [6/14]

YB_ATTR_nodiscard YB_PURE YSLib::Drawing::PDefH | ( | SDst | ,
|  | FetchResizedBottomMargin | ,
|  | const TextRegion & | tr
| ) |  |

inline

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

自从
  build 252

## ◆ PDefH() [7/14]

YB_ATTR_nodiscard YB_PURE yconstfn YSLib::Drawing::PDefH | ( | Size | ,
|  | Transpose | ,
|  | const Size & | s
| ) |  |

转置。

自从
  build 575

在文件 YGDIBase.h 第 763 行定义.

引用了 CHRLib::s.

被这些函数引用 YSLib::DeclI().

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

## ◆ PDefH() [8/14]

YSLib::Drawing::PDefH | ( | void | ,
|  | AdjustEndOfLine | ,
|  | TextState & | ts,
|  | const Rect & | r,
|  | SDst | w
| ) |  |

inline

按指定显示区域和文本区域的宽重新设置右边距。

注解
  右边距参与行的结尾位置计算。
  单独使用时，需要设置笔的起始位置（横坐标），否则只适用于单行显示。

参见
  Drawing::PutChar

自从
  build 372

## ◆ PDefH() [9/14]

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

inline

描画水平线段。

前置条件
  断言： bounds 在 g 指定的边界内。
  间接断言：图形接口缓冲区有效。

参见
  Drawing::PlotHLineSeg

## ◆ PDefH() [10/14]

YSLib::Drawing::PDefH | ( | void | ,
|  | 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) 的线段。

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

## ◆ PDefH() [11/14]

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

inline

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

引用了 CHRLib::s.

## ◆ PDefH() [12/14]

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

inline

注解
  使用单一颜色。

## ◆ PDefH() [13/14]

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

inline

描画竖直线段。

前置条件
  断言： bounds 在 g 指定的边界内。
  间接断言：图形接口缓冲区有效。

参见
  Drawing::PlotVLineSeg

## ◆ PDefH() [14/14]

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

inline

## ◆ PDefHOp() [1/4]

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE YSLib::Drawing::PDefHOp | ( | Padding | ,
|  | * | ,
|  | const Padding & | x,
|  | size_t | n
| ) |  |

乘法：对应分量调用 operator* 。

## ◆ PDefHOp() [2/4]

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE YSLib::Drawing::PDefHOp | ( | Padding | ,
|  | - | ,
|  | const Padding & | x,
|  | const Padding & | y
| ) |  |

减法：对应分量调用 operator- 。

## ◆ PDefHOp() [3/4]

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE YSLib::Drawing::PDefHOp | ( | Padding | ,
|  | + | ,
|  | const Padding & | x,
|  | const Padding & | y
| ) |  |

加法：对应分量调用 operator+ 。

## ◆ PDefHOp() [4/4]

YB_ATTR_nodiscard YB_PURE YSLib::Drawing::PDefHOp | ( | Rect | ,
|  | - | ,
|  | const Rect & | r,
|  | const Padding & | m
| ) |  |

inline

减法：放大屏幕标准矩形，相对位置由指定边距决定。

警告
  不检查溢出。

取水平边距和。

## ◆ PlotHLineSeg() [1/2]

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

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

引用了 bounds, c, NPL::dst, YSLib::Drawing::Rect::Height, YSLib::IsInInterval(), platform::Nonnull(), YSLib::RestrictInInterval(), YSLib::RestrictLessEqual(), SPos(), w, YSLib::Drawing::Rect::Width, YSLib::Drawing::GBinaryGroup< _type >::X, x1, x2, YSLib::UI::y, YSLib::Drawing::GBinaryGroup< _type >::Y , 以及 YSLib::YAssert().

函数调用图:

## ◆ PlotHLineSeg() [2/2]

The boundary is out of the YSLib::Drawing::PlotHLineSeg | ( | g. | GetBufferPtr(),
|  | bounds | ,
|  | g. | GetWidth(),
|  | y | ,
|  | x1 | ,
|  | x2 | ,
|  | c |
| ) |  |

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

前置条件
  断言： `dst` 。

被这些函数引用 FillCircle() , 以及 PlotLineSeg().

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

## ◆ PlotLineSeg() [1/2]

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

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

引用了 bounds, c, NPL::dst, CHRLib::e, CHRLib::f(), YSLib::FetchSign(), PlotHLineSeg(), PlotVLineSeg(), SPos(), ystdex::cpp2017::swap(), w, x1, x2, y1 , 以及 y2.

函数调用图:

## ◆ PlotLineSeg() [2/2]

The boundary is out of the YSLib::Drawing::PlotLineSeg | ( | g. | GetBufferPtr(),
|  | bounds | ,
|  | g. | GetWidth(),
|  | x1 | ,
|  | y1 | ,
|  | x2 | ,
|  | y2 | ,
|  | c |
| ) |  |

## ◆ PlotVLineSeg() [1/2]

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

在文件 YDraw.cpp 第 63 行定义.

引用了 bounds, c, NPL::dst, YSLib::IsInInterval(), platform::Nonnull(), YSLib::RestrictInInterval(), YSLib::RestrictLessEqual(), SPos(), w, YSLib::Drawing::Rect::Width, x, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::Drawing::GBinaryGroup< _type >::Y, y1, y2 , 以及 YSLib::YAssert().

函数调用图:

## ◆ PlotVLineSeg() [2/2]

The boundary is out of the YSLib::Drawing::PlotVLineSeg | ( | g. | GetBufferPtr(),
|  | bounds | ,
|  | g. | GetWidth(),
|  | x | ,
|  | y1 | ,
|  | y2 | ,
|  | c |
| ) |  |

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

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

被这些函数引用 PlotLineSeg().

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

## ◆ PrintChar()

template<class _tRenderer >

void YSLib::Drawing::PrintChar | ( | _tRenderer & | rd,
|  | char32_t | c
| ) |  |

打印单个可打印字符。

自从
  build 641

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

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

引用了 c , 以及 YB_LIKELY.

被这些函数引用 PrintLine() , 以及 PrintString().

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

## ◆ PrintLine() [1/3]

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

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

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

注解
  使用 ADL GetEndOfLineOffsetOf 判断行尾位置。

自从
  build 483

注解
  使用 ADL PrintChar 渲染字符。

参数

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

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

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

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

引用了 PrintChar() , 以及 CHRLib::s.

被这些函数引用 PrintLine().

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

## ◆ PrintLine() [2/3]

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

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

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

参数

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

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

自从
  build 641

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

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

## ◆ PrintLine() [3/3]

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

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

inline

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

前置条件
  断言：字符串参数的数据指针非空。

参数

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

返回
  打印字符数。

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

引用了 PrintLine(), YSLib::str, ystdex::string_begin() , 以及 ystdex::string_end().

函数调用图:

## ◆ PrintString() [1/3]

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

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

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

参数

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

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

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

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

引用了 PrintChar() , 以及 CHRLib::s.

被这些函数引用 FetchStringWidth() , 以及 PrintString().

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

## ◆ PrintString() [2/3]

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

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

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

参数

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

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

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

自从
  build 641

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

## ◆ PrintString() [3/3]

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

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

inline

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

前置条件
  断言：字符串参数的数据指针非空。

参数

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

返回
  打印字符数。

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

引用了 PrintString(), YSLib::str, ystdex::string_begin() , 以及 ystdex::string_end().

函数调用图:

## ◆ PutChar() [1/3]

template<class _tRenderer , typename _tChar , typename... _tParams>

PutCharResult YSLib::Drawing::PutChar | ( | _tRenderer & | rd,
|  | _tChar | c,
|  | _tParams &&... | args
| ) |  |

inline

自从
  build 588

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

引用了 YSLib::args, c, char32_t, PutChar() , 以及 yforward.

函数调用图:

## ◆ PutChar() [2/3]

template<class _tRenderer >

PutCharResult YSLib::Drawing::PutChar | ( | _tRenderer & | rd,
|  | char32_t | c
| ) |  |

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

引用了 c, GetEndOfLineOffsetOf(), NeedNewline , 以及 PutChar().

函数调用图:

## ◆ PutChar() [3/3]

template<class _tRenderer >

PutCharResult YSLib::Drawing::PutChar | ( | _tRenderer & | rd,
|  | char32_t | c,
|  | SDst | eol
| ) |  |

打印单个字符。

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

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

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

引用了 c, Normal , 以及 PutCharBase().

被这些函数引用 PutChar(), PutLine() , 以及 PutString().

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

## ◆ PutCharBase()

PutCharResult YSLib::Drawing::PutCharBase | ( | TextState & | ts,
|  | SDst | eol,
|  | char32_t | c
| ) |  |

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

自从
  build 641

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

引用了 CHRLib::c, YSLib::Drawing::TextState::Font, platform_ex::Windows::Normal, YSLib::Drawing::TextState::Pen, ts, YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YB_UNLIKELY.

被这些函数引用 PutChar().

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

## ◆ PutLine() [1/3]

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

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

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

注解
  使用 ADL PutChar 渲染字符。

参数

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

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

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

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

引用了 GetEndOfLineOffsetOf(), NeedNewline, YSLib::Drawing::TextState::Pen, PutChar(), CHRLib::s, ts , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

被这些函数引用 YSLib::DS::UI::DualScreenReader::Execute(), YSLib::DS::UI::DualScreenReader::PutLastLine(), PutLine(), PutText() , 以及 YSLib::UI::HexViewArea::Refresh().

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

## ◆ PutLine() [2/3]

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

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

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

参数

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

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

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

自从
  build 641

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

## ◆ PutLine() [3/3]

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

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

inline

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

前置条件
  断言：字符串参数的数据指针非空。

参数

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

返回
  打印字符数。

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

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

引用了 PutLine(), YSLib::str, ystdex::string_begin() , 以及 ystdex::string_end().

函数调用图:

## ◆ PutString() [1/3]

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

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

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

参数

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

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

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

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

引用了 FetchLastLineBasePosition(), GetEndOfLineOffsetOf(), NeedNewline, YSLib::Drawing::TextState::Pen, PutChar(), CHRLib::s, ts , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

被这些函数引用 PutString(), PutText() , 以及 YSLib::DS::UI::DualScreenReader::UpdateView().

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

## ◆ PutString() [2/3]

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

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

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

参数

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

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

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

自从
  build 641

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

## ◆ PutString() [3/3]

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

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

inline

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

参数

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

返回
  打印字符数。

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

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

引用了 PutString(), YSLib::str, ystdex::string_begin() , 以及 ystdex::string_end().

函数调用图:

## ◆ PutText()

template<typename... _tParams>

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

打印文本。

参数

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

自从
  build 485

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

引用了 YSLib::args, PutLine(), PutString() , 以及 yforward.

被这些函数引用 DrawClippedText(), DrawText() , 以及 YSLib::UI::TextBox::UpdateTextBoxClippedText().

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

## ◆ RectDrawArrow()

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

在指定上下文的矩形中描画底边和坐标轴共线的等腰直角三角形箭头。

前置条件
  断言：指向值有效。

注解
  位置指定顶点；大小以高度量； RDeg0 指向右侧。

自从
  build 453

在文件 YStyle.cpp 第 69 行定义.

引用了 bounds, CHRLib::c, g, YSLib::i, RDeg0, RDeg180, RDeg270, RDeg90, x, YSLib::UI::y , 以及 YAssert.

被这些函数引用 DrawArrow().

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

## ◆ RectDrawArrowOutline()

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

在指定上下文的矩形中描画底边和坐标轴共线的等腰直角三角形箭头轮廓。

前置条件
  断言：指向值有效。

自从
  build 522

注解
  位置指定顶点；大小以高度量； RDeg0 指向右侧。

在文件 YStyle.cpp 第 102 行定义.

引用了 bounds, CHRLib::c, g, YSLib::i, RDeg0, RDeg180, RDeg270, RDeg90, x, YSLib::UI::y , 以及 YAssert.

被这些函数引用 DrawArrow().

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

## ◆ RectDrawCornerArrow()

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

在指定上下文的矩形中描画腰和坐标轴共线的等腰直角三角形箭头。

注解
  位置指定顶点；大小以斜边度量； RDeg0 指向右下角。

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

引用了 bounds, CHRLib::c, g, YSLib::i, RDeg0, RDeg180, RDeg270, RDeg90, ystdex::cpp2017::size(), x, YSLib::UI::y , 以及 YAssert.

被这些函数引用 DrawCornerArrow().

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

## ◆ RectDrawCornerArrowOutline()

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

在指定上下文的矩形中描画腰和坐标轴共线的等腰直角三角形箭头轮廓。

注解
  位置指定顶点；大小以斜边度量； RDeg0 指向右下角。

在文件 YStyle.cpp 第 186 行定义.

引用了 bounds, CHRLib::c, DrawLineSeg, g, RDeg0, RDeg180, RDeg270, ystdex::cpp2017::size(), x , 以及 YSLib::UI::y.

被这些函数引用 DrawCornerArrow().

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

## ◆ RenderChar()

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 第 112 行定义.

引用了 BlitGlyphPixels(), CHRLib::c, NPL::dst, YSLib::Consoles::Gray , 以及 YAssert.

函数调用图:

## ◆ RenderCharAlpha()

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 第 143 行定义.

引用了 BlitGlyphPixels(), CHRLib::c, NPL::dst, YSLib::Consoles::Gray , 以及 YAssert.

函数调用图:

## ◆ ScaleMin()

template<typename _tScalar = float>

YB_ATTR_nodiscard YB_PURE yconstfn _tScalar YSLib::Drawing::ScaleMin | ( | const Size & | x,
|  | const Size & | y,
|  | _tScalar | threshold = `1.F`
| ) |  |

计算两个大小和阈值限定的最小缩放值。

自从
  build 555

在文件 YGDIBase.h 第 773 行定义.

引用了 ystdex::cpp2014::min(), x , 以及 YSLib::UI::y.

函数调用图:

## ◆ SetCurrentTextLineNOf()

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

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

引用了 GetTextLineBaseOf, GetTextLineHeightExOf, YSLib::Drawing::TextState::Pen, SPos(), ts , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

被这些函数引用 YSLib::DS::UI::DualScreenReader::Execute() , 以及 YSLib::DS::UI::DualScreenReader::MoveUpForLastLine().

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

## ◆ SPos() [1/3]

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE YSLib::Drawing::SPos | ( | x.Bottom * | ptrdiff_tn | ) | const &

加法：缩小屏幕标准矩形，相对位置由指定边距决定。

注解
  若边距过大，则矩形的宽或高可能为 0 。

## ◆ SPos() [2/3]

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE YSLib::Drawing::SPos | ( | x.Right * | ptrdiff_tn | ) |

被这些函数引用 YSLib::Drawing::ImagePages::AdjustOffset(), GetEndOfLineOffsetOf(), YSLib::Drawing::Rect::operator|=(), PlotHLineSeg(), PlotLineSeg(), PlotVLineSeg() , 以及 SetCurrentTextLineNOf().

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

## ◆ SPos() [3/3]

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE YSLib::Drawing::SPos | ( | x.Top * | ptrdiff_tn | ) |

## ◆ to_string() [1/4]

template<typename _type >

YB_ATTR_nodiscard YB_PURE std::string YSLib::Drawing::to_string | ( | const GBinaryGroup< _type > & | val | ) |

转换为字符串。

注解
  使用 ADL 。

自从
  build 861

在文件 YGDIBase.h 第 507 行定义.

引用了 ystdex::quote(), YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

被这些函数引用 YSLib::Drawing::ImagePages::AdjustOffset(), YSLib::Drawing::ImagePages::Resize(), to_string(), Zoom() , 以及 YSLib::Drawing::ImagePages::ZoomTo().

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

## ◆ to_string() [2/4]

string YSLib::Drawing::to_string | ( | const ImageTag & | tag,
|  | ImageMetadataModel | model
| ) |  |

related

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

引用了 platform::Nonnull().

函数调用图:

## ◆ to_string() [3/4]

std::string YSLib::Drawing::to_string | ( | const Rect & | r | ) |

在文件 YGDIBase.cpp 第 141 行定义.

引用了 YSLib::Drawing::GGraphics< _tPointer, _tSize >::Height, ystdex::quote(), r , 以及 to_string().

被这些函数引用 to_string().

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

## ◆ to_string() [4/4]

std::string YSLib::Drawing::to_string | ( | const Size & | s | ) |

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

引用了 ystdex::quote(), CHRLib::s , 以及 to_string().

函数调用图:

## ◆ TransformRect() [1/2]

template<class _fTransformPixel >

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

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

自从
  build 166

在文件 YBlit.h 第 569 行定义.

引用了 g, CHRLib::s , 以及 YB_LIKELY.

## ◆ TransformRect() [2/2]

template<class _fTransformPixel >

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

inline

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

自从
  build 166

在文件 YBlit.h 第 589 行定义.

引用了 g , 以及 r.

## ◆ Transpose()

template<class _tBinary >

YB_ATTR_nodiscard YB_PURE yconstfn _tBinary YSLib::Drawing::Transpose | ( | const _tBinary & | obj | ) |

转置。

自从
  build 575

在文件 YGDIBase.h 第 453 行定义.

被这些函数引用 DispatchTranspose() , 以及 UpdateTranposedPixels().

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

## ◆ TransposeCCW()

template<typename _type >

YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup<_type> YSLib::Drawing::TransposeCCW | ( | const GBinaryGroup< _type > & | val | ) |

转置变换：逆时针旋转直角。

自从
  build 577

在文件 YGDIBase.h 第 463 行定义.

## ◆ TransposeCW()

template<typename _type >

YB_ATTR_nodiscard YB_PURE yconstfn GBinaryGroup<_type> YSLib::Drawing::TransposeCW | ( | const GBinaryGroup< _type > & | val | ) |

转置变换：顺时针旋转直角。

在文件 YGDIBase.h 第 471 行定义.

## ◆ UpdatePixels()

template<typename _fPixelShader , bool _bSwapLR = false, bool _bSwapUD = false>

void YSLib::Drawing::UpdatePixels | ( | _fPixelShader | shader,
|  | const PaintContext & | pc,
|  | const Drawing::Image & | img,
|  | const Point & | dst_offset,
|  | const Point & | src_offset
| ) |  |

更新：逐像素操作。

参见
  Drawing::BlitPixels

自从
  build 448

在文件 YBrush.h 第 184 行定义.

引用了 bounds, g , 以及 src.

## ◆ UpdatePixelsWithRotation()

template<Rotation _vRot = RDeg0, typename _fPixelShader = Shaders::BlitAlphaPoint>

void YSLib::Drawing::UpdatePixelsWithRotation | ( | _fPixelShader | shader,
|  | const PaintContext & | pc,
|  | const Drawing::Image & | img,
|  | const Point & | dst_offset,
|  | const Point & | src_offset
| ) |  |

更新：可能旋转源图像的像素操作。

参见
  Drawing::DispatchTranspose
  Drawing::UpdatePixels
  Drawing::UpdateTranposedPixels

自从
  build 579

在文件 YBrush.h 第 228 行定义.

引用了 BlitPixels(), bounds, DispatchTranspose(), g, RDeg180, RDeg270 , 以及 RDeg90.

函数调用图:

## ◆ UpdateRotatedBrush()

template<Rotation _vRot = RDeg0, typename _fPixelShader = Shaders::BlitAlphaPoint>

void YSLib::Drawing::UpdateRotatedBrush | ( | const PaintContext & | pc,
|  | const Drawing::Image & | img,
|  | const Point & | dst_offset,
|  | const Point & | src_offset
| ) |  |

使用默认构造的画刷更新：可能旋转源图像的像素操作。

参见
  Drawing::UpdatePixelsWithRotation

自从
  build 579

在文件 YBrush.h 第 256 行定义.

## ◆ UpdateTranposedPixels()

template<typename _fPixelShader , bool _bSwapLR = false, bool _bSwapUD = false>

void YSLib::Drawing::UpdateTranposedPixels | ( | _fPixelShader | shader,
|  | const PaintContext & | pc,
|  | const Drawing::Image & | img,
|  | const Point & | dst_offset,
|  | const Point & | src_offset
| ) |  |

更新：转置的逐像素操作。

参见
  Drawing::BlitPixels

自从
  build 575

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

引用了 bounds, g, ystdex::make_transposed(), src , 以及 Transpose().

函数调用图:

## ◆ Zoom()

YF_API CompactPixmap YSLib::Drawing::Zoom | ( | const HBitmap & | bitmap,
|  | ImageScale | ratio
| ) |  |

缩放位图。

前置条件
  断言：位图有效且非空。

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

引用了 NPL::c_str(), YSLib::Drawing::Size::Height, platform::Descriptions::Informative, to_string(), YSLib::Drawing::Size::Width, YSLib::YAssert() , 以及 YTraceDe.

被这些函数引用 YSLib::Drawing::ZoomedImageCache::Lookup() , 以及 YSLib::Drawing::ImagePages::ZoomByRatio().

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

## 变量说明

## ◆ AdjustBottomMarginOf

YB_ATTR_nodiscard YB_PURE tr YSLib::Drawing::AdjustBottomMarginOf

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

被这些函数引用 YSLib::DS::UI::DualScreenReader::AdjustMargins().

## ◆ bounds

The boundary is out of the const Graphics const Rect const Point const Point Color c const Rect & YSLib::Drawing::bounds

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

被这些函数引用 BlitGlyphLines(), BlitGlyphPixels(), ClipBounds(), YSLib::Drawing::ImageBrush::DefaultUpdate(), YSLib::UI::WidgetLoader::DetectWidgetNode(), DrawArrow(), DrawCircle(), DrawClippedText(), DrawCornerArrow(), DrawCross(), DrawPolygon(), DrawRect(), DrawRectRoundCorner(), DrawText(), DrawTick(), YSLib::UI::DrawTrackBackground(), FillCircle(), YSLib::UI::Invalidate(), YSLib::UI::InvalidateAll(), YSLib::UI::InvalidateChildren(), YSLib::UI::InvalidateVisible(), main(), PlotHLineSeg(), PlotLineSeg(), PlotVLineSeg(), RectDrawArrow(), RectDrawArrowOutline(), RectDrawCornerArrow(), RectDrawCornerArrowOutline(), YSLib::UI::ProgressBar::Refresh(), YSLib::UI::BufferedTextArea::Refresh(), YSLib::UI::TextList::Refresh(), UpdatePixels(), UpdatePixelsWithRotation(), YSLib::UI::BufferedRenderer::UpdateTo(), UpdateTranposedPixels() , 以及 YSLib::UI::BorderResizer::Wrap().

## ◆ buffer

The boundary is out of the YSLib::Drawing::buffer

在文件 YDraw.h 第 118 行定义.

被这些函数引用 YSLib::Drawing::Typeface::SmallBitmapData::~SmallBitmapData().

## ◆ c

YSLib::Drawing::c

在文件 YDraw.h 第 174 行定义.

被这些函数引用 YSLib::UI::Styles::AddHandlers(), BlendRectRaw(), CompositeRectRaw(), DrawCircle(), DrawClippedText(), DrawPolygon(), DrawRect(), DrawText(), Fill(), FillCircle(), FillPixels(), FillRect(), FillRectRaw(), FillVerticalLine(), ImplDeDtor(), YSLib::Drawing::Typeface::LookupGlyphIndex(), MovePen(), PlotHLineSeg(), PlotLineSeg(), PlotVLineSeg(), PrintChar() , 以及 PutChar().

## ◆ char32_t

YB_ATTR_nodiscard YB_PURE tr TextRegion& tr YSLib::Drawing::char32_t

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

被这些函数引用 CHRLib::GUCSMapper< CharSet::UTF_8 >::Assign1(), CHRLib::GUCSMapper< CharSet::UTF_8 >::Assign2(), CHRLib::GUCSMapper< CharSet::GBK >::Decode(), CHRLib::GUCSMapper< CharSet::UTF_16BE >::Decode(), CHRLib::GUCSMapper< CharSet::UTF_16LE >::Decode(), CHRLib::GUCSMapper< CharSet::UTF_32BE >::Decode(), CHRLib::GUCSMapper< CharSet::UTF_32LE >::Decode(), YSLib::UI::TextBox::GetCaretLocation(), YSLib::UI::TextBox::GetCaretPosition(), CHRLib::ImplRet(), PutChar(), YSLib::UI::TextBox::Refresh(), CHRLib::UCS2ToUCS4(), CHRLib::UCS4ToUCS2(), YSLib::UI::TextBox::UpdateTextBoxClippedText() , 以及 CHRLib::YB_NONNULL().

## ◆ Color

The boundary is out of the const Rect SDst SPos SPos SPos SPos YSLib::Drawing::Color

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

被这些函数引用 YSLib::Drawing::Shaders::GBlender< _tPixel, ystdex::when< _bCond > >::Blend(), YSLib::Drawing::Shaders::GBlender< _tPixel, ystdex::when< _bCond > >::BlendAlpha(), YSLib::Drawing::Shaders::GBlender< _tPixel, ystdex::when< _bCond > >::Composite(), DrawCircle() , 以及 FillCircle().

## ◆ dp

dst YSLib::Drawing::dp

在文件 YGDI.h 第 442 行定义.

被这些函数引用 Blit(), BlitBounds(), BlitLines(), BlitPixels(), BlitRect(), BlitTo(), ClipMargin() , 以及 CopyTo().

## ◆ DrawLineSeg

The boundary is out of the YSLib::Drawing::DrawLineSeg

在文件 YDraw.h 第 161 行定义.

被这些函数引用 DrawCross(), DrawPolygon(), DrawTick(), main() , 以及 RectDrawCornerArrowOutline().

## ◆ FetchName

YSLib::Drawing::FetchName

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

被这些函数引用 YSLib::Drawing::FontFamily::GetTypefacePtr().

## ◆ g

c yconstfn YSLib::Drawing::g

在文件 YDraw.h 第 161 行定义.

被这些函数引用 BlendRect(), ClearImage(), YSLib::Drawing::TextRegion::ClearLine(), ystdex::composed< addressof_op< void >, mem_get<> >::compose(), ystdex::compose(), ystdex::composed_n< equal_to< void * >, composed< addressof_op< void >, mem_get<> > >::compose_n(), ystdex::compose_n(), CompositeRect(), CopyTo(), YSLib::Drawing::ImageBrush::DefaultUpdate(), DrawArrow(), DrawCircle(), DrawClippedText(), DrawCornerArrow(), DrawCross(), DrawPolygon(), DrawRect(), DrawRectRoundCorner(), DrawText(), DrawTick(), YSLib::UI::DrawTrackBackground(), Fill(), FillCircle(), FillRect(), YSLib::Drawing::HSL::HSL(), YSLib::Drawing::HSV::HSV(), main(), YReader::ShlExplorer::OnPaint(), YSLib::UI::PaintEventArgs::PaintEventArgs(), RectDrawArrow(), RectDrawArrowOutline(), RectDrawCornerArrow(), RectDrawCornerArrowOutline(), YSLib::UI::ProgressBar::Refresh(), YSLib::UI::BufferedTextArea::Refresh(), YSLib::DS::UI::DualScreenReader::SetLineGap(), TransformRect(), UpdatePixels(), UpdatePixelsWithRotation(), YSLib::UI::TextBox::UpdateTextBoxClippedText(), YSLib::UI::BufferedRenderer::UpdateTo(), UpdateTranposedPixels() , 以及 YSLib::UI::BufferedRenderer::Validate().

## ◆ GetCurrentTextLineNOf

const TextState& ts YSLib::Drawing::GetCurrentTextLineNOf

在文件 TextBase.h 第 176 行定义.

## ◆ GetHorizontalOf

YB_ATTR_nodiscard YB_PURE YSLib::Drawing::GetHorizontalOf

在文件 YGDI.h 第 146 行定义.

被这些函数引用 ClipMargin(), YSLib::UI::MLabel::GetAlignedPenOffset(), YSLib::UI::ImplDeDtor(), YSLib::UI::HexViewArea::Refresh() , 以及 YSLib::UI::ResizeForContent().

## ◆ GetTextLineBaseOf

const TextState& ts const TextState& ts YSLib::Drawing::GetTextLineBaseOf

在文件 TextBase.h 第 183 行定义.

被这些函数引用 FetchLastLineBasePosition() , 以及 SetCurrentTextLineNOf().

## ◆ GetTextLineHeightExOf

YSLib::Drawing::GetTextLineHeightExOf

在文件 TextBase.h 第 169 行定义.

被这些函数引用 YSLib::DS::UI::DualScreenReader::AdjustScrollOffset(), YSLib::Drawing::TextRegion::ClearTextLine(), FetchLastLineBasePosition(), FetchResizedBottomMargin(), FetchResizedLineN(), YSLib::DS::UI::DualScreenReader::ScrollByPixel() , 以及 SetCurrentTextLineNOf().

## ◆ GetVerticalOf

YB_ATTR_nodiscard YB_PURE const Padding& m ynothrowv YSLib::Drawing::GetVerticalOf

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

被这些函数引用 ClipMargin(), FetchResizedBottomMargin(), FetchResizedLineN() , 以及 YSLib::UI::MLabel::GetAlignedPenOffset().

## ◆ p1

The boundary is out of the const Graphics const Rect const Point& YSLib::Drawing::p1

在文件 YDraw.h 第 162 行定义.

被这些函数引用 DrawTick(), ystdex::operator!=(), ystdex::operator<(), ystdex::observer_ptr< _type >::operator==() , 以及 ystdex::swap().

## ◆ p2

The boundary is out of the const Graphics const Rect const Point const Point& YSLib::Drawing::p2

在文件 YDraw.h 第 162 行定义.

被这些函数引用 DrawTick(), ystdex::operator!=(), ystdex::operator<(), ystdex::observer_ptr< _type >::operator==() , 以及 ystdex::swap().

## ◆ r

bounds & YSLib::Drawing::r

在文件 YDraw.h 第 174 行定义.

被这些函数引用 ystdex::addressof(), ystdex::cpp2017::basic_string< char >::append(), ystdex::cpp2017::basic_string< char >::assign(), YSLib::UI::ATrack::ATrack(), BlendRect(), BlitRect(), YSLib::Drawing::GGraphics< unique_ptr< Pixel[]> >::bool(), YSLib::UI::Label::CalculateBounds(), CompositeRect(), YSLib::Drawing::Rect::Contains(), YSLib::Drawing::Rect::ContainsStrict(), YSLib::Drawing::GGraphics< unique_ptr< Pixel[]> >::DefGetter(), DrawArrow(), DrawCircle(), DrawClippedText(), DrawCross(), DrawRect(), DrawTick(), platform::FetchCurrentWorkingDirectory(), FetchMargin(), CHRLib::FetchMaxCharWidth(), FetchStringOffsets(), FetchStringWidth(), CHRLib::FillByte(), FillCircle(), FillRect(), ystdex::get_mid(), YSLib::Drawing::HSL::HSL(), YSLib::Drawing::HSV::HSV(), ystdex::cpp2017::basic_string< char >::insert(), YSLib::UI::Invalidate(), YSLib::UI::InvalidateChildren(), YSLib::UI::TextList::InvalidateSelected(), YSLib::UI::InvalidateVisible(), YSLib::UI::LocateMenu(), main(), YSLib::UI::MakeLabel(), CHRLib::MBCToUC(), ystdex::pmr::cpp2017::new_delete_resource(), ystdex::pmr::cpp2017::null_memory_resource(), YReader::ShlExplorer::OnPaint(), NPL::A1::PassesCombiner::operator()(), operator+(), YSLib::Drawing::Rect::operator|=(), YSLib::UI::BufferedRenderer::Paint(), YSLib::UI::PaintEventArgs::PaintEventArgs(), ystdex::pmr::polymorphic_allocator< _type >::polymorphic_allocator(), NPL::A1::QuerySourceInformation(), ystdex::details::rb_tree::tree< key_type, value_type, first_of<>, key_compare, allocator_type >::rb_verify(), platform::ReadLink(), YSLib::FPSCounter::Refresh(), ystdex::cpp2017::basic_string< char >::replace(), ystdex::pmr::cpp2017::set_default_resource(), YSLib::UI::SetBoundsOf(), YSLib::UI::SetupContentsOf(), to_string(), TransformRect() , 以及 YSLib::UI::WidgetLoader::TransformUILayout().

## ◆ Right

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y YSLib::Drawing::Right

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

## ◆ RotateCCW

YB_ATTR_nodiscard YB_STATELESS yconstfn YSLib::Drawing::RotateCCW

在文件 YGDIBase.h 第 1159 行定义.

## ◆ RotateCW

YB_ATTR_nodiscard YB_STATELESS yconstfn Rotation rot YSLib::Drawing::RotateCW

在文件 YGDIBase.h 第 1163 行定义.

## ◆ SetPenOf

const TextState& ts const TextState& ts const TextState& ts YSLib::Drawing::SetPenOf

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

## ◆ sp

dst YSLib::Drawing::sp

在文件 YGDI.h 第 442 行定义.

被这些函数引用 Blit(), BlitBounds(), BlitLines(), BlitPixels(), BlitRect(), BlitTo(), ClipMargin(), CopyTo(), YSLib::operator!=(), YSLib::operator==() , 以及 ystdex::basic_membuf< _tChar, _tTraits >::seekpos().

## ◆ src

dst src rot YSLib::Drawing::src

在文件 YGDI.h 第 442 行定义.

被这些函数引用 Blit(), BlitGlyphLines(), BlitGlyphPixels(), BlitLines(), BlitPixels(), BlitRect(), BlitRectLines(), BlitRectPixels(), BlitScan(), CopyBuffer(), YSLib::IO::CopyFile(), YSLib::IO::CopyTree(), platform::CreateHardLink(), platform::CreateSymbolicLink(), NPL::Decompose(), NPL::Environment::Deduplicate(), YSLib::Drawing::ImageBrush::DefaultUpdate(), DispatchTranspose(), NPL::InstallDirectory(), NPL::InstallExecutable(), NPL::InstallFile(), NPL::InstallHardLink(), NPL::InstallSymbolicLink(), NPL::A1::Forms::LoadModule_SHBuild(), YSLib::UI::LocateMenu(), ystdex::map< VisualEvent, EventItem >::merge(), ystdex::details::rb_tree::tree< key_type, value_type, first_of<>, key_compare, allocator_type >::merge_equal(), ystdex::details::rb_tree::tree< key_type, value_type, first_of<>, key_compare, allocator_type >::merge_unique(), YSLib::UI::ReleaseFocusFrom(), YSLib::UI::RequestFocusFrom(), ystdex::to_array(), YSLib::IO::TraverseTree(), UpdatePixels(), UpdateTranposedPixels(), YSLib::UI::BufferedRenderer::Validate(), ystdex::block_buffer::write() , 以及 CHRLib::YB_NONNULL().

## ◆ Top

YB_ATTR_nodiscard yconstfn YB_PURE x x x Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y x Bottom y Bottom YB_ATTR_nodiscard yconstfn YB_PURE x Right y x Top y YSLib::Drawing::Top

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

## ◆ ts

const TextState& ts const TextState& ts const TextState& ts TextState& YSLib::Drawing::ts

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

被这些函数引用 YSLib::Drawing::TextRegion::ClearTextLine(), YSLib::UI::MLabel::DefaultUpdateClippedText(), DrawClippedText(), DrawText(), FetchLastLineBasePosition(), FetchResizedBottomMargin(), FetchResizedLineN(), FetchStringWidth(), MovePen(), YSLib::Drawing::TextRegion::operator=(), PutCharBase(), PutLine(), PutString(), SetCurrentTextLineNOf(), YReader::ReaderBox::UpdateData() , 以及 YSLib::UI::TextBox::UpdateTextBoxClippedText().

## ◆ w

The boundary is out of the const Rect SDst YSLib::Drawing::w

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

被这些函数引用 YReader::AddButtonToTabBar(), BlitRect(), YSLib::Drawing::CompactPixmapEx::CompactPixmapEx(), FetchStringOffsets(), FetchStringWidth(), YSLib::UI::TextBox::GetCaretPosition(), YSLib::ImplDeDtor(), ImplDeDtor(), YSLib::Devices::KeyInputDevice::KeyInputDevice(), NPL::A1::Forms::LoadModule_std_system(), ystdex::transposed_iterator< _tIter >::make_transposed(), ystdex::make_transposed(), CHRLib::Transcoding< _vFrom, CharSet::Null, _tDispatcher >::MakeTranscoded(), CHRLib::Transcoding< _vFrom, CharSet::Null, _tDispatcher >::MakeViewTranscoded(), YSLib::Drawing::CompactPixmap::PDefH(), PlotHLineSeg(), PlotLineSeg(), PlotVLineSeg(), YSLib::DS::UI::DualScreenReader::Stretch() , 以及 ystdex::details::rb_tree::tree_rebalance_for_erase().

## ◆ x

The boundary is out of the const Rect SDst SPos YSLib::Drawing::x

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

被这些函数引用 BlitRect(), YSLib::Drawing::Size::DefDeCopyAssignment(), DrawCircle(), FetchStringWidth(), FillCircle(), YSLib::Drawing::BlitLineLoop< _bDec >::operator()(), operator+(), operator-(), operator==(), PlotVLineSeg() , 以及 ScaleMin().

## ◆ x1

The boundary is out of the const Rect SDst SPos YSLib::Drawing::x1

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

被这些函数引用 DrawRect(), DrawRectRoundCorner(), PlotHLineSeg(), PlotLineSeg() , 以及 YSLib::UI::TextBox::UpdateTextBoxClippedText().

## ◆ x2

The boundary is out of the const Rect SDst SPos SPos SPos YSLib::Drawing::x2

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

被这些函数引用 DrawRect(), DrawRectRoundCorner(), YSLib::Drawing::HSL::HSL(), PlotHLineSeg(), PlotLineSeg() , 以及 YSLib::UI::TextBox::UpdateTextBoxClippedText().

## ◆ y1

The boundary is out of the const Rect SDst SPos SPos YSLib::Drawing::y1

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

被这些函数引用 DrawRect(), DrawRectRoundCorner(), PlotLineSeg() , 以及 PlotVLineSeg().

## ◆ y2

The boundary is out of the const Rect SDst SPos SPos SPos SPos YSLib::Drawing::y2

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

被这些函数引用 DrawRect(), DrawRectRoundCorner(), PlotLineSeg() , 以及 PlotVLineSeg().

## ◆ ynothrow

YB_ATTR_nodiscard !x const Rect & YSLib::Drawing::ynothrow

在文件 YGDI.h 第 132 行定义.

被这些函数引用 YSLib::DeclI() , 以及 YSLib::GUIHost::~GUIHost().