home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
falcon
/
graphics
/
gemtarga
/
gemtarga.txt
< prev
next >
Wrap
Text File
|
1993-04-11
|
12KB
|
345 lines
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.