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

图形处理。 更多...

命名空间

 Shaders
 着色器命名空间。
 

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

类型定义

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

枚举

enum  FontStyle : u8 {
  FontStyle::Regular = 0, FontStyle::Bold = 1, FontStyle::Italic = 2, FontStyle::Underline = 4,
  FontStyle::Strikeout = 8
}
 字体样式。 更多...
 
enum  ImageFormat : int {
  ImageFormat::Unknown = -1, ImageFormat::BMP = 0, ImageFormat::ICO = 1, ImageFormat::JPEG = 2,
  ImageFormat::PNG = 13, ImageFormat::GIF = 25
}
 图像格式。 更多...
 
enum  ImageDecoderFlags : int {
  ImageDecoderFlags::Default = 0, ImageDecoderFlags::GIF_Load256 = 1, ImageDecoderFlags::GIF_Playback = 2, ImageDecoderFlags::ICO_MakeAlpha = 1,
  ImageDecoderFlags::JPEG_Fast = 0x0001, ImageDecoderFlags::JPEG_Accurate = 0x0002, ImageDecoderFlags::JPEG_CMYK = 0x0004, ImageDecoderFlags::JPEG_EXIFRotate = 0x0008,
  ImageDecoderFlags::JPEG_GreyScale = 0x0010, ImageDecoderFlags::JPEG_QualitySuperb = 0x80, ImageDecoderFlags::JPEG_QualityGood = 0x0100, ImageDecoderFlags::JPEG_QualityNormal = 0x0200,
  ImageDecoderFlags::JPEG_QualityAverage = 0x0400, ImageDecoderFlags::JPEG_QualityBad = 0x0800, ImageDecoderFlags::JPEG_Progressive = 0x2000, ImageDecoderFlags::JPEG_Subsampling_411 = 0x1000,
  ImageDecoderFlags::JPEG_Subsampling_420 = 0x4000, ImageDecoderFlags::JPEG_Subsampling_422 = 0x8000, ImageDecoderFlags::JPEG_Subsampling_444 = 0x10000, ImageDecoderFlags::JPEG_Optimize = 0x20000,
  ImageDecoderFlags::JPEG_Baseline = 0x40000
}
 图像解码器标识。 更多...
 
enum  Orientation { Horizontal = 0, Vertical = 1 }
 二元方向。 更多...
 

函数

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

变量

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

详细描述

图形处理。

自从
build 456

类型定义说明

自从
build 402

在文件 Image.h55 行定义.

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

字型家族名称。

自从
build 277

在文件 Font.h73 行定义.

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

字体文件路径。

自从
build 277

在文件 Font.h68 行定义.

using YSLib::Drawing::FontSize = typedef u8

字体大小。

自从
build 277

在文件 Font.h63 行定义.

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

Alpha 光栅化源迭代器对。

自从
build 417

在文件 yblit.h520 行定义.

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

屏幕二维点(直角坐标表示)。

自从
build 242

在文件 ygdibase.h235 行定义.

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

字型样式名称。

自从
build 277

在文件 Font.h78 行定义.

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

屏幕二维向量(直角坐标表示)。

自从
build 242

在文件 ygdibase.h242 行定义.

枚举类型说明

字体样式。

自从
build 197
枚举值
Regular 

常规字体。

Bold 

粗体。

Italic 

斜体。

Underline 

下划线。

Strikeout 

删除线。

在文件 Font.h85 行定义.

图像解码器标识。

注解
数值对应 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.h81 行定义.

enum YSLib::Drawing::ImageFormat : int
strong

图像格式。

注解
枚举值和 ::FREE_IMAGE_FORMAT 兼容。
参见
FreeImage 宏 FI_ENUM 。
自从
build 457
枚举值
Unknown 
BMP 
ICO 
JPEG 
PNG 
自从
build 470
GIF 

在文件 Image.h64 行定义.

二元方向。

自从
build 416
枚举值
Horizontal 
Vertical 

在文件 ygdibase.h880 行定义.

函数说明

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

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

自从
build 252

在文件 TextLayout.h84 行定义.

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

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

函数调用图:

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

YSLib::Drawing::bitmap_cache ( 2047U  )
template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fBlitLoop >
void YSLib::Drawing::Blit ( _fBlitLoop  loop,
_tOut  dst,
_tIn  src,
const Size &  ds,
const Size &  ss,
const Point &  dp,
const Point &  sp,
const Size &  sc 
)

