From 87010339e046abadddeb87d0758d67218e9c8947 Mon Sep 17 00:00:00 2001 From: firebee Date: Fri, 25 Nov 2022 03:00:01 +0100 Subject: [PATCH] automatic commit - 25-11-2022 --- THING/THING.127/icons.inf | 4 +- THING/THING.127/thing.inf | 9 +- UPLOADS.TXT | 4 +- mint/mint_acc/COPS.ACC | Bin 42850 -> 0 bytes mint/mint_acc/cops.acc | Bin 0 -> 64744 bytes teradesk/teradesk.inf | 21 +- tools/vision/HISTOIRE.TXT | 331 -- tools/vision/LDV/BW.LDV | Bin 5232 -> 0 bytes tools/vision/LDV/GAMMA.LDV | Bin 9276 -> 0 bytes tools/vision/LDV/INVERT.LDV | Bin 2817 -> 0 bytes tools/vision/LDV/LDG.LIB | Bin 3020 -> 0 bytes tools/vision/LDV/LDV.C | 1202 ------ tools/vision/LDV/LDV.H | 150 - tools/vision/LDV/LDVCOM.H | 102 - tools/vision/LDV/LIGHT.LDV | Bin 2816 -> 0 bytes tools/vision/LDV/PIXEL.LDV | Bin 3739 -> 0 bytes tools/vision/LDV/ROTATE.LDV | Bin 1952 -> 0 bytes tools/vision/LDV/SRC/BW/BW.LDV | Bin 5232 -> 0 bytes tools/vision/LDV/SRC/INVERT/INVERT.LDV | Bin 2817 -> 0 bytes tools/vision/LDV/SRC/PIXEL/PIXEL.LDV | Bin 3739 -> 0 bytes tools/vision/LDV/SRC/YPERSC/YPERSC.LDV | Bin 4948 -> 0 bytes tools/vision/LDV/SRC/bhole/bhole.ldv | Bin 19863 -> 0 bytes tools/vision/LDV/SRC/bhole/bhole.lst | 1054 ------ tools/vision/LDV/SRC/gamma/GAMMA.LDV | Bin 9276 -> 0 bytes tools/vision/LDV/SRC/light/LIGHT.LDV | Bin 2816 -> 0 bytes tools/vision/LDV/SRC/puzzle/puzzle.ldv | Bin 3676 -> 0 bytes tools/vision/LDV/SRC/rotate/ROTATE.LDV | Bin 1952 -> 0 bytes tools/vision/LDV/YPERSC.LDV | Bin 4948 -> 0 bytes tools/vision/LDV/bhole.ldv | Bin 19863 -> 0 bytes tools/vision/LDV/puzzle.ldv | Bin 3676 -> 0 bytes tools/vision/VISION.PRG | Bin 512554 -> 0 bytes tools/vision/cacert.pem | 3232 +++++++++++++++++ .../vision/{DSP/CONVOL.LOD => dsp/convol.lod} | 0 .../{DSP/EXJPEGD.PRG => dsp/exjpegd.prg} | Bin tools/vision/{DSP/JPEGD.PRG => dsp/jpegd.prg} | Bin tools/vision/{DSP => dsp}/nfjpeg.prg | Bin .../{FILTRES/BIDON.VCF => filtres/bidon.vcf} | Bin .../BIDON.VCF => filtres/english/bidon.vcf} | Bin .../FLOU1.VCF => filtres/english/flou1.vcf} | Bin .../FLOU2.VCF => filtres/english/flou2.vcf} | Bin .../FLOU3.VCF => filtres/english/flou3.vcf} | Bin .../english/flou551.vcf} | Bin .../english/flou552.vcf} | Bin .../english/flou553.vcf} | Bin .../english/flou554.vcf} | Bin .../english/grad33e.vcf} | Bin .../english/grad33n.vcf} | Bin .../english/grad33ne.vcf} | Bin .../english/grad33no.vcf} | Bin .../english/grad33o.vcf} | Bin .../english/grad33s.vcf} | Bin .../english/grad33se.vcf} | Bin .../english/grad33so.vcf} | Bin .../english/lapla331.vcf} | Bin .../english/lapla551.vcf} | Bin .../NET331.VCF => filtres/english/net331.vcf} | Bin .../english/obre3de.vcf} | Bin .../english/obre3dne.vcf} | Bin .../english/obre3dno.vcf} | Bin .../english/obre3do.vcf} | Bin .../english/obre3dse.vcf} | Bin .../english/obre3dso.vcf} | Bin .../english/perso331.vcf} | Bin .../english/perso332.vcf} | Bin .../english/perso333.vcf} | Bin .../english/perso334.vcf} | Bin .../XXX.VCF => filtres/english/xxx.vcf} | Bin .../english/FLOU1.VCF => filtres/flou1.vcf} | Bin .../english/FLOU2.VCF => filtres/flou2.vcf} | Bin .../english/FLOU3.VCF => filtres/flou3.vcf} | Bin .../FLOU551.VCF => filtres/flou551.vcf} | Bin .../FLOU552.VCF => filtres/flou552.vcf} | Bin .../FLOU553.VCF => filtres/flou553.vcf} | Bin .../FLOU554.VCF => filtres/flou554.vcf} | Bin .../BIDON.VCF => filtres/francais/bidon.vcf} | Bin .../FLOU1.VCF => filtres/francais/flou1.vcf} | Bin .../FLOU2.VCF => filtres/francais/flou2.vcf} | Bin .../FLOU3.VCF => filtres/francais/flou3.vcf} | Bin .../francais/flou551.vcf} | Bin .../francais/flou552.vcf} | Bin .../francais/flou553.vcf} | Bin .../francais/flou554.vcf} | Bin .../francais/grad33e.vcf} | Bin .../francais/grad33n.vcf} | Bin .../francais/grad33ne.vcf} | Bin .../francais/grad33no.vcf} | Bin .../francais/grad33o.vcf} | Bin .../francais/grad33s.vcf} | Bin .../francais/grad33se.vcf} | Bin .../francais/grad33so.vcf} | Bin .../francais/lapla331.vcf} | Bin .../francais/lapla551.vcf} | Bin .../francais/net331.vcf} | Bin .../francais/obre3de.vcf} | Bin .../francais/obre3dne.vcf} | Bin .../francais/obre3dno.vcf} | Bin .../francais/obre3do.vcf} | Bin .../francais/obre3dse.vcf} | Bin .../francais/obre3dso.vcf} | Bin .../francais/perso331.vcf} | Bin .../francais/perso332.vcf} | Bin .../francais/perso333.vcf} | Bin .../francais/perso334.vcf} | Bin .../XXX.VCF => filtres/francais/xxx.vcf} | Bin .../GRAD33E.VCF => filtres/grad33e.vcf} | Bin .../GRAD33N.VCF => filtres/grad33n.vcf} | Bin .../GRAD33NE.VCF => filtres/grad33ne.vcf} | Bin .../GRAD33NO.VCF => filtres/grad33no.vcf} | Bin .../GRAD33O.VCF => filtres/grad33o.vcf} | Bin .../GRAD33S.VCF => filtres/grad33s.vcf} | Bin .../GRAD33SE.VCF => filtres/grad33se.vcf} | Bin .../GRAD33SO.VCF => filtres/grad33so.vcf} | Bin .../LAPLA331.VCF => filtres/lapla331.vcf} | Bin .../LAPLA551.VCF => filtres/lapla551.vcf} | Bin .../english/NET331.VCF => filtres/net331.vcf} | Bin .../OBRE3DE.VCF => filtres/obre3de.vcf} | Bin .../OBRE3DNE.VCF => filtres/obre3dne.vcf} | Bin .../OBRE3DNO.VCF => filtres/obre3dno.vcf} | Bin .../OBRE3DO.VCF => filtres/obre3do.vcf} | Bin .../OBRE3DSE.VCF => filtres/obre3dse.vcf} | Bin .../OBRE3DSO.VCF => filtres/obre3dso.vcf} | Bin .../PERSO331.VCF => filtres/perso331.vcf} | Bin .../PERSO332.VCF => filtres/perso332.vcf} | Bin .../PERSO333.VCF => filtres/perso333.vcf} | Bin .../PERSO334.VCF => filtres/perso334.vcf} | Bin .../english/XXX.VCF => filtres/xxx.vcf} | Bin .../{LANGUES/BULLE.RSC => langues/bulle.rsc} | Bin tools/vision/{LANGUES => langues}/chkmsg.c | 0 tools/vision/{LANGUES => langues}/chkmsg.prg | Bin .../CHKMSG.PRJ => langues/chkmsg.prj} | 0 .../DEUTSCH => langues/deutsch}/vision.hrd | Bin .../VISION.RSC => langues/deutsch/vision.rsc} | Bin 124876 -> 125004 bytes .../DEUTSCH => langues/deutsch}/visionb.hrd | Bin .../deutsch/visionb.rsc} | Bin .../DEUTSCH => langues/deutsch}/vmsg.txt | 10 +- .../VISION.H => langues/english/vision.h} | 0 .../ENGLISH => langues/english}/vision.hrd | Bin .../VISION.RSC => langues/english/vision.rsc} | Bin 124854 -> 124982 bytes .../VISIONB.H => langues/english/visionb.h} | 0 .../ENGLISH => langues/english}/visionb.hrd | Bin .../english/visionb.rsc} | Bin .../ENGLISH => langues/english}/vmsg.txt | 10 +- .../VISION.H => langues/francais/vision.h} | 3 +- .../francais/vision.hrd} | Bin 15277 -> 15278 bytes .../francais/vision.rsc} | Bin 126244 -> 126204 bytes .../VISIONB.H => langues/francais/visionb.h} | 0 .../FRANCAIS => langues/francais}/visionb.hrd | Bin .../francais/visionb.rsc} | Bin .../VMSG.H => langues/francais/vmsg.h} | 10 +- .../FRANCAIS => langues/francais}/vmsg.txt | 12 +- .../{LANGUES => langues}/italian/vision.hrd | Bin .../VISION.RSC => langues/italian/vision.rsc} | Bin 125240 -> 125374 bytes .../{LANGUES => langues}/italian/visionb.hrd | Bin .../italian/visionb.rsc} | Bin .../{LANGUES => langues}/italian/vmsg.txt | 10 +- .../README.TXT => langues/readme.txt} | 0 .../{LANGUES => langues}/svenska/vision.hrd | Bin .../VISION.RSC => langues/svenska/vision.rsc} | Bin 124616 -> 124742 bytes .../{LANGUES => langues}/svenska/visionb.hrd | Bin .../svenska/visionb.rsc} | Bin .../{LANGUES => langues}/svenska/vmsg.txt | 10 +- tools/vision/{LDV => ldv}/bhole.ini | 0 tools/vision/ldv/bhole.ldv | Bin 0 -> 20060 bytes tools/vision/{LDV/BW.INI => ldv/bw.ini} | 0 tools/vision/ldv/bw.ldv | Bin 0 -> 5382 bytes tools/vision/ldv/cntcol.ini | 46 + tools/vision/ldv/cntcol.ldv | Bin 0 -> 12061 bytes tools/vision/ldv/dither.ini | 44 + tools/vision/ldv/dither.ldv | Bin 0 -> 2538 bytes tools/vision/{LDV => ldv}/doc/defines.htm | 0 tools/vision/{LDV => ldv}/doc/descrip.htm | 0 .../{LDV => ldv}/doc/english/defines.htm | 0 .../{LDV => ldv}/doc/english/descrip.htm | 0 .../vision/{LDV => ldv}/doc/english/hints.htm | 0 .../{LDV => ldv}/doc/english/images/conc2.gif | Bin .../{LDV => ldv}/doc/english/images/cprev.jpg | Bin .../{LDV => ldv}/doc/english/images/csom.jpg | Bin .../{LDV => ldv}/doc/english/images/csuiv.jpg | Bin .../doc/english/images/icointro.gif | Bin .../doc/english/images/icoprinc.gif | Bin .../vision/{LDV => ldv}/doc/english/index.htm | 0 .../vision/{LDV => ldv}/doc/english/intro.htm | 0 .../{LDV => ldv}/doc/english/kitdev.htm | 165 +- .../{LDV => ldv}/doc/english/modele.htm | 0 .../{LDV => ldv}/doc/english/notions.htm | 0 .../{LDV => ldv}/doc/english/struct.htm | 0 .../{LDV => ldv}/doc/english/vapi/co.htm | 2 +- tools/vision/ldv/doc/english/vapi/fi.html | 296 ++ tools/vision/ldv/doc/english/vapi/im.htm | 297 ++ .../{LDV => ldv}/doc/english/vapi/in.htm | 2 +- .../{LDV => ldv}/doc/english/vapi/index.htm | 2 +- .../{LDV => ldv}/doc/english/vapi/lo.htm | 2 +- .../{LDV => ldv}/doc/english/vapi/me.htm | 160 +- .../{LDV => ldv}/doc/english/vapi/modele.htm | 0 .../{LDV => ldv}/doc/english/vapi/pr.htm | 2 +- .../{LDV => ldv}/doc/english/vapi/ra.htm | 2 +- .../{LDV => ldv}/doc/english/vapi/struct.htm | 2 +- tools/vision/{LDV => ldv}/doc/hints.htm | 0 .../vision/{LDV => ldv}/doc/images/conc2.gif | Bin .../vision/{LDV => ldv}/doc/images/cprev.jpg | Bin tools/vision/{LDV => ldv}/doc/images/csom.jpg | Bin .../vision/{LDV => ldv}/doc/images/csuiv.jpg | Bin .../{LDV => ldv}/doc/images/icointro.gif | Bin .../{LDV => ldv}/doc/images/icoprinc.gif | Bin tools/vision/{LDV => ldv}/doc/index.htm | 0 tools/vision/{LDV => ldv}/doc/intro.htm | 0 tools/vision/{LDV => ldv}/doc/kitdev.htm | 2 +- tools/vision/{LDV => ldv}/doc/modele.htm | 0 tools/vision/{LDV => ldv}/doc/notions.htm | 0 tools/vision/{LDV => ldv}/doc/struct.htm | 0 tools/vision/{LDV => ldv}/doc/vapi/co.htm | 2 +- tools/vision/ldv/doc/vapi/fi.htm | 293 ++ tools/vision/ldv/doc/vapi/im.htm | 298 ++ tools/vision/{LDV => ldv}/doc/vapi/in.htm | 2 +- tools/vision/{LDV => ldv}/doc/vapi/index.htm | 20 +- tools/vision/{LDV => ldv}/doc/vapi/lo.htm | 2 +- tools/vision/{LDV => ldv}/doc/vapi/me.htm | 0 tools/vision/{LDV => ldv}/doc/vapi/modele.htm | 0 tools/vision/{LDV => ldv}/doc/vapi/pr.htm | 0 tools/vision/{LDV => ldv}/doc/vapi/ra.htm | 0 tools/vision/{LDV => ldv}/doc/vapi/struct.htm | 0 .../{LDV/FRANCAIS => ldv/francais}/bhole.ini | 0 .../FRANCAIS/BW.INI => ldv/francais/bw.ini} | 0 tools/vision/ldv/francais/cntcol.ini | 42 + .../GAMMA.INI => ldv/francais/gamma.ini} | 0 tools/vision/ldv/francais/genimg.ini | 29 + .../INVERT.INI => ldv/francais/invert.ini} | 0 .../LIGHT.INI => ldv/francais/light.ini} | 0 .../PIXEL.INI => ldv/francais/pixel.ini} | 0 .../{LDV/FRANCAIS => ldv/francais}/puzzle.ini | 0 .../ROTATE.INI => ldv/francais/rotate.ini} | 0 .../XWAVE.INI => ldv/francais/xwave.ini} | 0 .../YPERSC.INI => ldv/francais/ypersc.ini} | 0 .../YWAVE.INI => ldv/francais/ywave.ini} | 0 tools/vision/{LDV/GAMMA.INI => ldv/gamma.ini} | 0 tools/vision/ldv/gamma.ldv | Bin 0 -> 9560 bytes tools/vision/ldv/genimg.ini | 29 + tools/vision/ldv/genimg.ldv | Bin 0 -> 3402 bytes .../vision/{LDV/INVERT.INI => ldv/invert.ini} | 0 tools/vision/ldv/invert.ldv | Bin 0 -> 3209 bytes tools/vision/{LDV/LDG.H => ldv/ldg.h} | 373 +- tools/vision/ldv/ldg.lib | Bin 0 -> 3036 bytes tools/vision/ldv/ldv.h | 150 + tools/vision/ldv/ldvcom.h | 91 + tools/vision/{LDV/LIGHT.INI => ldv/light.ini} | 0 tools/vision/ldv/light.ldv | Bin 0 -> 3182 bytes tools/vision/{LDV/MT_AES.H => ldv/mt_aes.h} | 0 .../vision/{LDV/MT_AES.LIB => ldv/mt_aes.lib} | Bin tools/vision/ldv/optimg.ini | 112 + tools/vision/ldv/optimg.ldv | Bin 0 -> 15195 bytes tools/vision/{LDV/PIXEL.INI => ldv/pixel.ini} | 0 tools/vision/ldv/pixel.ldv | Bin 0 -> 3972 bytes tools/vision/{LDV => ldv}/puzzle.ini | 0 tools/vision/ldv/puzzle.ldv | Bin 0 -> 4076 bytes .../vision/{LDV/ROTATE.INI => ldv/rotate.ini} | 0 tools/vision/ldv/rotate.ldv | Bin 0 -> 2359 bytes tools/vision/{LDV/SMLLDV.H => ldv/smlldv.h} | 0 .../{LDV/SMP_LDV.INI => ldv/smp_ldv.ini} | 0 .../vision/{LDV/SRC => ldv/src}/bhole/bhole.c | 20 +- tools/vision/ldv/src/bhole/bhole.ldv | Bin 0 -> 20060 bytes .../{LDV/SRC => ldv/src}/bhole/bhole.prj | 10 +- .../bhole/bhole.s => ldv/src/bhole/bholes.s} | 0 .../{LDV/SRC => ldv/src}/bhole/perf_r51.txt | 0 .../{LDV/SRC/BW/BW.C => ldv/src/bw/bw.c} | 87 +- tools/vision/ldv/src/bw/bw.ldv | Bin 0 -> 5382 bytes .../{LDV/SRC/BW/BW.PRJ => ldv/src/bw/bw.prj} | 5 +- tools/vision/ldv/src/cntcol/cntcol.c | 856 +++++ tools/vision/ldv/src/cntcol/cntcol.ldv | Bin 0 -> 12061 bytes tools/vision/ldv/src/cntcol/cntcol.prj | 12 + tools/vision/ldv/src/dither/dither.c | 145 + tools/vision/ldv/src/dither/dither.ldv | Bin 0 -> 2538 bytes tools/vision/ldv/src/dither/dither.prj | 13 + tools/vision/ldv/src/dither/testplan.xlsx | Bin 0 -> 15378 bytes .../gamma/GAMMA.C => ldv/src/gamma/gamma.c} | 10 +- tools/vision/ldv/src/gamma/gamma.ldv | Bin 0 -> 9560 bytes .../GAMMA.PRJ => ldv/src/gamma/gamma.prj} | 5 +- tools/vision/ldv/src/genimg/genimg.c | 173 + tools/vision/ldv/src/genimg/genimg.ldv | Bin 0 -> 3402 bytes tools/vision/ldv/src/genimg/genimg.prj | 12 + .../INVERT.C => ldv/src/invert/invert.c} | 2 +- tools/vision/ldv/src/invert/invert.ldv | Bin 0 -> 3209 bytes .../INVERT.PRJ => ldv/src/invert/invert.prj} | 5 +- .../light/LIGHT.C => ldv/src/light/light.c} | 4 +- tools/vision/ldv/src/light/light.ldv | Bin 0 -> 3182 bytes .../LIGHT.PRJ => ldv/src/light/light.prj} | 5 +- tools/vision/ldv/src/optimg/optimg.c | 552 +++ tools/vision/ldv/src/optimg/optimg.ldv | Bin 0 -> 15195 bytes tools/vision/ldv/src/optimg/optimg.prj | 13 + .../PIXEL/PIXEL.C => ldv/src/pixel/pixel.c} | 7 +- tools/vision/ldv/src/pixel/pixel.ldv | Bin 0 -> 3972 bytes .../PIXEL.PRJ => ldv/src/pixel/pixel.prj} | 5 +- .../PIXEL/PIXEL.S => ldv/src/pixel/pixel.s} | 0 .../{LDV/SRC => ldv/src}/puzzle/puzzle.c | 41 +- tools/vision/ldv/src/puzzle/puzzle.ldv | Bin 0 -> 4076 bytes .../{LDV/SRC => ldv/src}/puzzle/puzzle.prj | 5 +- .../ROTATE.C => ldv/src/rotate/rotate.c} | 2 +- tools/vision/ldv/src/rotate/rotate.ldv | Bin 0 -> 2359 bytes .../ROTATE.PRJ => ldv/src/rotate/rotate.prj} | 5 +- .../XWAVE/XWAVE.C => ldv/src/xwave/xwave.c} | 2 +- .../XWAVE.LDV => ldv/src/xwave/xwave.ldv} | Bin 8593 -> 8949 bytes .../XWAVE.PRJ => ldv/src/xwave/xwave.prj} | 5 +- .../YPERSC.C => ldv/src/ypersc/ypersc.c} | 4 +- tools/vision/ldv/src/ypersc/ypersc.ldv | Bin 0 -> 5291 bytes .../YPERSC.PRJ => ldv/src/ypersc/ypersc.prj} | 5 +- .../YWAVE/YWAVE.C => ldv/src/ywave/ywave.c} | 2 +- .../YWAVE.LDV => ldv/src/ywave/ywave.ldv} | Bin 8599 -> 8955 bytes .../YWAVE.PRJ => ldv/src/ywave/ywave.prj} | 5 +- tools/vision/{LDV/VAPI.H => ldv/vapi.h} | 95 +- tools/vision/{LDV/XWAVE.INI => ldv/xwave.ini} | 0 .../SRC/XWAVE/XWAVE.LDV => ldv/xwave.ldv} | Bin 8593 -> 8949 bytes .../vision/{LDV/YPERSC.INI => ldv/ypersc.ini} | 0 tools/vision/ldv/ypersc.ldv | Bin 0 -> 5291 bytes tools/vision/{LDV/YWAVE.INI => ldv/ywave.ini} | 0 tools/vision/{LDV/YWAVE.LDV => ldv/ywave.ldv} | Bin 8599 -> 8955 bytes tools/vision/png.txt | 2 +- tools/vision/readme.txt | 42 - tools/vision/scripts/bcon.vcs | 2 + tools/vision/scripts/bconv.ini | 49 + tools/vision/scripts/buggy.vcs | 12 + tools/vision/scripts/clip.vcs | 24 + tools/vision/scripts/clip_loop.vcs | 42 + tools/vision/scripts/clip_paste.vcs | 25 + tools/vision/scripts/ddualton.vcs | 17 + tools/vision/scripts/dfixpal.vcs | 16 + tools/vision/scripts/ibrowser.vcs | 10 + tools/vision/scripts/img_prio.vcs | 38 + tools/vision/scripts/ldv.vcs | 10 + tools/vision/scripts/ldvcnt.vcs | 20 + tools/vision/scripts/ldvcntf.vcs | 20 + tools/vision/scripts/ldvf.vcs | 10 + tools/vision/scripts/ldvini.vcs | 6 + tools/vision/scripts/ldvopt.vcs | 33 + tools/vision/scripts/ldvopt256c.vcs | 5 + tools/vision/scripts/lloopfol.vcs | 21 + tools/vision/scripts/loadloop.vcs | 13 + tools/vision/scripts/main.vcs | 67 + tools/vision/scripts/muchram.vcs | 25 + tools/vision/scripts/muchram2.vcs | 13 + tools/vision/scripts/opnsav.vcs | 8 + tools/vision/scripts/photos.ini | 87 + tools/vision/scripts/pinvert.ini | 5 + tools/vision/scripts/plight.ini | 10 + tools/vision/scripts/ppuzzle.ini | 9 + tools/vision/scripts/protate.ini | 7 + tools/vision/scripts/readme.txt | 2 + tools/vision/scripts/s0.vcs | 6 + tools/vision/scripts/s1.vcs | 8 + tools/vision/scripts/spec512.vcs | 5 + tools/vision/{TCW128.DAT => tcw128.dat} | Bin 154515 -> 154515 bytes tools/vision/{TCW64.DAT => tcw64.dat} | Bin tools/vision/{VISION.IMG => vision.img} | Bin tools/vision/vision.ini | 58 +- tools/vision/vision.prg | Bin 0 -> 521728 bytes tools/vision/vision.ver | 324 ++ tools/vision/visionl.prg | Bin 0 -> 363101 bytes 355 files changed, 8487 insertions(+), 3317 deletions(-) delete mode 100644 mint/mint_acc/COPS.ACC create mode 100644 mint/mint_acc/cops.acc delete mode 100644 tools/vision/HISTOIRE.TXT delete mode 100644 tools/vision/LDV/BW.LDV delete mode 100644 tools/vision/LDV/GAMMA.LDV delete mode 100644 tools/vision/LDV/INVERT.LDV delete mode 100644 tools/vision/LDV/LDG.LIB delete mode 100644 tools/vision/LDV/LDV.C delete mode 100644 tools/vision/LDV/LDV.H delete mode 100644 tools/vision/LDV/LDVCOM.H delete mode 100644 tools/vision/LDV/LIGHT.LDV delete mode 100644 tools/vision/LDV/PIXEL.LDV delete mode 100644 tools/vision/LDV/ROTATE.LDV delete mode 100644 tools/vision/LDV/SRC/BW/BW.LDV delete mode 100644 tools/vision/LDV/SRC/INVERT/INVERT.LDV delete mode 100644 tools/vision/LDV/SRC/PIXEL/PIXEL.LDV delete mode 100644 tools/vision/LDV/SRC/YPERSC/YPERSC.LDV delete mode 100644 tools/vision/LDV/SRC/bhole/bhole.ldv delete mode 100644 tools/vision/LDV/SRC/bhole/bhole.lst delete mode 100644 tools/vision/LDV/SRC/gamma/GAMMA.LDV delete mode 100644 tools/vision/LDV/SRC/light/LIGHT.LDV delete mode 100644 tools/vision/LDV/SRC/puzzle/puzzle.ldv delete mode 100644 tools/vision/LDV/SRC/rotate/ROTATE.LDV delete mode 100644 tools/vision/LDV/YPERSC.LDV delete mode 100644 tools/vision/LDV/bhole.ldv delete mode 100644 tools/vision/LDV/puzzle.ldv delete mode 100644 tools/vision/VISION.PRG create mode 100644 tools/vision/cacert.pem rename tools/vision/{DSP/CONVOL.LOD => dsp/convol.lod} (100%) rename tools/vision/{DSP/EXJPEGD.PRG => dsp/exjpegd.prg} (100%) rename tools/vision/{DSP/JPEGD.PRG => dsp/jpegd.prg} (100%) rename tools/vision/{DSP => dsp}/nfjpeg.prg (100%) rename tools/vision/{FILTRES/BIDON.VCF => filtres/bidon.vcf} (100%) rename tools/vision/{FILTRES/english/BIDON.VCF => filtres/english/bidon.vcf} (100%) rename tools/vision/{FILTRES/FLOU1.VCF => filtres/english/flou1.vcf} (100%) rename tools/vision/{FILTRES/FLOU2.VCF => filtres/english/flou2.vcf} (100%) rename tools/vision/{FILTRES/FLOU3.VCF => filtres/english/flou3.vcf} (100%) rename tools/vision/{FILTRES/FLOU551.VCF => filtres/english/flou551.vcf} (100%) rename tools/vision/{FILTRES/FLOU552.VCF => filtres/english/flou552.vcf} (100%) rename tools/vision/{FILTRES/FLOU553.VCF => filtres/english/flou553.vcf} (100%) rename tools/vision/{FILTRES/FLOU554.VCF => filtres/english/flou554.vcf} (100%) rename tools/vision/{FILTRES/GRAD33E.VCF => filtres/english/grad33e.vcf} (100%) rename tools/vision/{FILTRES/GRAD33N.VCF => filtres/english/grad33n.vcf} (100%) rename tools/vision/{FILTRES/GRAD33NE.VCF => filtres/english/grad33ne.vcf} (100%) rename tools/vision/{FILTRES/GRAD33NO.VCF => filtres/english/grad33no.vcf} (100%) rename tools/vision/{FILTRES/GRAD33O.VCF => filtres/english/grad33o.vcf} (100%) rename tools/vision/{FILTRES/GRAD33S.VCF => filtres/english/grad33s.vcf} (100%) rename tools/vision/{FILTRES/GRAD33SE.VCF => filtres/english/grad33se.vcf} (100%) rename tools/vision/{FILTRES/GRAD33SO.VCF => filtres/english/grad33so.vcf} (100%) rename tools/vision/{FILTRES/LAPLA331.VCF => filtres/english/lapla331.vcf} (100%) rename tools/vision/{FILTRES/LAPLA551.VCF => filtres/english/lapla551.vcf} (100%) rename tools/vision/{FILTRES/NET331.VCF => filtres/english/net331.vcf} (100%) rename tools/vision/{FILTRES/OBRE3DE.VCF => filtres/english/obre3de.vcf} (100%) rename tools/vision/{FILTRES/OBRE3DNE.VCF => filtres/english/obre3dne.vcf} (100%) rename tools/vision/{FILTRES/OBRE3DNO.VCF => filtres/english/obre3dno.vcf} (100%) rename tools/vision/{FILTRES/OBRE3DO.VCF => filtres/english/obre3do.vcf} (100%) rename tools/vision/{FILTRES/OBRE3DSE.VCF => filtres/english/obre3dse.vcf} (100%) rename tools/vision/{FILTRES/OBRE3DSO.VCF => filtres/english/obre3dso.vcf} (100%) rename tools/vision/{FILTRES/PERSO331.VCF => filtres/english/perso331.vcf} (100%) rename tools/vision/{FILTRES/PERSO332.VCF => filtres/english/perso332.vcf} (100%) rename tools/vision/{FILTRES/PERSO333.VCF => filtres/english/perso333.vcf} (100%) rename tools/vision/{FILTRES/PERSO334.VCF => filtres/english/perso334.vcf} (100%) rename tools/vision/{FILTRES/XXX.VCF => filtres/english/xxx.vcf} (100%) rename tools/vision/{FILTRES/english/FLOU1.VCF => filtres/flou1.vcf} (100%) rename tools/vision/{FILTRES/english/FLOU2.VCF => filtres/flou2.vcf} (100%) rename tools/vision/{FILTRES/english/FLOU3.VCF => filtres/flou3.vcf} (100%) rename tools/vision/{FILTRES/english/FLOU551.VCF => filtres/flou551.vcf} (100%) rename tools/vision/{FILTRES/english/FLOU552.VCF => filtres/flou552.vcf} (100%) rename tools/vision/{FILTRES/english/FLOU553.VCF => filtres/flou553.vcf} (100%) rename tools/vision/{FILTRES/english/FLOU554.VCF => filtres/flou554.vcf} (100%) rename tools/vision/{FILTRES/francais/BIDON.VCF => filtres/francais/bidon.vcf} (100%) rename tools/vision/{FILTRES/francais/FLOU1.VCF => filtres/francais/flou1.vcf} (100%) rename tools/vision/{FILTRES/francais/FLOU2.VCF => filtres/francais/flou2.vcf} (100%) rename tools/vision/{FILTRES/francais/FLOU3.VCF => filtres/francais/flou3.vcf} (100%) rename tools/vision/{FILTRES/francais/FLOU551.VCF => filtres/francais/flou551.vcf} (100%) rename tools/vision/{FILTRES/francais/FLOU552.VCF => filtres/francais/flou552.vcf} (100%) rename tools/vision/{FILTRES/francais/FLOU553.VCF => filtres/francais/flou553.vcf} (100%) rename tools/vision/{FILTRES/francais/FLOU554.VCF => filtres/francais/flou554.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33E.VCF => filtres/francais/grad33e.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33N.VCF => filtres/francais/grad33n.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33NE.VCF => filtres/francais/grad33ne.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33NO.VCF => filtres/francais/grad33no.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33O.VCF => filtres/francais/grad33o.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33S.VCF => filtres/francais/grad33s.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33SE.VCF => filtres/francais/grad33se.vcf} (100%) rename tools/vision/{FILTRES/francais/GRAD33SO.VCF => filtres/francais/grad33so.vcf} (100%) rename tools/vision/{FILTRES/francais/LAPLA331.VCF => filtres/francais/lapla331.vcf} (100%) rename tools/vision/{FILTRES/francais/LAPLA551.VCF => filtres/francais/lapla551.vcf} (100%) rename tools/vision/{FILTRES/francais/NET331.VCF => filtres/francais/net331.vcf} (100%) rename tools/vision/{FILTRES/francais/OBRE3DE.VCF => filtres/francais/obre3de.vcf} (100%) rename tools/vision/{FILTRES/francais/OBRE3DNE.VCF => filtres/francais/obre3dne.vcf} (100%) rename tools/vision/{FILTRES/francais/OBRE3DNO.VCF => filtres/francais/obre3dno.vcf} (100%) rename tools/vision/{FILTRES/francais/OBRE3DO.VCF => filtres/francais/obre3do.vcf} (100%) rename tools/vision/{FILTRES/francais/OBRE3DSE.VCF => filtres/francais/obre3dse.vcf} (100%) rename tools/vision/{FILTRES/francais/OBRE3DSO.VCF => filtres/francais/obre3dso.vcf} (100%) rename tools/vision/{FILTRES/francais/PERSO331.VCF => filtres/francais/perso331.vcf} (100%) rename tools/vision/{FILTRES/francais/PERSO332.VCF => filtres/francais/perso332.vcf} (100%) rename tools/vision/{FILTRES/francais/PERSO333.VCF => filtres/francais/perso333.vcf} (100%) rename tools/vision/{FILTRES/francais/PERSO334.VCF => filtres/francais/perso334.vcf} (100%) rename tools/vision/{FILTRES/francais/XXX.VCF => filtres/francais/xxx.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33E.VCF => filtres/grad33e.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33N.VCF => filtres/grad33n.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33NE.VCF => filtres/grad33ne.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33NO.VCF => filtres/grad33no.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33O.VCF => filtres/grad33o.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33S.VCF => filtres/grad33s.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33SE.VCF => filtres/grad33se.vcf} (100%) rename tools/vision/{FILTRES/english/GRAD33SO.VCF => filtres/grad33so.vcf} (100%) rename tools/vision/{FILTRES/english/LAPLA331.VCF => filtres/lapla331.vcf} (100%) rename tools/vision/{FILTRES/english/LAPLA551.VCF => filtres/lapla551.vcf} (100%) rename tools/vision/{FILTRES/english/NET331.VCF => filtres/net331.vcf} (100%) rename tools/vision/{FILTRES/english/OBRE3DE.VCF => filtres/obre3de.vcf} (100%) rename tools/vision/{FILTRES/english/OBRE3DNE.VCF => filtres/obre3dne.vcf} (100%) rename tools/vision/{FILTRES/english/OBRE3DNO.VCF => filtres/obre3dno.vcf} (100%) rename tools/vision/{FILTRES/english/OBRE3DO.VCF => filtres/obre3do.vcf} (100%) rename tools/vision/{FILTRES/english/OBRE3DSE.VCF => filtres/obre3dse.vcf} (100%) rename tools/vision/{FILTRES/english/OBRE3DSO.VCF => filtres/obre3dso.vcf} (100%) rename tools/vision/{FILTRES/english/PERSO331.VCF => filtres/perso331.vcf} (100%) rename tools/vision/{FILTRES/english/PERSO332.VCF => filtres/perso332.vcf} (100%) rename tools/vision/{FILTRES/english/PERSO333.VCF => filtres/perso333.vcf} (100%) rename tools/vision/{FILTRES/english/PERSO334.VCF => filtres/perso334.vcf} (100%) rename tools/vision/{FILTRES/english/XXX.VCF => filtres/xxx.vcf} (100%) rename tools/vision/{LANGUES/BULLE.RSC => langues/bulle.rsc} (100%) rename tools/vision/{LANGUES => langues}/chkmsg.c (100%) rename tools/vision/{LANGUES => langues}/chkmsg.prg (100%) rename tools/vision/{LANGUES/CHKMSG.PRJ => langues/chkmsg.prj} (100%) rename tools/vision/{LANGUES/DEUTSCH => langues/deutsch}/vision.hrd (100%) rename tools/vision/{LANGUES/DEUTSCH/VISION.RSC => langues/deutsch/vision.rsc} (54%) rename tools/vision/{LANGUES/DEUTSCH => langues/deutsch}/visionb.hrd (100%) rename tools/vision/{LANGUES/DEUTSCH/VISIONB.RSC => langues/deutsch/visionb.rsc} (100%) rename tools/vision/{LANGUES/DEUTSCH => langues/deutsch}/vmsg.txt (92%) rename tools/vision/{LANGUES/ENGLISH/VISION.H => langues/english/vision.h} (100%) rename tools/vision/{LANGUES/ENGLISH => langues/english}/vision.hrd (100%) rename tools/vision/{LANGUES/ENGLISH/VISION.RSC => langues/english/vision.rsc} (54%) rename tools/vision/{LANGUES/ENGLISH/VISIONB.H => langues/english/visionb.h} (100%) rename tools/vision/{LANGUES/ENGLISH => langues/english}/visionb.hrd (100%) rename tools/vision/{LANGUES/ENGLISH/VISIONB.RSC => langues/english/visionb.rsc} (100%) rename tools/vision/{LANGUES/ENGLISH => langues/english}/vmsg.txt (93%) rename tools/vision/{LANGUES/FRANCAIS/VISION.H => langues/francais/vision.h} (98%) rename tools/vision/{LANGUES/FRANCAIS/VISION.HRD => langues/francais/vision.hrd} (97%) rename tools/vision/{LANGUES/FRANCAIS/VISION.RSC => langues/francais/vision.rsc} (65%) rename tools/vision/{LANGUES/FRANCAIS/VISIONB.H => langues/francais/visionb.h} (100%) rename tools/vision/{LANGUES/FRANCAIS => langues/francais}/visionb.hrd (100%) rename tools/vision/{LANGUES/FRANCAIS/VISIONB.RSC => langues/francais/visionb.rsc} (100%) rename tools/vision/{LANGUES/FRANCAIS/VMSG.H => langues/francais/vmsg.h} (92%) rename tools/vision/{LANGUES/FRANCAIS => langues/francais}/vmsg.txt (93%) rename tools/vision/{LANGUES => langues}/italian/vision.hrd (100%) rename tools/vision/{LANGUES/italian/VISION.RSC => langues/italian/vision.rsc} (52%) rename tools/vision/{LANGUES => langues}/italian/visionb.hrd (100%) rename tools/vision/{LANGUES/italian/VISIONB.RSC => langues/italian/visionb.rsc} (100%) rename tools/vision/{LANGUES => langues}/italian/vmsg.txt (93%) rename tools/vision/{LANGUES/README.TXT => langues/readme.txt} (100%) rename tools/vision/{LANGUES => langues}/svenska/vision.hrd (100%) rename tools/vision/{LANGUES/svenska/VISION.RSC => langues/svenska/vision.rsc} (53%) rename tools/vision/{LANGUES => langues}/svenska/visionb.hrd (100%) rename tools/vision/{LANGUES/svenska/VISIONB.RSC => langues/svenska/visionb.rsc} (100%) rename tools/vision/{LANGUES => langues}/svenska/vmsg.txt (92%) rename tools/vision/{LDV => ldv}/bhole.ini (100%) create mode 100644 tools/vision/ldv/bhole.ldv rename tools/vision/{LDV/BW.INI => ldv/bw.ini} (100%) create mode 100644 tools/vision/ldv/bw.ldv create mode 100644 tools/vision/ldv/cntcol.ini create mode 100644 tools/vision/ldv/cntcol.ldv create mode 100644 tools/vision/ldv/dither.ini create mode 100644 tools/vision/ldv/dither.ldv rename tools/vision/{LDV => ldv}/doc/defines.htm (100%) rename tools/vision/{LDV => ldv}/doc/descrip.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/defines.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/descrip.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/hints.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/images/conc2.gif (100%) rename tools/vision/{LDV => ldv}/doc/english/images/cprev.jpg (100%) rename tools/vision/{LDV => ldv}/doc/english/images/csom.jpg (100%) rename tools/vision/{LDV => ldv}/doc/english/images/csuiv.jpg (100%) rename tools/vision/{LDV => ldv}/doc/english/images/icointro.gif (100%) rename tools/vision/{LDV => ldv}/doc/english/images/icoprinc.gif (100%) rename tools/vision/{LDV => ldv}/doc/english/index.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/intro.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/kitdev.htm (70%) rename tools/vision/{LDV => ldv}/doc/english/modele.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/notions.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/struct.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/vapi/co.htm (97%) create mode 100644 tools/vision/ldv/doc/english/vapi/fi.html create mode 100644 tools/vision/ldv/doc/english/vapi/im.htm rename tools/vision/{LDV => ldv}/doc/english/vapi/in.htm (97%) rename tools/vision/{LDV => ldv}/doc/english/vapi/index.htm (97%) rename tools/vision/{LDV => ldv}/doc/english/vapi/lo.htm (97%) rename tools/vision/{LDV => ldv}/doc/english/vapi/me.htm (56%) rename tools/vision/{LDV => ldv}/doc/english/vapi/modele.htm (100%) rename tools/vision/{LDV => ldv}/doc/english/vapi/pr.htm (97%) rename tools/vision/{LDV => ldv}/doc/english/vapi/ra.htm (97%) rename tools/vision/{LDV => ldv}/doc/english/vapi/struct.htm (97%) rename tools/vision/{LDV => ldv}/doc/hints.htm (100%) rename tools/vision/{LDV => ldv}/doc/images/conc2.gif (100%) rename tools/vision/{LDV => ldv}/doc/images/cprev.jpg (100%) rename tools/vision/{LDV => ldv}/doc/images/csom.jpg (100%) rename tools/vision/{LDV => ldv}/doc/images/csuiv.jpg (100%) rename tools/vision/{LDV => ldv}/doc/images/icointro.gif (100%) rename tools/vision/{LDV => ldv}/doc/images/icoprinc.gif (100%) rename tools/vision/{LDV => ldv}/doc/index.htm (100%) rename tools/vision/{LDV => ldv}/doc/intro.htm (100%) rename tools/vision/{LDV => ldv}/doc/kitdev.htm (97%) rename tools/vision/{LDV => ldv}/doc/modele.htm (100%) rename tools/vision/{LDV => ldv}/doc/notions.htm (100%) rename tools/vision/{LDV => ldv}/doc/struct.htm (100%) rename tools/vision/{LDV => ldv}/doc/vapi/co.htm (97%) create mode 100644 tools/vision/ldv/doc/vapi/fi.htm create mode 100644 tools/vision/ldv/doc/vapi/im.htm rename tools/vision/{LDV => ldv}/doc/vapi/in.htm (97%) rename tools/vision/{LDV => ldv}/doc/vapi/index.htm (89%) rename tools/vision/{LDV => ldv}/doc/vapi/lo.htm (97%) rename tools/vision/{LDV => ldv}/doc/vapi/me.htm (100%) rename tools/vision/{LDV => ldv}/doc/vapi/modele.htm (100%) rename tools/vision/{LDV => ldv}/doc/vapi/pr.htm (100%) rename tools/vision/{LDV => ldv}/doc/vapi/ra.htm (100%) rename tools/vision/{LDV => ldv}/doc/vapi/struct.htm (100%) rename tools/vision/{LDV/FRANCAIS => ldv/francais}/bhole.ini (100%) rename tools/vision/{LDV/FRANCAIS/BW.INI => ldv/francais/bw.ini} (100%) create mode 100644 tools/vision/ldv/francais/cntcol.ini rename tools/vision/{LDV/FRANCAIS/GAMMA.INI => ldv/francais/gamma.ini} (100%) create mode 100644 tools/vision/ldv/francais/genimg.ini rename tools/vision/{LDV/FRANCAIS/INVERT.INI => ldv/francais/invert.ini} (100%) rename tools/vision/{LDV/FRANCAIS/LIGHT.INI => ldv/francais/light.ini} (100%) rename tools/vision/{LDV/FRANCAIS/PIXEL.INI => ldv/francais/pixel.ini} (100%) rename tools/vision/{LDV/FRANCAIS => ldv/francais}/puzzle.ini (100%) rename tools/vision/{LDV/FRANCAIS/ROTATE.INI => ldv/francais/rotate.ini} (100%) rename tools/vision/{LDV/FRANCAIS/XWAVE.INI => ldv/francais/xwave.ini} (100%) rename tools/vision/{LDV/FRANCAIS/YPERSC.INI => ldv/francais/ypersc.ini} (100%) rename tools/vision/{LDV/FRANCAIS/YWAVE.INI => ldv/francais/ywave.ini} (100%) rename tools/vision/{LDV/GAMMA.INI => ldv/gamma.ini} (100%) create mode 100644 tools/vision/ldv/gamma.ldv create mode 100644 tools/vision/ldv/genimg.ini create mode 100644 tools/vision/ldv/genimg.ldv rename tools/vision/{LDV/INVERT.INI => ldv/invert.ini} (100%) create mode 100644 tools/vision/ldv/invert.ldv rename tools/vision/{LDV/LDG.H => ldv/ldg.h} (96%) create mode 100644 tools/vision/ldv/ldg.lib create mode 100644 tools/vision/ldv/ldv.h create mode 100644 tools/vision/ldv/ldvcom.h rename tools/vision/{LDV/LIGHT.INI => ldv/light.ini} (100%) create mode 100644 tools/vision/ldv/light.ldv rename tools/vision/{LDV/MT_AES.H => ldv/mt_aes.h} (100%) rename tools/vision/{LDV/MT_AES.LIB => ldv/mt_aes.lib} (100%) create mode 100644 tools/vision/ldv/optimg.ini create mode 100644 tools/vision/ldv/optimg.ldv rename tools/vision/{LDV/PIXEL.INI => ldv/pixel.ini} (100%) create mode 100644 tools/vision/ldv/pixel.ldv rename tools/vision/{LDV => ldv}/puzzle.ini (100%) create mode 100644 tools/vision/ldv/puzzle.ldv rename tools/vision/{LDV/ROTATE.INI => ldv/rotate.ini} (100%) create mode 100644 tools/vision/ldv/rotate.ldv rename tools/vision/{LDV/SMLLDV.H => ldv/smlldv.h} (100%) rename tools/vision/{LDV/SMP_LDV.INI => ldv/smp_ldv.ini} (100%) rename tools/vision/{LDV/SRC => ldv/src}/bhole/bhole.c (95%) create mode 100644 tools/vision/ldv/src/bhole/bhole.ldv rename tools/vision/{LDV/SRC => ldv/src}/bhole/bhole.prj (61%) rename tools/vision/{LDV/SRC/bhole/bhole.s => ldv/src/bhole/bholes.s} (100%) rename tools/vision/{LDV/SRC => ldv/src}/bhole/perf_r51.txt (100%) rename tools/vision/{LDV/SRC/BW/BW.C => ldv/src/bw/bw.c} (74%) create mode 100644 tools/vision/ldv/src/bw/bw.ldv rename tools/vision/{LDV/SRC/BW/BW.PRJ => ldv/src/bw/bw.prj} (76%) create mode 100644 tools/vision/ldv/src/cntcol/cntcol.c create mode 100644 tools/vision/ldv/src/cntcol/cntcol.ldv create mode 100644 tools/vision/ldv/src/cntcol/cntcol.prj create mode 100644 tools/vision/ldv/src/dither/dither.c create mode 100644 tools/vision/ldv/src/dither/dither.ldv create mode 100644 tools/vision/ldv/src/dither/dither.prj create mode 100644 tools/vision/ldv/src/dither/testplan.xlsx rename tools/vision/{LDV/SRC/gamma/GAMMA.C => ldv/src/gamma/gamma.c} (93%) create mode 100644 tools/vision/ldv/src/gamma/gamma.ldv rename tools/vision/{LDV/SRC/gamma/GAMMA.PRJ => ldv/src/gamma/gamma.prj} (77%) create mode 100644 tools/vision/ldv/src/genimg/genimg.c create mode 100644 tools/vision/ldv/src/genimg/genimg.ldv create mode 100644 tools/vision/ldv/src/genimg/genimg.prj rename tools/vision/{LDV/SRC/INVERT/INVERT.C => ldv/src/invert/invert.c} (95%) create mode 100644 tools/vision/ldv/src/invert/invert.ldv rename tools/vision/{LDV/SRC/INVERT/INVERT.PRJ => ldv/src/invert/invert.prj} (75%) rename tools/vision/{LDV/SRC/light/LIGHT.C => ldv/src/light/light.c} (95%) create mode 100644 tools/vision/ldv/src/light/light.ldv rename tools/vision/{LDV/SRC/light/LIGHT.PRJ => ldv/src/light/light.prj} (77%) create mode 100644 tools/vision/ldv/src/optimg/optimg.c create mode 100644 tools/vision/ldv/src/optimg/optimg.ldv create mode 100644 tools/vision/ldv/src/optimg/optimg.prj rename tools/vision/{LDV/SRC/PIXEL/PIXEL.C => ldv/src/pixel/pixel.c} (94%) create mode 100644 tools/vision/ldv/src/pixel/pixel.ldv rename tools/vision/{LDV/SRC/PIXEL/PIXEL.PRJ => ldv/src/pixel/pixel.prj} (76%) rename tools/vision/{LDV/SRC/PIXEL/PIXEL.S => ldv/src/pixel/pixel.s} (100%) rename tools/vision/{LDV/SRC => ldv/src}/puzzle/puzzle.c (86%) create mode 100644 tools/vision/ldv/src/puzzle/puzzle.ldv rename tools/vision/{LDV/SRC => ldv/src}/puzzle/puzzle.prj (75%) rename tools/vision/{LDV/SRC/rotate/ROTATE.C => ldv/src/rotate/rotate.c} (95%) create mode 100644 tools/vision/ldv/src/rotate/rotate.ldv rename tools/vision/{LDV/SRC/rotate/ROTATE.PRJ => ldv/src/rotate/rotate.prj} (77%) rename tools/vision/{LDV/SRC/XWAVE/XWAVE.C => ldv/src/xwave/xwave.c} (95%) rename tools/vision/{LDV/XWAVE.LDV => ldv/src/xwave/xwave.ldv} (50%) rename tools/vision/{LDV/SRC/XWAVE/XWAVE.PRJ => ldv/src/xwave/xwave.prj} (77%) rename tools/vision/{LDV/SRC/YPERSC/YPERSC.C => ldv/src/ypersc/ypersc.c} (96%) create mode 100644 tools/vision/ldv/src/ypersc/ypersc.ldv rename tools/vision/{LDV/SRC/YPERSC/YPERSC.PRJ => ldv/src/ypersc/ypersc.prj} (77%) rename tools/vision/{LDV/SRC/YWAVE/YWAVE.C => ldv/src/ywave/ywave.c} (95%) rename tools/vision/{LDV/SRC/YWAVE/YWAVE.LDV => ldv/src/ywave/ywave.ldv} (50%) rename tools/vision/{LDV/SRC/YWAVE/YWAVE.PRJ => ldv/src/ywave/ywave.prj} (77%) rename tools/vision/{LDV/VAPI.H => ldv/vapi.h} (61%) rename tools/vision/{LDV/XWAVE.INI => ldv/xwave.ini} (100%) rename tools/vision/{LDV/SRC/XWAVE/XWAVE.LDV => ldv/xwave.ldv} (50%) rename tools/vision/{LDV/YPERSC.INI => ldv/ypersc.ini} (100%) create mode 100644 tools/vision/ldv/ypersc.ldv rename tools/vision/{LDV/YWAVE.INI => ldv/ywave.ini} (100%) rename tools/vision/{LDV/YWAVE.LDV => ldv/ywave.ldv} (50%) delete mode 100644 tools/vision/readme.txt create mode 100644 tools/vision/scripts/bcon.vcs create mode 100644 tools/vision/scripts/bconv.ini create mode 100644 tools/vision/scripts/buggy.vcs create mode 100644 tools/vision/scripts/clip.vcs create mode 100644 tools/vision/scripts/clip_loop.vcs create mode 100644 tools/vision/scripts/clip_paste.vcs create mode 100644 tools/vision/scripts/ddualton.vcs create mode 100644 tools/vision/scripts/dfixpal.vcs create mode 100644 tools/vision/scripts/ibrowser.vcs create mode 100644 tools/vision/scripts/img_prio.vcs create mode 100644 tools/vision/scripts/ldv.vcs create mode 100644 tools/vision/scripts/ldvcnt.vcs create mode 100644 tools/vision/scripts/ldvcntf.vcs create mode 100644 tools/vision/scripts/ldvf.vcs create mode 100644 tools/vision/scripts/ldvini.vcs create mode 100644 tools/vision/scripts/ldvopt.vcs create mode 100644 tools/vision/scripts/ldvopt256c.vcs create mode 100644 tools/vision/scripts/lloopfol.vcs create mode 100644 tools/vision/scripts/loadloop.vcs create mode 100644 tools/vision/scripts/main.vcs create mode 100644 tools/vision/scripts/muchram.vcs create mode 100644 tools/vision/scripts/muchram2.vcs create mode 100644 tools/vision/scripts/opnsav.vcs create mode 100644 tools/vision/scripts/photos.ini create mode 100644 tools/vision/scripts/pinvert.ini create mode 100644 tools/vision/scripts/plight.ini create mode 100644 tools/vision/scripts/ppuzzle.ini create mode 100644 tools/vision/scripts/protate.ini create mode 100644 tools/vision/scripts/readme.txt create mode 100644 tools/vision/scripts/s0.vcs create mode 100644 tools/vision/scripts/s1.vcs create mode 100644 tools/vision/scripts/spec512.vcs rename tools/vision/{TCW128.DAT => tcw128.dat} (98%) rename tools/vision/{TCW64.DAT => tcw64.dat} (100%) rename tools/vision/{VISION.IMG => vision.img} (100%) create mode 100644 tools/vision/vision.prg create mode 100644 tools/vision/vision.ver create mode 100644 tools/vision/visionl.prg diff --git a/THING/THING.127/icons.inf b/THING/THING.127/icons.inf index 13d7e98..96a55ef 100644 --- a/THING/THING.127/icons.inf +++ b/THING/THING.127/icons.inf @@ -1,5 +1,5 @@ # Icon assignments for Thing (ICONS.INF) -# Created by ThingIcn on 11.09.2019, 15:09:02 +# Created by ThingIcn on 23.11.2022, 15:50:22 # # (The comments are, of course, not held in memory -- # so there is no harm keeping them in this file) @@ -81,7 +81,7 @@ IFIL "APP 68KEMU" 68KEMU.PRG IFIL "APP CONS" TOSWIN2.APP IFIL "APP RSM" RSM.APP IFIL "APP KEYEDIT" KEYEDIT.APP -IFIL "ZIP DIR/FILE" LZIP.APP +IFIL "ZIP DIR/FILE" LATZIP.APP IFLD "SYS" SYS IFLD "VAR" VAR IFLD "DHCP" DHCP diff --git a/THING/THING.127/thing.inf b/THING/THING.127/thing.inf index cb397a9..4f1d28a 100644 --- a/THING/THING.127/thing.inf +++ b/THING/THING.127/thing.inf @@ -1,8 +1,8 @@ # Thing general configuration (thing.inf) -# 01-10-2022 / 18:43 +# 24-11-2022 / 15:57 # VERS 127 -CONF 1 1 0 0 1 1 1 4 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 +CONF 1 1 0 0 1 1 1 4 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 CNFG 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CBUF 4000 US3D 1 @@ -46,9 +46,9 @@ APPL "mxplay_cf.app" C:\tools\mxplay\mxplay_cf.app "" 1 "*.mp3" "" "" 0 1 0 0 0 AOPT 0 0 0 0 0 0 0 0 0 0 APPL "NetSurf" C:\tools\netsurf3\nsv4e.app "" 1 "*.htm*,*.php,http*" "" "" 0 1 0 0 0 0 0 0 0 0 0 AOPT 0 0 0 0 0 0 0 0 0 0 -APPL "synctmcf.prg" C:\tools\synctime\synctmcf.prg "" 1 "" "" "" 0 1 0 0 0 1 0 0 0 0 0 +APPL "cops.acc" C:\mint\mint_acc\cops.acc "" 1 "*.cpx" "" "" 0 1 0 1 0 0 0 0 0 0 0 AOPT 0 0 0 0 0 0 0 0 0 0 -WIXY 0 2328 1341 4703 7594 +WIXY 0 4937 1650 4703 7594 WIXY 1 2875 4721 6656 5000 WIXY 2 500 1560 6656 5000 WIXY 3 625 1729 6656 5000 @@ -65,3 +65,4 @@ WIXY 13 1875 3459 6656 5000 WIXY 14 2000 3638 6656 5000 WIXY 15 2125 3807 6656 5000 VTXY 0 0 10000 10000 +WOPN 256 1 0 0 * F:\ 0 "" 0 0 1 diff --git a/UPLOADS.TXT b/UPLOADS.TXT index fa8ff72..ff65fab 100644 --- a/UPLOADS.TXT +++ b/UPLOADS.TXT @@ -146,4 +146,6 @@ 08.11.2022 Lars: Moved /sources/ out of setup (one dir up) 20.11.2022 Lars: /mint/sys/bin/ cleaned + updated Corrected teradesk.inf, highwire.cfg - \ No newline at end of file +24.11.2022 Lars: Updated cops.acc and Vision -> 4.9b2 + Corrected thing.inf/icons.inf for thing 1.27 + \ No newline at end of file diff --git a/mint/mint_acc/COPS.ACC b/mint/mint_acc/COPS.ACC deleted file mode 100644 index 58b60ec9653c86e04096d2c2a730685a55dbfd0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42850 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 z

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 literal 0 HcmV?d00001 diff --git a/teradesk/teradesk.inf b/teradesk/teradesk.inf index 2717e48..6952c16 100644 --- a/teradesk/teradesk.inf +++ b/teradesk/teradesk.inf @@ -1422,6 +1422,23 @@ applications= } } } + app= + { + path=C:\mint\mint_acc\cops.acc + cmdl=%f + atype= + { + appt=2 + flag=0x2000 + } + doctypes= + { + dtype= + { + mask=*.cpx + } + } + } } windows= @@ -1452,8 +1469,8 @@ windows= { xpos=103 ypos=95 - winw=57 - winh=11 + winw=52 + winh=23 } pos= { diff --git a/tools/vision/HISTOIRE.TXT b/tools/vision/HISTOIRE.TXT deleted file mode 100644 index b73e6ca..0000000 --- a/tools/vision/HISTOIRE.TXT +++ /dev/null @@ -1,331 +0,0 @@ - V I S I O N - ----------- - -http://vision.atari.org ou http://jlusetti.free.fr -E-Mail : vision@atari.org ou jlusetti@free.fr - -Tous les details des dernieres mises a jour sont disponibles sur: -http://vision.atari.org/vhisto.htm - -Version 4.0e (Decembre 2003) ----------------------------- -* Correction du bug faisant planter VISION lorsque l'on cree une nouvelle - categorie depuis le formulaire d'informations sur l'album - - -Version 4.0a (Novembre 2000) ----------------------------- -* VISION devient modulaire ! -Un clic avec le bouton droit sur une image fait apparaitre un popup donnant -acces aux LDV (Librairies Dynamiques VISION). -Vous pouvez ensuite selectionner votre LDV, voir ses details et l'appliquer -sur l'image ou sur un bloc. -Un kit de developemment est egalement disponible sur le site WEB. -Les LDV sont basees sur les librairies dynamiques GEM (LDG), developpees -par Dominique Bereziat et Olivier Landemarre. Merci a eux ! -!!!! IMPORTANT !!!! -N'oubliez pas de copier LDG.PRG dans le dossier AUTO ! - -* Grosse refonte de l'interface - - - Bien plus respecteux du Multitache Magic ou Mint... - - On peut d‚placer les fenetres de progression et celles-ci - se redessinent bien... - - Plusieurs boites de dialogue sont devenues non modales: - . La roue True Color - . La s‚lection d'un index de la palette (fenetre redimensionnable - et librement positionnable) - . Le catalogue -enfin!- - . La vue du catalogue en vignettes -enfin!- - - Pleins de d‚tails du style, on peut iconiser, bouger, retailler les - fenetres alors qu'une boite modale est ouverte - -* Nouvelle fenetre : Image Browser - - Tres pratique, cette fenetre permet de visualiser tres rapidement les images - d'un dossier a la maniere du logiciel ACDSee sur PC (excellent logiciel par - ailleurs...). Cette fenetre est affichee au demarrage et donne acces aux fonctions - suivantes: - - - Chargement d'une image : L'image demandee sera affichee et laliste des images du - meme dossier sera memorisee - - Image precedente/suivante : Permet de visualiser l'image d'avant ou d'apres. Noter que - ( touches <- et -> ) vous pouvez, durant le chargement d'une image l'interrompre - et avec les touches de <- et -> enchainer sur le chargement - de l'image suivante / precedente. - - Edition : Permet d'ouvrir une fenetre classique d'image VISION - permettant la modification - - Impression : Cette fonction permet d'imprimer l'image courante - - Supression : Supprime le fichier image sur le disque - - Zoom : Popup permettant de selectionner le niveau de zoom desire - - Deplacement : Si l'image est trop grande pour etre affichee en totalite - dans une fenetre, vous pouvez vous deplacer dedans en - maintenant appuye le bouton gauche de la souris et en la - deplacant dans le fenetre de l'Image Browser - - -* Extension de l'id‚e de cat‚gorie par d‚faut dans l'album - Il est possible d'associer … la place d'une categorie par defaut un fichier INI qui - determine les 3 categories possibles suivants les repertoires ou l'image se trouve. - Ce fichier INI … indiquer dans la fenetre d'informations sur l'album est structure ainsi: - [Lookn] --> n est l'ordre de priorite de recherche (0 est le plus prioritaire) - Path=... --> Chemin et masque, si le fichier a ajouter entre dans Path, cette image - sera enregistree avec les categories suivantes - Catn=... --> Nom de la categorie n (1,2,3) de l'image. Si cette categorie n'existe pas, - elle sera creee (attention a la limite des 32 categories). Si une erreur - survient ou si Catn n'est pas indique, la categorie par defaut de l'album - sera utilisee. - - Ce fichier INI est tres puissant pour organiser vos images si vous avez l'habitude de les - rassembler dans des repertoires ! Par exemple, une fois fait, ce fichier vous permet d'ajouter - automatiquement d'un seul coup toutes vos images sans qu'il soit necessaire de reprendre - ensuite a la main les categories ! - -* Gestion du protocole VA_START - - - Si votre bureau (Thing, Magic, Mint,...) gere ce protocole, vous pouvez charger a - la suite une nouvelle image dans VISION sans qu'il soit necessaire de le relancer - -* Gestion des noms longs - ! IMPORTANT ! - Suivant les versions du systeme (Tos, Mint, Magic...), certaines fonctions - proposees par le systeme ne gerent pas les noms longs, cela peut entrainer - des erreurs notamment lors des conversions en serie ou de l'ajout d'images - dans un album. Pour palier a cela, VISION propose sa validation dans la - fenetre des preferences (cela remplace d'ailleurs l'option des popups a - defilement qui ne servait pas a grand chose...) - -* Sur clic droit dans la vue en fenetre du catalogue, apparition d'un - popup donnant accŠs a: - - Chargement de l'image sous la souris - - Information sur l'image - - Export en HTML de la vue en fenetre (avec possibilite de dupliquer les - images correspondant aux vignettes) - -* Pour les conversions en serie, on peut specifier la destruction des fichiers - sources, leur deplacement et l'ecrasement des fichiers existants - -* Plus rapide : le tri suivant criteres pour le catalogue (jusqu'a 30 fois !) - -* Les filtres peuvent maintenant etre traduits et integres (de la meme - facon que les langues) dans VISION (creer le repertoire du nom de la - langue dans VISION\FILTRES) - -* Lors d'une conversion en serie ou d'un ajout d'images dans un album, - la progression s'affiche de maniere globale et non plus sur chaque - image traitee - -* Dans la boite de dialogue des formes, on peut maintenant specifier un - type de debut et de fin differents pour une ligne - -* Lors de l'utilisation de l'outil lignes ou K-lignes, les coordonnees - s'affichent dans la barre d'info de la fenetre - -* Sur clic droit sur une image, on peut lancer un programme externe (en - parallele si un systeme Multitache (Mint, Magic...) est utilise) - -* La palette fait parite de la liste des actions possibles lors d'un clic - droit sur une image - -* Ajout de la cle SplashWindow dans vision.ini indiquant si la fenetre de - presentation doit etre affichee - -* Ajout de la cle DisplayToolBar dans vision.ini indiquant si la barre - d'outils doit etre affichee. Pour la reafficher, passer par les - preferences - -* Si VISION ne trouve pas VISION.INI au demarrage, il vous permet de le trouver - a sa place - -* Correction de bugs - ------------------ - - Sous NVDI5, les drivers d'imprimantes sont reconnus - - - Sur une machine necessitant l'utilisation du format VDI standard, la - fonction "Copier" dans le Presse Papier GEM ne prenait pas en compte - le format VDI standard et l'image copiee etait incorrecte. - - - Sur une machine necessitant l'utilisation du format VDI standard, les - conversions en serie ne pouvaient pas marcher dans certains cas - - - Suivant le nombre de fontes et la postion de la fonte systŠme dans la liste, - il etait possible que cetteliste soit mal affichee dans le formulaire de - parametrage du texte - - -Version 3.5a (Decembre 98) ------------- - -* Impl‚mentation du tramage en 256 couleurs (selection automatique) - -* Ajout de la fonction de recopie d'ecran (SnapShot), activable par les - touches '*' et '/' du pave numerique: - '*' : Propose le choix entre l'ecran entier et un bloc rectangulaire - '/' : Recopie avec les parametres presents dans la derniere configuration - -* Gestion du format JPEG en import sans DSP - Support du format 256 couleurs en niveaux de gris - Support du format progressif (entrelace) - -* Gestion du format JPEG en export sans DSP - Qualite de sauvegarde reglable - - (Le module import/export JPEG sans DSP est en grosse partie base - sur le travail effectue par le Independent JPEG Group) - -* Possibilite de decouper une image en n lignes et m colonnes afin de sauver - chaque bloc dans un fichier (pratique pour creer des tableaux d'images dans - une page HTML) - -* Gestion du format GIF entrelace en import - -* + Rapide : tramage en niveaux de gris accelere de 25 % a 35 % - -* La fenetre du catalogue est maintenant redimensionnable - -* Ajout d'un popup apparaissant sur un clic droit sur image permettant l'acces - aux fonctions suivantes : - agrandir, maximiser, informations, sauver, sauver sous et fermer - -* Possibilite d'activer un fichier journal au format VSS afin de generer - automatiquement un fichier diaporama en chargeant des images a la suite - -* Correction du bug provoquant systematiquement une allocation memoire pour - le undo lors d'une operation de correction gamma ou luminosite en True Color - -* Correction du bug en True Color lors du chargement d'une image monochrome - (affichage en rouge et blanc au lieu de noir et blanc) - -* Correction d'un bug pouvant empecher le chargement de la fin d'une image - TIFF compresse LZW - -* Correction du bug provoquant l'affichage d'une mauvaise palette en 256 - couleurs dans le cas ou seules les 16 premieres couleurs sont utilisees - -* Correction du bug generant un mauvais fichier lors de la sauvegarde - en GIF d'une image ayant moins de couleurs que la resoution graphique - -* Correction de bugs divers pouvant entrainer un plantage lors du chargement - d'une image GIF animee - - - -Version 3.0d ------------- - -* Correction du bug avec NVDI empechant la selection d'une couleur dans une image True Color - - -Version 3.0c ------------- - -* Gestion des modes TrueColor 16 bits (65K), seul le mode 24 bits n'est - pas encore gere - -* Detection automatique de l'organisation True Color et de - la necessite d'utiliser le format VDI standard - -* La fenetre du catalogue devient "presque" non modale - -* Les fleches de direction peuvent etre utilisees pour se deplacer dans - les fenetres d'image ou du catalogue - -* L'iconification marche sous Magic - -* Doc HTML On et Off Line consultable sur le site WEB de VISION: - http://www.mygale.org/01/jlusetti - -* Sauvegarde des parametres des outils (ligne, point,...) dans - VISION.INI - -* Correction d'un bug empechant la selection d'une couleur en True Color - -* Correction d'un bug amenant … un plantage lors d'un UNDO disque sur la - palette - -* Le temps d'attente ShareWare passe a 10 secondes - -* Les fichiers diaporama (.VSS) acceptent des commentaires en ligne - -* La traduction Anglaise a ete amelioree par Hallard TANGERAAS, merci a lui ! - - -Version 3.0b ------------- -* VISION devient SHAREWARE ! - Prix : 150 Frs (cheque a l'ordre de Jean LUSETTI, - coordonnes dans REGISTER.TXT) - - -* Ajout d'une fenetre de zoom (x 1,2,4,8,16) en TEMPS REEL - Les outils peuvent maintenant etre utilises avec une - precision inegalee. - - -* Ajout de la fonctionnalit‚ de diaporama (SlideShow) - Directement int‚gr‚ au catalogue ou pouvant etre cree "a la main" - en tant que fichier texte d'extension VSS - - -* Plus RAPIDE ! - Conversion indices --> format bitplan ATARI - Tramage - Decompactage LZW - - Exemple : Le chargement d'une image TIFF 256 compressee LZW en mode - 16 couleurs a ete divise par 2,3 ! - - -* Les informations d'une image comprennent maintenant un compte rendu sur - les performances de chargement : - Acces disque - Conversion indices --> bitplan - Decompression - Tramage - Transformation format graphique specifique <--> format ATARI standard - - -* Les buffers UNDO peuvent maintenant etre definis sur disque - --> Jusqu'a 99 niveaux d'annulation !!! - - -* TOUTES les operations deviennent annulables - Y compris rotation, luminosite (TC), correction Gamma (TC) conversion et - redimensionnement - - -* Compatibilite avec les cartes graphiques et emulateurs ST sur Mac/PC - Grace a une boite de dialogue permettant a VISION de detecter - l'organisation du mode True Color (detection automatique integree) - - NOTE: - Les modes True Color 16 et 32 bits ont pu etre testes. - Le mode 24 bits est present mais NON TESTE, faute de machine - et de carte video le permettant - En 16 bits, seul le mode 32K est utilise - - -* Les icones apparaissent en couleurs sur toutes les machines et non plus - uniquement sur FALCON. - - -* Gestion simplifiee de la langue utilisee - Choix dans la boite des preferences - La traduction de VISION dans n'importe quelle langue se limite a traduire - 3 fichiers de ressources. - - -* Le fichier de configuration (ex VISION.CFG) devient VISION.INI au format texte - Plus facile et plus souple a utiliser - - -* La roue True Color est sauvee dans le fichier tcwheel.dat - Le temps d'initialisation du mode True Color disparait - Correction du bug empechant la selection d'une couleur dans la roue TC - avec NVDI ou un emulateur. - - -* L'ensemble des messages est rassemble dans le fichier VMSG.RSC - Cela permet de reduire la taille des fichiers VISION.RSC et VISIONB.RSC - qui contenaient chacun une copie de ces messages. - diff --git a/tools/vision/LDV/BW.LDV b/tools/vision/LDV/BW.LDV deleted file mode 100644 index dcddb47b4529af089913d9144de6cbc35cdf9fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5232 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 diff --git a/tools/vision/LDV/INVERT.LDV b/tools/vision/LDV/INVERT.LDV deleted file mode 100644 index 9d29d3b070e3f3d0a39f2264b94db5450c5fe23d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2817 zcmc&$U2NOd6+Wa`m8LkA)?7z%z2sU}1!c1>InF;^o22qXt19J4SzHtaLZ^`!#f~J% za_SUDp?JaIPGJ`00 zE@d-a5p)YMU`IITe)sU4d(S!dPevO+Q!4;71F%(xd-O1XVE_nk0mN6e14v}}mzh1? z3DS>5NWN4d$^j)a)SW#*kPhZ56NOTdklvm+A<@L99Xq;r#)(?0jE@$NkfCBVS1FEG z(PVU-5P*nAe0e@n02nkIgi>miLX98*AG^Y zeC`TB3_7XpYsr(;!vwfMwXi}hLUME{JO*8%8_Bl3<;ZW*H}&L~naze2U!`hn3-C6*;dZC2klwu#NqaZFO1lbe7sd946UCSefN zhVpFzoHsi}@yK=iZdMudH@>UQ*)#jE+n+c--iA)YXu$}l^^X8N^|*&5Ln(^cr9mJ& zaXo@2M`Zn+gWDUJe&^0&)G1vNPuezG-7>{EwZ7$yb4;J?yaOEemy~~^JVtnZGUiL) zu}`QY`|d#15aa9W^7bph0AxnQ5fF~w-aZX1v}h$@6X;8xbVdq4osO@=%AAcH(kBV7 zO{fH7-%;>_7bOpT8T3i*Ytn;bFGoud?J7an&r1;BL+8CEW^6m}9R>UJmYOOL%D@lQ zRAo>B0huk^^>Of`Rz&71_V31lN4+1}s~yKUZUL)cEb&0a<3v+=Iz8~pU=ibFQF6ec z#7N3~;!CvSox039o_}w6R)lz9&9e-chm`uN%3&?oSPY~!#`p&4>W4S#lTN)3P#^w1 zRc`c!tGyUw{Nr8~I8BYulqW*CYlOX8Mpwg!sE2Pc9>h9iwEZ-1;p*1?ASNh!Ce+la zVKuR8*ow*$JcF$iz5++^j7@_Nqo2@Kawv{73OB-7!BJ}K+s;WKf^r~(e-E3bl#W{qJHPeCg?IZhh!;eb_Ld((Myo`hqabA(~rH|A2Q}Y zlI!!9v538!cv7CoFOwna|J!-v?w}{eskOukJB{AMQZK;Rw`HgRo}Q*a)V9&Sd*qtw z#r79@E)X;$i51UqpjU!Rp2KbRQ>bZK?TPhT6zVnnoi_fGWKDK=ExK_Vu29Sup>h72 z_)I_IEaotzE6=8l+m8P1ee@VzvStFa7~?;fKMZge@gIIa_r=`irY$^=XTX$r79byJ z?#R~iD+Vx^o&K`HQw>_b6N0~;SvrHa$}8H}gBwzRowDpdYByKWMHkJw$Z*jP7fEaA zyCoORx#+x$$}ZAeL>ee)eFunwFIg;PPvyZrk@{-N+6;5kjJ>Ftd{*x0*gtPu*QUXP z(Jp6|<_^4bECXQihuKOCjcnn@YPKBJxS77}WV$eAY4s^9Mcbt*3!*L>cF~lJUU$*F ziF5_YQzmolc1Ptrp9`ZiSH?2AfKJh31N2KP!Pg@>s zT^C&6_E`JRHf$svq0WZEfBOD_^Z&2SW1g5m@7_n`NK@!aYWKdU`i6nS*NO$c^C;e( z0!kkIs1czRu^)nc(|G*b5eMKk^<8+=xpjZzyc~ZHYeX>p&f5|pGWnG%8~AdC4@K}U z`u;*U-Nsu9?-J%BwgKez_=@8jEIf+*IO29}w<14*`1926gY@yGZ!|$3rXw-uo$+1- zCYc*8lGNlxu39ZPx*rt`4g@I{Q-BnQBSMPjsgxut3869=q!RhRAlu%Tt73qO(emiw z!g!%t$V~w4JXfgBOpqg!ghoGH$z>*sFjOp5sfyygrQ&n+58d}nP84#_Q`7E)g$Y_N z;VSZ<8t;~G5x~FUo{skEdq#CXPU*dSvwIHU+EO#N;%#m9Uf@Mu6#cwc@a`HI4!8Dr hg;voo^aQ-^T#Lk$cY^eE24t_efxAZ{=UsGr@GmtWWbgn0 diff --git a/tools/vision/LDV/LDG.LIB b/tools/vision/LDV/LDG.LIB deleted file mode 100644 index 1c546cfc801ff2aa1e50bca3f9c9e1aeaf8a627f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3020 zcma)8O>7(25gx8qG?H&vQxIO^j0sxNpf&HW(SrQ;DhNZb|Pz_v2{F%fuljox*yfR2$k*7JR_mL2Mx8k8l64zFzvm~y|Bpn$6-onmigZV&S>!=_5BL4^1k00Tx z5wR?q|FXFBi^&N+H{SD?*Ju{%@4vqTf;#C>M|gE36BDRWCW{~vQ-Iw}%fxhSO`h1G zo5y+eH<_5v@deH&=wfc-<{}97ch@#&vzcw#r*)oC_W-L~se7^RA5`Qo>edC4ez@Yf z?3cRMZ+nZ85L{0#z;)ee-qtzu-?P~#MjfJlJq{N2?T4c7`CDBMi)ZiBO65hz?d|!d zC&5;B_cF=29&5?J+la0w?kaE+)Zb=eAG1bLLN0z|aeKc00W3OT+obO_+_M`mC#k1hZQ!tes{AmUR14_ajCN8JOy z=rR|DLDaqQ)8zZ`mOlnSAQ?~Wz&lo++~WN%^cOHb%l?dI4X8w{cr2a7$yKa{GrNI& z@L8?Ha6?*$jQ9S`$|?u}HE|E@DL}kX@#)^1t7REk_*pfuYC3dbS|v((CmFX`!aZ}@ zG1z@)G(OI`V!tuL>~2iF5QpnH&lpktSfSGlZ+v*3bvUxW?6-0|v+~J?S1600Y!KmB z%kYfh99!>pb$)Ce9P&)JTaK-5lGs$CGHXRBD{NiWUbZ88TF;XnyXLs=YxO*^68ChK zq}a3yRxWRR7)%8r;}}OY<*~XIOqrnb$%DC-n=6ewB!$z>@IoZ0hJZNskp2ENvCr%7 z6qA(Bt!<)*qIIln=!9C+6&dN?FZ)P}#PSo<-=r+uHGpn6x(tr)eRJr>wVIgN>E5xc zuugw0d#ihK9KtG)v$tR{dF{=QLg~>ThNTJCL6SCmEj)HOPNd4{=r7=?|3D>p8Aw8x zb60b!qLlCC)ZA5+w^LUuvgzBpYWajzB3Jm4jLxTT0nZp6#J;UsV&YT06GRKSYt5}B zqXMAUNir3F1p+$9`0wRZ-REyYAooiMD1W4y@^twh53P2R3g*{GF2PZo(?0oceiYvK zlRpsjG3__VYLP1f$=FC~Q8fQ+>3YhN$)EevYn$fYeQ8;3ytg8fxV%cwR)v_K+tx2d zUfa|G-ohE3BsrW?C&?X3gO}vw1qZ-j9pF2d6)`W`{z6&DJ_W4RRtypYD+ib1G&t~i z5xC?r=)n{DDR36T{I-9J+g`G;*HK(qvFPd4Is%&!fbxI*%Q$X8PSIy-r81OSs|YhIfBGC0{WJPh z|3)H*4+JlavKuVPaM~8m_gv<$GM{{}`C8Q(Z11H3Ik`_}C{7B_ywMo&ajod!8RPL4-jh>~Muy3;bq1VZ;5U&NOP z(1Rz^1u!7>fnPcbgDx3}t-B=;oR9+Gq|$X14l{cYe295glELo^z(HzrN8qHy!zsj# zNltiPI*$Jr0x*R7xRimXJu=&;d(WWXF;^daRpMaW?S#`VC-^-goJN1qH3DuAeo9<} za0GENNrb075!^=`u7{C-7-gSJf#*D4IN}w z;6;>YP`-rwarXcu+#Z-hKdsl|_!{ct!aLx=4?RKs6v_imv)gsxe0cM8Qs<3IwXr*< zPcc)W)WR996x&xkY~7$EOPAnWYPX8!YfKc{Ow>(gtr-pXlF`l^tyZ(;n(3Iv6{F}v zcmwfNwu%d_-sx8h)pqYR-4kXm8?B{kv*D~8b;^kX37~hX+%gR36ds6Xk*~Fz1(0Z- zHkzHTPNUW=l$;f#Z8R?|#?2*qaeQq{1GwdRr`QxAHO=L^M4uBj_5JI0+en9jVcq#5TqEP~l4*fuyPip|EW fOTZV}&6+T2XXK(vsdX7A=}EtDOeXQ{J^uGUJw>)e diff --git a/tools/vision/LDV/LDV.C b/tools/vision/LDV/LDV.C deleted file mode 100644 index d34fcec..0000000 --- a/tools/vision/LDV/LDV.C +++ /dev/null @@ -1,1202 +0,0 @@ -#include -#include -#include - -#include "..\tools\chkstack.h" -#include "..\tools\scalemem.h" -#include "..\tools\gwindows.h" -#include "..\tools\rasterop.h" -#include "..\tools\frecurse.h" -#include "..\tools\logging.h" -#include "..\tools\xfile.h" -#include "..\tools\ini.h" -#include "..\tools\cpupng.h" /* Workaround */ - -#include "actions.h" -#include "ldv\ldvcom.h" - -static LDV_MODULE *Modules ; -static int NbModules ; -static int NumModule ; -static short ListTypes[] = { TLDV_MODIFYIMG, TLDV_LOADIMG, TLDV_SAVEIMG } ; - -#define VAPI_LDVVERSION 0x0104 -static VAPI *Vapi = NULL ; -static GEM_WINDOW *LdvProg = NULL ; - - -void cdecl PrSetText(long no_line, char *text) -{ - if ( LdvProg && ( no_line >= 0 ) && ( no_line <= 2 ) ) - StdProgWText( LdvProg, (int)no_line, text ) ; -} - -void cdecl PrSetProg(long pc) -{ - if ( LdvProg ) LdvProg->ProgPc( LdvProg, (int)pc, NULL ) ; -} - -long cdecl PrSetProgEx(long pc) -{ - long ret = 0 ; - - if ( LdvProg ) ret = LdvProg->ProgPc( LdvProg, (int)pc, NULL ) ; - if ( ret != 0 ) LdvProg = NULL ; - - return( ret ) ; -} - -void cdecl PrOptimize(long mask) -{ - if ( LdvProg ) - { - StdProgDisplay030( LdvProg, (int)mask & 0x01 ) ; - StdProgDisplayDSP( LdvProg, (int)mask & 0x02 ) ; - StdProgDisplayFPU( LdvProg, (int)mask & 0x04 ) ; - } -} - -void cdecl RaImgWhite(MFDB *img) -{ - img_raz( img ) ; -} - -long cdecl RaIs15Bits(void) -{ - long is_15bits = 0 ; - - if ( nb_plane == 16 ) is_15bits = RVBOrg.Is15Bits ; - - return( is_15bits ) ; -} - -void cdecl RaTCConvert(MFDB *img) -{ - tc_convert( img ) ; -} - -void cdecl RaTCInvConvert(MFDB *img) -{ - tc_invconvert( img ) ; -} - -void cdecl RaInd2RasterInit(MFDB *out, long width) -{ - int raz_done = 0 ; - - i2r_init( out, (short)width, raz_done ) ; -} - -void cdecl RaInd2Raster(unsigned char *indexes, long nb_indexes) -{ - i2r_data = indexes ; - i2r_nb = nb_indexes ; - ind2raster() ; -} - -void cdecl RaRaster2Ind(short *pt_raster, long nb_pts, long nplans, unsigned char *out) -{ - raster2ind( (int*)pt_raster, out, nb_pts, (short)nplans ) ; -} - -unsigned char * cdecl RaGetTOS2VDIArray(long nplanes) -{ - return( get_pttos2vdi( (short)nplanes ) ) ; -} - -unsigned char * cdecl RaGetVDI2TOSArray(long nplanes) -{ - return( get_ptvdi2tos( (short)nplanes ) ) ; -} - -unsigned long cdecl RaGetImgSize(long width, long height, long nplanes) -{ - return( (unsigned long) img_size( (int)width, (int)height, (int)nplanes ) ) ; -} - -long cdecl RaRasterAlloc(MFDB *raster) -{ - size_t size ; - - size = img_size( raster->fd_w, raster->fd_h, raster->fd_nplanes ) ; - raster->fd_addr = Xalloc( size ) ; - if ( raster->fd_addr ) - { - raster->fd_wdwidth = raster->fd_w / 16 ; - if ( raster->fd_w % 16 ) raster->fd_wdwidth++ ; - - return( 0 ) ; - } - - return( -1 ) ; /* Erreur */ -} - -void cdecl RaRasterFree(MFDB *raster) -{ - if ( raster->fd_addr ) Xfree( raster->fd_addr ) ; - memset( raster, 0, sizeof(MFDB) ) ; -} - -void cdecl RaTC15RemapColors(REMAP_COLORS *rc) -{ - TC15RemapColors( rc ) ; -} - -void cdecl RaTC16RemapColors(REMAP_COLORS *rc) -{ - TC16RemapColors( rc ) ; -} - -void cdecl RaTC32RemapColors(REMAP_COLORS *rc) -{ - TC32RemapColors( rc ) ; -} - -void cdecl RaRasterRotateGetDstMFDB(MFDB *in, MFDB *out, long angle) -{ - float cosinus, sinus ; - - raster_rgetdstmfdb( (int)angle, in, out, &cosinus, &sinus ) ; -} - -long cdecl RaRasterRotate(MFDB *in, MFDB *out, long angle, long flags) -{ - LDV_STATUS status ; - int ret ; - - if ( flags & 0x01L ) /* Progression */ - ret = raster_rotate( in, out, (int) angle, LdvProg ) ; - else - ret = raster_rotate( in, out, (int) angle, NULL ) ; - - switch( ret ) - { - case 0 : status = ELDV_NOERROR ; - break ; - case -1 : status = ELDV_NOTENOUGHMEMORY ; - break ; - case 1 : status = ELDV_CANCELLED ; - break ; - default : status = ELDV_GENERALFAILURE ; - break ; - } - - return( (long)status ) ; -} - -void cdecl GEMMessageLoop(void *msg) -{ - EVENT event ; - - memcpy( &event.ev_mmgpbuf, msg, sizeof(event.ev_mmgpbuf) ) ; - GeneralMesagHandler( &event ) ; -} - -char* cdecl CoGetLDVPath(void) -{ - return( config.path_ldv ) ; -} - -char* cdecl CoGetCurrentLanguage(void) -{ - return( config.language ) ; -} - -unsigned long cdecl CoGetFunctionOptimizations(void *function) -{ - unsigned long code = 0 ; - - if ( MachineInfo.cpu >= 30L ) - { - if ( ( function == (void *)Vapi->MeSCopyMemory16 ) || - ( function == (void *)Vapi->MeSCopyMemory32 ) || - ( function == (void *)Vapi->RaRasterRotate ) || - ( function == (void *)Vapi->RaInd2Raster ) - ) code |= 0x01 ; - } - - return( code ) ; -} - -unsigned long cdecl CoGetProcessors(void) -{ - unsigned long pmask = 0 ; - - if ( (MachineInfo.cpu >= 30L) && ((config.ldv_options & LDVO_HIDE030) == 0) ) - pmask |= CO_HAS_030 ; - - if ( get_fpu() && ((config.ldv_options & LDVO_HIDEFPU) == 0) ) - pmask |= CO_HAS_FPU ; - - if ( DspInfo.type && ((config.ldv_options & LDVO_HIDEDSP) == 0) ) - pmask |= CO_HAS_DSP ; - - return pmask ; -} - -long cdecl InOpen(char *file) -{ - return( (long) OpenIni( file ) ) ; -} - -long cdecl InClose(HINI h_ini) -{ - return( CloseIni( h_ini ) ) ; -} - -long cdecl InSaveAndClose(HINI h_ini, char *new_name) -{ - return( SaveAndCloseIni( h_ini, new_name ) ) ; -} - -long cdecl InGetKey(HINI h_ini, char *section, char *key, char *val_key) -{ - return( GetIniKey( h_ini, section, key, val_key ) ) ; -} - -long cdecl InSetKey(HINI h_ini, char *section, char *key, char *val_key) -{ - return( SetIniKey( h_ini, section, key, val_key ) ) ; -} - -long cdecl InGetOrSetKey(HINI h_ini, char *section, char *key, char *val_default_key) -{ - return( GetOrSetIniKey( h_ini, section, key, val_default_key ) ) ; -} - -long cdecl InGetKeyFromFile(char *file, char *section, char *key, char *val_key) -{ - return GetIniKeyFromFile( file, section, key, val_key ) ; -} - -void cdecl MeSCopyMemory8(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) -{ - asm_smemcpy8( dst, src, nb_elems_dst, nb_elems_src ) ; -} - -void cdecl MeSCopyMemory16(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) -{ - asm_smemcpy16( dst, src, nb_elems_dst, nb_elems_src ) ; -} - -void cdecl MeSCopyMemory32(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) -{ - asm_smemcpy32( dst, src, nb_elems_dst, nb_elems_src ) ; -} - -void cdecl Me030SCopyMemory8(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) -{ - asm030_smemcpy8( dst, src, nb_elems_dst, nb_elems_src ) ; -} - -void cdecl Me030SCopyMemory16(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) -{ - asm030_smemcpy16( dst, src, nb_elems_dst, nb_elems_src ) ; -} - -void cdecl Me030SCopyMemory32(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) -{ - asm030_smemcpy32( dst, src, nb_elems_dst, nb_elems_src ) ; -} - -unsigned long cdecl LoGetLogLevel(void) -{ - return LoggingGetLevel() ; -} - -#ifdef __NO_LOGGING -#pragma warn -par -long cdecl LoDoLog(unsigned long level, char* format, ...) -{ - return 0 ; -} -#pragma warn +par -#else -long cdecl LoDoLog(unsigned long level, char* format, ...) -{ - va_list argp ; - long r ; - - va_start(argp, format) ; - r = LoggingvDo(level, format, argp) ; - va_end(argp) ; - - return r ; -} -#endif - -VAPI *LDVInitVAPI(void) -{ - if ( Vapi == NULL ) - { - Vapi = (VAPI *) Xcalloc( 1, sizeof(VAPI) ) ; - if ( Vapi ) - { - Vapi->Header.Version = VAPI_LDVVERSION ; - Vapi->Header.StrSize = sizeof(VAPI) ; - LoggingDo(LL_INFO, "VAPI Version: %02x.%02x", Vapi->Header.Version >> 8, Vapi->Header.Version & 0xFF) ; - LoggingDo(LL_INFO, "VAPI interface size:%d bytes", Vapi->Header.StrSize) ; - Vapi->Header.Global = _GemParBlk.global ; - Vapi->Header.GEMMessageLoop = GEMMessageLoop ; - - /* Progress Interface */ - Vapi->PrSetProg = PrSetProg ; - Vapi->PrOptimize = PrOptimize ; - Vapi->PrSetText = PrSetText ; - Vapi->PrSetProgEx = PrSetProgEx ; - - /* Raster Interface */ - Vapi->RaImgWhite = RaImgWhite ; - - Vapi->RaIs15Bits = RaIs15Bits ; - Vapi->RaTCInvConvert = RaTCInvConvert ; - Vapi->RaTCConvert = RaTCConvert ; - - Vapi->RaInd2RasterInit = RaInd2RasterInit ; - Vapi->RaInd2Raster = RaInd2Raster ; - Vapi->RaRaster2Ind = RaRaster2Ind ; - - Vapi->RaGetTOS2VDIArray = RaGetTOS2VDIArray ; - Vapi->RaGetVDI2TOSArray = RaGetVDI2TOSArray ; - - Vapi->RaGetImgSize = RaGetImgSize ; - Vapi->RaRasterAlloc = RaRasterAlloc ; - Vapi->RaRasterFree = RaRasterFree ; - - Vapi->RaTC15RemapColors = RaTC15RemapColors ; - Vapi->RaTC16RemapColors = RaTC16RemapColors ; - Vapi->RaTC32RemapColors = RaTC32RemapColors ; - - Vapi->RaRasterRotateGetDstMFDB = RaRasterRotateGetDstMFDB ; - Vapi->RaRasterRotate = RaRasterRotate ; - - /* Config Interface */ - Vapi->CoGetLDVPath = CoGetLDVPath ; - Vapi->CoGetCurrentLanguage = CoGetCurrentLanguage ; - Vapi->CoGetFunctionOptimizations = CoGetFunctionOptimizations ; - Vapi->CoGetProcessors = CoGetProcessors ; - - /* INI Interface */ - Vapi->InOpen = InOpen ; - Vapi->InClose = InClose ; - Vapi->InSaveAndClose = InSaveAndClose ; - Vapi->InGetKey = InGetKey ; - Vapi->InSetKey = InSetKey ; - Vapi->InGetOrSetKey = InGetOrSetKey ; - Vapi->InGetKeyFromFile = InGetKeyFromFile ; - - /* MEM Interface */ - if ( MachineInfo.cpu >= 30L ) - { - Vapi->MeSCopyMemory8 = Me030SCopyMemory8 ; - Vapi->MeSCopyMemory16 = Me030SCopyMemory16 ; - Vapi->MeSCopyMemory32 = Me030SCopyMemory32 ; - } - else - { - Vapi->MeSCopyMemory8 = MeSCopyMemory8 ; - Vapi->MeSCopyMemory16 = MeSCopyMemory16 ; - Vapi->MeSCopyMemory32 = MeSCopyMemory32 ; - } - - /* Logging Interface */ - Vapi->LoDoLog = LoDoLog ; - Vapi->LoGetLogLevel = LoGetLogLevel ; - } - } - - return( Vapi ) ; -} - -int LDVSetValueFromString(char *buf, int type, LDV_BASICPARAM *p) -{ - int set = 1 ; - - switch( type ) - { - case LDVT_SHORT : p->s = atoi( buf ) ; - break ; - - case LDVT_FLOAT : p->f = atof( buf ) ; - break ; - - default : set = 0 ; - break ; - } - - return( set ) ; -} - -int LDVGetIniSpec(char *base_path, LDV_MODULE *ldv_module) -{ - HINI hini ; - int err = 0 ; - int i, max_len ; - char name[PATH_MAX] ; - char *point ; - char short_name[16] ; - char long_name[32] ; - char description[80] ; - char buf[200] ; - - point = strrchr( ldv_module->FileName, '.' ) ; - if ( point ) *point = 0 ; - sprintf( name, "%s\\%s\\%s.INI", base_path, config.language, ldv_module->FileName ) ; - if ( !FileExist( name ) ) sprintf( name, "%s\\%s.INI", base_path, ldv_module->FileName ) ; - hini = OpenIni( name ) ; - if ( ( hini != NULL ) && FileExist( name ) ) - { - /* ShortName */ - buf[0] = 0 ; - GetIniKey( hini, "Informations", "ShortName", buf ) ; - max_len = (int) sizeof(short_name) - 1 ; - if ( strlen( buf ) > max_len ) buf[max_len] = 0 ; - strcpy( short_name, buf ) ; - - /* LongName */ - buf[0] = 0 ; - GetIniKey( hini, "Informations", "LongName", buf ) ; - max_len = (int) sizeof(long_name) - 1 ; - if ( strlen( buf ) > max_len ) buf[max_len] = 0 ; - strcpy( long_name, buf ) ; - - /* Description */ - buf[0] = 0 ; - GetIniKey( hini, "Informations", "Description", buf ) ; - max_len = (int) sizeof(description) - 1 ; - if ( strlen( buf ) > max_len ) buf[max_len] = 0 ; - strcpy( description, buf ) ; - - ldv_module->IniSpec.ShortName = NULL ; - ldv_module->IniSpec.LongName = NULL ; - ldv_module->IniSpec.Description = NULL ; - max_len = 1 + (int) strlen( short_name ) ; - max_len += 1 + (int) strlen( long_name ) ; - max_len += 1 + (int) strlen( description ) ; - ldv_module->IniSpec.ShortName = (char *) Xalloc( max_len ) ; - if ( ldv_module->IniSpec.ShortName ) - { - strcpy( ldv_module->IniSpec.ShortName, short_name ) ; - strcpy( ldv_module->IniSpec.ShortName + 1 + strlen( short_name ), long_name ) ; - strcpy( ldv_module->IniSpec.ShortName + 1 + strlen( short_name ) + 1 + strlen( long_name ), description ) ; - ldv_module->IniSpec.LongName = ldv_module->IniSpec.ShortName + 1 + strlen( short_name ) ; - ldv_module->IniSpec.Description = ldv_module->IniSpec.LongName + 1 + strlen( long_name ) ; - } - - /* Parameters */ - for ( i = 0; i < LDVNBMAX_PARAMETERS; i++ ) - { - /* Name */ - buf[0] = 0 ; - sprintf( name, "Parameter%d", 1 + i ) ; - GetIniKey( hini, name, "Name", buf ) ; - max_len = (int) sizeof(ldv_module->IniSpec.Params[i].Name) - 1 ; - if ( strlen( buf ) > max_len ) buf[max_len] = 0 ; - strcpy( ldv_module->IniSpec.Params[i].Name, buf ) ; - - /* Type */ - buf[0] = 0 ; - GetIniKey( hini, name, "Type", buf ) ; - ldv_module->IniSpec.Params[i].Type = atoi( buf ) ; - - /* MinValue */ - buf[0] = 0 ; - GetIniKey( hini, name, "MinValue", buf ) ; - LDVSetValueFromString( buf, ldv_module->IniSpec.Params[i].Type, &ldv_module->IniSpec.Params[i].MinValue ) ; - - /* DefaultValue */ - buf[0] = 0 ; - GetIniKey( hini, name, "DefaultValue", buf ) ; - LDVSetValueFromString( buf, ldv_module->IniSpec.Params[i].Type, &ldv_module->IniSpec.Params[i].DefaultValue ) ; - - /* MaxValue */ - buf[0] = 0 ; - GetIniKey( hini, name, "MaxValue", buf ) ; - LDVSetValueFromString( buf, ldv_module->IniSpec.Params[i].Type, &ldv_module->IniSpec.Params[i].MaxValue ) ; - - /* FloatIncrement */ - buf[0] = 0 ; - GetIniKey( hini, name, "FloatIncrement", buf ) ; - ldv_module->IniSpec.Params[i].FloatIncrement = atof( buf ) ; - - /* Verification de la validite */ - if ( ldv_module->IniSpec.Params[i].MinValue.s == ldv_module->IniSpec.Params[i].MaxValue.s ) - ldv_module->IniSpec.Params[i].Name[0] = 0 ; /* Ignorer ce parametre */ - } - - CloseIni( hini ) ; - } - else err = 1 ; - if ( point ) *point ='.' ; - - return( err ) ; -} - -void LDVReleaseInterface(LDV_MODULE *mod, int iid) -{ - void *old_interface = NULL ; - - if ( mod && ( mod->Infos.Type & iid ) ) - { - switch( iid ) - { - case TLDV_MODIFYIMG : old_interface = mod->IModifImg ; - mod->IModifImg = NULL ; - break ; - - case TLDV_LOADIMG : old_interface = mod->ILoadImg ; - mod->ILoadImg = NULL ; - break ; - - case TLDV_SAVEIMG : old_interface = mod->ISaveImg ; - mod->ISaveImg = NULL ; - break ; - } - } - - if ( old_interface ) - { - Xfree( old_interface ) ; - mod->NbReferences-- ; - } -} - -void *LDVGetInterface(LDV_MODULE *mod, int iid) -{ - LDG *ldg ; - void *interface = NULL ; - - if ( mod && ( mod->Infos.Type & iid ) ) - { - ldg = mod->Ldg ; - switch( iid ) - { - case TLDV_MODIFYIMG : if ( mod->IModifImg ) LDVReleaseInterface( mod, iid ) ; - mod->IModifImg = (ILDVModifImg *) Xcalloc( 1, sizeof(ILDVModifImg) ) ; - if ( mod->IModifImg ) - { - mod->IModifImg->PreRun = ldg_find( "PreRun", ldg ) ; - mod->IModifImg->Run = ldg_find( "Run", ldg ) ; - mod->IModifImg->Preview = ldg_find( "Preview", ldg ) ; - mod->IModifImg->GetParams = ldg_find( "GetParams", ldg ) ; - } - interface = mod->IModifImg ; - break ; - - case TLDV_LOADIMG : if ( mod->ILoadImg ) LDVReleaseInterface( mod, iid ) ; - mod->ILoadImg = (ILDVLoadImg *) Xcalloc( 1, sizeof(ILDVLoadImg) ) ; - if ( mod->ILoadImg ) - { - } - interface = mod->ILoadImg ; - break ; - - case TLDV_SAVEIMG : if ( mod->ISaveImg ) LDVReleaseInterface( mod, iid ) ; - mod->ISaveImg = (ILDVSaveImg *) Xcalloc( 1, sizeof(ILDVSaveImg) ) ; - if ( mod->ISaveImg ) - { - } - interface = mod->ISaveImg ; - break ; - } - } - - if ( interface ) mod->NbReferences++ ; - - return( interface ) ; -} - -void LDVReleaseAllInterfaces(LDV_MODULE *ldv_module) -{ - short index ; - - for ( index = 0; index < sizeof(ListTypes)/sizeof(short); index++ ) - LDVReleaseInterface( ldv_module, ListTypes[index] ) ; -} - -void LDVGetAllInterfaces(LDV_MODULE *ldv_module) -{ - short index ; - - for ( index = 0; index < sizeof(ListTypes)/sizeof(short); index++ ) - LDVGetInterface( ldv_module, ListTypes[index] ) ; -} - -void LDVUnloadFunctions(LDV_MODULE *ldv_module) -{ - LDVReleaseAllInterfaces( ldv_module ) ; - ldg_term( ap_id, ldv_module->Ldg ) ; - ldv_module->Ldg = NULL ; -} - -LDV_STATUS LDVInit(char *file, LDV_MODULE *ldv_module, int minimal_infos) -{ - LDV_INFOS *ldv_infos ; - LDG *ldg ; - LDV_STATUS err = ELDV_NOERROR ; -#if !defined(__NO_LOGGING) - short ver ; -#endif - char *slash, *lname = file ; - char base_path[PATH_MAX] ; - - if ( minimal_infos ) - { - if ( ldv_module->FileName ) Xfree( ldv_module->FileName ) ; - memset( ldv_module, 0, sizeof(LDV_MODULE) ) ; - } - - slash = strrchr( file, '\\' ) ; - if ( slash ) - { - *slash = 0 ; - strcpy( base_path, file ) ; - *slash = '\\' ; - lname = 1 + slash ; - } - - if ( ldv_module->FileName ) - { - if ( strlen( ldv_module->FileName ) < strlen( lname ) ) - { - Xfree( ldv_module->FileName ) ; - ldv_module->FileName = Xalloc( 1 + strlen( lname ) ) ; - if ( ldv_module->FileName == NULL ) return( ELDV_NOTENOUGHMEMORY ) ; - } - strcpy( ldv_module->FileName, lname ) ; - } - else - { - ldv_module->FileName = Xalloc( 1 + strlen( lname ) ) ; - if ( ldv_module->FileName == NULL ) return( ELDV_NOTENOUGHMEMORY ) ; - strcpy( ldv_module->FileName, lname ) ; - } - - /* Workaround for Mint/Aranym: if libpng is not closed, ldg_exec will freeze */ - cpu_png_terminate() ; - ldg = ldg_exec( ap_id, file ) ; - if ( ldg ) - { - ldv_module->Ldg = ldg ; - - ldv_module->GetLDVCapabilities = ldg_find( "GetLDVCapabilities", ldg ) ; - ldv_module->Infos.StrSize = sizeof(ldv_module->Infos) ; - if ( ldv_module->GetLDVCapabilities ) ldv_infos = ldv_module->GetLDVCapabilities( Vapi ) ; - else err = ELDV_GENERALFAILURE ; - if ( LDV_SUCCESS( err ) && ldv_infos ) - { - if ( ldv_infos->StrSize <= ldv_module->Infos.StrSize ) memcpy( &ldv_module->Infos, ldv_infos, ldv_infos->StrSize ) ; - else err = ELDV_GENERALFAILURE ; - } - else - err = ELDV_GENERALFAILURE ; - ldv_module->Version = ldg->vers ; -#if !defined(__NO_LOGGING) - ver = ldg->vers ; -#endif - } - else LoggingDo(LL_ERROR, "Failed to exec ldg %s", file); - - if ( !err ) - { - if ( minimal_infos ) - { - LDVGetIniSpec( base_path, ldv_module ) ; - LDVUnloadFunctions( ldv_module ) ; - } - else LDVGetAllInterfaces( ldv_module ) ; - } - - -#if !defined(__NO_LOGGING) - if (err) - LoggingDo(LL_INFO, "Loading LDV %12s returned %ld", lname, err) ; - else - LoggingDo(LL_INFO, "Loading LDV %12s(v%x.%02x)...OK", lname, ver >> 8, ver & 0xFF) ; -#endif - - return( err ) ; -} - -LDV_STATUS LDVLoadFunctions(char *path, LDV_MODULE *mod) -{ - char filename[PATH_MAX] ; - - sprintf( filename, "%s\\%s", path, mod->FileName ) ; - return( LDVInit( filename, mod, 0 ) ) ; -} - -LDV_CAPS *LDVGetNPlanesCaps(LDV_MODULE *mod, int nplanes) -{ - LDV_CAPS *caps ; - - caps = &mod->Infos.Caps[0] ; - while ( caps->NbPlanes ) - { - if ( caps->NbPlanes == nplanes ) break ; - else caps++ ; - } - - if ( caps->NbPlanes == 0 ) caps = NULL ; - - return( caps ) ; -} - -int add_ldv(FR_CDATA* fr_cdata) -{ - /* Should always be true */ - if ( NumModule < NbModules ) - if ( LDVInit( fr_cdata->filename, &Modules[NumModule], 1 ) == 0 ) NumModule++ ; - - return 0 ; -} - -LDV_MODULE *LDVGetModuleList(char *path, int *nb_ldv) -{ - FR_DATA fr_data ; - - fr_data.long_names = 0 ; /* Better not use long filenames here, old OSes would report no files */ - fr_data.path = path ; - fr_data.mask = "*.LDV" ; - fr_data.log_file = NULL ; - fr_data.user_func = NULL ; - fr_data.user_data = NULL ; - - Modules = NULL ; - NbModules = (int) count_files( 0, &fr_data ) ; - if ( NbModules > 0 ) - { - Vapi = LDVInitVAPI() ; - - /* Last module (not valid) will be zeroed */ - NumModule = 0 ; - Modules = (LDV_MODULE *) Xcalloc( 1+NbModules, sizeof(LDV_MODULE) ) ; - fr_data.long_names = 0 ; - fr_data.path = path ; - fr_data.mask = "*.LDV" ; - fr_data.log_file = NULL ; - fr_data.user_func = add_ldv ; - fr_data.user_data = NULL ; - if ( Modules ) find_files( &fr_data ) ; - else NbModules = 0 ; - } - - if ( nb_ldv ) *nb_ldv = NbModules ; - - return( Modules ) ; -} - -void LDVFreeModuleList(LDV_MODULE *module_list) -{ - LDV_MODULE *mod ; - int i ; - - mod = module_list ; - for ( i = 0; i < NbModules; i++, mod++ ) - { - if ( mod->IniSpec.ShortName ) Xfree( mod->IniSpec.ShortName ) ; - if ( mod->FileName ) Xfree( mod->FileName ) ; - if ( mod->Ldg ) LDVUnloadFunctions( mod ) ; - } - - Xfree( module_list ) ; - if ( Vapi ) Xfree( Vapi ) ; - Vapi = NULL ; -} - -LDV_MODULE *GetLdvByLdg(LDV_MODULE *ldv_list, LDG *ldg) -{ - LDV_MODULE *ldv_module = NULL ; - LDV_MODULE *cldv = ldv_list ; - - if ( ldv_list ) - { - while ( cldv->Ldg && ( ldv_module == NULL ) ) - { - if ( cldv->Ldg == ldg ) ldv_module = cldv ; - else cldv++ ; - } - } - - return( ldv_module ) ; -} - -LDV_STATUS LDVAlloc(LDV_IMAGE *img) -{ - LDV_STATUS err = ELDV_NOERROR ; - - if ( img->Raster.fd_w && img->Raster.fd_h ) - { - img->Raster.fd_addr = img_alloc( img->Raster.fd_w, img->Raster.fd_h,img->Raster.fd_nplanes ) ; - if ( img->Raster.fd_addr == NULL ) - err = ELDV_NOTENOUGHMEMORY ; - else - { - img->Raster.fd_wdwidth = img->Raster.fd_w / 16 ; - if ( img->Raster.fd_w % 16 ) img->Raster.fd_wdwidth++ ; - } - } - - if ( img->Palette.NbColors > 0 ) - { - img->Palette.Pal = Xcalloc( img->Palette.NbColors, sizeof(VDI_ELEMENTPAL) ) ; - if ( img->Palette.Pal == NULL ) err = ELDV_NOTENOUGHMEMORY ; - } - - return( err ) ; -} - -int GetBestImgFormat(LDV_CAPS *caps) -{ - int img_format ; - - switch( caps->NbPlanes ) - { - case 1 : - case 2 : - case 4 : - case 8 : if ( caps->Flags & LDVF_SPECFORMAT ) img_format = (int)LDVF_SPECFORMAT ; - else - if ( caps->Flags & LDVF_STDFORMAT ) img_format = (int)LDVF_STDFORMAT ; - else - if ( caps->Flags & LDVF_ATARIFORMAT ) img_format = (int)LDVF_ATARIFORMAT ; - else img_format = (int)LDVF_ATARIFORMAT ; - break ; - - case 16 : - case 24 : - case 32 : if ( caps->Flags & LDVF_SPECFORMAT ) img_format = (int)LDVF_SPECFORMAT ; - else - if ( caps->Flags & LDVF_ATARIFORMAT ) img_format = (int)LDVF_ATARIFORMAT ; - else img_format = (int)LDVF_ATARIFORMAT ; - break ; - - default : img_format = (int)LDVF_SPECFORMAT ; - break ; - } - - return( img_format ) ; -} - -LDV_STATUS FormatLdvImgFromSpec(LDV_IMAGE *ldv_img, int new_format) -{ - MFDB previous_img, std_img ; - LDV_STATUS err = ELDV_NOERROR ; - - /* ldv_img->raster doit valoir LDVF_SPECFORMAT */ - if ( ldv_img->RasterFormat != LDVF_SPECFORMAT ) return( ELDV_GENERALFAILURE ) ; - - memcpy( &previous_img, &ldv_img->Raster, sizeof(MFDB) ) ; - if ( ldv_img->RasterFormat != new_format ) - { - switch( new_format ) - { - case LDVF_STDFORMAT : if ( ldv_img->Raster.fd_nplanes <= 8 ) - { - memcpy( &std_img, &ldv_img->Raster, sizeof(MFDB) ) ; - std_img.fd_addr = img_alloc( std_img.fd_w, std_img.fd_h, std_img.fd_nplanes ) ; - if ( std_img.fd_addr == NULL ) err = ELDV_NOTENOUGHMEMORY ; - if ( LDV_SUCCESS( err ) ) - { - std_img.fd_stand = 1 ; - vr_trnfm( handle, &ldv_img->Raster, &std_img ) ; - Xfree( ldv_img->Raster.fd_addr ) ; - memcpy( &ldv_img->Raster, &std_img, sizeof(MFDB) ) ; - } - } - else - err = ELDV_GENERALFAILURE ; - break ; - - case LDVF_ATARIFORMAT : if ( ldv_img->Raster.fd_nplanes <= 8 ) - { - if ( MakeMFDBClassicAtari( &ldv_img->Raster, NULL ) != 0 ) - err = ELDV_NOTENOUGHMEMORY ; - } - else if ( UseStdVDI ) tc_invconvert( &ldv_img->Raster ) ; - break ; - - default : err = ELDV_GENERALFAILURE ; - break ; - } - if ( LDV_SUCCESS( err ) ) ldv_img->RasterFormat = (short)new_format ; - } - - return( err ) ; -} - -LDV_STATUS FormatLdvImgToSpec(LDV_IMAGE *ldv_img) -{ - MFDB img ; - LDV_STATUS err = ELDV_NOERROR ; - - switch( ldv_img->RasterFormat ) - { - case LDVF_SPECFORMAT : err = ELDV_NOERROR ; - break ; - - case LDVF_STDFORMAT : if ( ldv_img->Raster.fd_nplanes <= 8 ) - { - memcpy( &img, &ldv_img->Raster, sizeof(MFDB) ) ; - img.fd_addr = img_alloc( img.fd_w, img.fd_h, img.fd_nplanes ) ; - if ( img.fd_addr == NULL ) err = ELDV_NOTENOUGHMEMORY ; - if ( LDV_SUCCESS( err ) ) - { - img.fd_stand = 0 ; - vr_trnfm( handle, &ldv_img->Raster, &img ) ; - Xfree( ldv_img->Raster.fd_addr ) ; - memcpy( &ldv_img->Raster, &img, sizeof(MFDB) ) ; - } - } - else - err = ELDV_GENERALFAILURE ; - break ; - - case LDVF_ATARIFORMAT : if ( UseStdVDI && ( ldv_img->Raster.fd_nplanes <= 8 ) ) - { - memcpy( &img, &ldv_img->Raster, sizeof(MFDB) ) ; - img.fd_addr = img_alloc( img.fd_w, img.fd_h, img.fd_nplanes ) ; - if ( img.fd_addr ) - { - img.fd_stand = 1 ; - ClassicAtari2StdVDI( &ldv_img->Raster, &img ) ; - ldv_img->Raster.fd_stand = 0 ; - vr_trnfm( handle, &img, &ldv_img->Raster ) ; - Xfree( img.fd_addr ) ; - } - else - err = ELDV_NOTENOUGHMEMORY ; - } - else if ( UseStdVDI ) tc_convert( &ldv_img->Raster ) ; - break ; - - default : err = ELDV_GENERALFAILURE ; - break ; - } - - if ( LDV_SUCCESS( err ) ) ldv_img->RasterFormat = (int)LDVF_SPECFORMAT ; - - return( err ) ; -} - -LDV_STATUS LDVDo(LDV_MODULE *ldv, LDV_PARAMS *pldv_params, LDV_IMAGE *pldv_img, int preview, LDV_PERF *perfs) -{ - LDV_PARAMS ldv_params ; - LDV_CAPS *caps ; - ILDVModifImg *IModifImg = ldv->IModifImg ; - LDV_IMAGE *ldv_img, img_sel, out ; - LDV_STATUS err ; - size_t t0, t00 ; - int img_format ; - - if ( IModifImg == NULL ) return( ELDV_BADINTERFACE ) ; - if ( preview ) perfs = NULL ; - if ( perfs ) t00 = clock() ; - - ldv_img = pldv_img ; - memcpy( &ldv_params, pldv_params, sizeof(LDV_PARAMS) ) ; - caps = LDVGetNPlanesCaps( ldv, ldv_img->Raster.fd_nplanes ) ; - if ( caps == NULL ) return( ELDV_NBPLANESNOTSUPPORTED ) ; - - if ( - ( ( ldv_params.x1 != 0 ) || ( ldv_params.y1 != 0 ) || - ( ldv_params.x2 != ldv_img->Raster.fd_w -1 ) || ( ldv_params.y2 != ldv_img->Raster.fd_h -1 ) - ) && - ( caps->Flags & LDVF_NOSELECTION ) - ) - { - int xy[8] ; - - /* Dupliquer la selection, le LDV ne peut pas travailler sur une partie d'image */ - memcpy( &img_sel, ldv_img, sizeof(LDV_IMAGE) ) ; - img_sel.Raster.fd_w = 1 + ldv_params.x2 - ldv_params.x1 ; - img_sel.Raster.fd_h = 1 + ldv_params.y2 - ldv_params.y1 ; - RaRasterAlloc( &img_sel.Raster ) ; - if ( img_sel.Raster.fd_addr == NULL ) return( ELDV_NOTENOUGHMEMORY ) ; - xy[0] = ldv_params.x1 ; xy[1] = ldv_params.y1 ; - xy[2] = ldv_params.x2 ; xy[3] = ldv_params.y2 ; - xy[4] = xy[5] = 0 ; - xy[6] = img_sel.Raster.fd_w - 1 ; - xy[7] = img_sel.Raster.fd_h - 1 ; - vro_cpyfm( handle, S_ONLY, xy, &ldv_img->Raster, &img_sel.Raster ) ; - ldv_img = &img_sel ; - ldv_params.x1 = ldv_params.y1 = 0 ; - ldv_params.x2 = img_sel.Raster.fd_w - 1 ; - ldv_params.y2 = img_sel.Raster.fd_h - 1 ; - } - else memset( &img_sel, 0, sizeof(LDV_IMAGE) ) ; - - if ( perfs ) t0 = clock() ; - img_format = GetBestImgFormat( caps ) ; - err = FormatLdvImgFromSpec( ldv_img, img_format ) ; - if ( perfs ) perfs->pre_ldv_ms = (1000L * (clock() - t0) ) / CLK_TCK ; - if ( !LDV_SUCCESS( err ) ) return( err ) ; - - memset( &out, 0, sizeof(LDV_IMAGE) ) ; - out.Raster.fd_nplanes = caps->NbPlanesOut ; - out.RasterFormat = img_format ; - - if ( perfs ) t0 = clock() ; - err = IModifImg->PreRun( ldv_img, &ldv_params, &out ) ; - if ( perfs ) - { - perfs->prerun_ms = (1000L * (clock() - t0) ) / CLK_TCK ; - t0 = clock() ; - } - - if ( LDV_SUCCESS( err ) ) - { - if ( caps->Flags & LDVF_OPINPLACE ) - { - memcpy( &out, ldv_img, sizeof(LDV_IMAGE) ) ; - out.Raster.fd_nplanes = caps->NbPlanesOut ; - } - else - { - err = LDVAlloc( &out ) ; - if ( !LDV_SUCCESS( err ) ) RaRasterFree( &img_sel.Raster ) ; - } - } - - if ( perfs ) perfs->pre_ldv_ms += (1000L * (clock() - t0) ) / CLK_TCK ; - if ( LDV_SUCCESS( err ) ) - { -#if !defined(__NO_LOGGING) - int perf2log = ( LoggingGetLevel() >= LL_PERF ) ; - - if (perf2log) - { - char tmp[300], buf[100] ; - int n ; - - sprintf(tmp, "Running LDV with w=%d, h=%d", out.Raster.fd_w, out.Raster.fd_h) ; - for (n=0; n < ldv_params.NbParams; n++ ) - { - sprintf(buf, ", P%d=%d", n, ldv_params.Param[n].s) ; - strcat(tmp, buf) ; - } - LoggingDo(LL_DEBUG, tmp) ; - } -#endif - - if ( preview ) - { -#if !defined(__NO_LOGGING) - if (perf2log) t0 = clock() ; -#endif - if ( IModifImg->Preview ) err = IModifImg->Preview( ldv_img, &ldv_params, &out ) ; - else err = ELDV_PREVIEWNOTSUPPORTED ; -#if !defined(__NO_LOGGING) - if (perf2log) - LoggingDo(LL_PERF, "LDV Preview took %ldms", (1000L * (clock() - t0) ) / CLK_TCK) ; -#endif - } - else - { - if ( IModifImg->Run ) - { - int nflags ; - - if ( caps->Flags & LDVF_SUPPORTCANCEL ) nflags = 0 ; - else nflags = CLOSER ; /* Pas d'annulation possible par defaut */ - if ( ( caps->Flags & LDVF_SUPPORTPROG ) && ( LdvProg == NULL ) ) - LdvProg = DisplayStdProg( "", "", "", nflags ) ; - if ( LdvProg ) GWSetWindowCaption( LdvProg, "LDV ..." ) ; - if ( perfs ) t0 = clock() ; -#if !defined(__NO_LOGGING) - if ( perf2log ) t0 = clock() ; -#endif - err = IModifImg->Run( ldv_img, &ldv_params, &out ) ; - if ( perfs ) perfs->run_ms = (1000L * (clock() - t0) ) / CLK_TCK ; -#if !defined(__NO_LOGGING) - if (perf2log) - LoggingDo(LL_PERF, "LDV Run took %ldms", (1000L * (clock() - t0) ) / CLK_TCK) ; -#endif - if ( ( caps->Flags & LDVF_SUPPORTPROG ) && LdvProg ) - GWDestroyWindow( LdvProg ) ; - LdvProg = NULL ; - } - else - err = ELDV_RUNNOTSUPPORTED ; - } - - if ( LDV_SUCCESS( err ) ) - { - if ( perfs ) t0 = clock() ; - err = FormatLdvImgToSpec( &out ) ; - if ( LDV_SUCCESS( err ) ) - { - if ( img_sel.Raster.fd_addr ) - { - int xy[8] ; - int xs0, ys0, xd0, yd0, ws, hs, wd, hd, w, h ; - int mode = S_ONLY ; - - if (mode_vswr == MD_TRANS) mode = S_OR_D ; - else if (mode_vswr == MD_XOR) mode = S_XOR_D ; - else if (mode_vswr == MD_ERASE) mode = NOTS_AND_D ; - /* Replacer la selection dupliquee */ - /* Centrer le resultat sur le centre du bloc d'origine */ - wd = 1 + pldv_params->x2 - pldv_params->x1 ; - hd = 1 + pldv_params->y2 - pldv_params->y1 ; - ws = out.Raster.fd_w ; - hs = out.Raster.fd_h ; - if ( ws > wd ) - { - w = wd ; - xs0 = ( ws - w ) / 2 ; - xd0 = 0 ; - } - else - { - w = ws ; - xs0 = 0 ; - xd0 = ( wd - w ) / 2 ; - } - if ( hs > hd ) - { - h = hd ; - ys0 = ( hs - h ) / 2 ; - yd0 = 0 ; - } - else - { - h = hs ; - ys0 = 0 ; - yd0 = ( hd - h ) / 2 ; - } - - xy[0] = xs0 ; - xy[1] = ys0 ; - xy[2] = xy[0] + w - 1 ; - xy[3] = xy[1] + h - 1 ; - xy[4] = pldv_params->x1 + xd0 ; - xy[5] = pldv_params->y1 + yd0 ; - xy[6] = xy[4] + w - 1 ; - xy[7] = xy[5] + h - 1 ; - vro_cpyfm( handle, mode, xy, &out.Raster, &pldv_img->Raster ) ; - RaRasterFree( &img_sel.Raster ) ; - if ( ( caps->Flags & LDVF_OPINPLACE ) == 0 ) Xfree( out.Raster.fd_addr ) ; - } - else - { - if ( ( caps->Flags & LDVF_OPINPLACE ) == 0 ) Xfree( ldv_img->Raster.fd_addr ) ; - memcpy( &ldv_img->Raster, &out.Raster, sizeof(MFDB) ) ; - } - } - if ( perfs ) perfs->post_ldv_ms = (1000L * (clock() - t0) ) / CLK_TCK ; - } - else - { - if ( ( caps->Flags & LDVF_OPINPLACE ) == 0 ) Xfree( out.Raster.fd_addr ) ; - if ( out.Palette.Pal ) Xfree( out.Palette.Pal ) ; - } - } - - if ( perfs ) perfs->total_ms = (1000L * (clock() - t00) ) / CLK_TCK ; - - /* Run peut avoir modifie les valeurs des parametres */ - memcpy( &pldv_params->Param[0], &ldv_params.Param[0], LDVNBMAX_PARAMETERS*sizeof(LDV_BASICPARAM) ) ; - - return( err ) ; -} diff --git a/tools/vision/LDV/LDV.H b/tools/vision/LDV/LDV.H deleted file mode 100644 index 36f9295..0000000 --- a/tools/vision/LDV/LDV.H +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef __LDV -#define __LDV - -#ifndef __LDG__ -#include -#endif - -#ifndef __VAPI -#include "ldv\vapi.h" -#endif - -/* Codes d'erreurs */ -typedef long LDV_STATUS ; /* Type de status retourne */ -#define ELDV_NOERROR 0x0 /* Pas d'erreur */ -#define ELDV_INVALIDPARAMETER 0x1 /* Au moins un parametre transmis est invalide */ -#define ELDV_NBPLANESNOTSUPPORTED 0x2 /* Nombre de plans non supporte */ -#define ELDV_NOTENOUGHMEMORY 0x3 /* Memoire insuffisante */ -#define ELDV_PREVIEWNOTSUPPORTED 0x4 /* Preview non supportee */ -#define ELDV_RUNNOTSUPPORTED 0x5 /* Run non supporte (!) */ -#define ELDV_BADVAPIVERSION 0x6 /* VAPI absent ou mauvaise version */ -#define ELDV_IMGFORMATMISMATCH 0x7 /* Format d'image incompatible */ -#define ELDV_CANCELLED 0x8 /* Operation annulee par l'utilisateur (GetParams par exemple) */ -#define ELDV_BADINTERFACE 0x9 /* Impossible : ce LDV ne possede pas la bonne interface */ -#define ELDV_GENERALFAILURE 0xF /* Echec general, raison non precisee */ - - -/* Pour finir, une petite macro pour tester si */ -/* Une fonction LDV a retourne une erreur */ -#define LDV_SUCCESS(x) ((x) == ELDV_NOERROR) - - -/* Types de LDV */ -#define TLDV_MODIFYIMG 0x01 /* Modificateur d'image : filtre, deformation, ... */ - /* Le nombre de plans de l'image reste inchange */ -#define TLDV_LOADIMG 0x02 /* Module de chargement d'image */ -#define TLDV_SAVEIMG 0x04 /* Module de sauvegarde d'image */ - -/* Structure de definition du LDV */ -/* Pour un nombre de plans defini */ -/* Masques de bits pour le champ Flags */ -#define LDVF_STDFORMAT 0x00000001UL /* Donnees image au format standard */ -#define LDVF_ATARIFORMAT 0x00000002UL /* Donnees image au format ATARI (Falcon) */ -#define LDVF_SPECFORMAT 0x00000004UL /* Donnees image au format specifique a la machine */ -#define LDVF_SUPPORTPREVIEW 0x00000008UL /* Support de la pre-visualisation */ -#define LDVF_AFFECTPALETTE 0x00000010UL /* Le module affecte la palette (si NbPlanes <= 8) */ -#define LDVF_SUPPORTPROG 0x00000020UL /* Le module appelera la fonction de progression */ -#define LDVF_OPINPLACE 0x00000040UL /* Le module modifie la source (param out ignore) */ -#define LDVF_REALTIMEPARAMS 0x00000080UL /* Le module supporte la modification en temps reel */ - /* Des parametres (mode Preview) */ -#define LDVF_SUPPORTCANCEL 0x00000100UL /* Le module gere l'annulation (voir PrSetProgEx) */ -#define LDVF_NOSELECTION 0x00000200UL /* Le module ne peut pas g‚rer la selection */ - -/* Cette structure definit ce que ce LDV sait faire, */ -/* Pour un nombre donne de plans en entree */ -typedef struct -{ - char NbPlanes ; /* Nombre de plans de l'image : */ - /* 0 : Fin de cette structure */ - /* 1, 2, 4, 8, 16, 24, ou 32 */ - - char NbPlanesOut ; /* Nombre de plans en sortie */ - - unsigned long Flags ; /* LDVF_... */ -} -LDV_CAPS ; - -/* Cette structure rassemble les infos du module qui sont */ -/* Suceptibles de pouvoir etre traduites dans d'autres langues */ -/* Un fichier .INI doit etre associe (voir SMP_LDV.INI pour exemple) */ - -#define LDVNBMAX_PARAMETERS 4 /* Nombre maximal de parametres pouvant etre gere */ - /* Depuis VISION et passes au travers de LDV_PARAMS */ - -typedef union -{ - short s ; - float f ; -} -LDV_BASICPARAM ; - -#define LDVT_SHORT 1 -#define LDVT_FLOAT 2 -typedef struct -{ - char Name[1+15] ; - char Type ; - LDV_BASICPARAM MinValue ; - LDV_BASICPARAM DefaultValue ; - LDV_BASICPARAM MaxValue ; - float FloatIncrement ; -} -LDV_DEF_PARAM ; - -typedef struct -{ - short StrSize ; /* Taille de la structure LDV_INFOS */ - short Type ; /* TLDV_... */ - char Authors[1+45] ; /* Liste du ou des auteurs */ - - LDV_CAPS Caps[10] ; /* Ce que ce LDV sait faire, pour */ - /* Chaque type d'image */ - /* Mettre cette structure a zero */ - /* Des que la liste est terminee */ - /* Un maximum de 9 elements utiles */ - /* Est donc disponible */ - - char RFU[16] ; /* Usage futur */ -} -LDV_INFOS ; - -typedef struct -{ - short Red ; /* 0...1000 */ - short Green ; /* 0...1000 */ - short Blue ; /* 0...1000 */ -} -VDI_ELEMENTPAL ; - -typedef struct -{ - short NbColors ; /* Nombre d'index dans cette palette */ - VDI_ELEMENTPAL *Pal ; /* ATTENTION : Palette indexee sur les indices VDI */ -} -LDV_PALETTE ; - -typedef struct -{ - short x1, y1, x2, y2 ; /* Rectangle definissant la partie du MFDB a traiter */ - short NbParams ; - LDV_BASICPARAM Param[LDVNBMAX_PARAMETERS] ; - void *UserParam ; /* Peut etre utilise avec GetParams */ -} -LDV_PARAMS ; - -/* Parametres d'entree de la fonction a effectuer par le LDV */ -typedef struct -{ - short RasterFormat ; /* LDVF_STDFORMAT, LDVF_ATARIFORMAT ou LDVF_SPECFORMAT */ - /* VISION choisit automatiquement le format optimal en */ - /* Fonction des capacites du LDV fournies par la */ - /* Fonction GetLDVCapabilities */ - - MFDB Raster ; /* Image */ - - LDV_PALETTE Palette ; /* Structure fournie si Raster.fd_nplanes > 8 */ -} -LDV_IMAGE ; - - -#endif diff --git a/tools/vision/LDV/LDVCOM.H b/tools/vision/LDV/LDVCOM.H deleted file mode 100644 index 4ff68c5..0000000 --- a/tools/vision/LDV/LDVCOM.H +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef __LDVCOM -#define __LDVCOM - -#ifndef __LDV -#include "ldv\ldv.h" -#endif - -typedef struct -{ - char *ShortName ; /* Nom court du module (15 carac. max) */ - char *LongName ; /* Nom long du module (31 carac. max) */ - char *Description ; /* Description du module (79 carac. max) */ - - /* Definition des parametres pouvant etre applique */ - LDV_DEF_PARAM Params[LDVNBMAX_PARAMETERS] ; -} -LDV_INI_SPEC ; - -/* Interface pour la modification d'image */ -typedef struct -{ - /* Permet a VISION d'allouer les ressources */ - /* Necessaires a la fonction assuree par le LDV */ - /* Renvoyer dans out->Raster les dimensions */ - /* Voulues et/ou renseigner le champ out->Palette.NbColors */ - /* Renvoyer dans params, la totalite de la zone a envoyer */ - /* Dans le Undo */ - LDV_STATUS cdecl (*PreRun)(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; - - /* Effectue la fonction du LDV */ - /* VISION a deja alloue la memoire voulue grace a la fonction precedente */ - /* NE SURTOUT PAS ALLOUER OU LIBERER DE LA MEMOIRE QUI SERA UTILISEE PAR */ - /* VISION ! */ - LDV_STATUS cdecl (*Run)(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; - - /* Identique a la fonction precedente, mais en mode Preview */ - LDV_STATUS cdecl (*Preview)(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; - - /* Optionnel : Si cette fonction est presente, VISION l'appelera a la place */ - /* de la fonction interne pour parametrer le module */ - /* Si la valeur de retour est differente de ELDV_NOERROR, VISION consderera */ - /* Que la saisie a ete annulee (comme si vous aviez appuye sur "Cancel" dans */ - /* Le formulaire standard de saisie. */ - LDV_STATUS cdecl (*GetParams)(LDV_IMAGE *img, LDV_PARAMS *params, char *path) ; -} -ILDVModifImg ; - -typedef struct -{ - long RFU[10] ; -} -ILDVLoadImg ; - -typedef struct -{ - long RFU[10] ; -} -ILDVSaveImg ; - -typedef struct -{ - LDG *Ldg ; /* Le module LDG */ - - char *FileName ; /* Nom uniquement, sans le chemin */ - short Version ; /* Idem que Ldg->vers */ - - LDV_INFOS Infos ; /* Informations sur ce module */ - LDV_INI_SPEC IniSpec ; /* Specifique au .INI */ - - /* Indique a VISION ce que ce LDV sait faire */ - /* VISION fournit son interface de programmation vapi */ - LDV_INFOS * cdecl (*GetLDVCapabilities)(VAPI *vapi) ; - - int NbReferences ; /* Nombre de references en cours sur ce module */ - ILDVModifImg *IModifImg ; /* Interface pour le type TLDV_MODIFYIMG */ - ILDVLoadImg *ILoadImg ; /* Interface pour le type TLDV_LOADIMG */ - ILDVSaveImg *ISaveImg ; /* Interface pour le type TLDV_SAVEIMG */ - long RFUInterfaces[10] ; /* Interfaces de reserve */ -} -LDV_MODULE ; - -typedef struct -{ - unsigned long prerun_ms ; - unsigned long pre_ldv_ms ; - unsigned long run_ms ; - unsigned long post_ldv_ms ; - unsigned long total_ms ; -} -LDV_PERF ; - -LDV_CAPS *LDVGetNPlanesCaps(LDV_MODULE *mod, int nplanes) ; -LDV_MODULE *LDVGetModuleList(char *path, int *nb_ldv) ; -void LDVFreeModuleList(LDV_MODULE *module_list) ; -LDV_MODULE *GetLdvByLdg(LDV_MODULE *ldv_list, LDG *ldg) ; -LDV_STATUS LDVAlloc(LDV_IMAGE *img) ; -LDV_STATUS LDVDo(LDV_MODULE *ldv, LDV_PARAMS *ldv_params, LDV_IMAGE *ldv_img, int preview, LDV_PERF *perfs) ; - -LDV_STATUS LDVLoadFunctions(char *path, LDV_MODULE *mod) ; -void LDVUnloadFunctions(LDV_MODULE *mod) ; - -#endif diff --git a/tools/vision/LDV/LIGHT.LDV b/tools/vision/LDV/LIGHT.LDV deleted file mode 100644 index 8b35128147e2b23faee0b6d3ec8b8c09427b833b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2816 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 T{M?F%-%n+|X&<*mCJz1$vME8# diff --git a/tools/vision/LDV/ROTATE.LDV b/tools/vision/LDV/ROTATE.LDV deleted file mode 100644 index 6b268c47c87060cc1e08a6facc02e4775eca19fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1952 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 diff --git a/tools/vision/LDV/SRC/PIXEL/PIXEL.LDV b/tools/vision/LDV/SRC/PIXEL/PIXEL.LDV deleted file mode 100644 index 446830f084379dbe283c64dc6153387da8cfcc4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3739 zcmdT{Z%kX)6+iF!VZRvj^6)(3FcxkfmSr-)jzNeZFFZf~^x+Ug4I^x-+D9APabVao zrdumi*);2*$_IufZJ#Q2n!2ru+KP3Nw&jDJbzPd}gP~QZ(pJgVvPdLLqOI#v#Oj^v zKR`C3D%GT^N4oEv^SkGsbKbq@-us?b4Pd$qz>EO6-i9qQ0B9P3AR}Hx4E82?4OHq&&piqrk-&jaB5jKVn38a~hwmWDHD8*TI6VCcD8v-FZYkq&z#D_P|Dy zJbxCz33b%A&G#f75e9gfqOeXaB-znx8-oVvg0DKXk$--yyx`=W|}R1VHP^k(jj{1|-!Q!!i6Z2kUU1MuL|5uemYWkb3H z$U$6>_re^J{quSGYC+E1{syz|^Ly)V0S8cV+WQGUn+WfpqLvk>!#t5q0}OkNi|PGS zG4M~R*Y=VATe-g}uYeJo9viE8yK$T_qIF5CqG;~c$~N6}`Hk^*-P(~0)6g+pd$IG- zv(w<=-p5hM%aH4l??KK6l%d|&0>KLbuMOUwSvt3P0@&ag;sm3#A2^z&@wNj{*Kg_j zsm^Zchmx&ay!?Z)ma^-mnU!>_sP$p=!=v!&d>iaPtku|#Xk5$5As>3OWRu>1@bIhi!JCp{IrT2}-hi`V zDCCH}f9K)1=Ytn74aLE2Sx&8FXl5=4aPvcF1M zm>4i-&F7Cvpi9qI3ofz>Q79j;i(<~Ss2&wJg(;4Ukz(b6lxxv)AyCK~fB zuEV$C(?=*0=3+cO6Vxu=U%B!auxQlfE=idL( zmVD{itEVoX3@9VCZZFfiU45=tw{MWLt*XQ-)op3`W_z|YM_JtZ!D*XrTKwxv@61T> zr@41hgd6GqV$|&FEUnqqxqH;?X~$;G+D?w-Yj$;Zt7cc{{z5&7YAIij4X?IAXjclS*k;!F?;# zcvmzF=+>3yjU;Xxp{98wmqWg4}zP+Ih?L*YA;?4T?&~4I7$N%8GcBez<G+J5a%(HBT)&5bc+73I4B?yH5g!)p2Ed1HY>{&{%G&5O#}|<}X>kT(!r# zxB4qJU)@(r9+2t^2A|b`pYi|K<~BxEd`ie+gFH7TGpdaD5AGcLRF!1LCA(OPx_F8b zuPWo64T_xDolU-#T9`e?F3&EZ^w5ReM?Gj^gA;65@|QD2@ug5o6+KJENXB%=##0Ob z)az+gNoTS%n|kJMz2r$Mc`D@EQuHX6a<%O$_}eMtQr~CgU9ywpLeygJg@{eXh(a<$ zW0Y(+xL8AaCESkCsS9nXjD+pOYM{DS!%{sH|MIsO4vyo>Tn$XBpk!>{rl_Ole-N{F50m?X9}Ffiz0T3t z=wp%bNFoxP1gbn9Nz6==V^f6YJ`fKErY4|wB9fpGm3yKSkJDeWZ6;4dg5RO0jl+@2 zyC!SLeENHO2D^uF#b_@Z*H=~PU*=7`$t38FP2Up50jqf-A-40jDn%89z@{co=&MAY T{M?F%-%n+|X&<*mCJz1$vME8# diff --git a/tools/vision/LDV/SRC/YPERSC/YPERSC.LDV b/tools/vision/LDV/SRC/YPERSC/YPERSC.LDV deleted file mode 100644 index b1a83ca4be850cc9c845d279a8a4c5b268aec1f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4948 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 diff --git a/tools/vision/LDV/SRC/bhole/bhole.lst b/tools/vision/LDV/SRC/bhole/bhole.lst deleted file mode 100644 index 0ec1228..0000000 --- a/tools/vision/LDV/SRC/bhole/bhole.lst +++ /dev/null @@ -1,1054 +0,0 @@ - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 1 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 1 .IMPORT pre_cosin ; array of 2*ITRIGO_ARRAY_SIZE longs - 2 .IMPORT pre_loffset ; long* - 3 .EXPORT bh_xd, bh_yd, bh_rd2 ; long - 4 .EXPORT bh_xs, bh_ys, bh_ref ; long - 5 .EXPORT bh_xc, bh_yc ; long - 6 .EXPORT bh_out_w, bh_out_h ; short - 7 .EXPORT bh_in_w, bh_in_h ; short - 8 .EXPORT bh_out_x, bh_out_y ; short - 9 .EXPORT BHL32_68030,BHL16_68030,BHLInd_68030 - 10 .EXPORT BHL32_F68030,BHL16_F68030,BHLInd_F68030 - 11 .EXPORT lcosin_fpu - 12 - 13 ITRIGO_ARRAY_SIZE EQU (1 << 14) - 14 ITRIGO_ANGLE_MAX EQU (ITRIGO_ARRAY_SIZE-1) - 15 QUARTER EQU (ITRIGO_ARRAY_SIZE/4) - 16 - 17 ; The black hole transformation consists of: - 18 ; Rotate the destination pixel around the black hole center - 19 ; The closest we are to the black hole, the bigger the rotation angle is - 20 ; We have 2 or 3 parts of computation angle for black hole transformation: - 21 ; 1: Just before dividing the maximum possible angle (depending on LDV paramter Rotation angle) by: - 22 ; CPU: the square of distance to black hole center - 23 ; FPU: the distance to black hole center; here we need 68881 instruction FSQRT - 24 ; So there are 3 parts in macro calculations: - 25 ; 1. Before dividing by distance or its square - 26 ; 1a. (FPU only) Compute distance - 27 ; 3. Divide by either distance or its square and state if the resulting pixel is in source image - 28 ; Dividing by distance instead of its square gives better visual results - 29 MACRO BH_COMP_1 - 30 MOVE.L A6,D0 ; Remember A6=bh_xd - 31 ADD.L D0,D0 - 32 ADDQ.L #1,D0 - 33 MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 MOVE.L bh_ref(PC),D2 - 36 MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 38 ENDM - 39 - 40 MACRO BH_COMP_2 bail_out_addr - 41 DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 43 - 44 LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 MOVE.L A6,D0 ; D0=bh_xd - 46 MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 49 - 50 MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 51 - 52 MOVE.L D0,D4 - 53 MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 MOVE.L D1,D5 - 55 MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 2 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 57 ASR.L D6,D4 - 58 ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 BLT.S bail_out_addr ; xs < 0: not in range - 60 CMP.W bh_in_w(PC),D4 - 61 BGE.S bail_out_addr ; xs >= bh_in_w: not in range - 62 MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 63 - 64 MOVE.L D0,D4 - 65 MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 MOVE.L D1,D5 - 67 MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 ASR.L D6,D4 - 70 ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 BLT.S bail_out_addr ; ys < 0: not in range - 72 CMP.W bh_in_h(PC),D4 - 73 BGE.S bail_out_addr ; ys >= bh_in_h: not in range - 74 MOVEQ.L #0,D6 ; pixel in range - 75 ENDM - 76 - 77 ; Macro for CPU 68030 - 78 MACRO BH_COMPUTE_CPU bail_out_addr - 79 BH_COMP_1 - 80 BH_COMP_2 bail_out_addr - 81 ENDM - 82 - 83 ; Macro for using FPU - 84 ; What we do with FPU is to compute the square root of D1 which - 85 ; Is then the distance to the back hole center instead of its square - 86 MACRO BH_COMPUTE_FPU bail_out_addr - 87 BH_COMP_1 - 88 FMOVE.L D1,FP0 - 89 FSQRT FP0 - 90 FMOVE.L FP0,D1 - 91 BH_COMP_2 bail_out_addr - 92 ENDM - 93 - 94 ; Init parameters valid for the entire call - 95 MACRO INIT_BHL - 96 LEA.L pre_cosin,A2 - 97 MOVE.L pre_loffset,A4 ; A4-->preoffset - 98 MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 99 MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 100 MOVE.W bh_out_w(PC),D7 - 101 SUBQ.W #1,D7 ; For DBF - 102 ENDM - 103 - 104 MACRO INIT_BHL_SYM - 105 LEA.L pre_cosin,A2 - 106 MOVE.L pre_loffset,A4 ; A4-->preoffset - 107 MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 108 MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 109 MOVE.W bh_out_w(PC),D7 - 110 LSR.W #1,D7 ; loop to bh_out_w/2 counts - 111 ADD.W A6,D7 ; starting from bh_xd - 112 MOVE.W D7,last_xd - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 3 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 113 ENDM - 114 - 115 ; Get pixel TC32 -->dest (Dx) - 116 ; A4-->pre_loffset - 117 MACRO GET_TCPIXEL32 p,x,y,dest - 118 MOVE.L (A4,y.L*4),dest - 119 ADD.L x,dest - 120 MOVE.L (p,dest.L*4),dest - 121 ENDM - 122 - 123 ; Set pixel TC32 val(Dx) -->dest - 124 ; A4-->pre_loffset - 125 ; scratch_Dx scratch variable - 126 MACRO SET_TCPIXEL32 p,x,y,val,scratch_Dx - 127 MOVE.L (A4,y.L*4),scratch_Dx - 128 ADD.L x,scratch_Dx - 129 MOVE.L val,(p,scratch_Dx.L*4) - 130 ENDM - 131 - 132 ; Get pixel TC16 -->dest (Dx) - 133 ; A4-->pre_loffset - 134 MACRO GET_TCPIXEL16 p,x,y,dest - 135 MOVE.L (A4,y.L*4),dest - 136 ADD.L x,dest - 137 MOVE.W (p,dest.L*2),dest - 138 ENDM - 139 - 140 ; Set pixel TC16 val(Dx) -->dest - 141 ; A4-->pre_loffset - 142 ; scratch_Dx scratch variable - 143 MACRO SET_TCPIXEL16 p,x,y,val,scratch_Dx - 144 MOVE.L (A4,y.L*4),scratch_Dx - 145 ADD.L x,scratch_Dx - 146 MOVE.W val,(p,scratch_Dx.L*2) - 147 ENDM - 148 - 149 ; Rotate 90 - 150 ; x,y,scratch_Dx : registers, y has to be Dx - 151 ; #define R90(x,y) { long _x=x; x=-y; y=_x; } - 152 MACRO R90 x,y,scratch_Dx - 153 MOVE.L x,scratch_Dx - 154 NEG.L y - 155 MOVE.L y,x - 156 MOVE.L scratch_Dx,y - 157 ENDM - 158 - 159 MACRO PIXINIMG x,y,w,h,bailout - 160 TST.W x - 161 BLT.S bailout - 162 TST.W y - 163 BLT.S bailout - 164 CMP.W w,x - 165 BGE.S bailout - 166 CMP.W h,y - 167 BGE.S bailout - 168 ENDM - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 4 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 169 - 170 ; On sample file 00_1480ms.jpg, Aranym 32bit: - 171 ; BHL32_68000 takes about 1450ms - 172 ; BHL32_68030 takes about 740ms - 173 - 174 ; 68030 routine for True Color 32bit - 175 ; BHL32_68030(short use_sym, void* in, void* out) - 176 ; D0, A0 A1 - 177 00000000' BHL32_68030: - 178 00000000' 48E7 FF3E MOVEM.L D0-D7/A2-A6,-(SP) ; Save context - 179 - 180 00000004' 4A40 TST.W D0 - 181 00000006' 6600 00AE BNE BHL32_68030_sym - 182 - 183 0000000A' 7E00 MOVEQ.L #0,D7 - 184 0000000C' 3E3A 0488 MOVE.W bh_out_x(PC),D7 - 185 00000010' E58F LSL.L #2,D7 - 186 00000012' D3C7 ADD.L D7,A1 ; A1-->&out[bh_out_x] - 187 INIT_BHL - 96 00000014' 45F9 00000000* + LEA.L pre_cosin,A2 - 97 0000001A' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 98 00000020' 2A7A 0454 + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 99 00000024' 2C7A 0448 + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 100 00000028' 3E3A 0464 + MOVE.W bh_out_w(PC),D7 - 101 0000002C' 5347 + SUBQ.W #1,D7 ; For DBF - 188 0000002E' bhl32_l030: - 189 BH_COMPUTE_CPU bhl32_tpir_030 ; -->D6=0:pixel in range - 30 0000002E' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 00000030' D080 + ADD.L D0,D0 - 32 00000032' 5280 + ADDQ.L #1,D0 - 33 00000034' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 00000036' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 00000038' 243A 0448 + MOVE.L bh_ref(PC),D2 - 36 0000003C' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 0000003E' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 41 00000040' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 00000044' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 44 0000004A' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 0000004C' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 0000004E' 223A 0422 + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 00000052' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 00000056' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 0000005A' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 0000005C' 2800 + MOVE.L D0,D4 - 53 0000005E' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 00000062' 2A01 + MOVE.L D1,D5 - 55 00000064' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 00000068' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 0000006A' ECA4 + ASR.L D6,D4 - 58 0000006C' D8BA 0418 + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 00000070' 6D 26 + BLT.S bhl32_tpir_030 ; xs < 0: not in range - 60 00000072' B87A 041E + CMP.W bh_in_w(PC),D4 - 61 00000076' 6C 20 + BGE.S bhl32_tpir_030 ; xs >= bh_in_w: not in range - 62 00000078' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 0000007A' 2800 + MOVE.L D0,D4 - 65 0000007C' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 5 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 66 00000080' 2A01 + MOVE.L D1,D5 - 67 00000082' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 00000086' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 00000088' ECA4 + ASR.L D6,D4 - 70 0000008A' D8BA 03FE + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 0000008E' 6D 08 + BLT.S bhl32_tpir_030 ; ys < 0: not in range - 72 00000090' B87A 0402 + CMP.W bh_in_h(PC),D4 - 73 00000094' 6C 02 + BGE.S bhl32_tpir_030 ; ys >= bh_in_h: not in range - 74 00000096' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 190 00000098' bhl32_tpir_030: - 191 00000098' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 192 0000009A' 4A46 TST.W D6 - 193 0000009C' 66 0A BNE.S bhl32_setpix_030 - 194 0000009E' 2034 4C00 MOVE.L (A4,D4.L*4),D0 ; D4=bh_ys, D0=pre_loffset[bh_ys] - 195 000000A2' D08B ADD.L A3,D0 ; D0=pre_loffset[bh_ys] + bh_xs(A3) - 196 000000A4' 2030 0C00 MOVE.L (A0,D0.L*4),D0 ; D0=in_ptr[pre_loffset[bh_ys] + bh_xs] - 197 000000A8' bhl32_setpix_030: - 198 000000A8' 22C0 MOVE.L D0,(A1)+ - 199 000000AA' 528E ADD.L #1,A6 ; bh_xd++ - 200 000000AC' 51CF FF80 DBF D7,bhl32_l030 - 201 - 202 000000B0' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 203 000000B4' 4E75 RTS - 204 - 205 000000B6' BHL32_68030_sym: - 206 INIT_BHL_SYM - 105 000000B6' 45F9 00000000* + LEA.L pre_cosin,A2 - 106 000000BC' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 107 000000C2' 2A7A 03B2 + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 108 000000C6' 2C7A 03A6 + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 109 000000CA' 3E3A 03C2 + MOVE.W bh_out_w(PC),D7 - 110 000000CE' E24F + LSR.W #1,D7 ; loop to bh_out_w/2 counts - 111 000000D0' DE4E + ADD.W A6,D7 ; starting from bh_xd - 112 000000D2' 33C7 00000000' + MOVE.W D7,last_xd - 207 000000D8' bhl32_l030_sym: - 208 BH_COMPUTE_CPU bhl32_tpir_030_sym ; -->D6=0:pixel in range - 30 000000D8' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 000000DA' D080 + ADD.L D0,D0 - 32 000000DC' 5280 + ADDQ.L #1,D0 - 33 000000DE' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 000000E0' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 000000E2' 243A 039E + MOVE.L bh_ref(PC),D2 - 36 000000E6' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 000000E8' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 41 000000EA' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 000000EE' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 44 000000F4' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 000000F6' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 000000F8' 223A 0378 + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 000000FC' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 00000100' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 00000104' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 00000106' 2800 + MOVE.L D0,D4 - 53 00000108' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 0000010C' 2A01 + MOVE.L D1,D5 - 55 0000010E' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 6 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 56 00000112' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 00000114' ECA4 + ASR.L D6,D4 - 58 00000116' D8BA 036E + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 0000011A' 6D 26 + BLT.S bhl32_tpir_030_sym ; xs < 0: not in range - 60 0000011C' B87A 0374 + CMP.W bh_in_w(PC),D4 - 61 00000120' 6C 20 + BGE.S bhl32_tpir_030_sym ; xs >= bh_in_w: not in range - 62 00000122' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 00000124' 2800 + MOVE.L D0,D4 - 65 00000126' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 0000012A' 2A01 + MOVE.L D1,D5 - 67 0000012C' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 00000130' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 00000132' ECA4 + ASR.L D6,D4 - 70 00000134' D8BA 0354 + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 00000138' 6D 08 + BLT.S bhl32_tpir_030_sym ; ys < 0: not in range - 72 0000013A' B87A 0358 + CMP.W bh_in_h(PC),D4 - 73 0000013E' 6C 02 + BGE.S bhl32_tpir_030_sym ; ys >= bh_in_h: not in range - 74 00000140' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 209 00000142' bhl32_tpir_030_sym: - 210 00000142' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 211 00000144' 4A46 TST.W D6 - 212 00000146' 66 0A BNE.S bhl32_setpix_030_sym - 213 GET_TCPIXEL32 A0,A3,D4,D0 ; A0-->in_ptr, A3=bh_xs+bh_xc, D4=bh_ys+bh_yc - 118 00000148' 2034 4C00 + MOVE.L (A4,D4.L*4),D0 - 119 0000014C' D08B + ADD.L A3,D0 - 120 0000014E' 2030 0C00 + MOVE.L (A0,D0.L*4),D0 - 214 ; D0=GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc) - 215 00000152' bhl32_setpix_030_sym: - 216 00000152' 2F0E MOVE.L A6,-(SP) ; Save bh_xd - 217 00000154' 243A 0330 MOVE.L bh_xc(PC),D2 ; D2=bh_xc - 218 00000158' 263A 0330 MOVE.L bh_yc(PC),D3 ; D3=bh_yc - 219 0000015C' DDC2 ADD.L D2,A6 ; A6=bh_xd+bh_xc - 220 0000015E' 2E3A 0312 MOVE.L bh_yd(PC),D7 - 221 00000162' DE83 ADD.L D3,D7 ; D7=bh_yd+bh_yc - 222 SET_TCPIXEL32 A1,A6,D7,D0,D5 ; SET_TCPIXEL(out_ptr, bh_xd+bh_xc, bh_yd+bh_yc, GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc)) - 127 00000164' 2A34 7C00 + MOVE.L (A4,D7.L*4),D5 - 128 00000168' DA8E + ADD.L A6,D5 - 129 0000016A' 2380 5C00 + MOVE.L D0,(A1,D5.L*4) - 223 - 224 0000016E' 7202 MOVEQ.L #2,D1 ; 3 loops, -1 for DBF - 225 00000170' deduc32_030: - 226 00000170' 97C2 SUB.L D2,A3 ; We need now bh_xs(A3) and bh_ys(D4) relative to - 227 00000172' 9883 SUB.L D3,D4 ; Black Hole center to use R90 - 228 00000174' 9DC2 SUB.L D2,A6 ; We need now bh_xd(A6) and bh_yd(D7) relative to - 229 00000176' 9E83 SUB.L D3,D7 ; Black Hole center to use R90 - 230 - 231 R90 A6,D7,D0 ; Rotate (xd,yd) by PI/4 - 153 00000178' 200E + MOVE.L A6,D0 - 154 0000017A' 4487 + NEG.L D7 - 155 0000017C' 2C47 + MOVE.L D7,A6 - 156 0000017E' 2E00 + MOVE.L D0,D7 - 232 R90 A3,D4,D0 ; Rotate (xs,ys) by PI/4 - 153 00000180' 200B + MOVE.L A3,D0 - 154 00000182' 4484 + NEG.L D4 - 155 00000184' 2644 + MOVE.L D4,A3 - 156 00000186' 2800 + MOVE.L D0,D4 - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 7 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 233 - 234 00000188' D7C2 ADD.L D2,A3 ; Now we need coords in image raster - 235 0000018A' D883 ADD.L D3,D4 - 236 0000018C' DDC2 ADD.L D2,A6 - 237 0000018E' DE83 ADD.L D3,D7 - 238 - 239 PIXINIMG A6,D7,bh_in_w(PC),bh_in_h(PC),dnotinimg32_030 ; Check if pixel in dest is within bounds - 160 00000190' 4A4E + TST.W A6 - 161 00000192' 6D 3A + BLT.S dnotinimg32_030 - 162 00000194' 4A47 + TST.W D7 - 163 00000196' 6D 36 + BLT.S dnotinimg32_030 - 164 00000198' BCFA 02F8 + CMP.W bh_in_w(PC),A6 - 165 0000019C' 6C 30 + BGE.S dnotinimg32_030 - 166 0000019E' BE7A 02F4 + CMP.W bh_in_h(PC),D7 - 167 000001A2' 6C 2A + BGE.S dnotinimg32_030 - 240 000001A4' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 241 PIXINIMG A3,D4,bh_in_w(PC),bh_in_h(PC),plotdest32_030 ; Check if pixel in src is within bounds - 160 000001A6' 4A4B + TST.W A3 - 161 000001A8' 6D 1A + BLT.S plotdest32_030 - 162 000001AA' 4A44 + TST.W D4 - 163 000001AC' 6D 16 + BLT.S plotdest32_030 - 164 000001AE' B6FA 02E2 + CMP.W bh_in_w(PC),A3 - 165 000001B2' 6C 10 + BGE.S plotdest32_030 - 166 000001B4' B87A 02DE + CMP.W bh_in_h(PC),D4 - 167 000001B8' 6C 0A + BGE.S plotdest32_030 - 242 GET_TCPIXEL32 A0,A3,D4,D0 ; A0-->in_ptr, A3=bh_xs+bh_xc, D4=bh_ys+bh_yc - 118 000001BA' 2034 4C00 + MOVE.L (A4,D4.L*4),D0 - 119 000001BE' D08B + ADD.L A3,D0 - 120 000001C0' 2030 0C00 + MOVE.L (A0,D0.L*4),D0 - 243 ; D0=GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc) - 244 000001C4' plotdest32_030: - 245 SET_TCPIXEL32 A1,A6,D7,D0,D5 ; SET_TCPIXEL(out_ptr, bh_xd+bh_xc, bh_yd+bh_yc, GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc)) - 127 000001C4' 2A34 7C00 + MOVE.L (A4,D7.L*4),D5 - 128 000001C8' DA8E + ADD.L A6,D5 - 129 000001CA' 2380 5C00 + MOVE.L D0,(A1,D5.L*4) - 246 000001CE' dnotinimg32_030: - 247 000001CE' 51C9 FFA0 DBF D1,deduc32_030 - 248 - 249 000001D2' 2C5F MOVE.L (SP)+,A6 ; Restore bh_xd - 250 000001D4' 528E ADD.L #1,A6 ; bh_xd++ - 251 000001D6' BCFA 02C2 CMP.W last_xd(PC),A6 - 252 000001DA' 6F00 FEFC BLE bhl32_l030_sym - 253 - 254 000001DE' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 255 000001E2' 4E75 RTS - 256 - 257 ; 68030 routine for True Color 16bit - 258 ; BHL16_68030(short use_sym, void* in, void* out) - 259 ; D0, A0 A1 - 260 000001E4' BHL16_68030: - 261 000001E4' 48E7 FF3E MOVEM.L D0-D7/A2-A6,-(SP) ; Save context - 262 - 263 000001E8' 4A40 TST.W D0 - 264 000001EA' 6600 00AE BNE BHL16_68030_sym - 265 - 266 000001EE' 7E00 MOVEQ.L #0,D7 - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 8 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 267 000001F0' 3E3A 02A4 MOVE.W bh_out_x(PC),D7 - 268 000001F4' DE87 ADD.L D7,D7 - 269 000001F6' D3C7 ADD.L D7,A1 ; A1-->&out[bh_out_x] - 270 INIT_BHL - 96 000001F8' 45F9 00000000* + LEA.L pre_cosin,A2 - 97 000001FE' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 98 00000204' 2A7A 0270 + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 99 00000208' 2C7A 0264 + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 100 0000020C' 3E3A 0280 + MOVE.W bh_out_w(PC),D7 - 101 00000210' 5347 + SUBQ.W #1,D7 ; For DBF - 271 00000212' bhl16_l030: - 272 BH_COMPUTE_CPU bhl16_tpir_030 ; -->D6=0:pixel in range - 30 00000212' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 00000214' D080 + ADD.L D0,D0 - 32 00000216' 5280 + ADDQ.L #1,D0 - 33 00000218' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 0000021A' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 0000021C' 243A 0264 + MOVE.L bh_ref(PC),D2 - 36 00000220' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 00000222' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 41 00000224' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 00000228' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 44 0000022E' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 00000230' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 00000232' 223A 023E + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 00000236' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 0000023A' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 0000023E' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 00000240' 2800 + MOVE.L D0,D4 - 53 00000242' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 00000246' 2A01 + MOVE.L D1,D5 - 55 00000248' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 0000024C' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 0000024E' ECA4 + ASR.L D6,D4 - 58 00000250' D8BA 0234 + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 00000254' 6D 26 + BLT.S bhl16_tpir_030 ; xs < 0: not in range - 60 00000256' B87A 023A + CMP.W bh_in_w(PC),D4 - 61 0000025A' 6C 20 + BGE.S bhl16_tpir_030 ; xs >= bh_in_w: not in range - 62 0000025C' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 0000025E' 2800 + MOVE.L D0,D4 - 65 00000260' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 00000264' 2A01 + MOVE.L D1,D5 - 67 00000266' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 0000026A' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 0000026C' ECA4 + ASR.L D6,D4 - 70 0000026E' D8BA 021A + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 00000272' 6D 08 + BLT.S bhl16_tpir_030 ; ys < 0: not in range - 72 00000274' B87A 021E + CMP.W bh_in_h(PC),D4 - 73 00000278' 6C 02 + BGE.S bhl16_tpir_030 ; ys >= bh_in_h: not in range - 74 0000027A' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 273 0000027C' bhl16_tpir_030: - 274 0000027C' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 275 0000027E' 4A46 TST.W D6 - 276 00000280' 66 0A BNE.S bhl16_setpix_030 - 277 00000282' 2034 4C00 MOVE.L (A4,D4.L*4),D0 ; D4=bh_ys, D0=pre_loffset[bh_ys] - 278 00000286' D08B ADD.L A3,D0 ; D0=pre_loffset[bh_ys] + bh_xs(A3) - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 9 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 279 00000288' 3030 0A00 MOVE.W (A0,D0.L*2),D0 ; D0=in_ptr[pre_loffset[bh_ys] + bh_xs] - 280 0000028C' bhl16_setpix_030: - 281 0000028C' 32C0 MOVE.W D0,(A1)+ - 282 0000028E' 528E ADD.L #1,A6 ; bh_xd++ - 283 00000290' 51CF FF80 DBF D7,bhl16_l030 - 284 - 285 00000294' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 286 00000298' 4E75 RTS - 287 - 288 0000029A' BHL16_68030_sym: - 289 INIT_BHL_SYM - 105 0000029A' 45F9 00000000* + LEA.L pre_cosin,A2 - 106 000002A0' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 107 000002A6' 2A7A 01CE + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 108 000002AA' 2C7A 01C2 + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 109 000002AE' 3E3A 01DE + MOVE.W bh_out_w(PC),D7 - 110 000002B2' E24F + LSR.W #1,D7 ; loop to bh_out_w/2 counts - 111 000002B4' DE4E + ADD.W A6,D7 ; starting from bh_xd - 112 000002B6' 33C7 00000000' + MOVE.W D7,last_xd - 290 000002BC' bhl16_l030_sym: - 291 BH_COMPUTE_CPU bhl16_tpir_030_sym ; -->D6=0:pixel in range - 30 000002BC' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 000002BE' D080 + ADD.L D0,D0 - 32 000002C0' 5280 + ADDQ.L #1,D0 - 33 000002C2' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 000002C4' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 000002C6' 243A 01BA + MOVE.L bh_ref(PC),D2 - 36 000002CA' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 000002CC' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 41 000002CE' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 000002D2' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 44 000002D8' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 000002DA' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 000002DC' 223A 0194 + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 000002E0' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 000002E4' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 000002E8' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 000002EA' 2800 + MOVE.L D0,D4 - 53 000002EC' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 000002F0' 2A01 + MOVE.L D1,D5 - 55 000002F2' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 000002F6' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 000002F8' ECA4 + ASR.L D6,D4 - 58 000002FA' D8BA 018A + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 000002FE' 6D 26 + BLT.S bhl16_tpir_030_sym ; xs < 0: not in range - 60 00000300' B87A 0190 + CMP.W bh_in_w(PC),D4 - 61 00000304' 6C 20 + BGE.S bhl16_tpir_030_sym ; xs >= bh_in_w: not in range - 62 00000306' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 00000308' 2800 + MOVE.L D0,D4 - 65 0000030A' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 0000030E' 2A01 + MOVE.L D1,D5 - 67 00000310' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 00000314' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 00000316' ECA4 + ASR.L D6,D4 - 70 00000318' D8BA 0170 + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 0000031C' 6D 08 + BLT.S bhl16_tpir_030_sym ; ys < 0: not in range - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 10 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 72 0000031E' B87A 0174 + CMP.W bh_in_h(PC),D4 - 73 00000322' 6C 02 + BGE.S bhl16_tpir_030_sym ; ys >= bh_in_h: not in range - 74 00000324' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 292 00000326' bhl16_tpir_030_sym: - 293 00000326' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 294 00000328' 4A46 TST.W D6 - 295 0000032A' 66 0A BNE.S bhl16_setpix_030_sym - 296 GET_TCPIXEL16 A0,A3,D4,D0 ; A0-->in_ptr, A3=bh_xs+bh_xc, D4=bh_ys+bh_yc - 135 0000032C' 2034 4C00 + MOVE.L (A4,D4.L*4),D0 - 136 00000330' D08B + ADD.L A3,D0 - 137 00000332' 3030 0A00 + MOVE.W (A0,D0.L*2),D0 - 297 ; D0=GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc) - 298 00000336' bhl16_setpix_030_sym: - 299 00000336' 2F0E MOVE.L A6,-(SP) ; Save bh_xd - 300 00000338' 243A 014C MOVE.L bh_xc(PC),D2 ; D2=bh_xc - 301 0000033C' 263A 014C MOVE.L bh_yc(PC),D3 ; D3=bh_yc - 302 00000340' DDC2 ADD.L D2,A6 ; A6=bh_xd+bh_xc - 303 00000342' 2E3A 012E MOVE.L bh_yd(PC),D7 - 304 00000346' DE83 ADD.L D3,D7 ; D7=bh_yd+bh_yc - 305 SET_TCPIXEL16 A1,A6,D7,D0,D5 ; SET_TCPIXEL(out_ptr, bh_xd+bh_xc, bh_yd+bh_yc, GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc)) - 144 00000348' 2A34 7C00 + MOVE.L (A4,D7.L*4),D5 - 145 0000034C' DA8E + ADD.L A6,D5 - 146 0000034E' 3380 5A00 + MOVE.W D0,(A1,D5.L*2) - 306 - 307 00000352' 7202 MOVEQ.L #2,D1 ; 3 loops, -1 for DBF - 308 00000354' deduc16_030: - 309 00000354' 97C2 SUB.L D2,A3 ; We need now bh_xs(A3) and bh_ys(D4) relative to - 310 00000356' 9883 SUB.L D3,D4 ; Black Hole center to use R90 - 311 00000358' 9DC2 SUB.L D2,A6 ; We need now bh_xd(A6) and bh_yd(D7) relative to - 312 0000035A' 9E83 SUB.L D3,D7 ; Black Hole center to use R90 - 313 - 314 R90 A6,D7,D0 ; Rotate (xd,yd) by PI/4 - 153 0000035C' 200E + MOVE.L A6,D0 - 154 0000035E' 4487 + NEG.L D7 - 155 00000360' 2C47 + MOVE.L D7,A6 - 156 00000362' 2E00 + MOVE.L D0,D7 - 315 R90 A3,D4,D0 ; Rotate (xs,ys) by PI/4 - 153 00000364' 200B + MOVE.L A3,D0 - 154 00000366' 4484 + NEG.L D4 - 155 00000368' 2644 + MOVE.L D4,A3 - 156 0000036A' 2800 + MOVE.L D0,D4 - 316 - 317 0000036C' D7C2 ADD.L D2,A3 ; Now we need coords in image raster - 318 0000036E' D883 ADD.L D3,D4 - 319 00000370' DDC2 ADD.L D2,A6 - 320 00000372' DE83 ADD.L D3,D7 - 321 - 322 PIXINIMG A6,D7,bh_in_w(PC),bh_in_h(PC),dnotinimg16_030 ; Check if pixel in dest is within bounds - 160 00000374' 4A4E + TST.W A6 - 161 00000376' 6D 3A + BLT.S dnotinimg16_030 - 162 00000378' 4A47 + TST.W D7 - 163 0000037A' 6D 36 + BLT.S dnotinimg16_030 - 164 0000037C' BCFA 0114 + CMP.W bh_in_w(PC),A6 - 165 00000380' 6C 30 + BGE.S dnotinimg16_030 - 166 00000382' BE7A 0110 + CMP.W bh_in_h(PC),D7 - 167 00000386' 6C 2A + BGE.S dnotinimg16_030 - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 11 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 323 00000388' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 324 PIXINIMG A3,D4,bh_in_w(PC),bh_in_h(PC),plotdest16_030 ; Check if pixel in src is within bounds - 160 0000038A' 4A4B + TST.W A3 - 161 0000038C' 6D 1A + BLT.S plotdest16_030 - 162 0000038E' 4A44 + TST.W D4 - 163 00000390' 6D 16 + BLT.S plotdest16_030 - 164 00000392' B6FA 00FE + CMP.W bh_in_w(PC),A3 - 165 00000396' 6C 10 + BGE.S plotdest16_030 - 166 00000398' B87A 00FA + CMP.W bh_in_h(PC),D4 - 167 0000039C' 6C 0A + BGE.S plotdest16_030 - 325 GET_TCPIXEL16 A0,A3,D4,D0 ; A0-->in_ptr, A3=bh_xs+bh_xc, D4=bh_ys+bh_yc - 135 0000039E' 2034 4C00 + MOVE.L (A4,D4.L*4),D0 - 136 000003A2' D08B + ADD.L A3,D0 - 137 000003A4' 3030 0A00 + MOVE.W (A0,D0.L*2),D0 - 326 ; D0=GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc) - 327 000003A8' plotdest16_030: - 328 SET_TCPIXEL16 A1,A6,D7,D0,D5 ; SET_TCPIXEL(out_ptr, bh_xd+bh_xc, bh_yd+bh_yc, GET_TCPIXEL(in_ptr, bh_xs+bh_xc, bh_ys+bh_yc)) - 144 000003A8' 2A34 7C00 + MOVE.L (A4,D7.L*4),D5 - 145 000003AC' DA8E + ADD.L A6,D5 - 146 000003AE' 3380 5A00 + MOVE.W D0,(A1,D5.L*2) - 329 000003B2' dnotinimg16_030: - 330 000003B2' 51C9 FFA0 DBF D1,deduc16_030 - 331 - 332 000003B6' 2C5F MOVE.L (SP)+,A6 ; Restore bh_xd - 333 000003B8' 528E ADD.L #1,A6 ; bh_xd++ - 334 000003BA' BCFA 00DE CMP.W last_xd(PC),A6 - 335 000003BE' 6F00 FEFC BLE bhl16_l030_sym - 336 - 337 000003C2' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 338 000003C6' 4E75 RTS - 339 - 340 ; 68030 routine for bitplances images, converted to indexes - 341 ; BHLInd_68030(short use_sym, void* in, void* out) - 342 ; D0, A0 A1 - 343 000003C8' BHLInd_68030: - 344 000003C8' 48E7 FF3E MOVEM.L D0-D7/A2-A6,-(SP) ; Save context - 345 - 346 INIT_BHL - 96 000003CC' 45F9 00000000* + LEA.L pre_cosin,A2 - 97 000003D2' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 98 000003D8' 2A7A 009C + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 99 000003DC' 2C7A 0090 + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 100 000003E0' 3E3A 00AC + MOVE.W bh_out_w(PC),D7 - 101 000003E4' 5347 + SUBQ.W #1,D7 ; For DBF - 347 000003E6' bhlind_l030: - 348 BH_COMPUTE_CPU bhlind_tpir_030 ; -->D6=0:pixel in range - 30 000003E6' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 000003E8' D080 + ADD.L D0,D0 - 32 000003EA' 5280 + ADDQ.L #1,D0 - 33 000003EC' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 000003EE' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 000003F0' 243A 0090 + MOVE.L bh_ref(PC),D2 - 36 000003F4' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 000003F6' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 41 000003F8' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 000003FC' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 12 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 44 00000402' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 00000404' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 00000406' 223A 006A + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 0000040A' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 0000040E' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 00000412' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 00000414' 2800 + MOVE.L D0,D4 - 53 00000416' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 0000041A' 2A01 + MOVE.L D1,D5 - 55 0000041C' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 00000420' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 00000422' ECA4 + ASR.L D6,D4 - 58 00000424' D8BA 0060 + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 00000428' 6D 26 + BLT.S bhlind_tpir_030 ; xs < 0: not in range - 60 0000042A' B87A 0066 + CMP.W bh_in_w(PC),D4 - 61 0000042E' 6C 20 + BGE.S bhlind_tpir_030 ; xs >= bh_in_w: not in range - 62 00000430' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 00000432' 2800 + MOVE.L D0,D4 - 65 00000434' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 00000438' 2A01 + MOVE.L D1,D5 - 67 0000043A' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 0000043E' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 00000440' ECA4 + ASR.L D6,D4 - 70 00000442' D8BA 0046 + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 00000446' 6D 08 + BLT.S bhlind_tpir_030 ; ys < 0: not in range - 72 00000448' B87A 004A + CMP.W bh_in_h(PC),D4 - 73 0000044C' 6C 02 + BGE.S bhlind_tpir_030 ; ys >= bh_in_h: not in range - 74 0000044E' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 349 00000450' bhlind_tpir_030: - 350 00000450' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 351 00000452' 4A46 TST.W D6 - 352 00000454' 66 0A BNE.S bhlind_setpix_030 - 353 00000456' 2034 4C00 MOVE.L (A4,D4.L*4),D0 ; D4=bh_ys, D0=pre_loffset[bh_ys] - 354 0000045A' D08B ADD.L A3,D0 ; D0=pre_loffset[bh_ys] + bh_xs(A3) - 355 0000045C' 1030 0800 MOVE.B (A0,D0.L),D0 ; D0=in_ptr[pre_loffset[bh_ys] + bh_xs] - 356 00000460' bhlind_setpix_030: - 357 00000460' 12C0 MOVE.B D0,(A1)+ - 358 00000462' 528E ADD.L #1,A6 ; bh_xd++ - 359 00000464' 51CF FF80 DBF D7,bhlind_l030 - 360 - 361 00000468' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 362 0000046C' 4E75 RTS - 363 - 364 0000046E' .EVEN - 365 0000046E' bh_xd: - 366 0000046E' 0000 0000 DC.L 0 - 367 00000472' bh_yd: - 368 00000472' 0000 0000 DC.L 0 - 369 00000476' bh_rd2: - 370 00000476' 0000 0000 DC.L 0 - 371 0000047A' bh_xs: - 372 0000047A' 0000 0000 DC.L 0 - 373 0000047E' bh_ys: - 374 0000047E' 0000 0000 DC.L 0 - 375 00000482' bh_ref: - 376 00000482' 0000 0000 DC.L 0 - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 13 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 377 00000486' bh_xc: - 378 00000486' 0000 0000 DC.L 0 - 379 0000048A' bh_yc: - 380 0000048A' 0000 0000 DC.L 0 - 381 0000048E' bh_out_w: - 382 0000048E' 0000 DC.W 0 - 383 00000490' bh_out_h: - 384 00000490' 0000 DC.W 0 - 385 00000492' bh_in_w: - 386 00000492' 0000 DC.W 0 - 387 00000494' bh_in_h: - 388 00000494' 0000 DC.W 0 - 389 00000496' bh_out_x: - 390 00000496' 0000 DC.W 0 - 391 00000498' bh_out_y: - 392 00000498' 0000 DC.W 0 - 393 0000049A' last_xd: - 394 0000049A' 0000 DC.W 0 - 395 - 396 ; 68030/FPU routine for True Color 32bit - 397 ; BHL32_F68030(short use_sym, void* in, void* out) - 398 ; D0, A0 A1 - 399 0000049C' BHL32_F68030: - 400 0000049C' 48E7 FF3E MOVEM.L D0-D7/A2-A6,-(SP) ; Save context - 401 000004A0' F227 6800 FMOVE.X FP0,-(SP) - 402 - 403 INIT_BHL - 96 000004A4' 45F9 00000000* + LEA.L pre_cosin,A2 - 97 000004AA' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 98 000004B0' 2A7A FFC4 + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 99 000004B4' 2C7A FFB8 + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 100 000004B8' 3E3A FFD4 + MOVE.W bh_out_w(PC),D7 - 101 000004BC' 5347 + SUBQ.W #1,D7 ; For DBF - 404 000004BE' bhl32_lf030: - 405 BH_COMPUTE_FPU bhl32_tpir_f030 ; -->D6=0:pixel in range - 30 000004BE' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 000004C0' D080 + ADD.L D0,D0 - 32 000004C2' 5280 + ADDQ.L #1,D0 - 33 000004C4' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 000004C6' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 000004C8' 243A FFB8 + MOVE.L bh_ref(PC),D2 - 36 000004CC' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 000004CE' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 88 000004D0' F201 4000 + FMOVE.L D1,FP0 - 89 000004D4' F200 0004 + FSQRT FP0 - 90 000004D8' F201 6000 + FMOVE.L FP0,D1 - 41 000004DC' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 000004E0' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 44 000004E6' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 000004E8' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 000004EA' 223A FF86 + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 000004EE' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 000004F2' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 000004F6' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 000004F8' 2800 + MOVE.L D0,D4 - 53 000004FA' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 14 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 54 000004FE' 2A01 + MOVE.L D1,D5 - 55 00000500' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 00000504' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 00000506' ECA4 + ASR.L D6,D4 - 58 00000508' D8BA FF7C + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 0000050C' 6D 26 + BLT.S bhl32_tpir_f030 ; xs < 0: not in range - 60 0000050E' B87A FF82 + CMP.W bh_in_w(PC),D4 - 61 00000512' 6C 20 + BGE.S bhl32_tpir_f030 ; xs >= bh_in_w: not in range - 62 00000514' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 00000516' 2800 + MOVE.L D0,D4 - 65 00000518' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 0000051C' 2A01 + MOVE.L D1,D5 - 67 0000051E' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 00000522' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 00000524' ECA4 + ASR.L D6,D4 - 70 00000526' D8BA FF62 + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 0000052A' 6D 08 + BLT.S bhl32_tpir_f030 ; ys < 0: not in range - 72 0000052C' B87A FF66 + CMP.W bh_in_h(PC),D4 - 73 00000530' 6C 02 + BGE.S bhl32_tpir_f030 ; ys >= bh_in_h: not in range - 74 00000532' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 406 00000534' bhl32_tpir_f030: - 407 00000534' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 408 00000536' 4A46 TST.W D6 - 409 00000538' 66 0A BNE.S bhl32_setpix_f030 - 410 0000053A' 2034 4C00 MOVE.L (A4,D4.L*4),D0 ; D4=bh_ys, D0=pre_loffset[bh_ys] - 411 0000053E' D08B ADD.L A3,D0 ; D0=pre_loffset[bh_ys] + bh_xs(A3) - 412 00000540' 2030 0C00 MOVE.L (A0,D0.L*4),D0 ; D0=in_ptr[pre_loffset[bh_ys] + bh_xs] - 413 00000544' bhl32_setpix_f030: - 414 00000544' 22C0 MOVE.L D0,(A1)+ - 415 00000546' 528E ADD.L #1,A6 ; bh_xd++ - 416 00000548' 51CF FF74 DBF D7,bhl32_lf030 - 417 - 418 0000054C' F21F 4800 FMOVE.X (SP)+,FP0 - 419 00000550' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 420 00000554' 4E75 RTS - 421 - 422 ; 68030/FPU routine for True Color 16bit - 423 ; BHL16_F68030(short use_sym, void* in, void* out) - 424 ; D0, A0 A1 - 425 00000556' BHL16_F68030: - 426 00000556' 48E7 FF3E MOVEM.L D0-D7/A2-A6,-(SP) ; Save context - 427 0000055A' F227 6800 FMOVE.X FP0,-(SP) - 428 - 429 INIT_BHL - 96 0000055E' 45F9 00000000* + LEA.L pre_cosin,A2 - 97 00000564' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 98 0000056A' 2A7A FF0A + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 99 0000056E' 2C7A FEFE + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 100 00000572' 3E3A FF1A + MOVE.W bh_out_w(PC),D7 - 101 00000576' 5347 + SUBQ.W #1,D7 ; For DBF - 430 00000578' bhl16_lf030: - 431 BH_COMPUTE_FPU bhl16_tpir_f030 ; -->D6=0:pixel in range - 30 00000578' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 0000057A' D080 + ADD.L D0,D0 - 32 0000057C' 5280 + ADDQ.L #1,D0 - 33 0000057E' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 15 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 34 00000580' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 00000582' 243A FEFE + MOVE.L bh_ref(PC),D2 - 36 00000586' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 00000588' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 88 0000058A' F201 4000 + FMOVE.L D1,FP0 - 89 0000058E' F200 0004 + FSQRT FP0 - 90 00000592' F201 6000 + FMOVE.L FP0,D1 - 41 00000596' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 0000059A' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 44 000005A0' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 000005A2' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 000005A4' 223A FECC + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 000005A8' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 000005AC' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 000005B0' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 000005B2' 2800 + MOVE.L D0,D4 - 53 000005B4' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 000005B8' 2A01 + MOVE.L D1,D5 - 55 000005BA' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 000005BE' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 000005C0' ECA4 + ASR.L D6,D4 - 58 000005C2' D8BA FEC2 + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 000005C6' 6D 26 + BLT.S bhl16_tpir_f030 ; xs < 0: not in range - 60 000005C8' B87A FEC8 + CMP.W bh_in_w(PC),D4 - 61 000005CC' 6C 20 + BGE.S bhl16_tpir_f030 ; xs >= bh_in_w: not in range - 62 000005CE' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 000005D0' 2800 + MOVE.L D0,D4 - 65 000005D2' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 000005D6' 2A01 + MOVE.L D1,D5 - 67 000005D8' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 000005DC' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 000005DE' ECA4 + ASR.L D6,D4 - 70 000005E0' D8BA FEA8 + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 000005E4' 6D 08 + BLT.S bhl16_tpir_f030 ; ys < 0: not in range - 72 000005E6' B87A FEAC + CMP.W bh_in_h(PC),D4 - 73 000005EA' 6C 02 + BGE.S bhl16_tpir_f030 ; ys >= bh_in_h: not in range - 74 000005EC' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 432 000005EE' bhl16_tpir_f030: - 433 000005EE' 70FF MOVEQ.L #-1,D0 ; Assume out of range - 434 000005F0' 4A46 TST.W D6 - 435 000005F2' 66 0A BNE.S bhl16_setpix_f030 - 436 000005F4' 2034 4C00 MOVE.L (A4,D4.L*4),D0 ; D4=bh_ys, D0=pre_loffset[bh_ys] - 437 000005F8' D08B ADD.L A3,D0 ; D0=pre_loffset[bh_ys] + bh_xs(A3) - 438 000005FA' 3030 0A00 MOVE.W (A0,D0.L*2),D0 ; D0=in_ptr[pre_loffset[bh_ys] + bh_xs] - 439 000005FE' bhl16_setpix_f030: - 440 000005FE' 32C0 MOVE.W D0,(A1)+ - 441 00000600' 528E ADD.L #1,A6 ; bh_xd++ - 442 00000602' 51CF FF74 DBF D7,bhl16_lf030 - 443 - 444 00000606' F21F 4800 FMOVE.X (SP)+,FP0 - 445 0000060A' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 446 0000060E' 4E75 RTS - 447 - 448 ; 68030/FPU routine for bitplances images, converted to indexes - 449 ; BHLInd_F68030(short use_sym, void* in, void* out) - 450 ; D0, A0 A1 - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 16 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 451 00000610' BHLInd_F68030: - 452 00000610' 48E7 FF3E MOVEM.L D0-D7/A2-A6,-(SP) ; Save context - 453 00000614' F227 6800 FMOVE.X FP0,-(SP) - 454 - 455 INIT_BHL - 96 00000618' 45F9 00000000* + LEA.L pre_cosin,A2 - 97 0000061E' 2879 00000000* + MOVE.L pre_loffset,A4 ; A4-->preoffset - 98 00000624' 2A7A FE50 + MOVE.L bh_rd2(PC),A5 ; A5=bh_rd2 - 99 00000628' 2C7A FE44 + MOVE.L bh_xd(PC),A6 ; A6=bh_xd - 100 0000062C' 3E3A FE60 + MOVE.W bh_out_w(PC),D7 - 101 00000630' 5347 + SUBQ.W #1,D7 ; For DBF - 456 00000632' bhlInd_lf030: - 457 BH_COMPUTE_FPU bhlInd_tpir_f030 ; -->D6=0:pixel in range - 30 00000632' 200E + MOVE.L A6,D0 ; Remember A6=bh_xd - 31 00000634' D080 + ADD.L D0,D0 - 32 00000636' 5280 + ADDQ.L #1,D0 - 33 00000638' 220D + MOVE.L A5,D1 ; Remember A5=bh_rd2 - 34 0000063A' D280 + ADD.L D0,D1 ; bh_rd2(D1)=1+2*bh_xd(D0) - 35 0000063C' 243A FE44 + MOVE.L bh_ref(PC),D2 - 36 00000640' 2A41 + MOVE.L D1,A5 ; Save bh_rd2, free D1 - 37 00000642' 5281 + ADDQ.L #1,D1 ; We need bh_rd2+1 for divide - 88 00000644' F201 4000 + FMOVE.L D1,FP0 - 89 00000648' F200 0004 + FSQRT FP0 - 90 0000064C' F201 6000 + FMOVE.L FP0,D1 - 41 00000650' 4C41 2002 + DIVU.L D1,D2 ; alpha(D2)=bh_ref/(1+bh_rd2) - 42 00000654' 0282 0000 3FFF + ANDI.L #ITRIGO_ANGLE_MAX,D2 ; alpha &= ITRIGO_ANGLE_MAX - 44 0000065A' E78A + LSL.L #3,D2 ; D2=offset for pre_cosin array - 45 0000065C' 200E + MOVE.L A6,D0 ; D0=bh_xd - 46 0000065E' 223A FE12 + MOVE.L bh_yd(PC),D1 ; D1=bh_yd - 47 00000662' 2632 2804 + MOVE.L 4(A2,D2.L),D3 ; A2->pre_cosin, D3.L=SIN(alpha) - 48 00000666' 2432 2800 + MOVE.L (A2,D2.L),D2 ; A2->pre_cosin, D2.L=COS(alpha) - 50 0000066A' 7C10 + MOVEQ.L #16,D6 ; Prepare shifts/assume not in range - 52 0000066C' 2800 + MOVE.L D0,D4 - 53 0000066E' 4C02 4800 + MULS.L D2,D4 ; D4=bh_xd * pre_cos[alpha] - 54 00000672' 2A01 + MOVE.L D1,D5 - 55 00000674' 4C03 5800 + MULS.L D3,D5 ; D5=bh_yd * pre_sin[alpha] - 56 00000678' 9885 + SUB.L D5,D4 ; D4=bh_xd * pre_cos[alpha] - bh_yd * pre_sin[alpha] - 57 0000067A' ECA4 + ASR.L D6,D4 - 58 0000067C' D8BA FE08 + ADD.L bh_xc(PC),D4 ; D6=16, assume pixel not in range - 59 00000680' 6D 26 + BLT.S bhlInd_tpir_f030 ; xs < 0: not in range - 60 00000682' B87A FE0E + CMP.W bh_in_w(PC),D4 - 61 00000686' 6C 20 + BGE.S bhlInd_tpir_f030 ; xs >= bh_in_w: not in range - 62 00000688' 2644 + MOVE.L D4,A3 ; A3=bh_xs= (D4 >> 16) - 64 0000068A' 2800 + MOVE.L D0,D4 - 65 0000068C' 4C03 4800 + MULS.L D3,D4 ; D4=bh_xd * pre_sin[alpha] - 66 00000690' 2A01 + MOVE.L D1,D5 - 67 00000692' 4C02 5800 + MULS.L D2,D5 ; D5=bh_yd * pre_cos[alpha] - 68 00000696' D885 + ADD.L D5,D4 ; D4=bh_xd * pre_sin[alpha] + bh_yd * pre_cos[alpha] - 69 00000698' ECA4 + ASR.L D6,D4 - 70 0000069A' D8BA FDEE + ADD.L bh_yc(PC),D4 ; D4.L=bh_ys - 71 0000069E' 6D 08 + BLT.S bhlInd_tpir_f030 ; ys < 0: not in range - 72 000006A0' B87A FDF2 + CMP.W bh_in_h(PC),D4 - 73 000006A4' 6C 02 + BGE.S bhlInd_tpir_f030 ; ys >= bh_in_h: not in range - 74 000006A6' 7C00 + MOVEQ.L #0,D6 ; pixel in range - 458 000006A8' bhlInd_tpir_f030: - 459 000006A8' 70FF MOVEQ.L #-1,D0 ; Assume out of range - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 17 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - 460 000006AA' 4A46 TST.W D6 - 461 000006AC' 66 0A BNE.S bhlInd_setpix_f030 - 462 000006AE' 2034 4C00 MOVE.L (A4,D4.L*4),D0 ; D4=bh_ys, D0=pre_loffset[bh_ys] - 463 000006B2' D08B ADD.L A3,D0 ; D0=pre_loffset[bh_ys] + bh_xs - 464 000006B4' 1030 0800 MOVE.B (A0,D0.L),D0 ; D0=in_ptr[pre_loffset[bh_ys] + bh_xs] - 465 000006B8' bhlInd_setpix_f030: - 466 000006B8' 12C0 MOVE.B D0,(A1)+ - 467 000006BA' 528E ADD.L #1,A6 ; bh_xd++ - 468 000006BC' 51CF FF74 DBF D7,bhlInd_lf030 - 469 - 470 000006C0' F21F 4800 FMOVE.X (SP)+,FP0 - 471 000006C4' 4CDF 7CFF MOVEM.L (SP)+,D0-D7/A2-A6 ; Restore context - 472 000006C8' 4E75 RTS - 473 - 474 ; Pre-calculation of cosinus/sinus table using FPU - 475 ; void lcosin_fpu(long i, long* pcs) - 476 ; D0 A0 - 477 ; double angle = i*ANGLE_ADD ; - 478 ; pcs[0] = 65536.0 * cos( angle ) ; - 479 ; pcs[1] = 65536.0 * sin( angle ) ; - 480 000006CA' lcosin_fpu: - 481 000006CA' F227 E007 FMOVEM.X FP0-FP2,-(SP) - 482 - 483 000006CE' F200 5000 FMOVE D0,FP0 - 484 ; 3.8349519697141030742952189737299e-4=M_PI/2.0/(double)QUARTER - 485 ; For some reason, I did not manage to use EQU with floating point constants - 486 000006D2' F23C 4823 3FF3 0000 - 000006DA' C90F DAA2 2168 C234 FMUL.X #3.8349519697141030742952189737299e-4,FP0 - 487 000006E2' F200 0131 FSINCOS.X FP0,FP1:FP2 - 488 000006E6' F23C 48A3 400F 0000 - 000006EE' 8000 0000 0000 0000 FMUL.X #65536.0,FP1 - 489 000006F6' F23C 4923 400F 0000 - 000006FE' 8000 0000 0000 0000 FMUL.X #65536.0,FP2 - 490 00000706' F218 6080 FMOVE.L FP1,(A0)+ - 491 0000070A' F210 6100 FMOVE.L FP2,(A0) - 492 - 493 0000070E' F21F D0E0 FMOVEM.X (SP)+,FP0-FP2 - 494 00000712' 4E75 RTS - PASM 68040 Macro Assembler Version Dec 18 1992 (C) 91 Pure Software Page 18 -Source File: H:\PURE_C\PROJECTS\VISION\LDV\SRC\BHOLE\BHOLE.S - - - -Symbols: -======== - -Name Value Scope Relocation base - -BHL16_68030 000001E4 Global TEXT -BHL16_68030_sym 0000029A File TEXT -BHL16_F68030 00000556 Global TEXT -BHL32_68030 00000000 Global TEXT -BHL32_68030_sym 000000B6 File TEXT -BHL32_F68030 0000049C Global TEXT -BHLInd_68030 000003C8 Global TEXT -BHLInd_F68030 00000610 Global TEXT -ITRIGO_ANGLE_MAX 00003FFF File EQUATE -ITRIGO_ARRAY_SIZE 00004000 File EQUATE -QUARTER 00001000 File EQUATE -bh_in_h 00000494 Global TEXT -bh_in_w 00000492 Global TEXT -bh_out_h 00000490 Global TEXT -bh_out_w 0000048E Global TEXT -bh_out_x 00000496 Global TEXT -bh_out_y 00000498 Global TEXT -bh_rd2 00000476 Global TEXT -bh_ref 00000482 Global TEXT -bh_xc 00000486 Global TEXT -bh_xd 0000046E Global TEXT -bh_xs 0000047A Global TEXT -bh_yc 0000048A Global TEXT -bh_yd 00000472 Global TEXT -bh_ys 0000047E Global TEXT -bhl16_l030 00000212 File TEXT -bhl16_l030_sym 000002BC File TEXT -bhl16_lf030 00000578 File TEXT -bhl16_setpix_030 0000028C File TEXT -bhl16_setpix_030_sym 00000336 File TEXT -bhl16_setpix_f030 000005FE File TEXT -bhl16_tpir_030 0000027C File TEXT -bhl16_tpir_030_sym 00000326 File TEXT -bhl16_tpir_f030 000005EE File TEXT -bhl32_l030 0000002E File TEXT -bhl32_l030_sym 000000D8 File TEXT -bhl32_lf030 000004BE File TEXT -bhl32_setpix_030 000000A8 File TEXT -bhl32_setpix_030_sym 00000152 File TEXT -bhl32_setpix_f030 00000544 File TEXT -bhl32_tpir_030 00000098 File TEXT -bhl32_tpir_030_sym 00000142 File TEXT -bhl32_tpir_f030 00000534 File TEXT -bhlInd_lf030 00000632 File TEXT -bhlInd_setpix_f030 000006B8 File TEXT -bhlInd_tpir_f030 000006A8 File TEXT -bhlind_l030 000003E6 File TEXT -bhlind_setpix_030 00000460 File TEXT -bhlind_tpir_030 00000450 File TEXT -deduc16_030 00000354 File TEXT -deduc32_030 00000170 File TEXT -dnotinimg16_030 000003B2 File TEXT -dnotinimg32_030 000001CE File TEXT -last_xd 0000049A File TEXT -lcosin_fpu 000006CA Global TEXT -plotdest16_030 000003A8 File TEXT -plotdest32_030 000001C4 File TEXT -pre_cosin ******** External -pre_loffset ******** External diff --git a/tools/vision/LDV/SRC/gamma/GAMMA.LDV b/tools/vision/LDV/SRC/gamma/GAMMA.LDV deleted file mode 100644 index 3a20601526f091549b0e227598f9309a6d1d2a6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9276 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 diff --git a/tools/vision/LDV/SRC/light/LIGHT.LDV b/tools/vision/LDV/SRC/light/LIGHT.LDV deleted file mode 100644 index 8b35128147e2b23faee0b6d3ec8b8c09427b833b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2816 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 diff --git a/tools/vision/LDV/SRC/rotate/ROTATE.LDV b/tools/vision/LDV/SRC/rotate/ROTATE.LDV deleted file mode 100644 index 6b268c47c87060cc1e08a6facc02e4775eca19fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1952 zcmc&#O>7%Q6n?ww*c*E>YhzN!gl4+7EJq|+2S-tgOtW66sci+@*dfg!qU$#H)+Dkm z#{r5^+6L8h`~$aF0EMAnDgKXNRIBj3A^?u9C=1BoiOX z&Je_GzPem2mk1dd4iXZG4vdcvoemPUTwThQ7D&8Q%U4Ue8k*#m2m$cNh^@f;%V4T7 z8mlVapD6i7Rx34sesQ z(4-cU5{Ua2VNm)p;VHC?dRP5S=4IPN7ywHm8A;s-A#xY$PH`g)R~PM>)oMEv5#5C* zWyiw6#I8lRMMia~pKD`+15Ujms*c0}FghPA0+Weq1X-!zabnzToXY3#v>#+6i}sFQ zb!0z$^-lW-V~n}O#V}jYe5vHO0POW3M-tMsA-_HW0M^*|GAEV6jqzFJT(Qf* zN>`{4QiMN~Yjhnd;P3bKAL}c)@2kSeVEF6X^XER~Z`<%EKK3SqDDRaVv~SQ@G>(z| zIGtD5N2-GTCIl+Hq!5R+s$y=IaO4-w1zb}Nwd%NFmT;)mZex2U)sX6#r#1FYdka^@ zpG?lDd>1G~=VZx{0T|R@loZje4?27Gzy=iTzL?9S+p%}=8%Ezr^cGs$@7Vhl_xi364&SBLIuL6{rH9g>Gk{-A4PN^WW)aY+optoNnD8Z88Pt zhzJ|pMNi`zGOoRz(5MHXQOEBC?T-Yjvy=5e{}^3io1f;X5SwmCIg4|MCnNJI?ViC; z9>HUF$|G!2JnHPXb>=XfkI~`bB?IF}pkpv*VDt!3y@FftzoPww0EXpEU1kg4y*JQm z6P~g^EjpafxSs7f;qLW3*Z2I%esW6kb`1Va|Ag`XYjc^CtaV2Pis-6HGMz0^<#z}NuSHt zFuiE5lDk-3D%OhmWuTo)#oBwzWMPHS+|$*3W~Bu2Qn5xUDo>S5m*|sqz~s$h{w-=c zG+SIgv{*;RO-)T@&(7eEQ7v0F_w<-=@&YdicC$U$HySkeh&=hi%`iU2ESxm$LomTV D&BzUg5*M1>5dw+l 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 diff --git a/tools/vision/LDV/puzzle.ldv b/tools/vision/LDV/puzzle.ldv deleted file mode 100644 index 4f3c35b8a99977fd385592b15da469b916f82e19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3676 zcmc&1ZA@F&_4xVa@h}g^IE)a+!p+0-NCNTWBalWOd47C7Tx!6u5LKP>NU&dk0G2UX zGoj3eE_J(2B2hF=`w?mTvo?yFluc0+p$bStlWeM7g0^Wtk}7JKRNWF*RS`ujZ|6Qk z$f{^nrAa%|z4zSnb?-grymM@=06_2qSY8L%eE`-W13=RNvhM;&tJGQq()RseLs=d1 zA`lWDiV|O^FW6kx(Mb^YhoZy1LxY5r?~({9soTD1PuX)4QHG*Ny9awn^I$9#9qf*w zNcT}f0Ng6c3iIwEU?UcdQRL!3;E4;B(>VWy^n>u>XON4dFtuWV;_FDgO|nwSX)mno zk|(ABJWxz!|LQ+ZHFSWtC>55egeaFZyZWJ2yy-6pubA^A<<}nGleNzafWsf~wLS#F z_Zh^Uj!7?^=(h)xQ6uPcEB{ZWv1)zJ7a}ujF*R)_%j7Gj+H$O~u=S=4uUG2H+f$mH5RLif`Du z56E*Ej~1OJa$v&5+tN7Y^Z9t|mVnP=Yxol1ON5|d=)B}Kb`HB(>#2zCiwU>kT)GYSmk zszbokp)PseJfY`6tF#$C_PQHws`rYBm#K#LXUw~Z#JPU1WL2kAajL^DyOM<0UsUQf zR(da3f2n?O32}w;vfO(?z4p_qYD0RbPA9Iaa>WL9WU z-3uIWIP<_qfOU9Bjl$4FHdHI}T3m!wCEX81j77D$)B8GZK>+33}3W0#8z9YF$~i zTZQy9a)(l*pmpV|)?>y3wXUFb<-b{1nrdIw04~)u;Y%`7jUDv1oKm;Ps)fwU-bL>zqgCNb6E5NFXG!_{a zvFc=>P=f)*b&%?AbW8b|fkCyMenEEF-3~$>V%ev~%wiS4I?QHV1>b#m5m$$63VN_c zk3tr3k>P+s4oa6%PoQ}m4aGnMBWc#ilhnH1PHvD3z?NfPMF(77tN@m7Fv7(v0FGKb z9&D3cs9sT@bz72lt=T(B-Hl`C;{SN4_46*KFnT2o@2er4*9j6Y%xat8u0 zwbFC(yQ6vwWIL4V6{76O*GrvS^pZ&k+g)mIfo{j$gWp^9FZ^4=E854n`v@!T_ri;$ znd+aqt}X4edRQf1x6GVJ?KVd_K>wo%L;n07H8A0q!yiR}$XHLXKBBzj2J9#2+s1?Ab6$9S3G4gDr4S)j^x`DeG=N`is{_`I z*t_JEn8Y~oTC53upFQjDz`iCCj5q<5A4B;*w~Rdn>kf%;8wDs@0`|KYW%p$&Z}z=e z+Ty%X+M!o=*Np<=IQw4*kPMnCY!>aYXE0UWKs&Op8NLnp&cSW{|2y=@erpA$QvW^ z?dUfxBFZBA=@#|0e1rLw23f0%8fu;a=m!B#DdaDmNa+*st-# z333!z;f-`;Le4|^?lT@??PZuReEW3Eok9qVv`uS|;^7_&sH9F-5{jm`kaX}wbAOGE$sQ43zC0rI&@hjmf7nrLfKBLNttjexTDi;``xT?fwBw1o8 zPvX~k#HY&ieu^C1n2O&@oKE&I^T`hpYrkoH(fGuM$Lg`s8sI$X&J?Fw>YHAuYy-CP z2>$Zpi;rNxu;I*u9Vr6jA#R8K%25WO5OF7*Ro;Z(&`y(mlXgB%bg9Iq+f6)-HFaE( zH6~)X4!W`aKAo=FZq#`Wz(Rk|<3Eq=b^zuat}o#D0pj?NBYOY`YO!})>i2^M5v*pN zI9{QaEWb4EodAnJ)ICUAMutPNSntzkJR7&5A?tYtpI|-DqDAX@o~N_JLFfE@Iuk2Y8|w`X1Kk|%jg1YHo)JP{&=w5^M+TvJus23Y6mJ|F zJWT%xJtcCiH}pd)TDHG;n7Ryqyn=mex?gWZujOd#G`gpKoYKA)EUk@=9SxlrV=Br- zxx75?EneUS!ESdtxV?pfP-qYGd@1h`Y<=7T?ila3)pMN9#o26mg59>u$rZA>4xU_T dbVyuK^ycrdSmyZZlQJi4W!FJqx%*Fc@Nc9<5*7de diff --git a/tools/vision/VISION.PRG b/tools/vision/VISION.PRG deleted file mode 100644 index 9a91cb102cacd99bef16ea02f7e8a7ff33fe679c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512554 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

-NroyD|8Cfq)wwtj7 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≶W<#C(Pr380&qC28_ zH#02Kr0lS~v?j#kyA0_tOx%zi78xj^y|ZqxGGpTnT^=}Xl9)=?-8e6snE~E-WjwyH zzZ7{$biDSUbmAXzba48#vINqTy1G<;oa;bw6ZYF#wH1b$ut)UWN=lc?mA|z` zJpSNx=529yww8DOVxIHn$;>RSTfC0CNtid^x+3YtS&73JQeJVV5Ds5N3;8lyb^X5g zUZyotZEDYa{T5Hfx{BpdvHC5Z^#^9&hw<=kqxybEl4i#5Zx9?&;IU$YR(%p9;t=*sT*}F)Xe+?uR&yHf^}}ZFWo@YDZFL;>q3nTvC>o zC?IvQYZaK-t#6rps@b6gCU)yua1I^7b=_P}P}Ynfk>bB>H?rnsE#lHc`ee%5OH8nF zLA!B2zN~wJ6}Md=?Z)FhQpFAr)Z^CrL@Nx!?mL26-d0?|NrE^qT{tI|+j{2ZfoE(7 z{;r#!KWyhKVhGk7gHKR1@O7EuZxOhd6 z2Qnv!%gOFPoj#TQB4J&Q#nn-H{48*FDn4Ni~VA^i&DFmfdOEq2zh-$%hR( zZ4&?1j9VAdOa2}X8dS5?J$w8yM(})57j@4b zp9-$(5~O&y&oKw$NV8$Py}8(~)Tl=y05EZc%%s|l$Av^QN1pI5(#$Mqi4cZ>Zu=T=4D4Z4Nd&h#`f_tQ`V*d1@{ zy`#eq=HQZK!uswY$jnc~d-|mNjv#rmXVw02uoH^HXX3bml*6@_$EU=@(>Elx$1Bo( zE}3r|)m75tk&a2}cz$yU6?RqKeq8<2#F_aAz{;M3Jh$VWe;N#(LEty<=wHy8j;-ep(z!c^gXaq#_=`KPHElUMx2vb=oU@ZV zCg*i?l5S*m8Ds8v5r&Fdw}igJB1Bgxdw<<~dA!PWp#vKqHRp4IYyRocAx=|OVSM?$ zQBT^j6L9BgdPIF^dk#1aoD}uq#L?`=P}<-d<-9Cd%@t~RN>VtZEMuZ>;&zw1cwJc(&XxaJ1haou$WxZdk) zbH4l);H0&*)4Or^cTLPclv&vB)uFUAqpeH1YkG7Lb{@al@9@NV@rHisL|I&X^pM25 zc=*xj#GZKK(S4GWTEugYCI?|J&PfU_1WE0rp(*09?8&_HN=`d}Oq4*P`=xmEFOPd2 zlkR&>WUXAbGBQqYA~#S&HCR2g$H&K$j~SA=J37=II|lA`{=LzmMCPn}ZL8bcNsNIp zA3{%R(H7@3X##k@;A+qwp9Y>1Tn*aeZ-Ez>L$Y@{p0O52p;T}}aUIlyHxWD(%6*`E z%p3aPDLmGoxEi!OIh_9({-{{?ZSCO4tB*Y{d3SMK+&?|KXG7`~Slr!%IcVjYhbeoD z8)T<(5GM? z9}ga-tV7WVBxm6GRs`b)ff5Wk8LOYC9!++6mk#*Ud%Nzl2yP1Z4v137sL^i7Ge$&S*uf&)J1+9VR&(>^r$k=Z z!6Mu{GisM>5$-L=2{bH127&m7YPeF#u?Sp0`o#$rVR9*6M#~3_Fu8x!&fzZK*2S4T zoEhulxO^Kt!|F`FmKiHU1E?F&TpKW41B22hU=W5$YW{Pg%(X536V*7)i1NlaMrj0RB8 zn8A#dp#jw63z@OvUBsb#d;>F9ysO|Y=ULE&PFqOE;Qh`aD7;y41hLcJIW7?vy8lR!C}|HCG==o# z&#)z>y!s(u{t8<%DVO-_hkS*JFbbrCnt-3y@!S&VWqpv)FZj7R*x@eXX#R5lblNGD z38)|P?U#W!k@lS*@*}b*UPUaW55vB~9+0L|K~2Dwf56@%>7~D#fGht%FYsnkK1d-S z7;0OVt9D(N&e8Af*^_x-OuYBRbmG*w*GZ%L4o`7FBbx<1RdTzv1s8zZ2^{)6?Q`i(yO=!-U5#V*QIxNcMq%u z&llV+y(?c2o)X;c9u%L#od_#w+jmRv@Sfm>rky=Y*QIwIOc@M==TpFS={mH%1+igPm!R0Y5mE^2LI8 z7Y|_{I^*-;oOt{xqdKhM0=z^X(>W~gA5X-4P8pJ!#Y(VwfdaqqpbddZBD2p=I_pu# zLkNx#*aKXZ!=?EP>_f=;qPVIYEX^HUgd%^m+&8g|kIPl1H=Ub=ODHDE7-S%_AcO1uP#~RMv6-8XdBUpK|+#1e3zSndh zO|@!Z&4;YeF{ZYsf<7Um_T%w>R8W_u*}2=sEcnSBL@ACW-9avn$xySP; zZ@cyTVZqsmznf15IjMD~={p`qoY50HHsa5_*g=luPBNokTE3^o(OK!l zoVXv~E8;PHZ;hv()#sOgiwKfxu1Cm{IbHc%S9`!ElISJ4cU+suiP~~S<&WT8CiZSk zTs$nz<4yzk9ube_dt5w?Z?1s&o*D1uyFBi7b~;fLk373i@^S85`J*&0njJlE=51y{oZt?OB*OobwjiwGLK&ypK(t5w8`uVTZ@hk6|U2{$6q9PwMJkG zbDFDVE1Aa^(OPRZvOXrbv%<%#;zj55NiH<;o^#TPy>a(*(~0)+@N?6B`^lxTy-e1m z$4O#g0Xb|Tp2#=kE@>7P#dFW?lUdj**@pW-yFm$(wa8&_^KUJJ+=Ww^L_l%yYj*g)!;PJtxo5MAU z@c6~4&JI@<@c4McBe*h9RRNDbmMj6c1636e936OSZq&*#R0Vv6RjGCk*8t%0ZK;k9 zR~2yh-wRWn9j-})$Ge+u4%Z~Y;{$oOGoyE$8YMhqWU_=CWIIxg5+1)XYUOZuH>A4v z_o=CN4%aB*%g;%5bhxI%9$%5_?C?(5Ad2Z3TTM5|&?LgUF&-T(Y?`!I*hR{_=&|s8 z)0G>JCJB37D>qPji@9)=X-2fMel3XB3$Kk@sQ0E%`!H6UDE?+d=gdupL|XRI&JBu9 znCTI@zn%a%H|X%L;F=~nH|X#I;PzqH1~=&N5#ZL1cpLE3n#9#l>xg%gy&LooO#X;q zt+8TIGGB+k#sjl7V{vtZ9xnke7F=z><5sRM1rOZd^l{)Rwv4(R%rv;c=~JT4oVMAt zFK~m?XHuc5R0tC3>E)DfD&+$=IK77QEu?(l2A?*RZz1KgZqSS|=4rdFYAY22H~4ga zDzudfJ_!<;K0RDSYDFEm!Kbf{@(S5J*nCDL=bpoUdUCw&x9QBirZpC5)9fJLJ^dm` zoe_=Sdcz@y?guiz4ZBj=_%U8IDfb`!&xlwDYFV^t1bE z@$x=yOFFUeDRTt-Z0r4lc=yaO8sgD&aOdpwcJ`UErZ>1X5M5}mVK0%iwi3g!&W<;; zyyeV_yN?`_cq1M=GM)G!o;EVw;bUwpj~$hlsGHL>lj0hCDBbsLY89C-^rdGXE&{#xN0TVYlO2Wg z_bSV0+r;CkHIZ7y!u1+F&}!bZM@D(vu30g84OaY&c*8}bIy{Q{HIr?YzY|pM74h&< z_DRZ#qj>C{2baj6_kBI^*@;BNywu^e93)-O+EgQoj@VaL&z4C9?F}9zUC*uqPbKXc zP@sg*+DxOs^v)`wi?}mdz$i4fAr-5~ZK}~EX^*J`C7dx7yojd~y%Ki9cKOU0!wFDR z?9wZtZ)XBZTWoB37jZpf8jNOa-}dn~Gu|?#h0SCJfw!5lmhvSW9PP7hpHUCqoCgs1 zIedB!q_9PB_{5PP%m3cnSamB-th_e6XDr`a8J{sao%k#sKl+BgJ)A>anmYp)WsI zRL?qMJ>U1`S0(K&q)qe#hx^<%X{FT4QuWna+V@MmQpXB>_aj#1+ z>iB%2Ov-LVRA=0z-ftDpxHO&VZYL#fGf;%*2hypg_v(#YpYQkJN=u)D^4>_i+WUvG zc~V@3;Jo1TBcryQW82g&h&s>T$jvy(v_0chMR14a@AqXedU&8x@c2*&BG4X)Q(wQ4m^ea-LD7wr_t#?rep zo!C9BR)I`F-I+U!etre+T@#4FM4#uy9`OB4^o1yClju_aCasOjUF|?$=o;^3a1X`3 zewWTXiB>1&^;qr9IqDY%fNSvaoeh+_yx3#%lXlOeYwIWTHrv%E5*u_6=6v@1WmuTv zfjf9%9D`1!y6-=@De<=7*;hSFFCR5}W`iOH_fqdyL>w?mMiy-NUMRBLuY@fG&rm;qO$Gd1##PxeB=SU7{*X zC%h4#7q8{*z&vpxPGRg(JNRVE>&a(0=obmE{8&T7pndy`=r?6D_FZWmwP#e(kiPD( za`pIL0&EjboV`zX_&?fHzG=$hYRVq($2t^Cc{OF{7(O@xmrx?tKA3Xc;>vD`6XSkY zraSxw+@2a|J?kNMVjuiI9)D#zF)W^We0 z@aBV?B5RXY1TH+vzs)~paG|6}S1y$R=kt$+a?xZrw$2tgxWZ=A_!_NTMqX8AAZ|915+}I(R2a_#$q}Mw3z@>c}E2% z*LZm-480l(j-+26LqpA^A$R7e>BY+vz)J)V9yEM;8hCTTgCoZe-avAVfB#0pecb=* z19^3K_|-P;op^ORLr%ee))jkiDjDa?^_-`mI+olC{I@H?t@22k7*)@gh5c9HIV0(3#ELZfwM-^ zg5F988aV4l$`?raMheLJ$E>L^bVPv$&YEL|zrO~~T0waos86zGX=ZJuyuS1kXyEK9 zIuui}$&EYoR*BB;%9&h7&#VFsoIQXJB5^^12F@Nq6Ojxk(7@T_D4!=YQw?-WGkXf< z_1&A`PGt5>$|t3KmmZCkYj!ym>`!ud?^&AcYNz(W%6Rx6Z|M7_yj@{^t9r)vI*-?^ zf?03OQLeP+@gDKsKc+|Xs~Ow}+N3#9SboMON)@Ge!!nEuNn|mYVgS}{fvnUy#^XEaCA9;*{e=~-_W4*G-q>9)E(`KMAuT&v{ z<}wD=7e9u*NPwRXpnRY&bJ`;TEwAe0#<0lHV++R6YTUrgq9lUg51?Sp=k&9CGCYzo zT^cX>oM8x}r3|90;BF9e#v+K8G6=l~b2>F=5`xh3dJpCY!BI$It0-PQZct`X3PH4z zF$C&0X9j|3En_%T`f|zEqC$dyTlw9So(`87v&jAcgkEZBpmuwQMQzwRIeZb@sYU!2 z(V{*W81GlKoWR8>r)$=Ennh`77<9HU4NS|k>5y4;4s;1L9uv`ume+!ZP0XUn&~wo9 zK|T9pL}t+o(3{Yjed_V^UW=-s|KL&<{a2X2LmQOLB7S0Nac8KDHrhr9WAkFOxGQuV zbo~AuEjR$kUuFqE^|Rzo=&pb#vtKd^9KBfbRwiJkrQ+K# z%AsWePb)45{|Mp$tkDd0pr3$mfc6N_YPVHVepd|aKhTfHEVZwuWED8y@byQ0nhH~&C&r7Qd=5IO_p#eQd@dHWH)r#rO-Bi1CAmtMG-TNnD+k0 zEJYEQ-UNlFCd#(-X7Kx=2ZC9M`7WIT{x|6HfTwLf0gf^*eKX)$eae`nZ^3vEdOu)l z#Sg$&LKOi|XIKfo4*E3UX}$H}-$MTmc%r~dzcYr_HRU$krZVD%>^e!sax}aAAn4$r zqRn$mc{hmVDDNHcv>rd4SKbdgI^fxi(3BqoodgXGcv>$r2nK6aewr}7IoS-`l>ZVs z3mO*iY;I!8xyCPNeapl3)ec$T@{6I-K|O7gbuS+a{Xuydr==p&@~dH758V({v}Y}* z{6^?D==Ol8^(KPf1Kk_&bTGK*a()o6d}_ec!92|Rm(PMZJ79|amXmap|Eh_ySK03m}M-{vJ0S5K|SSN3ZA))uiphsn+}*|mqXV;_6IMr_A5)V?2q7>;<8%; zo@9c{n9#D@p)iivyAQLBII`?9=x^D28D=l8blKxDo`+t@GT~{XFM`j5$^xF&n-9JU zTAhQp27Dt_74YoQnpwv3E!)QWFZ(87iYr~V9VYg>Ozk(Yie=dEvc1s%f_h>V%W$#F z^CA0IQdVlBY|9J4iy@nSH}Ep}XGXKU1ZoAfZp>r_Ew2sK0kUriHdJ)=4g@~}>J{+h zNMkvf&hno_C+6Vc50?K5%A6H2#Xm16QCN-*FaK@86Nj-JWm=BTEDv=?%y2n6vm7_P z{OzFLVQe1F@@ixL#Y5o#;xeVtBo511=D#k4?u1?mnZm=xu0RSa>_Z#b*-N7<&IKO< zT@H^=OZz3y^nl@HR-mXWCgk9uh%4@bCfV0jvW<%7ueck=z0l;KL*?BE&J0&P81Q)R z5$qx85$Mr?Crh{jtzYqXXnMdyFEE!CPeW+8P z)JnYJN_1o8CBpNPu?J~pT_GZMiNp`&QU1(v@rudna?;-z{i=f2;Qxt0D67c1aO+M^0O|aki1pNBS zHPA=U$2sbK0{$7aF-N`4;5(sRu3m;lakG-ot=w%)1tYEq*IqK@3f8`&6_mq4Rp6j1 za8MOF98?ARQh{DngnA(gT!CI>Do~7y9EwqaUR3mjeirOx#9LMz1x{8|acsa7sa5m` zCo!!Uxc}@c27{CARGiVkv-+%!< zaW)lBN!#dP@;PoX6*HiJKy##CvbE)9>;}Oy-+vnj z3HA6msp(Rz14j`nHss)a4!+5*f30-rMI+i>@fFN(pq)8*--7=a`XS({UJ#ZmS(3`+ z{=7R|PvGO#?=7?FIc6d5C z3SN2kKK*5^xXyuo4V@>W7Qn^+1vuZ+6uZK(`b1RG&pciv6S%y`Jbd?opb{1L@k*@j<`aTEmKgO(PmaDt& z&s%*E_z-BQ^8Ef!8eNU{t|lv89VVq>6|2$S)#pLy2aSqHTs;E(GAK++MWU-O2mb?f zbr37G-ZiZMYGVHCTLPv;!_|mv^^?%Npu^7GYM9lZLd7QgCLu=BgaLYry{ug*$4kcN2Jq z0jvqP)XKaI{9Z_pTEf8)WY#(c>(+l=$~0>+x?%2d(E3L zK7w`!jfzM=Y-!AgY3R%xysN;O<%fR`crus|ZvbbOABJ95dAEb##rl7EZ;px&z+{#m z?wiX;U{65I^229y)MJJp;-o$dH!|Ac>)=fC!$6zNeVBvy z3HWEw#vHuO;9o*t=iu!C-wkEH%fb8s#!tqq&D)>1wg9{-)I0~THTVJ0fjM|xz`H?* zhCDlev-Sum4ILFSg?B9Y3D8M7c&C65flklCI}7|=DD)R1?X?$xkAf}@_kYT~9L819 zH8~pnGx!bAO*wcO@Y|uga`5g2e*lX2<=IM)LNlP}FpF$d6YsV5d2k}vN3E!6dG?F{ za~}RPACbv^bUvg%2P!5CPqy$M;qyPD!;kE~f=^J7<^7mt{Mf$RMgP8{WGx>zfpHRa z-ToCnei{62=$&AoV!j{G1K(-PCw6`J>F|>a!LNp{3F^tQZRV3}VKB>2e3EEuyBV${ zC0o}8>KarO$*d!gtYh};?%Th^bsvC#0<8<`$({N-T=%EVp;M(E`@cpVetHv(yP!!h zvk^}u^Xc8-)1jvWo*Ybn%KqsX(^ zKW{yQTTgxVgBW`YDDt#~$!E1=)!sK}OiJ-NdA z+j8)32alofh*i?E^$&xS>#cu+rN~NDLi&1Az0CS&Va^Dck|wPuh^(Il%?@~y?W}(V zybPKj@I)`xF981+v?3U&@>YUxgsR~2A@h>^KS>hTZ-TKKvezfdw4qsf-x~87Ci7Y0 z{=Cnyn9o{6ZGsLZW&5lxIO+Un=LWnk+^d<-{si5@`hRw3z?7WrGnDYN+0aMAlf;uT z9m;>^v%SV_z*B6{os3UPn{b0*HXHz*2wj$~$0VfQhRNWsL+cyyGLHFq!kEu{K;D&F z5%7N##((B>O!RZs@pG@;jd_Uk3zYPW!`vhq@xCCH`{K{gV>x*9!B?>UU#tw)P`uX{ z6);K5zt|Y?M4`T@0MDa6nwX%^}ZX_q) z*gL2winy^4_|ecYIe5o{BkqkS<=_nj9|8@{!8;B79Owd{nW)%g4L6Q~LB_iA`ao>T zLti#df*#Dl!^}2fO&e$C;JpEkgW5Ph;PG0U70Y|jVrbbuOv}S$Hm-(L5xuvRNVySL zy76;pQ;vGI;M<`c@c6WxATyL*)kc=D3Pr7AN6ma1n1|XONmU1EAT%hbs62K*RYbk2 z(}b6BjY@J^^-J(!klo?(kVC*j)KwQk7X@wV{;z5jjLRUqdDyq&<=|ICHW$e9L@%na zimL0O8v>pVhFx(LQ>(IDu6^s>3XXYK*%*WW2}eqhshR@W_1(APL*S1=e+zipA!}dt zH1tfs(}6w<{trlZ)M0-aVtUnU(CaxW&IMlzmBY*WZgEgm%fLT_eAu2K<|N*-3Z1Ch z3VjvSlLL&ZI%75wemAvHp5Ol+V%L5Xv3OHQC`=$lX*QLDW2T#W1dS^1P;g9fQ~!V` zcE9O3aLjF!Jr&7LLV2en|4kRb9GQcO!fe6}H(i~BcMUk}yD8jKYoo01rU#+$cusjS zILonVhHsNb@XyM84hD9*>7Sn2i1#KqOR*_j3a!UdY{C>bsb3dUYiN@t+C+Y_Da

jt+k^rn(7K6!0XfRW}9ac{Q8ysb%eq)h} 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 delta 35541 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 EA8+aZfB*mh delta 35709 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 F{|`(u#83bL diff --git a/tools/vision/LANGUES/ENGLISH/VISIONB.H b/tools/vision/langues/english/visionb.h similarity index 100% rename from tools/vision/LANGUES/ENGLISH/VISIONB.H rename to tools/vision/langues/english/visionb.h diff --git a/tools/vision/LANGUES/ENGLISH/visionb.hrd b/tools/vision/langues/english/visionb.hrd similarity index 100% rename from tools/vision/LANGUES/ENGLISH/visionb.hrd rename to tools/vision/langues/english/visionb.hrd diff --git a/tools/vision/LANGUES/ENGLISH/VISIONB.RSC b/tools/vision/langues/english/visionb.rsc similarity index 100% rename from tools/vision/LANGUES/ENGLISH/VISIONB.RSC rename to tools/vision/langues/english/visionb.rsc diff --git a/tools/vision/LANGUES/ENGLISH/vmsg.txt b/tools/vision/langues/english/vmsg.txt similarity index 93% rename from tools/vision/LANGUES/ENGLISH/vmsg.txt rename to tools/vision/langues/english/vmsg.txt index c7167c4..86d44de 100644 --- a/tools/vision/LANGUES/ENGLISH/vmsg.txt +++ b/tools/vision/langues/english/vmsg.txt @@ -280,4 +280,12 @@ 280:Removing records and image files from catalog... 281: Select all objects 282: Remove from catalog... -283: Remove image files... \ No newline at end of file +283: Remove image files... +284:Updating image modules database... +285:[Update %s available!|Would you like to install it?][Yes|No] +286:[Update done!|VISION will now exit][OK] +287:[Internet looks not accessible|Would you like to disable update check?][Yes|No] +288:Updating VISION... +289:[Update failed with %d|Check VISION.LOG][OK] +290:Additional image attributes +291:[This feature is now available|from Dither LDV][OK] diff --git a/tools/vision/LANGUES/FRANCAIS/VISION.H b/tools/vision/langues/francais/vision.h similarity index 98% rename from tools/vision/LANGUES/FRANCAIS/VISION.H rename to tools/vision/langues/francais/vision.h index e6e0c03..e4e44e7 100644 --- a/tools/vision/LANGUES/FRANCAIS/VISION.H +++ b/tools/vision/langues/francais/vision.h @@ -128,6 +128,7 @@ #define INFO_TOTAL 25 /* BOXTEXT dans l'arbre FORM_INFO */ #define INFO_OK 26 /* BUTTON dans l'arbre FORM_INFO */ #define INFO_CANCEL 27 /* BUTTON dans l'arbre FORM_INFO */ +#define INFO_PLUS 28 /* BUTTON dans l'arbre FORM_INFO */ #define FORM_TEXTE 4 /* Formulaire/Dialogue */ #define TEXTE_TNORMAL 3 /* TEXT dans l'arbre FORM_TEXTE */ @@ -905,5 +906,3 @@ #define LDVA_OK 38 /* BUTTON dans l'arbre FORM_LDVAPPLY */ #define LDVA_PREVIEW 39 /* BUTTON dans l'arbre FORM_LDVAPPLY */ #define LDVA_CANCEL 40 /* BUTTON dans l'arbre FORM_LDVAPPLY */ - -#define FORM_HEX 52 /* Formulaire/Dialogue */ diff --git a/tools/vision/LANGUES/FRANCAIS/VISION.HRD b/tools/vision/langues/francais/vision.hrd similarity index 97% rename from tools/vision/LANGUES/FRANCAIS/VISION.HRD rename to tools/vision/langues/francais/vision.hrd index 97436c8fb137f004718b856e04af573c9390aacd..eb1e1865b6033fe837894299d8cc9182a97e5694 100644 GIT binary patch delta 42 ucmZ2mzOI~wfsui6BMTb`KPv+RGlPt$pPPStfKO=fW=@ViV|F$MFaQ9*s|Tk5 delta 41 tcmZ2izP6l&fsw&+BMTeHW+{$dV=)E>1``GbH~%2tcn{YI1~woc2ms1o2e1GD diff --git a/tools/vision/LANGUES/FRANCAIS/VISION.RSC b/tools/vision/langues/francais/vision.rsc similarity index 65% rename from tools/vision/LANGUES/FRANCAIS/VISION.RSC rename to tools/vision/langues/francais/vision.rsc index d4dbbbf9d173dbcb36db0a89c0ae80c723004085..aa37f5672cc01433fc4a1d53abc5e9701c463e5e 100644 GIT binary patch delta 36078 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 diff --git a/tools/vision/LANGUES/FRANCAIS/VISIONB.H b/tools/vision/langues/francais/visionb.h similarity index 100% rename from tools/vision/LANGUES/FRANCAIS/VISIONB.H rename to tools/vision/langues/francais/visionb.h diff --git a/tools/vision/LANGUES/FRANCAIS/visionb.hrd b/tools/vision/langues/francais/visionb.hrd similarity index 100% rename from tools/vision/LANGUES/FRANCAIS/visionb.hrd rename to tools/vision/langues/francais/visionb.hrd diff --git a/tools/vision/LANGUES/FRANCAIS/VISIONB.RSC b/tools/vision/langues/francais/visionb.rsc similarity index 100% rename from tools/vision/LANGUES/FRANCAIS/VISIONB.RSC rename to tools/vision/langues/francais/visionb.rsc diff --git a/tools/vision/LANGUES/FRANCAIS/VMSG.H b/tools/vision/langues/francais/vmsg.h similarity index 92% rename from tools/vision/LANGUES/FRANCAIS/VMSG.H rename to tools/vision/langues/francais/vmsg.h index 31bd0f2..c77b5dd 100644 --- a/tools/vision/LANGUES/FRANCAIS/VMSG.H +++ b/tools/vision/langues/francais/vmsg.h @@ -283,4 +283,12 @@ #define MSG_WASALL 281 #define MSG_WADELICONS 282 #define MSG_WADELFILES 283 -#define MSG_ENDLIST 284 +#define MSG_UPTIMGMOD 284 +#define MSG_UPDATEAVAILABLE 285 +#define MSG_UPDATEDONE 286 +#define MSG_UPDATENOINTERNET 287 +#define MSG_VUPDATING 288 +#define MSG_UPDATEFAILED 289 +#define MSG_IMGADDPROP 290 +#define MSG_NOMORECONVERT 291 +#define MSG_ENDLIST 291 diff --git a/tools/vision/LANGUES/FRANCAIS/vmsg.txt b/tools/vision/langues/francais/vmsg.txt similarity index 93% rename from tools/vision/LANGUES/FRANCAIS/vmsg.txt rename to tools/vision/langues/francais/vmsg.txt index 5f930f9..c7181db 100644 --- a/tools/vision/LANGUES/FRANCAIS/vmsg.txt +++ b/tools/vision/langues/francais/vmsg.txt @@ -275,9 +275,17 @@ 275:Mise … jour du fichier catalogue... 276:[Impossible de mettre le catalogue … jour|code erreur=%d][OK] 277:[Supprimer %ld images du catalogue?|Les fichiers images ne seront pas supprim‚s][Oui|Non] -278:[Supprimer %ld images du catalogue?|Ainsi que les fichiers images?][Yes|No] +278:[Supprimer %ld images du catalogue?|Ainsi que les fichiers images?][Oui|Non] 279:Supression des enregistrements du catalogue... 280:Supression des enregistrements et fichiers images du catalogue... 281: Tout s‚lectionner 282: Supprimer du catalogue... -283: Supprimer les fichiers... \ No newline at end of file +283: Supprimer les fichiers... +284:Mise … jour de la base de donn‚es des modules images... +285:[Mise … jour %s disponible!|Voulez-vous l'installer?][Oui|Non] +286:[Fin de la mise … jour!|VISION va quitter maintenant][OK] +287:[La connexion Internet ne semble pas ˆtre disponible|Voulez-vous d‚-activer les mises … jour?][Oui|Non] +288:Mise … jour de VISION... +289:[Echec de la mise … jour %d|Voyez VISION.LOG][OK] +290:Attributs additionnels de l'image +291:[Cette fonction est maintenant|disponible depuis le LDV Dither][OK] diff --git a/tools/vision/LANGUES/italian/vision.hrd b/tools/vision/langues/italian/vision.hrd similarity index 100% rename from tools/vision/LANGUES/italian/vision.hrd rename to tools/vision/langues/italian/vision.hrd diff --git a/tools/vision/LANGUES/italian/VISION.RSC b/tools/vision/langues/italian/vision.rsc similarity index 52% rename from tools/vision/LANGUES/italian/VISION.RSC rename to tools/vision/langues/italian/vision.rsc index 94dc5ada73846d2ec5890258230fd3583c388896..581fc60521c170fd9459968e19f6bd931e00e236 100644 GIT binary patch delta 35717 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 AfB*mh diff --git a/tools/vision/LANGUES/italian/visionb.hrd b/tools/vision/langues/italian/visionb.hrd similarity index 100% rename from tools/vision/LANGUES/italian/visionb.hrd rename to tools/vision/langues/italian/visionb.hrd diff --git a/tools/vision/LANGUES/italian/VISIONB.RSC b/tools/vision/langues/italian/visionb.rsc similarity index 100% rename from tools/vision/LANGUES/italian/VISIONB.RSC rename to tools/vision/langues/italian/visionb.rsc diff --git a/tools/vision/LANGUES/italian/vmsg.txt b/tools/vision/langues/italian/vmsg.txt similarity index 93% rename from tools/vision/LANGUES/italian/vmsg.txt rename to tools/vision/langues/italian/vmsg.txt index e52cf63..09bbd04 100644 --- a/tools/vision/LANGUES/italian/vmsg.txt +++ b/tools/vision/langues/italian/vmsg.txt @@ -280,4 +280,12 @@ 280:Rimozione di record e file immagini dal catalogo... 281: Seleziona tutti gli oggetti 282: Rimuovi dal catalogo... -283: Rimuovi file immagine... \ No newline at end of file +283: Rimuovi file immagine... +284:Aggiornamento del database dei mduli immagine... +285:[Aggiornamento %s disponibile!|Vuoi installarlo?][Si|No] +286:[Aggiornamento eseguito!|VISION ora verr… chiuso][OK] +287:[Internet non Š accessibile|Desideri disabilatare il controllo degli aggiiornamenti?][Si|No] +288:Aggiornamento di VISION... +289:[Aggiornamento non riuscito con %d|Controllare VISION.LOG][OK] +290:Attributi di immagine aggiuntivi +291:[Questa funzione Š ora|disponibile da Dither LDV][OK] diff --git a/tools/vision/LANGUES/README.TXT b/tools/vision/langues/readme.txt similarity index 100% rename from tools/vision/LANGUES/README.TXT rename to tools/vision/langues/readme.txt diff --git a/tools/vision/LANGUES/svenska/vision.hrd b/tools/vision/langues/svenska/vision.hrd similarity index 100% rename from tools/vision/LANGUES/svenska/vision.hrd rename to tools/vision/langues/svenska/vision.hrd diff --git a/tools/vision/LANGUES/svenska/VISION.RSC b/tools/vision/langues/svenska/vision.rsc similarity index 53% rename from tools/vision/LANGUES/svenska/VISION.RSC rename to tools/vision/langues/svenska/vision.rsc index 27c818b9dbde1de68bce584754cc5a72d96524cb..631c610d542b899321408f955c096ae5e6411ecd 100644 GIT binary patch delta 35900 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 delta 35765 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 diff --git a/tools/vision/LANGUES/svenska/visionb.hrd b/tools/vision/langues/svenska/visionb.hrd similarity index 100% rename from tools/vision/LANGUES/svenska/visionb.hrd rename to tools/vision/langues/svenska/visionb.hrd diff --git a/tools/vision/LANGUES/svenska/VISIONB.RSC b/tools/vision/langues/svenska/visionb.rsc similarity index 100% rename from tools/vision/LANGUES/svenska/VISIONB.RSC rename to tools/vision/langues/svenska/visionb.rsc diff --git a/tools/vision/LANGUES/svenska/vmsg.txt b/tools/vision/langues/svenska/vmsg.txt similarity index 92% rename from tools/vision/LANGUES/svenska/vmsg.txt rename to tools/vision/langues/svenska/vmsg.txt index 70e09b6..cc1af30 100644 --- a/tools/vision/LANGUES/svenska/vmsg.txt +++ b/tools/vision/langues/svenska/vmsg.txt @@ -280,4 +280,12 @@ 280:Ta bort poster och bidfiler fr†n katalog... 281: V„lj alla objekt 282: Ta bort fr†n katalog... -283: Ta bort bildfiler... \ No newline at end of file +283: Ta bort bildfiler... +284:Uppdatering av bildmodulens databas... +285:[Uppdatering %s till„nglig!|Vill du installera det?][Ja|Nej] +286:[Uppdateringen har gjorts!|VISION kommer nu att avsluta][OK] +287:[Internet ser inte tillg„ngligt|Vill du inaktivera uppdateringskontroll?][Ja|Nej] +288:Uppdaterar VISION... +289:[Uppdateringen misslyckades med %d|Kontrollera VISION.LOG][OK] +290:Ytterligare bildattribut +291:[Den h„r funktionen „r nu|tillg„nglig fr†n Dither LDV][OK] \ No newline at end of file diff --git a/tools/vision/LDV/bhole.ini b/tools/vision/ldv/bhole.ini similarity index 100% rename from tools/vision/LDV/bhole.ini rename to tools/vision/ldv/bhole.ini diff --git a/tools/vision/ldv/bhole.ldv b/tools/vision/ldv/bhole.ldv new file mode 100644 index 0000000000000000000000000000000000000000..c882bd12fdbb2e2056113e7749f1c68574c66ef7 GIT binary patch literal 20060 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 literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/cntcol.ini b/tools/vision/ldv/cntcol.ini new file mode 100644 index 0000000..0122a63 --- /dev/null +++ b/tools/vision/ldv/cntcol.ini @@ -0,0 +1,46 @@ +; This is a basic INI file used +; To setup a language for a LDV +; Module for VISION 4.0 or older +; For example, if your module is +; Named SOGOOD.LDV, you should create +; SOGOOD.INI (default file, this may be the English version) in LDV folder +; SOGOOD.INI in the FRANCAIS folder for the French version +; SOGOOD.INI in the ENGLISH folder for the English version +; SOGOOD.INI in the SVENSKA folder for the Swedish version +; ... and so on ... +; Now you just have to fill in the ShortName, LongName and Description fields +; Note that VISION will search for the INI file associated to the LDV file +; In the folder defined by the language setup (same as in LANGUES folder) + +[Informations] +; ShortName should not exceed 15 caracters +ShortName = Count Colors +; LongName should not exceed 31 caracters +LongName = Count Colors (per line/global) +; Description should not exceed 79 caracters +Description = Counts the number of colors on an image + +; Here comes the language parameters dependencies +[Parameter1] +Name = Method +; Method = 0: auto selection by LDV depending on image +; Method = 1: +; Per line: simple add to color array if color does not exist (quite slow if many colors) +; Globally: bitarray of max. # of colors +; Memory usage: 2MB max (32bit) + 1 line +; Method = 2: +; Per line: sort/reduce colors +; Globally: sort/reduce colors +; Memory usage: full image memory + 1 line +; Method = 3: (#1 and #2 mix) +; Per line: sort/reduce colors +; Globally: bitarray of max. # of colors +; Memory usage: 2MB max (32bit) + 1 line +Type = 1 +MinValue = 0 +DefaultValue = 0 +MaxValue = 3 + +[Parameter2] +Name = OutputFile +Type = 3 diff --git a/tools/vision/ldv/cntcol.ldv b/tools/vision/ldv/cntcol.ldv new file mode 100644 index 0000000000000000000000000000000000000000..646d4e1073e97cb7c3b675867b1e7b27b1bb6505 GIT binary patch literal 12061 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 CJA7FH literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/dither.ini b/tools/vision/ldv/dither.ini new file mode 100644 index 0000000..9754832 --- /dev/null +++ b/tools/vision/ldv/dither.ini @@ -0,0 +1,44 @@ +; This is a basic INI file used +; To setup a language for a LDV +; Module for VISION 4.0 or older +; For example, if your module is +; Named SOGOOD.LDV, you should create +; SOGOOD.INI (default file, this may be the English version) in LDV folder +; SOGOOD.INI in the FRANCAIS folder for the French version +; SOGOOD.INI in the ENGLISH folder for the English version +; SOGOOD.INI in the SVENSKA folder for the Swedish version +; ... and so on ... +; Now you just have to fill in the ShortName, LongName and Description fields +; Note that VISION will search for the INI file associated to the LDV file +; In the folder defined by the language setup (same as in LANGUES folder) + +[Informations] +; ShortName should not exceed 15 caracters +ShortName = Dither +; LongName should not exceed 31 caracters +LongName = Dithers an image +; Description should not exceed 79 caracters +Description = Reduces number of colors of an image with different methods + +; Here comes the language parameters dependencies +[Parameter1] +Name = Method +Type = 1 +MinValue = 0 +DefaultValue = 0 +MaxValue = 4 +Labels = Auto,Mono-Matrix,Greyscale,216 colors,Dual-Tone + +[Parameter2] +Name = Method param +Type = 1 +MinValue = -1 +DefaultValue = 50 +MaxValue = 100 + +[Parameter3] +Name = Output planes +Type = 1 +MinValue = 0 +DefaultValue = 0 +MaxValue = 32 diff --git a/tools/vision/ldv/dither.ldv b/tools/vision/ldv/dither.ldv new file mode 100644 index 0000000000000000000000000000000000000000..b440a3c9074bf704d29d80f6060649c50e88b8bb GIT binary patch literal 2538 zcmc&$e`pg|9RJ?sOfTsfuUS`P*Xi>bOKPjBR!c3JO)gfiS(bLG^9K}rX>+-ztx33E zHYOs`$x+MW=#Jgu%Yy zec$JOf4=wb``(LM4N!IhfVl*q1mHfE0jMf~<1m1DSGpF7biWesSQaJ$BtlYIgM>DQ z;+@NSHWH*wnlYNrW(ZlayonHBxW2V@*_tLIXN{3WCP_Lore5NO_8{ z%L12UR8|hweuEjunkSLJLxw^4;R;k@tC^Z*p!PgU50UbzeUky0T^<~p0GJ20)b`!T z>(oOBI8LQ7LoKABuhTmWjndbV>eQ^oZ^|F~d4G93t`l1%7V5eNLg)$<+~Rlub`87Y z`;1~dBzjUaRN4{%M%f*{E;4e3{E6BkRKVgPQLc#81Ecdw8kl%kB`B3r)o#q&(@F8> z3&mSKpwiK|N@=k#sJd3_6VQI8`h zdX(}kw}YqzkqeQiRw3dM@v4A`L&T}<4hEz8*h_kK`(&-(o!-fIcCbD3uHE{f&pZk1h4fbEDJ#L*1+a=a8I71BPLMr{fGq*j7$MsA)h z;OB9)G|v``*td2~Nd=7SRCW}<#r>~~#d^EEeN-Y*zcEq|jrvL{D0=ip_X6EF4k?#c zsjSvrIJ$b0(QiZ+q-ND$adZi*?1j{I(ny5bXN3RRdFeAyox()l<7sQh9eIOci`ERlwg~_4f#?v+D}J zMJ>2)e|a69XB#QkU5I;d4V|%2Z-$m*7oV#seSv3qV3$?LH4551$&E z?%)0e3^6dB^Y&SFiy6Z-$EiApG!b35;icwo;F<^V?DMsQcmq0-^WZ{>09A-x;A!5; zu7(=KZa6F-g^!v71VVqp$8t#JWKTSFB9ytsrtcJ?Dgnji)(ZAoH|s*LLY%tG!u=#j z-jIVTn=5+z>hJ{dI18M|fz(ZDCxEk;-pdXdZ>EKjgF4?+xHt={Ct-VHN>(b_+X0(w^4*!p6qhv{vWU?k1&F6Ai!_<_$bDbkez0With+LZtR literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/doc/defines.htm b/tools/vision/ldv/doc/defines.htm similarity index 100% rename from tools/vision/LDV/doc/defines.htm rename to tools/vision/ldv/doc/defines.htm diff --git a/tools/vision/LDV/doc/descrip.htm b/tools/vision/ldv/doc/descrip.htm similarity index 100% rename from tools/vision/LDV/doc/descrip.htm rename to tools/vision/ldv/doc/descrip.htm diff --git a/tools/vision/LDV/doc/english/defines.htm b/tools/vision/ldv/doc/english/defines.htm similarity index 100% rename from tools/vision/LDV/doc/english/defines.htm rename to tools/vision/ldv/doc/english/defines.htm diff --git a/tools/vision/LDV/doc/english/descrip.htm b/tools/vision/ldv/doc/english/descrip.htm similarity index 100% rename from tools/vision/LDV/doc/english/descrip.htm rename to tools/vision/ldv/doc/english/descrip.htm diff --git a/tools/vision/LDV/doc/english/hints.htm b/tools/vision/ldv/doc/english/hints.htm similarity index 100% rename from tools/vision/LDV/doc/english/hints.htm rename to tools/vision/ldv/doc/english/hints.htm diff --git a/tools/vision/LDV/doc/english/images/conc2.gif b/tools/vision/ldv/doc/english/images/conc2.gif similarity index 100% rename from tools/vision/LDV/doc/english/images/conc2.gif rename to tools/vision/ldv/doc/english/images/conc2.gif diff --git a/tools/vision/LDV/doc/english/images/cprev.jpg b/tools/vision/ldv/doc/english/images/cprev.jpg similarity index 100% rename from tools/vision/LDV/doc/english/images/cprev.jpg rename to tools/vision/ldv/doc/english/images/cprev.jpg diff --git a/tools/vision/LDV/doc/english/images/csom.jpg b/tools/vision/ldv/doc/english/images/csom.jpg similarity index 100% rename from tools/vision/LDV/doc/english/images/csom.jpg rename to tools/vision/ldv/doc/english/images/csom.jpg diff --git a/tools/vision/LDV/doc/english/images/csuiv.jpg b/tools/vision/ldv/doc/english/images/csuiv.jpg similarity index 100% rename from tools/vision/LDV/doc/english/images/csuiv.jpg rename to tools/vision/ldv/doc/english/images/csuiv.jpg diff --git a/tools/vision/LDV/doc/english/images/icointro.gif b/tools/vision/ldv/doc/english/images/icointro.gif similarity index 100% rename from tools/vision/LDV/doc/english/images/icointro.gif rename to tools/vision/ldv/doc/english/images/icointro.gif diff --git a/tools/vision/LDV/doc/english/images/icoprinc.gif b/tools/vision/ldv/doc/english/images/icoprinc.gif similarity index 100% rename from tools/vision/LDV/doc/english/images/icoprinc.gif rename to tools/vision/ldv/doc/english/images/icoprinc.gif diff --git a/tools/vision/LDV/doc/english/index.htm b/tools/vision/ldv/doc/english/index.htm similarity index 100% rename from tools/vision/LDV/doc/english/index.htm rename to tools/vision/ldv/doc/english/index.htm diff --git a/tools/vision/LDV/doc/english/intro.htm b/tools/vision/ldv/doc/english/intro.htm similarity index 100% rename from tools/vision/LDV/doc/english/intro.htm rename to tools/vision/ldv/doc/english/intro.htm diff --git a/tools/vision/LDV/doc/english/kitdev.htm b/tools/vision/ldv/doc/english/kitdev.htm similarity index 70% rename from tools/vision/LDV/doc/english/kitdev.htm rename to tools/vision/ldv/doc/english/kitdev.htm index c0e9e4d..ade46a8 100644 --- a/tools/vision/LDV/doc/english/kitdev.htm +++ b/tools/vision/ldv/doc/english/kitdev.htm @@ -1,9 +1,8 @@ - + VISION Documentation (LDV): Development kit - -

+

@@ -400,77 +395,147 @@ image.(true colro only).
- + - + - + - + - + - +
DescriptionMix image blocs to generate a puzzleMixes image blocs to generate a puzzle
CapacitésCapabilities Any number of bitplans (1, 2, 4, 8, 16, 24 and 32). Machine format. Does not change the palette.
Type de - transformationTransformation type Forces VISION to allocate memory for destination.
Utilise VAPIUses VAPI Yes (Progress Interface)
Fichier INIINI file Yes (English / French)
RemarqueComment Fun LDV easy to code. Smartest thing is entropy handling i.e. how much disorder there is in the mix.
-
- - - - - +


- + - + - + - + - + - +
BHOLE.LDVBHOLE.LDV
Description Simulates a black hole in an image. Consider it as a tribute to Stephen Hawking.
CapacitésCapabilities Any number of bitplans (1, 2, 4, 8, 16, 24 and 32). Machine format. Does not change the palette.
Type de - transformationTransformation type Forces VISION to allocate memory for destination.
Utilise VAPIUses VAPI Yes (Progress Interface+Config Interface+Logging Interface)
Fichier INIINI file Yes (English / French)
RemarqueComment Most complicated LDV so far. Has its own optimzations for 68030 and 68881. Uses black hole symetry to speed up computations.
-
+


+ + + + + + + + + + + + + + + + + + + + + + + +
CNTCOLLDV
DescriptionCount the number of different colors on each line and for the whole image
CapabilitiesAny number of bitplans (1, 2, 4, 8, 16 and 32). Machine format. Does not change the palette. Does not alter the image.
Transformation typeNo change on image. Generates cntcol.txt file in VISION's folder or the file specified by parameter#2
Uses VAPIYes (Progress + Interface+MEM Interface + Raster Interface +Logging Interface)
INI fileYes (English)
CommentInspired by http://www.atari-forum.com/viewtopic.php?f=27&t=38492


+ + + + + + + + + + + + + + + + + + + + + + + +
GENIMG.LDV
DescriptionGenerates as many different colors as possible on an image (tester for previous LDV)
CapabilitiesAny number of bitplans (1, 2, 4, 8, 16, and 32). Machine format. Does not change the palette.
Transformation typeForces VISION to + allocate memory for destination.
Uses VAPIYes (Progress + Interface+Raster Interface)
INI fileYes (English)
CommentUgly image generated.


+ + + + + + + + + + + + + + + + + + + + + + + +
DITHER.LDV
DescriptionDithers an image to any number of planes using different methods
CapabilitiesAny number of bitplans (1, 2, 4, 8, 16, and 32). ATARI format. Palette might be changed/created.
Transformation typeForces VISION to + allocate memory for destination.
Uses VAPIYes (Progress + Interface+Config Interface+Logging Interface + Image Interface)
INI fileYes (English)
CommentPretty simple as it basically calls ImDither function from Image Interface.









@@ -490,7 +555,7 @@ image.(true colro only).

-

Last update: 05/04/18

+

Last update: 03/28/20

diff --git a/tools/vision/LDV/doc/english/modele.htm b/tools/vision/ldv/doc/english/modele.htm similarity index 100% rename from tools/vision/LDV/doc/english/modele.htm rename to tools/vision/ldv/doc/english/modele.htm diff --git a/tools/vision/LDV/doc/english/notions.htm b/tools/vision/ldv/doc/english/notions.htm similarity index 100% rename from tools/vision/LDV/doc/english/notions.htm rename to tools/vision/ldv/doc/english/notions.htm diff --git a/tools/vision/LDV/doc/english/struct.htm b/tools/vision/ldv/doc/english/struct.htm similarity index 100% rename from tools/vision/LDV/doc/english/struct.htm rename to tools/vision/ldv/doc/english/struct.htm diff --git a/tools/vision/LDV/doc/english/vapi/co.htm b/tools/vision/ldv/doc/english/vapi/co.htm similarity index 97% rename from tools/vision/LDV/doc/english/vapi/co.htm rename to tools/vision/ldv/doc/english/vapi/co.htm index d5a6ab6..3022ff4 100644 --- a/tools/vision/LDV/doc/english/vapi/co.htm +++ b/tools/vision/ldv/doc/english/vapi/co.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/ldv/doc/english/vapi/fi.html b/tools/vision/ldv/doc/english/vapi/fi.html new file mode 100644 index 0000000..aea226d --- /dev/null +++ b/tools/vision/ldv/doc/english/vapi/fi.html @@ -0,0 +1,296 @@ + + + + +Documentation VISION (VAPI) : Configuration Interface + +
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+

Last update : 04/12/20

+


+

FILE INTERFACE

+
 
+
+ +
+
+ + + + + + + + + + + + + + + + + +
Summary
Préfixe de l'interfaceFi
Nombre de fonctions7
DescriptionSet of functions to manage files
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiFileExist(char* file)
Paramètresfile: filename of the file to test against presence
RetourNon zero if file exists
DescriptionSelf explanatory
Remarques
Version VAPI1.09 or more
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiFolderExist(char* folder)
Paramètresfolder: folder to test against presence
RetourNon zero if folder exists
DescriptionSelf explanatory
Remarques
Version VAPI1.09 or more
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCopyFile(char* src, char* dst)
Paramètressrc: name of source file
dst: name of destination file
RetourZero if success
DescriptionCopies +source file to destination file. Folder for destination must exist (see +next function if you wish to create all intermediate folders)
Remarques
Version VAPI1.09 or more
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCopyFileR(char* src, char* dst)
Paramètressrc: name of source file
dst: name of destination file
RetourZero if success
DescriptionCopies +source file to destination file and create any intermediate folder if required.
Remarques
Version VAPI1.09 or more
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiMoveFile(char* src, char* dst)
Paramètressrc: name of source file
dst: name of destination file
RetourZero if success
DescriptionMoves source file to destination file.
Remarques
Version VAPI1.09 or more
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCreateFolder(char* path)
Paramètrespath: path to create
RetourZero if success
DescriptionSelf explanatory
RemarquesReturns success (0) if folder already exists
Version VAPI1.09 or more
+
+ +

 
 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCmpFiles(char* f1, char* f2)
Paramètresf1: name of first file
f2: name of file to compare to
Retour1 if files are equal
DescriptionSelf explanatory
Remarques
Version VAPI1.09 or more
+
+ +


+ +
+
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+


+

Télécharger la doc

+

FILE INTERFACE

+
 
+
+ \ No newline at end of file diff --git a/tools/vision/ldv/doc/english/vapi/im.htm b/tools/vision/ldv/doc/english/vapi/im.htm new file mode 100644 index 0000000..b530e00 --- /dev/null +++ b/tools/vision/ldv/doc/english/vapi/im.htm @@ -0,0 +1,297 @@ + + + + +Documentation VISION (VAPI) : Configuration Interface + +
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+

Dernière + mise à jour : 02/12/20

+


+

IMAGE INTERFACE

+
 
+
+ +
+
+ + + + + + + + + + + + + + + + + +
Summary
Interface prefixIm
Number of functions7
DescriptionSet of functions to manage images files
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImGetInf(char* filename, void* ldv_img)
Parametersfilename: name of the image file
ldv_img: pointer to a LDV_IMAGE structure
ReturnLDV_STATUS
DescriptionReads +informatiuons from the file and fills in the LDV_IMAGE strucutre. Image +is not loaded (see next function) but all image caracteristics such as +width, height, number of planes, ... are fetched.
CommentsCall ImFree to free related resources
Version VAPI1.09 or more
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImLoad(void* ldv_img)
Parametersldv_img: pointer to LDV_IMAGE structure previously filled-in by ImGetInf
ReturnLDV_STATUS
DescriptionLoads the image into memory
CommentsImage data is read during this call
Version VAPI1.09 or more
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypevoid cdecl ImFree(void* ldv_img)
Parametersldv_img: pointer to LDV_IMAGE structure previously filled-in by ImGetInf
ReturnNone
DescriptionFrees resources allocated by ImGetInf and ImLoad
Comments.
Version VAPI1.09 or more
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImSave(char* filename, void* ldv_img, char* save_options) ;
Parametersfilename: name of file to save image
ldv_img:  LDV_IMAGE structure defining image to save
save_options: standard options, separated by '';',(option=<value>):
fmt = <3 characters defining image format>
quality=<quality 0...100>    (JPEG)
flipflop=<0 ou 2> (0: no flip-flop, 2: Y flip-flop)   (TGA)
compression=<none or lzw> (TIF)
byteorder=<motorola or intel>  (TIF)
ReturnLDV_STATUS
DescriptionSaves an image residing in memory to a file
CommentsExample
status = Vapi->ImSave( "h:\\test.tif", ldv_img, "fmt=TIF;compression=LZW;byteorder=motorola" ) ;
Some options depend on the format; they may be ignored by the driver in charge of saving
Check out opnsav.vcs script for an example on the options
Version VAPI1.09 or more
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImDither(long method, long param, void* ldv_img_in, void* ldv_img_out)
Parametersmethod: dither method to use:
  • 0: Auto, let VISION decide
  • 1: monochrome mattrix
  • 2: grey level
  • 3: 216 colors
  • 4: dual-tone
ldv_img_in: LDV_IMAGE structure usually provided by VISION
ldv_img_out: LDV_IMAGE structure holding dithered  image
ReturnLDV_STATUS
DescriptionRequest VISION to dither an image using a method
Output number of planes shall be stated in variable out->Raster.fd_nplanes (1,4,8,16 ou32)
Comments
Version VAPI1.09 or more
+
+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImGetStdData(void* ldv_img, char* query, char* out_data, long out_data_size) ;
Parametersldv_img: pointer to LDV_IMAGE structure previously filled-in by ImGetInf
query: string to request standard atribute which list follows:
  • filename: filename passed to ImGetInf
out_data: string holding value of the requested attribute
out_data_size: size, in bytes, of out_data buffer
ReturnLDV_STATUS
DescriptionRequests standard data on an image
CommentsSee optimg.ldv source code
Version VAPI1.09 or more
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImComputeHistogram(void* ldv_img, HISTO *histo) ;
Parametersldv_img:  LDV_IMAGE structure defining image to compute histograms
histo: pointeur to a HISTO structure containing the result
ReturnLDV_STATUS
DescriptionRequests VISION to compute histograms
Remarques.histo->norm shall be initialized to tell VISION what is the maximal value for the highest repetition frequency
See optimg.ldv source code
Version VAPI1.09 or more
+

+

+ +
+
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+


+


+

IMAGE INTERFACE

+
 
+
+ \ No newline at end of file diff --git a/tools/vision/LDV/doc/english/vapi/in.htm b/tools/vision/ldv/doc/english/vapi/in.htm similarity index 97% rename from tools/vision/LDV/doc/english/vapi/in.htm rename to tools/vision/ldv/doc/english/vapi/in.htm index ecb0d54..f291b0e 100644 --- a/tools/vision/LDV/doc/english/vapi/in.htm +++ b/tools/vision/ldv/doc/english/vapi/in.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/english/vapi/index.htm b/tools/vision/ldv/doc/english/vapi/index.htm similarity index 97% rename from tools/vision/LDV/doc/english/vapi/index.htm rename to tools/vision/ldv/doc/english/vapi/index.htm index 5285381..5d6bb80 100644 --- a/tools/vision/LDV/doc/english/vapi/index.htm +++ b/tools/vision/ldv/doc/english/vapi/index.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/english/vapi/lo.htm b/tools/vision/ldv/doc/english/vapi/lo.htm similarity index 97% rename from tools/vision/LDV/doc/english/vapi/lo.htm rename to tools/vision/ldv/doc/english/vapi/lo.htm index c6535aa..2b4e883 100644 --- a/tools/vision/LDV/doc/english/vapi/lo.htm +++ b/tools/vision/ldv/doc/english/vapi/lo.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/english/vapi/me.htm b/tools/vision/ldv/doc/english/vapi/me.htm similarity index 56% rename from tools/vision/LDV/doc/english/vapi/me.htm rename to tools/vision/ldv/doc/english/vapi/me.htm index ebb482f..beb251d 100644 --- a/tools/vision/LDV/doc/english/vapi/me.htm +++ b/tools/vision/ldv/doc/english/vapi/me.htm @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@

-

Last update : 08/04/18

+

Last update : 03/28/20

@@ -43,11 +43,11 @@ Nombre de fonctions - 3 + 8 Description - Set of functions allowing to manipulate memory areas, mostly image oriented + Set of functions allowing to manipulate memory areas, mostly image oriented + dynamic memory allocations with stats/boundchecks though vision.log @@ -170,6 +170,156 @@ will use automatically an optimzed routine. +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypevoid* cdecl MeXcalloc(unsigned long size)
Parameters[IN] size : Number of bytes to allocate
ReturnPointer to allocated memory of size bytes, NULL if error
DescriptionSimilar to malloc 'C' function from stdlib
CommentsVISION will keep track of this allocation and check against leak or memory under/over flows.
VAPI Version1.05 or greater
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypevoid* cdecl MeXrealloc(void* ptr, unsigned long size)
Parameters[IN] ptr : Currently allocated pointer to adjust size
[IN] size : Number of bytes to allocate
ReturnPointer to allocated memory of size bytes, NULL if error
DescriptionSimilar to realloc 'C' function from stdlib
CommentsVISION will keep track of this allocation and check against leak or memory under/over flows.
VAPI Version1.05 or greater
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypevoid cdecl MeXfree(void* ptr)
Parameters[IN] ptr : Pointer to memory to be freed
ReturnNone
DescriptionSimilar to free 'C' function from stdlib
CommentsVISION will check pointer is valid and if under/over flows has occured
VAPI Version1.05 or greater
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypevoid* cdecl MeXcalloc(unsigned long nb_elems, unsigned long elem_size)
Parameters[IN] nb_elems : Number of elements to allocate
[IN] elem_size : Sze of an element in bytes
ReturnPointer to allocated memory of size bytes, NULL if error
DescriptionSimilar to calloc 'C' function from stdlib; like malloc but allocated memory is zeroed.
CommentsVISION will keep track of this allocation and check against leak or memory under/over flows.
VAPI Version1.05 or greater
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypechar* cdecl MeXstrdup(char* s)
Parameters[IN] s : Pointer to string to duplicate
ReturnPointer to duplicated string, NULL if error
DescriptionSimilar to strdup 'C' function from stdlib
CommentsVISION will keep track of this allocation and check against leak or memory under/over flows.
VAPI Version1.05 or greater
+
+

 


@@ -185,7 +335,7 @@ will use automatically an optimzed routine.

-

Last update : 08/04/18

+

Last update : 03/28/20

diff --git a/tools/vision/LDV/doc/english/vapi/modele.htm b/tools/vision/ldv/doc/english/vapi/modele.htm similarity index 100% rename from tools/vision/LDV/doc/english/vapi/modele.htm rename to tools/vision/ldv/doc/english/vapi/modele.htm diff --git a/tools/vision/LDV/doc/english/vapi/pr.htm b/tools/vision/ldv/doc/english/vapi/pr.htm similarity index 97% rename from tools/vision/LDV/doc/english/vapi/pr.htm rename to tools/vision/ldv/doc/english/vapi/pr.htm index fffc7f5..8ab086c 100644 --- a/tools/vision/LDV/doc/english/vapi/pr.htm +++ b/tools/vision/ldv/doc/english/vapi/pr.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/english/vapi/ra.htm b/tools/vision/ldv/doc/english/vapi/ra.htm similarity index 97% rename from tools/vision/LDV/doc/english/vapi/ra.htm rename to tools/vision/ldv/doc/english/vapi/ra.htm index 8f9f47d..f0f0bfd 100644 --- a/tools/vision/LDV/doc/english/vapi/ra.htm +++ b/tools/vision/ldv/doc/english/vapi/ra.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/english/vapi/struct.htm b/tools/vision/ldv/doc/english/vapi/struct.htm similarity index 97% rename from tools/vision/LDV/doc/english/vapi/struct.htm rename to tools/vision/ldv/doc/english/vapi/struct.htm index 3f213f0..53a2176 100644 --- a/tools/vision/LDV/doc/english/vapi/struct.htm +++ b/tools/vision/ldv/doc/english/vapi/struct.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/hints.htm b/tools/vision/ldv/doc/hints.htm similarity index 100% rename from tools/vision/LDV/doc/hints.htm rename to tools/vision/ldv/doc/hints.htm diff --git a/tools/vision/LDV/doc/images/conc2.gif b/tools/vision/ldv/doc/images/conc2.gif similarity index 100% rename from tools/vision/LDV/doc/images/conc2.gif rename to tools/vision/ldv/doc/images/conc2.gif diff --git a/tools/vision/LDV/doc/images/cprev.jpg b/tools/vision/ldv/doc/images/cprev.jpg similarity index 100% rename from tools/vision/LDV/doc/images/cprev.jpg rename to tools/vision/ldv/doc/images/cprev.jpg diff --git a/tools/vision/LDV/doc/images/csom.jpg b/tools/vision/ldv/doc/images/csom.jpg similarity index 100% rename from tools/vision/LDV/doc/images/csom.jpg rename to tools/vision/ldv/doc/images/csom.jpg diff --git a/tools/vision/LDV/doc/images/csuiv.jpg b/tools/vision/ldv/doc/images/csuiv.jpg similarity index 100% rename from tools/vision/LDV/doc/images/csuiv.jpg rename to tools/vision/ldv/doc/images/csuiv.jpg diff --git a/tools/vision/LDV/doc/images/icointro.gif b/tools/vision/ldv/doc/images/icointro.gif similarity index 100% rename from tools/vision/LDV/doc/images/icointro.gif rename to tools/vision/ldv/doc/images/icointro.gif diff --git a/tools/vision/LDV/doc/images/icoprinc.gif b/tools/vision/ldv/doc/images/icoprinc.gif similarity index 100% rename from tools/vision/LDV/doc/images/icoprinc.gif rename to tools/vision/ldv/doc/images/icoprinc.gif diff --git a/tools/vision/LDV/doc/index.htm b/tools/vision/ldv/doc/index.htm similarity index 100% rename from tools/vision/LDV/doc/index.htm rename to tools/vision/ldv/doc/index.htm diff --git a/tools/vision/LDV/doc/intro.htm b/tools/vision/ldv/doc/intro.htm similarity index 100% rename from tools/vision/LDV/doc/intro.htm rename to tools/vision/ldv/doc/intro.htm diff --git a/tools/vision/LDV/doc/kitdev.htm b/tools/vision/ldv/doc/kitdev.htm similarity index 97% rename from tools/vision/LDV/doc/kitdev.htm rename to tools/vision/ldv/doc/kitdev.htm index 755bdf8..8059e68 100644 --- a/tools/vision/LDV/doc/kitdev.htm +++ b/tools/vision/ldv/doc/kitdev.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/modele.htm b/tools/vision/ldv/doc/modele.htm similarity index 100% rename from tools/vision/LDV/doc/modele.htm rename to tools/vision/ldv/doc/modele.htm diff --git a/tools/vision/LDV/doc/notions.htm b/tools/vision/ldv/doc/notions.htm similarity index 100% rename from tools/vision/LDV/doc/notions.htm rename to tools/vision/ldv/doc/notions.htm diff --git a/tools/vision/LDV/doc/struct.htm b/tools/vision/ldv/doc/struct.htm similarity index 100% rename from tools/vision/LDV/doc/struct.htm rename to tools/vision/ldv/doc/struct.htm diff --git a/tools/vision/LDV/doc/vapi/co.htm b/tools/vision/ldv/doc/vapi/co.htm similarity index 97% rename from tools/vision/LDV/doc/vapi/co.htm rename to tools/vision/ldv/doc/vapi/co.htm index 56cee92..7c36eff 100644 --- a/tools/vision/LDV/doc/vapi/co.htm +++ b/tools/vision/ldv/doc/vapi/co.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/ldv/doc/vapi/fi.htm b/tools/vision/ldv/doc/vapi/fi.htm new file mode 100644 index 0000000..1288f59 --- /dev/null +++ b/tools/vision/ldv/doc/vapi/fi.htm @@ -0,0 +1,293 @@ + + + + +Documentation VISION (VAPI) : Configuration Interface + +
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+

Last update : 04/12/20

+


+

FILE INTERFACE

+
 
+
+ +
+
+ + + + + + + + + + + + + + + + + +
Résumé
Préfixe de l'interfaceFi
Nombre de fonctions7
DescriptionEnsemble de fonctions permettant de manipuler des fichiers
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiFileExist(char* file)
Paramètresfile: nom du fichier sur lequel tester la présence
RetourNon nul si le fichier existe
Description
Remarques
Version VAPI1.09 ou mieux
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiFolderExist(char* folder)
Paramètresfolder: nom du dossier sur lequel tester l'existence
RetourNon nul si le fichier existe
Description
Remarques
Version VAPI1.09 ou mieux
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCopyFile(char* src, char* dst)
Paramètressrc: nom du fichier source
dst: nom du fichier destination
RetourZero si succès
DescriptionCopie la source vers la desnitation. Le dossier de la destination doit exister (voyez la fonction suivante sinon).
Remarques
Version VAPI1.09 ou mieux
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCopyFileR(char* src, char* dst)
Paramètressrc: nom du fichier source
dst: nom du fichier destination
RetourZero si succès
DescriptionCopie la source vers la destination et créee les dossiers intermédiaires si nécessaire.
Remarques
Version VAPI1.09 ou mieux
+
+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiMoveFile(char* src, char* dst)
Paramètressrc: nom du fichier source
dst: nom du fichier destination
RetourZero si succès
DescriptionRenomme le fichier source vers la destination
Remarques
Version VAPI1.09 ou mieux
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCreateFolder(char* path)
Paramètrespath: chemin du dossier à créer
RetourZero si succès
Description
RemarquesReturne succès (0) si le dossier existe déjà
Version VAPI1.09 ou mieux
+
+ +

 
 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl FiCmpFiles(char* f1, char* f2)
Paramètresf1: nom du premier fichier
f2: nom du fichier à comparer
Retour1 si les fichiers sont identiques
Description
Remarques
Version VAPI1.09 ou mieux
+
+ +


+ +
+
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+


+

Télécharger la doc

+

FILE INTERFACE

+
 
+
+ \ No newline at end of file diff --git a/tools/vision/ldv/doc/vapi/im.htm b/tools/vision/ldv/doc/vapi/im.htm new file mode 100644 index 0000000..4e3b567 --- /dev/null +++ b/tools/vision/ldv/doc/vapi/im.htm @@ -0,0 +1,298 @@ + + + + +Documentation VISION (VAPI) : Configuration Interface + +
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+

Dernière + mise à jour : 02/12/20

+

Télécharger la doc

+

IMAGE INTERFACE

+
 
+
+ +
+
+ + + + + + + + + + + + + + + + + +
Summary
Préfixe de l'interfaceIm
Nombre de fonctions7
DescriptionEnsemble de fonctions permettant de manipuler des images
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImGetInf(char* filename, void* ldv_img)
Paramètresfilename: nom du fichier
ldv_img: pointeur sur une structure de type LDV_IMAGE
RetourLDV_STATUS
DescriptionRécupère +les informations image dans le fichier et remplit la structure +LDV_IMAGE en conséquence, ne charge pas l'image (fonction suivante) +mais renseigne ses caractéristiques comme sa largeur, hauteur, nombre +de plans...
RemarquesAppeler ImFree pour libérer les resources associées
Version VAPI1.09 ou supérieure
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImLoad(void* ldv_img)
Paramètresldv_img: structure remplie précédemment par ImGetInf
RetourLDV_STATUS
DescriptionCharge en mémoire l'image depuis le fichier
RemarquesLa lecture des données image est effectuée lors de cet appel..
Version VAPI1.09 ou supérieure
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypevoid cdecl ImFree(void* ldv_img)
Paramètresldv_img: structure remplie précédemment par ImGetInf
RetourAucun
DescriptionLibère les resources allouées par ImGetInf et ImLoad
Remarques.
Version VAPI1.09 ou supérieure
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImSave(char* filename, void* ldv_img, char* save_options) ;
Paramètresfilename: nom du fichier de sauvegarde
ldv_img: structure LDV_IMAGE définissant l'image à sauvegarder
save_options: options standard, séparées par ';', pour la sauvegarde (option=<valeur>):
fmt = <extension du fichier en 3 lettres>
quality=<qualite 0...100>    (JPEG)
flipflop=<0 ou 2> (0: pas d'inversion, 2: inversion Y)   (TGA)
compression=<none or lzw> (TIF)
byteorder=<motorola ou intel>  (TIF)
RetourLDV_STATUS
DescriptionSauvegarde une image en mémoire vers un fichier
RemarquesExemple d'appel:
status = Vapi->ImSave( "h:\\test.tif", ldv_img, "fmt=TIF;compression=LZW;byteorder=motorola" ) ;
Certaines options sont relatives au format, elles seront simplement ignorées par le driver de sauvergarde.
Voyez le script opnsav.vcs pour un exemple de ces options
Version VAPI1.09 ou supérieure
+
+ +

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImDither(long method, long param, void* ldv_img_in, void* ldv_img_out)
Paramètresmethod: méthode à utiliser pour le tramage:
  • 0: Automatique, laisser VISION décider
  • 1: matrice monochrome
  • 2: niveaux de gris
  • 3: 216 couleurs
  • 4: bichromie
ldv_img_in: structure généralement fournie par VISION
ldv_img_out: structure LDV_IMAGE contenant l'image tramée
RetourLDV_STATUS
DescriptionDemande à VISION de tramer l'image source selon la méthode choisie.
Le nombre de plans en sortie doit être précisé avant l'appel par la variable out->Raster.fd_nplanes (1,4,8,16 ou32)
Remarques
Version VAPI1.09 ou supérieure
+
+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImGetStdData(void* ldv_img, char* query, char* out_data, long out_data_size) ;
Paramètresldv_img: structure remplie précédemment par ImGetInf
query: chaine de caractères standard pour demander la valeur d'un des attributs suivants:
  • filename: nom du fichier chargé par ImGetInf
out_data: chaine contenant la valeur de l'attribut demandé
out_data_size: taille du buffer passé en paramètre
RetourLDV_STATUS
DescriptionRécupère des données 'standard' sur l'image
RemarquesVoyez l'exemple optimg.ldv
Version VAPI1.09 ou supérieure
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Prototypelong cdecl ImComputeHistogram(void* ldv_img, HISTO *histo) ;
Paramètresldv_img: structure LDV_IMAGE définissant l'image sur laquelle calculer les histogrammes
histo: pointeur sur la structure de type HISTO contenant le résultat du calcul
RetourLDV_STATUS
DescriptionDemande à VISION de calculer les histogrammes sur une image
Remarques.histo->norm doit être initialisé pour indiquer à VISION quelle est la valeur maximale pour la plus haute fréquence de répétition
Voyez l'exemple optimg.ldv
Version VAPI1.09 ou supérieure
+

+

+ +
+
+ + + + + + + + + + + + + + +
Chapitre précédentRetour au sommaireChapitre suivant

+

Documentation VISION + (VAPI)

+

+


+

Télécharger la doc

+

IMAGE INTERFACE

+
 
+
+ \ No newline at end of file diff --git a/tools/vision/LDV/doc/vapi/in.htm b/tools/vision/ldv/doc/vapi/in.htm similarity index 97% rename from tools/vision/LDV/doc/vapi/in.htm rename to tools/vision/ldv/doc/vapi/in.htm index 1404efd..6373d7a 100644 --- a/tools/vision/LDV/doc/vapi/in.htm +++ b/tools/vision/ldv/doc/vapi/in.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/vapi/index.htm b/tools/vision/ldv/doc/vapi/index.htm similarity index 89% rename from tools/vision/LDV/doc/vapi/index.htm rename to tools/vision/ldv/doc/vapi/index.htm index 6b6dfed..5d9622d 100644 --- a/tools/vision/LDV/doc/vapi/index.htm +++ b/tools/vision/ldv/doc/vapi/index.htm @@ -1,9 +1,8 @@ - + Documentation VISION (VAPI) : Présentation -
@@ -18,9 +17,7 @@

Dernière - mise à jour : 18/03/18

+ mise à jour : 03/12/20

@@ -29,10 +26,7 @@

V A P I

-     - +   
@@ -138,8 +132,8 @@ non-exhaustive) des interfaces actuelles:

MEM Interface Logging Interface  -   -   + Image Interface  + File Interface  @@ -159,9 +153,7 @@ non-exhaustive) des interfaces actuelles:

Dernière - mise à jour : 18/03/18

+ mise à jour : 03/12/20

diff --git a/tools/vision/LDV/doc/vapi/lo.htm b/tools/vision/ldv/doc/vapi/lo.htm similarity index 97% rename from tools/vision/LDV/doc/vapi/lo.htm rename to tools/vision/ldv/doc/vapi/lo.htm index 92394f8..d24148e 100644 --- a/tools/vision/LDV/doc/vapi/lo.htm +++ b/tools/vision/ldv/doc/vapi/lo.htm @@ -1,4 +1,4 @@ - + diff --git a/tools/vision/LDV/doc/vapi/me.htm b/tools/vision/ldv/doc/vapi/me.htm similarity index 100% rename from tools/vision/LDV/doc/vapi/me.htm rename to tools/vision/ldv/doc/vapi/me.htm diff --git a/tools/vision/LDV/doc/vapi/modele.htm b/tools/vision/ldv/doc/vapi/modele.htm similarity index 100% rename from tools/vision/LDV/doc/vapi/modele.htm rename to tools/vision/ldv/doc/vapi/modele.htm diff --git a/tools/vision/LDV/doc/vapi/pr.htm b/tools/vision/ldv/doc/vapi/pr.htm similarity index 100% rename from tools/vision/LDV/doc/vapi/pr.htm rename to tools/vision/ldv/doc/vapi/pr.htm diff --git a/tools/vision/LDV/doc/vapi/ra.htm b/tools/vision/ldv/doc/vapi/ra.htm similarity index 100% rename from tools/vision/LDV/doc/vapi/ra.htm rename to tools/vision/ldv/doc/vapi/ra.htm diff --git a/tools/vision/LDV/doc/vapi/struct.htm b/tools/vision/ldv/doc/vapi/struct.htm similarity index 100% rename from tools/vision/LDV/doc/vapi/struct.htm rename to tools/vision/ldv/doc/vapi/struct.htm diff --git a/tools/vision/LDV/FRANCAIS/bhole.ini b/tools/vision/ldv/francais/bhole.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/bhole.ini rename to tools/vision/ldv/francais/bhole.ini diff --git a/tools/vision/LDV/FRANCAIS/BW.INI b/tools/vision/ldv/francais/bw.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/BW.INI rename to tools/vision/ldv/francais/bw.ini diff --git a/tools/vision/ldv/francais/cntcol.ini b/tools/vision/ldv/francais/cntcol.ini new file mode 100644 index 0000000..36efc00 --- /dev/null +++ b/tools/vision/ldv/francais/cntcol.ini @@ -0,0 +1,42 @@ +; This is a basic INI file used +; To setup a language for a LDV +; Module for VISION 4.0 or older +; For example, if your module is +; Named SOGOOD.LDV, you should create +; SOGOOD.INI (default file, this may be the English version) in LDV folder +; SOGOOD.INI in the FRANCAIS folder for the French version +; SOGOOD.INI in the ENGLISH folder for the English version +; SOGOOD.INI in the SVENSKA folder for the Swedish version +; ... and so on ... +; Now you just have to fill in the ShortName, LongName and Description fields +; Note that VISION will search for the INI file associated to the LDV file +; In the folder defined by the language setup (same as in LANGUES folder) + +[Informations] +; ShortName should not exceed 15 caracters +ShortName = Compte couleurs +; LongName should not exceed 31 caracters +LongName = Compte couleurs ligne/totalit‚ +; Description should not exceed 79 caracters +Description = Ce LDV compte les couleurs par ligne et en totalit‚ d'une image + +; Here comes the language parameters dependencies +[Parameter1] +Name = Method +; Method = 0: slection automatique par le LDV en fonction de l'image +; Method = 1: +; Par ligne: ajout au tableau des couleurs si non existante (lent si beaucoup de couleurs) +; Global: tableau de bits dimensionné au nombre max de couleurs +; Usage mémoire : 2MB max (32bit) + 1 ligne +; Method = 2: +; Par ligne: tri/reduction des couleurs +; Global: tri/reduction des couleurs +; Usage mémoire : image entière + 1 ligne +; Method = 3: (mix de #1 et #2) +; Par ligne: tri/reduction des couleurs +; Global: tableau de bits dimensionné au nombre max de couleurs +; Usage mémoire : 2MB max (32bit) + 1 ligne +Type = 1 +MinValue = 0 +DefaultValue = 0 +MaxValue = 3 \ No newline at end of file diff --git a/tools/vision/LDV/FRANCAIS/GAMMA.INI b/tools/vision/ldv/francais/gamma.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/GAMMA.INI rename to tools/vision/ldv/francais/gamma.ini diff --git a/tools/vision/ldv/francais/genimg.ini b/tools/vision/ldv/francais/genimg.ini new file mode 100644 index 0000000..a554e6f --- /dev/null +++ b/tools/vision/ldv/francais/genimg.ini @@ -0,0 +1,29 @@ +; This is a basic INI file used +; To setup a language for a LDV +; Module for VISION 4.0 or older +; For example, if your module is +; Named SOGOOD.LDV, you should create +; SOGOOD.INI (default file, this may be the English version) in LDV folder +; SOGOOD.INI in the FRANCAIS folder for the French version +; SOGOOD.INI in the ENGLISH folder for the English version +; SOGOOD.INI in the SVENSKA folder for the Swedish version +; ... and so on ... +; Now you just have to fill in the ShortName, LongName and Description fields +; Note that VISION will search for the INI file associated to the LDV file +; In the folder defined by the language setup (same as in LANGUES folder) + +[Informations] +; ShortName should not exceed 15 caracters +ShortName = GenŠre C.Image +; LongName should not exceed 31 caracters +LongName = GenŠre une image max couleurs +; Description should not exceed 79 caracters +Description = GenŠre une image avec le maximum de couleurs possibles + +; Here comes the language parameters dependencies +[Parameter1] +Name = Image Type +Type = 1 +MinValue = 1 +DefaultValue = 1 +MaxValue = 1 diff --git a/tools/vision/LDV/FRANCAIS/INVERT.INI b/tools/vision/ldv/francais/invert.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/INVERT.INI rename to tools/vision/ldv/francais/invert.ini diff --git a/tools/vision/LDV/FRANCAIS/LIGHT.INI b/tools/vision/ldv/francais/light.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/LIGHT.INI rename to tools/vision/ldv/francais/light.ini diff --git a/tools/vision/LDV/FRANCAIS/PIXEL.INI b/tools/vision/ldv/francais/pixel.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/PIXEL.INI rename to tools/vision/ldv/francais/pixel.ini diff --git a/tools/vision/LDV/FRANCAIS/puzzle.ini b/tools/vision/ldv/francais/puzzle.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/puzzle.ini rename to tools/vision/ldv/francais/puzzle.ini diff --git a/tools/vision/LDV/FRANCAIS/ROTATE.INI b/tools/vision/ldv/francais/rotate.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/ROTATE.INI rename to tools/vision/ldv/francais/rotate.ini diff --git a/tools/vision/LDV/FRANCAIS/XWAVE.INI b/tools/vision/ldv/francais/xwave.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/XWAVE.INI rename to tools/vision/ldv/francais/xwave.ini diff --git a/tools/vision/LDV/FRANCAIS/YPERSC.INI b/tools/vision/ldv/francais/ypersc.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/YPERSC.INI rename to tools/vision/ldv/francais/ypersc.ini diff --git a/tools/vision/LDV/FRANCAIS/YWAVE.INI b/tools/vision/ldv/francais/ywave.ini similarity index 100% rename from tools/vision/LDV/FRANCAIS/YWAVE.INI rename to tools/vision/ldv/francais/ywave.ini diff --git a/tools/vision/LDV/GAMMA.INI b/tools/vision/ldv/gamma.ini similarity index 100% rename from tools/vision/LDV/GAMMA.INI rename to tools/vision/ldv/gamma.ini diff --git a/tools/vision/ldv/gamma.ldv b/tools/vision/ldv/gamma.ldv new file mode 100644 index 0000000000000000000000000000000000000000..c43a69f7876fa63228f75f05b2b125dd749a9792 GIT binary patch literal 9560 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 literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/genimg.ini b/tools/vision/ldv/genimg.ini new file mode 100644 index 0000000..d0502d7 --- /dev/null +++ b/tools/vision/ldv/genimg.ini @@ -0,0 +1,29 @@ +; This is a basic INI file used +; To setup a language for a LDV +; Module for VISION 4.0 or older +; For example, if your module is +; Named SOGOOD.LDV, you should create +; SOGOOD.INI (default file, this may be the English version) in LDV folder +; SOGOOD.INI in the FRANCAIS folder for the French version +; SOGOOD.INI in the ENGLISH folder for the English version +; SOGOOD.INI in the SVENSKA folder for the Swedish version +; ... and so on ... +; Now you just have to fill in the ShortName, LongName and Description fields +; Note that VISION will search for the INI file associated to the LDV file +; In the folder defined by the language setup (same as in LANGUES folder) + +[Informations] +; ShortName should not exceed 15 caracters +ShortName = GenImg +; LongName should not exceed 31 caracters +LongName = Generate Images +; Description should not exceed 79 caracters +Description = Generate test images + +; Here comes the language parameters dependencies +[Parameter1] +Name = Image Type +Type = 1 +MinValue = 1 +DefaultValue = 1 +MaxValue = 1 diff --git a/tools/vision/ldv/genimg.ldv b/tools/vision/ldv/genimg.ldv new file mode 100644 index 0000000000000000000000000000000000000000..db2f06e9a680189ff9adffb267b59524c4fce8b4 GIT binary patch literal 3402 zcmc&%Z){W76+iFUH80MK`{HK7q>S9W7|Ucy97sR`rC>ip`(j)twNtuI)%+Y{Kb!>H zavbKOh&f$8gb!2G3Qc^NCbkb7NEJe?LQF%G!?r4A`(Ri#7HL}2jX|J{L={62d3fhO zCyze@O_eI`MEBm`{oQlVJ?Gx%b8nP7fXZ3`<}(1f3m(ZD07U`d?*j-c>`oNY`(|)Y zi~0D55tMz=^hi9JAY^lE8zD~brq0fm?QKL#riUYm0n(kwMAL~# z22~=%ga9~XQW@hMNie1ug_Ycmf4~)Qwdb+ELxzCA`~}otSzjnJ&^UwaT~b+?%y&Vt z)jf3q;6-Spx=X%y=?oR%G-Y9#YKU%Uw|xkj#Y?`rSW&C*Nk4UQuF72)Cl+78)3XS? z=L^VLg|l67WXKYnOqYTl!4_Ml?6xjo|JC)F}*zDhTz0`jE;fmmvWW?xsSX{S0@MHLSU-5N8{eqxjf~Xf;*@mzrXoI z@&bCoQ%_8{o8Wr6uX$$rYxlo7aPf3E`0g}uF{?J%`M?xC8Ku=#rHw{Y#05`}5t*O!Sh{hY<_F$3#a^G^B+2Q$#T5uqLI0AupdhB7!h;-g9 zvI&~iEuvensm<1Ps`D(wEOxo3PPJg~&c}>;*S9WKRIXuf9>4roVoRi(&i`OWxxdTc zGDx4ft!QusTa6)Ngs~qH4nSTQQ^6raHXKM!~vSfU}1Fy23az zH7h;7kaI#Ihkp~wbswv;yK~O^ZFEN}9n{Zbq*ApY4q*)40na-<${meA{tOt0g>&)A`7AM z7?ckA=d#5ukRM}8*JPCoxf>eZm?;%6j)4KaT?%=s8!(3y6@Y6`M=Q*hqlHT=(HbeE zM|w<)bT(U*3)!NdwhP%JICa#kqpXfj=x9bqORI>n>Bz0413H@0(Ru%@4Og=jnfbzM zoY|-2B(r*)T*xEL(kKc2j=9Uzc8*4byD=UG_^2A{p`*SA+E`iY0K&{qUYk_2@{RCL zk#(?6wux{lpFi@?jV)gsGnCqxm2+Yr_rIE5_20cJ zc`B=&M{SOIQmnd^dDx*z=QE_NuuYSWX9yj4W3u?aO6e;KFs#A&f@uv`u`_np`J8|jb(-ZHU1UX|GL%fAWJ?eR%>Up)|j6TjQ%b!OZn-- zdx)l2ksOqJG51x_+(+{-=3euj2LLVS_(A6GTz}F+ZwUSbz5Oft6~E+Fx>Ee~Z?|5c ze1}24D6&_^ue|rqqhxSyVB;AZ2kh1hfd^pPh&Q%50i5Sc01?L;Cv9BNdv0*9|KM+6 zkb$|BJ*;J7T+xfRssu-cc)`E>wb$Ew!PtHPSl}8D;5);NH3t@Cc&J5e0bBbRyA{?W zw!%-OQ}DC4E&`sL@N>zd7$sZKbHwC`BXVR}lGw7Z-l8W@lhvS)ebOf+Z z_CHSarlY~p1YjZY1nNYFK%$lzX#a1?2C_#f*MW452~%h1BZ5y zR3;pW;lBZ4WM0{rdU|YyeWs63k}Oo2hX>SfCY^{K3}=$zk<7sU$nY?UMdHKJ0piR= z`ornyKs+7Yp9!bZ$^9ggOp=jN+fnoe^($MY6bwq}R9 h#{5~Gz>$+SE#)G)rTM!i-o}|k6Rmi=@saRG_%B-kPB;Jn literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/INVERT.INI b/tools/vision/ldv/invert.ini similarity index 100% rename from tools/vision/LDV/INVERT.INI rename to tools/vision/ldv/invert.ini diff --git a/tools/vision/ldv/invert.ldv b/tools/vision/ldv/invert.ldv new file mode 100644 index 0000000000000000000000000000000000000000..911f6be1ecd4e094dff302341930ac3db804db81 GIT binary patch literal 3209 zcmc&$U2Gf25uQ6x`EAW6G0nju6!3`j8N_&t<|1;4; zZ2{7aL`W)EAo5W;+Se94N|25v3sad~mXMBiA0eK=o&yKkp70SRSC~j-M@e6{m@H%y zMN~;l5CY&pjaB^4-{Xpo&P8l@l5r5;`3M@3ca|#*IG0c=5o>vFu^TGw z{__g}+rUY6cLh(;8EJq^R0X0T>205h1f>wg>|c6; zJb~ZiXqqGb@cAkps$u$`JB?n4!m@Bm*8!}aw8e+oR!;($*Td7!JHX+{C4YhzULkyV z+G~y6(N8LaNA5sT6MWmt{>K-90f-I?gJ7Aw{rD`f(5U8s4d7hzG}>_wMSRUY=`=lK$uX}RfY0W|FV>$30!d0yvA*$;sa{~0A>?FeL!ih9W%|db8*w zi!BEnw&+Km54?w3d;-|U>a2g(W)&FPe6Pk{MJ#a|l(9<;l zLV!koL8^1AxQDn~*bDL+d>4DswE&|4U9(_Czo)_qiTmEfc|jNMZXsC&4fHvBuC32e z>q3ZJC%*=+Lk6KR>FUOq8T2^itN_?%sTTUV0iHZB`ALH`r<_9B75P1_5lkCOXQhP4 z%6g@g*m}NBy?Jt7$X#-%fFMN7^0OF!kFzM3^@XH^9K8#c(!i{G`QI!J1KdOW?w=OlS=?K< zkLU5^r$wFxNZA`&Vx`oE2Fx4P@w&!S32MJ8!H4J8&S56GpuXR`EA+ukMgOyUYZF~I z(42uZ1067sxP|Vo8EDZ!FB&LsAk{#mh8&gqfXMN)3Jb9_DbP=bR%R-DVR4qxSJgBh z^S87NEa{c2vtUAR*JE-+3+9=M2C(}1XvO7Pv~XiHT8>JLNPk|9ba|$tmS-v<+ON%2 zz+<3(1I-xd7Y14~(E1i)90u|m=!AjJ8|aPDvIAFhRG3@ktvF{sA17Hh;^bqpxJ;uY z_@(_@v`A@d@Sra-pC!9NH90(4r2`M4n!^4n?RyB(_kR4@{;#BeMFNI3abGh(!q;t1 zv{;3D+cvSm{`JOhG;Me6X#VETZ|&MmS|n#p;mh8C#r6N!>X?Q5F(=f~oIvvu<|GTv z${i_TjQMzFIA^0d)%r(zbMhCpkP^_k^TJ!d>sp}leJ1s)#NIq}^X%Wwk+GH0M=v{g zV7nH=pMd#Myvyr;1-$$(014kY=Nx=A@Y}JK;mIp7#=uJ66|ZI}T#;sfanW5TErbpp z`A%m)aClF$z&lT1_O@WlgAFADG$FQuqjQ$+f}M!%a8Y>;UiNhpkUxM|6j|dGM^wHn zXYa9@`#LmX=5Mdw3PQC`c-N&8OWIbg1Dc7S{7CU@c%!=FZp@WDdVx8;DRo!Ed!ivl zD+lWh%!RvxFJP`H-K>D9t`iHSThCV)pmFFew!^qEI1%wLL0c5<$SqJvt zM?Qu4?a;wvz%aDJu^dPKDYeABShaT=m|!xIC86o5WU-j3%Kl@6cCgrG>0%)cEkcOr zX)Dq~H$(_+9k@D#kpBzP^&`n5Iv7ag6T_K_Ofi$30y-GU6wgkP(P=`x?=K{y(^=@t zW{Olq@!?!{gcie}QaPDP{(!2s9m`D7?Gk#BF=BfE*JCZQ?cxI&9aA}#eHpP(ZTfb)(9K2aF Q(?)P{4@lt5tHuca4fp%n;Q#;t literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/LDG.H b/tools/vision/ldv/ldg.h similarity index 96% rename from tools/vision/LDV/LDG.H rename to tools/vision/ldv/ldg.h index 310bbe6..bea1bbd 100644 --- a/tools/vision/LDV/LDG.H +++ b/tools/vision/ldv/ldg.h @@ -1,186 +1,187 @@ -/* - * LDG : Gem Dynamical Libraries - * Copyright (c) 1997-2004 Olivier Landemarre, Dominique Bereziat & Arnaud Bercegeay - * - * Header file of LDG devel library, should be included after the AES header - * - * Current version is 2.31 - * - * 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. - * - * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id: ldg.h 102 2012-10-04 22:31:16Z vriviere $ - */ - -#ifndef __LDG__ -#define __LDG__ - - -#ifdef __PUREC__ -#define CDECL cdecl -#else -#include -#define CDECL __CDECL -#endif - -#ifdef __GEMLIB__ -#define ldg_global aes_global -#else -#ifdef __PUREC__ /* For Pure C users using PCGEMLIB */ -#define ldg_global _GemParBlk.global -#endif -#endif - -#define LDG_QUIT 0x4C4A /* ldg->client : a lib discharged */ -#define LDG_LOST_LIB 0x4C4D /* ldg->client : a lib lost */ -#define LDG_COOKIE 0x4C44474DL /* 'LDGM' */ -#define PATHLEN 128 - -/* - * Data structures - */ - -typedef struct entrie { - char *name; /* Function name */ - char *info; /* Describe the prototype of the function */ - void *func; /* Function address */ -} PROC; - -/* - * The LDG-library descriptor (private) - */ - -typedef struct ldg { - long magic; /* magic number ('LDGM') */ - short vers; /* library version */ - short id; /* AES-id of launcher */ - short num; /* count of avalaible functions */ - PROC *list; /* pointer to the functions list */ - char *infos; /* describe the library */ - void *baspag; /* basepage of library */ -/* from version 0.99 */ - unsigned short flags; /* library flags ( shared, resident, locked) */ -/* from version 0.99c */ - void (*close)(void); /* fonction launched by ldg_term() */ -/* from version 1.00 */ - short vers_ldg; /* LDG-protocol version */ - char path[PATHLEN]; /* real path of the lib */ - long user_ext; /* own library extension */ - long addr_ext; /* for future extension */ -} LDG; - -/* - * The LDG cookie - */ - -typedef struct { - short version; /* The cookie number version */ - char path[PATHLEN]; /* Path of LDG-libraries */ - short garbage; /* The garbage collector time */ - short idle; /* Obsolet : for backward compatibility */ - - LDG* CDECL (*ldg_open) ( const char *lib, short *gl); - /* Open a library */ - short CDECL (*ldg_close) ( LDG *ldg, short *gl); - /* Close a library */ - void* CDECL (*ldg_find) ( char *fnc, LDG *ldg); - /* Find a function in a library */ - LDG* CDECL (*ldg_open_ev)( char *lib, short *gl, void (*)(short*)); - /* Obsolet : for backward compatibility */ - short error; /* Last error occuring */ - void CDECL (*ldg_garbage)( short *gl); - /* Release unused libs */ - void CDECL (*ldg_reset)( short *gl); - /* Release all libs */ - void* internal; /* Reserved */ - short CDECL (*ldg_libpath)( char *, short *global); - /* Find the path of a library */ -} LDG_INFOS; - -/* - * This structure is used by ldg_init() to initiate the - * the LDG-protocol inside a LDG-library. - */ - -typedef struct ldglib { - short vers; /* library version */ - short num; /* count of avalaible functions */ - PROC *list; /* pointer to the functions list */ - char *infos; /* description of the lib */ - unsigned short flags; /* library flags (shared, locked, resident) */ - void (*close)(void); /* function executed by ldg_term()*/ - long user_ext; /* own library extension */ -} LDGLIB; - -/* value of the 'flag' field */ -#define LDG_NOT_SHARED 0x1 /* the library is unshareable */ -#define LDG_LOCKED 0x2 /* the library is locked */ -#define LDG_RESIDENT 0x4 /* the library is memory resident */ -#define LDG_STDCALL 0x100 /* a2/d2 are not scratch register - private */ - -/* Errors returned by ldg_error() */ -#define LDG_LIB_FULLED -1 -#define LDG_APP_FULLED -2 -#define LDG_ERR_EXEC -3 -#define LDG_BAD_FORMAT -4 -#define LDG_LIB_LOCKED -6 -#define LDG_NO_MANAGER -7 -#define LDG_NOT_FOUND -8 -#define LDG_BAD_LIB LDG_BAD_FORMAT -#define LDG_NO_MEMORY -9 -#define LDG_TIME_IDLE -10 -#define LDG_NO_TSR -11 -#define LDG_BAD_TSR -12 -#define LDG_NO_FUNC -13 - -/* Client functions */ -LDG* ldg_open ( const char *name, short *gl); -short ldg_close ( LDG *lib, short *gl); -short ldg_error ( void); -void* ldg_find ( char *name, LDG *ldg); -short ldg_libpath ( char *path, short *gl); - -/* Server functions */ -int ldg_init ( LDGLIB *libldg); -char *ldg_getpath ( void); - -/* Diverse functions */ -int ldg_cookie ( long, long *); -void ldg_debug ( char *, ...); -void* ldg_Malloc ( long size); -void* ldg_Calloc ( long count,long size); -int ldg_Free ( void *memory); -void* ldg_Realloc ( void *oldblk, long oldsize, long newsize); -#ifndef __mcoldfire__ -void ldg_cpush ( void); -#endif -long CDECL ldg_callback( void *f, ...); - -/* For backward compatibility */ -#define ldg_exec(a,b) ldg_open( b, ldg_global) -#define ldg_exec_evnt(a,b,c) ldg_open( b, ldg_global) -#define ldg_term(a,b) ldg_close( b, ldg_global) -#define ldg_libexec_evnt(a,b,c) ldg_open( a, b) -#define ldg_libexec(a,b) ldg_open( a, b) -#define ldg_libterm(a,b) ldg_close( a,b) - -/* C-library version (currently 1.20) */ -struct _ldg_version { - char *name; - short num; -}; - -extern struct _ldg_version ldg_version; - -#endif /* __LDG__ */ +/* + * LDG : Gem Dynamical Libraries + * Copyright (c) 1997-2004 Olivier Landemarre, Dominique Bereziat & Arnaud Bercegeay + * + * Header file of LDG devel library, should be included after the AES header + * + * Current version is 2.31 + * + * 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. + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id: ldg.h 102 2012-10-04 22:31:16Z vriviere $ + */ + +#ifndef __LDG__ +#define __LDG__ + + +#ifdef __PUREC__ +#define CDECL cdecl +#else +#include +#define CDECL __CDECL +#endif + +#ifdef __GEMLIB__ +#define ldg_global aes_global +#else +#ifdef __PUREC__ /* For Pure C users using PCGEMLIB */ +#define ldg_global ((short*)&_GemParBlk.global[0]) +/*#define ldg_global _GemParBlk.global*/ +#endif +#endif + +#define LDG_QUIT 0x4C4A /* ldg->client : a lib discharged */ +#define LDG_LOST_LIB 0x4C4D /* ldg->client : a lib lost */ +#define LDG_COOKIE 0x4C44474DL /* 'LDGM' */ +#define PATHLEN 128 + +/* + * Data structures + */ + +typedef struct entrie { + char *name; /* Function name */ + char *info; /* Describe the prototype of the function */ + void *func; /* Function address */ +} PROC; + +/* + * The LDG-library descriptor (private) + */ + +typedef struct ldg { + long magic; /* magic number ('LDGM') */ + short vers; /* library version */ + short id; /* AES-id of launcher */ + short num; /* count of avalaible functions */ + PROC *list; /* pointer to the functions list */ + char *infos; /* describe the library */ + void *baspag; /* basepage of library */ +/* from version 0.99 */ + unsigned short flags; /* library flags ( shared, resident, locked) */ +/* from version 0.99c */ + void (*close)(void); /* fonction launched by ldg_term() */ +/* from version 1.00 */ + short vers_ldg; /* LDG-protocol version */ + char path[PATHLEN]; /* real path of the lib */ + long user_ext; /* own library extension */ + long addr_ext; /* for future extension */ +} LDG; + +/* + * The LDG cookie + */ + +typedef struct { + short version; /* The cookie number version */ + char path[PATHLEN]; /* Path of LDG-libraries */ + short garbage; /* The garbage collector time */ + short idle; /* Obsolet : for backward compatibility */ + + LDG* CDECL (*ldg_open) ( const char *lib, short *gl); + /* Open a library */ + short CDECL (*ldg_close) ( LDG *ldg, short *gl); + /* Close a library */ + void* CDECL (*ldg_find) ( char *fnc, LDG *ldg); + /* Find a function in a library */ + LDG* CDECL (*ldg_open_ev)( char *lib, short *gl, void (*)(short*)); + /* Obsolet : for backward compatibility */ + short error; /* Last error occuring */ + void CDECL (*ldg_garbage)( short *gl); + /* Release unused libs */ + void CDECL (*ldg_reset)( short *gl); + /* Release all libs */ + void* internal; /* Reserved */ + short CDECL (*ldg_libpath)( char *, short *global); + /* Find the path of a library */ +} LDG_INFOS; + +/* + * This structure is used by ldg_init() to initiate the + * the LDG-protocol inside a LDG-library. + */ + +typedef struct ldglib { + short vers; /* library version */ + short num; /* count of avalaible functions */ + PROC *list; /* pointer to the functions list */ + char *infos; /* description of the lib */ + unsigned short flags; /* library flags (shared, locked, resident) */ + void (*close)(void); /* function executed by ldg_term()*/ + long user_ext; /* own library extension */ +} LDGLIB; + +/* value of the 'flag' field */ +#define LDG_NOT_SHARED 0x1 /* the library is unshareable */ +#define LDG_LOCKED 0x2 /* the library is locked */ +#define LDG_RESIDENT 0x4 /* the library is memory resident */ +#define LDG_STDCALL 0x100 /* a2/d2 are not scratch register - private */ + +/* Errors returned by ldg_error() */ +#define LDG_LIB_FULLED -1 +#define LDG_APP_FULLED -2 +#define LDG_ERR_EXEC -3 +#define LDG_BAD_FORMAT -4 +#define LDG_LIB_LOCKED -6 +#define LDG_NO_MANAGER -7 +#define LDG_NOT_FOUND -8 +#define LDG_BAD_LIB LDG_BAD_FORMAT +#define LDG_NO_MEMORY -9 +#define LDG_TIME_IDLE -10 +#define LDG_NO_TSR -11 +#define LDG_BAD_TSR -12 +#define LDG_NO_FUNC -13 + +/* Client functions */ +LDG* ldg_open ( const char *name, short *gl); +short ldg_close ( LDG *lib, short *gl); +short ldg_error ( void); +void* ldg_find ( char *name, LDG *ldg); +short ldg_libpath ( char *path, short *gl); + +/* Server functions */ +int ldg_init ( LDGLIB *libldg); +char *ldg_getpath ( void); + +/* Diverse functions */ +int ldg_cookie ( long, long *); +void ldg_debug ( char *, ...); +void* ldg_Malloc ( long size); +void* ldg_Calloc ( long count,long size); +int ldg_Free ( void *memory); +void* ldg_Realloc ( void *oldblk, long oldsize, long newsize); +#ifndef __mcoldfire__ +void ldg_cpush ( void); +#endif +long CDECL ldg_callback( void *f, ...); + +/* For backward compatibility */ +#define ldg_exec(a,b) ldg_open( b, ldg_global) +#define ldg_exec_evnt(a,b,c) ldg_open( b, ldg_global) +#define ldg_term(a,b) ldg_close( b, ldg_global) +#define ldg_libexec_evnt(a,b,c) ldg_open( a, b) +#define ldg_libexec(a,b) ldg_open( a, b) +#define ldg_libterm(a,b) ldg_close( a,b) + +/* C-library version (currently 1.20) */ +struct _ldg_version { + char *name; + short num; +}; + +extern struct _ldg_version ldg_version; + +#endif /* __LDG__ */ diff --git a/tools/vision/ldv/ldg.lib b/tools/vision/ldv/ldg.lib new file mode 100644 index 0000000000000000000000000000000000000000..a9bd4a27a507315df36ccf236aed27008eca8408 GIT binary patch literal 3036 zcma)8U2NOd6+WVAi6R+RRXkgDT=zy+G|zQx#eYpY#nF$GFp@2Ka*EnR08y4HT8@4= zSxQsDz}$Hl+74Ll3{78#q9}^4#U7T2q1XUpXuCdm?TeR}ZBO1Fif#e66k9g9K^N`Z zOWI3PBp4rf&OP@#-}&LW7fjuTE&$gy02csoyaVi!equ?0L2*!;O9$1!x#;gncyi+G zRO(lBFA*`i$g}b^2jw=>3qLRviX@TL`gEE^G?^qreZX7T*>o@)$fg?VXTH$?!S$p2 zxJpDUh~_^nF6}}ru4Rt5{NZ_;h5FG;H$YG){K+9+{eU>OSGQmI^hL4+A~6Nn%d|jD z$M(eV`_yBES3mS~*I&5)y-#1Va6Um3Gx7J9Kq$Ynu{E2X+>w2$#zX4vWOaMWUab3N zL;hdgnn05GRy>#fO4r(LZ!y#hS7VECRdbrRG|v3jZ2F;5yQyD`gGGJoo~Zl&R+mq; z42q|}ptZ_Nj$1qPRVB(+cK;@0aV>1hAN*!?liEjG?(WCV!jWq}0l3l4)ED49vPoG$ zi2eh>zqGT^^P*3no!Xf%{~DGYuww?YV^3h#7%|Rb1l|5kIwQl=zz;712SU#x@F3z_ z00k{Fw4<(oZ+L|pg)Y>+@OtcBcrz3x5dAB>9gAvw%$JE?i&l2I;+-b6=P(6U!MIgH zKqaD~SUQQ2wO9nZ*9>HXml;>HK?tbP+hETE;swK}dEZ+v$jHLas)2RW zp$XF}@f2>vA{NW3mbvs8?0q>JAE(`8e>cHwz8^mpfvdA=TD$t0C-h7@2(Ny8mUSR> zu+VGeHoiL4@!<+I3(82xpAsLT_KOvGOm~iLHk%qhwh0b-rr9inH?~N4Drd}EaS9%` zE~d`gah2MWq{Xg0qWNkqcdf*IT_uV0baDlnk$|K1>c_!^<<$$6$?94#VFLE|P-gX) ztCd}nKo5`Q5mbADIQEh4{v@$a@7_$4gvM=bSsoTMomXqpLVe9U1s_R}a5g^u3}xZ2 z05qGUE8u9}F}tr_DT&b=&0V_=>n;eVZ#FL+hd~v{>6_3MyYkv6y~%+e4ocQ6k)+vb z;qm^65Xl%A_!;#3JB;8ZAW==utYuV>r?8t*GixYsCDsht^lh)%RjWic_`XSvPu>Kc zF*=BSch$t`-|&VIE##gxvl<%}0KG=Y)Znua&^X3_JELkoe-#3mpF_a&JF0meE&TnS z)s2`3^J^m)q2K1T?}67o89eag-xBmO?Qh6xkqv=N+DK_hH2-7iTFR2KpZb#DrI z*#1I6!(Iif)pi)7ovVjd;AwE+`vP#WqtFtIVCOgsVSd*?MKaO9K)1DKJ(lmbV6VvC zYt4&3_t{7$eG}fA+zGQgmrbeP-v>T}C(+b8-q2pMxZhP=S+VFzO*I5|;s6T&_OIZ` z0Xae6iB+RJv0(@^tJl8-kM=oztA8e;o{r$T0d}Ls7%sJqGd?%@N12bk+x$GW{Xn+y z2eDZ^*h7By6^r>^&be0x@jRv)G%F4ch@}N1Td!3L$~eHf+3<$)t8`xOCtT;1STWW+0Q zKoTH;djaHDkoR%q3@fyzPUIG#L+XZc(@lTL077mK zhAeyFz%mpcfz<^fdu*`TP=T&~yh=JQPC>P(bPDoT3A zy{y->daYKixn>%sep%1EaHE27Dr@=0TI)2m3Nx4V+H$d4ahCNm?zT=9YP#;6elAz6 z4?Cyu98~jssb0-VG&>v1&QzmPs^%7)hF;ezmjt?7HT4REm5TFbuD-~O6a>tQ$bDb<0?)F6%P&pyzi!m%r$my3Dd;+!>we%*#re zah}0im@Uq>!5Pn2E6*(h@VR=mBuv;TwPs7@M#)8&3$;r)M-O|xH4(#;_u%KhKikJS literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/ldv.h b/tools/vision/ldv/ldv.h new file mode 100644 index 0000000..eb648dc --- /dev/null +++ b/tools/vision/ldv/ldv.h @@ -0,0 +1,150 @@ +#ifndef __LDV_H +#define __LDV_H + +#ifndef __LDG__ +#include "ldv\ldg.h" +#endif + +#ifndef __VAPI_H +#include "ldv\vapi.h" +#endif + +/* Error codes */ +typedef long LDV_STATUS ; +#define ELDV_NOERROR 0x0 /* No error */ +#define ELDV_INVALIDPARAMETER 0x1 /* At least one parameter is invalid */ +#define ELDV_NBPLANESNOTSUPPORTED 0x2 /* Unsupported number of planes */ +#define ELDV_NOTENOUGHMEMORY 0x3 /* Not enough memory */ +#define ELDV_PREVIEWNOTSUPPORTED 0x4 /* Preview is not supported */ +#define ELDV_RUNNOTSUPPORTED 0x5 /* Run is not supported (!) */ +#define ELDV_BADVAPIVERSION 0x6 /* No VAPI or wrong version */ +#define ELDV_IMGFORMATMISMATCH 0x7 /* Image format is not compatible */ +#define ELDV_CANCELLED 0x8 /* User cancelled the operation */ +#define ELDV_BADINTERFACE 0x9 /* LDV does not expose a proper interface */ +#define ELDV_GENERALFAILURE 0xF /* General failure, reason unknown */ + + +/* Macro aiming to test if a */ +/* LDV call was successful */ +#define LDV_SUCCESS(x) ((x) == ELDV_NOERROR) + + +/* LDV types */ +#define TLDV_MODIFYIMG 0x01 /* Modify image : filter, scaler, ... */ + +/* Flags field bitmask for */ +/* A given number of planes */ +#define LDVF_STDFORMAT 0x00000001UL /* Image is standard format */ +#define LDVF_ATARIFORMAT 0x00000002UL /* Image is ATARI format (Falcon) */ +#define LDVF_SPECFORMAT 0x00000004UL /* Image is specific format (video card/emulator)) */ +#define LDVF_SUPPORTPREVIEW 0x00000008UL /* Preview is supported */ +#define LDVF_AFFECTPALETTE 0x00000010UL /* Module changes palette (if NbPlanes <= 8) */ +#define LDVF_SUPPORTPROG 0x00000020UL /* Module wil call progress fonction */ +#define LDVF_OPINPLACE 0x00000040UL /* Module operate inplace and changes the source (out parameter is ignored) */ +#define LDVF_REALTIMEPARAMS 0x00000080UL /* Module supports real time parameter changes in preview mode */ +#define LDVF_SUPPORTCANCEL 0x00000100UL /* Module supports user cancellation (see PrSetProgEx) */ +#define LDVF_NOSELECTION 0x00000200UL /* Module can only operate on full image, not sub block */ +#define LDVF_NOCHANGE 0x00000400UL /* Module won't change any part of the image (e.g. report LDV) */ + +/* This struct reports what a LDV */ +/* Can do for each number of planes */ +typedef struct +{ + char NbPlanes ; /* Image number of planes : */ + /* 0 : ends this structure */ + /* 1, 2, 4, 8, 16, 24, or 32 */ + + char NbPlanesOut ; /* Number of planes after modification */ + + unsigned long Flags ; /* LDVF_... */ +} +LDV_CAPS ; + + +#define LDVNBMAX_PARAMETERS 4 /* Maximum 4 parameters can be passed by VISION */ + +typedef union +{ + short s ; + float f ; + void* str ; +} +LDV_BASICPARAM ; + +#define LDVT_SHORT 1 +#define LDVT_FLOAT 2 +#define LDVT_FILE 3 +typedef struct +{ + char Name[1+15] ; + char Type ; + LDV_BASICPARAM MinValue ; + LDV_BASICPARAM DefaultValue ; + LDV_BASICPARAM MaxValue ; +} +LDV_DEF_PARAM ; + +typedef struct +{ + short StrSize ; /* Size in bytes of LDV_INFOS */ + short Type ; /* TLDV_... */ + char Authors[1+45] ; /* Author(s) list */ + + LDV_CAPS Caps[10] ; /* What this LDV can do */ + /* For each number of planes */ + /* Last element is zeroed to */ + /* Mark the end */ + char RFU[16] ; /* Futur usage */ +} +LDV_INFOS ; + +typedef struct +{ + short Red ; /* 0...1000 */ + short Green ; /* 0...1000 */ + short Blue ; /* 0...1000 */ +} +VDI_ELEMENTPAL ; + +typedef struct +{ + short NbColors ; /* Number of colors for this palette */ + VDI_ELEMENTPAL* Pal ; /* Indexed from VDI */ +} +LDV_PALETTE ; + +typedef struct +{ + short x1, y1, x2, y2 ; /* Rectangle defining the sub block to work on */ + short NbParams ; + LDV_BASICPARAM Param[LDVNBMAX_PARAMETERS] ; + short ParamType[LDVNBMAX_PARAMETERS] ; /* A bit redundant but useful to free allocated memory for file name */ + + /* Since VAPI_LDVVERSION 0x0106 */ + /* LDV can return a text to be displayed by VISION */ + char ldv_txt_out[128] ; +} +LDV_PARAMS ; + +/* Image definition for the LDV to operate on */ +typedef struct +{ + short RasterFormat ; /* LDVF_STDFORMAT, LDVF_ATARIFORMAT or LDVF_SPECFORMAT */ + /* VISION selects the optimal format from */ + /* LDV capabilities reported via GetLDVCapabilities */ + + MFDB Raster ; /* Image */ + + LDV_PALETTE Palette ; /* Valid if Raster.fd_nplanes <= 8 */ + + void* Context ; /* Used by Image I/O interface */ +} +LDV_IMAGE ; + + +long cdecl ImGetInf(char* filename, void* ldv_img) ; +long cdecl ImLoad(void* ldv_img) ; +void cdecl ImFree(void* ldv_img) ; + + +#endif diff --git a/tools/vision/ldv/ldvcom.h b/tools/vision/ldv/ldvcom.h new file mode 100644 index 0000000..ae3cddd --- /dev/null +++ b/tools/vision/ldv/ldvcom.h @@ -0,0 +1,91 @@ +#ifndef __LDVCOM_H +#define __LDVCOM_H + +#include "ldv\ldv.h" + +typedef struct +{ + char* ShortName ; /* Module short name (15 chars max) */ + char* LongName ; /* Module long name (31 chars max) */ + char* Description ; /* Module description (79 chars max) */ + + /* Parameters that can apply */ + LDV_DEF_PARAM Params[LDVNBMAX_PARAMETERS] ; + char* ParamLabels[LDVNBMAX_PARAMETERS] ; /* Optional labels for parameters */ + /* Should be part of LDV_DEF_PARAM */ + /* But that would break compatibility with previous LDVs */ + +} +LDV_INI_SPEC ; + +/* Image Modification Interface */ +typedef struct +{ + /* Allows VISION to allocate required ressources for LDV to operate */ + /* You have to indicate in out->Raster the output image size */ + /* As well as in out->Palette.NbColors field */ + /* In params, you have to tell which zone has to be send to Undo buffer */ + LDV_STATUS cdecl (*PreRun)(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; + + /* Performs LDV operation */ + /* VISION already allocated required memory from previous call */ + /* DO NOT ALLOCATE OR FREE MEMORY THAT VISION WILL USE AFTER THIS CALL */ + LDV_STATUS cdecl (*Run)(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; + + /* Same as previous one, but in preview mode */ + LDV_STATUS cdecl (*Preview)(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; +} +ILDVModifImg ; + +typedef struct +{ + LDG* Ldg ; /* LDG Module */ + + char* FileName ; /* Only name, no path */ + short Version ; /* Same as Ldg->vers */ + + LDV_INFOS Infos ; /* Module informations */ + LDV_INI_SPEC IniSpec ; /* .INI specific */ + + /* Reports capabilities to VISION */ + /* VISION gives access to its Application Programmer Interface */ + LDV_INFOS* cdecl (*GetLDVCapabilities)(VAPI* vapi) ; + + int NbReferences ; /* How many times this module is referenced */ + ILDVModifImg* IModifImg ; /* TLDV_MODIFYIMG Interface */ +} +LDV_MODULE ; + +typedef struct +{ + unsigned long prerun_ms ; + unsigned long pre_ldv_ms ; + unsigned long run_ms ; + unsigned long post_ldv_ms ; + unsigned long total_ms ; +} +LDV_PERF ; + +/* Flags for LDVDo */ +#define LDVDOF_NONE 0 +#define LDVDOF_PREVIEW 1 +#define LDVDOF_PROGLFOUT 2 /* Progression Life Cycle (creation/destruction) is outside of LDVDo */ + + +LDV_CAPS* LDVGetNPlanesCaps(LDV_MODULE* mod, int nplanes) ; +LDV_MODULE* LDVGetModuleList(char* path, int* nb_ldv) ; +void LDVFreeModuleList(LDV_MODULE* module_list) ; +LDV_MODULE* GetLdvByLdg(LDV_MODULE* ldv_list, LDG* ldg) ; +LDV_STATUS LDVAlloc(LDV_IMAGE* img) ; +LDV_STATUS LDVDo(LDV_MODULE* ldv, LDV_PARAMS* ldv_params, LDV_IMAGE* ldv_img, int flags) ; +LDV_STATUS LDVAdapt2Planes(LDV_IMAGE* pldv_img, short nplanes) ; + +LDV_STATUS LDVLoadFunctions(char* path, LDV_MODULE* mod) ; +void LDVUnloadFunctions(LDV_MODULE* mod) ; +void LDVFreeDynParams(LDV_PARAMS* ldv_params) ; + +GEM_WINDOW* LDVGetProgWindow(void) ; +GEM_WINDOW* LDVCreateProgWindow(int ldvcap_flags) ; +void LDVDestroyProgWindow(void) ; + +#endif diff --git a/tools/vision/LDV/LIGHT.INI b/tools/vision/ldv/light.ini similarity index 100% rename from tools/vision/LDV/LIGHT.INI rename to tools/vision/ldv/light.ini diff --git a/tools/vision/ldv/light.ldv b/tools/vision/ldv/light.ldv new file mode 100644 index 0000000000000000000000000000000000000000..ef811a22529a1c1cf6d0bd38681a70ab4726dfba GIT binary patch literal 3182 zcmc&$e`p)m9sl0xd_GH;v#e&SqIu1$tO`X=Y(-97$7qRka-6fG$&TzMErj{xNV-UN zBq7V)8cdMWZ8*?UH-ol}QP>#WT1qfpDcLYV&brWc`$KWZMxc<4HEp)0jVU1{#*6lS zCp$kNp(_mbh4;SS_xXI^_x-x>y{Fm%j4A;0D}cRzxGVJlD&nFAz`Tm?L?HuD#ddEA z5kCqcsa$~shk~)bErUY@Wq-0Tp3Y?n+1lnM#2wny)wN}Zm&m!oSUj5`ec58Nkc}77 zB|b(7fJ-5!l;Fw%muFN~4z&CUN8~!nSPNtn#PgrSdMwSA6$V<~M^qxF%5>QeD{X<9 zd4NV}p}xlObF_yBaEhX^Og$U{cb{_!6N6r14jj9G39ZvsXWlr%80kV+7B zr0fN&j+U&9ofEvU}^=3@+{`E0CBAB{=hx%9@{#$uVV4PF!+tbZv}ID4*@}_g|}C@#LV#nFFQo z3$V%|uLq2?&*3PYnw_49sdIY(r0qHamQ`&PkAMJD7T^^kYJzJFScfUa=NnaE)h-W6 z%6r`&uqc1@d%&ukllQ0z?;}dt!NsBOWFdj|Upq^)lZGofu5;dS#oG!jvUP|Tb@ud= z0bq5We-gcbMGp==c=U+r9?D7*&P&JWn$3WuiN1Og!5x(1a66;p-H2N>$;St;GJuQ)nE{>g zBV$FTE_jutj1`&Aj(>qfqoKz9Gj*f3qW0$-%cH<)V!^zK`s`$NN#%UFCr6>1aSvke z)&1kPRZ17iK8v!jICWv6?WgxJ_RG`fU!~0D6Cb^b=fbK0KVMyuuQdW9siS>yWftYB zJL|p_oq4)n-Fy%7iH_J?56~Vo<~`gM%HdplXD6XC)$QX?W^iT;gsGG&Q=d&&rY=wW zJg|z!!BA-fZ@p4(hdblFKqI&y)*B9`g!v5cIj9~ChcqrP(Eo%|#>}-vF8WvSyJy?m z!Ms-D@NX~8YA1f#dVahf2QDQCu(b^Cyx<6sCdaf)&-1O|-_-SBSe83hN(uN2`CvjB`b!2m77F6meibkt3U6v*vRI%rpMkEnuPWsuAwg)JlL;(spE4Gz;SkgH7QeBYuwc(=69@y;9G*gJ$_a`bmQxNVqibV%!6{IW=)`+vMJ_K?j^Al7+}~b{+3nDb zwgq07--KU!{RD#lgg4}%%E`7^a5k8|$);~t>8((0(^qg)e+ihK3NdPuZV!8Pv%vopo4Vn^+pMvo-+u3gOWI@Mmo;Iqw73Fhb&1x>--);7QCD9ZUE@u8 z2kjNDIQEifA{RtXezUq1tvoc^&WA;-#Uc2rd-^3B*%-M$<})v~*0qqx}}@Bo_2!K1KawEHC1l>5WLweoR053NmJ}{A?`>>SMr!lkqHxOpGUs zMU3)w!Z7IZG0W1L!-(*)Akf;3&tB##eWfy2vHjmmqL!I^l0}?mD4vgxq{q_5baEVM z<50SIe4HdE2wlTKAsL&GAtE?ICkwVV!X- zp$!)c+0>EYVs3c6m^c(48zZTBdMueB?qYmoxR6Yw3&}&p;d~)?h!k@ : if VISION's optimization ends up with a bigger file, keep original +; 1 = fmt=,;.... : format then save options for #nplanes=1 +; 4 = fmt=,;.... : format then save options for #nplanes=4 +; 8 = fmt=,;.... : format then save options for #nplanes=8 +; 16 = fmt=,;.... : format then save options for #nplanes=16 +; 24 = fmt=,;.... : format then save options for #nplanes=24 +; 32 = fmt=,;.... : format then save options for #nplanes=32 +; Several profiles are already defined to cope with different machines/goals +; Feel free to create new ones +; ProfileName is to be passed as 3rd parameter to OPTIMG.LDV, see SCRIPTS/ldvopt.vcs +[ST] +limit_black = 5 +limit_white = 250 +diff_grey = 5 +1 = fmt=IMG +4 = fmt=IMG +8 = fmt=IMG +16 = fmt=TGA +24 = fmt=TGA +32 = fmt=TGA + +[TT] +limit_black = 5 +limit_white = 250 +diff_grey = 5 +1 = fmt=TIF;compression=lzw +4 = fmt=TIF;compression=lzw +8 = fmt=TIF;compression=lzw +16 = fmt=TGA +24 = fmt=TGA +32 = fmt=TGA + +[Falcon] +limit_black = 5 +limit_white = 250 +diff_grey = 5 +1 = fmt=TIF;compression=lzw +4 = fmt=TIF;compression=lzw +8 = fmt=TIF;compression=lzw +16 = fmt=JPG;quality=90 +24 = fmt=JPG;quality=90 +32 = fmt=JPG;quality=90 + +[Aranym] +enforce_smaller = 1 +limit_black = 5 +limit_white = 250 +diff_grey = 2 +1 = fmt=TIF;compression=lzw +4 = fmt=TIF;compression=lzw +8 = fmt=TIF;compression=lzw +16 = fmt=JPG;quality=90 +24 = fmt=JPG;quality=90 +32 = fmt=JPG;quality=90 + +[DualToneLikely] +enforce_smaller = 1 +limit_black = 50 +limit_white = 205 +diff_grey = 30 +1 = fmt=TIF;compression=lzw +4 = fmt=TIF;compression=lzw +8 = fmt=TIF;compression=lzw +16 = fmt=JPG;quality=90 +24 = fmt=JPG;quality=90 +32 = fmt=JPG;quality=90 + +[DualToneForced] +enforce_dither = 1 +dither_method = 4 +dither_outplanes = 1 +dither_param = 50 +1 = fmt=TIF;compression=lzw + +[TIFForceDither256c] +enforce_dither = 1 +dither_method = 3 +dither_outplanes = 8 +dither_param = 0 +8 = fmt=TIF;compression=lzw + +[IMGForceDither256c] +enforce_dither = 1 +dither_method = 3 +dither_outplanes = 8 +dither_param = 0 +8 = fmt=IMG diff --git a/tools/vision/ldv/optimg.ldv b/tools/vision/ldv/optimg.ldv new file mode 100644 index 0000000000000000000000000000000000000000..7b3973cfee75b51c0cc4744d59b0fbc6a45470d7 GIT binary patch literal 15195 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 Q%rC1vDSopeub@Q#55!k`uK)l5 literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/PIXEL.INI b/tools/vision/ldv/pixel.ini similarity index 100% rename from tools/vision/LDV/PIXEL.INI rename to tools/vision/ldv/pixel.ini diff --git a/tools/vision/ldv/pixel.ldv b/tools/vision/ldv/pixel.ldv new file mode 100644 index 0000000000000000000000000000000000000000..153de7b90ccd619d2bbe17866928557d223647f0 GIT binary patch literal 3972 zcmc&%eQZ$8H3vw*K$~hO%kGjGO(YM^w|U_butJNTAo8}<0ROY z+#t_XiymM_Q zDH>4~wbPDt?>YC}bI&>V-QWFqawS0N7y$D<0I3C5s2D(&0m^Csv<2-hB+~gcPwQ3( zX+|Q%AC3}xx8391+SN^v_W7d2!ElI>ZM9ZH%#P}&rmZ`yL<~oVyrF*L48?rWkT-@V z-XTH&OcE*a^QJIx5k_W3Th$*h;->l()&dy>^`)Dj$FecA$UxOO)S5|2CYfr6#ai3M zG`69N+8SNY(GdZFx2P5tsD)rNJB@=-Bb;|t`WJKc1Mx=|-cqu=832pRZSS}PYWq!y z>$FqN@WPT-B$Kr5EJs(}gcQVz3L8d0Ge+5$7p+n@a_?6sp$^z#HQ|K*nTdebdN;9 zJtBRyiFDk_-V@&j6&58HR>k~G!LjS5 zQE2Ag!%@hKkSmd|N6vc0Zs#eF@4Uxugv(=>W~K&!^_?abPzhUr^8){h8L*`+v_`kk z7F%eAcEuaHXvqhI4MjIySHvqes{&U*(>}+2ljgd)8FRg5kw9y4f?5n?uKRaZgUVWz z{+*Pv*nr<<2Bq}-XxYrm0oL;}DJEf1*O`Hp(ipi9EjX%aMvXH+M_`UOecP(cw07BO z&&k7}3|B^(S>%&#JM6$V=+C4hU}dXutgPD63T$;4_`DyhR!U{!f(5wQgb)U;DG2P< z^wm_OR(4_RJzjY9!zS3WN8V`MD{~FUx?Si=pNZT5$-^(s`ECovvxz@b?=|=ZioH;b z-t7P2;n(MU7q4_jp-w-WxSFPUS7RNI*JF zXeLHM8{l)bMm7k0h|3HA(wjim={GH!N{ zDzQZ6J#x;M|*ugZE*EQs}saoil5GxdwvEb_A*86l2-Rnqg> z3wVQ=-0p)N#$Kusa9r6YQVlhMI>Dwj1Zs2}0_G|3YmAbQNX)%oz9%iqW#wWGXW*?ulPBg zAz*SWFn--OEler;Dl-Yx=nE}%CT<2if#R8C@?TwSfNhDJH#g$EEhQ#8zjLG{ph39{ z=iqeP4|d46bNUNU&|`MCB}!3RYOL@$^Em02DX)i}IcjEOgk`3=<5N)xtO#F|D$z(q}o4kb5v*)w- z+t9)Y18htD=VL^4B~VHfJPUoz%cktq4YQw%zl|( z0LJC>hDiI!urC%1F6&nnwD<$a+@Sw!%#Brz*3j{cFNWzkyb*6-a3~lH`i6lv4h3Ul z!=!(N(A+ztKF>%9oS|Ths;Jx+4jrPuj-N0&8uWdGnr__}9DeL$t&$B3rK+L+KyNG> z@*nAqg?oo%{fE3mL&Wb54*B|tIp*!_jr#h7QQx6hZzLK%L}KAE89stG)uk%vXlv_g z?MCG0{j*VJMTPP$Ud^l38l|fCLq=~i?#s}+J5;IV$?FEZ3EDKux|**m)dpTEC~2iO Jax0|f;6HOLjrITl literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/puzzle.ini b/tools/vision/ldv/puzzle.ini similarity index 100% rename from tools/vision/LDV/puzzle.ini rename to tools/vision/ldv/puzzle.ini diff --git a/tools/vision/ldv/puzzle.ldv b/tools/vision/ldv/puzzle.ldv new file mode 100644 index 0000000000000000000000000000000000000000..d0a670a15143c8d1d4e57f267026358e962b5015 GIT binary patch literal 4076 zcmc&1ZERcB_4xVq^~HIy9pj}Y%joTk@zRpiFCR_X%4?sWlk~-8PU3WJnJV&}#(qtj z*p}lkilWUkE>Hbc* ztu8=(2!zBEDdOMj4|mk{?j;EOqN&lrM4XWNtr8(Mfz8{u*X@vql1L3l;sc~3o{pyC zkuQ;Gj2FFlMd6U7TR6+-Mic;YU#-Q8s`c!T#=@twV=7XLeB$mm6DkR#ZHQ^ ztKAJ`2gc)Joh5Q;vVcEY#OXXQqSc)tzt__CF@QBCgbhRIBu4~TOVf;DkS)OI9FZfy zIh7}YarcGBsxJYHym3EDlr0fHH0CYsx@6p;?B8<<(wZP`$jdD=U;+s57xsf? zFyK@Zzywg1+!_IM>_C^a0ey9^2Q{kaHxeJy3@^_WtVk0_am{s)NM?05pFwM0cjpMN z?^9YeR(dhq`fO`_1@T=G;NRW}>Pz>XRof7sS7)lEIyavs;ReYCO`x7xnAo*W zefjOX#c<)JL zz+mqHb}AebriXxuanB3^t5;AS%1b?F>?C}QO`0_(3Di&Oc_O(JV8>i^kpwuAYdS?StPRPCf z7C-RKSw(JQ+#mk�wQMOT&igVPHnUQ0Q3az2kUBd8ouuC1(Cjor}Iz z%sIyE1^Zfyz`s^#1#xc-jTO$$`>dX z+Ia$QkfZisA#TD?J(?Jm96aid-{4Kb@*byn(D99?|Iq+br+7+cle#nC%hbH5c^A{|uz z_$%7VZnKwFGJz}1DU|NE*8?0`PC^Q>4wpD;3g_OX z?yt;ek>b2M67rcEz&yz0f2jRE$mmRKre#Km1R`UV!D@;8k_Yf+In{kEeC(VLK6w@^y=^5*2>(wwC2cBYpUMuf~to|=>pD8kj!TE zo0b%15&iTg&XMB<$}XD8I*T&PV#)jyD3gm?v6hF#8sx*V#)&zS5!I`+nHa`?ZBCpd z!@vrU7b6pO^t(I{c!jl{VZQJ^vz?1o5E|>A)t2Qon5D2bxc1GMJ`avhp-6|F1=#)t zP-JK>K+_ihotNSN48~UkFfnF!9k-q@xhiNW70RqOd%5EV=hrGWxNfZcdet{>+DJBu z)kTIcoBxXI|F79o&;ZqQcm}Y7(>h{viSS>tFpU<@`c7It}2;1NtPHo zC-K+jh+mbdeTtm6_b^}J?WZvRvV-aOry-zD^<(^`ymxbU`WIwK63 zE-&^ctc81o&^Ku51+7yFXuhN{cXrzhr8k+?Ga@seou7E`9x}8zaPyRl#~0X4=wsk+ z##$*{2HyV>fQWO|ITs%eJUg`5Kk{1`GQncf-AAjk7gwZJ$XVqn5obDE_k6pt8`#Ff z_!8x-595tx!JY>zQUs_#+zPJ7ab_D-A?|>Ol_%g)$wvTd;A4tkV-;7}Kjn|FFoT~M zP=R%KYhees7hc@8Zk1ScYXMJU%|E8d_zE=KeIB%gM=LOjhhxhk)@J9KLQJdhC3sWt zxX$-x=2yY4Ezw^6E0L-{Stur5Whdib{fEp|9IBlVS5?> zF&v$(`|uFbzk;&Iu)RgKm>w+X`aYO~(MX(hj*Ujs>A^Mq*Z-PKsQnbf(4Iw&=2JXR zd%KeKAqT#VP zbi@bKltl6NMEnr_wfqdr9fQ&DQP#SBgQL`Cwv*VNDZYE`7&piAH5wh$_YkFhDd4^t zD69?L2v* o-7axq(dXJ?GM(d_Pg=Q#+S@t7#d9J@JHgFf1A*l(d^&=E1Mk+D?EnA( literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/ROTATE.INI b/tools/vision/ldv/rotate.ini similarity index 100% rename from tools/vision/LDV/ROTATE.INI rename to tools/vision/ldv/rotate.ini diff --git a/tools/vision/ldv/rotate.ldv b/tools/vision/ldv/rotate.ldv new file mode 100644 index 0000000000000000000000000000000000000000..faf26fead0432414bbda0d4b938550cd8fc01d5a GIT binary patch literal 2359 zcmc&#Z)j6j6hH61n7*dZ_?mS!cHMe?i6Lce6KyRjRr6kIO|qJHsjCy5d1;e8)7B)U z>4qW_I~jG1`GXb*c@6!ik7hK+?Q%wXc@v_ zC)|6_{oQka=bZa)&Q)sw$~*wfIRIZ9%u5-7ssiwT0*G_yHWbqRT4+b3m$ab}5>I7_ zyju?W8+&#Wl-^ioIFU*cvcAbph|^oYX;b57H&IfVp-3`H{K;%AlZ<51Br-$@fWt>B z;=CgThBTwHipTaXdc4(q1^e4%5QOjVLKU{!e1QSmbwuxwiu~A>HYhZCPE7)=0vomc zHE@XT&;Tw{6lSS~93B@x+FU3WaXj9Y zmvR`T$#=N;9iE3H7~I!o4^u?X=oYDm25p1n5v^K-WsT;%3~{sFS5>2#adz)BMtc}o z6ECR0;p{ek^{w$~;-~vhUsoS(=UfIQ=beQ!xVu|i4=^~Bh790MD7QF^MYM0+b5%3q z_;TD}v1$(QEEBh^7vVD3SCc=6NY&g-$mg7p&*AU5dMChYY87CpV9w+ZSD*C zy78uz)0;wXE8bMoj>iD?QVLiTq4 zBp8$n#pz&vS+;GB5>E99j5>;j7ViJ-)MNaomDUM*UM9 zw_@9c`V5Y5V2k0K(B9eJ3k*Z6d|3e7;RQ@bfeFMSNzyqo9Lr`C3s#mA~p+k&g{a<LD@{XDEu76H;|IgpRCqWW?T-u% zk$5CA6pIpPHqsZ)#G;8ztUnu0XHxwnn@W-4gJ@H~(ga-{9X&gC^BNl-Y6MqC)f@1A{gKw!%Ur| literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SMLLDV.H b/tools/vision/ldv/smlldv.h similarity index 100% rename from tools/vision/LDV/SMLLDV.H rename to tools/vision/ldv/smlldv.h diff --git a/tools/vision/LDV/SMP_LDV.INI b/tools/vision/ldv/smp_ldv.ini similarity index 100% rename from tools/vision/LDV/SMP_LDV.INI rename to tools/vision/ldv/smp_ldv.ini diff --git a/tools/vision/LDV/SRC/bhole/bhole.c b/tools/vision/ldv/src/bhole/bhole.c similarity index 95% rename from tools/vision/LDV/SRC/bhole/bhole.c rename to tools/vision/ldv/src/bhole/bhole.c index 92db7ff..bccb8ef 100644 --- a/tools/vision/LDV/SRC/bhole/bhole.c +++ b/tools/vision/ldv/src/bhole/bhole.c @@ -47,12 +47,12 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0100, /* LDV version */ + 0x0101, /* LDV version */ 4, /* Number of functions in the lib */ Proc, /* Pointers to LDV functions */ Info, /* Library Information */ 0x0, /* Lib flags, mandatory */ - OnClose, /* Closing, free VDIHandle */ + OnClose, /* Closing, free VDIHandle */ }; #define BP_CAPS (LDVF_ATARIFORMAT | LDVF_SUPPORTPREVIEW | LDVF_SUPPORTPROG | LDVF_REALTIMEPARAMS | LDVF_SUPPORTCANCEL | LDVF_NOSELECTION) @@ -207,7 +207,7 @@ void BHL16_68000(short use_sym, void* in, void* out) unsigned long save_bh_xd, save_bh_yd ; short n ; - for ( x = bh_out_x; x <= bh_out_x+bh_out_w/2; x++, bh_xd++ ) + for ( x = bh_out_x; x <= bh_out_x+(bh_out_w>>1); x++, bh_xd++ ) { /* Save bh_xd and bh_yd as they will change */ save_bh_xd = bh_xd ; @@ -262,7 +262,7 @@ void BHL32_68000(short use_sym, void* in, void* out) unsigned long save_bh_xd, save_bh_yd ; short n ; - for ( x = bh_out_x; x <= bh_out_x+bh_out_w/2; x++, bh_xd++ ) + for ( x = bh_out_x; x <= bh_out_x+(bh_out_w>>1); x++, bh_xd++ ) { /* Save bh_xd and bh_yd as they will change */ save_bh_xd = bh_xd ; @@ -444,7 +444,7 @@ char check_prog(short y, short ymax) if ( ( y & 0x0F ) == 0 ) { - int pc = (short) ( ( 100L * (long)y ) / (long)ymax ) ; + short pc = (short)((y*100L)/ymax) ; cancel = Vapi->PrSetProgEx( bh_pc+pc/bh_nrect ) ; } @@ -541,7 +541,7 @@ LDV_STATUS Run16(MFDB *in, long angle, short xc, short yc, MFDB *out, RECT* rect in_ptr = (unsigned int*) in->fd_addr ; out_ptr = (unsigned int*) out->fd_addr ; init_computation(xc, yc, angle, in, rect) ; - hy = bh_out_y+bh_out_h/2 ; + hy = bh_out_y+(bh_out_h>>1) ; if (!use_sym) { sizelout = (long) ALIGN16( out->fd_w ) ; @@ -572,7 +572,7 @@ LDV_STATUS Run32(MFDB *in, long angle, short xc, short yc, MFDB *out, RECT* rect in_ptr = (unsigned long*) in->fd_addr ; out_ptr = (unsigned long*) out->fd_addr ; init_computation(xc, yc, angle, in, rect) ; - hy = bh_out_y+bh_out_h/2 ; + hy = bh_out_y+(bh_out_h>>1) ; if (!use_sym) { sizelout = (long) ALIGN16( out->fd_w ) ; @@ -633,7 +633,7 @@ void SymmetrySplit(MFDB* img, short xc, short yc, BH_SPROPERTIES* sgProps) npts_total = (long)img->fd_w*(long)img->fd_h ; npts_insym = 4L*(long)sw*(long)sw ; - npts_to_compute = npts_total-((3L*npts_insym)/4L) ; + npts_to_compute = npts_total-((3L*npts_insym)>>2) ; sgProps->estdpc = (100L*npts_to_compute)/npts_total ; if ( sgProps->estdpc > 70 ) { @@ -736,7 +736,7 @@ short GetSymetryUsageFromIni(void) sprintf( filename, "%s\\%s\\BHOLE.INI", path_ldv, language ) ; if ( Vapi->LoDoLog ) Vapi->LoDoLog(LL_INFO,"Looking into %s to see symetry usage...", filename) ; - found = Vapi->InGetKeyFromFile( filename, "Private", "UseSym", val_key ) ; + found = Vapi->InGetKeyFromFile( filename, "Private", "UseSym", val_key ) ; if ( !found ) { sprintf( filename, "%s\\BHOLE.INI", path_ldv ) ; @@ -818,7 +818,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) bh_pc = (100*n)/sgProps.nrect ; /* For progression indicator as we may have multiple loops */ npix = (long)sgProps.rect[n].w * (long)sgProps.rect[n].h ; np += npix ; - if ( VapiLogLevel >= LL_PERF) + if ( VapiLogLevel >= LL_PERF ) { size_t t0, tms ; diff --git a/tools/vision/ldv/src/bhole/bhole.ldv b/tools/vision/ldv/src/bhole/bhole.ldv new file mode 100644 index 0000000000000000000000000000000000000000..c882bd12fdbb2e2056113e7749f1c68574c66ef7 GIT binary patch literal 20060 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 ) status = (short) Vapi->PrSetProgRange( current, max ) ; + else if ( max && ( ( current & 0x0F ) == 0 ) ) + { + short pc ; + + /* Call progress routine only once on 16 */ + pc = (short) ( ( 100L * ( current - max ) ) / max ) ; + if ( Vapi->PrSetProgEx ) status = Vapi->PrSetProgEx( pc ) ; + else Vapi->PrSetProg( pc ) ; + } + + return status ; +} +#define PROG_CANCEL(status) (status == 1) + /* * Fonctions de la librairie */ @@ -129,7 +153,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) VDI_ELEMENTPAL *vdi_epal ; short vdi_index ; short bw_value ; - short cancel = 0 ; + short status = 0 ; if ( in->Raster.fd_nplanes <= 8 ) { @@ -148,23 +172,24 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) else { MFDB *img = &in->Raster ; - long nb_pts_in_line ; - short x, y, pc ; + long nb_pts_in_line, ymax ; + short x, y ; - if ( Vapi == NULL ) return( ELDV_GENERALFAILURE ) ; + if ( Vapi == NULL ) return ELDV_GENERALFAILURE ; + ymax = params->y2 - params->y1 ; /* Convertir l'image au format True Color "standard" ATARI */ /* Format specifique --> format "ATARI True Color" */ Vapi->RaTCInvConvert( img ) ; nb_pts_in_line = img->fd_w ; - if ( nb_pts_in_line % 16 ) nb_pts_in_line = (16+nb_pts_in_line) & 0xFFF0 ; /* Toujours aligne sur 16 pixels ! */ + nb_pts_in_line = ALIGN16( nb_pts_in_line ) ; /* Toujours aligne sur 16 pixels ! */ if ( img->fd_nplanes == 16 ) { unsigned short *ptu, red, green, blue, ugris, val, ubr ; - for ( y = params->y1; !cancel && (y <= params->y2); y++ ) + for ( y = params->y1; !PROG_CANCEL(status) && (y <= params->y2); y++ ) { ptu = (unsigned short *) img->fd_addr ; ptu += nb_pts_in_line * y ; @@ -179,19 +204,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ubr = ( ugris >> 1 ) ; *ptu++ = RVB16( ubr, ugris, ubr ) ; } - if ( ( y & 0x0F ) == 0x0F ) - { - /* Appelle la routine de progression une fois sur 16 */ - /* NB : en mode preview, VISION ignorera cet appel, */ - /* inutile donc de s'en soucier */ - pc = (short) ( ( 100L * ( y - params->y1 ) ) / ( params->y2 - params->y1 ) ) ; - if ( Vapi->PrSetProgEx ) - { - cancel = Vapi->PrSetProgEx( pc ) ; - } - else - Vapi->PrSetProg( pc ) ; - } + status = Prog( y - params->y1, ymax ) ; } } else if ( img->fd_nplanes == 24 ) /* NON teste ! */ @@ -199,7 +212,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) unsigned char *ptu ; unsigned short red, green, blue, ugris ; - for ( y = params->y1; !cancel && (y <= params->y2); y++ ) + for ( y = params->y1; !PROG_CANCEL(status) && (y <= params->y2); y++ ) { ptu = (unsigned char *) img->fd_addr ; ptu += 3 * nb_pts_in_line * y ; @@ -215,19 +228,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) *ptu-- = ugris ; ptu += 3 ; } - if ( ( y & 0x0F ) == 0x0F ) - { - /* Appelle la routine de progression une fois sur 16 */ - /* NB : en mode preview, VISION ignorera cet appel, */ - /* inutile donc de s'en soucier */ - pc = (short) ( ( 100L * ( y - params->y1 ) ) / ( params->y2 - params->y1 ) ) ; - if ( Vapi->PrSetProgEx ) - { - cancel = Vapi->PrSetProgEx( pc ) ; - } - else - Vapi->PrSetProg( pc ) ; - } + status = Prog( y - params->y1, ymax ) ; } } else if ( img->fd_nplanes == 32 ) @@ -235,7 +236,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) unsigned long *ptu, val ; unsigned short red, green, blue, ugris ; - for ( y = params->y1; !cancel && (y <= params->y2); y++ ) + for ( y = params->y1; !PROG_CANCEL(status) && (y <= params->y2); y++ ) { ptu = (unsigned long *)img->fd_addr ; ptu += nb_pts_in_line * y ; @@ -252,19 +253,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ugris = ( R4[red] + G4[green] + B4[blue] ) ; *ptu++ = RVB32( ugris, ugris, ugris ) ; } - if ( ( y & 0x0F ) == 0x0F ) - { - /* Appelle la routine de progression une fois sur 16 */ - /* NB : en mode preview, VISION ignorera cet appel, */ - /* inutile donc de s'en soucier */ - pc = (short) ( ( 100L * ( y - params->y1 ) ) / ( params->y2 - params->y1 ) ) ; - if ( Vapi->PrSetProgEx ) - { - cancel = Vapi->PrSetProgEx( pc ) ; - } - else - Vapi->PrSetProg( pc ) ; - } + status = Prog( y - params->y1, ymax ) ; } } @@ -272,7 +261,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) Vapi->RaTCConvert( img ) ; } - return( cancel ? ELDV_CANCELLED : ELDV_NOERROR ) ; + return( PROG_CANCEL(status) ? ELDV_CANCELLED : ELDV_NOERROR ) ; } LDV_STATUS cdecl Preview(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) diff --git a/tools/vision/ldv/src/bw/bw.ldv b/tools/vision/ldv/src/bw/bw.ldv new file mode 100644 index 0000000000000000000000000000000000000000..886614515d5fecd54af82415aca9b6b90cc0ec08 GIT binary patch literal 5382 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 literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SRC/BW/BW.PRJ b/tools/vision/ldv/src/bw/bw.prj similarity index 76% rename from tools/vision/LDV/SRC/BW/BW.PRJ rename to tools/vision/ldv/src/bw/bw.prj index f0abb07..77fdebb 100644 --- a/tools/vision/LDV/SRC/BW/BW.PRJ +++ b/tools/vision/ldv/src/bw/bw.prj @@ -1,6 +1,7 @@ bw.ldv -;.C[-Y- -G+] -;.L[-Y-] +.C [ ] +.S [ ] +.L [ ] = pcstart.o bw.c diff --git a/tools/vision/ldv/src/cntcol/cntcol.c b/tools/vision/ldv/src/cntcol/cntcol.c new file mode 100644 index 0000000..f25a365 --- /dev/null +++ b/tools/vision/ldv/src/cntcol/cntcol.c @@ -0,0 +1,856 @@ +#define PCGEMLIB 1 /* Set to 1 if PureC is used */ + +#if PCGEMLIB +#include +#include +#else +#include +#include +#endif + +#include +#include +#include +#include +#include "..\..\ldg.h" +#include "..\..\vapi.h" +#include "..\..\ldv.h" + +/* Prototypes */ +LDV_INFOS* cdecl GetLDVCapabilities(VAPI* vapi) ; +LDV_STATUS cdecl PreRun(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; +LDV_STATUS cdecl Run(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; + +/* Global variables */ +PROC Proc[] = { + "GetLDVCapabilities", "LDV capabilities", (void*)GetLDVCapabilities, + "PreRun", "Run initialization", (void*)PreRun, + "Run", "LDV operation", (void*)Run, + } ; + +char Info[] = "LDV" ; + +LDGLIB Ldg[] = { + 0x0107, /* Lib version */ + 3, /* Number of functions in lib */ + Proc, /* Pointers to our functions */ + Info, /* Lib information */ + 0x0, /* Lib flags */ + NULL, /* On exit, free VDI handle (unused) */ + } ; + +#define CAPS (LDVF_ATARIFORMAT | LDVF_SUPPORTPROG | LDVF_OPINPLACE | LDVF_SUPPORTCANCEL | LDVF_NOSELECTION | LDVF_NOCHANGE) + +LDV_INFOS LdvInfos = { + (short) sizeof(LDV_INFOS), /* size of this structure */ + TLDV_MODIFYIMG, /* LDV Type */ + "Jean Lusetti/Seedy", /* Authors */ + { + { 1, 1, CAPS }, /* 1 bitplane capabilities */ + { 2, 2, CAPS }, /* 2 bitplane capabilities */ + { 4, 4, CAPS }, /* 4 bitplane capabilities */ + { 8, 8, CAPS }, /* 8 bitplane capabilities */ + { 16, 16, CAPS }, /* 16 bitplane capabilities */ +/* Not yet { 24, 24, CAPS }, */ + { 32, 32, CAPS }, /* 32 bitplane capabilities */ + { 0, 0, 0UL } /* End of this list */ + }, + } ; + +VAPI* Vapi = NULL ; +unsigned char VapiLog = 0 ; +unsigned char UseVAlloc ; /* Use VISION's allocation routines if possible */ +unsigned char NbBitsIn[256] ; /* Number of bits set to 1 for every integer in [0;255] */ + +typedef struct _CNTCOL_DATA +{ + /* Input data */ + LDV_IMAGE* in ; + LDV_PARAMS* params ; + FILE* report_file ; + short method ; /* 0: auto, 1: bit array of colors, 2: sorted colors */ +} +CNTCOL_DATA, *PCNTCOL_DATA ; + +typedef struct _CC1_CONTEXT +{ + void* line_colors ; + unsigned long so_line_colors ; + unsigned char* unique_colors_bits ; + unsigned long so_unique_colors_bits ; + short nplanes ; + unsigned char* indexes ; /* Allocated only if nplanes <= 8 */ + unsigned long so_indexes ; + unsigned long used_bytes ; +} +CC1_CONTEXT, *PCC1_CONTEXT ; + +typedef struct _CC2_CONTEXT +{ + unsigned char* line_sorted ; + unsigned char* img_sorted ; + unsigned long nb_img_colors ; + unsigned long nb_img_colors_max ; + short nplanes ; + unsigned char* indexes ; /* Allocated only if nplanes <= 8 */ + unsigned long so_indexes ; + unsigned long used_bytes ; +} +CC2_CONTEXT, *PCC2_CONTEXT ; + +typedef struct _CC3_CONTEXT +{ + unsigned char* line_sorted ; + unsigned long so_line_colors ; + unsigned char* unique_colors_bits ; + unsigned long so_unique_colors_bits ; + short nplanes ; + unsigned char* indexes ; /* Allocated only if nplanes <= 8 */ + unsigned long so_indexes ; + unsigned long used_bytes ; +} +CC3_CONTEXT, *PCC3_CONTEXT ; + +typedef union _CC_CONTEXT +{ + /* Specific data for each method */ + CC1_CONTEXT c1 ; /* color table for a line and bitcolor array globally */ + CC2_CONTEXT c2 ; /* sort/reduce each line and globally */ + CC3_CONTEXT c3 ; /* sort/reduce each line and bitcolor array globally */ +} +CC_CONTEXT, *PCC_CONTEXT ; + +typedef struct _CC_INTERFACE +{ + LDV_STATUS (*Init)(CC_CONTEXT* vc, CNTCOL_DATA* data) ; + unsigned long (*CountColors)(CC_CONTEXT* vc, void* addr, unsigned long so_line) ; + unsigned long (*CountColorsEnd)(CC_CONTEXT* vc) ; + unsigned long (*Exit)(CC_CONTEXT* vc) ; +} +CC_INTERFACE, *PCC_INTERFACE ; + + +/* Helper function to call best progress routine depending on VAPI progress function availability */ +/* Return value: */ +/* 1: Cencel requested by user */ +/* 0: Progress update done */ +/* -1: Progress update not made to screen () */ +static short Prog(long current, long max) +{ + short status = 0 ; + + if ( Vapi->PrSetProgRange ) status = (short) Vapi->PrSetProgRange( current, max ) ; + else if ( max && ( ( current & 0x0F ) == 0 ) ) + { + short pc ; + + /* Call progress routine only once on 16 */ + pc = (short) ( ( 100L * ( current - max ) ) / max ) ; + if ( Vapi->PrSetProgEx ) status = Vapi->PrSetProgEx( pc ) ; + else Vapi->PrSetProg( pc ) ; + } + + return status ; +} + +/* Wrappers to abstract dynamic allocation routines */ +static void* localCalloc(unsigned long size) +{ + void* p ; + + if ( UseVAlloc ) p = Vapi->MeXcalloc( 1, size ) ; + else p = calloc( 1, size ) ; + + return p ; +} + +static void* localAlloc(unsigned long size) +{ + void* p ; + + if ( UseVAlloc ) p = Vapi->MeXalloc( size ) ; + else p = malloc( size ) ; + + return p ; +} + +static void localFree(void* p) +{ + if ( p ) + { + if ( UseVAlloc ) Vapi->MeXfree( p ) ; + else free( p ) ; + } +} + +LDV_INFOS* cdecl GetLDVCapabilities(VAPI* vapi) +{ + Vapi = vapi ; + VapiLog = Vapi && Vapi->LoDoLog ; + + return( &LdvInfos ) ; +} + +#pragma warn -par +LDV_STATUS cdecl PreRun(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + return ELDV_NOERROR ; +} +#pragma warn +par + +static FILE* CreateReportFile(CNTCOL_DATA* data) +{ + FILE* stream ; + char* filename ; + + if ( data->params->Param[1].str ) filename = data->params->Param[1].str ; + else filename = "cntcol.txt" ; + stream = fopen( filename, "wb" ) ; + if ( VapiLog ) + { + if ( stream ) Vapi->LoDoLog(LL_INFO, "cntcol.ldv will generate report file %s", filename) ; + else Vapi->LoDoLog(LL_ERROR, "cntcol.ldv failed to create report file %s", filename) ; + } + + if ( stream ) + { + fprintf( stream, "cntcol LDV running on image %dx%d, %d bitplanes:\r\n", data->in->Raster.fd_w, data->in->Raster.fd_h, data->in->Raster.fd_nplanes ) ; + fprintf( stream, "-------|--------------------\r\n" ) ; + fprintf( stream, "| Line | # unique colors |\r\n" ) ; + } + + return stream ; +} + +static unsigned long CountBits(unsigned char* pt, unsigned long nb_bytes) +{ + unsigned char* p = pt ; + unsigned long nb_bits = 0 ; + + while ( p < pt+nb_bytes ) + { + nb_bits += NbBitsIn[*p] ; + p++ ; + } + + return nb_bits ; +} + +static LDV_STATUS check_prog(short y, short ymax, unsigned long nb_unique_colors_on_line) +{ + short status ; + + status = Prog( y, ymax ) ; + if ( status == 0 ) /* GUI updated */ + { + if ( Vapi->PrSetText ) + { + char buf[128] ; + + sprintf( buf, "%lu unique colors on line %d", nb_unique_colors_on_line, y ) ; + Vapi->PrSetText( 1, buf ) ; + } + } + + return LDVPROG_CANCEL( status ) ? ELDV_CANCELLED:ELDV_NOERROR ; +} + +static short add_pixel_if_not_present16(unsigned short pixel, unsigned short* line_colors, unsigned long nb_colors) +{ + unsigned long i ; + + for ( i = 0; i < nb_colors; i++ ) + if ( line_colors[i] == pixel ) break ; + + if ( i == nb_colors ) { line_colors[nb_colors++] = pixel ; return 1 ; } + + return 0 ; +} + +static short add_pixel_if_not_present32(unsigned long pixel, unsigned long* line_colors, unsigned long nb_colors) +{ + unsigned long i ; + + for ( i = 0; i < nb_colors; i++ ) + if ( line_colors[i] == pixel ) break ; + + if ( i == nb_colors ) { line_colors[nb_colors++] = pixel ; return 1 ; } + + return 0 ; +} + +static unsigned long CC1(CC_CONTEXT* vc, void* addr, unsigned long so_line) +{ + CC1_CONTEXT* c = (CC1_CONTEXT*) &vc->c1 ; + unsigned char* line = (unsigned char*) addr ; + unsigned long offset, nb_colors = 0 ; + unsigned short bit ; + + if ( c->nplanes <= 8 ) /* Bit planes */ + { + unsigned char unique_colors_bits_line[256/8] ; /* 256 bits --> 256/8 bytes */ + unsigned short x ; + + memset( unique_colors_bits_line, 0, sizeof(unique_colors_bits_line) ) ; + Vapi->RaRaster2Ind( addr, c->so_indexes, c->nplanes, c->indexes ) ; + for ( x = 0; x < c->so_indexes; x++ ) + { + bit = c->indexes[x] & 0x07 ; + offset = c->indexes[x] >> 3 ; + c->unique_colors_bits[offset] |= (1 << bit) ; + unique_colors_bits_line[offset] |= (1 << bit) ; + } + nb_colors = CountBits( unique_colors_bits_line, sizeof(unique_colors_bits_line) ) ; + } + else if ( c->nplanes == 16 ) /* TC16 */ + { + unsigned short* p ; + unsigned short pixel ; + + for ( p = (unsigned short*)line; p < (unsigned short*) (line+so_line); p++ ) + { + pixel = *p ; + nb_colors += add_pixel_if_not_present16( pixel, c->line_colors, nb_colors ) ; + bit = pixel & 0x07 ; + offset = pixel >> 3 ; + c->unique_colors_bits[offset] |= (1 << bit) ; + } + } + else if ( c->nplanes == 32 ) /* TC32 */ + { + unsigned char* p ; + unsigned long pixel ; + + for ( p = line; p < line+so_line; p += 4 ) + { + pixel = p[0] ; + pixel |= ( (unsigned long)p[1] << 8 ) ; + pixel |= ( (unsigned long)p[2] << 16 ) ; + nb_colors += add_pixel_if_not_present32( pixel, c->line_colors, nb_colors ) ; + bit = (unsigned short)pixel & 0x07 ; + offset = pixel >> 3 ; + c->unique_colors_bits[offset] |= (1 << bit) ; + } + } + + return nb_colors ; +} + +static unsigned long CC1Exit(CC_CONTEXT* vc) +{ + CC1_CONTEXT* c = &vc->c1 ; + + localFree( c->unique_colors_bits ) ; + localFree( c->line_colors ) ; + localFree( c->indexes ) ; + + return c->used_bytes ; +} + +static unsigned long Getso_unique_colors_bits(MFDB* img) +{ + unsigned long so_unique_colors_bits ; + + if ( img->fd_nplanes > 8 ) + { + if ( img->fd_nplanes == 16 ) so_unique_colors_bits = 1UL << 16 ; + else so_unique_colors_bits = 1UL << 24 ; /* TC24 or TC32 */ + } + else so_unique_colors_bits = 256 ; + + so_unique_colors_bits >>= 3 ; /* #bits --> #bytes */ + if ( so_unique_colors_bits == 0 ) so_unique_colors_bits = 1 ; + + return so_unique_colors_bits ; +} + +static LDV_STATUS CC1Init(CC_CONTEXT* vc, CNTCOL_DATA* data) +{ + MFDB* img = &data->in->Raster ; + CC1_CONTEXT* c = &vc->c1 ; + + memset( c, 0, sizeof(*c) ) ; + c->nplanes = img->fd_nplanes ; + if ( img->fd_nplanes > 8 ) + { + /* True Color */ + /* Size of bit array for each unique color depending on the number of planes */ + c->so_line_colors = Vapi->RaGetImgSize( img->fd_w, 1, img->fd_nplanes ) ; + c->line_colors = localAlloc( c->so_line_colors ) ; + if ( c->line_colors == NULL ) return ELDV_NOTENOUGHMEMORY ; + } + else + { + /* Bit planes */ + c->so_indexes = 16*img->fd_wdwidth ; /* Max for 8 planes */ + c->indexes = (unsigned char*) localAlloc( c->so_indexes ) ; + c->so_line_colors = 0 ; + if ( c->indexes == NULL ) return ELDV_NOTENOUGHMEMORY ; + } + + c->so_unique_colors_bits = Getso_unique_colors_bits( img ) ; + c->unique_colors_bits = localCalloc( c->so_unique_colors_bits ) ; + if ( c->unique_colors_bits == NULL ) { CC1Exit( vc ) ; return ELDV_NOTENOUGHMEMORY ; } + + c->used_bytes = c->so_unique_colors_bits + c->so_line_colors + c->so_indexes ; + + return ELDV_NOERROR ; +} + +static unsigned long CC1End(CC_CONTEXT* vc) +{ + CC1_CONTEXT* c = &vc->c1 ; + + return CountBits( c->unique_colors_bits, c->so_unique_colors_bits ) ; +} + +static int cmp8(const void* a, const void* b) +{ + unsigned char* e1 = (unsigned char*) a ; + unsigned char* e2 = (unsigned char*) b ; + + return (int)( *e1 - *e2 ) ; +} + +static int cmp16(const void* a, const void* b) +{ + unsigned short* e1 = (unsigned short*) a ; + unsigned short* e2 = (unsigned short*) b ; + + return ( *e1 - *e2 ) ; +} + +static int cmp32(const void* a, const void* b) +{ + unsigned long* e1 = (unsigned long*) a ; + unsigned long* e2 = (unsigned long*) b ; + + if ( *e1 < *e2 ) return -1 ; + if ( *e1 == *e2 ) return 0 ; + return 1 ; +} + +static unsigned long reduce8(unsigned char* array, unsigned long nb_items) +{ + unsigned long nb_unique = 0 ; + unsigned char* pread ; + unsigned char* pwrite ; + unsigned char val ; + + pread = pwrite = array ; + while ( pread < array + nb_items ) + { + val = *pread++ ; + while ( (pread < array + nb_items) && (*pread == val) ) pread++ ; + nb_unique++ ; + *pwrite++ = val ; + } + + return nb_unique ; +} + +static unsigned long reduce16(unsigned short* array, unsigned long nb_items) +{ + unsigned long nb_unique = 0 ; + unsigned short* pread ; + unsigned short* pwrite ; + unsigned short val ; + + pread = pwrite = array ; + while ( pread < array + nb_items ) + { + val = *pread++ ; + while ( (pread < array + nb_items) && (*pread == val) ) pread++ ; + nb_unique++ ; + *pwrite++ = val ; + } + + return nb_unique ; +} + +static unsigned long reduce32(unsigned long* array, unsigned long nb_items) +{ + unsigned long nb_unique = 0 ; + unsigned long* pread ; + unsigned long* pwrite ; + unsigned long val ; + + pread = pwrite = array ; + while ( pread < array + nb_items ) + { + val = *pread++ ; + while ( (pread < array + nb_items) && (*pread == val) ) pread++ ; + nb_unique++ ; + *pwrite++ = val ; + } + + return nb_unique ; +} + +static unsigned long CC2(CC_CONTEXT* vc, void* addr, unsigned long so_line) +{ + CC2_CONTEXT* c = (CC2_CONTEXT*) &vc->c2 ; + unsigned long nb_colors = 0 ; + + if ( c->nplanes <= 8 ) /* Bit planes */ + { + Vapi->RaRaster2Ind( addr, c->so_indexes, c->nplanes, c->indexes ) ; + qsort( c->indexes, c->so_indexes, sizeof(unsigned char), cmp8 ) ; + nb_colors = reduce8( c->indexes, c->so_indexes ) ; + /* Add new line of unique colors to current image unique colors */ + memmove( c->img_sorted + c->nb_img_colors, c->indexes, nb_colors*sizeof(unsigned char) ) ; + c->nb_img_colors += nb_colors ; + } + else if ( c->nplanes == 16 ) /* TC16 */ + { + memmove( c->line_sorted, addr, so_line ) ; + qsort( c->line_sorted, so_line >> 1, sizeof(unsigned short), cmp16 ) ; + nb_colors = reduce16( (unsigned short*) c->line_sorted, so_line >> 1 ) ; + /* Add new line of unique colors to current image unique colors */ + memmove( c->img_sorted + 2*c->nb_img_colors, c->line_sorted, nb_colors*sizeof(unsigned short) ) ; + c->nb_img_colors += nb_colors ; + } + else if ( c->nplanes == 32 ) /* TC32 */ + { + memmove( c->line_sorted, addr, so_line ) ; + qsort( c->line_sorted, so_line >> 2, sizeof(unsigned long), cmp32 ) ; + nb_colors = reduce32( (unsigned long*) c->line_sorted, so_line >> 2 ) ; + /* Add new line of unique colors to current image unique colors */ + memmove( c->img_sorted + 4*c->nb_img_colors, c->line_sorted, nb_colors*sizeof(unsigned long) ) ; + c->nb_img_colors += nb_colors ; + } + + return nb_colors ; +} + +static unsigned long CC2Exit(CC_CONTEXT* vc) +{ + CC2_CONTEXT* c = &vc->c2 ; + + localFree( c->indexes ) ; + localFree( c->img_sorted ) ; + localFree( c->line_sorted ) ; + + return c->used_bytes ; +} + +static LDV_STATUS CC2Init(CC_CONTEXT* vc, CNTCOL_DATA* data) +{ + MFDB* img = &data->in->Raster ; + CC2_CONTEXT* c = &vc->c2 ; + short pixel_in_bytes ; + + memset( c, 0, sizeof(*c) ) ; + c->nplanes = img->fd_nplanes ; + + /* Use VISION's checked allocation routine for safety as VISION performs bounduary checks */ + /* Allocate memory to duplicate a line and sort it out */ + if ( img->fd_nplanes > 8 ) + { + c->line_sorted = (unsigned char*) localAlloc( Vapi->RaGetImgSize( img->fd_w, 1, img->fd_nplanes ) ) ; + if ( c->line_sorted == NULL ) return ELDV_NOTENOUGHMEMORY ; + if ( img->fd_nplanes == 16 ) pixel_in_bytes = 2 ; + else pixel_in_bytes = 4 ; + } + else + { + /* Bit planes: we need an index array */ + c->so_indexes = 16*img->fd_wdwidth ; /* Max for 8 planes */ + c->indexes = (unsigned char*) localAlloc( c->so_indexes ) ; + if ( c->indexes == NULL ) { CC2Exit( vc ) ; return ELDV_NOTENOUGHMEMORY ; } + pixel_in_bytes = 1 ; + } + + /* Allocate memory to store all colors used for all the image */ + /* There can't be more colors than pixels in the image, so let's go with that */ + c->nb_img_colors_max = (unsigned long)img->fd_w * (unsigned long)img->fd_h ; + c->img_sorted = (unsigned char*) localAlloc( c->nb_img_colors_max*pixel_in_bytes ) ; + if ( c->img_sorted == NULL ) { CC2Exit( vc ) ; return ELDV_NOTENOUGHMEMORY ; } + c->used_bytes = c->so_indexes + c->nb_img_colors_max*pixel_in_bytes ; + + return ELDV_NOERROR ; +} + +static unsigned long CC2End(CC_CONTEXT* vc) +{ + CC2_CONTEXT* c = &vc->c2 ; + + if ( c->nplanes <= 8 ) /* Bit planes */ + { + /* Sort the new array */ + qsort( c->img_sorted, c->nb_img_colors, sizeof(unsigned char), cmp8 ) ; + /* And reduce it */ + c->nb_img_colors = reduce8( c->img_sorted, c->nb_img_colors ) ; + } + else if ( c->nplanes == 16 ) /* TC16 */ + { + /* Sort the new array */ + qsort( c->img_sorted, c->nb_img_colors, sizeof(unsigned short), cmp16 ) ; + /* And reduce it */ + c->nb_img_colors = reduce16( (unsigned short*) c->img_sorted, c->nb_img_colors ) ; + } + else if ( c->nplanes == 32 ) /* TC32 */ + { + /* Sort the new array */ + qsort( c->img_sorted, c->nb_img_colors, sizeof(unsigned long), cmp32 ) ; + /* And reduce it */ + c->nb_img_colors = reduce32( (unsigned long*) c->img_sorted, c->nb_img_colors ) ; + } + + return c->nb_img_colors ; +} + +static unsigned long CC3Exit(CC_CONTEXT* vc) +{ + CC3_CONTEXT* c = &vc->c3 ; + + localFree( c->unique_colors_bits ) ; + localFree( c->line_sorted ) ; + localFree( c->indexes ) ; + + return c->used_bytes ; +} + +static LDV_STATUS CC3Init(CC_CONTEXT* vc, CNTCOL_DATA* data) +{ + MFDB* img = &data->in->Raster ; + CC3_CONTEXT* c = &vc->c3 ; + + memset( c, 0, sizeof(*c) ) ; + c->nplanes = img->fd_nplanes ; + if ( img->fd_nplanes > 8 ) + { + /* True Color */ + /* Size of bit array for each unique color depending on the number of planes */ + c->so_line_colors = Vapi->RaGetImgSize( img->fd_w, 1, img->fd_nplanes ) ; + /* Allocate memory for a line to get sorted */ + c->line_sorted = localAlloc( c->so_line_colors ) ; + if ( c->line_sorted == NULL ) return ELDV_NOTENOUGHMEMORY ; + } + else + { + /* Bit planes */ + c->so_indexes = 16*img->fd_wdwidth ; /* Max for 8 planes */ + c->indexes = (unsigned char*) localAlloc( c->so_indexes ) ; + if ( c->indexes == NULL ) return ELDV_NOTENOUGHMEMORY ; + } + + c->so_unique_colors_bits = Getso_unique_colors_bits( img ) ; + c->unique_colors_bits = localCalloc( c->so_unique_colors_bits ) ; + if ( c->unique_colors_bits == NULL ) { CC3Exit( vc ) ; return ELDV_NOTENOUGHMEMORY ; } + + c->used_bytes = c->so_line_colors + c->so_indexes + c->so_unique_colors_bits ; + + return ELDV_NOERROR ; +} + +static unsigned long CC3End(CC_CONTEXT* vc) +{ + CC3_CONTEXT* c = &vc->c3 ; + + return CountBits( c->unique_colors_bits, c->so_unique_colors_bits ) ; +} + +static unsigned long CC3(CC_CONTEXT* vc, void* addr, unsigned long so_line) +{ + CC3_CONTEXT* c = (CC3_CONTEXT*) &vc->c3 ; + unsigned char* line = (unsigned char*) addr ; + unsigned long offset, nb_colors = 0 ; + unsigned short bit ; + + if ( c->nplanes <= 8 ) /* Bit planes */ + { + unsigned short x ; + + /* Sort/reduce this line */ + Vapi->RaRaster2Ind( addr, c->so_indexes, c->nplanes, c->indexes ) ; + qsort( c->indexes, c->so_indexes, sizeof(unsigned char), cmp8 ) ; + nb_colors = reduce8( c->indexes, c->so_indexes ) ; + + /* Update global bitarray */ + for ( x = 0; x < c->so_indexes; x++ ) + { + bit = c->indexes[x] & 0x07 ; + offset = c->indexes[x] >> 3 ; + c->unique_colors_bits[offset] |= (1 << bit) ; + } + } + else if ( c->nplanes == 16 ) /* TC16 */ + { + unsigned short* p ; + unsigned short pixel ; + + /* Sort/reduce this line */ + memmove( c->line_sorted, addr, so_line ) ; + qsort( c->line_sorted, so_line >> 1, sizeof(unsigned short), cmp16 ) ; + nb_colors = reduce16( (unsigned short*) c->line_sorted, so_line >> 1 ) ; + + /* Update global bitarray */ + for ( p = (unsigned short*)line; p < (unsigned short*) (line+so_line); p++ ) + { + pixel = *p ; + bit = pixel & 0x07 ; + offset = pixel >> 3 ; + c->unique_colors_bits[offset] |= (1 << bit) ; + } + } + else if ( c->nplanes == 32 ) /* TC32 */ + { + unsigned char* p ; + unsigned long pixel ; + + /* Sort/reduce this line */ + memmove( c->line_sorted, addr, so_line ) ; + qsort( c->line_sorted, so_line >> 2, sizeof(unsigned long), cmp32 ) ; + nb_colors = reduce32( (unsigned long*) c->line_sorted, so_line >> 2 ) ; + + for ( p = line; p < line+so_line; p += 4 ) + { + pixel = p[0] ; + pixel |= ( (unsigned long)p[1] << 8 ) ; + pixel |= ( (unsigned long)p[2] << 16 ) ; + bit = (unsigned short)pixel & 0x07 ; + offset = pixel >> 3 ; + c->unique_colors_bits[offset] |= (1 << bit) ; + } + } + + return nb_colors ; +} + +static LDV_STATUS LDVOperation(CNTCOL_DATA* data) +{ + CC_INTERFACE cci ; + CC_CONTEXT c ; + LDV_STATUS status ; + MFDB* img = &data->in->Raster ; + unsigned char* line ; + unsigned long so_line ; + short method, l = 0 ; + unsigned long nb_unique_colors_on_line, used_ram ; + unsigned char* pt_after_img ; + + so_line = Vapi->RaGetImgSize( img->fd_w, 1, img->fd_nplanes ) ; + method = data->method ; + if ( method == 0 ) + { + /* Let me decide */ + if ( img->fd_nplanes <= 8 ) method = 1 ; /* qsort/reduce is too costy when there are not so many colors */ + else method = 3 ; + } + switch( method ) + { + case 1: cci.Init = CC1Init ; + cci.CountColors = CC1 ; + cci.CountColorsEnd = CC1End ; + cci.Exit = CC1Exit ; + break ; + + case 2: cci.Init = CC2Init ; + cci.CountColors = CC2 ; + cci.CountColorsEnd = CC2End ; + cci.Exit = CC2Exit ; + break ; + + default: cci.Init = CC3Init ; + cci.CountColors = CC3 ; + cci.CountColorsEnd = CC3End ; + cci.Exit = CC3Exit ; + method = 3 ; + break ; + } + if ( VapiLog ) + { + Vapi->LoDoLog(LL_DEBUG, "cntcol.ldv: Image is %dx%dx%d, wd_width=%d", img->fd_w, img->fd_h, img->fd_nplanes, img->fd_wdwidth ) ; + Vapi->LoDoLog(LL_DEBUG, "cntcol.ldv: using %s's memory allocation routines", UseVAlloc ? "VISION":"compiler" ) ; + Vapi->LoDoLog(LL_DEBUG, "cntcol.ldv: using method %d for counting colors", method ) ; + } + status = cci.Init( &c, data ) ; + if ( !LDV_SUCCESS( status ) ) return status ; + if ( VapiLog ) Vapi->LoDoLog(LL_DEBUG, "cntcol.ldv: init done" ) ; + + line = img->fd_addr ; + pt_after_img = line + (unsigned long)img->fd_h*so_line ; + while ( LDV_SUCCESS( status ) && (line < pt_after_img) ) + { + nb_unique_colors_on_line = cci.CountColors( &c, line, so_line ) ; + if ( nb_unique_colors_on_line > 0 ) + { + fprintf( data->report_file, "|%6d|%17lu|\r\n", l, nb_unique_colors_on_line ) ; + line += so_line ; + status = check_prog( l++, img->fd_h, nb_unique_colors_on_line ) ; + } + else status = ELDV_NOTENOUGHMEMORY ; + } + + if ( status == ELDV_CANCELLED ) fprintf( data->report_file, "---- Operation cancelled by user ----\r\n" ) ; + else if ( status == ELDV_NOTENOUGHMEMORY ) fprintf( data->report_file, "---- Not enough memory ----\r\n" ) ; + else + { + unsigned long nb_unique_colors ; + + if ( VapiLog ) Vapi->LoDoLog(LL_DEBUG, "cntcol.ldv: finishing counting..." ) ; + fprintf( data->report_file, "-------|------------------\r\n" ) ; + nb_unique_colors = cci.CountColorsEnd( &c ) ; + fprintf( data->report_file, "|Total |%17lu|\r\n", nb_unique_colors ) ; + if ( VapiLog ) Vapi->LoDoLog(LL_INFO, "cntcol.ldv: %lu unique colors on image", nb_unique_colors ) ; + if ( Vapi->Header.Version >= 0x0106 ) + { + /* LDV_PARAMS provides storage for returning */ + /* A free text to be displayed in VISION */ + if ( VapiLog ) Vapi->LoDoLog(LL_INFO, "cntcol.ldv: returning #unique colors to VISION" ) ; + sprintf( data->params->ldv_txt_out, "%lu unique colors", nb_unique_colors ) ; + } + } + + fprintf( data->report_file, "-------|------------------\r\n" ) ; + used_ram = cci.Exit( &c ) ; + fprintf( data->report_file, "RAM used: %lu KB\r\n", used_ram/1024UL ) ; + + return status ; +} + +#pragma warn -par +LDV_STATUS cdecl Run(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + CNTCOL_DATA data ; + LDV_STATUS status ; + clock_t t0 ; + + if ( (in->RasterFormat & CAPS) == 0 ) return ELDV_IMGFORMATMISMATCH ; + + UseVAlloc = Vapi && Vapi->MeXcalloc && Vapi->MeXfree ; + + data.in = in ; + data.params = params ; + data.method = data.params->Param[0].s ; + data.report_file = CreateReportFile( &data ) ; + if ( data.report_file == NULL ) return ELDV_GENERALFAILURE ; + + t0 = clock() ; + status = LDVOperation( &data ) ; + + fprintf( data.report_file, "Computation time: %lu ms\r\n", (1000L*(clock()-t0))/CLK_TCK ) ; + fclose( data.report_file ) ; + + return status ; +} +#pragma warn +par + +static void init_bit_counts(void) +{ + unsigned short i, mask ; + + for ( i = 0; i <= 255; i++ ) + for ( mask = 1; mask < 256; mask <<= 1 ) + if ( i & mask ) NbBitsIn[i]++ ; +} + +int main(void) +{ + ldg_init( Ldg ) ; + + init_bit_counts() ; + + return 0 ; +} diff --git a/tools/vision/ldv/src/cntcol/cntcol.ldv b/tools/vision/ldv/src/cntcol/cntcol.ldv new file mode 100644 index 0000000000000000000000000000000000000000..646d4e1073e97cb7c3b675867b1e7b27b1bb6505 GIT binary patch literal 12061 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 CJA7FH literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/src/cntcol/cntcol.prj b/tools/vision/ldv/src/cntcol/cntcol.prj new file mode 100644 index 0000000..7d1b290 --- /dev/null +++ b/tools/vision/ldv/src/cntcol/cntcol.prj @@ -0,0 +1,12 @@ +CNTCOL.LDV +.C [ ] +.S [ ] +.L [ ] += +pcstart.o +CNTCOL.C +pcgemlib.lib +pcstdlib.lib +pctoslib.lib +..\..\ldg.lib +..\..\mt_aes.lib \ No newline at end of file diff --git a/tools/vision/ldv/src/dither/dither.c b/tools/vision/ldv/src/dither/dither.c new file mode 100644 index 0000000..ce86ce9 --- /dev/null +++ b/tools/vision/ldv/src/dither/dither.c @@ -0,0 +1,145 @@ +/* + * + * + * Version PureC / Gcc + */ + +#define PCGEMLIB 1 /* mettre 1 si les utilisateurs de Pure C + * utilise les librairies GEM Pure C */ + +/* Fichiers headers */ + +#include +#if PCGEMLIB +#include +#include +#else +#include +#include +#endif + +#include +#include +#include "..\..\ldg.h" +#include "..\..\vapi.h" +#include "..\..\ldv.h" +#include "..\..\mt_aes.h" + +/* Prototypages */ +LDV_INFOS* cdecl GetLDVCapabilities(VAPI *vapi) ; +LDV_STATUS cdecl PreRun(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; +LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; +LDV_STATUS cdecl Preview(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; + +void OnClose(void) ; + +/* Variables globales */ +PROC Proc[] = { + "GetLDVCapabilities", "LDV capabilties", (void *)GetLDVCapabilities, + "PreRun", "Before Run", (void *)PreRun, + "Run", "LDV routine", (void *)Run, + "Preview", "Preview", (void *)Preview, + } ; + +char Info[] = "LDV"; + +LDGLIB Ldg[] = { + 0x0100, /* version de la lib, recommand‚ */ + 4, /* nombre de fonction dans la lib */ + Proc, /* Pointeurs vers nos fonctions */ + Info, /* Information sur la lib */ + 0x0, /* Flags de la lib, obligatoire */ + NULL, + }; + +#define BP_CAPS (LDVF_ATARIFORMAT | LDVF_SUPPORTPREVIEW | LDVF_REALTIMEPARAMS | LDVF_NOSELECTION | LDVF_AFFECTPALETTE) +#define TC_CAPS (LDVF_ATARIFORMAT | LDVF_SUPPORTPREVIEW | LDVF_REALTIMEPARAMS | LDVF_NOSELECTION | LDVF_AFFECTPALETTE) + +LDV_INFOS LdvInfos = { + (short) sizeof(LDV_INFOS), /* Taille de cette structure */ + TLDV_MODIFYIMG, /* Type du LDV */ + "Jean Lusetti", /* Auteurs */ + { + { 1, 1, BP_CAPS }, /* Capacites pour 1 plan */ + { 4, 1, BP_CAPS }, /* Capacites pour 4 plans */ + { 8, 1, BP_CAPS }, /* Capacites pour 8 plans */ + { 16, 1, TC_CAPS }, /* Capacites pour 16 plans */ + { 32, 1, TC_CAPS }, /* Capacites pour 32 plans */ + { 0, 0, 0UL } /* Fin de la liste des capacites */ + }, + } ; + +VAPI* Vapi = NULL ; + +/* Petite macro de verification pour VAPI */ +#define CHECK_VAPI(vapi) if ( (vapi == NULL) || (vapi->Header.Version < 0x0109) ) return ELDV_BADVAPIVERSION ; + + +/* + * Fonctions de la librairie + */ + +LDV_INFOS* cdecl GetLDVCapabilities(VAPI* vapi) +{ + Vapi = vapi ; + + return( &LdvInfos ) ; +} + +#pragma warn -par +LDV_STATUS cdecl PreRun(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + return ELDV_NOERROR ; +} + +LDV_STATUS cdecl Run(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + LDV_STATUS status ; + short method, param, out_planes ; + + CHECK_VAPI( Vapi ) ; + + method = params->Param[0].s ; + param = params->Param[1].s ; + out_planes = params->Param[2].s ; + if ( out_planes <= 0 ) + { + SCREEN_INFO sinfo ; + + Vapi->CoGetScreenInfo( &sinfo ) ; + out_planes = sinfo.NPlanes ; + } + if ( (out_planes != 1) && (out_planes != 4) && (out_planes != 8) && (out_planes != 16) && (out_planes != 32) ) + { + if ( out_planes > 32 ) out_planes = 32 ; + else if ( out_planes > 14 ) out_planes = 16 ; /* TC15 or TC16 */ + else if ( out_planes > 8 ) out_planes = 8 ; + else if ( out_planes > 4 ) out_planes = 4 ; + else out_planes = 1 ; + if ( Vapi->LoDoLog ) Vapi->LoDoLog( LL_INFO, "LDVDither: nplanes %d not supported, changed to %d", params->Param[2].s, out_planes ) ; + } + out->Raster.fd_nplanes = out_planes ; + + status = (LDV_STATUS) Vapi->ImDither( method, param, in, out ) ; + if ( status != 0 ) + { + if ( Vapi->LoDoLog ) Vapi->LoDoLog( LL_WARNING, "LDVDither: ImDither returned %d", status ) ; + status = ELDV_GENERALFAILURE ; + } + + return status ; +} + +LDV_STATUS cdecl Preview(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + return( Run( in, params, out ) ) ; +} +#pragma warn +par + + +int main(void) +{ + ldg_init( Ldg ) ; + + return 0 ; +} diff --git a/tools/vision/ldv/src/dither/dither.ldv b/tools/vision/ldv/src/dither/dither.ldv new file mode 100644 index 0000000000000000000000000000000000000000..b440a3c9074bf704d29d80f6060649c50e88b8bb GIT binary patch literal 2538 zcmc&$e`pg|9RJ?sOfTsfuUS`P*Xi>bOKPjBR!c3JO)gfiS(bLG^9K}rX>+-ztx33E zHYOs`$x+MW=#Jgu%Yy zec$JOf4=wb``(LM4N!IhfVl*q1mHfE0jMf~<1m1DSGpF7biWesSQaJ$BtlYIgM>DQ z;+@NSHWH*wnlYNrW(ZlayonHBxW2V@*_tLIXN{3WCP_Lore5NO_8{ z%L12UR8|hweuEjunkSLJLxw^4;R;k@tC^Z*p!PgU50UbzeUky0T^<~p0GJ20)b`!T z>(oOBI8LQ7LoKABuhTmWjndbV>eQ^oZ^|F~d4G93t`l1%7V5eNLg)$<+~Rlub`87Y z`;1~dBzjUaRN4{%M%f*{E;4e3{E6BkRKVgPQLc#81Ecdw8kl%kB`B3r)o#q&(@F8> z3&mSKpwiK|N@=k#sJd3_6VQI8`h zdX(}kw}YqzkqeQiRw3dM@v4A`L&T}<4hEz8*h_kK`(&-(o!-fIcCbD3uHE{f&pZk1h4fbEDJ#L*1+a=a8I71BPLMr{fGq*j7$MsA)h z;OB9)G|v``*td2~Nd=7SRCW}<#r>~~#d^EEeN-Y*zcEq|jrvL{D0=ip_X6EF4k?#c zsjSvrIJ$b0(QiZ+q-ND$adZi*?1j{I(ny5bXN3RRdFeAyox()l<7sQh9eIOci`ERlwg~_4f#?v+D}J zMJ>2)e|a69XB#QkU5I;d4V|%2Z-$m*7oV#seSv3qV3$?LH4551$&E z?%)0e3^6dB^Y&SFiy6Z-$EiApG!b35;icwo;F<^V?DMsQcmq0-^WZ{>09A-x;A!5; zu7(=KZa6F-g^!v71VVqp$8t#JWKTSFB9ytsrtcJ?Dgnji)(ZAoH|s*LLY%tG!u=#j z-jIVTn=5+z>hJ{dI18M|fz(ZDCxEk;-pdXdZ>EKjgF4?+xHt={Ct-VHN>(b_+X0(w^4*!p6qhv{vWU?k1&F6Ai!_<_$bDbkez0With+LZtR literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/src/dither/dither.prj b/tools/vision/ldv/src/dither/dither.prj new file mode 100644 index 0000000..19c20e4 --- /dev/null +++ b/tools/vision/ldv/src/dither/dither.prj @@ -0,0 +1,13 @@ +DITHER.LDV +.C [ ] +.S [ ] +.L [ ] += +pcstart.o +DITHER.C +pcgemlib.lib +pcstdlib.lib +pctoslib.lib +pcfltlib.lib +..\..\ldg.lib +..\..\mt_aes.lib \ No newline at end of file diff --git a/tools/vision/ldv/src/dither/testplan.xlsx b/tools/vision/ldv/src/dither/testplan.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9c1af57b30f07fbe2ad945fcd23dd68db27221bf GIT binary patch literal 15378 zcmeHuWmKHm(r)AKZUKV3yK8Vy@Zi=sG{J&fAV_eB;2JzY8g~fp?j9^SLBj3KoH>)p z%suP7zwVFkyuDVxYj^LeE%j8@-nDD1DZ;?w0^k9N004jzPUw zeJMu=kc9)tNXyg7!qt$~!`_Y}7Z#fSJpdX~|G&@w;u#py8US{&W3~|7V#v;7Gs)*9 zVAF-M_VK>EfWfu3dpj35rZlm2BJ>Jhp+C^(eaqb3M6*SxXV7>lV;&7G_Xuq+fx8SW zuiL_$Fjn?t!${tncL~#_AbjjHSxlF_N6MMD*U(9GwoxSp8Zlgx;F(`Z8ku}fmWeXEZ z$pcS2i`&Ixc=VmvghaC|Mf&c^vx#;CLcjzVwz*~zZI5P05^fAm z%6@##PIU>vp%O$RQ6MU7`RO;AhFxQ}z3gGGX1OQb}l{xyJBePgVfH|dJbQ7m2xEIz=R zLl8uL?;|!=^sruZ(oFyl%zXZih5@mzpiFO({)WFrR5*xYrhX!`w%AxaP|De_!LLij z^qVLw5%Ip8=M36sVdVzS`)PmELWbzXK&NtE z3YDOkkw@Dmu!G`j=WVN)q)MHBM}iS^Oo50mV-!p&denUbwBg+pm0eqWp##arH6&f; zitLL#CjEQ<(?Ve>lHhXS%*#MeJ-pB`)=*z$)Tqn2ht0GrQdK0jV>5<6_l2;GWz$oX ze?kz0Ck?+N1QmV|JBtB<1_VJrV<%F>(6*Bu*N6O2EVy}eN>2z+-=vs6k}_{{xBSz` z4sHf{gUi*E`drtlFp+KF4DVx+FeR%Zg;=&K72?b>U$*zKAcx?oyI^1Q!6Gc05m%N* zPGW2?_-9u8n_YDrS6^+00w@ArA+fYn(nWr14vuKbDv>ZNVz1wLqS<6sQQscI1ogT= zhY*&dta0k1lfC+Jon3~~H6{ICC*X2*)W5K!;Xbx1 zRvxgS`^c^=nTMt4-D)}7*tRby#PB+GOoIJ*70C4NZi31O_nE}t$nl;KjI;7J_Hs#j zW$pAv%eCNY94b$2)W)7|m`+}XD9x*<996dCj^B>0lKs=Vgt&Y8KsR(=PGP+_p~u2z zvoNj|F5DG9V5(db(pQV~mnZqFkeUCxc0-}R7)yaHS&Jba66bf>fUGU-E!ckh=J=u8 zhq|hcBr>>dRHtOJ-j4Qk^(4>SO6RIctS4ow^`|yHL{>7rURm*QseB;;#>mON32dZr zhCzZ#)C*S>I8}$1QOoy*TNyg6aNppOSAd27B2^=Fo__t<;>qQGxe)XwN9rl{w)0|{ zVTIS5Zc*|{ers>{&<915CvnJqW_INzU4)s~oYw`LGlu)F*SDvv{qI1b^n6sjT|j(sK2_oc-F5YDmi zZHiuXeN}~{?>-pR;Q_Yvh%ipz`fz#hfk{Zf2gVpkG<$FfZqZX21yr2`6~0J%I_%|_ zH#1<3FMj2m`l?}}c*gK`!1vp@p${rWlhy?_I=S%X{h>m>GCEI7-XWTB1P+?F<-HQEGgQIqohtgK&!g)Its3|)Dy$Bp5Q*< z^KzLRQ34-;HAPoMuiP*WXNPF8Gr=<|iE2xKJ|xzmIZ7i|G@F-lw}G^!M=j~ba^Y|- z+M{irm-h@_m-hpwT~>Vw|1!w-4vn%9M#it7MEaj4_Gi!S7Tg! zEdOeR$(xc|=rHl7V32AE`qvrKT26zo#@;5T_Z|sQm7~W(HRzHYnsveFQS2`M-Wj#% z1O@PoIi7gT!Wlgh04Gn_ewT0^Eo8Ag$B-*q{p&L?D z!$RmK{kpT{aFs(xjO>BE&RC-?Upg?{nH9MJP$#N$h?&lIoknm<4KebGGhLxEYQ-UL(<`Fl{m-UC&nYRDJhIFG|MGZSW%DVc3jAAi!L6T^@}UK zcBU2swcfcpm7NbLiWlfvJ$JA*rk-!TG;>z9tWU&@a2n!_9b2D(>?!&z<@a9sd_N-H++ zp{lZF{5FbXJ!j7nb#cd0*vGrLP8Bk_U@ak?P+smKEn;ZqnT+y#TQv3q83r|ts1e$p zTX@(mFBn9OH-89|gm*2j$GtmohsVVP>TUP!UcnbHvG@m{~=Q1;V#nW@J2KrM#Q z(?=z|mh5)C?pq!2_OJt!fY_0Q`o0ik0j(VBd|xB+O=BQ}G>XA#CpRpffkygcAnBJ! z-d$$2_!*}-Ed*}yz)s(MNr`^Z1R5NlBFwS^?_`<*4N2Nu&8348z81iyGu9mC!DOJ>h5k znAd4_6%@9j7IqH+G6kLxq!9+ANng?|dQccr9IYV|(+ODz$;a0eD(lnPf3&M@T~p!P z_3oV0tEs)Y%jg|R=St3ue@kF4<YPVxP-(KJ(hV23>~s%Mqpj_)q8=ZO`@9r%MvaUi|{*>N!Hdh7!?(T@V<9C zcqr8&>eLT}UB2D()zL^L??iXz<-Yv!2K%A)(0K7(0*v}{0ixxTzU5AmQ8!e z=tCjPEW*Fdz;9#c{Nc|d;&pH@E99Pb-NNG4eelRYx zy*nw&2cdfHE7xrGc^P@u&w0}MQqaE5d6&nW3?10rOI3ElaN(5K4}nGGDS@dReQ)T<@!(#hk>NLe#kJ1~)IG8y1Mi;7ldz{9eV=K1dj| z@RSsO<|9v)bnPkT9w2;;`}Dr#qoLqLvjD=bn}H*kDX7&<+9tE$0g%|4zF&$&=(ewO z?EuOfjuoM%^Kew|4(73l)C`kQH zoHD%C=3*O1QW|&L=3i@x%0AD9!K(Taj% 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 GO8*BHzFu?y literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SRC/gamma/GAMMA.C b/tools/vision/ldv/src/gamma/gamma.c similarity index 93% rename from tools/vision/LDV/SRC/gamma/GAMMA.C rename to tools/vision/ldv/src/gamma/gamma.c index af21a2a..f5c2265 100644 --- a/tools/vision/LDV/SRC/gamma/GAMMA.C +++ b/tools/vision/ldv/src/gamma/gamma.c @@ -42,7 +42,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0100, /* version de la lib, recommand‚ */ + 0x0101, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ @@ -94,7 +94,7 @@ LDV_INFOS * cdecl GetLDVCapabilities(VAPI *vapi) #pragma warn -par LDV_STATUS cdecl PreRun(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) { - return( ELDV_NOERROR ) ; + return ELDV_NOERROR ; } double GammaFunc(double val, double val_max, double gamma) @@ -133,9 +133,9 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) bgamma = params->Param[3].s / 100.0 ; if ( in->Raster.fd_nplanes <= 8 ) { - if ( vdi_palette == NULL ) return( ELDV_GENERALFAILURE ) ; + if ( vdi_palette == NULL ) return ELDV_GENERALFAILURE ; vdi_epal = vdi_palette->Pal ; - if ( vdi_epal == NULL ) return( ELDV_GENERALFAILURE ) ; + if ( vdi_epal == NULL ) return ELDV_GENERALFAILURE ; for ( vdi_index = 0; vdi_index < vdi_palette->NbColors; vdi_index++, vdi_epal++ ) { vdi_epal->Red = (short) ( 0.5 + GammaFunc( vdi_epal->Red, 1000.0, rgamma ) ) ; @@ -150,7 +150,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) REMAP_COLORS rc ; MFDB *img = &in->Raster ; long *pt_line32, nb_pts_in_line ; - short *pt_line16, y, pc, is_15bits, cancel=0 ; + short *pt_line16, y, pc, is_15bits ; unsigned short nb_bits_red=8, nb_bits_green=8, nb_bits_blue=8 ; /* Sur 32 bits par defaut */ CHECK_VAPI(Vapi) ; diff --git a/tools/vision/ldv/src/gamma/gamma.ldv b/tools/vision/ldv/src/gamma/gamma.ldv new file mode 100644 index 0000000000000000000000000000000000000000..c43a69f7876fa63228f75f05b2b125dd749a9792 GIT binary patch literal 9560 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 literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SRC/gamma/GAMMA.PRJ b/tools/vision/ldv/src/gamma/gamma.prj similarity index 77% rename from tools/vision/LDV/SRC/gamma/GAMMA.PRJ rename to tools/vision/ldv/src/gamma/gamma.prj index 673407f..c883b92 100644 --- a/tools/vision/LDV/SRC/gamma/GAMMA.PRJ +++ b/tools/vision/ldv/src/gamma/gamma.prj @@ -1,6 +1,7 @@ GAMMA.LDV -;.C[-Y- -G+] -;.L[-Y-] +.C [ ] +.S [ ] +.L [ ] = pcstart.o GAMMA.C diff --git a/tools/vision/ldv/src/genimg/genimg.c b/tools/vision/ldv/src/genimg/genimg.c new file mode 100644 index 0000000..28f6034 --- /dev/null +++ b/tools/vision/ldv/src/genimg/genimg.c @@ -0,0 +1,173 @@ +#define PCGEMLIB 1 /* Set to 1 if PureC is used */ + +#if PCGEMLIB +#include +#include +#else +#include +#include +#endif + +#include +#include +#include +#include "..\..\ldg.h" +#include "..\..\vapi.h" +#include "..\..\ldv.h" + +/* Prototypes */ +LDV_INFOS* cdecl GetLDVCapabilities(VAPI* vapi) ; +LDV_STATUS cdecl PreRun(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; +LDV_STATUS cdecl Run(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; +LDV_STATUS cdecl Preview(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) ; + +/* Variables globales */ +PROC Proc[] = { + "GetLDVCapabilities", "LDV capabilities", (void *)GetLDVCapabilities, + "PreRun", "Run initialization", (void *)PreRun, + "Run", "LDV operation", (void *)Run, + "Preview", "Pre-Visu", (void *)Preview, + } ; + +char Info[] = "LDV" ; + +LDGLIB Ldg[] = { + 0x0100, /* Lib version */ + 4, /* Number of functions in lib */ + Proc, /* Pointers to our functions */ + Info, /* Lib information */ + 0x0, /* Lib flags */ + NULL, /* On exit, free VDI handle (unused) */ + } ; + +#define CAPS (LDVF_ATARIFORMAT | LDVF_SUPPORTPREVIEW | LDVF_OPINPLACE | LDVF_NOSELECTION) + +LDV_INFOS LdvInfos = { + (short) sizeof(LDV_INFOS), /* size of this structure */ + TLDV_MODIFYIMG, /* LDV Type */ + "Jean Lusetti", /* Authors */ + { + { 1, 1, CAPS }, /* 1 bitplane capabilities */ + { 2, 2, CAPS }, /* 2 bitplane capabilities */ + { 4, 4, CAPS }, /* 4 bitplane capabilities */ + { 8, 8, CAPS }, /* 8 bitplane capabilities */ + { 16, 16, CAPS }, /* 16 bitplane capabilities */ +/* Not yet { 24, 24, CAPS }, */ + { 32, 32, CAPS }, /* 32 bitplane capabilities */ + { 0, 0, 0UL } /* End of this list */ + }, + } ; + +VAPI* Vapi = NULL ; + + +LDV_INFOS* cdecl GetLDVCapabilities(VAPI* vapi) +{ + Vapi = vapi ; + + return( &LdvInfos ) ; +} + +static LDV_STATUS GenMaxColors(MFDB* img) +{ + unsigned long nb = ((unsigned long)img->fd_wdwidth << 4) * (unsigned long) img->fd_h ; + unsigned long n ; + + if ( img->fd_nplanes <= 8 ) + { + MFDB tmp ; + unsigned char* pt_img ; + unsigned char* pt_after_img ; + unsigned char indexes[256] ; /* Array of indexes: 256 as max for 8 bitplanes */ + short bitplanes[128] ; /* Transformation into bitplanes Atari */ + unsigned long so_line ; + unsigned short ncol = 1 << img->fd_nplanes ; + + memset( &tmp, 0, sizeof(MFDB) ) ; + tmp.fd_addr = bitplanes ; tmp.fd_nplanes = img->fd_nplanes ; + tmp.fd_w = ncol ; tmp.fd_h = 1 ; + for ( n = 0; n < 256; n++ ) indexes[n] = (unsigned char) n ; + Vapi->RaInd2RasterInit( &tmp, 256 ) ; + Vapi->RaInd2Raster( indexes, 256 ) ; + /* Fill in img MFDB with repetition of bitplanes buffer */ + pt_img = img->fd_addr ; + so_line = 16UL*img->fd_wdwidth ; + so_line *= (unsigned long)img->fd_nplanes ; + so_line >>= 3 ; /* Size of a line in bytes */ + pt_after_img = pt_img + so_line * (unsigned long)img->fd_h ; + Vapi->LoDoLog(LL_DEBUG, "genimg.ldv: pt_after_img=%p", pt_after_img ) ; + while ( pt_img < pt_after_img-256 ) + { + Vapi->LoDoLog(LL_DEBUG, "genimg.ldv: pt_img=%p", pt_img ) ; + memcpy( pt_img, bitplanes, 256 ) ; + pt_img += 256 ; + } + } + else if ( img->fd_nplanes == 16 ) + { + unsigned short* pt = img->fd_addr ; + unsigned short inc = (unsigned short) (nb / (1UL << 16)) ; + unsigned short val = 0 ; + + if ( inc < 1 ) inc = 1 ; + + for ( n = 0; n < nb; n++ ) + { + *pt++ = val ; + val += inc ; + } + } + else if ( img->fd_nplanes == 32 ) + { + unsigned long* pt = img->fd_addr ; + unsigned long inc = nb / (1UL << 24) ; + unsigned long val = 0 ; + + if ( inc < 1 ) inc = 1 ; + inc <<= 8 ; + + for ( n = 0; n < nb; n++ ) + { + *pt++ = val ; + val += inc ; + } + } + + return ELDV_NOERROR ; +} + +#pragma warn -par +LDV_STATUS cdecl PreRun(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + return ELDV_NOERROR ; +} + +LDV_STATUS cdecl Run(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + LDV_STATUS status ; + + switch( params->Param[0].s ) + { + case 1: /* Generate an image with as many colors as possible */ + status = GenMaxColors( &in->Raster ) ; + break ; + + default: status = ELDV_INVALIDPARAMETER ; + break ; + } + + return status ; +} +#pragma warn +par + +LDV_STATUS cdecl Preview(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) +{ + return( Run( in, params, out ) ) ; +} + +int main(void) +{ + ldg_init( Ldg ) ; + + return 0 ; +} diff --git a/tools/vision/ldv/src/genimg/genimg.ldv b/tools/vision/ldv/src/genimg/genimg.ldv new file mode 100644 index 0000000000000000000000000000000000000000..db2f06e9a680189ff9adffb267b59524c4fce8b4 GIT binary patch literal 3402 zcmc&%Z){W76+iFUH80MK`{HK7q>S9W7|Ucy97sR`rC>ip`(j)twNtuI)%+Y{Kb!>H zavbKOh&f$8gb!2G3Qc^NCbkb7NEJe?LQF%G!?r4A`(Ri#7HL}2jX|J{L={62d3fhO zCyze@O_eI`MEBm`{oQlVJ?Gx%b8nP7fXZ3`<}(1f3m(ZD07U`d?*j-c>`oNY`(|)Y zi~0D55tMz=^hi9JAY^lE8zD~brq0fm?QKL#riUYm0n(kwMAL~# z22~=%ga9~XQW@hMNie1ug_Ycmf4~)Qwdb+ELxzCA`~}otSzjnJ&^UwaT~b+?%y&Vt z)jf3q;6-Spx=X%y=?oR%G-Y9#YKU%Uw|xkj#Y?`rSW&C*Nk4UQuF72)Cl+78)3XS? z=L^VLg|l67WXKYnOqYTl!4_Ml?6xjo|JC)F}*zDhTz0`jE;fmmvWW?xsSX{S0@MHLSU-5N8{eqxjf~Xf;*@mzrXoI z@&bCoQ%_8{o8Wr6uX$$rYxlo7aPf3E`0g}uF{?J%`M?xC8Ku=#rHw{Y#05`}5t*O!Sh{hY<_F$3#a^G^B+2Q$#T5uqLI0AupdhB7!h;-g9 zvI&~iEuvensm<1Ps`D(wEOxo3PPJg~&c}>;*S9WKRIXuf9>4roVoRi(&i`OWxxdTc zGDx4ft!QusTa6)Ngs~qH4nSTQQ^6raHXKM!~vSfU}1Fy23az zH7h;7kaI#Ihkp~wbswv;yK~O^ZFEN}9n{Zbq*ApY4q*)40na-<${meA{tOt0g>&)A`7AM z7?ckA=d#5ukRM}8*JPCoxf>eZm?;%6j)4KaT?%=s8!(3y6@Y6`M=Q*hqlHT=(HbeE zM|w<)bT(U*3)!NdwhP%JICa#kqpXfj=x9bqORI>n>Bz0413H@0(Ru%@4Og=jnfbzM zoY|-2B(r*)T*xEL(kKc2j=9Uzc8*4byD=UG_^2A{p`*SA+E`iY0K&{qUYk_2@{RCL zk#(?6wux{lpFi@?jV)gsGnCqxm2+Yr_rIE5_20cJ zc`B=&M{SOIQmnd^dDx*z=QE_NuuYSWX9yj4W3u?aO6e;KFs#A&f@uv`u`_np`J8|jb(-ZHU1UX|GL%fAWJ?eR%>Up)|j6TjQ%b!OZn-- zdx)l2ksOqJG51x_+(+{-=3euj2LLVS_(A6GTz}F+ZwUSbz5Oft6~E+Fx>Ee~Z?|5c ze1}24D6&_^ue|rqqhxSyVB;AZ2kh1hfd^pPh&Q%50i5Sc01?L;Cv9BNdv0*9|KM+6 zkb$|BJ*;J7T+xfRssu-cc)`E>wb$Ew!PtHPSl}8D;5);NH3t@Cc&J5e0bBbRyA{?W zw!%-OQ}DC4E&`sL@N>zd7$sZKbHwC`BXVR}lGw7Z-l8W@lhvS)ebOf+Z z_CHSarlY~p1YjZY1nNYFK%$lzX#a1?2C_#f*MW452~%h1BZ5y zR3;pW;lBZ4WM0{rdU|YyeWs63k}Oo2hX>SfCY^{K3}=$zk<7sU$nY?UMdHKJ0piR= z`ornyKs+7Yp9!bZ$^9ggOp=jN+fnoe^($MY6bwq}R9 h#{5~Gz>$+SE#)G)rTM!i-o}|k6Rmi=@saRG_%B-kPB;Jn literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/src/genimg/genimg.prj b/tools/vision/ldv/src/genimg/genimg.prj new file mode 100644 index 0000000..7a3e792 --- /dev/null +++ b/tools/vision/ldv/src/genimg/genimg.prj @@ -0,0 +1,12 @@ +GENIMG.LDV +.C [ ] +.S [ ] +.L [ ] += +pcstart.o +GENIMG.C +pcgemlib.lib +pcstdlib.lib +pctoslib.lib +..\..\ldg.lib +..\..\mt_aes.lib \ No newline at end of file diff --git a/tools/vision/LDV/SRC/INVERT/INVERT.C b/tools/vision/ldv/src/invert/invert.c similarity index 95% rename from tools/vision/LDV/SRC/INVERT/INVERT.C rename to tools/vision/ldv/src/invert/invert.c index 0890e9a..321ca66 100644 --- a/tools/vision/LDV/SRC/INVERT/INVERT.C +++ b/tools/vision/ldv/src/invert/invert.c @@ -42,7 +42,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0100, /* version de la lib, recommand‚ */ + 0x0101, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ diff --git a/tools/vision/ldv/src/invert/invert.ldv b/tools/vision/ldv/src/invert/invert.ldv new file mode 100644 index 0000000000000000000000000000000000000000..911f6be1ecd4e094dff302341930ac3db804db81 GIT binary patch literal 3209 zcmc&$U2Gf25uQ6x`EAW6G0nju6!3`j8N_&t<|1;4; zZ2{7aL`W)EAo5W;+Se94N|25v3sad~mXMBiA0eK=o&yKkp70SRSC~j-M@e6{m@H%y zMN~;l5CY&pjaB^4-{Xpo&P8l@l5r5;`3M@3ca|#*IG0c=5o>vFu^TGw z{__g}+rUY6cLh(;8EJq^R0X0T>205h1f>wg>|c6; zJb~ZiXqqGb@cAkps$u$`JB?n4!m@Bm*8!}aw8e+oR!;($*Td7!JHX+{C4YhzULkyV z+G~y6(N8LaNA5sT6MWmt{>K-90f-I?gJ7Aw{rD`f(5U8s4d7hzG}>_wMSRUY=`=lK$uX}RfY0W|FV>$30!d0yvA*$;sa{~0A>?FeL!ih9W%|db8*w zi!BEnw&+Km54?w3d;-|U>a2g(W)&FPe6Pk{MJ#a|l(9<;l zLV!koL8^1AxQDn~*bDL+d>4DswE&|4U9(_Czo)_qiTmEfc|jNMZXsC&4fHvBuC32e z>q3ZJC%*=+Lk6KR>FUOq8T2^itN_?%sTTUV0iHZB`ALH`r<_9B75P1_5lkCOXQhP4 z%6g@g*m}NBy?Jt7$X#-%fFMN7^0OF!kFzM3^@XH^9K8#c(!i{G`QI!J1KdOW?w=OlS=?K< zkLU5^r$wFxNZA`&Vx`oE2Fx4P@w&!S32MJ8!H4J8&S56GpuXR`EA+ukMgOyUYZF~I z(42uZ1067sxP|Vo8EDZ!FB&LsAk{#mh8&gqfXMN)3Jb9_DbP=bR%R-DVR4qxSJgBh z^S87NEa{c2vtUAR*JE-+3+9=M2C(}1XvO7Pv~XiHT8>JLNPk|9ba|$tmS-v<+ON%2 zz+<3(1I-xd7Y14~(E1i)90u|m=!AjJ8|aPDvIAFhRG3@ktvF{sA17Hh;^bqpxJ;uY z_@(_@v`A@d@Sra-pC!9NH90(4r2`M4n!^4n?RyB(_kR4@{;#BeMFNI3abGh(!q;t1 zv{;3D+cvSm{`JOhG;Me6X#VETZ|&MmS|n#p;mh8C#r6N!>X?Q5F(=f~oIvvu<|GTv z${i_TjQMzFIA^0d)%r(zbMhCpkP^_k^TJ!d>sp}leJ1s)#NIq}^X%Wwk+GH0M=v{g zV7nH=pMd#Myvyr;1-$$(014kY=Nx=A@Y}JK;mIp7#=uJ66|ZI}T#;sfanW5TErbpp z`A%m)aClF$z&lT1_O@WlgAFADG$FQuqjQ$+f}M!%a8Y>;UiNhpkUxM|6j|dGM^wHn zXYa9@`#LmX=5Mdw3PQC`c-N&8OWIbg1Dc7S{7CU@c%!=FZp@WDdVx8;DRo!Ed!ivl zD+lWh%!RvxFJP`H-K>D9t`iHSThCV)pmFFew!^qEI1%wLL0c5<$SqJvt zM?Qu4?a;wvz%aDJu^dPKDYeABShaT=m|!xIC86o5WU-j3%Kl@6cCgrG>0%)cEkcOr zX)Dq~H$(_+9k@D#kpBzP^&`n5Iv7ag6T_K_Ofi$30y-GU6wgkP(P=`x?=K{y(^=@t zW{Olq@!?!{gcie}QaPDP{(!2s9m`D7?Gk#BF=BfE*JCZQ?cxI&9aA}#eHpP(ZTfb)(9K2aF Q(?)P{4@lt5tHuca4fp%n;Q#;t literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SRC/INVERT/INVERT.PRJ b/tools/vision/ldv/src/invert/invert.prj similarity index 75% rename from tools/vision/LDV/SRC/INVERT/INVERT.PRJ rename to tools/vision/ldv/src/invert/invert.prj index 46db0fd..58215c1 100644 --- a/tools/vision/LDV/SRC/INVERT/INVERT.PRJ +++ b/tools/vision/ldv/src/invert/invert.prj @@ -1,6 +1,7 @@ invert.ldv -;.C[-Y- -G+] -;.L[-Y-] +.C [ ] +.S [ ] +.L [ ] = pcstart.o invert.c diff --git a/tools/vision/LDV/SRC/light/LIGHT.C b/tools/vision/ldv/src/light/light.c similarity index 95% rename from tools/vision/LDV/SRC/light/LIGHT.C rename to tools/vision/ldv/src/light/light.c index 739c791..2545538 100644 --- a/tools/vision/LDV/SRC/light/LIGHT.C +++ b/tools/vision/ldv/src/light/light.c @@ -41,7 +41,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0101, /* version de la lib, recommand‚ */ + 0x0102, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ @@ -151,7 +151,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) REMAP_COLORS rc ; MFDB *img = &in->Raster ; long *pt_line32, nb_pts_in_line ; - short *pt_line16, y, pc, is_15bits, cancel=0 ; + short *pt_line16, y, pc, is_15bits ; unsigned short nb_bits_red=8, nb_bits_green=8, nb_bits_blue=8 ; /* Sur 32 bits par defaut */ CHECK_VAPI(Vapi) ; diff --git a/tools/vision/ldv/src/light/light.ldv b/tools/vision/ldv/src/light/light.ldv new file mode 100644 index 0000000000000000000000000000000000000000..ef811a22529a1c1cf6d0bd38681a70ab4726dfba GIT binary patch literal 3182 zcmc&$e`p)m9sl0xd_GH;v#e&SqIu1$tO`X=Y(-97$7qRka-6fG$&TzMErj{xNV-UN zBq7V)8cdMWZ8*?UH-ol}QP>#WT1qfpDcLYV&brWc`$KWZMxc<4HEp)0jVU1{#*6lS zCp$kNp(_mbh4;SS_xXI^_x-x>y{Fm%j4A;0D}cRzxGVJlD&nFAz`Tm?L?HuD#ddEA z5kCqcsa$~shk~)bErUY@Wq-0Tp3Y?n+1lnM#2wny)wN}Zm&m!oSUj5`ec58Nkc}77 zB|b(7fJ-5!l;Fw%muFN~4z&CUN8~!nSPNtn#PgrSdMwSA6$V<~M^qxF%5>QeD{X<9 zd4NV}p}xlObF_yBaEhX^Og$U{cb{_!6N6r14jj9G39ZvsXWlr%80kV+7B zr0fN&j+U&9ofEvU}^=3@+{`E0CBAB{=hx%9@{#$uVV4PF!+tbZv}ID4*@}_g|}C@#LV#nFFQo z3$V%|uLq2?&*3PYnw_49sdIY(r0qHamQ`&PkAMJD7T^^kYJzJFScfUa=NnaE)h-W6 z%6r`&uqc1@d%&ukllQ0z?;}dt!NsBOWFdj|Upq^)lZGofu5;dS#oG!jvUP|Tb@ud= z0bq5We-gcbMGp==c=U+r9?D7*&P&JWn$3WuiN1Og!5x(1a66;p-H2N>$;St;GJuQ)nE{>g zBV$FTE_jutj1`&Aj(>qfqoKz9Gj*f3qW0$-%cH<)V!^zK`s`$NN#%UFCr6>1aSvke z)&1kPRZ17iK8v!jICWv6?WgxJ_RG`fU!~0D6Cb^b=fbK0KVMyuuQdW9siS>yWftYB zJL|p_oq4)n-Fy%7iH_J?56~Vo<~`gM%HdplXD6XC)$QX?W^iT;gsGG&Q=d&&rY=wW zJg|z!!BA-fZ@p4(hdblFKqI&y)*B9`g!v5cIj9~ChcqrP(Eo%|#>}-vF8WvSyJy?m z!Ms-D@NX~8YA1f#dVahf2QDQCu(b^Cyx<6sCdaf)&-1O|-_-SBSe83hN(uN2`CvjB`b!2m77F6meibkt3U6v*vRI%rpMkEnuPWsuAwg)JlL;(spE4Gz;SkgH7QeBYuwc(=69@y;9G*gJ$_a`bmQxNVqibV%!6{IW=)`+vMJ_K?j^Al7+}~b{+3nDb zwgq07--KU!{RD#lgg4}%%E`7^a5k8|$);~t>8((0(^qg)e+ihK3NdPuZV!8Pv%vopo4Vn^+pMvo-+u3gOWI@Mmo;Iqw73Fhb&1x>--);7QCD9ZUE@u8 z2kjNDIQEifA{RtXezUq1tvoc^&WA;-#Uc2rd-^3B*%-M$<})v~*0qqx}}@Bo_2!K1KawEHC1l>5WLweoR053NmJ}{A?`>>SMr!lkqHxOpGUs zMU3)w!Z7IZG0W1L!-(*)Akf;3&tB##eWfy2vHjmmqL!I^l0}?mD4vgxq{q_5baEVM z<50SIe4HdE2wlTKAsL&GAtE?ICkwVV!X- zp$!)c+0>EYVs3c6m^c(48zZTBdMueB?qYmoxR6Yw3&}&p;d~)?h!k@ +#include +#if PCGEMLIB +#include +#include +#else +#include +#include +#endif + +#include +#include +#include "..\..\ldg.h" +#include "..\..\vapi.h" +#include "..\..\ldv.h" +#include "..\..\mt_aes.h" + +/* Prototypages */ +LDV_INFOS* cdecl GetLDVCapabilities(VAPI *vapi) ; +LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; + +typedef struct _ANALYSIS_DATA +{ + /* Internal data during analysis */ + unsigned char* pixel ; /* Pixel under analysis */ + long add_pixel ; /* Offset to next pixel to analyze */ + + /* For indexes */ + short* pt_img ; + + long npixels_sofar ; + long npixels_add ; + long npixels_total ; +} +ANALYSIS_DATA, *PANALYSIS_DATA ; + +/* This is our structure to held image data */ +/* And analyze outcome */ +typedef struct _IMG_REPORT +{ + /* Inputs */ + LDV_IMAGE* in ; + char* profile ; + char save_options[6][32] ; /* 0: 1 plane, 1: 4 planes, 2:8 planes, 3:16 planes, 4:24 planes, 5:32 planes */ + unsigned char limit_black ; + unsigned char limit_white ; + unsigned char diff_grey ; + unsigned char enforce_smaller ; + short enforce_dither ; + short dither_method ; + short dither_outplanes ; + short dither_param ; + + ANALYSIS_DATA d ; + + /* Outcome */ + char is_dualtone ; + char is_grey ; + long ncolors ; +} +IMG_REPORT, *PIMG_REPORT ; + +/* Variables globales */ +PROC Proc[] = { + "GetLDVCapabilities", "LDV capabilties", (void *)GetLDVCapabilities, +/* No preRun "PreRun", "Before Run", (void *)PreRun, */ + "Run", "LDV routine", (void *)Run, +/* No preview "Preview", "Preview", (void *)Preview, */ + } ; + +char Info[] = "LDV"; + +LDGLIB Ldg[] = { + 0x0102, /* version de la lib, recommand‚ */ + 2, /* nombre de fonction dans la lib */ + Proc, /* Pointeurs vers nos fonctions */ + Info, /* Information sur la lib */ + 0x0, /* Flags de la lib, obligatoire */ + NULL, + }; + +#define CAPS (LDVF_ATARIFORMAT | LDVF_OPINPLACE | LDVF_SUPPORTPROG | LDVF_SUPPORTCANCEL | LDVF_NOSELECTION | LDVF_NOCHANGE) + +/* Note that for this LDV, no matter what is returned as #nplanes for output */ +/* As no LDV_IMAGE is returned, a file is generated */ +LDV_INFOS LdvInfos = { + (short) sizeof(LDV_INFOS), /* Taille de cette structure */ + TLDV_MODIFYIMG, /* Type du LDV */ + "Jean Lusetti", /* Auteurs */ + { + { 1, 1, CAPS }, /* Capacites pour 1 plan */ + { 4, 1, CAPS }, /* Capacites pour 4 plans */ + { 8, 1, CAPS }, /* Capacites pour 8 plans */ + { 16, 1, CAPS }, /* Capacites pour 16 plans */ + { 32, 1, CAPS }, /* Capacites pour 32 plans */ + { 0, 0, 0UL } /* Fin de la liste des capacites */ + }, + } ; + +VAPI* Vapi = NULL ; + +/* VAPI macro check */ +#define CHECK_VAPI(vapi) if ( (vapi == NULL) || (vapi->Header.Version < 0x0109) ) return ELDV_BADVAPIVERSION ; + +unsigned char u5bto8b[32] ; +unsigned char u6bto8b[64] ; + +/* + * Fonctions de la librairie + */ + +LDV_INFOS* cdecl GetLDVCapabilities(VAPI* vapi) +{ + Vapi = vapi ; + + return( &LdvInfos ) ; +} + +static void GetDefaultSaveOptions(IMG_REPORT* img_report) +{ + strcpy( &img_report->save_options[0][0], "fmt=TIF;compression=lzw" ) ; /* 1 Plane */ + strcpy( &img_report->save_options[1][0], "fmt=TIF;compression=lzw" ) ; /* 4 Planes */ + strcpy( &img_report->save_options[2][0], "fmt=TIF;compression=lzw" ) ; /* 8 Planes */ + strcpy( &img_report->save_options[3][0], "fmt=JPG;quality=90" ) ; /* 16 Planes */ + strcpy( &img_report->save_options[4][0], "fmt=JPG;quality=90" ) ; /* 24 Planes */ + strcpy( &img_report->save_options[5][0], "fmt=JPG;quality=90" ) ; /* 32 Planes */ +} + +static short LoadProfile(IMG_REPORT* img_report) +{ + long profile_found = 0 ; + short i ; + char* path_ldv ; + char* language ; + char* keys[] = { "1", "4", "8", "16", "24", "32" } ; + + if ( img_report->profile == NULL ) return -1 ; + + path_ldv = Vapi->CoGetLDVPath() ; + language = Vapi->CoGetCurrentLanguage() ; + if ( path_ldv && language ) + { + long found ; + char filename[256] ; + char buffer[128] ; + + sprintf( filename, "%s\\%s\\OPTIMG.INI", path_ldv, language ) ; + Vapi->LoDoLog(LL_INFO,"optimg.ldv: Looking into %s to find profile %s", filename, img_report->profile) ; + for ( i = 0; i < ARRAY_SIZE(keys); i++ ) + if ( !profile_found ) profile_found = Vapi->InGetKeyFromFile( filename, img_report->profile, keys[i], &img_report->save_options[i][0] ) ; + if ( !profile_found ) + { + sprintf( filename, "%s\\OPTIMG.INI", path_ldv ) ; + Vapi->LoDoLog(LL_INFO,"optimg.ldv: Looking into %s to find profile %s", filename, img_report->profile) ; + Vapi->LoDoLog(LL_INFO,"optimg.ldv: Looking into non language specific %s to find profile %s ...", filename, img_report->profile) ; + for ( i = 0; i < ARRAY_SIZE(keys); i++ ) + profile_found = Vapi->InGetKeyFromFile( filename, img_report->profile, keys[i], &img_report->save_options[i][0] ) ; + } + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "limit_black", buffer ) ; + if ( found ) img_report->limit_black = (unsigned char) atoi( buffer ) ; + else img_report->limit_black = 0 ; + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "limit_white", buffer ) ; + if ( found ) img_report->limit_white = (unsigned char) atoi( buffer ) ; + else img_report->limit_white = 255 ; + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "diff_grey", buffer ) ; + if ( found ) img_report->diff_grey = (unsigned char) atoi( buffer ) ; + else img_report->diff_grey = 0 ; + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "enforce_smaller", buffer ) ; + if ( found ) img_report->enforce_smaller = (unsigned char) atoi( buffer ) ; + else img_report->enforce_smaller = 0 ; + + /* Keys to enforce dither method */ + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "enforce_dither", buffer ) ; + if ( found ) img_report->enforce_dither = (short) atoi( buffer ) ; + else img_report->enforce_dither = 0 ; + if ( img_report->enforce_dither ) + { + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "dither_method", buffer ) ; + if ( found ) img_report->dither_method = (short) atoi( buffer ) ; + else img_report->dither_method = 0 ; + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "dither_outplanes", buffer ) ; + if ( found ) img_report->dither_outplanes = (short) atoi( buffer ) ; + else img_report->dither_outplanes = 0 ; + found = Vapi->InGetKeyFromFile( filename, img_report->profile, "dither_param", buffer ) ; + if ( found ) img_report->dither_param = (short) atoi( buffer ) ; + else img_report->dither_param = 0 ; + } + } + else Vapi->LoDoLog(LL_WARNING,"optimg.ldv: Can't access LDV (%s) or language path (%s)!", path_ldv, language) ; + + return !profile_found ; /* 0 if found */ +} + +static long md_grey(long abs_diff, long max_diff) +{ + if ( abs_diff > max_diff ) return abs_diff ; + else return max_diff ; +} + +static void fast_isgrey(IMG_REPORT* img_report) +{ + /* Quick check to see if all pixels in diagonal are grey */ + MFDB* in = &img_report->in->Raster ; + long add_pixel = (in->fd_nplanes >> 3) ; + unsigned char* pixel = in->fd_addr ; + unsigned short pix16, diff_grey = img_report->diff_grey ; + short h ; + unsigned char r, g, b ; + + add_pixel += add_pixel*16L*(long)in->fd_wdwidth ; /* Offset to next pixel in diagonal */ + for( h = 0 ; img_report->is_grey && (h < in->fd_h-1); h++, pixel += add_pixel ) + { + if ( in->fd_nplanes == 16 ) + { + pix16 = *pixel ; /* RRRRRGGGGGGBBBBB*/ + r = u5bto8b[pix16 >> 11] ; /* Value on 5 bits remapped to 8 bits */ + g = u6bto8b[(pix16 >> 5) & 0x1F] ; /* Value on 6 bits remapped to 8 bits */ + b = u5bto8b[pix16 & 0x1F] ; /* Value on 5 bits remapped to 8 bits */ + } + else + { + r = pixel[0] ; + g = pixel[1] ; + b = pixel[2] ; + } + if ( abs( r-g ) > diff_grey ) img_report->is_grey = 0 ; + else if ( abs( r-b ) > diff_grey ) img_report->is_grey = 0 ; + else if ( abs( g-b ) > diff_grey ) img_report->is_grey = 0 ; + } + + if ( !img_report->is_grey ) + { + if ( in->fd_nplanes == 16 ) Vapi->LoDoLog(LL_INFO,"optimg.ldv: fast_isgrey, not grey: %d %d %d (%X)", (short)r, (short)g, (short)b, pix16) ; + else Vapi->LoDoLog(LL_INFO,"optimg.ldv: fast_isgrey, not grey: %d %d %d", (short)r, (short)g, (short)b) ; + } +} + +static short AnalyzeFromVISION(IMG_REPORT* img_report) +{ + HISTO histo ; + short status ; + + Vapi->LoDoLog(LL_INFO,"optimg.ldv: Requesting VISION to compute histogram...") ; + Vapi->PrSetText( 1, "Requesting histograms to VISION..." ) ; + histo.norm = 256 ; /* Normalize stats to 0...256 scale */ + status = Vapi->ImComputeHistogram( img_report->in, &histo ) ; + Vapi->LoDoLog(LL_INFO,"optimg.ldv: histogram done with status %d", status) ; + if ( status == 0 ) + { + long max_diff_grey = 0 ; + long r, g, b, ref_diff_grey ; + short i, grey1 = 0 ; + + ref_diff_grey = img_report->diff_grey ; + for ( i = 0; img_report->is_grey && (i < HISTO_SIZE); i++ ) + { + r = histo.red[i] ; + g = histo.green[i] ; + b = histo.blue[i] ; + max_diff_grey = md_grey( labs( r-g ), max_diff_grey ) ; + max_diff_grey = md_grey( labs( r-b ), max_diff_grey ) ; + max_diff_grey = md_grey( labs( g-b ), max_diff_grey ) ; + if ( max_diff_grey > ref_diff_grey ) img_report->is_grey = 0 ; + } + Vapi->LoDoLog(LL_INFO,"optimg.ldv: max difference grey=%ld", max_diff_grey) ; + + /* As histogram will report "perfect grey" if image has colors fully aligned (i.e. full 16M picture), let's make a fast check on grey levels */ + if ( img_report->is_grey && (img_report->in->Raster.fd_nplanes > 8) ) + { + fast_isgrey( img_report ) ; + if ( img_report->is_grey ) grey1 = 1 ; + } + if ( !img_report->is_grey ) + { + i-- ; + Vapi->LoDoLog(LL_INFO,"optimg.ldv: image is not grey level and so not dual-tone") ; + if ( grey1 ) Vapi->LoDoLog(LL_INFO,"optimg.ldv: RGB[%d]=%ld,%ld,%ld", i, r, g, b) ; + img_report->is_dualtone = 0 ; + } + else if ( img_report->limit_black < img_report->limit_white ) + { + for ( i = img_report->limit_black; img_report->is_dualtone && (i < img_report->limit_white); i++ ) + { + if ( histo.grey[i] > ref_diff_grey ) img_report->is_dualtone = 0 ; + } + if ( !img_report->is_dualtone ) + { + i-- ; + Vapi->LoDoLog(LL_INFO,"optimg.ldv: image is not dual tone") ; + Vapi->LoDoLog(LL_INFO,"optimg.ldv: Grey[%d]=%ld", i, histo.grey[i]) ; + } + } + img_report->ncolors = histo.nb_colors_used ; + } + + return status ; +} + +static LDV_STATUS ImgAnalyze(IMG_REPORT* img_report) +{ + LDV_IMAGE* in = img_report->in ; + short status ; + + img_report->is_dualtone = 1 ; + img_report->is_grey = 1 ; + + if ( LoadProfile( img_report ) != 0 ) + { + /* For some reason, profile is not found */ + /* Let's defaut to TIF/JPEG outputs */ + Vapi->LoDoLog(LL_INFO, "optimg.ldv: getting hard-coded default profile") ; + GetDefaultSaveOptions( img_report ) ; + } + + if ( in->Raster.fd_nplanes == 1 ) return 1 ; + + Vapi->LoDoLog(LL_INFO, "optimg.ldv: image is %dx%dx%d", in->Raster.fd_w, in->Raster.fd_h, in->Raster.fd_nplanes) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze enforce_smaller = %d", (short)img_report->enforce_smaller) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze limit_black = %d", (short)img_report->limit_black) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze limit_white = %d", (short)img_report->limit_white) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze diff_grey = %d", (short)img_report->diff_grey) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze enforce_dither = %d", (short)img_report->enforce_dither) ; + if ( img_report->enforce_dither ) + { + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze method = %d", (short)img_report->dither_method) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze outplanes = %d", (short)img_report->dither_outplanes) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze param = %d", (short)img_report->dither_param) ; + } + + if ( img_report->enforce_dither ) + { + Vapi->LoDoLog(LL_INFO,"optimg.ldv: profile enforces dither method=%d, outplanes=%d, param=%d", img_report->dither_method, img_report->dither_outplanes, img_report->dither_param ) ; + status = 1 ; + } + else + { + status = ( AnalyzeFromVISION( img_report ) == 0 ) ; + if ( img_report->is_grey ) { Vapi->LoDoLog(LL_INFO,"optimg.ldv: image is grey level") ; status = 1 ; } + if ( img_report->is_dualtone ) { Vapi->LoDoLog(LL_INFO,"optimg.ldv: image is dual tone") ; status = 1 ; } + Vapi->LoDoLog(LL_INFO,"optimg.ldv: %ld colors found", img_report->ncolors) ; + } + + return status ; +} + +static char* GetSaveOptions(IMG_REPORT* img_report, short nplanes) +{ + short planes[] = { 1, 4, 8, 16, 24, 32 } ; + short i ; + char* save_options = NULL ; + + for ( i = 0; (save_options == NULL) && (i < ARRAY_SIZE(planes)); i++ ) + if ( planes[i] == nplanes ) save_options = &img_report->save_options[i][0] ; + + Vapi->LoDoLog(LL_INFO, "optimg.ldv: GetSaveOptions(%d planes): %s", nplanes, save_options ? save_options:NULL) ; + return save_options ; +} + +static char* GetBestImgMatch(IMG_REPORT* img_report, long* method, long* param, LDV_IMAGE* out) +{ + LDV_IMAGE* in = img_report->in ; + + out->Raster.fd_nplanes = in->Raster.fd_nplanes ; + *method = -1 ; + *param = 0 ; + + if ( img_report->enforce_dither ) + { + out->Raster.fd_nplanes = img_report->dither_outplanes ; + *method = img_report->dither_method ; + *param = img_report->dither_param ; + } + else if ( img_report->is_dualtone ) + { + out->Raster.fd_nplanes = 1 ; + *method = 4 ; + *param = 50 ; + } + else if ( img_report->is_grey ) + { + out->Raster.fd_nplanes = (img_report->ncolors <= 16L) ? 4:8 ; + *method = 2 ; + } + else if ( img_report->ncolors < 2048L ) + { + if ( in->Raster.fd_nplanes > 8 ) + { + out->Raster.fd_nplanes = 8 ; + *method = 3 ; + } + } + + return GetSaveOptions( img_report, out->Raster.fd_nplanes ) ; +} + +static long file_size(char* name) +{ + FILE* stream = fopen( name, "rb" ) ; + long size ; + + if ( stream == NULL ) return -1 ; + + fseek( stream, 0, SEEK_END ) ; + size = ftell( stream ) ; + fclose( stream ) ; + + return size ; +} + +LDV_STATUS cdecl Run(LDV_IMAGE* in, LDV_PARAMS* params, LDV_IMAGE* out) +{ + LDV_STATUS status = ELDV_NOERROR ; + IMG_REPORT img_report ; + short copy_file = 1 ; /* In case we don't find a better choice than the current one */ + char in_file[256] ; + char out_file[256] ; + char buf[256] ; + char* pout_file ; + char* profile ; + + CHECK_VAPI( Vapi ) ; + + pout_file = params->Param[0].str ; + profile = params->Param[1].str ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: dest:%s, profile=%s", pout_file ? pout_file:"", profile ? profile:"") ; + if ( pout_file == NULL ) return ELDV_INVALIDPARAMETER ; + + status = Vapi->ImGetStdData( in, "filename", in_file, sizeof(in_file) ) ; + if ( !LDV_SUCCESS( status ) ) return status ; + + strcpy( out_file, pout_file ) ; + if ( Vapi->FiFolderExist( pout_file ) ) + { + char* last_slash = strrchr( in_file, '\\' ) ; + + Vapi->LoDoLog(LL_INFO, "optimg.ldv: %s is a folder", pout_file ) ; + if ( last_slash ) strcat( out_file, last_slash ) ; /* Just copy filename without folder before */ + else strcat( out_file, in_file ) ; + } + + sprintf( buf, "Analyzing %s...", in_file ) ; + Vapi->PrSetText( 0, buf ) ; + Vapi->PrSetText( 1, "Requesting histograms to VISION..." ) ; + if ( LDVPROG_CANCEL( Vapi->PrSetProgEx( 0 ) ) ) { Vapi->LoDoLog(LL_INFO, "optimg.ldv: user requested cancel") ; return ELDV_CANCELLED ; } + memset( &img_report, 0, sizeof(img_report) ) ; + img_report.in = in ; + img_report.profile = profile ; + if ( ImgAnalyze( &img_report ) == 1 ) + { + long method, param ; + char* save_options ; + + save_options = GetBestImgMatch( &img_report, &method, ¶m, out ) ; + if ( save_options ) + { + Vapi->LoDoLog(LL_INFO,"optimg.ldv: dither method=%ld", method) ; + sprintf( buf, "Optimizing %s...", in_file ) ; + Vapi->PrSetText( 0, buf ) ; + Vapi->PrSetText( 1, "Requesting dithering to VISION..." ) ; + if ( LDVPROG_CANCEL( Vapi->PrSetProgEx( 33 ) ) ) status = ELDV_CANCELLED ; + else if ( method != -1 ) status = Vapi->ImDither( method, param, in, out ) ; + if ( LDV_SUCCESS( status ) ) + { + char local_outfile[256] ; /* As we have to set the format as extension */ + char buffer[128] ; + char out_ext[16] ; + char* c ; + char* ext ; + + if ( method != -1 ) Vapi->ImFree( in ) ; /* We just dither the image sucessfully, let's free the original one */ + else memcpy( out, in, sizeof(LDV_IMAGE) ) ; + if ( sscanf( save_options, "fmt=%s", buffer ) == 1 ) /* format is the first field returned by GetBestImgMatch */ + { + c = strchr( buffer, ';' ) ; + if ( c ) { *c = 0 ; strcpy( out_ext, buffer ) ; } + else strcpy( out_ext, buffer ) ; + strcpy( local_outfile, out_file ) ; + c = strrchr( local_outfile, '\\' ) ; + if ( c ) ext = strrchr( 1+c, '.' ) ; + else ext = strrchr( local_outfile, '.' ) ; + if ( ext ) *(1+ext) = 0 ; + if ( c ) strcat( 1+c, out_ext ) ; + Vapi->LoDoLog(LL_INFO, "optimg.ldv: optimizing image file %s to %s with options: %s", in_file, local_outfile, save_options ) ; + Vapi->PrSetText( 1, "Requesting saving to VISION..." ) ; + if ( LDVPROG_CANCEL( Vapi->PrSetProgEx( 66 ) ) ) status = ELDV_CANCELLED ; + else status = Vapi->ImSave( local_outfile, out, save_options ) ; + if ( LDV_SUCCESS( status ) ) + { + if ( img_report.enforce_smaller ) + { + long l1, l2 ; + + l1 = file_size( in_file ) ; + l2 = file_size( local_outfile ) ; + if ( (l2 > 0) && (l1 > l2) ) copy_file = 0 ; + else { unlink( local_outfile ) ; Vapi->LoDoLog(LL_INFO, "optimg.ldv: optimized file is bigger (%ldKB vs %ldKB), keeping original one", l1>>10, l2>>10 ) ; } + } + else copy_file = 0 ; + } + else { Vapi->LoDoLog(LL_ERROR, "optimg.ldv: ImSave returned %ld", status ) ; status = ELDV_GENERALFAILURE ; } + } + else { Vapi->LoDoLog(LL_ERROR, "optimg.ldv: image format not found in save options %s", save_options ) ; status = ELDV_GENERALFAILURE ; } + } + else Vapi->LoDoLog(LL_ERROR, "optimg.ldv: ImDither returned %ld", status ) ; + } + else Vapi->LoDoLog(LL_INFO, "optimg.ldv: can't find a better setting" ) ; + } + else Vapi->LoDoLog(LL_INFO, "optimg.ldv: ImgAnalyze did not identify a possible optimization" ) ; + + if ( status == ELDV_CANCELLED ) Vapi->LoDoLog(LL_INFO, "optimg.ldv: user requested cancel") ; + else if ( copy_file ) + { + Vapi->LoDoLog(LL_INFO, "optimg.ldv: duplicating image file %s to %s", in_file, out_file ) ; + Vapi->PrSetText( 1, "Duplicating original file..." ) ; + Vapi->PrSetProgEx( 85 ) ; + status = Vapi->FiCopyFileR( in_file, out_file ) ; + if ( !LDV_SUCCESS( status ) ) + { + Vapi->LoDoLog(LL_ERROR, "optimg.ldv: FiCopyFileR returned %ld", status ) ; + status = ELDV_GENERALFAILURE ; + } + } + Vapi->PrSetText( 1, "" ) ; + + return status ; +} + +static void uinit() +{ + short i ; + + for ( i = 0; i < 32; i++ ) u5bto8b[i] = (unsigned char) (0.5+(i*256.0)/32.0) ; + for ( i = 0; i < 64; i++ ) u6bto8b[i] = (unsigned char) (0.5+(i*256.0)/64.0) ; +} + +int main(void) +{ + ldg_init( Ldg ) ; + + return 0 ; +} diff --git a/tools/vision/ldv/src/optimg/optimg.ldv b/tools/vision/ldv/src/optimg/optimg.ldv new file mode 100644 index 0000000000000000000000000000000000000000..7b3973cfee75b51c0cc4744d59b0fbc6a45470d7 GIT binary patch literal 15195 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 Q%rC1vDSopeub@Q#55!k`uK)l5 literal 0 HcmV?d00001 diff --git a/tools/vision/ldv/src/optimg/optimg.prj b/tools/vision/ldv/src/optimg/optimg.prj new file mode 100644 index 0000000..a0e9cef --- /dev/null +++ b/tools/vision/ldv/src/optimg/optimg.prj @@ -0,0 +1,13 @@ +OPTIMG.LDV +.C [ ] +.S [ ] +.L [ ] += +pcstart.o +OPTIMG.C +pcgemlib.lib +pcstdlib.lib +pctoslib.lib +pcfltlib.lib +..\..\ldg.lib +..\..\mt_aes.lib \ No newline at end of file diff --git a/tools/vision/LDV/SRC/PIXEL/PIXEL.C b/tools/vision/ldv/src/pixel/pixel.c similarity index 94% rename from tools/vision/LDV/SRC/PIXEL/PIXEL.C rename to tools/vision/ldv/src/pixel/pixel.c index 11b314d..14b6dfb 100644 --- a/tools/vision/LDV/SRC/PIXEL/PIXEL.C +++ b/tools/vision/ldv/src/pixel/pixel.c @@ -29,7 +29,6 @@ LDV_INFOS * cdecl GetLDVCapabilities(VAPI *vapi) ; LDV_STATUS cdecl PreRun(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; LDV_STATUS cdecl Preview(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) ; -LDV_STATUS cdecl GetParams(LDV_IMAGE *in, LDV_PARAMS *params, char *path) ; /* Variables globales */ PROC Proc[] = { @@ -42,7 +41,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0100, /* version de la lib, recommand‚ */ + 0x0101, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ @@ -165,7 +164,7 @@ LDV_STATUS Run16(LDV_IMAGE *in, LDV_PARAMS *params) power = params->Param[0].s ; po2 = power * power ; nb_lpts = in->Raster.fd_w ; - if ( nb_lpts % 16 ) nb_lpts++ ; + if ( nb_lpts & 0x0F ) nb_lpts++ ; yoffset = nb_lpts * (long)(params->y1) ; for ( y = params->y1; !cancel && (y < params->y2); y += power, yoffset += nb_lpts*power ) { @@ -256,7 +255,7 @@ LDV_STATUS Run32(LDV_IMAGE *in, LDV_PARAMS *params) power = params->Param[0].s ; po2 = power * power ; nb_lpts = in->Raster.fd_w ; - if ( nb_lpts % 16 ) nb_lpts++ ; + if ( nb_lpts & 0x0F ) nb_lpts++ ; yoffset = nb_lpts * (long)(params->y1) ; for ( y = params->y1; !cancel && (y < params->y2); y += power, yoffset += nb_lpts*power ) { diff --git a/tools/vision/ldv/src/pixel/pixel.ldv b/tools/vision/ldv/src/pixel/pixel.ldv new file mode 100644 index 0000000000000000000000000000000000000000..153de7b90ccd619d2bbe17866928557d223647f0 GIT binary patch literal 3972 zcmc&%eQZ$8H3vw*K$~hO%kGjGO(YM^w|U_butJNTAo8}<0ROY z+#t_XiymM_Q zDH>4~wbPDt?>YC}bI&>V-QWFqawS0N7y$D<0I3C5s2D(&0m^Csv<2-hB+~gcPwQ3( zX+|Q%AC3}xx8391+SN^v_W7d2!ElI>ZM9ZH%#P}&rmZ`yL<~oVyrF*L48?rWkT-@V z-XTH&OcE*a^QJIx5k_W3Th$*h;->l()&dy>^`)Dj$FecA$UxOO)S5|2CYfr6#ai3M zG`69N+8SNY(GdZFx2P5tsD)rNJB@=-Bb;|t`WJKc1Mx=|-cqu=832pRZSS}PYWq!y z>$FqN@WPT-B$Kr5EJs(}gcQVz3L8d0Ge+5$7p+n@a_?6sp$^z#HQ|K*nTdebdN;9 zJtBRyiFDk_-V@&j6&58HR>k~G!LjS5 zQE2Ag!%@hKkSmd|N6vc0Zs#eF@4Uxugv(=>W~K&!^_?abPzhUr^8){h8L*`+v_`kk z7F%eAcEuaHXvqhI4MjIySHvqes{&U*(>}+2ljgd)8FRg5kw9y4f?5n?uKRaZgUVWz z{+*Pv*nr<<2Bq}-XxYrm0oL;}DJEf1*O`Hp(ipi9EjX%aMvXH+M_`UOecP(cw07BO z&&k7}3|B^(S>%&#JM6$V=+C4hU}dXutgPD63T$;4_`DyhR!U{!f(5wQgb)U;DG2P< z^wm_OR(4_RJzjY9!zS3WN8V`MD{~FUx?Si=pNZT5$-^(s`ECovvxz@b?=|=ZioH;b z-t7P2;n(MU7q4_jp-w-WxSFPUS7RNI*JF zXeLHM8{l)bMm7k0h|3HA(wjim={GH!N{ zDzQZ6J#x;M|*ugZE*EQs}saoil5GxdwvEb_A*86l2-Rnqg> z3wVQ=-0p)N#$Kusa9r6YQVlhMI>Dwj1Zs2}0_G|3YmAbQNX)%oz9%iqW#wWGXW*?ulPBg zAz*SWFn--OEler;Dl-Yx=nE}%CT<2if#R8C@?TwSfNhDJH#g$EEhQ#8zjLG{ph39{ z=iqeP4|d46bNUNU&|`MCB}!3RYOL@$^Em02DX)i}IcjEOgk`3=<5N)xtO#F|D$z(q}o4kb5v*)w- z+t9)Y18htD=VL^4B~VHfJPUoz%cktq4YQw%zl|( z0LJC>hDiI!urC%1F6&nnwD<$a+@Sw!%#Brz*3j{cFNWzkyb*6-a3~lH`i6lv4h3Ul z!=!(N(A+ztKF>%9oS|Ths;Jx+4jrPuj-N0&8uWdGnr__}9DeL$t&$B3rK+L+KyNG> z@*nAqg?oo%{fE3mL&Wb54*B|tIp*!_jr#h7QQx6hZzLK%L}KAE89stG)uk%vXlv_g z?MCG0{j*VJMTPP$Ud^l38l|fCLq=~i?#s}+J5;IV$?FEZ3EDKux|**m)dpTEC~2iO Jax0|f;6HOLjrITl literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SRC/PIXEL/PIXEL.PRJ b/tools/vision/ldv/src/pixel/pixel.prj similarity index 76% rename from tools/vision/LDV/SRC/PIXEL/PIXEL.PRJ rename to tools/vision/ldv/src/pixel/pixel.prj index 7fea599..e995c2d 100644 --- a/tools/vision/LDV/SRC/PIXEL/PIXEL.PRJ +++ b/tools/vision/ldv/src/pixel/pixel.prj @@ -1,6 +1,7 @@ PIXEL.LDV -;.C[-Y- -G+] -;.L[-Y-] +.C [ ] +.S [ ] +.L [ ] = pcstart.o PIXEL.C diff --git a/tools/vision/LDV/SRC/PIXEL/PIXEL.S b/tools/vision/ldv/src/pixel/pixel.s similarity index 100% rename from tools/vision/LDV/SRC/PIXEL/PIXEL.S rename to tools/vision/ldv/src/pixel/pixel.s diff --git a/tools/vision/LDV/SRC/puzzle/puzzle.c b/tools/vision/ldv/src/puzzle/puzzle.c similarity index 86% rename from tools/vision/LDV/SRC/puzzle/puzzle.c rename to tools/vision/ldv/src/puzzle/puzzle.c index bc84493..a8fd33f 100644 --- a/tools/vision/LDV/SRC/puzzle/puzzle.c +++ b/tools/vision/ldv/src/puzzle/puzzle.c @@ -44,7 +44,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0100, /* version de la lib, recommand‚ */ + 0x0102, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ @@ -105,7 +105,7 @@ int vdihandle(void) return( i ) ; } -void SetMixedArray(short Nw, short Nh, short entropy) +short* SetMixedArray(short Nw, short Nh, short entropy) { short nb = Nw * Nh ; @@ -125,25 +125,44 @@ void SetMixedArray(short Nw, short Nh, short entropy) ToBeMixed[j] = ToBeMixed[k] ; ToBeMixed[k] = l ; } - } + } + + return ToBeMixed ; } -#pragma warn -par -LDV_STATUS cdecl PreRun(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) +LDV_STATUS UpdateMixedArray(LDV_PARAMS *params) { + short old_nw = Nw ; + short old_nh = Nh ; + short old_entropy = Entropy ; + Nw = params->Param[0].s ; Nh = params->Param[1].s ; Entropy = params->Param[2].s ; + if ( (old_nw != Nw) || (old_nh != Nh) || (old_entropy != Entropy) ) + if ( SetMixedArray( Nw, Nh, Entropy ) == NULL ) return ELDV_NOTENOUGHMEMORY ; + + return ELDV_NOERROR ; +} + +LDV_STATUS cdecl PreRun(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) +{ + LDV_STATUS status ; + + status = UpdateMixedArray( params ) ; + if ( !LDV_SUCCESS(status) ) return status ; + out->Raster.fd_w = in->Raster.fd_w ; out->Raster.fd_h = in->Raster.fd_h ; - return( ELDV_NOERROR ) ; + return ELDV_NOERROR ; } +#pragma warn -par LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) { - LDV_STATUS status = ELDV_NOERROR ; + LDV_STATUS status ; long cancel, pc ; short *src_num = ToBeMixed ; short dst_num ; @@ -151,7 +170,8 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) int x, y, w, h ; int nw, nh, mw, mh ; - if ( ToBeMixed == NULL ) return( ELDV_NOTENOUGHMEMORY ) ; + status = UpdateMixedArray( params ) ; + if ( !LDV_SUCCESS(status) ) return status ; if ( VDIHandle == -1 ) VDIHandle = vdihandle() ; @@ -203,15 +223,12 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) return( status ) ; } +#pragma warn +par LDV_STATUS cdecl Preview(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) { - SetMixedArray( Nw, Nh, Entropy ) ; - if ( ToBeMixed == NULL ) return( ELDV_NOTENOUGHMEMORY ) ; - return( Run( in, params, out ) ) ; } -#pragma warn +par int main(void) diff --git a/tools/vision/ldv/src/puzzle/puzzle.ldv b/tools/vision/ldv/src/puzzle/puzzle.ldv new file mode 100644 index 0000000000000000000000000000000000000000..d0a670a15143c8d1d4e57f267026358e962b5015 GIT binary patch literal 4076 zcmc&1ZERcB_4xVq^~HIy9pj}Y%joTk@zRpiFCR_X%4?sWlk~-8PU3WJnJV&}#(qtj z*p}lkilWUkE>Hbc* ztu8=(2!zBEDdOMj4|mk{?j;EOqN&lrM4XWNtr8(Mfz8{u*X@vql1L3l;sc~3o{pyC zkuQ;Gj2FFlMd6U7TR6+-Mic;YU#-Q8s`c!T#=@twV=7XLeB$mm6DkR#ZHQ^ ztKAJ`2gc)Joh5Q;vVcEY#OXXQqSc)tzt__CF@QBCgbhRIBu4~TOVf;DkS)OI9FZfy zIh7}YarcGBsxJYHym3EDlr0fHH0CYsx@6p;?B8<<(wZP`$jdD=U;+s57xsf? zFyK@Zzywg1+!_IM>_C^a0ey9^2Q{kaHxeJy3@^_WtVk0_am{s)NM?05pFwM0cjpMN z?^9YeR(dhq`fO`_1@T=G;NRW}>Pz>XRof7sS7)lEIyavs;ReYCO`x7xnAo*W zefjOX#c<)JL zz+mqHb}AebriXxuanB3^t5;AS%1b?F>?C}QO`0_(3Di&Oc_O(JV8>i^kpwuAYdS?StPRPCf z7C-RKSw(JQ+#mk�wQMOT&igVPHnUQ0Q3az2kUBd8ouuC1(Cjor}Iz z%sIyE1^Zfyz`s^#1#xc-jTO$$`>dX z+Ia$QkfZisA#TD?J(?Jm96aid-{4Kb@*byn(D99?|Iq+br+7+cle#nC%hbH5c^A{|uz z_$%7VZnKwFGJz}1DU|NE*8?0`PC^Q>4wpD;3g_OX z?yt;ek>b2M67rcEz&yz0f2jRE$mmRKre#Km1R`UV!D@;8k_Yf+In{kEeC(VLK6w@^y=^5*2>(wwC2cBYpUMuf~to|=>pD8kj!TE zo0b%15&iTg&XMB<$}XD8I*T&PV#)jyD3gm?v6hF#8sx*V#)&zS5!I`+nHa`?ZBCpd z!@vrU7b6pO^t(I{c!jl{VZQJ^vz?1o5E|>A)t2Qon5D2bxc1GMJ`avhp-6|F1=#)t zP-JK>K+_ihotNSN48~UkFfnF!9k-q@xhiNW70RqOd%5EV=hrGWxNfZcdet{>+DJBu z)kTIcoBxXI|F79o&;ZqQcm}Y7(>h{viSS>tFpU<@`c7It}2;1NtPHo zC-K+jh+mbdeTtm6_b^}J?WZvRvV-aOry-zD^<(^`ymxbU`WIwK63 zE-&^ctc81o&^Ku51+7yFXuhN{cXrzhr8k+?Ga@seou7E`9x}8zaPyRl#~0X4=wsk+ z##$*{2HyV>fQWO|ITs%eJUg`5Kk{1`GQncf-AAjk7gwZJ$XVqn5obDE_k6pt8`#Ff z_!8x-595tx!JY>zQUs_#+zPJ7ab_D-A?|>Ol_%g)$wvTd;A4tkV-;7}Kjn|FFoT~M zP=R%KYhees7hc@8Zk1ScYXMJU%|E8d_zE=KeIB%gM=LOjhhxhk)@J9KLQJdhC3sWt zxX$-x=2yY4Ezw^6E0L-{Stur5Whdib{fEp|9IBlVS5?> zF&v$(`|uFbzk;&Iu)RgKm>w+X`aYO~(MX(hj*Ujs>A^Mq*Z-PKsQnbf(4Iw&=2JXR zd%KeKAqT#VP zbi@bKltl6NMEnr_wfqdr9fQ&DQP#SBgQL`Cwv*VNDZYE`7&piAH5wh$_YkFhDd4^t zD69?L2v* o-7axq(dXJ?GM(d_Pg=Q#+S@t7#d9J@JHgFf1A*l(d^&=E1Mk+D?EnA( literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SRC/puzzle/puzzle.prj b/tools/vision/ldv/src/puzzle/puzzle.prj similarity index 75% rename from tools/vision/LDV/SRC/puzzle/puzzle.prj rename to tools/vision/ldv/src/puzzle/puzzle.prj index 7deb25b..1f85ca6 100644 --- a/tools/vision/LDV/SRC/puzzle/puzzle.prj +++ b/tools/vision/ldv/src/puzzle/puzzle.prj @@ -1,6 +1,7 @@ PUZZLE.LDV -;.C[-Y- -G+] -;.L[-Y-] +.C [ ] +.S [ ] +.L [ ] = pcstart.o PUZZLE.C diff --git a/tools/vision/LDV/SRC/rotate/ROTATE.C b/tools/vision/ldv/src/rotate/rotate.c similarity index 95% rename from tools/vision/LDV/SRC/rotate/ROTATE.C rename to tools/vision/ldv/src/rotate/rotate.c index f619a6b..0f37c61 100644 --- a/tools/vision/LDV/SRC/rotate/ROTATE.C +++ b/tools/vision/ldv/src/rotate/rotate.c @@ -44,7 +44,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0100, /* version de la lib, recommand‚ */ + 0x0101, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ diff --git a/tools/vision/ldv/src/rotate/rotate.ldv b/tools/vision/ldv/src/rotate/rotate.ldv new file mode 100644 index 0000000000000000000000000000000000000000..faf26fead0432414bbda0d4b938550cd8fc01d5a GIT binary patch literal 2359 zcmc&#Z)j6j6hH61n7*dZ_?mS!cHMe?i6Lce6KyRjRr6kIO|qJHsjCy5d1;e8)7B)U z>4qW_I~jG1`GXb*c@6!ik7hK+?Q%wXc@v_ zC)|6_{oQka=bZa)&Q)sw$~*wfIRIZ9%u5-7ssiwT0*G_yHWbqRT4+b3m$ab}5>I7_ zyju?W8+&#Wl-^ioIFU*cvcAbph|^oYX;b57H&IfVp-3`H{K;%AlZ<51Br-$@fWt>B z;=CgThBTwHipTaXdc4(q1^e4%5QOjVLKU{!e1QSmbwuxwiu~A>HYhZCPE7)=0vomc zHE@XT&;Tw{6lSS~93B@x+FU3WaXj9Y zmvR`T$#=N;9iE3H7~I!o4^u?X=oYDm25p1n5v^K-WsT;%3~{sFS5>2#adz)BMtc}o z6ECR0;p{ek^{w$~;-~vhUsoS(=UfIQ=beQ!xVu|i4=^~Bh790MD7QF^MYM0+b5%3q z_;TD}v1$(QEEBh^7vVD3SCc=6NY&g-$mg7p&*AU5dMChYY87CpV9w+ZSD*C zy78uz)0;wXE8bMoj>iD?QVLiTq4 zBp8$n#pz&vS+;GB5>E99j5>;j7ViJ-)MNaomDUM*UM9 zw_@9c`V5Y5V2k0K(B9eJ3k*Z6d|3e7;RQ@bfeFMSNzyqo9Lr`C3s#mA~p+k&g{a<LD@{XDEu76H;|IgpRCqWW?T-u% zk$5CA6pIpPHqsZ)#G;8ztUnu0XHxwnn@W-4gJ@H~(ga-{9X&gC^BNl-Y6MqC)f@1A{gKw!%Ur| literal 0 HcmV?d00001 diff --git a/tools/vision/LDV/SRC/rotate/ROTATE.PRJ b/tools/vision/ldv/src/rotate/rotate.prj similarity index 77% rename from tools/vision/LDV/SRC/rotate/ROTATE.PRJ rename to tools/vision/ldv/src/rotate/rotate.prj index 563afb9..7a1448d 100644 --- a/tools/vision/LDV/SRC/rotate/ROTATE.PRJ +++ b/tools/vision/ldv/src/rotate/rotate.prj @@ -1,6 +1,7 @@ ROTATE.LDV -;.C[-Y- -G+] -;.L[-Y-] +.C [ ] +.S [ ] +.L [ ] = pcstart.o ROTATE.C diff --git a/tools/vision/LDV/SRC/XWAVE/XWAVE.C b/tools/vision/ldv/src/xwave/xwave.c similarity index 95% rename from tools/vision/LDV/SRC/XWAVE/XWAVE.C rename to tools/vision/ldv/src/xwave/xwave.c index 0ad6af2..76fa85d 100644 --- a/tools/vision/LDV/SRC/XWAVE/XWAVE.C +++ b/tools/vision/ldv/src/xwave/xwave.c @@ -44,7 +44,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0101, /* version de la lib, recommand‚ */ + 0x0102, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ diff --git a/tools/vision/LDV/XWAVE.LDV b/tools/vision/ldv/src/xwave/xwave.ldv similarity index 50% rename from tools/vision/LDV/XWAVE.LDV rename to tools/vision/ldv/src/xwave/xwave.ldv index c45e1795a78c762ce8752bb9584d7995d0db0240..1f2117c8caed94424df4d13fc2856f831b1ad7ba 100644 GIT binary patch delta 2238 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 diff --git a/tools/vision/LDV/SRC/XWAVE/XWAVE.PRJ b/tools/vision/ldv/src/xwave/xwave.prj similarity index 77% rename from tools/vision/LDV/SRC/XWAVE/XWAVE.PRJ rename to tools/vision/ldv/src/xwave/xwave.prj index ce2fc3b..88b8c69 100644 --- a/tools/vision/LDV/SRC/XWAVE/XWAVE.PRJ +++ b/tools/vision/ldv/src/xwave/xwave.prj @@ -1,6 +1,7 @@ xwave.ldv -;.C[-Y- -G+] -;.L[-Y-] +.C [ ] +.S [ ] +.L [ ] = pcstart.o xwave.c diff --git a/tools/vision/LDV/SRC/YPERSC/YPERSC.C b/tools/vision/ldv/src/ypersc/ypersc.c similarity index 96% rename from tools/vision/LDV/SRC/YPERSC/YPERSC.C rename to tools/vision/ldv/src/ypersc/ypersc.c index a01efae..37ba8d8 100644 --- a/tools/vision/LDV/SRC/YPERSC/YPERSC.C +++ b/tools/vision/ldv/src/ypersc/ypersc.c @@ -44,7 +44,7 @@ PROC Proc[] = { char Info[] = "LDV"; LDGLIB Ldg[] = { - 0x0100, /* version de la lib, recommand‚ */ + 0x0101, /* version de la lib, recommand‚ */ 4, /* nombre de fonction dans la lib */ Proc, /* Pointeurs vers nos fonctions */ Info, /* Information sur la lib */ @@ -175,7 +175,7 @@ LDV_STATUS cdecl Run(LDV_IMAGE *in, LDV_PARAMS *params, LDV_IMAGE *out) /* pt16_... est utilise pour le mode 16 bits et le mode bit-plan (avec reajustement) */ if ( in->Raster.fd_nplanes <= 8 ) { - size_t win, wout ; + size_t win ; win = ALIGN16( in->Raster.fd_w ) ; wout = ALIGN16( out->Raster.fd_w ) ; diff --git a/tools/vision/ldv/src/ypersc/ypersc.ldv b/tools/vision/ldv/src/ypersc/ypersc.ldv new file mode 100644 index 0000000000000000000000000000000000000000..a0af340be2b51c1aae8ad4f7fdde02ea3b1c888e GIT binary patch literal 5291 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 eF6V$ehz^4GIz~I{zEU<5 z7G(1yrYigK*&OLF3#t@LP3p9uJ7~w zp5OCz@B2RYX5`NeWx5A|XaLMjfaqCx@GAh&bpWXaz;U3gr(O!KIfrV9JO{#+-=G*D z@ALu#z6*#plcm$yb3s_B3XPosC;}hlDlL1d$AL>9$0q_7(jrB*PXM@cjX>68*0vN! zLfV)qZ_UZnZvCb)2vIF8>|I<05apCDfNW7tfaUO-g&d|0`fdS-C<*_8k&YQNOf825 zFuZKYF3L$;0v2DT1&gwgX3LlsV~lMW7Uhg30qmjnR^3C>iX`PEA*mdWr)+8uuq3RF zwYP?Efg?}>7~;_`Dn~GdxIY2TgQ$7XVn>TcWz&*PfTKCD9YkIlIow!`VhLDQy3VNs zvm?NbJxL+#<54GFBc|CQpj=f=s!1bJ`(RxHtV-)Guv63wKaL?jGc_zF0Y%?ZIRTzA z<0H$sH`ftU+1`4upY55VsiqVApeWg9^l}~{0o+stkiE27<1k0uA|YKcLi>z0wM3Hq zsWfnX@YlF;nOpUA8dD4MN^Q`5t*>L6tx71TNgb<0AOy~@R)ABLz)Ssmq#y>JP-B`R z$0^^J4Y;*IHKuOffSS~?b~6ZO3#ScjNo7*%mE+oAX4e4du$ZOCM*M)fN&Vz=@*!}m z!ysgOxP!<+259R&56e7!|tg;uenedl-F<9o6H47s^^?N7dy7B#z zBdioOhO84F@djC%vR5zlZ^09_Nel02)o=Q#_pg)n1*5EtrM97^kXmSM_-1*j54hT( zYUkGj-T-mN_^Pmp#ii6%?h$7y|H&%KvvivWS(E#08bjAhOBI%SIqY}0i!({EMb#lz z*LTzgx0c`cL9`B0S#L(v_Yg|dAugr|5G4OhVxij8dZ~)pNDMP`+A2 zbGUNmE(}EUI@A0h$bN^52083F+AueFzrd7$ud-Z+f=EBsi@ zWOjvsyMcbiaxTVL{EKi9_{X0uKX>S)xyp;WO ziJvP*8tvUm>q-fA>&>Ggd26WQ`MjZfUCz+um5Df;uZ?}Y!-av^E0(Pfu%>qa` z3pL%1l1Qb=?#FtW;YLffjb6x&qe7aQyVlWXH@)xBSzGvu9#tZGuwOX;>Dn_CueGRC z5_|Q`va_HINDcE03W`Cw-#-_tecNTPNuJQ^qhq>1K0ZH zcpVOpYRpJ$_h0uHO2$v66~k-6>+1q1yrsMc#{xkD;a^}v3G1BVj)jkhdw*wl|FsA% zy!KV*NC=o8f*M&Rwv^qJpC=*mvJ%qS{zW2Y>WkH^VR| bj5;ymv|DQ`pS22Z-YQw?pCB7Ah@QUz)J0BC delta 1791 zcmY*aZD>wY-dvS9a~6MO9fC+ED+ z`#jHm&$;JK{_X!X(_#kz!fgP;b%5;_y!=!H*fs!p3=lor@?I~w*R_n{1M)6tKmHD0 z9Kn^c0L`}%eMB~`oL){qxg$Au6QC2C8TaRb!%T7Z?$-zIL|tS+&spCBNRM{{*?~`O zFGwV5&GB`#vSxYt`OXC7tdw?mZ4Kp6(4xpDz;ab%UF8aD%`~rqgf8XOKlpu={vyO> zP6<)Jm~<1!s|R516fYWRUThI^^o-c&B{1dUyotSoc7Q*;OdpEDV+;(9rdFXggN|gB z#f=|h9Ei4o+sOuac8tXhHp}vOvcg8DG&jsp7T1pS)Y~9TL@Su#co>-%4DQg;Njk~S z*NAx#dKjhV>fkE4(WHZ0f55Q11dp*e7FA^2E=bS0J_~K!RAozreN&!W*{_a(CqGOr zDZn>S6K?}@m>n9OmWV%GCgX72n%g@#oE^yIm4$aeItb6t(9fk;!Z|ELGs4ykKi_fw zu*Gz;5|a}BQ}Ra033J#=8~YhWCsDsOV-B0U`!OP=?Ylwa^`E0{RqcVTva#QqnR5IZB^)@sz9u{2Q{;3UV_#`ik>8O`sp-QN)}W1Z7;Y=>8|o|VDXC!uuN}O zofpYHx<|eul3Vn->=ViN^SVnFTLWaV9c$UZ z@;I!V8bH?kxM~S(Uf7ftnX0_`SqE9ngPJpoqHXVsCq`P=HHda2YS_CFZC*zy@p%1Q zqMAi{(hgv<#YyHoy}djcGmFCAOv!EGJ%M;4yV2E$xmnD`Y=GY|_tJaW!>XhYE7RYe z)?>`9<~#~wcHUf$Cz2bCYL1&lcxqc5cTA8!ZWdj{?&dgIuMP1bvsl$@hdA!kjChY( ztRAvua~b_2nbPJJb7*jN?OE!+MK9HU*!P#T?orV2=v!^5{v=a+`iJ=>1gMy>q2?*Z zkN(Hfku{0vZ8}=_SR_ldufE$&mI?rukynMUZi$|#kFm@*^+^pg4;)-<=wm>@0dfry z_SU8wG<bP8Oq=29o(;v`I^X_?FsL1|8eF&GzGJ zD_hO)-7+btovu!m$y$!kba>k_fMD}D)WgN}HMq>WkKAE>E$=Z*q89j1gnWS{$;oum z77wi%`y<%@*mcf_h^T4Ae~Sg2BRIAJh#JnX;=s*`2F`Eb*p0vQw{zJ&Am9S)iQ^cX zzd>q+2q|IL`vF+X>jc0UMg9wn#SAw_>6g`HXmHoAH~U9&+1FVC;*{+3$zLd%qG@hL zR#dq+t>qO}S7o; #endif +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(v) sizeof(v)/sizeof((v)[0]) +#endif + typedef struct { unsigned short Version ; /* 0x0100 for example */ @@ -20,14 +24,14 @@ typedef struct VAPI_HEADER ; /* For RaTCxxRemapColors */ -#ifndef __RASTEROP /* Dont worry, it's for VISION's compile */ +#ifndef __RASTEROP_H /* Dont worry, it's for VISION's compile */ typedef struct { - unsigned char *red ; - unsigned char *green ; - unsigned char *blue ; - void *pt_img ; - long nb_pts ; + unsigned char* red ; + unsigned char* green ; + unsigned char* blue ; + void* pt_img ; + long nb_pts ; } REMAP_COLORS ; @@ -79,9 +83,39 @@ REMAP_COLORS ; #define CO_HAS_FPU 0x20 #define CO_HAS_DSP 0x200 +/* For CoGetScreenInfo */ +typedef struct +{ + short Width ; + short Height ; + short NPlanes ; + short UseStdVDI ; + short RFU[120] ; +} +SCREEN_INFO ; + +/* From image_io.h, make sure */ +/* Same definition is shared */ +#ifndef HISTO_SIZE +#define HISTO_SIZE 256 +typedef struct _HISTO +{ + unsigned long red[HISTO_SIZE] ; + unsigned long green[HISTO_SIZE] ; + unsigned long blue[HISTO_SIZE] ; + unsigned long grey[HISTO_SIZE] ; + unsigned long index[HISTO_SIZE] ; + unsigned long nb_colors ; + unsigned long norm ; /* Must be set by caller */ + unsigned long nb_colors_used ; +} +HISTO, *PHISTO ; +#endif + #ifndef __INI_H typedef void* HINI ; #endif + typedef struct { VAPI_HEADER Header ; @@ -91,7 +125,8 @@ typedef struct void cdecl (*PrOptimize)(long mask) ; void cdecl (*PrSetText)(long no_line, char *text) ; long cdecl (*PrSetProgEx)(long pc) ; - long PrRFU[8] ; + long cdecl (*PrSetProgRange)(long current, long max) ; + long PrRFU[7] ; /* Raster Interface */ void cdecl (*RaImgWhite)(MFDB *img) ; @@ -116,9 +151,10 @@ typedef struct /* Config Interface */ char* cdecl (*CoGetLDVPath)(void) ; char* cdecl (*CoGetCurrentLanguage)(void) ; - unsigned long cdecl (*CoGetFunctionOptimizations)(void *function) ; + unsigned long cdecl (*CoGetFunctionOptimizations)(void* function) ; unsigned long cdecl (*CoGetProcessors)(void) ; - long CoRFU[18] ; + void cdecl (*CoGetScreenInfo)(SCREEN_INFO* sinfo) ; + long CoRFU[17] ; /* INI Interface */ long cdecl (*InOpen)(char *file) ; @@ -131,18 +167,47 @@ typedef struct long InRFU[19] ; /* MEM Interface */ - void cdecl (*MeSCopyMemory8)(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) ; - void cdecl (*MeSCopyMemory16)(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) ; - void cdecl (*MeSCopyMemory32)(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) ; - long MeRFU[30] ; + void cdecl (*MeSCopyMemory8)(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) ; + void cdecl (*MeSCopyMemory16)(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) ; + void cdecl (*MeSCopyMemory32)(void *dst, void *src, unsigned long nb_elems_dst, unsigned long nb_elems_src) ; + void* cdecl (*MeXalloc)(unsigned long size) ; + void* cdecl (*MeXrealloc)(void* ptr, unsigned long size) ; + void cdecl (*MeXfree)(void* ptr) ; + void* cdecl (*MeXcalloc)(unsigned long nb_elems, unsigned long elem_size) ; + char* cdecl (*MeXstrdup)(char* s) ; + long MeRFU[25] ; /* Logging Interface */ long cdecl (*LoDoLog)(unsigned long level, char* format, ...) ; unsigned long cdecl (*LoGetLogLevel)(void) ; long LoRFU[8] ; + /* Image I/O interface */ + /* ldv_img must point to a LDV_IMG structure */ + long cdecl (*ImGetInf)(char* filename, void* ldv_img) ; + long cdecl (*ImLoad)(void* ldv_img) ; + void cdecl (*ImFree)(void* ldv_img) ; + long cdecl (*ImSave)(char* filename, void* ldv_img, char* save_options) ; + /* 0: auto, 1: matrixmono, 2: grey level, 3: 216 colors, 4: dual-tone */ + long cdecl (*ImDither)(long method, long param, void* ldv_img_in, void* ldv_img_out) ; + long cdecl (*ImGetStdData)(void* ldv_img, char* query, char* out_data, long out_data_size) ; + long cdecl (*ImComputeHistogram)(void* ldv_img, HISTO *histo) ; /* histo->norm must be set by caller */ + long ImRFU[9] ; + + /* File Interface */ + long cdecl (*FiFileExist)(char* file) ; + long cdecl (*FiFolderExist)(char* folder) ; + long cdecl (*FiCopyFile)(char* src, char* dst) ; + long cdecl (*FiCopyFileR)(char* src, char* dst) ; + long cdecl (*FiMoveFile)(char* src, char* dst) ; + long cdecl (*FiCreateFolder)(char* path) ; + long cdecl (*FiCmpFiles)(char* f1, char* f2) ; + long FiRFU[9] ; + /* More interfaces to come ! */ } VAPI ; +#define LDVPROG_CANCEL(status) (status == 1) + #endif diff --git a/tools/vision/LDV/XWAVE.INI b/tools/vision/ldv/xwave.ini similarity index 100% rename from tools/vision/LDV/XWAVE.INI rename to tools/vision/ldv/xwave.ini diff --git a/tools/vision/LDV/SRC/XWAVE/XWAVE.LDV b/tools/vision/ldv/xwave.ldv similarity index 50% rename from tools/vision/LDV/SRC/XWAVE/XWAVE.LDV rename to tools/vision/ldv/xwave.ldv index c45e1795a78c762ce8752bb9584d7995d0db0240..1f2117c8caed94424df4d13fc2856f831b1ad7ba 100644 GIT binary patch delta 2238 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 diff --git a/tools/vision/LDV/YPERSC.INI b/tools/vision/ldv/ypersc.ini similarity index 100% rename from tools/vision/LDV/YPERSC.INI rename to tools/vision/ldv/ypersc.ini diff --git a/tools/vision/ldv/ypersc.ldv b/tools/vision/ldv/ypersc.ldv new file mode 100644 index 0000000000000000000000000000000000000000..a0af340be2b51c1aae8ad4f7fdde02ea3b1c888e GIT binary patch literal 5291 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 eF6V$ehz^4GIz~I{zEU<5 z7G(1yrYigK*&OLF3#t@LP3p9uJ7~w zp5OCz@B2RYX5`NeWx5A|XaLMjfaqCx@GAh&bpWXaz;U3gr(O!KIfrV9JO{#+-=G*D z@ALu#z6*#plcm$yb3s_B3XPosC;}hlDlL1d$AL>9$0q_7(jrB*PXM@cjX>68*0vN! zLfV)qZ_UZnZvCb)2vIF8>|I<05apCDfNW7tfaUO-g&d|0`fdS-C<*_8k&YQNOf825 zFuZKYF3L$;0v2DT1&gwgX3LlsV~lMW7Uhg30qmjnR^3C>iX`PEA*mdWr)+8uuq3RF zwYP?Efg?}>7~;_`Dn~GdxIY2TgQ$7XVn>TcWz&*PfTKCD9YkIlIow!`VhLDQy3VNs zvm?NbJxL+#<54GFBc|CQpj=f=s!1bJ`(RxHtV-)Guv63wKaL?jGc_zF0Y%?ZIRTzA z<0H$sH`ftU+1`4upY55VsiqVApeWg9^l}~{0o+stkiE27<1k0uA|YKcLi>z0wM3Hq zsWfnX@YlF;nOpUA8dD4MN^Q`5t*>L6tx71TNgb<0AOy~@R)ABLz)Ssmq#y>JP-B`R z$0^^J4Y;*IHKuOffSS~?b~6ZO3#ScjNo7*%mE+oAX4e4du$ZOCM*M)fN&Vz=@*!}m z!ysgOxP!<+259R&56e7!|tg;uenedl-F<9o6H47s^^?N7dy7B#z zBdioOhO84F@djC%vR5zlZ^09_Nel02)o=Q#_pg)n1*5EtrM97^kXmSM_-1*j54hT( zYUkGj-T-mN_^Pmp#ii6%?h$7y|H&%KvvivWS(E#08bjAhOBI%SIqY}0i!({EMb#lz z*LTzgx0c`cL9`B0S#L(v_Yg|dAugr|5G4OhVxij8dZ~)pNDMP`+A2 zbGUNmE(}EUI@A0h$bN^52083F+AueFzrd7$ud-Z+f=EBsi@ zWOjvsyMcbiaxTVL{EKi9_{X0uKX>S)xyp;WO ziJvP*8tvUm>q-fA>&>Ggd26WQ`MjZfUCz+um5Df;uZ?}Y!-av^E0(Pfu%>qa` z3pL%1l1Qb=?#FtW;YLffjb6x&qe7aQyVlWXH@)xBSzGvu9#tZGuwOX;>Dn_CueGRC z5_|Q`va_HINDcE03W`Cw-#-_tecNTPNuJQ^qhq>1K0ZH zcpVOpYRpJ$_h0uHO2$v66~k-6>+1q1yrsMc#{xkD;a^}v3G1BVj)jkhdw*wl|FsA% zy!KV*NC=o8f*M&Rwv^qJpC=*mvJ%qS{zW2Y>WkH^VR| bj5;ymv|DQ`pS22Z-YQw?pCB7Ah@QUz)J0BC delta 1791 zcmY*aZD>wY-dvS9a~6MO9fC+ED+ z`#jHm&$;JK{_X!X(_#kz!fgP;b%5;_y!=!H*fs!p3=lor@?I~w*R_n{1M)6tKmHD0 z9Kn^c0L`}%eMB~`oL){qxg$Au6QC2C8TaRb!%T7Z?$-zIL|tS+&spCBNRM{{*?~`O zFGwV5&GB`#vSxYt`OXC7tdw?mZ4Kp6(4xpDz;ab%UF8aD%`~rqgf8XOKlpu={vyO> zP6<)Jm~<1!s|R516fYWRUThI^^o-c&B{1dUyotSoc7Q*;OdpEDV+;(9rdFXggN|gB z#f=|h9Ei4o+sOuac8tXhHp}vOvcg8DG&jsp7T1pS)Y~9TL@Su#co>-%4DQg;Njk~S z*NAx#dKjhV>fkE4(WHZ0f55Q11dp*e7FA^2E=bS0J_~K!RAozreN&!W*{_a(CqGOr zDZn>S6K?}@m>n9OmWV%GCgX72n%g@#oE^yIm4$aeItb6t(9fk;!Z|ELGs4ykKi_fw zu*Gz;5|a}BQ}Ra033J#=8~YhWCsDsOV-B0U`!OP=?Ylwa^`E0{RqcVTva#QqnR5IZB^)@sz9u{2Q{;3UV_#`ik>8O`sp-QN)}W1Z7;Y=>8|o|VDXC!uuN}O zofpYHx<|eul3Vn->=ViN^SVnFTLWaV9c$UZ z@;I!V8bH?kxM~S(Uf7ftnX0_`SqE9ngPJpoqHXVsCq`P=HHda2YS_CFZC*zy@p%1Q zqMAi{(hgv<#YyHoy}djcGmFCAOv!EGJ%M;4yV2E$xmnD`Y=GY|_tJaW!>XhYE7RYe z)?>`9<~#~wcHUf$Cz2bCYL1&lcxqc5cTA8!ZWdj{?&dgIuMP1bvsl$@hdA!kjChY( ztRAvua~b_2nbPJJb7*jN?OE!+MK9HU*!P#T?orV2=v!^5{v=a+`iJ=>1gMy>q2?*Z zkN(Hfku{0vZ8}=_SR_ldufE$&mI?rukynMUZi$|#kFm@*^+^pg4;)-<=wm>@0dfry z_SU8wG<bP8Oq=29o(;v`I^X_?FsL1|8eF&GzGJ zD_hO)-7+btovu!m$y$!kba>k_fMD}D)WgN}HMq>WkKAE>E$=Z*q89j1gnWS{$;oum z77wi%`y<%@*mcf_h^T4Ae~Sg2BRIAJh#JnX;=s*`2F`Eb*p0vQw{zJ&Am9S)iQ^cX zzd>q+2q|IL`vF+X>jc0UMg9wn#SAw_>6g`HXmHoAH~U9&+1FVC;*{+3$zLd%qG@hL zR#dq+t>qO}S7o;) allows to build destination file +; In such a way that it respects original folder hierachy, e.g.: +; Assuming LFStartFolder=H:\IMAGES +; And $LFCurrentFile=H:\IMAGES\BYPLANES\32\TC32.JPG +; Then LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\OPTIMAL) will be H:\OPTIMAL\BYPLANES\32 + +; Starts the loop on a folder (not recursing) +Loop_Folder H:\PURE_C\PROJECTS\VISION\IMGTEST + +; Open current image file +open $LFCurrentFile + +; Select a block on this picture +clip_sel $LFCurrentFile 16 16 256 192 + +; Copy that block into clipboard +clip_copy + +; Paste clipboard to new page using same filename +clip_pasten LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\PURE_C\PROJECTS\VISION\IMGTEST\TEMP) + +; We don't need loaded picture anymore +close $LFCurrentFile + +; Save new image to disk (same window name and filename) +; Note quality=90;compression=lzw +; This is to force JPEG quality to 90 and compression to LZW (TIFF) +save LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\PURE_C\PROJECTS\VISION\IMGTEST\TEMP) LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\PURE_C\PROJECTS\VISION\IMGTEST\TEMP) quality=90;compression=lzw + +; We don't need this image window anymore +close LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\PURE_C\PROJECTS\VISION\IMGTEST\TEMP) + +; Proceed with next file in the folder +Endloop_Folder diff --git a/tools/vision/scripts/clip_paste.vcs b/tools/vision/scripts/clip_paste.vcs new file mode 100644 index 0000000..4f72371 --- /dev/null +++ b/tools/vision/scripts/clip_paste.vcs @@ -0,0 +1,25 @@ +; LDV script sample +; Demonstrates how to use clip command (copy/paste) from VCS + +; Open a sample picture for demonstration +open H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF + +; Select a block on this picture +clip_sel H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF 16 16 256 192 + +; Copy that block into clipboard +clip_copy + +; Paste clipboard to image at various locations +clip_paste H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF 128 128 +clip_paste H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF 512 512 +clip_paste H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF 1280 800 + +; Save image to disk with new name +save H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF H:\PURE_C\PROJECTS\VISION\IMGTEST\CRAP.TIF + +; We don't need this image window anymore +close H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF nosave + +; Open saved picture to check it's OK +open H:\PURE_C\PROJECTS\VISION\IMGTEST\CRAP.TIF \ No newline at end of file diff --git a/tools/vision/scripts/ddualton.vcs b/tools/vision/scripts/ddualton.vcs new file mode 100644 index 0000000..0e98eb5 --- /dev/null +++ b/tools/vision/scripts/ddualton.vcs @@ -0,0 +1,17 @@ +; LDV script sample +; Using dither.ldv to dither files in a folder to dual tone +; Param1: method; auto, 1: matrixmono, 2: grey level, 3: 216 colors, 4: dual tone +; Param2: method parameter (only required as threshold for dual tone), -1: default or a number for the percent of max value +; Param3: number of planes for output (0 for current resolution) +Loop_Folder H:\PURE_C\PROJECTS\VISION\IMGTEST +open $LFCurrentFile +ldv_do $LFCurrentFile dither.ldv 4 -1 0 +sleep 800 +close $LFCurrentFile nosave +EndLoop_Folder +Loop_Folder I:\2020\10 +open $LFCurrentFile +ldv_do $LFCurrentFile dither.ldv 3 -1 0 +sleep 800 +close $LFCurrentFile nosave +EndLoop_Folder \ No newline at end of file diff --git a/tools/vision/scripts/dfixpal.vcs b/tools/vision/scripts/dfixpal.vcs new file mode 100644 index 0000000..271dede --- /dev/null +++ b/tools/vision/scripts/dfixpal.vcs @@ -0,0 +1,16 @@ +; LDV script sample +; Demonstrates how to optimize images using optimg.ldv +; This scripts loops over a folder and recursively start optimg.ldv +; On each image found to analyze it and find a better output format +; Based on its colors characteristics (e.g. a monochrome image saved +; As True Color will end up with a monochrome file, LZW compressed) + +; These images are stored in TC mode but have less than 256 colors +; They will be saved as images with fixed palette +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\rgb.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\rgb.tif Falcon +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\17c.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\17c.tif Falcon +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\rgbtc16.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\rgbtc16.tif Falcon +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\17ctc16.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\17ctc16.tif Falcon +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\marbles.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\marbles.tif Falcon +; Next one will fail as image has more than 256 colors +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\marbles.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\marbles.tif TIFForceDitherFixedPal256c \ No newline at end of file diff --git a/tools/vision/scripts/ibrowser.vcs b/tools/vision/scripts/ibrowser.vcs new file mode 100644 index 0000000..dfa0e45 --- /dev/null +++ b/tools/vision/scripts/ibrowser.vcs @@ -0,0 +1,10 @@ +; Image Browser Scripting +ibrw_open I:\tmp\1DSC00629.png +Loop 25 +ibrw_next +wait 300 +Endloop +Loop 25 +ibrw_prev +wait 300 +Endloop diff --git a/tools/vision/scripts/img_prio.vcs b/tools/vision/scripts/img_prio.vcs new file mode 100644 index 0000000..6a4ece6 --- /dev/null +++ b/tools/vision/scripts/img_prio.vcs @@ -0,0 +1,38 @@ +; Image Priorities control +iprio_set 1,3,2 +cat_create H:\My_Documents\Documents\stimg132.vic +cat_addfolder H:\My_Documents\Documents\stimg12.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\others\*.* recurse +cat_openwicon H:\My_Documents\Documents\stimg12.vic +wait 3000 + +iprio_set 3,2,1 +cat_create H:\My_Documents\Documents\stimg321.vic +cat_addfolder H:\My_Documents\Documents\stimg21.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\others\*.* recurse +cat_openwicon H:\My_Documents\Documents\stimg21.vic +wait 3000 + +iprio_set 3 +cat_create H:\My_Documents\Documents\stimg3.vic +cat_addfolder H:\My_Documents\Documents\stimg2.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\others\*.* recurse +cat_openwicon H:\My_Documents\Documents\stimg2.vic +wait 3000 + +iprio_set 2 +cat_create H:\My_Documents\Documents\stimg2.vic +cat_addfolder H:\My_Documents\Documents\stimg2.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\others\*.* recurse +cat_openwicon H:\My_Documents\Documents\stimg2.vic +wait 3000 + +iprio_set 1 +cat_create H:\My_Documents\Documents\stimg1.vic +cat_addfolder H:\My_Documents\Documents\stimg1.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\others\*.* recurse +cat_openwicon H:\My_Documents\Documents\stimg1.vic + +wait 60000 + + +close H:\My_Documents\Documents\stimg1.vic +close H:\My_Documents\Documents\stimg2.vic +close H:\My_Documents\Documents\stimg3.vic +close H:\My_Documents\Documents\stimg321.vic +close H:\My_Documents\Documents\stimg132.vic \ No newline at end of file diff --git a/tools/vision/scripts/ldv.vcs b/tools/vision/scripts/ldv.vcs new file mode 100644 index 0000000..04d3ab8 --- /dev/null +++ b/tools/vision/scripts/ldv.vcs @@ -0,0 +1,10 @@ +; LDV script sample +open H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png rotate.ldv 45 +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png bhole.ldv 250 50 50 +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png gamma.ldv 150 50 100 +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png pixel.ldv 3 +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png xwave.ldv 80 60 +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png ywave.ldv 100 80 +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png ypersc.ldv 300 50 +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png bw.ldv \ No newline at end of file diff --git a/tools/vision/scripts/ldvcnt.vcs b/tools/vision/scripts/ldvcnt.vcs new file mode 100644 index 0000000..d22bbb1 --- /dev/null +++ b/tools/vision/scripts/ldvcnt.vcs @@ -0,0 +1,20 @@ +; LDV script sample for CNTCOL.LDV +open H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\MARBLES.TGA +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\MARBLES.TGA cntcol.ldv 1 H:\marbles1.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\MARBLES.TGA cntcol.ldv 2 H:\marbles2.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\MARBLES.TGA cntcol.ldv 3 H:\marbles3.txt + +open H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\rwhite.TGA +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\rwhite.TGA cntcol.ldv 1 H:\rwhite1.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\rwhite.TGA cntcol.ldv 2 H:\rwhite2.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\rwhite.TGA cntcol.ldv 3 H:\rwhite3.txt + +open H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_10mbmb.png +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_10mbmb.png cntcol.ldv 1 H:\spng1.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_10mbmb.png cntcol.ldv 2 H:\spng2.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_10mbmb.png cntcol.ldv 3 H:\spng3.txt + +open H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\16m.tif +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\16m.tif cntcol.ldv 1 H:\16m1.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\16m.tif cntcol.ldv 2 H:\16m2.txt +ldv_do H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\16m.tif cntcol.ldv 3 H:\16m3.txt diff --git a/tools/vision/scripts/ldvcntf.vcs b/tools/vision/scripts/ldvcntf.vcs new file mode 100644 index 0000000..0f4a66a --- /dev/null +++ b/tools/vision/scripts/ldvcntf.vcs @@ -0,0 +1,20 @@ +; LDV script sample for CNTCOL.LDV +; This one is working directly from the image file +; So it does not depend on the number of planes of the screen +; Remember VISION always works with images wih same number of planes than the screen +; As soon image is displayed/grapihcal tools used +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\MARBLES.TGA cntcol.ldv 1 H:\marbles1.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\MARBLES.TGA cntcol.ldv 2 H:\marbles2.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\MARBLES.TGA cntcol.ldv 3 H:\marbles3.txt + +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\rwhite.TGA cntcol.ldv 1 H:\rwhite1.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\rwhite.TGA cntcol.ldv 2 H:\rwhite2.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\rwhite.TGA cntcol.ldv 3 H:\rwhite3.txt + +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_10mbmb.png cntcol.ldv 1 H:\spng1.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_10mbmb.png cntcol.ldv 2 H:\spng2.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_10mbmb.png cntcol.ldv 3 H:\spng3.txt + +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\16m.tif cntcol.ldv 1 H:\16m1.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\16m.tif cntcol.ldv 2 H:\16m2.txt +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\16m.tif cntcol.ldv 3 H:\16m3.txt diff --git a/tools/vision/scripts/ldvf.vcs b/tools/vision/scripts/ldvf.vcs new file mode 100644 index 0000000..88d57bd --- /dev/null +++ b/tools/vision/scripts/ldvf.vcs @@ -0,0 +1,10 @@ +; LDV script sample +; Dummy test as -f: instructs LDV will work from the original file so no display +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png rotate.ldv 45 +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png bhole.ldv 250 50 50 +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png gamma.ldv 150 50 100 +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png pixel.ldv 3 +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png xwave.ldv 80 60 +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png ywave.ldv 100 80 +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png ypersc.ldv 300 50 +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png bw.ldv \ No newline at end of file diff --git a/tools/vision/scripts/ldvini.vcs b/tools/vision/scripts/ldvini.vcs new file mode 100644 index 0000000..715a8e7 --- /dev/null +++ b/tools/vision/scripts/ldvini.vcs @@ -0,0 +1,6 @@ +; LDV script sample +open H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_1mbmb.png +ldv_doip H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_1mbmb.png rotate.ldv protate.ini +ldv_doip H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_1mbmb.png puzzle.ldv ppuzzle.ini +ldv_doip H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_1mbmb.png invert.ldv pinvert.ini +ldv_doip H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_1mbmb.png light.ldv plight.ini \ No newline at end of file diff --git a/tools/vision/scripts/ldvopt.vcs b/tools/vision/scripts/ldvopt.vcs new file mode 100644 index 0000000..49b5be5 --- /dev/null +++ b/tools/vision/scripts/ldvopt.vcs @@ -0,0 +1,33 @@ +; LDV script sample +; Demonstrates how to optimize images using optimg.ldv +; This scripts loops over a folder and recursively start optimg.ldv +; On each image found to analyze it and find a better output format +; Based on its colors characteristics (e.g. a monochrome image saved +; As True Color will end up with a monochrome file, LZW compressed) + +; Inside the loop: +; current file is accessible via $LFCurrentFile global variable +; start folder (parameter#1 of Loop_Folder) is accessible via $LFStartFolder global variable +; Global function LFAdjustDest() allows to build destination file +; In such a way that it respects original folder hierachy, e.g.: +; Assuming LFStartFolder=H:\IMAGES +; And $LFCurrentFile=H:\IMAGES\BYPLANES\32\TC32.JPG +; Then LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\OPTIMAL) will be H:\OPTIMAL\BYPLANES\32 + +; Call optimg.ldv as follows: +; ldv_do -f: optimg.ldv +; : filename of the file (full path recommended) +; : if folder, LDV will build filename based on original file name extension decided by profile +; if file, only extension will be changed +;Loop_Folder H:\PURE_C\PROJECTS\VISION\IMGTEST recurse +Loop_Folder H:\tmp\axa\05 recurse +;ldv_do -f:$LFCurrentFile optimg.ldv LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\PURE_C\PROJECTS\VISION\TEMP\Aranym) DualToneLikely +ldv_do -f:$LFCurrentFile optimg.ldv LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\tmp\axa\opt\05) DualToneLikely +Endloop_Folder + + +; Other examples: +;ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\Falcon Falcon +;ldv_do -f:H:\tmp\z\39\aquila-002.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\aquila-002.tif DualToneLikely +;ldv_do -f:H:\tmp\z\39\aquila-003.tif optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\aquila-003.tif DualToneLikely +; --> Will generate H:\PURE_C\PROJECTS\VISION\TEMP\ST\MARBLES.JPG (assuming MARBLES.TIF is a TC24 image) diff --git a/tools/vision/scripts/ldvopt256c.vcs b/tools/vision/scripts/ldvopt256c.vcs new file mode 100644 index 0000000..1063acb --- /dev/null +++ b/tools/vision/scripts/ldvopt256c.vcs @@ -0,0 +1,5 @@ +; LDV Dither to 256 colors using optimg.ldv +; We are using optimg.ldv and not dither.ldv because +; dither.ldv can't save the file +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_5mbmb.png optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\SamplePNGImage_5mbmb.tif TIFForceDither256c +ldv_do -f:H:\PURE_C\PROJECTS\VISION\IMGTEST\PNG\3\SamplePNGImage_3mbmb.png optimg.ldv H:\PURE_C\PROJECTS\VISION\TEMP\SamplePNGImage_3mbmb.img IMGForceDither256c \ No newline at end of file diff --git a/tools/vision/scripts/lloopfol.vcs b/tools/vision/scripts/lloopfol.vcs new file mode 100644 index 0000000..d6b2aa9 --- /dev/null +++ b/tools/vision/scripts/lloopfol.vcs @@ -0,0 +1,21 @@ +; Load/close images from a folder +; Command: +; Loop_Folder [] [recurse] +; Inside the loop: +; current file is accessible via $LFCurrentFile global variable +; start folder (parameter#1 of Loop_Folder) is accessible via $LFStartFolder global variable +; Global function LFAdjustDest() allows to build destination file +; In such a way that it respect original folder hierachy, e.g.: +; LFStartFolder=H:\IMAGES +; $LFCurrentFile=H:\IMAGES\BYPLANES\32\TC32.JPG +; LFAdjustDest($LFStartFolder,$LFCurrentFile,H:\OPTIMAL) will be H:\OPTIMAL\BYPLANES\32 + +form_silent +prog_silent +Loop_Folder H:\PURE_C\PROJECTS\VISION\IMGTEST recurse +open $LFCurrentFile +sleep 100 +close $LFCurrentFile +Endloop_Folder +form_silent 0 +prog_silent 0 diff --git a/tools/vision/scripts/loadloop.vcs b/tools/vision/scripts/loadloop.vcs new file mode 100644 index 0000000..baaff14 --- /dev/null +++ b/tools/vision/scripts/loadloop.vcs @@ -0,0 +1,13 @@ +; Image Priorities control +form_silent +iprio_set 1,3,2 +Loop 200 +open H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gem_image\img\04\yel.img +open H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gem_image\sttt\teststtt.img +open H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gem_image\ventura\16color.img +close H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gem_image\img\04\yel.img +close H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gem_image\ventura\16color.img +;close H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gem_image\timg\fsnap32k.img +close H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gem_image\sttt\teststtt.img +Endloop +form_silent 0 \ No newline at end of file diff --git a/tools/vision/scripts/main.vcs b/tools/vision/scripts/main.vcs new file mode 100644 index 0000000..6c41277 --- /dev/null +++ b/tools/vision/scripts/main.vcs @@ -0,0 +1,67 @@ +; This is a VISION Command Script example +; Used to automate actions in VISION +; Global Syntax: +; - Each line represents a command to execute +; - A command may or may not have parameters +; - Some parameters are mandatory (between <>) or optional (between []) +; - if has a space character, surround it par quote character " +; Available commands are: +; ';' : Comment line, ignored for processing +; 'open' : opens a file just as File->Open menu +; Syntax: open +; Comment: +; 'close' : closes a window (image or catalog) +; Syntax: close [nosave] +; Comment: +; 'wait' : Wait some time before running the next command +; Syntax: wait +; Comment: Don't expect much accuracy here sleep keyword can be used also +; 'loop': start a loop +; Syntax: loop +; Comment: +; 'endloop': ends a loop +; Syntax: endloop +; Comment: +; 'quit' : Quit VISION just as File->Quit +; Syntax: quit +; Comment: exit keyword can also be used +; 'run_script' : runs a new script from the current one +; Syntax: run_script +; Comment: filename can be a full pathname or relative to the path or the current script +; 'cat_create' : Create a new catalog file and opens it +; Syntax: cat_create +; Comment: +; 'cat_addfile' : Adds an image file to an existing catalog +; Syntax: cat_create +; Comment: must have been created/opened previously with cat_create or open +; 'cat_addfolder' : Adds a folder of image files to an existing catalog +; Syntax: cat_addfolder [recurse] +; Comment: must have been created/opened previously with cat_create or open +; recurse is an optional parameter, if present all images files into sub-folders will be added +; 'cat_openwicon' : Opens the window icon album from the album window dialog +; Syntax: cat_openwicon +; Comment: must have been created/opened previously with cat_create or open +; This window can be closed by using command close Walb_ +; 'cat_setini' : Associates an INI file to a catalog et applies it +; Syntax: cat_setini +; Comment: must have been created/opened previously with cat_create or open +; 'ibrw_open' : Opens a file into Image Browser to nagigate through its folder +; Syntax: ibrw_open +; Comment: +; 'ibrw_next' : Opens next file in Image Browser folder +; Syntax: ibrw_next +; Comment: +; 'ibrw_prev' : Opens previous file in Image Browser folder +; Syntax: ibrw_prev +; Comment: + +cat_create H:\My_Documents\Documents\stest.vic +cat_setini H:\My_Documents\Documents\stest.vic H:\My_Documents\Documents\photos.ini +cat_addfolder H:\My_Documents\Documents\stest.vic I:\2019\03\*.* +cat_addfolder H:\My_Documents\Documents\stest.vic I:\2017\2017-10\*.* recurse +cat_openwicon H:\My_Documents\Documents\stest.vic +;wait 2000 +;close Walb_H:\My_Documents\Documents\stest.vic +;wait 1000 +;close H:\My_Documents\Documents\stest.vic + diff --git a/tools/vision/scripts/muchram.vcs b/tools/vision/scripts/muchram.vcs new file mode 100644 index 0000000..f1fd0a9 --- /dev/null +++ b/tools/vision/scripts/muchram.vcs @@ -0,0 +1,25 @@ +; muchram.vcs +; Load many modules to have some RAM usage for them and +; Try to load a BIG picture to check modules are unloaded +; Do not try all folders under ST-Picture-Formats\samples +; As IMG.LDG module has a bug, don't go through gem_images +cat_create H:\My_Documents\Documents\tst.vic +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\degas\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\deluxe_paint\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\apex_media\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\falcon_tc\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\crackart\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\gfa_raytrace\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\imagelab\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\neochrome\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\misc\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\pixart\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\spectrum\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\computereyes\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\*.* recurse +cat_openwicon H:\My_Documents\Documents\tst.vic +wait 3000 +close Walb_H:\My_Documents\Documents\tst.vic +open I:\Demoscene.jpg +open I:\Demoscene1.jpg \ No newline at end of file diff --git a/tools/vision/scripts/muchram2.vcs b/tools/vision/scripts/muchram2.vcs new file mode 100644 index 0000000..d7e7615 --- /dev/null +++ b/tools/vision/scripts/muchram2.vcs @@ -0,0 +1,13 @@ +; muchram2.vcs +; Load many modules to have some RAM usage for them and +; Try to load a BIG picture to check modules are unloaded +; Assuming IMG.LDG module does not corrupt memory when ientifying fsnap32k.img +cat_create H:\My_Documents\Documents\tst.vic +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\TGA\*.* recurse +cat_addfolder H:\My_Documents\Documents\tst.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\*.* recurse +cat_openwicon H:\My_Documents\Documents\tst.vic +wait 3000 +close Walb_H:\My_Documents\Documents\tst.vic +open I:\Demoscene.jpg +open I:\Demoscene1.jpg \ No newline at end of file diff --git a/tools/vision/scripts/opnsav.vcs b/tools/vision/scripts/opnsav.vcs new file mode 100644 index 0000000..948ad7d --- /dev/null +++ b/tools/vision/scripts/opnsav.vcs @@ -0,0 +1,8 @@ +; LDV script sample +; Demonstrates how to open/save images with saving options +open H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF +save H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF H:\PURE_C\PROJECTS\VISION\IMGTEST\mtest.tga +save H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF H:\PURE_C\PROJECTS\VISION\IMGTEST\mtest.tif compression=lzw;byteorder=intel +; next line does not support all these options, you will see some info in vision.log about that but file is still saved +save H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF H:\PURE_C\PROJECTS\VISION\IMGTEST\mtest2.tga quality=80;flipflop=2;byteorder=motorola +save H:\PURE_C\PROJECTS\VISION\IMGTEST\MARBLES.TIF H:\PURE_C\PROJECTS\VISION\IMGTEST\mtest.jpg quality=50 diff --git a/tools/vision/scripts/photos.ini b/tools/vision/scripts/photos.ini new file mode 100644 index 0000000..93fab91 --- /dev/null +++ b/tools/vision/scripts/photos.ini @@ -0,0 +1,87 @@ +; First start with categories that won't stop processing +; Cont = 1 means if match continue with other Lookxx +; There can be up to 50 Lookxx from Look00 to Look49 +[Look0] +Path=[corse] +Cat2=Corse +Continue=1 + +[Look1] +Path=[paris] +Cat2=Paris +Continue=1 + +[Look3] +Path=[hawai] +Cat2=Hawai +Continue=1 + +[Look4] +Path=[mazamet] +Cat2=Mazamet +Continue=1 + +[Look5] +Path=[rome] +Cat2=Rome +Continue=1 + +[Look6] +Path=[old] +Cat2=Ancien +Continue=1 + +[Look7] +Path=[imgtest] +Cat2=TestSample +Continue=1 + +; Then those for which when there is a match +; Procesing will stop there as these categories are exclusive +[Look10] +Path=I:\200?\*.* +Cat1=2005-2009 + +[Look11] +Path=I:\2010\*.* +Cat1=2010-2015 + +[Look12] +Path=I:\2011\*.* +Cat1=2010-2015 + +[Look13] +Path=I:\2012\*.* +Cat1=2010-2015 + +[Look14] +Path=I:\2013\*.* +Cat1=2010-2015 + +[Look15] +Path=I:\2014\*.* +Cat1=2010-2015 + +[Look16] +Path=I:\2015\*.* +Cat1=2010-2015 + +[Look17] +Path=I:\2016\*.* +Cat1=2016-2020 + +[Look18] +Path=I:\2017\*.* +Cat1=2016-2020 + +[Look19] +Path=I:\2018\*.* +Cat1=2016-2020 + +[Look20] +Path=I:\2019\*.* +Cat1=2016-2020 + +[Look21] +Path=I:\2020\*.* +Cat1=2016-2020 diff --git a/tools/vision/scripts/pinvert.ini b/tools/vision/scripts/pinvert.ini new file mode 100644 index 0000000..1907e63 --- /dev/null +++ b/tools/vision/scripts/pinvert.ini @@ -0,0 +1,5 @@ +[LDVParams] +x1=70% +x2=90% +y1=10% +y2=30% diff --git a/tools/vision/scripts/plight.ini b/tools/vision/scripts/plight.ini new file mode 100644 index 0000000..386e2f7 --- /dev/null +++ b/tools/vision/scripts/plight.ini @@ -0,0 +1,10 @@ +[LDVParams] +x1=70% +x2=95% +y1=65% +y2=90% + +Parameter1=100 +Parameter2=100 +Parameter3=50 +Parameter4=110 diff --git a/tools/vision/scripts/ppuzzle.ini b/tools/vision/scripts/ppuzzle.ini new file mode 100644 index 0000000..eb4c389 --- /dev/null +++ b/tools/vision/scripts/ppuzzle.ini @@ -0,0 +1,9 @@ +[LDVParams] +x1=10% +x2=30% +y1=70% +y2=90% + +Parameter1=20 +Parameter2=15 +Parameter3=20 diff --git a/tools/vision/scripts/protate.ini b/tools/vision/scripts/protate.ini new file mode 100644 index 0000000..66e6c1e --- /dev/null +++ b/tools/vision/scripts/protate.ini @@ -0,0 +1,7 @@ +[LDVParams] +x1=40% +x2=60% +y1=40% +y2=60% + +Parameter1=45 diff --git a/tools/vision/scripts/readme.txt b/tools/vision/scripts/readme.txt new file mode 100644 index 0000000..e54c9d6 --- /dev/null +++ b/tools/vision/scripts/readme.txt @@ -0,0 +1,2 @@ +Please take these scripts as educational samples; they are very depending on my own configuration. +This is just to give you an idea of how VISION scripting works, they are not intended to be working in general as image file location is surely not identical. \ No newline at end of file diff --git a/tools/vision/scripts/s0.vcs b/tools/vision/scripts/s0.vcs new file mode 100644 index 0000000..ba3de1a --- /dev/null +++ b/tools/vision/scripts/s0.vcs @@ -0,0 +1,6 @@ +; Catalog all ST images +cat_create H:\My_Documents\Documents\s0.vic +cat_addfile H:\My_Documents\Documents\s0.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\BYPLANES\32\XING_B32.TGA +cat_openwicon H:\My_Documents\Documents\s0.vic +wait 5000 +close H:\My_Documents\Documents\s0.vic diff --git a/tools/vision/scripts/s1.vcs b/tools/vision/scripts/s1.vcs new file mode 100644 index 0000000..a11d591 --- /dev/null +++ b/tools/vision/scripts/s1.vcs @@ -0,0 +1,8 @@ +; Catalog all ST images +Loop 2 +cat_create H:\My_Documents\Documents\stimg.vic +cat_addfolder H:\My_Documents\Documents\stimg.vic H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\*.* recurse +cat_openwicon H:\My_Documents\Documents\stimg.vic +wait 3000 +close H:\My_Documents\Documents\stimg.vic +Endloop \ No newline at end of file diff --git a/tools/vision/scripts/spec512.vcs b/tools/vision/scripts/spec512.vcs new file mode 100644 index 0000000..d531ac7 --- /dev/null +++ b/tools/vision/scripts/spec512.vcs @@ -0,0 +1,5 @@ +iprio_set 1,3,2 +Loop 2000 +open H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\spectrum\unispec\3d_512.sps +close H:\PURE_C\PROJECTS\VISION\IMGTEST\ST-Picture-Formats\samples\spectrum\unispec\3d_512.sps +Endloop \ No newline at end of file diff --git a/tools/vision/TCW128.DAT b/tools/vision/tcw128.dat similarity index 98% rename from tools/vision/TCW128.DAT rename to tools/vision/tcw128.dat index 6f05dd599b2ca24cd11a003f7f69085fcb556e12..5e10422dbb6f407f8ac48d936d95246caa734147 100644 GIT binary patch delta 23 fcmbQdopbVb&W0AoElj&ZSpH9A_`i9#$Q3pKdbJ8= delta 1779 xcmbQdopbVb&W0AoElj&Z>KO(WjM_gM{sS2Tqv>xTL!W_RH2g<)_@~mv`v3v-3`qb0 diff --git a/tools/vision/TCW64.DAT b/tools/vision/tcw64.dat similarity index 100% rename from tools/vision/TCW64.DAT rename to tools/vision/tcw64.dat diff --git a/tools/vision/VISION.IMG b/tools/vision/vision.img similarity index 100% rename from tools/vision/VISION.IMG rename to tools/vision/vision.img diff --git a/tools/vision/vision.ini b/tools/vision/vision.ini index 3f1a49a..83b5e7a 100644 --- a/tools/vision/vision.ini +++ b/tools/vision/vision.ini @@ -2,15 +2,14 @@ ; Image Modules. There are 2 modules managed by VISION: ; 1: Internal modules (in VISION's prg file) ; 2: zView LDG modules +; 3: zView IM modules +; 4: zView SLB modules ; Global defines a generic rule for all image formats -; Some examples: +; Some example: ; Global=2,1 -; --> Prefer zView plugins to load images -; Global=1 -; --> Only use VISION's internal modules to load images -; By default VISION will prefer its own modules and fall back to zView plugin if not supported +; By default VISION will prefer its own modules and fall back to zView IM then LDG plugin if not supported: [Img Priorities] -Global = 1,2 +Global = 1,3,2 [SlideShow] DisplayProg = 1 @@ -35,14 +34,15 @@ HandleLock = 0 UseDSP = 0 [Folders] -zvLDG = -LDV = -Album = -Filters = -DSP = -Images = -Temp = -Languages = +zvLDG = C:\tools\vision\zvLDG +LDV = C:\tools\vision\LDV +Album = C:\tools\vision +Filters = C:\tools\vision\FILTRES +DSP = C:\tools\vision\DSP +Images = C:\tools\vision +Temp = C:\tools\vision\TEMP +Languages = C:\tools\vision\LANGUES +ImgMod = C:\GEMSYS\IMGMOD [Logging] ; LoggingFlags: @@ -61,7 +61,7 @@ Languages = ; TMP2 $000008 ; TMP1 $000004 ; Unsed bits can be set to 0 or 1 -LoggingFlags = 1ff900f +LoggingFlags = 1ff9000 LoggingFile = vision.log ; FlushFreq is used to avoid flushing log to disk ; For every log request: @@ -76,8 +76,6 @@ LoggingFlushFreq = 1 PreviewDstSize = 640 ; PreviewSrcSize to 0 will simply show only result of LDV PreviewSrcSize = 0 -MePriority = 0 -ShowPerf = 0 ; You can hide processors to LDV (e.g. for testing) Hide030 = 0 HideFPU = 0 @@ -88,12 +86,6 @@ SnapKeyDirect = 652f SnapKeyViaConfig = 662a SnapFlags = 1 -[Log] -; Pretty misnamed here, it's just a facility to generate a slide show file (.vss) -; By loading pictures -LogFlags = 0 -LogFile = - [Graphics] PColor = 1 PHeight = 16 @@ -124,6 +116,8 @@ TWCar = 7 MaskOutside = 0 EraserForm = 0 WriteMode = 1 +; Here is the thickness list mapped to Control-1 to Control-9 +Thickness = 1,4,7,10,14,18,22,26,30 [Real Time Zoom] RTHeight = 128 @@ -154,7 +148,7 @@ FullScreen = 0 DisplayToolBar = 1 SplashWindow = 0 DitherAuto = 1 -HelpBubbles = 1 +HelpBubbles = 0 Language = ENGLISH ; RSRC choice for loading resources ; -1: Auto (default) @@ -162,3 +156,19 @@ Language = ENGLISH ; 1: Use regular rsrc provided by AES ; -1 should work always but TC32 on a Falcon+Radeon card RsrcChoice = -1 +HexDumpOnError = 1 +ShowIBrowser = 1 + +[Update] +Choice = 1 +LastCheck = 0 +MinCheck = 604800 +TrustedCAFile = +; TrustedCAFile must be filled-in only if https is enforced (yes http://vision2.atari.org redirects to a https website) +; cacert.pem must be in VISION's folder, cacert.pem can be found at https://curl.se/docs/caextract.html or https://github.com/freemint/git/releases/download/v2.11.0-m68k/certs.tar.bz2 +; TrustedCAFile must point to a file which contains RootCA for Let's Encrypt +; If TrustedCAFile is empty, curl can still use https but in "insecure mode" (curl does not check against server certificate) +; By default, wget (http only) is defined +Enabled = 1 +Updater = wget +URL = http://vision.atari.org/vupdate/staging/ diff --git a/tools/vision/vision.prg b/tools/vision/vision.prg new file mode 100644 index 0000000000000000000000000000000000000000..3db2e6ade745a741bd1762354b1f58988da82dd3 GIT binary patch literal 521728 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

qO+*^nzX!R1ma!~k~!$#VE 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

u(w&wnU5(qrkl#ZO0e&{khtnQolX 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®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 G-~Dft`tQR4 literal 0 HcmV?d00001

@@ -18,7 +17,7 @@

-

Last update: 05/04/18

+

Last update: 03/28/20

@@ -241,26 +240,25 @@ as well as the sources (in PureC). Here are their characteristics:

Performs a pixelization on an image or part of it - Capacités + Capabilities True Color modes only (16 and 32 planes). ATARI. format - Type de - transformation + Transformation type In place - Utilise VAPI + Uses VAPI Yes (
Progress Interface) - Fichier INI + INI file Yes (English / French) - Remarque + Comment Nice effect and good for learning: this LDV only considers True Color ATARI format and it will nevertheless run on your MagicPC ! It makes @@ -281,28 +279,27 @@ use of  VISION feature to deal with format handli Performs a perspective effect on an image or part of it - Capacités + Capabilities Any number of bitplans (1, 2, 4, 8, 16, 24 and 32). ATARI format. Does not change palette. - Type de - transformation + Transformation type Forces VISION to allocate memory for destination. - Utilise VAPI + Uses VAPI Oui (Progress Interface+ Raster Interface + MEM Interface) - Fichier INI + INI file Yes (English / French) - Remarque + Comment Nice perspective effect. When operating on selection, the allocation bloc is set thanks to LDVF_NOSELECTION flag (pretty painful to handle in bitplane mode). This LDV only gets an image and not bloc selection.MEM Interface function MeCopyMemoryxx is used to scale lines. @@ -321,26 +318,25 @@ use of  VISION feature to deal with format handli Change red, green, blue color spreading using a line (light) or a gamma curve (gamma). - Capacités + Capabilities Any number of bitplans (1, 2, 4, 8, 16, 24 and 32). Machine format. Modifies the palette. - Type de - transformation + Transformation type In place - Utilise VAPI + Uses VAPI Yes (Progress Interface+ Raster Interface) - Fichier INI + INI file Yes (English / French) - Remarque + Comment Smart replace for old embedded functions in VISION..In bitplane mode, palette is changed. Handles cancel.
These LDVs are pretty optimized for memory performances: they operate @@ -363,27 +359,26 @@ image.(true colro only).
Performs a rotation on the image or part of it. - Capacités + Capabilities Any number of bitplans (1, 2, 4, 8, 16, 24 and 32). Machine format. Does not change the palette. - Type de - transformation + Transformation type Forces VISION to allocate memory for destination. - Utilise VAPI + Uses VAPI Yes (Progress Interface+ Raster Interface) - Fichier INI + INI file Yes (English / French) - Remarque + Comment This LDV is very simple. Actually it just calls RaRasterRotateGetDstMFDB and RaRasterRotate functions in VAPI Raster interface .
Have a look how LDVF_NOSELECTION flag is used in order to not complicate things with blocs. @@ -391,7 +386,7 @@ image.(true colro only).