home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser-CD 1999 January
/
STC_CD_01_1999.iso
/
utility
/
winlupe
/
doku
/
win_lupe.txt
< prev
Wrap
Text File
|
2000-01-08
|
10KB
|
200 lines
W i n L u p e 6.70 - faster than light
---------------------------------------
(inkl. Sourcen in Pure C und Assembler)
Ein Programm von ...
Christian Grunenberg
Traminerweg 5
D-71717 Beilstein
Tel.: 07062 - 5287
E-Mail: Christian Grunenberg @ S2 (Mausnet)
Christian_Grunenberg@S2.maus.de (Usenet)
In der Maus Stuttgart 2 (@S2) liegt immer die neueste Version der WinLupe.
WinLupe ist ein kleines Utility, welches nach dem Freeware-Prinzip verteilt
wird. Dies bedeutet, da₧ jeder das Programm inkl. der Sourcen kopieren, be-
nutzen und weitergeben darf, au₧er es handelt sich um PD-Versender, denn diese
müssen sich bei mir eine schriftliche Genehmigung einholen. Eine kommerzielle
Verwendung der WinLupe ist allerdings untersagt bzw. muss mit mir abgesprochen
werden. Ebenso ist es verboten, veränderte Versionen der Sourcen bzw. unvoll-
ständige Archive zu verbreiten. Bei vorhandenen Fehlern sollte man sich statt-
dessen immer mit genauen Fehlermeldungen an mich wenden.
Für das einwandfreie Funktionieren des Utilities oder eventuell entstehender
Schäden übernehme ich keinerlei Garantie bzw. Verantwortung.
Sollte Ihnen das Programm dennoch gefallen oder Sie wollen die neueste
Version der WinLupe, so senden Sie mir einfach eine beliebige PD-Diskette
(als Anerkennung) und einen frankierten Rückumschlag (für die neue Version)
zu.
Grundsätzlich ist das Programm sauber programmiert. Es sollte also unter allen
TOS-Versionen und auf allen (MEGA) ST(-Book)/STE/TT/FALCON-Computern laufen,
da es keinerlei Annahmen bezüglich des Bildschirmaufbaus macht, was bedeutet,
da₧ es auch Gro₧bildschirme, Grafikkarten und True-Color-Darstellung unter-
stützt. Eventuell bzw. wahrscheinlich läuft es somit auch unter ST-Emulatoren
für MS-DOS und den Amiga.
WinLupe lä₧t sich sowohl als Programm als auch als Accessory durch einfaches
Umbenennen starten. Die Funktionen des Programmes sollten eigentlich für sich
sprechen bzw. sind in der integrierten Hilfe ausreichend erklärt worden.
Der Speicherbedarf des Programms wurde so niedrig wie möglich gehalten,
wobei jedoch auf die Geschwindigkeit der Vergrö₧erung Rücksicht genommen
werden mu₧te, so da₧ das Programm ca. 8 Kb für interne Tabellen benötigt.
Insgesamt benötigt die WinLupe im Grundzustand etwa 68 KB Speicher (inkl.
Programmcode/Daten). Ebenso braucht es zwei Bildschirmpuffer für die
Vergrö₧erung, sofern das Fenster geöffnet ist. Dies sind auf einem ST max.
96 KB, auf einem TT max. 456KB und auf einem Falcon/030 bei max. Auflösung
ca. 2 MB. Aber ich glaube nicht, da₧ jemand die WinLupe im Overscanned- &
Interlaced-True-Color-Modus (768*576*65536 Farben) startet, sofern das das
AES überhaupt ermöglicht. Bei 640*480*256 Farben sind es dann 'nur' noch
912 KB.
Legt man Wert auf ein Maximum an Geschwindigkeit, sollte man die Optionen
'Fenster runden' und 'Mauszeiger mitvergrö₧ern' aktivieren und die 'Echt-
zeitschieber' deaktivieren. Ebenso sollte man eine der vorgegebenen Ver-
grö₧erungen (2/4/8/16) wählen und die Vergrö₧erungsfrequenz auf 100 Hz
stellen. Auch empfiehlt es sich, sofern der Grafikaufbau der Grafikkarte bzw.
des Computers bekannt ist, den Standard-, Pixelpacked- oder Interleaved-Modus
zu aktivieren, wobei Geschwindigkeitssteigerungen zwischen 150% und 3000%
gegenüber der sauberen Vergrö₧erung über VDI-Transform erreichbar sind.
Dennoch (!) findet kein direkter Zugriff auf den Bildschirm statt.
Der Standard-Modus arbeitet in allen Auflösungen, bei denen der Bildschirm-
aufbau mit dem VDI-Standard-Format übereinstimmt, also z.B. ST- und TT-High.
Der Pixelpacked-Modus arbeitet auf denjenigen Grafikkarten, bei denen die
einzelnen Bits der Pixel nicht in Planes, sondern direkt hintereinander im
Speicher organisiert sind. Dies ist z.B. bei vielen Grafikkarten im
8/15/16/24/32-Bit-Modus der Fall, was einer Farbanzahl von je 256,32768,65536
oder 16.7 Millionen entspricht. Ebenso gibt es den Interleaved-Modus, der bei
einem Grafikaufbau, der denjenigem des ST/TT entspricht, funktioniert, d.h.
die Planes der Pixel liegen verschachtelt hintereinander im Speicher. Dies
funktioniert in allen ST- und TT-Auflösungen sowie in allen Falcon-Grafik-Modi
au₧er dem True-Color-Modus, bei dem in den Pixel-Packed-Modus geschaltet
werden mu₧.
Die Option 'Kompatibilitäts-Modus' aktiviert den an sich notwendigen
wind_update()-Aufruf. Nur bei deaktivierter Option erfolgt auch bei aktiven
Dialogen, in der Menüleiste oder beim Verschieben von Desktopelementen bzw.
Fenstern eine Vergrö₧erung im Fenster. Dabei kann es zu Redraw-Fehlern kommen,
wenn sich das WinLupe-Fenster und ein Dialog/Menü überlappen bzw. wenn ein
Fenster über das WinLupe-Fenster geschoben wird.
Bei deaktivierter Option 'Mauszeiger an-/ausschalten' wird nur dann der
Mauszeiger korrekt an-/ausgeschaltet, wenn entweder die Echtzeitvergrö₧erung
deaktiviert ist oder der Mauszeiger über einem sichtbaren Teil des Fensters
steht. Dies verhindert in der Regel ein Flackern des Mauszeigers, kann aber in
äu₧erst seltenen Fällen zu minimalen Redraw-Fehlern führen, welche aber kurz-
fristig sind und nur an den Rändern von Fenstern auftreten können. Au₧erdem mu₧
man für diesen Fall den Mauszeiger mit maximaler Geschwindigkeit über den
Schirm bewegen, d.h. im normalen Anwendungsalltag kommt es zu keinerlei
Problemen.
WinLupe wurde mit Pure C 1.1 von Application Systems Heidelberg und meiner
eigenen, erweiterten Dialog-Library EnhancedGEM programmiert.
Hinweis : Die Infofiles der verschiedenen Versionen sind nicht kompatibel
zueinander, d.h. es müssen bei jeder neuen Version die Einstellungen
neu vorgenommen und danach ein Infofile erstellt werden.
Wichtig :
Benutzt man ein altes Infofile weiter, so kann es entweder zu
einer Fehlermeldung oder Abstürzen kommen !!!
Geschwindigkeit der WinLupe : (alle Zeiten in ms)
=================================================
Die u.a. Zeiten wurden in der ST-High-Auflösung gemessen, wobei das
WinLupe-Fenster so gro₧ wie der Bildschirm war und die Option 'Fenster
runden' ausgeschaltet war. Dies bedeutet, da₧ die Zeiten die langsamsten
Anwendungsfälle darstellen, denn die Geschwindigkeit der Zoomroutinen
kommt erst bei aktivierter 'Fenster runden'-Option zur Geltung. Auch
profitieren sie sehr stark von einem Blitter, wodurch bei optimal
eingestellten Parametern der WinLupe und vorhandenem Blitter die
Geschwindigkeit bis zu 3 mal so hoch ist wie in den unten angegebenen
Fällen. Bei einer Fenstergrö₧e von etwa einem Viertel des Bildschirms
sind Vergrö₧erungsraten von über 25 Hz auf einem ST ohne Blitter,
über 35 Hz mit Blitter und über 60 Hz auf einem MEGA/STE erreichbar.
Die WinLupe dürfte auf einem TT in ST-Auflösungen etwa die zwei- bis
dreifache Geschwindigkeit des MEGA/STE erreichen. In TT-Auflösungen
wird etwa die gleiche Geschwindigkeit erreicht, da das zu vergrö₧ernde
Datenvolumen entsprechend grö₧er ist.
Vergrö₧erungsmodus : VDI-Transform
----------------------------------
Vergrö₧erung | ATARI ST | MEGA/STE&NVDI |
-------------+-------------------+-------------------+
| Zoom | All | Zoom | All |
-------------+---------+---------+---------+---------+
2 | 50 | 325 | 30 | 110 |
3 | 40 | 275 | 25 | 95 |
4 | 30 | 265 | 20 | 85 |
6 | 25 | 250 | 20 | 80 |
8 | 20 | 240 | 15 | 75 |
16 | 20 | 260 | 15 | 85 |
Vergrö₧erungsmodus : Standard
----------------------------------
Vergrö₧erung | ATARI ST | MEGA/STE&NVDI |
-------------+-------------------+-------------------+
| Zoom | All | Zoom | All |
-------------+---------+---------+---------+---------+
2 | 50 | 280 | 30 | 60 |
3 | 40 | 230 | 25 | 55 |
4 | 30 | 210 | 20 | 45 |
6 | 25 | 205 | 20 | 45 |
8 | 20 | 185 | 15 | 40 |
16 | 20 | 190 | 15 | 40 |
Zoom -> eigentliche Vergrö₧erungsroutine
All -> kompletter Bildaufbau
Die Vergrö₧erungszeiten des Interleaved-Modus sind etwas schlechter
als die des Standard-Modus, hingegen sind die des Pixel-Packed-Modus
meistens um einige Faktoren besser, wobei man allerdings bedenken
mu₧, da₧ das Datenvolumen im Pixel-Packed-Modus um ein Vielfaches höher
ist als in monochromem Auflösungen.
Allgemein sind die optimierten Routinen ohne VDI-Transform besonders
dann sinnvoll, wenn weder ein Blitter oder Grafikprozessor noch NVDI
vorhanden sind. Ebenso hängt die Geschwindigkeit der Pixel-Packed-
Routinen stark von der Grafikkarte ab. Bei 2,4 oder 16 Farben sind die
Zeiten mit denen des Standard-Modus äquivalent, bei mehr Farben sind
teilweise entschieden höhere Geschwindigkeiten möglich.
Hier einige Beispiele :
ST-High/TT-High (evtl. mit Overscan) : Standard
monochrome Grafikkarten : Standard
ST/TT-Low/Mid (evtl. mit Overscan) : Interleaved
Falcon-True-Color-Modus : Pixel-Packed
Grafikkarten mit mind. 4 Farben : Pixel-Packed
Viel Spa₧,
Criss ...
P.S: Falls jemand nicht wei₧, wofür er die WinLupe gebrauchen kann, hier
ein paar Einsatzgebiete :
- Programme,bei denen es auf exakte Mauspositionierung ankommt, also
z.B. Grafik- und Zeichenprogramme, aber auch DTP
- Überprüfung von eigenen Grafik- und Zeichenroutinen
- Grafikprogramme, die keine eigene bzw. eine zu langsame
oder unbrauchbare Lupenfunktion besitzen
- genaues Betrachten von Grafiken/Icons,um diese für eigene Ideen
verwenden zu können