贴图函数模板。

模板参数
_bSwapLR水平翻转镜像(关于水平中轴对称)。
_bSwapUD竖直翻转镜像(关于竖直中轴对称)。
_tOut输出迭代器类型(需要支持 + 操作,一般应是随机迭代器)。
_tIn输入迭代器类型(需要支持 + 操作,一般应是随机迭代器)。
_fBlitLoop循环操作类型。
参数
loop循环操作。
dst目标迭代器。
ds目标迭代器所在缓冲区大小。
src源迭代器。
ss源迭代器所在缓冲区大小。
dp目标迭代器起始点所在缓冲区偏移。
sp源迭代器起始点所在缓冲区偏移。
sc源迭代器需要复制的区域大小。
注解
允许坐标分量越界。越上界时由 BlitBounds 过滤,越下界时修正为 0 。
参见
BlitBounds
BlitScan
自从
build 437

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

在文件 yblit.h231 行定义.

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

函数调用图:

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

贴图边界计算器。

返回
是否存在合适边界。
自从
build 438

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

在文件 yblit.cpp58 行定义.

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

参考自 Blit().

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

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

字符按扫描线块传输。

模板参数
_tOut输出迭代器类型。
_tIn输入迭代器类型。
_fBlitScanner扫描线操作类型。
参数
scanner扫描线操作。
src源迭代器。
ss源迭代器所在缓冲区大小。
pc指定字符所在区域和渲染目标的绘制上下文, 其中 Location 为相对于源的坐标。
neg_pitch指定交换行渲染顺序。
参见
Blit
BlitLines
自从
build 438

在文件 CharRenderer.h59 行定义.

参考 r.

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

字符按像素块传输。

模板参数
_tOut输出迭代器类型。
_tIn输入迭代器类型。
_fPixelShader像素着色器类型。
参数
blit像素操作。
src源迭代器。
ss源迭代器所在缓冲区大小。
pc指定字符所在区域和渲染目标的绘制上下文, 其中 Location 为相对于源的坐标。
neg_pitch指定交换行渲染顺序。
参见
Blit
BlitPixels
自从
build 440

在文件 CharRenderer.h91 行定义.

参考 r.

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

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

template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fBlitScanner >
void YSLib::Drawing::BlitLines ( _fBlitScanner  scanner,
_tOut  dst,
_tIn  src,
const Size &  ds,
const Size &  ss,
const Point &  dp,
const Point &  sp,
const Size &  sc 
)

扫描线贴图函数模板。

模板参数
_bSwapLR水平翻转镜像(关于水平中轴对称)。
_bSwapUD竖直翻转镜像(关于竖直中轴对称)。
_tOut输出迭代器类型(需要支持 + 操作,一般应是随机迭代器)。
_tIn输入迭代器类型(需要支持 + 操作,一般应是随机迭代器)。
_fBlitScanner扫描线操作类型。
参数
scanner扫描线操作。
dst目标迭代器。
ds目标迭代器所在缓冲区大小。
src源迭代器。
ss源迭代器所在缓冲区大小。
dp目标迭代器起始点所在缓冲区偏移。
sp源迭代器起始点所在缓冲区偏移。
sc源迭代器需要复制的区域大小。
参见
Blit
BlitScannerLoop
自从
build 437

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

在文件 yblit.h294 行定义.

template<bool _bSwapLR, bool _bSwapUD, typename _tOut , typename _tIn , typename _fPixelShader >
void YSLib::Drawing::BlitPixels ( _fPixelShader  shader,
_tOut  dst,
_tIn  src,
const Size &  ds,
const Size &  ss,
const Point &  dp,
const Point &  sp,
const Size &  sc 
)

像素贴图函数模板。

模板参数
_bSwapLR水平翻转镜像(关于水平中轴对称)。
_bSwapUD竖直翻转镜像(关于竖直中轴对称)。
_tOut输出迭代器类型(需要支持 + 操作,一般应是随机迭代器)。
_tIn输入迭代器类型(需要支持 + 操作,一般应是随机迭代器)。
_fPixelShader像素着色器类型。
参数
blit像素操作。
dst目标迭代器。
ds目标迭代器所在缓冲区大小。
src源迭代器。
ss源迭代器所在缓冲区大小。
dp目标迭代器起始点所在缓冲区偏移。
sp源迭代器起始点所在缓冲区偏移。
sc源迭代器需要复制的区域大小。
参见
Blit
BlitScannerLoop
BlitLineLoop
自从
build 440

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

