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

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

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

类 | 函数
YSLib::Drawing::Shaders 命名空间参考

着色器命名空间。 更多...

## 类

struct | BlitAlphaPoint
| 像素计算：Alpha 混合。 更多...
struct | BlitTransparentPoint
| 像素迭代器透明操作。 更多...
struct | GBlender
| 分发像素混合操作。 更多...
struct | GBlender< _tPixel, EnableForMask< _tPixel, XYZAMaskTrait< 5, 5, 5, 1 > > >
struct | GBlender< _tPixel, ystdex::when< _bCond > >
struct | GPixelCompositor
| 像素组合器。 更多...
struct | GPixelCompositor< 0, 0 >
struct | GPixelCompositor< 0, 1 >
struct | GPixelCompositor< 0, _vSrcAlphaBits >
struct | GPixelCompositor< 1, 0 >
struct | GPixelCompositor< 1, 1 >
struct | GPixelCompositor< 1, _vSrcAlphaBits >
struct | GPixelCompositor< _vDstAlphaBits, 0 >
struct | GPixelCompositor< _vDstAlphaBits, 1 >

## 函数

template<size_t _vSrcAlphaBits, typename _tDstInt , typename _tSrcInt , typename _tSrcAlphaInt >
yconstfn _tDstInt | BlendComponent (_tDstInt d, _tSrcInt s, _tSrcAlphaInt sa)
| 像素分量混合。 更多...
template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tDstInt , typename _tSrcInt , typename _tSrcAlphaInt , typename _tAlphaInt >
yconstfn _tDstInt | CompositeComponent (_tDstInt d, _tSrcInt s, _tSrcAlphaInt sa, _tAlphaInt a)
| 像素分量组合。 更多...
template<size_t _vAlphaBits>
std::uint16_t | BlendCore (std::uint32_t d, std::uint32_t s, std::uint8_t a)
| AXYZ1555 格式 Pixel 的 Alpha 混合。 更多...
template<size_t _vSrcAlphaBits, typename _tPixel , typename _tSrcAlphaInt >
yconstfn _tPixel | Blend (const _tPixel &d, const _tPixel &s, _tSrcAlphaInt sa)
| 像素混合：使用指定的源 Alpha 。 更多...
template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel , typename _tSrcAlphaInt >
yconstfn _tPixel | BlendAlpha (const _tPixel &d, const _tPixel &s, _tSrcAlphaInt sa)
| Alpha 像素混合：使用指定的源 Alpha 同时组合透明背景 Alpha 。 更多...
template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel , typename _tSrcAlphaInt , typename _tAlphaInt >
yconstfn _tPixel | Composite (const _tPixel &d, const _tPixel &s, _tSrcAlphaInt sa, _tAlphaInt a)
| 像素组合：使用指定的源 Alpha 和结果 Alpha 。 更多...
template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel , typename _tAlphaInt >
yconstfn _tPixel | Composite (const _tPixel &d, const _tPixel &s, _tAlphaInt a)
| 像素组合：使用指定的结果 Alpha 。 更多...
template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel >
yconstfn _tPixel | Composite (const _tPixel &d, const _tPixel &s)
| 像素组合。 更多...

## 详细描述

着色器命名空间。

自从
  build 442

## 函数说明

template<size_t _vSrcAlphaBits, typename _tPixel , typename _tSrcAlphaInt >

yconstfn _tPixel YSLib::Drawing::Shaders::Blend | ( | const _tPixel & | d,
|  | const _tPixel & | s,
|  | _tSrcAlphaInt | sa
| ) |  |

像素混合：使用指定的源 Alpha 。

注解
  输出背景不透明， Alpha 饱和。

参见
  GBlender::Blend

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

参考 CHRLib::d , 以及 CHRLib::s.

template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel , typename _tSrcAlphaInt >

yconstfn _tPixel YSLib::Drawing::Shaders::BlendAlpha | ( | const _tPixel & | d,
|  | const _tPixel & | s,
|  | _tSrcAlphaInt | sa
| ) |  |

