YSTest: YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits > 模板结构体 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

静态 Public 成员函数 | 所有成员列表
YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits > 模板结构体 参考

像素组合器。 更多...

`#include <YPixel.h>`

类 YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits > 继承关系图:
[图例]

## 静态 Public 成员函数

template<typename _tDstAlpha , typename _tSrcAlpha >
YB_ATTR_nodiscard static YB_STATELESS yconstfn ystdex::conditional_t<(_vDstAlphaBits< _vSrcAlphaBits), _tSrcAlpha, _tDstAlpha > | CompositeAlphaOver (_tDstAlpha da, _tSrcAlpha sa)
| Alpha 组合 Alpha 分量。 更多...
template<typename _tDst , typename _tSrc , typename _tSrcAlpha , typename _tAlpha >
YB_ATTR_nodiscard static YB_STATELESS yconstfn _tDst | CompositeComponentOver (_tDst d, _tSrc s, _tSrcAlpha sa, _tAlpha a)
| Alpha 组合非 Alpha 分量。 更多...

## 详细描述

### template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits>
struct YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits >

像素组合器。

模板参数

  _vDstAlphaBits | 目标 Alpha 位。
  _vSrcAlphaBits | 源 Alpha 位。

前置条件
  源和目标 Alpha （若存在）为归一化值（可以是浮点数或定点数）。

注解
  结果 Alpha 位是源和目标 Alpha 位中的最大值（优先为目标 Alpha 类型）。

自从
  build 439

待办事项:
  支持推导返回类型。

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

## 成员函数说明

## ◆ CompositeAlphaOver()

template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits>
template<typename _tDstAlpha , typename _tSrcAlpha >

YB_ATTR_nodiscard static YB_STATELESS yconstfn ystdex::conditional_t< (_vDstAlphaBits < _vSrcAlphaBits), _tSrcAlpha, _tDstAlpha> YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits >::CompositeAlphaOver | ( | _tDstAlpha | da,
|  | _tSrcAlpha | sa
| ) |  |

inlinestatic

Alpha 组合 Alpha 分量。

a := 1 - (1 - sa) * (1 - da) = 1 - (1 - sa - da + sa * da) = sa + da - sa * da = sa + da * (1 - sa)

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

被这些函数引用 YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, 0 >::CompositeAlphaOver().

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

## ◆ CompositeComponentOver()

template<size_t _vDstAlphaBits, size_t _vSrcAlphaBits>
template<typename _tDst , typename _tSrc , typename _tSrcAlpha , typename _tAlpha >

YB_ATTR_nodiscard static YB_STATELESS yconstfn _tDst YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, _vSrcAlphaBits >::CompositeComponentOver | ( | _tDst | d,
|  | _tSrc | s,
|  | _tSrcAlpha | sa,
|  | _tAlpha | a
| ) |  |

inlinestatic

Alpha 组合非 Alpha 分量。

a != 0 => c := (sa * s + (1 - sa) * da * d) / a = (sa * s + (a - sa) * d) / a = (sa * s + a * d - sa * d) / a = (sa * (s - d) + a * d) / a = sa * (s - d) / a + d

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

被这些函数引用 YSLib::Drawing::Shaders::GPixelCompositor< _vDstAlphaBits, 0 >::CompositeComponentOver(), YSLib::Drawing::Shaders::GPixelCompositor< 1, _vSrcAlphaBits >::CompositeComponentOver(), YSLib::Drawing::Shaders::GPixelCompositor< 0, _vSrcAlphaBits >::CompositeComponentOver(), YSLib::Drawing::Shaders::GPixelCompositor< 0, 1 >::CompositeComponentOver() , 以及 YSLib::Drawing::Shaders::GPixelCompositor< 1, 1 >::CompositeComponentOver().

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

该结构体的文档由以下文件生成:

- YPixel.h