123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503 |
- {
- Free Pascal port of the Hermes C library.
- Copyright (C) 2001-2003 Nikolay Nikolov ([email protected])
- Original C version by Christian Nentwich ([email protected])
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version
- with the following modification:
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent modules,and
- to copy and distribute the resulting executable under terms of your choice,
- provided that you also meet, for each linked independent module, the terms
- and conditions of the license of that module. An independent module is a
- module which is not derived from or based on this library. If you modify
- this library, you may extend this exception to your version of the library,
- but you are not obligated to do so. If you do not wish to do so, delete this
- exception statement from your version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- }
- { Placeholder converter. This is for things like 8 bit converters that have
- one main loop and NO scanline conversion function as opposed to most others
- which use the generic loop.
- There needs to be a function assigned to the scanline loop however,
- otherwise the converter will fail a test in Convert.c. This is the easiest
- way. do NOT use NotApplicable as NotYetImplemented ! }
- procedure NotApplicable(source, dest: PUint8; count, inc_source: DWord); cdecl;
- begin
- if source <> nil Then;
- if dest <> nil Then;
- if count <> 0 Then;
- if inc_source <> 0 Then;
- end;
- { Factory converter array, holds ALL converters available from HERMES. Note
- that converters have to be assigned IN ORDER of priority for processors
- that can run different converters.
- Thus, for an Intel MMX Pentium, the order would be:
- - MMX converters
- - X86 converters
- - Pascal converters
- if someone wrote a P2 or P3 converter, if would be added even further up. }
- const
- Factory_NumConverters = 45
- {$IFDEF I386_ASSEMBLER}+27{$ENDIF I386_ASSEMBLER}
- {$IFDEF X86_64_ASSEMBLER}+1{$ENDIF X86_64_ASSEMBLER}
- ;
- Factory_Converters: array [0..Factory_NumConverters - 1] of THermesFactoryStruct =
- (
- {$IFDEF X86_64_ASSEMBLER}
- { ------ From 8 bit INDEXED ------- }
- (s_bits:8;s_idx:True;s_r:0;s_g:0;s_b:0;s_a:0;
- d_bits:32;d_idx:False;d_r:0;d_g:0;d_b:0;d_a:0;
- loopnormal:@ConvertX86_64_index8_32;loopstretch:nil;
- normal:@NotApplicable;stretch:nil;
- dither:nil;ditherstretch:nil;processor:PROC_X86_64),
- {$ENDIF X86_64_ASSEMBLER}
- {$IFDEF I386_ASSEMBLER}
- { ------ From 32 RGB 888 - MMX PENTIUM II ---- }
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertMMX;loopstretch:nil;normal:@ConvertMMXpII32_24RGB888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_MMX_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$f800;d_g:$7e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertMMX;loopstretch:nil;normal:@ConvertMMXpII32_16RGB565;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_MMX_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$7e0;d_b:$f800;d_a:0;
- loopnormal:@ConvertMMX;loopstretch:nil;normal:@ConvertMMXpII32_16BGR565;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_MMX_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertMMX;loopstretch:nil;normal:@ConvertMMXpII32_16RGB555;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_MMX_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$3e0;d_b:$7c00;d_a:0;
- loopnormal:@ConvertMMX;loopstretch:nil;normal:@ConvertMMXpII32_16BGR555;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_MMX_PENTIUM),
- { ------ From 32 RGB 888 - MMX PENTIUM ------- }
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertMMX;loopstretch:nil;normal:@ConvertMMXpII32_16RGB555;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_MMX_PENTIUM),
- { ------ From 32 RGB 888 - X86 PENTIUM ------- }
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_32BGR888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff000000;d_g:$ff0000;d_b:$ff00;d_a:$ff;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_32RGBA888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff00;d_g:$ff0000;d_b:$ff000000;d_a:$ff;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_32BGRA888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_24RGB888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_24BGR888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$f800;d_g:$7e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertX86;loopstretch:@ConvertX86Stretch;
- normal:@ConvertX86p32_16RGB565;stretch:@ConvertX86p32_16RGB565_S;
- dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$7e0;d_b:$f800;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_16BGR565;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_16RGB555;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$3e0;d_b:$7c00;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_16BGR555;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:8;d_idx:False;d_r:$e0;d_g:$1c;d_b:$3;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p32_8RGB332;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- { ------ From 16 RGB 565 - X86 PENTIUM ------- }
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_32RGB888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_32BGR888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff000000;d_g:$ff0000;d_b:$ff00;d_a:$ff;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_32RGBA888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff00;d_g:$ff0000;d_b:$ff000000;d_a:$ff;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_32BGRA888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_24RGB888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_24BGR888;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$7e0;d_b:$f800;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_16BGR565;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_16RGB555;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$3e0;d_b:$7c00;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_16BGR555;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:8;d_idx:False;d_r:$e0;d_g:$1c;d_b:$3;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86p16_8RGB332;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- (s_bits:8;s_idx:True;s_r:0;s_g:0;s_b:0;s_a:0;
- d_bits:16;d_idx:False;d_r:0;d_g:0;d_b:0;d_a:0;
- loopnormal:@ConvertX86;loopstretch:nil;normal:@ConvertX86pI8_16;
- stretch:nil;dither:nil;ditherstretch:nil;processor:PROC_X86_PENTIUM),
- {$ENDIF I386_ASSEMBLER}
- { ------ From 32 RGBA 8888 ---- }
- {
- (s_bits:32;s_idx:False;s_r:$ff000000;s_g:$ff0000;s_b:$ff00;s_a:$ff;
- d_bits:32;d_idx:False;d_r:$ff000000;d_g:$ff0000;d_b:$ff00;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_32bgr888;stretch:@ConvertP_32rgb888_32bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- }
- { ------ From 32 RGB 888 ------- }
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_32bgr888;stretch:@ConvertP_32rgb888_32bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff000000;d_g:$ff0000;d_b:$ff00;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_32rgba888;stretch:@ConvertP_32rgb888_32rgba888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff00;d_g:$ff0000;d_b:$ff000000;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_32bgra888;stretch:@ConvertP_32rgb888_32bgra888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_24rgb888;stretch:@ConvertP_32rgb888_24rgb888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_24bgr888;stretch:@ConvertP_32rgb888_24bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$f800;d_g:$7e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_16rgb565;stretch:@ConvertP_32rgb888_16rgb565_S;
- dither:@ConvertP_32rgb888_16rgb565_dither;ditherstretch:nil;
- processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$7e0;d_b:$f800;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_16bgr565;stretch:@ConvertP_32rgb888_16bgr565_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_16rgb555;stretch:@ConvertP_32rgb888_16rgb555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$3e0;d_b:$7c00;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_16bgr555;stretch:@ConvertP_32rgb888_16bgr555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:8;d_idx:False;d_r:$e0;d_g:$1c;d_b:$3;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_32rgb888_8rgb332;stretch:@ConvertP_32rgb888_8rgb332_S;
- dither:@ConvertP_32rgb888_8rgb332_dither;
- ditherstretch:nil;processor:PROC_GENERIC),
- { ------ From 32 RGB MUHMU ------- }
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_32rgb888;stretch:@ConvertP_muhmu32_32rgb888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_32bgr888;stretch:@ConvertP_muhmu32_32bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff000000;d_g:$ff0000;d_b:$ff00;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_32rgba888;stretch:@ConvertP_muhmu32_32rgba888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff00;d_g:$ff0000;d_b:$ff000000;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_32bgra888;stretch:@ConvertP_muhmu32_32bgra888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_24rgb888;stretch:@ConvertP_muhmu32_24rgb888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_24bgr888;stretch:@ConvertP_muhmu32_24bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$f800;d_g:$7e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_16rgb565;stretch:@ConvertP_muhmu32_16rgb565_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$7e0;d_b:$f800;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_16bgr565;stretch:@ConvertP_muhmu32_16bgr565_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_16rgb555;stretch:@ConvertP_muhmu32_16rgb555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$3e0;d_b:$7c00;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_16bgr555;stretch:@ConvertP_muhmu32_16bgr555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:32;s_idx:False;s_r:$ff shl 20;s_g:$ff shl 10;s_b:$ff;s_a:0;
- d_bits:8;d_idx:False;d_r:$e0;d_g:$1c;d_b:$3;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_muhmu32_8rgb332;stretch:@ConvertP_muhmu32_8rgb332_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- { ------ From 24 RGB 888 ------- }
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_32rgb888;stretch:@ConvertP_24rgb888_32rgb888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_32bgr888;stretch:@ConvertP_24rgb888_32bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff000000;d_g:$ff0000;d_b:$ff00;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_32rgba888;stretch:@ConvertP_24rgb888_32rgba888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff00;d_g:$ff0000;d_b:$ff000000;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_32bgra888;stretch:@ConvertP_24rgb888_32bgra888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_24bgr888;stretch:@ConvertP_24rgb888_24bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$f800;d_g:$7e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_16rgb565;stretch:@ConvertP_24rgb888_16rgb565_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$7e0;d_b:$f800;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_16bgr565;stretch:@ConvertP_24rgb888_16bgr565_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_16rgb555;stretch:@ConvertP_24rgb888_16rgb555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$3e0;d_b:$7c00;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_16bgr555;stretch:@ConvertP_24rgb888_16bgr555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:24;s_idx:False;s_r:$ff0000;s_g:$ff00;s_b:$ff;s_a:0;
- d_bits:8;d_idx:False;d_r:$e0;d_g:$1c;d_b:$3;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_24rgb888_8rgb332;stretch:@ConvertP_24rgb888_8rgb332_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- { ------ From 16 RGB 565 ------- }
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_32rgb888;stretch:@ConvertP_16rgb565_32rgb888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_32bgr888;stretch:@ConvertP_16rgb565_32bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff000000;d_g:$ff0000;d_b:$ff00;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_32rgba888;stretch:@ConvertP_16rgb565_32rgba888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:32;d_idx:False;d_r:$ff00;d_g:$ff0000;d_b:$ff000000;d_a:$ff;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_32bgra888;stretch:@ConvertP_16rgb565_32bgra888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff0000;d_g:$ff00;d_b:$ff;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_24rgb888;stretch:@ConvertP_16rgb565_24rgb888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:24;d_idx:False;d_r:$ff;d_g:$ff00;d_b:$ff0000;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_24bgr888;stretch:@ConvertP_16rgb565_24bgr888_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$7e0;d_b:$f800;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_16bgr565;stretch:@ConvertP_16rgb565_16bgr565_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:16;d_idx:False;d_r:$7c00;d_g:$3e0;d_b:$1f;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_16rgb555;stretch:@ConvertP_16rgb565_16rgb555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:16;d_idx:False;d_r:$1f;d_g:$3e0;d_b:$7c00;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_16bgr555;stretch:@ConvertP_16rgb565_16bgr555_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:16;s_idx:False;s_r:$f800;s_g:$7e0;s_b:$1f;s_a:0;
- d_bits:8;d_idx:False;d_r:$e0;d_g:$1c;d_b:$3;d_a:0;
- loopnormal:@ConvertP;loopstretch:@ConvertPStretch;
- normal:@ConvertP_16rgb565_8rgb332;stretch:@ConvertP_16rgb565_8rgb332_S;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- { ------ From 8 bit INDEXED ------- }
- (s_bits:8;s_idx:True;s_r:0;s_g:0;s_b:0;s_a:0;
- d_bits:32;d_idx:False;d_r:0;d_g:0;d_b:0;d_a:0;
- loopnormal:@ConvertP_index8_32;loopstretch:@ConvertP_index8_32_S;
- normal:@NotApplicable;stretch:@NotApplicable;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:8;s_idx:True;s_r:0;s_g:0;s_b:0;s_a:0;
- d_bits:24;d_idx:False;d_r:0;d_g:0;d_b:0;d_a:0;
- loopnormal:@ConvertP_index8_24;loopstretch:@ConvertP_index8_24_S;
- normal:@NotApplicable;stretch:@NotApplicable;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:8;s_idx:True;s_r:0;s_g:0;s_b:0;s_a:0;
- d_bits:16;d_idx:False;d_r:0;d_g:0;d_b:0;d_a:0;
- loopnormal:@ConvertP_index8_16;loopstretch:@ConvertP_index8_16_S;
- normal:@NotApplicable;stretch:@NotApplicable;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC),
- (s_bits:8;s_idx:True;s_r:0;s_g:0;s_b:0;s_a:0;
- d_bits:8;d_idx:False;d_r:0;d_g:0;d_b:0;d_a:0;
- loopnormal:@ConvertP_index8_8;loopstretch:@ConvertP_index8_8_S;
- normal:@NotApplicable;stretch:@NotApplicable;
- dither:nil;ditherstretch:nil;processor:PROC_GENERIC)
- );
|