在文件 yblit.h354 行定义.

template<bool >
yconstfn size_t YSLib::Drawing::BlitScaleComponent ( SPos  d,
SDst   
)

贴图偏移分量计算器。

自从
build 445

在文件 yblit.h151 行定义.

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

在文件 yblit.h157 行定义.

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

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

参考 RDeg0.

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

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

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

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

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

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

在文件 ygdi.h459 行定义.

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

清除缓冲区。

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

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

自从
早于 build 132

在文件 yblit.cpp89 行定义.

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

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

函数调用图:

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

template<typename _tOut >
_tOut YSLib::Drawing::ClearPixel ( _tOut  dst,
size_t  n 
)
inline

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

模板参数
_tOut输出迭代器类型。
参见
ClearSequence

在文件 yblit.h424 行定义.

参考 YSLib::ClearSequence().

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

函数调用图:

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

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

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

自从
build 372

在文件 ygdi.h134 行定义.

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

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

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

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

返回
若边距决定不足以被渲染则为 Point() ,否则为源的起始偏移位置。
注解
当不需要绘制时,不修改偏移坐标。
自从
build 372

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

在文件 ygdi.cpp59 行定义.

参考 Clip().

函数调用图:

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

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

返回
若边距决定不足以被渲染则为 Point() ,否则为源的起始偏移位置。
注解
当不需要绘制时,不修改偏移坐标。
自从
build 369

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

在文件 ygdi.cpp68 行定义.

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

函数调用图:

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

在文件 ystyle.cpp161 行定义.

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

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

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

参考自 operator=().

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

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

转移构造:转移资源。

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

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

前置条件
断言:指针非空;大小相等。
注解
缓冲区指针相等时忽略。
自从
build 177

在文件 yblit.cpp77 行定义.

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

函数调用图:

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

在文件 ygdi.cpp218 行定义.

参考 RDeg0.

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

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

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

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

在文件 ygdi.cpp234 行定义.

参考 RDeg0.

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

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

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

图形接口上下文复制。

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

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

在文件 ygdi.h420 行定义.

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

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

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

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

在文件 ygdi.h434 行定义.

template<typename _tPixel >
_tPixel* YSLib::Drawing::CreateRawBitmap ( const _tPixel *  s,
size_t  n 
)

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

自从
build 213

在文件 ShellHelper.h330 行定义.

参考 YB_LIKELY.

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

新建屏幕图像。

自从
build 213

在文件 ShellHelper.h319 行定义.

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

图像接口。

自从
build 405
build 406
build 409

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

参考位置。

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

剪切区域。

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

在文件 ygdibase.h810 行定义.

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

默认边距。

自从
build 286

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

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

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

在文件 ygdi.h371 行定义.

参考 ystdex::swap().

函数调用图:

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

取 Alpha 缓冲区的指针。

自从
build 417

取 Alpha 缓冲区占用空间。

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

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

自从
build 302

在文件 ystyle.cpp100 行定义.

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

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

函数调用图:

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

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

描画圆形。

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

在文件 ydraw.cpp173 行定义.

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

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

函数调用图:

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

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

绘制剪切区域的文本。

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

在文件 TextRenderer.cpp214 行定义.

参考 PutText().

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

函数调用图:

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

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

绘制剪切区域的文本。

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

在文件 TextRenderer.cpp222 行定义.

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

函数调用图:

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

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

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

在文件 ystyle.cpp125 行定义.

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

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

函数调用图:

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

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

描画水平线段。

前置条件
断言: bool(g)
断言: bounds 在 g 指定的边界内。
参见
PlotHLineSeg

在文件 ydraw.h128 行定义.

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

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

函数调用图:

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

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

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

在文件 ydraw.h178 行定义.

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

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

函数调用图:

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

template<typename _tIn >
void YSLib::Drawing::DrawPolygon ( Graphics &  g,
const Rect &  bounds,
_tIn  first,
_tIn  last,
Color  c 
)

