Files
luban-lite/packages/third-party/awtk-ui/awtk/3rd/agge/agge/pixel_a.h
刘可亮 3b4064f334 v1.0.2
2023-11-30 19:48:02 +08:00

32 lines
597 B
C++

#pragma once
template <typename PixelT>
inline uint8_t pixel_a(const PixelT& p, uint8_t a) {
return a;
}
template <>
inline uint8_t pixel_a(const pixel32_rgba& p, uint8_t a) {
return (a * p.a) >> 8;
}
template <>
inline uint8_t pixel_a(const pixel32_abgr& p, uint8_t a) {
return (a * p.a) >> 8;
}
template <>
inline uint8_t pixel_a(const pixel32_bgra& p, uint8_t a) {
return (a * p.a) >> 8;
}
template <>
inline uint8_t pixel_a(const pixel32_argb& p, uint8_t a) {
return (a * p.a) >> 8;
}
template <>
inline uint8_t pixel_a(const pixel8& p, uint8_t a) {
return (a * p.a) >> 8;
}