Short: free icon.library in optimized ASM code Author: Peter Keunecke Uploader: pkeunecke alice-dsl net Type: util/libs Version: 46.4.604 Requires: 68000 CPU or 68020+ Architecture: m68k-amigaos >= 3.0.0 Latest changes: ~~~~~~~~~~~~~~ A new "Smart" palette based icon.library supporting 2 additional levels of alpha channel transparency for the conversion of TrueColor icons into normal OS 3.5 ColorIcons, which allows a softer fading of borders over the background and also some transparent shades on Hi/TrueColor screens with just one byte per pixel. In comparison to loading and rendering real TrueColor icons like done by TC020 these converted "SmartIcons" can be loaded and displayed really fast and with much less memory consumption than real ARGB icons. "Smart" icons have two alpha channel levels with 37.5 % and 62.5 % transparency which calculate their colors from two virtual 6x6x6 and 3x3x3 color cubes and a simple brightness checkerboard dithering for even more mixed colors. On chunky and planar screens this alpha level transparency is replaced by merging with gray instead. This Smart color reduction is still compatible to the OS 3.5 ColorIcon format and the new icons can also be displayed by other icon.libraries, but will then only fade a bit into gray at the borders, as this was done already in the past by the 68020 library or with the option ConvertTrueColor. Most of my libraries are now also able to convert TrueColor icons into SmartIcons. Only the 68000 version, Smurf and Base can't do this, but a new packed "Cool" library is like Base + Smart. When TrueColor icons are loaded by the OS 3.9 IconEdit then you can click on the first color in the palette, which is the more or less "yellow" transparent color. This color0 should have a Red of 250 and Green of 222 plus a Blue, which shows the number of alpha colors. In hexa-decimal this RGB value should contain $FADE.. The alpha channel colors are the last of the palette until you are saving the converted icons. Then my own palette optimization will remove gaps and doublets by rewriting the palette with a new color order, but the alpha transparency fading remains working just fine. Unfortunately, the OS 3.2 IconEdit deletes color #0, which means that it destroys the alpha transparency, but this can still be repaired manually on 3.9 again. The Aros libraries are now v51 too and include all of the ARGB conversion routines with support for Scalos, except for the packed Aroz, supporting Wanderer only. A new ARGB icon dragging of Wanderer in the Aros 68k Deadwood fork works now and old planar and MWB icons are always converted into ARGB images with the 8 MWB colors and are drawn by WritePixelArray() on Wanderer. The icon.library of Aros 68k must be removed from the list of resident modules by RemLib >NIL: icon.library before SetPatch or replaced by tools like LoadModule. To load Aros deficons from ENVARC:Sys instead of ENV: you should make an Assign ENV: ENVARC: ADD somewhere. Download (classic): https://github.com/deadwood2/AROS The support for Scalos on Aros 68k has beeen improved a lot. You have to remove all iconobject datatypes in Scalos:icondatatypes/Datatypes out of this directory except for the 2 files amigaiconobj35.datatype and iconobject.datatype in order to get best results with my icon.library, which will then do the decoding for all icon formats. Scalos does most of the drawing and can even scale the images up or down. Unfortunately, only the scaled icons still get invisible on Aros 68k when you are dragging them around. But you can switch the icon label text ON for icon dragging to see their position while you move scaled icons around. Scalos can also be switched to chunky or native screen modes and will update and remap the icons and their colors automatically, if the wb39.plugin and wbrexx.plugin are installed and the RexxMast, rexxsupport.library and rexxsyslib.library of OS 3.1 exist (not the Aros versions), C:RexxMast was started and the RX command can be found in C: or maybe somwehere in your PATH. Of course, Scalos needs to be started standalone as a replacement for Wanderer in your startup-sequence, if you really want to get most of Scalos' functionality. If your Aros 68k causes some transparent holes in the icons on Scalos after you've clicked on them and the mouse pointer is moved then you can avoid this bug by enabling the hardware sprite support in your emulator. Some Scalos preferences which can cause other issues: "Masked click area" for icons can make it impossible to select scaled icons. Disable it if this happens. "Mark icon under mouse" might also have side effects. Keep Deficons opaque in case that they disappear when you drag them around. This icon.library supports the custom bob routines with "Real Transparent" dragging, although the Scalos code seems to have a little bug, because it uses the masks of the first images for the dragged second images when this Truecolor mode is ON. There is a newer scalosgfx.library from 1.4.2025 for April fools which is buggy and crashes sometimes. You better replace it by the older file from Scalos 41.8. Download: https://sourceforge.net/projects/scalos The usage of GetARGBImageData1/2 tags was probably a bit limited, caused by of a restriction to Scalos RTG screens, which now only exists for the Scalos tasks. Some of the fixes in the palette based libraries: The handling of mixed Aros icons with 1 palette based image and 1 ARGB TrueColor image is the same as in my v51 libraries now, which means that the poor looking palette based image is replaced by a color reduction and color mapping of the TrueColor image with better quality. The viewmodes and drawer flags of PNG icons are also set correctly now. Don't know why they were set to 0? Letzte Änderungen: ~~~~~~~~~~~~~~~~~ Es gibt jetzt eine neue palettenbasierte "Smart" icon.library als besseren Ersatz für die 68020 Version, die es mittels zweier zusätzlicher Level von Alpha-Kanal Transparenz erlaubt, die Ränder der Icons auf Hi/Truecolor Bildschirmen etwas weicher über dem Hintergrund auszublenden und auch teil-transparente Schatten ermöglicht. Das funktioniert jetzt mit nur einem Byte pro Pixel, nachdem die TrueColor Icons konvertiert wurden. Im Vergleich zum Laden und Anzeigen von echten TrueColor Icons, zB. durch TC020, können diese konvertierten "SmartIcons" sehr schnell geladen und dargestellt werden und benötigen dabei viel weniger Speicher als PNG, OS4 und Aros Icons. "SmartIcons" besitzen zwei Alpha-Kanal Bereiche mit 37.5% und 62.5% Transparenz und berechnen die Farben dafür mittels zweier virtueller 3x3x3 und 6x6x6 Farbwürfel und einem einfachen Hellig- keitsdithering per Schachbrettmuster, was noch weitere Mischfarben ermöglicht. Auf Chunky und planaren Bildschirmen wird die Alpha-Transparenz durch ein Mischen der Farben mit Grau ersetzt. Diese smarte Farbreduzierung ist trotzdem immer noch kompatibel zum OS 3.5 ColorIcon Format und die neuen Icons können auch mit allen anderen OS v44+ icon.libraries angezeigt werden, allerdings werden die transparenten Iconränder und Schatten dann durch ein Mischen mit Grauanteilen ersetzt, wie dies auch schon bisher bei der 68020 Version oder mit der Option ConvertTruecolor passierte. Die meisten meiner Libraries können jetzt auch TrueColor Icons zu SmartIcons konvertieren. Nur die 68000 Version, Smurf und Base tun es nicht. Die gepackte "Cool" Library ist Base plus Smart. Wenn man TrueColor Icons in den OS 3.9 IconEdit lädt, kann man durch Anklicken der ersten Farbe in der Palette, die mehr oder weniger als gelbe transparente Farbe erscheint, Informationen zum Alpha-Kanal erhalten. Der Rotanteil sollte 250, der Grünanteil 222 betragen und Blau zeigt die Anzahl der verwendeten Alphafarben an, die ganz am Ende der Palette erscheinen. Der hexadezimale RGB-Wert der Farbe #0 sollte also $FADE.. sein. Wenn man diese konvertierten Icons abspeichert, wird meine Palettenoptimierung allerdings Lücken und doppelte Farben aus der Palette entfernen, so dass sich deren Reihenfolge ändert, aber die 2 teil-transparenten Alpha-Kanal Level bleiben. Leider löscht der OS 3.2.x IconEdit die Farbe 0 und zerstört dadurch die Alpha-Transparenz, was man aber mit 3.9 wieder manuell reparieren kann. Die Aros Libraries sind jetzt auch v51 inklusive der ganzen ARGB Konvertierungsroutinen und dem Support für Scalos, bis auf die gepackte "Aroz" Version, die nur Wanderer unterstützt. Eine neue ARGB Icon-Ziehroutine von Wanderer im Deadwood Aros-Zweig funktioniert nun und alte sowie MWB Icons werden immer in ARGB Bilder mit MWB-Farben konvertiert und mit WritePixelArray() angezeigt. Die icon.library von Aros 68k muss zunächst aus der Liste der residenten Module entfernt werden, was man mittels "RemLib >NIL: icon.library" oder LoadModule tun kann. Um unter Aros DefIcons von ENV:Sys zu laden anstelle von ENVARC:Sys, sollte man auch ein "Assign ENV: ENVARC: ADD" benutzen. Download (classic): https://github.com/deadwood2/AROS Die Unterstützung für Scalos auf Aros 68k wurde bei den Aros und ArosHB Libs deutlich verbessert. Man muss dazu alle iconobject datatypes bis auf die zwei Dateien amigaiconobj35.datatype und den iconobject.datatype völlig aus dem Verzeichnis Scalos:icondatatypes/Datatypes entfernen, damit meine icon.library die Dekodierung aller Icons übernimmt und Scalos sie nur skaliert und anzeigt. Skalierte Icons werden unter Aros 68k beim Ziehen leider unsichtbar, aber man kann Iconlabel-Text für das Dragging aktivieren, um die Position zu verfolgen. Mit meinen Libraries kann man Scalos auch auf Chunky und native Bildschirme umschalten und die Icons werden dann automatisch remapped, wenn man auch das wb39.plugin und wbrexx.plugin installiert hat und RexxMast, rexxsupport.library sowie rexxsyslib.library von OS 3.1 benutzt. Mit den Aros Dateien funktioniert es nicht. RexxMast muss bereits laufen und der RX-Befehl sollte im C: Verzeichnis liegen oder irgendwo unter PATH. Um alle Eigenschaften von Scalos nutzen zu können, muss man es als Ersatz für Wanderer starten. Wenn Aros 68k transparente Löcher in den Icons auf Scalos erzeugt, sobald man sie anklickt und den Mauszeiger bewegt, kann man dies verhindern, indem man im Emulator Hardware Sprites aktiviert, um den Mauszeiger zu ersetzen. Einige Scalos Einstellungen können noch weitere Probleme bereiten: "Maskierte Klickbereiche" für Icons können es verhindern, dass man skalierte Icons selektieren kann. Man sollte es abschalten. "Icons unter der Maus markieren oder hervorheben" kann auch Nebeneffekte haben. Lasse DefIcons 100% sichtbar, falls sie beim Ziehen verschwinden. Eine neuere scalosgfx.library vom 1.4.2025 ist instabil, crasht manchmal und sollte gegen die alte aus Scalos v41.8 ersetzt werden. Download: https://sourceforge.net/projects/scalos Description: ~~~~~~~~~~~ This is an optimized replacement for the icon.library of AmigaOS 3.0-3.9 or Aros 68k which can exist in the Kickstart ROM or is loaded from the LIBS: directory. This shared library offers several functions to load, decode, display and save icon images and to configure settings for the execution of the associated programs by storing tooltypes, a default tool, stacksize, icon position and drawer window data in the ".info" files. Supported icon types are all old and MWB planar icons as well as color-mapped NewIcons or OS 3.5 ColorIcons and also OS4 and PNG TrueColor and merged Aros icons. All icons can be displayed either with the blitter or FBlit and the Amiga chipset or on a graphics card by P96 or CGX in their best quality as fast as possible. Beschreibung: ~~~~~~~~~~~~ Dies ist ein optimierter Ersatz für die icon.library von AmigaOS 3.0-3.9 oder Aros 68k, die im Kickstart ROM existiert oder aus dem LIBS: Verzeichnis geladen wird. Diese Shared Library enthält die Funktionen zum Laden, Dekodieren, Anzeigen und Speichern von Piktogrammen und zum Verwalten von Einstellungen für die Ausführung der zugehörigen Programme durch Erfassen von Tooltypes, dem DefaultTool, der Stackgrösse, der Icon-Position und bei Verzeichnissen von Fensterdaten in den ".info"-Dateien. Unterstützt werden alle alten planaren und MWB-Icons, sowie palettenbasierte NewIcons oder OS 3.5 ColorIcons, als auch OS4 oder PNG TrueColor-Icons und Aros Icons. Alle Icons werden entweder per Blitter oder FBlit vom Amiga-Chipsatz oder mit P96 bzw CGX auf Grafikkarten in ihrer besten Qualität so schnell wie möglich angezeigt. Distribution: ~~~~~~~~~~~~ This program is freeware. I don't give any warranties. You are using this program on your own risk and you are responsible for any damage it could cause to your system. This icon.library is completely independent and free of the AmigaOS copyright. :) Donations are welcome, if you like. (See IconLib.guide) Verteilung: ~~~~~~~~~~ Dieses Programm ist Freeware. Ich gebe keine Garantien. Die Benutzung erfolgt auf eigenes Risiko und der Nutzer trägt für jegliche Schäden an seinem System selbst die Verantwortung. Diese icon.library ist vollständig frei und unabhängig vom AmigaOS Copyright. :) Spenden sind willkommen, wenn's gefällt. (Siehe Guide) Copyright 2007-2026: ~~~~~~~~~~~~~~~~~~~ Peter Keunecke