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 mssen 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. Fr 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 Rckumschlag (fr 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 bezglich des Bildschirmaufbaus macht, was bedeutet, daž es auch Grožbildschirme, Grafikkarten und True-Color-Darstellung unter- sttzt. Eventuell bzw. wahrscheinlich l„uft es somit auch unter ST-Emulatoren fr 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 fr 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 Rcksicht genommen werden mužte, so daž das Programm ca. 8 Kb fr interne Tabellen ben”tigt. Insgesamt ben”tigt die WinLupe im Grundzustand etwa 68 KB Speicher (inkl. Programmcode/Daten). Ebenso braucht es zwei Bildschirmpuffer fr 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% gegenber 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 Menleiste 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 fhren, welche aber kurz- fristig sind und nur an den R„ndern von Fenstern auftreten k”nnen. Aužerdem muž man fr 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 mssen 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 Abstrzen 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 drfte 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ž, wofr 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 - šberprfung von eigenen Grafik- und Zeichenroutinen - Grafikprogramme, die keine eigene bzw. eine zu langsame oder unbrauchbare Lupenfunktion besitzen - genaues Betrachten von Grafiken/Icons,um diese fr eigene Ideen verwenden zu k”nnen