1 //----------------------------------------------------------------------------
2 // Anti-Grain Geometry - Version 2.3
3 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
5 // Permission to copy, use, modify, sell and distribute this software
6 // is granted provided this copyright notice appears in all copies.
7 // This software is provided "as is" without express or implied
8 // warranty, and with no claim as to its suitability for any purpose.
10 //----------------------------------------------------------------------------
11 // Contact: mcseem@antigrain.com
12 // mcseemagg@yahoo.com
13 // http://www.antigrain.com
14 //----------------------------------------------------------------------------
16 // Adaptation for high precision colors has been sponsored by
17 // Liberty Technology Systems, Inc., visit http://lib-sys.com
19 // Liberty Technology Systems, Inc. is the provider of
20 // PostScript and PDF technology for software developers.
22 //----------------------------------------------------------------------------
24 #ifndef AGG_PIXFMT_GRAY_INCLUDED
25 #define AGG_PIXFMT_GRAY_INCLUDED
28 #include "agg_basics.h"
29 #include "agg_color_gray.h"
30 #include "agg_rendering_buffer.h"
35 //============================================================blender_gray
36 template<class ColorT
> struct blender_gray
38 typedef ColorT color_type
;
39 typedef typename
color_type::value_type value_type
;
40 typedef typename
color_type::calc_type calc_type
;
41 enum { base_shift
= color_type::base_shift
};
43 static AGG_INLINE
void blend_pix(value_type
* p
, unsigned cv
,
44 unsigned alpha
, unsigned)
46 *p
= (value_type
)((((cv
- calc_type(*p
)) * alpha
) + (calc_type(*p
) << base_shift
)) >> base_shift
);
51 //======================================================blender_gray_pre
52 template<class ColorT
> struct blender_gray_pre
54 typedef ColorT color_type
;
55 typedef typename
color_type::value_type value_type
;
56 typedef typename
color_type::calc_type calc_type
;
57 enum { base_shift
= color_type::base_shift
};
59 static AGG_INLINE
void blend_pix(value_type
* p
, unsigned cv
,
60 unsigned alpha
, unsigned cover
)
62 alpha
= color_type::base_mask
- alpha
;
63 cover
= (cover
+ 1) << (base_shift
- 8);
64 *p
= (value_type
)((*p
* alpha
+ cv
* cover
) >> base_shift
);
70 //=====================================================apply_gamma_dir_gray
71 template<class ColorT
, class GammaLut
> class apply_gamma_dir_gray
74 typedef typename
ColorT::value_type value_type
;
76 apply_gamma_dir_gray(const GammaLut
& gamma
) : m_gamma(gamma
) {}
78 AGG_INLINE
void operator () (value_type
* p
)
84 const GammaLut
& m_gamma
;
89 //=====================================================apply_gamma_inv_gray
90 template<class ColorT
, class GammaLut
> class apply_gamma_inv_gray
93 typedef typename
ColorT::value_type value_type
;
95 apply_gamma_inv_gray(const GammaLut
& gamma
) : m_gamma(gamma
) {}
97 AGG_INLINE
void operator () (value_type
* p
)
103 const GammaLut
& m_gamma
;
108 //======================================================pixel_formats_gray
109 template<class Blender
, unsigned Step
=1, unsigned Offset
=0>
110 class pixel_formats_gray
113 typedef rendering_buffer::row_data row_data
;
114 typedef typename
Blender::color_type color_type
;
115 typedef typename
color_type::value_type value_type
;
116 typedef typename
color_type::calc_type calc_type
;
119 base_shift
= color_type::base_shift
,
120 base_size
= color_type::base_size
,
121 base_mask
= color_type::base_mask
125 //--------------------------------------------------------------------
126 static AGG_INLINE
void copy_or_blend_pix(value_type
* p
,
132 calc_type alpha
= (calc_type(c
.a
) * (cover
+ 1)) >> 8;
133 if(alpha
== base_mask
)
139 Blender::blend_pix(p
, c
.v
, alpha
, cover
);
144 //--------------------------------------------------------------------
145 static AGG_INLINE
void copy_or_blend_opaque_pix(value_type
* p
,
155 Blender::blend_pix(p
, c
.v
, (cover
+ 1) << (base_shift
- 8), cover
);
160 //--------------------------------------------------------------------
161 pixel_formats_gray(rendering_buffer
& rb
) :
166 //--------------------------------------------------------------------
167 AGG_INLINE
unsigned width() const { return m_rbuf
->width(); }
168 AGG_INLINE
unsigned height() const { return m_rbuf
->height(); }
170 //--------------------------------------------------------------------
171 AGG_INLINE color_type
pixel(int x
, int y
) const
173 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
174 return color_type(*p
);
177 //--------------------------------------------------------------------
178 row_data
span(int x
, int y
) const
183 x
* Step
* sizeof(value_type
) +
184 Offset
* sizeof(value_type
));
187 //--------------------------------------------------------------------
188 AGG_INLINE
void copy_pixel(int x
, int y
, const color_type
& c
)
190 *((value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
) = c
.v
;
193 //--------------------------------------------------------------------
194 AGG_INLINE
void blend_pixel(int x
, int y
, const color_type
& c
, int8u cover
)
196 copy_or_blend_pix((value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
, c
, cover
);
200 //--------------------------------------------------------------------
201 AGG_INLINE
void copy_hline(int x
, int y
,
205 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
215 //--------------------------------------------------------------------
216 AGG_INLINE
void copy_vline(int x
, int y
,
220 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
224 p
= (value_type
*)m_rbuf
->next_row(p
);
230 //--------------------------------------------------------------------
231 void blend_hline(int x
, int y
,
238 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
239 calc_type alpha
= (calc_type(c
.a
) * (cover
+ 1)) >> 8;
240 if(alpha
== base_mask
)
253 Blender::blend_pix(p
, c
.v
, alpha
, cover
);
262 //--------------------------------------------------------------------
263 void blend_vline(int x
, int y
,
270 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
271 calc_type alpha
= (calc_type(c
.a
) * (cover
+ 1)) >> 8;
272 if(alpha
== base_mask
)
277 p
= (value_type
*)m_rbuf
->next_row(p
);
285 Blender::blend_pix(p
, c
.v
, alpha
, cover
);
286 p
= (value_type
*)m_rbuf
->next_row(p
);
294 //--------------------------------------------------------------------
295 void blend_solid_hspan(int x
, int y
,
302 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
305 calc_type alpha
= (calc_type(c
.a
) * (calc_type(*covers
) + 1)) >> 8;
306 if(alpha
== base_mask
)
312 Blender::blend_pix(p
, c
.v
, alpha
, *covers
);
322 //--------------------------------------------------------------------
323 void blend_solid_vspan(int x
, int y
,
330 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
333 calc_type alpha
= (calc_type(c
.a
) * (calc_type(*covers
) + 1)) >> 8;
334 if(alpha
== base_mask
)
340 Blender::blend_pix(p
, c
.v
, alpha
, *covers
);
342 p
= (value_type
*)m_rbuf
->next_row(p
);
350 //--------------------------------------------------------------------
351 void blend_color_hspan(int x
, int y
,
353 const color_type
* colors
,
357 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
362 copy_or_blend_pix(p
, *colors
++, *covers
++);
373 if(colors
->a
== base_mask
)
379 copy_or_blend_pix(p
, *colors
, 255);
390 copy_or_blend_pix(p
, *colors
++, cover
);
400 //--------------------------------------------------------------------
401 void blend_color_vspan(int x
, int y
,
403 const color_type
* colors
,
407 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
412 copy_or_blend_pix(p
, *colors
++, *covers
++);
413 p
= (value_type
*)m_rbuf
->next_row(p
);
423 if(colors
->a
== base_mask
)
429 copy_or_blend_pix(p
, *colors
, 255);
431 p
= (value_type
*)m_rbuf
->next_row(p
);
440 copy_or_blend_pix(p
, *colors
++, cover
);
441 p
= (value_type
*)m_rbuf
->next_row(p
);
448 //--------------------------------------------------------------------
449 void blend_opaque_color_hspan(int x
, int y
,
451 const color_type
* colors
,
455 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
460 copy_or_blend_opaque_pix(p
, *colors
++, *covers
++);
481 copy_or_blend_opaque_pix(p
, *colors
++, cover
);
490 //--------------------------------------------------------------------
491 void blend_opaque_color_vspan(int x
, int y
,
493 const color_type
* colors
,
497 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + x
* Step
+ Offset
;
502 copy_or_blend_opaque_pix(p
, *colors
++, *covers
++);
503 p
= (value_type
*)m_rbuf
->next_row(p
);
514 p
= (value_type
*)m_rbuf
->next_row(p
);
523 copy_or_blend_opaque_pix(p
, *colors
++, cover
);
524 p
= (value_type
*)m_rbuf
->next_row(p
);
531 //--------------------------------------------------------------------
532 template<class Function
> void for_each_pixel(Function f
)
535 for(y
= 0; y
< height(); ++y
)
537 unsigned len
= width();
538 value_type
* p
= (value_type
*)m_rbuf
->row(y
) + Offset
;
548 //--------------------------------------------------------------------
549 template<class GammaLut
> void apply_gamma_dir(const GammaLut
& g
)
551 for_each_pixel(apply_gamma_dir_gray
<color_type
, GammaLut
>(g
));
554 //--------------------------------------------------------------------
555 template<class GammaLut
> void apply_gamma_inv(const GammaLut
& g
)
557 for_each_pixel(apply_gamma_inv_gray
<color_type
, GammaLut
>(g
));
560 //--------------------------------------------------------------------
561 void copy_from(const rendering_buffer
& from
,
566 memmove((value_type
*)m_rbuf
->row(ydst
) + xdst
,
567 (value_type
*)from
.row(ysrc
) + xsrc
,
568 sizeof(value_type
) * len
);
572 rendering_buffer
* m_rbuf
;
575 typedef blender_gray
<gray8
> blender_gray8
;
576 typedef blender_gray_pre
<gray8
> blender_gray8_pre
;
577 typedef blender_gray
<gray16
> blender_gray16
;
578 typedef blender_gray_pre
<gray16
> blender_gray16_pre
;
580 typedef pixel_formats_gray
<blender_gray8
, 1, 0> pixfmt_gray8
; //----pixfmt_gray8
582 typedef pixel_formats_gray
<blender_gray8
, 3, 0> pixfmt_gray8_rgb24r
; //----pixfmt_gray8_rgb24r
583 typedef pixel_formats_gray
<blender_gray8
, 3, 1> pixfmt_gray8_rgb24g
; //----pixfmt_gray8_rgb24g
584 typedef pixel_formats_gray
<blender_gray8
, 3, 2> pixfmt_gray8_rgb24b
; //----pixfmt_gray8_rgb24b
586 typedef pixel_formats_gray
<blender_gray8
, 3, 2> pixfmt_gray8_bgr24r
; //----pixfmt_gray8_bgr24r
587 typedef pixel_formats_gray
<blender_gray8
, 3, 1> pixfmt_gray8_bgr24g
; //----pixfmt_gray8_bgr24g
588 typedef pixel_formats_gray
<blender_gray8
, 3, 0> pixfmt_gray8_bgr24b
; //----pixfmt_gray8_bgr24b
590 typedef pixel_formats_gray
<blender_gray8
, 4, 0> pixfmt_gray8_rgba32r
; //----pixfmt_gray8_rgba32r
591 typedef pixel_formats_gray
<blender_gray8
, 4, 1> pixfmt_gray8_rgba32g
; //----pixfmt_gray8_rgba32g
592 typedef pixel_formats_gray
<blender_gray8
, 4, 2> pixfmt_gray8_rgba32b
; //----pixfmt_gray8_rgba32b
593 typedef pixel_formats_gray
<blender_gray8
, 4, 3> pixfmt_gray8_rgba32a
; //----pixfmt_gray8_rgba32a
595 typedef pixel_formats_gray
<blender_gray8
, 4, 1> pixfmt_gray8_argb32r
; //----pixfmt_gray8_argb32r
596 typedef pixel_formats_gray
<blender_gray8
, 4, 2> pixfmt_gray8_argb32g
; //----pixfmt_gray8_argb32g
597 typedef pixel_formats_gray
<blender_gray8
, 4, 3> pixfmt_gray8_argb32b
; //----pixfmt_gray8_argb32b
598 typedef pixel_formats_gray
<blender_gray8
, 4, 0> pixfmt_gray8_argb32a
; //----pixfmt_gray8_argb32a
600 typedef pixel_formats_gray
<blender_gray8
, 4, 2> pixfmt_gray8_bgra32r
; //----pixfmt_gray8_bgra32r
601 typedef pixel_formats_gray
<blender_gray8
, 4, 1> pixfmt_gray8_bgra32g
; //----pixfmt_gray8_bgra32g
602 typedef pixel_formats_gray
<blender_gray8
, 4, 0> pixfmt_gray8_bgra32b
; //----pixfmt_gray8_bgra32b
603 typedef pixel_formats_gray
<blender_gray8
, 4, 3> pixfmt_gray8_bgra32a
; //----pixfmt_gray8_bgra32a
605 typedef pixel_formats_gray
<blender_gray8
, 4, 3> pixfmt_gray8_abgr32r
; //----pixfmt_gray8_abgr32r
606 typedef pixel_formats_gray
<blender_gray8
, 4, 2> pixfmt_gray8_abgr32g
; //----pixfmt_gray8_abgr32g
607 typedef pixel_formats_gray
<blender_gray8
, 4, 1> pixfmt_gray8_abgr32b
; //----pixfmt_gray8_abgr32b
608 typedef pixel_formats_gray
<blender_gray8
, 4, 0> pixfmt_gray8_abgr32a
; //----pixfmt_gray8_abgr32a
610 typedef pixel_formats_gray
<blender_gray8_pre
, 1, 0> pixfmt_gray8_pre
; //----pixfmt_gray8_pre
612 typedef pixel_formats_gray
<blender_gray8_pre
, 3, 0> pixfmt_gray8_pre_rgb24r
; //----pixfmt_gray8_pre_rgb24r
613 typedef pixel_formats_gray
<blender_gray8_pre
, 3, 1> pixfmt_gray8_pre_rgb24g
; //----pixfmt_gray8_pre_rgb24g
614 typedef pixel_formats_gray
<blender_gray8_pre
, 3, 2> pixfmt_gray8_pre_rgb24b
; //----pixfmt_gray8_pre_rgb24b
616 typedef pixel_formats_gray
<blender_gray8_pre
, 3, 2> pixfmt_gray8_pre_bgr24r
; //----pixfmt_gray8_pre_bgr24r
617 typedef pixel_formats_gray
<blender_gray8_pre
, 3, 1> pixfmt_gray8_pre_bgr24g
; //----pixfmt_gray8_pre_bgr24g
618 typedef pixel_formats_gray
<blender_gray8_pre
, 3, 0> pixfmt_gray8_pre_bgr24b
; //----pixfmt_gray8_pre_bgr24b
620 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 0> pixfmt_gray8_pre_rgba32r
; //----pixfmt_gray8_pre_rgba32r
621 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 1> pixfmt_gray8_pre_rgba32g
; //----pixfmt_gray8_pre_rgba32g
622 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 2> pixfmt_gray8_pre_rgba32b
; //----pixfmt_gray8_pre_rgba32b
623 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 3> pixfmt_gray8_pre_rgba32a
; //----pixfmt_gray8_pre_rgba32a
625 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 1> pixfmt_gray8_pre_argb32r
; //----pixfmt_gray8_pre_argb32r
626 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 2> pixfmt_gray8_pre_argb32g
; //----pixfmt_gray8_pre_argb32g
627 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 3> pixfmt_gray8_pre_argb32b
; //----pixfmt_gray8_pre_argb32b
628 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 0> pixfmt_gray8_pre_argb32a
; //----pixfmt_gray8_pre_argb32a
630 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 2> pixfmt_gray8_pre_bgra32r
; //----pixfmt_gray8_pre_bgra32r
631 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 1> pixfmt_gray8_pre_bgra32g
; //----pixfmt_gray8_pre_bgra32g
632 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 0> pixfmt_gray8_pre_bgra32b
; //----pixfmt_gray8_pre_bgra32b
633 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 3> pixfmt_gray8_pre_bgra32a
; //----pixfmt_gray8_pre_bgra32a
635 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 3> pixfmt_gray8_pre_abgr32r
; //----pixfmt_gray8_pre_abgr32r
636 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 2> pixfmt_gray8_pre_abgr32g
; //----pixfmt_gray8_pre_abgr32g
637 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 1> pixfmt_gray8_pre_abgr32b
; //----pixfmt_gray8_pre_abgr32b
638 typedef pixel_formats_gray
<blender_gray8_pre
, 4, 0> pixfmt_gray8_pre_abgr32a
; //----pixfmt_gray8_pre_abgr32a
640 typedef pixel_formats_gray
<blender_gray16
, 1, 0> pixfmt_gray16
; //----pixfmt_gray16
642 typedef pixel_formats_gray
<blender_gray16
, 3, 0> pixfmt_gray16_rgb48r
; //----pixfmt_gray16_rgb48r
643 typedef pixel_formats_gray
<blender_gray16
, 3, 1> pixfmt_gray16_rgb48g
; //----pixfmt_gray16_rgb48g
644 typedef pixel_formats_gray
<blender_gray16
, 3, 2> pixfmt_gray16_rgb48b
; //----pixfmt_gray16_rgb48b
646 typedef pixel_formats_gray
<blender_gray16
, 3, 2> pixfmt_gray16_bgr48r
; //----pixfmt_gray16_bgr48r
647 typedef pixel_formats_gray
<blender_gray16
, 3, 1> pixfmt_gray16_bgr48g
; //----pixfmt_gray16_bgr48g
648 typedef pixel_formats_gray
<blender_gray16
, 3, 0> pixfmt_gray16_bgr48b
; //----pixfmt_gray16_bgr48b
650 typedef pixel_formats_gray
<blender_gray16
, 4, 0> pixfmt_gray16_rgba64r
; //----pixfmt_gray16_rgba64r
651 typedef pixel_formats_gray
<blender_gray16
, 4, 1> pixfmt_gray16_rgba64g
; //----pixfmt_gray16_rgba64g
652 typedef pixel_formats_gray
<blender_gray16
, 4, 2> pixfmt_gray16_rgba64b
; //----pixfmt_gray16_rgba64b
653 typedef pixel_formats_gray
<blender_gray16
, 4, 3> pixfmt_gray16_rgba64a
; //----pixfmt_gray16_rgba64a
655 typedef pixel_formats_gray
<blender_gray16
, 4, 1> pixfmt_gray16_argb64r
; //----pixfmt_gray16_argb64r
656 typedef pixel_formats_gray
<blender_gray16
, 4, 2> pixfmt_gray16_argb64g
; //----pixfmt_gray16_argb64g
657 typedef pixel_formats_gray
<blender_gray16
, 4, 3> pixfmt_gray16_argb64b
; //----pixfmt_gray16_argb64b
658 typedef pixel_formats_gray
<blender_gray16
, 4, 0> pixfmt_gray16_argb64a
; //----pixfmt_gray16_argb64a
660 typedef pixel_formats_gray
<blender_gray16
, 4, 2> pixfmt_gray16_bgra64r
; //----pixfmt_gray16_bgra64r
661 typedef pixel_formats_gray
<blender_gray16
, 4, 1> pixfmt_gray16_bgra64g
; //----pixfmt_gray16_bgra64g
662 typedef pixel_formats_gray
<blender_gray16
, 4, 0> pixfmt_gray16_bgra64b
; //----pixfmt_gray16_bgra64b
663 typedef pixel_formats_gray
<blender_gray16
, 4, 3> pixfmt_gray16_bgra64a
; //----pixfmt_gray16_bgra64a
665 typedef pixel_formats_gray
<blender_gray16
, 4, 3> pixfmt_gray16_abgr64r
; //----pixfmt_gray16_abgr64r
666 typedef pixel_formats_gray
<blender_gray16
, 4, 2> pixfmt_gray16_abgr64g
; //----pixfmt_gray16_abgr64g
667 typedef pixel_formats_gray
<blender_gray16
, 4, 1> pixfmt_gray16_abgr64b
; //----pixfmt_gray16_abgr64b
668 typedef pixel_formats_gray
<blender_gray16
, 4, 0> pixfmt_gray16_abgr64a
; //----pixfmt_gray16_abgr64a
670 typedef pixel_formats_gray
<blender_gray16_pre
, 1, 0> pixfmt_gray16_pre
; //----pixfmt_gray16_pre
672 typedef pixel_formats_gray
<blender_gray16_pre
, 3, 0> pixfmt_gray16_pre_rgb48r
; //----pixfmt_gray16_pre_rgb48r
673 typedef pixel_formats_gray
<blender_gray16_pre
, 3, 1> pixfmt_gray16_pre_rgb48g
; //----pixfmt_gray16_pre_rgb48g
674 typedef pixel_formats_gray
<blender_gray16_pre
, 3, 2> pixfmt_gray16_pre_rgb48b
; //----pixfmt_gray16_pre_rgb48b
676 typedef pixel_formats_gray
<blender_gray16_pre
, 3, 2> pixfmt_gray16_pre_bgr48r
; //----pixfmt_gray16_pre_bgr48r
677 typedef pixel_formats_gray
<blender_gray16_pre
, 3, 1> pixfmt_gray16_pre_bgr48g
; //----pixfmt_gray16_pre_bgr48g
678 typedef pixel_formats_gray
<blender_gray16_pre
, 3, 0> pixfmt_gray16_pre_bgr48b
; //----pixfmt_gray16_pre_bgr48b
680 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 0> pixfmt_gray16_pre_rgba64r
; //----pixfmt_gray16_pre_rgba64r
681 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 1> pixfmt_gray16_pre_rgba64g
; //----pixfmt_gray16_pre_rgba64g
682 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 2> pixfmt_gray16_pre_rgba64b
; //----pixfmt_gray16_pre_rgba64b
683 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 3> pixfmt_gray16_pre_rgba64a
; //----pixfmt_gray16_pre_rgba64a
685 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 1> pixfmt_gray16_pre_argb64r
; //----pixfmt_gray16_pre_argb64r
686 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 2> pixfmt_gray16_pre_argb64g
; //----pixfmt_gray16_pre_argb64g
687 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 3> pixfmt_gray16_pre_argb64b
; //----pixfmt_gray16_pre_argb64b
688 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 0> pixfmt_gray16_pre_argb64a
; //----pixfmt_gray16_pre_argb64a
690 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 2> pixfmt_gray16_pre_bgra64r
; //----pixfmt_gray16_pre_bgra64r
691 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 1> pixfmt_gray16_pre_bgra64g
; //----pixfmt_gray16_pre_bgra64g
692 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 0> pixfmt_gray16_pre_bgra64b
; //----pixfmt_gray16_pre_bgra64b
693 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 3> pixfmt_gray16_pre_bgra64a
; //----pixfmt_gray16_pre_bgra64a
695 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 3> pixfmt_gray16_pre_abgr64r
; //----pixfmt_gray16_pre_abgr64r
696 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 2> pixfmt_gray16_pre_abgr64g
; //----pixfmt_gray16_pre_abgr64g
697 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 1> pixfmt_gray16_pre_abgr64b
; //----pixfmt_gray16_pre_abgr64b
698 typedef pixel_formats_gray
<blender_gray16_pre
, 4, 0> pixfmt_gray16_pre_abgr64a
; //----pixfmt_gray16_pre_abgr64a