描画多边形。

在文件 ydraw.h240 行定义.

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

函数调用图:

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

描画标准矩形。

前置条件
间接断言:图形接口上下文有效。
注解
右下角顶点坐标 (pt.X + s.Width - 1, pt.Y + s.Height - 1) 。

在文件 ydraw.cpp131 行定义.

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

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

函数调用图:

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

void YSLib::Drawing::DrawRect ( const Graphics &  g,
const Rect &  bounds,
const Rect &  r,
Color  c 
)
inline
注解
右下角顶点坐标 (r.X + r.Width - 1, r.Y + r.Height - 1) 。

在文件 ydraw.h203 行定义.

参考 c , 以及 DrawRect().

函数调用图:

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

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

前置条件
间接断言:图形上下文接口有效。
注解
右下角顶点坐标 (pc.Location.X + s.Width - 1, pc.Location.Y + s.Height - 1) 。
自从
build 453

在文件 ystyle.cpp42 行定义.

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

函数调用图:

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

绘制文本。

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

在文件 TextRenderer.cpp236 行定义.

参考 DrawClippedText().

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

函数调用图:

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

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

绘制文本。

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

在文件 TextRenderer.cpp241 行定义.

参考 DrawClippedText().

函数调用图:

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

绘制文本。

参数
r文本区域。
g输出图形接口上下文。
pt绘制区域左上角相对于图形接口上下文的位置偏移。
s绘制区域大小。
str待绘制的字符串。
line_wrap自动换行。
注解
间接绘制并贴图。
自从
build 309

在文件 TextRenderer.cpp247 行定义.

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

函数调用图:

void YSLib::Drawing::DrawTick ( const Graphics &  g,
const Rect &  bounds,
const Rect &  r,
Color  c1,
Color  c2 
)
void YSLib::Drawing::DrawVLineSeg ( const Graphics &  g,
const Rect &  bounds,
SPos  x,
SPos  y1,
SPos  y2,
Color  c 
)
inline

描画竖直线段。

前置条件
断言: bool(g)
断言: bounds 在 g 指定的边界内。
参见
PlotVLineSeg

在文件 ydraw.h153 行定义.

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

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

函数调用图:

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

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

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

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

const FamilyName YSLib::Drawing::family_name ( face->  family_name)
SDst YSLib::Drawing::FetchCharWidth ( const Font &  font,
ucs4_t  c 
)

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

注解
无边界限制。
自从
build 280

在文件 TextLayout.cpp71 行定义.

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

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

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

取默认字型引用。

异常
LoggedEvent记录异常事件。
自从
build 425

在文件 Font.cpp367 行定义.

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

函数调用图:

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

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

注解
若不足一行则最底行视为首行。
警告
不检查边距正确性。若顶边距正确,则返回值应小于输入的高。
自从
build 190

在文件 TextLayout.cpp60 行定义.

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

参考自 PutString().

函数调用图:

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

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

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

在文件 ygdi.cpp51 行定义.

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

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

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

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst YSLib::Drawing::FetchMaxTextWidth ( const Font &  font,
_tIter  first,
_tIter  last 
)

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

自从
build 483

在文件 TextLayout.h318 行定义.

参考 FetchStringWidth().

函数调用图:

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

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

前置条件
断言: GetTextLineHeightExOf(ts) != 0
后置条件
ts.Margin.Bottom 不小于原值。
返回
返回调整后的底边距值(由字体大小、行距和高决定)。
自从
build 252

在文件 TextLayout.cpp44 行定义.

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

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

函数调用图:

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

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

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

自从
build 252

在文件 TextLayout.h74 行定义.

参考 FetchResizedBottomMargin().

函数调用图:

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

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

前置条件
断言: GetTextLineHeightExOf(ts) != 0
返回
最大能容纳的文本行数。
自从
build 252

在文件 TextLayout.cpp52 行定义.

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

参考自 FetchLastLineBasePosition().

函数调用图:

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

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets ( size_t  max_width,
const Font &  fnt,
_tIter  s 
)

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

注解
能被显示的(含不完整显示的)字符数和这些字符占用的。
自从
build 484
注解
迭代器 s 指向字符串首字符,迭代直至字符串结束符。

在文件 TextLayout.h110 行定义.

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

参考自 FetchStringOffsets().

