update dev300-m58
[ooovba.git] / agg / inc / agg_pixfmt_gray.h
blob0226ccd971d9af3420d3fa9fa56821d05e61feb5
1 //----------------------------------------------------------------------------
2 // Anti-Grain Geometry - Version 2.3
3 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
4 //
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.
9 //
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.
21 //
22 //----------------------------------------------------------------------------
24 #ifndef AGG_PIXFMT_GRAY_INCLUDED
25 #define AGG_PIXFMT_GRAY_INCLUDED
27 #include <string.h>
28 #include "agg_basics.h"
29 #include "agg_color_gray.h"
30 #include "agg_rendering_buffer.h"
32 namespace agg
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
73 public:
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)
80 *p = m_gamma.dir(*p);
83 private:
84 const GammaLut& m_gamma;
89 //=====================================================apply_gamma_inv_gray
90 template<class ColorT, class GammaLut> class apply_gamma_inv_gray
92 public:
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)
99 *p = m_gamma.inv(*p);
102 private:
103 const GammaLut& m_gamma;
108 //======================================================pixel_formats_gray
109 template<class Blender, unsigned Step=1, unsigned Offset=0>
110 class pixel_formats_gray
112 public:
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;
117 enum
119 base_shift = color_type::base_shift,
120 base_size = color_type::base_size,
121 base_mask = color_type::base_mask
124 private:
125 //--------------------------------------------------------------------
126 static AGG_INLINE void copy_or_blend_pix(value_type* p,
127 const color_type& c,
128 unsigned cover)
130 if (c.a)
132 calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
133 if(alpha == base_mask)
135 *p = c.v;
137 else
139 Blender::blend_pix(p, c.v, alpha, cover);
144 //--------------------------------------------------------------------
145 static AGG_INLINE void copy_or_blend_opaque_pix(value_type* p,
146 const color_type& c,
147 unsigned cover)
149 if(cover == 255)
151 *p = c.v;
153 else
155 Blender::blend_pix(p, c.v, (cover + 1) << (base_shift - 8), cover);
159 public:
160 //--------------------------------------------------------------------
161 pixel_formats_gray(rendering_buffer& rb) :
162 m_rbuf(&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
180 return row_data(x,
181 width() - 1,
182 m_rbuf->row(y) +
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,
202 unsigned len,
203 const color_type& c)
205 value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
208 *p = c.v;
209 p += Step;
211 while(--len);
215 //--------------------------------------------------------------------
216 AGG_INLINE void copy_vline(int x, int y,
217 unsigned len,
218 const color_type& c)
220 value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
223 *p = c.v;
224 p = (value_type*)m_rbuf->next_row(p);
226 while(--len);
230 //--------------------------------------------------------------------
231 void blend_hline(int x, int y,
232 unsigned len,
233 const color_type& c,
234 int8u cover)
236 if (c.a)
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)
244 *p = c.v;
245 p += Step;
247 while(--len);
249 else
253 Blender::blend_pix(p, c.v, alpha, cover);
254 p += Step;
256 while(--len);
262 //--------------------------------------------------------------------
263 void blend_vline(int x, int y,
264 unsigned len,
265 const color_type& c,
266 int8u cover)
268 if (c.a)
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)
276 *p = c.v;
277 p = (value_type*)m_rbuf->next_row(p);
279 while(--len);
281 else
285 Blender::blend_pix(p, c.v, alpha, cover);
286 p = (value_type*)m_rbuf->next_row(p);
288 while(--len);
294 //--------------------------------------------------------------------
295 void blend_solid_hspan(int x, int y,
296 unsigned len,
297 const color_type& c,
298 const int8u* covers)
300 if (c.a)
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)
308 *p = c.v;
310 else
312 Blender::blend_pix(p, c.v, alpha, *covers);
314 p += Step;
315 ++covers;
317 while(--len);
322 //--------------------------------------------------------------------
323 void blend_solid_vspan(int x, int y,
324 unsigned len,
325 const color_type& c,
326 const int8u* covers)
328 if (c.a)
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)
336 *p = c.v;
338 else
340 Blender::blend_pix(p, c.v, alpha, *covers);
342 p = (value_type*)m_rbuf->next_row(p);
343 ++covers;
345 while(--len);
350 //--------------------------------------------------------------------
351 void blend_color_hspan(int x, int y,
352 unsigned len,
353 const color_type* colors,
354 const int8u* covers,
355 int8u cover)
357 value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
358 if(covers)
362 copy_or_blend_pix(p, *colors++, *covers++);
363 p += Step;
365 while(--len);
367 else
369 if(cover == 255)
373 if(colors->a == base_mask)
375 *p = colors->v;
377 else
379 copy_or_blend_pix(p, *colors, 255);
381 p += Step;
382 ++colors;
384 while(--len);
386 else
390 copy_or_blend_pix(p, *colors++, cover);
391 p += Step;
393 while(--len);
400 //--------------------------------------------------------------------
401 void blend_color_vspan(int x, int y,
402 unsigned len,
403 const color_type* colors,
404 const int8u* covers,
405 int8u cover)
407 value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
408 if(covers)
412 copy_or_blend_pix(p, *colors++, *covers++);
413 p = (value_type*)m_rbuf->next_row(p);
415 while(--len);
417 else
419 if(cover == 255)
423 if(colors->a == base_mask)
425 *p = colors->v;
427 else
429 copy_or_blend_pix(p, *colors, 255);
431 p = (value_type*)m_rbuf->next_row(p);
432 ++colors;
434 while(--len);
436 else
440 copy_or_blend_pix(p, *colors++, cover);
441 p = (value_type*)m_rbuf->next_row(p);
443 while(--len);
448 //--------------------------------------------------------------------
449 void blend_opaque_color_hspan(int x, int y,
450 unsigned len,
451 const color_type* colors,
452 const int8u* covers,
453 int8u cover)
455 value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
456 if(covers)
460 copy_or_blend_opaque_pix(p, *colors++, *covers++);
461 p += Step;
463 while(--len);
465 else
467 if(cover == 255)
471 *p = colors->v;
472 p += Step;
473 ++colors;
475 while(--len);
477 else
481 copy_or_blend_opaque_pix(p, *colors++, cover);
482 p += Step;
484 while(--len);
490 //--------------------------------------------------------------------
491 void blend_opaque_color_vspan(int x, int y,
492 unsigned len,
493 const color_type* colors,
494 const int8u* covers,
495 int8u cover)
497 value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
498 if(covers)
502 copy_or_blend_opaque_pix(p, *colors++, *covers++);
503 p = (value_type*)m_rbuf->next_row(p);
505 while(--len);
507 else
509 if(cover == 255)
513 *p = colors->v;
514 p = (value_type*)m_rbuf->next_row(p);
515 ++colors;
517 while(--len);
519 else
523 copy_or_blend_opaque_pix(p, *colors++, cover);
524 p = (value_type*)m_rbuf->next_row(p);
526 while(--len);
531 //--------------------------------------------------------------------
532 template<class Function> void for_each_pixel(Function f)
534 unsigned y;
535 for(y = 0; y < height(); ++y)
537 unsigned len = width();
538 value_type* p = (value_type*)m_rbuf->row(y) + Offset;
541 f(p);
542 p += Step;
544 while(--len);
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,
562 int xdst, int ydst,
563 int xsrc, int ysrc,
564 unsigned len)
566 memmove((value_type*)m_rbuf->row(ydst) + xdst,
567 (value_type*)from.row(ysrc) + xsrc,
568 sizeof(value_type) * len);
571 private:
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
702 #endif