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 untersttzt dabei alle Aufl”sungen, insbesondere erkennt
	es einen Falcon am Video-Cookie, und schreibt, falls gewnscht 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 drfen hierbei auch gltige 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 untersttzt, 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 gewnscht,
	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 fr
				Update-Aktion fr das obenliegende Fenster
				einstellen.

		0:		Kein Update mehr fr 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 gedrckt 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 ntzlich fr 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 fr 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 fr 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 (Pixelmll). Abhilfe: Escape-Taste bei 
	komplett sichtbaren (d.h. getoppten) Bild drcken.
	In zuknftigen Versionen wird das Bild erst komplett in einem
	MFDB im Standardformat aufgebaut, einmal gewandelt und 
	dieses Problem ist gel”st.

	Aus mir unbeannten Grnden wird oft der erste Druck von Cntrl-Q
	nicht erkannt (zumindest unter MultiTOS). Nach einem Fenster-Move
	oder drcken 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 fr den Direct-Color-Mode
	ist es nervt”tend, fr jedes Pixel erst einen vs_color-Aufruf
	zu t„tigen.
	
	Eine v_pixel-Routine folgenden Formats wnsche 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 berflssiges Array erstellen zu mssen:
	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 fr 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 fr Direct-Color-Modi
	gedacht, rgblist ist hier ein Array von 3*count Elementen,
	rot-grn-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 fr 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 fr dieses Verfahren ist schon fast fertig,
	und sie wird schnell sein...

	Eine 68882 nutzende Version wird auch noch kompiliert,
	das drfte 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 hbscher aus...)

	Aufhellen/Abdunkeln/Kontrastverst„rkung/Konturverst„rkung/etc.
	Bildaddition/mischung/subtraktion
	
	Bilder sichern

	Eventuell wird auch noch das Vacc-Protokoll von Gemini untersttzt
	werden
	

AUTOR
	Fragen, Anregungen und Kritik an den Autor:

	Christoph Wissing
	Grner 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 drfen keine geldwerten Vorteile fr das 
	Weitergeben/Verbreiten von GEMTARGA beziehen.
	D.h., PD-Versender mit Gebhren h”her als Versandkosten plus
	Diskettenkosten und Disk-Magazine ber Selbstkostenpreis
	fallen aus der Verbreitung heraus! 
	Die Verbreitung ber nichtkommerzielle DFš-Netze ist 
	ausdrcklich erlaubt.


ACHTUNG!
	Ich schlieže jede Haftung fr Sch„den durch Benutzung
	des Programms aus, obwohl GEMTARGA nach bestem
	Wissen und Gewissen programmiert wurde.