函数调用图:

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

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets ( size_t  max_width,
const Font &  fnt,
_tIter  s,
size_t  n,
ucs4_t  c = {} 
)

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

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

在文件 TextLayout.h129 行定义.

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets ( size_t  max_width,
const Font &  fnt,
_tIter  s,
_tIter  g,
ucs4_t  c = {} 
)

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

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

在文件 TextLayout.h149 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets ( size_t  max_width,
const Font &  fnt,
const _tString &  str 
)
inline

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

在文件 TextLayout.h166 行定义.

参考 FetchStringOffsets().

函数调用图:

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
pair<size_t, SDst> YSLib::Drawing::FetchStringOffsets ( size_t  max_width,
const Font &  fnt,
const _tString &  str,
size_t  n 
)
inline

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

在文件 TextLayout.h177 行定义.

参考 FetchStringOffsets().

函数调用图:

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst YSLib::Drawing::FetchStringWidth ( const Font &  fnt,
_tIter  s 
)

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

注解
迭代器 s 指向字符串首字符,迭代直至字符串结束符。
自从
build 483

在文件 TextLayout.h192 行定义.

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

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

函数调用图:

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

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst YSLib::Drawing::FetchStringWidth ( const Font &  fnt,
_tIter  s,
size_t  n,
ucs4_t  c = {} 
)

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

注解
迭代器 s 指向字符串首字符,迭代直至 n 次或指定字符 c 。
自从
build 484

在文件 TextLayout.h211 行定义.

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst YSLib::Drawing::FetchStringWidth ( const Font &  fnt,
_tIter  s,
_tIter  g,
ucs4_t  c = {} 
)

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

注解
迭代器 s 指向字符串首字符,迭代直至边界迭代器 g 或指定字符 c 。
自从
build 483

在文件 TextLayout.h230 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
SDst YSLib::Drawing::FetchStringWidth ( const Font &  fnt,
const _tString &  str 
)
inline

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

自从
build 483

在文件 TextLayout.h248 行定义.

参考 FetchStringWidth().

函数调用图:

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
SDst YSLib::Drawing::FetchStringWidth ( const Font &  fnt,
const _tString &  str,
size_t  n 
)
inline

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

自从
build 484

在文件 TextLayout.h259 行定义.

参考 FetchStringWidth().

函数调用图:

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst YSLib::Drawing::FetchStringWidth ( TextState &  ts,
SDst  h,
_tIter  s 
)

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

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

在文件 TextLayout.h272 行定义.

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

函数调用图:

template<typename _tIter , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
SDst YSLib::Drawing::FetchStringWidth ( TextState &  ts,
SDst  h,
_tIter  s,
_tIter  g,
ucs4_t  c = {} 
)

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

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

在文件 TextLayout.h289 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
SDst YSLib::Drawing::FetchStringWidth ( TextState &  ts,
SDst  h,
const _tString &  str 
)
inline

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

注解
字体由文本状态指定。
自从
build 483

在文件 TextLayout.h305 行定义.

参考 FetchStringWidth().

函数调用图:

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

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

自从
build 177

在文件 yblit.cpp95 行定义.

参考 GetAreaOf().

函数调用图:

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

填充圆形。

在文件 ydraw.cpp195 行定义.

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

函数调用图:

template<typename _tPixel , typename _tOut >
void YSLib::Drawing::FillPixel ( _tOut  dst,
size_t  n,
_tPixel  c 
)
inline

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

在文件 yblit.h435 行定义.

参考 c.

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

填充标准矩形。

前置条件
断言:图形接口上下文有效。
注解
右下角顶点坐标 (pt.X + s.Width - 1, pt.Y + s.Height - 1) 。

在文件 ydraw.cpp146 行定义.

参考 c, r , 以及 YAssert.

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

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

template<typename _tPixel , typename _tOut >
void YSLib::Drawing::FillRectRaw ( _tOut  dst,
const Size &  ds,
const Point &  sp,
const Size &  sc,
_tPixel  c 
)
inline

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

自从
build 452

在文件 yblit.h458 行定义.

参考 c.

template<typename _tPixel , typename _tOut >
void YSLib::Drawing::FillRectRaw ( _tOut  dst,
const Size &  ds,
const Rect &  r,
_tPixel  c 
)
inline