Alpha 像素混合：使用指定的源 Alpha 同时组合透明背景 Alpha 。

参见
  Drawing::GPixelCompositor

注解
  忽略源像素中的 Alpha 。

参见
  GBlender::BlendAlpha

自从
  build 561

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

参考 CHRLib::d , 以及 CHRLib::s.

template<size_t _vSrcAlphaBits, typename _tDstInt , typename _tSrcInt , typename _tSrcAlphaInt >

yconstfn _tDstInt YSLib::Drawing::Shaders::BlendComponent | ( | _tDstInt | d,
|  | _tSrcInt | s,
|  | _tSrcAlphaInt | sa
| ) |  |

像素分量混合。

参见
  GPixelCompositor

自从
  build 442

待办事项:
  支持浮点数。

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

参考 YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits >::CompositeComponentOver().

函数调用图:
template<size_t _vAlphaBits>

std::uint16_t YSLib::Drawing::Shaders::BlendCore | ( | std::uint32_t | d,
|  | std::uint32_t | s,
|  | std::uint8_t | a
| ) |  |

AXYZ1555 格式 Pixel 的 Alpha 混合。

模板参数

  _vAlphaBits | 表示 Alpha 值的有效整数位数。

自从
  build 442

设 MaxAlpha := (1 << _vAlphaBits) - 1 ， 使用下列公式进行像素的 Alpha 混合（其中 alpha = a / MaxAlpha）： 输出分量： component := (1 - alpha) * d + alpha * s = ((MaxAlpha - a) * d + a * s) >> _vAlphaBits = d + ((a * (s - d)) >> _vAlphaBits) 。 背景透明：不设置 Alpha 。 像素格式： 16 位 AXYZ1555 。 以 ARGB1555 为例，算法实现示意： arrrrrgggggbbbbb 0000000000arrrrr gggggbbbbb000000 0000000000011111 0000000000011111 00000000000rrrrr 00000000000bbbbb : dbr 0000000000000000 000000ggggg00000 : dg 分解分量至 32 位寄存器以减少总指令数。

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

参考 yunseq.

template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel , typename _tSrcAlphaInt , typename _tAlphaInt >

yconstfn _tPixel YSLib::Drawing::Shaders::Composite | ( | const _tPixel & | d,
|  | const _tPixel & | s,
|  | _tSrcAlphaInt | sa,
|  | _tAlphaInt | a
| ) |  |

像素组合：使用指定的源 Alpha 和结果 Alpha 。

参见
  GBlender::Composite

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

参考 YSLib::a, CHRLib::d , 以及 CHRLib::s.

template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel , typename _tAlphaInt >

yconstfn _tPixel YSLib::Drawing::Shaders::Composite | ( | const _tPixel & | d,
|  | const _tPixel & | s,
|  | _tAlphaInt | a
| ) |  |

像素组合：使用指定的结果 Alpha 。

注解
  使用 ADL Composite 代理组合像素调用。

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

参考 YSLib::a, CHRLib::d , 以及 CHRLib::s.

template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tPixel >

yconstfn _tPixel YSLib::Drawing::Shaders::Composite | ( | const _tPixel & | d,
|  | const _tPixel & | s
| ) |  |

像素组合。

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

参考 CHRLib::d , 以及 CHRLib::s.

template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits, typename _tDstInt , typename _tSrcInt , typename _tSrcAlphaInt , typename _tAlphaInt >

yconstfn _tDstInt YSLib::Drawing::Shaders::CompositeComponent | ( | _tDstInt | d,
|  | _tSrcInt | s,
|  | _tSrcAlphaInt | sa,
|  | _tAlphaInt | a
| ) |  |

像素分量组合。

参见
  GPixelCompositor

自从
  build 442

待办事项:
  支持浮点数。

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

参考 YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits >::CompositeComponentOver().

参考自 YSLib::Drawing::Shaders::GBlender< _tPixel, ystdex::when< _bCond > >::Composite().

函数调用图:

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