GEMTARGA.GTP Kurzbeschreibung des Programms NAME GEMTARGA.GTP - zeigt ein Bild im Targa-Format in einem Fenster an SYNTAX gemtarga.gtp [-c] [-i] [-m] [-l] [-f] [-d] [-t] [-s{nr}] {filenames} BESCHREIBUNG GEMTARGA zeigt Bilder im 24-Bit Targa und im 16-Bit Targa-Format an. Es untersttzt dabei alle Aufl”sungen, insbesondere erkennt es einen Falcon am Video-Cookie, und schreibt, falls gewnscht und der "True-Color-Mode" eines Falcons aktiv ist, direkt in den Bildschirm (zwecks enormer Geschwindigkeitssteigerung, ohne das VDI zu benutzen). Die Bilder werden in einem ganz normalen GEM-Fenster angezeigt. Die Bilder lassen sich verschieben (Mover) und schliežen (Closer). Das Programm endet automatisch, wenn alle zugeh”rigen Fenster geschlossen wurden. {filenames} ist eine Liste von Dateien, durch Leerzeichen getrennt. Es drfen hierbei auch gltige TOS-Wildcards angegeben werden, zum Beispiel "*.TGA" oder "F:\P??.TGA". Das Programm kann auch als Accessory benutzt werden, Anwahl des GEMTARGA-Accessorys ”ffnet eine Dateiauswahlbox, in der eine neu anzuzeigende Datei angegeben werden kann. Das Drag- und Drop-Protokoll von MultiTOS wird untersttzt, d.h. Sie k”nnen *.TGA-Dateien vom Desktop-Fenster aus ber einem GEMTARGA-Fenster ablegen, und diese Dateien werden von GEMTARGA geladen und angezeigt. GEMTARGA versteht die MultiTOS Application-Terminate-Nachricht. Ein Doppelklick auf ein GEMTARGA-Fenster ”ffnet die Dateiauswahl, und erlaubt es, eine neue Targa-Datei anzuzeigen. Als Besonderheit wird der DSP genutzt falls vorhanden und gewnscht, dies beschleunigt die Anzeige in den 256- und 16-Farben-Modi erheblich. GEMTARGA daher bitte unter "Anwendung anmelden" mit Parameter "-d " (nur auf einem Falcon notwendig). GEMTARGA verstellt die Farbpalette nicht, sondern sucht die "passendsten" Farben heraus. Es werden nach jedem Fenster-™ffnen Events bearbeitet, das erm”glicht es, bis zu ca. 99 Bilder simultan anzuzeigen. Tastaturbefehle: Cntrl-Q: Programm beenden, alle Fenster schliežen Cntrl-U: Das gerade aktive Fenster schliežen Cntrl-W: Fenster wechseln (Unter MultiTOS: ab in den Hintergrund, sonst nur interne Fensterliste) Escape: Bild neuladen, Bildinhalt updaten 1,2...,9: 1 bis 9 Sekunden-Rhythmus fr Update-Aktion fr das obenliegende Fenster einstellen. 0: Kein Update mehr fr obenliegendes Fenster Help: Information zum Programm anzeigen Optionen: -i Fenster-Infozeile anzeigen, dort werden Aufl”sungsinformationen angezeigt: X- und Y-Aufl”sung und ob 16 oder 24-Bit Targa. -m Mover, Name und Closer entfallen - Verschieben des Bildes erfolgt durch Mausklick ins Fensterinnere und Maustaste gedrckt halten. Schliežen des Fensters durch Cntrl-U. -s{nr} Der in geschweiften Klammern angegebene Parameter ist unbedingt notwendig und stellt die Zeit in Sekunden dar, die verstreichen, bis das Bild "aufgefrischt" wird, d.h. es wird neugeladen und dargestellt (quasi ein automatisiertes "Escape") Dies ist ntzlich fr z.B. Benutzer des Raytracers POV: POV berechnet im Hintergrund, und GEMTARGA zeigt das von POV schon berechnete Teilbild an. Eine '0' bedeutet, das _kein_ Update stattfinden soll (Default). -t Zeit zum Umwandeln der Targa-Datei in der Infozeile anzeigen, falls vorhanden, (-i) ansonsten erfolgt ein einfaches printf. -c Kompatibilit„t einschalten: Es wird auf das Poken in den Bildschirm verzichtet, auch wenn ein Falcon-Videocookie und -mode erkannt wurde. Damit l„uft das Programm dann auch auf einem Falcon mit einer Graphikkarte, die den Videocookie nicht berichtigt und auch einen 16-Bit-Modus benutzt. -l Line-A Benutzung erlauben: Anstelle der VDI-Funktionen werden die Line-A Funktionen genutzt, aber nur in Modi, wo dies sinnvoll ist, z.B. nicht in Modi mit mehr als 256 Farben. -f Fast-Modus fr Direct-Color-Modi. Die Bildausgabe wird beschleunigt, aber das Bild wird aufgehellt (leichte Farbverf„lschung). Nur wirksam in Modi ohne Palette (Direct Color-Modi). Der Falcon-Modus bleibt aber erheblich schneller und ist 100%ig in der Farbreinheit. -d DSP nutzen, falls vorhanden. Der DSP 56001 kann in Paletten-Modi genutzt werden, um die Suche nach der geeignetsten Farbe zu beschleunigen. Dazu muž die DSPCOLOR.LOD-Datei vorhanden sein. Der Zeitgewinn ist enorm. Beweis: Anzeige des TGA-Bildes ROMAN.TGA 320x200 in Falcon-Mode 640x480x256: 301 s "Normal" 88 s mit DSP-Nutzung 71 s reines v_pmarker & vsm_color mit festcodierter Farbe 26 s mit DSP-Nutzung und Line-A (put_pixel) -> 17s Farbsuche mit DSP, 230s ohne! => ca. 13mal schnellere Farbsuche mit DSP! (Obwohl der 68030-Farbsuchalgorithmus ohne Floating-Point und ohne Multiplikationen auskommt: 3 Subtraktionen, 2 Additionen und 1 Vergleich je Farbtopf). Die Optionen werden mit der Reihenfolge ihres Auftretens aktiv. Beispiel: gemtarga test1.tga -i test2.tga Das Bild test1.tga wird _ohne_ Infozeile angezeigt, das Bild test2.tga _mit_ Infozeile. Auf Falcons ohne Graphikkarte sollte GEMTARGA als Anwendung fr Dateityp "TGA" mit Parameter "-d -l " angemeldet werden. BEISPIEL gemtarga.gtp -i -s60 -c *.tga Dieser Aufruf zeigt alle im aktuellen Ordner vorhandenen Targa-Bilder mit der Dateinamenserweiterung "TGA" in Fenstern an, wobei die Fenster eine Informationszeile beinhalten. Der Kompatibilit„tsmodus ist eingeschaltet, d.h. auch auf einem Falcon im 65.000 Farben-Modus werden nur VDI-Befehle zum Zeichnen genutzt. Alle 60 Sekunden wird jedes der geladenen Bilder erneut vom Speichermedium geladen, so daž eventuelle Žnderungen an den Dateien sichtbar werden. FEHLER Bei mehr als 8 Bildern kann aber immer dann ein "H„ngen" geschehen, wenn z.B. ein Fenster, das 9 Fenster verdeckte, geschlossen wird. Anscheinend l„uft dann der Message-Buffer zu/ber, der auf 8 Eintr„ge beschr„nkt ist. Abhilfe ist mir nicht bekannt. Wenn ein Fenster beim erstmaligen Neuzeichnen nicht komplett sichtbar ist, wird bei durch Redraw-Messages notwendigen vro_cpyfm nur der vorher sichtbare Teil geupdatet, der Rest des Fensters ist undefiniert (Pixelmll). Abhilfe: Escape-Taste bei komplett sichtbaren (d.h. getoppten) Bild drcken. In zuknftigen Versionen wird das Bild erst komplett in einem MFDB im Standardformat aufgebaut, einmal gewandelt und dieses Problem ist gel”st. Aus mir unbeannten Grnden wird oft der erste Druck von Cntrl-Q nicht erkannt (zumindest unter MultiTOS). Nach einem Fenster-Move oder drcken anderen Tasten geht's dann aber. Abhilfe ist mir unbekannt. Bei Parameter "-l" (Line-A nutzen, falls sinnvoll) findet kein Clipping statt und somit gibt es Bomben, falls ein Fenster gezeichnet werden muž, daž nur teilweise auf dem Bildschirm zu sehen ist. Abhilfe erfolgt nicht mehr, denn mit dem direkten Schreiben eines MFDB's im Standardformat erledigen sich alle derartigen Probleme! Auf „lteren TOS-Versionen kann es erforderlich sein, den Namen des Programmes von "GEMTARGA.GTP" auf "GEMTARGA.PRG" zu „ndern, um es zu starten. BEMERKUNG Die Ausgabe ber VDI mittels vsm_color und v_pmarker ist „tzend lahm. Nutzung von Line-A ist mindestens viermal so schnell! (put_pixel). Ich hoffe, Atari ringt sich eines Tages mal zu einer Funktion von der Form wie put_pixel als VDI-Funktion durch. Auch fr den Direct-Color-Mode ist es nervt”tend, fr jedes Pixel erst einen vs_color-Aufruf zu t„tigen. Eine v_pixel-Routine folgenden Formats wnsche ich mir: v_pixel (int handle, int *px, int *color, long count); handle = VDI-Handle, px = Pixel-Array mit alternierenden x- und y-Werten color = Farb-Array, halb so grož wie px, mit dem Farbindex des jeweiligen Punktes count = Anzahl der zu zeichnenden Punkte und Um eine horizontale "bunte" Linie auf "einmal" zeichnen zu k”nnen, ohne ein berflssiges Array erstellen zu mssen: v_hline (int handle, int x, int y, int *color, int count); mit x = Anfangs-x-Koordinate y = Zeile color = Array von Farbindizes, an Stelle (x+n,y) wird color[n] benutzt count = Anzahl zu zeichnender Punkte Diese Funktion ist fr jeden Raytracer oder jedes Apfelm„nnchen sinnvoll! und v_cpixel (int handle, int *px, int *rgblist, long count); Im Unterschied zu v_pixel ist diese Funktion fr Direct-Color-Modi gedacht, rgblist ist hier ein Array von 3*count Elementen, rot-grn-blau in Folge, am besten nicht im bl”dsinnigen 1000-value VDI-Format, sondern erlaubte Werte von 0 bis 255, der 68030 shiftet das falls n”tig fr den jeweiligen Bildschirm-DAC geeignet zurecht. Jaja, ich weiž, man kann sein Bild auch selber erst zurechtfummeln ber das Standardformat und umwandeln, dies ist aber wenig elegant, aufwendig und eigentlich unn”tig. Nichtdestotrotz werde ich wohl oder eher belst diese Vorgehensweise in einer neueren Version anwenden werden... Neu: Die DSP-Version fr dieses Verfahren ist schon fast fertig, und sie wird schnell sein... Eine 68882 nutzende Version wird auch noch kompiliert, das drfte aber wenig bringen, da nur Integer-Additionen verwendet werden. Nur in manchen Direct-Color-Modi ist ein Geschwindigkeitsgewinn zu erwarten (3 Multiplikationen je Pixel). ZUKUNFT Neue Versionen des Programms GEMTARGA werden mit folgenden Features erstellt werden: (Die Reihenfolge gibt die Priorit„t wieder) MFDB wird erst vollst„ndig im Standardformat aufgebaut, dann einmalig transformiert, und fertig! (unter Zuhilfenahme des DSP's, falls vorhanden) Mit dem DSP VDI-Farbwerte ins Standardformat wandeln: 0.175 s zu 0.87 s mit 68030 (256 Farben, 1000*16 Pixel) ...muž nur noch in GEMTARGA eingebaut werden! Option -z: Bilder eins nach dem anderen in ein und demselben Fenster anzeigen Option -Z: wie -z, nur beginnt nach dem letzten Bild der gesamte Vorgang wieder von vorne... Ordner als Parameter: Ordner nach *.TGA-Bildern durchsuchen (Drop von Ordnern startet diesen Vorgang auch) Option -r: rekursives Durchsuchen von Subordnern nach *.TGA Sizer/Pfeile-Fensterelemente Floyd-Steinberg Fehlerdiffusion (sieht aber kaum hbscher aus...) Aufhellen/Abdunkeln/Kontrastverst„rkung/Konturverst„rkung/etc. Bildaddition/mischung/subtraktion Bilder sichern Eventuell wird auch noch das Vacc-Protokoll von Gemini untersttzt werden AUTOR Fragen, Anregungen und Kritik an den Autor: Christoph Wissing Grner Weg 7 4441 Wettringen Mausnetz: Christoph Wissing @ ST Telefon: (02 31) 75 61 94 VERSION Datum: 11.04.1993 Versionsnummer: 0.05 l„uft auf: allen Rechnern der Atari 680x0-Serie, jeder TOS-Version und jeder Graphik-Karte (hoffe ich...) STATUS eingeschr„nktes Public Domain-Gut: Dritte drfen keine geldwerten Vorteile fr das Weitergeben/Verbreiten von GEMTARGA beziehen. D.h., PD-Versender mit Gebhren h”her als Versandkosten plus Diskettenkosten und Disk-Magazine ber Selbstkostenpreis fallen aus der Verbreitung heraus! Die Verbreitung ber nichtkommerzielle DFš-Netze ist ausdrcklich erlaubt. ACHTUNG! Ich schlieže jede Haftung fr Sch„den durch Benutzung des Programms aus, obwohl GEMTARGA nach bestem Wissen und Gewissen programmiert wurde.