在文件 yblit.h466 行定义.

参考 c , 以及 r.

template<typename _tPixel , typename _tOut >
void YSLib::Drawing::FillRectRaw ( _tOut  dst,
SDst  dw,
SDst  dh,
SPos  x,
SPos  y,
SDst  w,
SDst  h,
_tPixel  c 
)
inline

在文件 yblit.h473 行定义.

参考 c.

template<typename _tPixel , typename _tOut >
void YSLib::Drawing::FillVerticalLine ( _tOut  dst,
size_t  n,
SDst  dw,
_tPixel  c 
)
inline

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

在文件 yblit.h445 行定义.

参考 c.

YSLib::Drawing::format ( fmt  )

在文件 Image.cpp242 行定义.

参考 handle().

参考自 YSLib::TranslateTime().

函数调用图:

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

Color YSLib::Drawing::GenerateRandomColor ( )
inline
自从
build 360

在文件 ShellHelper.h293 行定义.

yconstfn auto YSLib::Drawing::GetAreaOf ( const Size &  s) -> decltype(s.Width * s.Height)
template<class _tRenderer >
SDst YSLib::Drawing::GetEndOfLinePositionOf ( const _tRenderer &  r)
inline

取文本渲染器的行末位置(横坐标)。

自从
build 372

在文件 CharRenderer.h136 行定义.

参考自 PutChar().

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

SDst YSLib::Drawing::GetVerticalOf ( const Padding &  m)
inline
YSLib::Drawing::glyph_index_cache ( )

在文件 Font.cpp270 行定义.

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

参考自 format().

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

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

在文件 ystyle.cpp200 行定义.

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

参考自 RollColor().

函数调用图:

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

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

在文件 Font.cpp257 行定义.

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

函数调用图:

YSLib::Drawing::if ( p_ff)
new
void YSLib::Drawing::MovePen ( TextState &  ts,
ucs4_t  c 
)
related
template<typename _type >
yconstfn bool YSLib::Drawing::operator!= ( const GBinaryGroup< _type > &  a,
const GBinaryGroup< _type > &  b 
)

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

自从
build 319

在文件 ygdibase.h192 行定义.

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

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

自从
build 319

在文件 ygdibase.h370 行定义.

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

在文件 Image.h605 行定义.

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

在文件 ygdibase.cpp128 行定义.

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

数乘:屏幕二元组。

自从
build 319

在文件 ygdibase.h225 行定义.

参考 platform_ex::Windows::l.

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

加法:屏幕二元组。

自从
build 319

在文件 ygdibase.h203 行定义.

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

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

自从
build 319

在文件 ygdibase.h382 行定义.

参考 platform_ex::Windows::s.

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

减法:屏幕二元组。

自从
build 319

在文件 ygdibase.h214 行定义.

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

在文件 ygdi.h328 行定义.

参考 CompactPixmapEx().

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

函数调用图:

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

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

在文件 ygdi.h337 行定义.

参考 ystdex::swap().

函数调用图:

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

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

自从
build 319

在文件 ygdibase.h181 行定义.

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

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

自从
build 319

在文件 ygdibase.h360 行定义.

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

在文件 Image.cpp508 行定义.

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

在文件 ygdibase.cpp134 行定义.

auto& YSLib::Drawing::p_ff ( cache.  mFamilies[family_name])
return pair<std::reference_wrapper<FontFamily>, std::reference_wrapper<::FT_FaceRec_> >* YSLib::Drawing::p_ff ( )
YSLib::Drawing::PDefH ( void  ,
DrawTick  ,
const Graphics &  g,
const Rect &  bounds,
const Rect &  r,
Color  c 
)
inline
注解
使用单一颜色。
c yconstfn YSLib::Drawing::PDefH ( Color  ,
MakeGray  ,
MonoType  g 
)

按指定分量取灰度色。

自从
build 464
YSLib::Drawing::PDefH ( void  ,
DrawLineSeg  ,
const Graphics &  g,
const Rect &  bounds,
const Point &  p1,
const Point &  p2,
Color  c 
)
inline
YSLib::Drawing::PDefH ( void  ,
FillRect  ,
const Graphics &  g,
const Rect &  bounds,
const Rect &  r,
Color  c 
)
inline
void YSLib::Drawing::PlotHLineSeg ( BitmapPtr  dst,
const Rect &  bounds,
SDst  w,
SPos  y,
SPos  x1,
SPos  x2,
Color  c 
)

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

