mirror of
https://gitee.com/Vancouver2017/luban-lite.git
synced 2025-12-23 20:48:55 +00:00
32 lines
597 B
C++
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;
|
|
}
|