29struct CLASS_DECL_ACME image32_t
42 constexpr image32_t() { m_u32 = 0; }
44 constexpr image32_t(const ::image32_t & image32) : m_u32(image32.m_u32) {}
47 constexpr ::u8 u8_red(
color_indexes indexes)
const {
return m_ua[indexes.red()]; }
48 constexpr ::u8 u8_green(
color_indexes indexes)
const {
return m_ua[indexes.green()]; }
49 constexpr ::u8 u8_blue(
color_indexes indexes)
const {
return m_ua[indexes.blue()]; }
50 constexpr ::u8 u8_opacity(
color_indexes indexes)
const {
return m_ua[indexes.opacity()]; }
53 constexpr ::u8 & u8_red(
color_indexes indexes) {
return m_ua[indexes.red()]; }
54 constexpr ::u8 & u8_green(
color_indexes indexes) {
return m_ua[indexes.green()]; }
55 constexpr ::u8 & u8_blue(
color_indexes indexes) {
return m_ua[indexes.blue()]; }
56 constexpr ::u8 & u8_opacity(
color_indexes indexes) {
return m_ua[indexes.opacity()]; }
62 constexpr ::color::color raw_color(
color_indexes indexes)
const;
65 constexpr bool operator == (
const image32_t & image)
const {
return m_u32 == image.m_u32; }
67 constexpr rgba_t rgb(
color_indexes indexes)
const {
return { make_u32(u8_red(indexes), u8_green(indexes), u8_blue(indexes), 0) }; }
71 inline ::color::color get_pixel(
color_indexes indexes, ::i32 iScan, ::i32 iHeight, ::i32 x, ::i32 y);
72 void vertical_swap_copy( ::i32 cx, ::i32 cy, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc);
73 inline void vertical_swap_copy(const ::i32_size & size, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc)
75 vertical_swap_copy(size.cx, size.cy, iStrideDst, pimage32Src, iStrideSrc);
77 ::image32_t * offset(::i32 x, ::i32 y, ::i32 iStrideDst)
79 return (::image32_t *)((::u8 *)
this + x *
sizeof(::image32_t) + y * iStrideDst);
82 void copy(::i32 x, ::i32 y, ::i32 cx, ::i32 cy, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc)
84 return offset(x, y, iStrideDst)->copy(cx, cy, iStrideDst, pimage32Src, iStrideSrc);
86 void copy(::i32 cx, ::i32 cy, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc);
87 inline void copy(const ::i32_size & size, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc)
89 copy(size.cx, size.cy, iStrideDst, pimage32Src, iStrideSrc);
93 void vertical_swap_copy_swap_red_blue(::i32 cx, ::i32 cy, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc = -1);
94 inline void vertical_swap_copy_swap_red_blue(const ::i32_size & size, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc = -1)
96 vertical_swap_copy_swap_red_blue(size.cx, size.cy, iStrideDst, pimage32Src, iStrideSrc);
101 inline void copy(const ::i32_point & point,
const i32_size & size, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc = -1)
103 copy(point.x, point.y, size.cx, size.cy, iStrideDst, pimage32Src, iStrideSrc);
105 inline void copy(const ::i32_rectangle & rectangle, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc = -1)
107 copy(rectangle.top_left(), rectangle.size(), iStrideDst, pimage32Src, iStrideSrc);
109 inline void copy(const ::pixmap* p);
110 void copy_swap_red_blue(::i32 cx, ::i32 cy, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc = -1);
111 void swap_red_blue(::i32 cx, ::i32 cy, ::i32 iStride = 0);
112 void _001ProperCopyColorref(::i32 cx, ::i32 cy, ::i32 iStrideDst, const ::image32_t * pimage32Src, ::i32 iStrideSrc = -1);
114 inline void copy(const ::i32_size & size, ::i32 iStrideDst, const ::pixmap * ppixmapSrc);
116 void set_rectangle(::i32 x, ::i32 y, ::i32 w, ::i32 h, ::i32 s, const ::image32_t &
source);
117 void blend_rectangle(::i32 x, ::i32 y, ::i32 w, ::i32 h, ::i32 s, const ::image32_t &
source);
120 void copy_3_channel_data(const ::i32_size & size, ::i32 stride,
const void * pdata, ::i32 inputStride);
122 void copy_1_channel_data(const ::i32_size & size, ::i32 stride,
const void * pdata, ::i32 inputStride);
125 static image32_t * create_copy_of(
127 const i32_size & size,
131 ::i32 inputStride = -1);