前置条件
断言: dst

在文件 ydraw.cpp39 行定义.

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

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

函数调用图:

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

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

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

前置条件
间接断言: dst

在文件 ydraw.cpp83 行定义.

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

参考自 DrawLineSeg().

函数调用图:

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

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

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

前置条件
断言: dst

在文件 ydraw.cpp61 行定义.

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

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

函数调用图:

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

template<class _tRenderer >
void YSLib::Drawing::PrintChar ( _tRenderer &  r,
ucs4_t  c 
)

打印单个可打印字符。

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

在文件 CharRenderer.h148 行定义.

参考 r , 以及 YB_LIKELY.

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

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

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PrintLine ( _tRenderer &  r,
_tIter  s 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
返回
指向结束位置的迭代器。
注解
迭代直至字符串结束符。
自从
build 483

在文件 TextRenderer.h52 行定义.

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

参考自 PrintLine().

函数调用图:

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

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PrintLine ( _tRenderer &  r,
_tIter  s,
_tIter  g,
ucs4_t  c = {} 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
g指示迭代终止位置的输入迭代器。
c指向迭代终止的字符。
返回
指向结束位置的迭代器。
注解
迭代直至 g 指定的位置或指定位置的字符为 c 。
自从
build 483

在文件 TextRenderer.h74 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type YSLib::Drawing::PrintLine ( _tRenderer &  r,
const _tString &  str 
)
inline

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

参数
r使用的字符渲染器。
str被输出的字符串。
返回
打印字符数。
自从
build 483

在文件 TextRenderer.h93 行定义.

参考 PrintLine().

函数调用图:

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PrintString ( _tRenderer &  r,
_tIter  s 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
返回
指向结束位置的迭代器。
注解
迭代直至字符串结束符。
自从
build 483

在文件 TextRenderer.h171 行定义.

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

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

函数调用图:

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

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PrintString ( _tRenderer &  r,
_tIter  s,
_tIter  g,
ucs4_t  c = {} 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
g指示迭代终止位置的输入迭代器。
c指向迭代终止的字符。
返回
指向结束位置的迭代器。
注解
迭代直至 g 指定的位置或指定位置的字符为 c 。
自从
build 483

在文件 TextRenderer.h190 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type YSLib::Drawing::PrintString ( _tRenderer &  r,
const _tString &  str 
)
inline

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

参数
r使用的字符渲染器。
str被输出的字符串。
返回
打印字符数。
自从
build 483

在文件 TextRenderer.h206 行定义.

参考 PrintString().

函数调用图:

template<class _tRenderer >
u8 YSLib::Drawing::PutChar ( _tRenderer &  r,
ucs4_t  c 
)

打印单个字符。

返回
遇到行内无法容纳而换行时返回非零值,否则返回 0 。
注解
处理换行符。
当行内无法容纳完整字符时换行。
自从
build 190

在文件 CharRenderer.h171 行定义.

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

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

函数调用图:

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

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

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

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

在文件 CharRenderer.cpp179 行定义.

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

参考自 PutChar().

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

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PutLine ( _tRenderer &  r,
_tIter  s 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
返回
指向结束位置的迭代器。
注解
迭代直至字符串结束符。
当行内无法容纳完整字符时换行。
自从
build 483

在文件 TextRenderer.h110 行定义.

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

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

函数调用图:

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

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PutLine ( _tRenderer &  r,
_tIter  s,
_tIter  g,
ucs4_t  c = {} 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
g指示迭代终止位置的输入迭代器。
c指向迭代终止的字符。
返回
指向结束位置的迭代器。
注解
迭代直至 g 指定的位置或指定位置的字符为 c 。
当行内无法容纳完整字符时换行。
自从
build 483

在文件 TextRenderer.h134 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type YSLib::Drawing::PutLine ( _tRenderer &  r,
const _tString &  str 
)
inline

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

参数
r使用的字符渲染器。
str被输出的字符串。
返回
打印字符数。
注解
当行内无法容纳完整字符时换行。
自从
build 483

在文件 TextRenderer.h155 行定义.

参考 PutLine().

函数调用图:

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PutString ( _tRenderer &  r,
_tIter  s 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
返回
指向结束位置的迭代器。
注解
迭代直至字符串结束符。
当行内无法容纳完整字符时换行。
自从
build 483

在文件 TextRenderer.h223 行定义.

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

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

函数调用图:

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

template<typename _tIter , class _tRenderer , yimpl(typename=ystdex::enable_for_iterator_t< _tIter >) >
_tIter YSLib::Drawing::PutString ( _tRenderer &  r,
_tIter  s,
_tIter  g,
ucs4_t  c = {} 
)

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

参数
r使用的字符渲染器。
s指向字符串起始字符的输入迭代器。
g指示迭代终止位置的输入迭代器。
c指向迭代终止的字符。
返回
指向结束位置的迭代器。
注解
迭代直至 g 指定的位置或指定位置的字符为 c 。
当行内无法容纳完整字符时换行。
自从
build 483

在文件 TextRenderer.h247 行定义.

template<class _tRenderer , class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
String::size_type YSLib::Drawing::PutString ( _tRenderer &  r,
const _tString &  str 
)
inline

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

参数
r使用的字符渲染器。
str被输出的字符串。
返回
打印字符数。
注解
当行内无法容纳完整字符时换行。
自从
build 483

在文件 TextRenderer.h268 行定义.

参考 PutString().

函数调用图:

template<typename... _tParams>
void YSLib::Drawing::PutText ( bool  multi,
_tParams &&...  args 
)

打印文本。

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

在文件 TextRenderer.h281 行定义.

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

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

函数调用图:

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

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

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

自从
build 453

在文件 ystyle.cpp68 行定义.

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

参考自 DrawArrow().

函数调用图:

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

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

渲染单个字符。

参数
pc指定字符所在区域和渲染目标的绘制上下文, 其中 Location 为相对于源的坐标。
前置条件
断言:缓冲区非空。
注解
忽略 Alpha 缓冲。
自从
build 415

在文件 CharRenderer.cpp120 行定义.

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

函数调用图:

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

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

参数
pc指定字符所在区域和渲染目标的绘制上下文, 其中 Location 为相对于源的坐标。
前置条件
断言:缓冲区非空。
自从
build 417

在文件 CharRenderer.cpp149 行定义.

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

函数调用图:

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

色调偏移。

前置条件
断言:输入值在范围内。
自从
build 472

在文件 ystyle.cpp238 行定义.

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

函数调用图:

template<typename _tOut , typename _tGen >
void YSLib::Drawing::ScrDraw ( _tOut  buf,
_tGen &&  f 
)

全屏幕描点。

注解
颜色由坐标决定。
自从
build 360

在文件 ShellHelper.h307 行定义.

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

参考自 YReader::FetchImage().

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

void YSLib::Drawing::SetCurrentTextLineNOf ( TextState &  ts,
u16  n 
)
related
sizeof (AlphaType) * GetAreaOf(GetSize())) using CompactPixmap void YSLib::Drawing::SetSize ( const Size &  )
override

重新设置缓冲区大小。

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

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

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

template<class _fTransformPixel >
bool YSLib::Drawing::TransformRect ( const Graphics &  g,
const Point &  pt,
const Size &  s,
_fTransformPixel  tp 
)

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

自从
build 166

在文件 yblit.h529 行定义.

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

template<class _fTransformPixel >
bool YSLib::Drawing::TransformRect ( const Graphics &  g,
const Rect &  r,
_fTransformPixel  tp 
)
inline

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

自从
build 166

在文件 yblit.h546 行定义.

参考 g.

template<class _tBinary >
yconstfn _tBinary YSLib::Drawing::Transpose ( _tBinary &  obj)

二元对象转置。

自从
build 319

在文件 ygdibase.h394 行定义.

YSLib::Drawing::~CompactPixmapEx ( )
override

析构:释放资源。

在文件 ygdi.h318 行定义.

变量说明

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

在文件 Image.cpp318 行定义.

YSLib::Drawing::family_name

在文件 Font.cpp267 行定义.

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

在文件 ygdi.h400 行定义.

YSLib::Drawing::size_t

在文件 ygdi.h352 行定义.

参考自 platform_ex::UpdateKeyStates().

YSLib::Drawing::SizeOfBufferAlpha

在文件 ygdi.h352 行定义.

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