icon.library 46.4

Browse >

      Universal Amiga OS 3.x icon.library in Assembler
      ________________________________________________

       Program Description       Programmbeschreibung

       System Requirements       Voraussetzungen

       Program Features          Eigenschaften

       Library Versions          Library Versionen

       Latest Changes            Letzte Änderungen

       Download Links            Bezugsquellen

       Installation              Installation

       Configuration             Konfiguration

       Third Party Tools         Drittanbieter Tools

       HAM + DOpus5 + Bonus      HAM + DOpus5 + Bonus

       Contact and Feedback      Kontakt und Berichte

       Important Restrictions    Einschränkungen !!

       Rights & Distribution     Rechte & Verteilung

                     Copyright 2007-2025

                       Peter Keunecke

Program Description

Contents | < Browse | Browse >

     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.

     There are 5 methods available to display icon images:

     1.) Planar icons are using bitplane data directly to
         select pens and currently assigned screen colors.
         No color palette data is stored in planar icons,
         thus they need a screen palette with locked pens.

     2.) The NewIcons and ColorIcons are using index bytes
         for every pixel pointing to a 24 bit RGB palette,
         so they are limited to 256 colors for each image.
         One of them can be used for transparency masking.
         The colors have to be mapped to the actual screen
         palette and the images are converted from chunky
         data into bitplanes, which both can take a while.
         This method always finds the best matching colors
         of the screen palette or tries to get a free pen.

     3.) On Hi/TrueColor screens NewIcons and ColorIcons
         are displayed perfectly by directly drawing their
         24 bit RGB colors to a gfx-card without mapping.
         This can be done a lot faster than the 2. method,
         and also leaves more pens for other applications.

      :( Unfortunately, the WB icon dragging routine still
         needs traditional bitplanes from selected images.
      :) To keep loading fast the color reduction, mapping
         and C2P are delayed until the icons get selected.

     4.) OS4, PNG and Aros icons are using TrueColor ARGB
         images with 24 bit color data and an Alphachannel
         byte for soft border fading over the background.
         On gfx-cards these icons are displayed perfectly.
         But on 8-bit and planar screens they first need a
         time consuming color reduction into OS 3.5 icons
         followed by the color mapping and C2P conversion.

     5.) On HAM screens palette based icons are converted
         into ARGB images like OS4 and PNG icons and then
         either one of the 16 or 64 base colors is used or
         2 color components of the previous pixel are hold
         and that with the greatest difference is updated.
         HAM images can display much more different colors
         on a native Amiga screen than the color mapping.
         But the chipset is far too slow to work with HAM.

System Requirements

Contents | < Browse | Browse >

     Ok, the most important required qualification first:

     The system needs a user who understands how it works
     and what he's really doing when he changes something.
     Nobody just knowing the fire-button on his joystick.

     Somebody asked me to mention that the name_extension
     has to be removed after copying a library into Libs:.
     Yes, of course, you sometimes have to use your brain.

     For experienced users of Amiga OS 3.x and Aros 68k:

     This icon.library can be used on all real Amigas, on
     Minimig, Vampire, Amithlon and emulators like WinUAE.

     It works with any 680x0 CPU and needs no FPU or MMU.
     The library can display all icons on all screenmodes.

     The 68000 version was made for fast systems like the
     Minimig, because a plain Amiga at 7 MHz is too slow!
     The fastest thing you can do with such a slow Amiga:
     "Throw it into the bin!"... or buy an accelerator ;)

     If you really want to use something better than just
     4-color or MagicWB icons then you need a CPU >30 MHz.

     Planar icons can not be made faster by icon.library,
     because they need no decompression or color mapping.

     You should have a fast harddisk, enough FastMem and
     a gfx-card to have more fun, but that's not required.

     This library works with every Workbench since v39 or
     Wanderer (Aros version) and AfA_OS, DOpus5 or Scalos.

     On some systems you have to replace the icon.library
     that is loaded from the Kickstart ROM with tools like
     SetPatch v44+ or RemLib, LoadResident or LoadModule.

     The support for PNG icons is limited to RGB and RGBA.
     Only these two TrueColor formats are decoded, but no
     grayscale or interlaced or PLTE palette based images.
     Only the chunks IHDR, IDAT, icOn and IEND are parsed,
     all other PNG chunks are skipped over and ignored. A
     wrong image type causes a fallback to default icons.

Program Features

Contents | < Browse | Browse >

     This icon.library can display all types of icons like
     old, MWB, OS 3.5, OS4, PNG or Aros icons and NewIcons.

     It works on all OS 3.0-3.9 and Aros 680x0 systems and
     can be used for any native screenmode or on gfx-cards.

     This library has been written completely in optimized
     assembler code with my IconBeFast v2 already built in.
     It is smaller than the original and works much faster,
     provided that the IconBeFast patch was not installed
     already, which is also included in the SystemPatch v3.

     But this icon.library has more improvements than just
     a faster color mapping. It can also delay the decoding
     of the 2. image, until an icon gets actually selected.

     It won't waste ChipMem for Workbench icons, if you set
     Prefs/Workbench to use "Other Memory" or by adding the
     command WBCTRL IMT=ICONFAST to your startup-sequence.
     OS 3.1.4-3.2 does not need memory settings like that.

     A cache for the screens colortable is built just once
     after booting and will be updated only when the number
     of shared pens has changed.

     Another optional cache with a cube of 512 "FastColors"
     can be used to calculate the closest colors directly.
     On RTG screens this optimization is always activated,
     because they need these colors only for icon dragging.

     A zlib inflate function is embedded for uncompressing
     OS4 and PNG images. The library has a color reduction
     which is based on 15 bits precision for the first 128
     colors until the palette is scanned with less bits for
     a matching color or before another one is added to it.
     A palette occupation table avoids up to 200 scans to
     save time. A fast dithering changes the brightness of
     the pixels alternately by +2 or -2 and uses a checker
     board pattern for new mixed colors and higher quality.

     This library can display TrueColor icons on all native
     Amiga screens with normal palette based color mapping.
     Two levels of the alpha channel are translated into a
     mixture with 25 % or 50 % of gray to get soft borders,
     because the blitter supports only transparency masks.

     WB:Icon->Info and saving TrueColor icons will convert
     them into the OS 3.5 format with both 680x0 versions.
     But 68020 displays a requester in case that TrueColor
     icons would directly be replaced by ColorIcons. It can
     be allowed or prevented for a single icon, in drawers
     or always. The OS 3.5 conversion has the advantage of
     getting smaller files and a much faster icon loading,
     although the lower quality is very often hard to see.

     Bad planar images in OS 3.5 and OS4 icons are replaced
     by internal defaults, if too tiny or with a depth > 3.

     TrueColor icons with only one image will automatically
     get a darker second image with a simple glow-effect.

     For Hi/TrueColor screens a direct drawing mode on gfx-
     cards is much faster than the color mapping and offers
     HiColor image quality or even a pefect icon rendering.
     TrueColor versions like TC020 are also supporting soft
     borders by alpha channel blending over the background.
     Only the 68000 version has no direct drawing built-in,
     because there are no gfx-cards or drivers available.

     DefIcons are displayed ghosted with 50 % transparency.
     If you don't like this feature, call "IconGhostingOff"
     or add the tooltype "NoGhost" to particular deficons.

     The Ram Disk icon gets automatically synchronized with
     def_Ram.info in ENV:Sys and ENVARC:Sys, and you won't
     need Copy or MakeLink to create a RAM:Disk.info file.

     Icon labels can be written in Outline or Shadow style.

     The space optimization routine for writing was added.
     It is always activated, regardless of option settings,
     and it rebuilds the color tables from scratch closing
     possible gaps and avoiding multiple entries with same
     RGB values. Icon images are always compressed now, but
     the RGB color tables are simply copied. That's faster.

     The optimized RLE decoder has a direct 8-bit handling.
     The decoding of the 2. image is done just in time now.

     Supports the OS 3.1.4 function BumpRevisionLength() to
     make copies of icons with long file names possible. It
     could also be done with WB v45.132 and WBCTRL MNL=102.

     All v51 versions can display the Eastern preview icons
     in TrueColor. Saving as OS4 icons is also possible, if
     zlib.library v3.2 is installed, ColorIcons by default.
     The OS 3.9 picture.datatype 45.17 offers best scaling.

     This icon.library has support for DOpus5, AfA_OS and a
     special version for Aros 68k and Wanderer is included.

     File types can be identified by DefIcons v47+ and also
     by the datatypes system to load the default icons.

     "Tricky Drag°n" allows icon dragging in RGB TrueColors
     and with soft alpha channel fading at the borders with
     P96 on Workbench 3.0-3.9 for OS4 and PNG icons and RGB
     for palette based ColorIcons and NewIcons. This should
     also work with P96 v3.x, but I can't test new versions.

     "Tricky Drag°n" now also works under DOpus 5.x on P96
     RTG screens without using "Custom Dragging Routines",
     even with DOpus 5.9x, but not under Aros 68k or CGX4.

     In order to reduce the amount of data that has to be
     transferred between the CPU and the gfx-card over the
     slow Zorro bus, the rectangles of TrueColor images are
     made as small as possible by removing the outer parts,
     which are nearly 100 % transparent, when alpha is 0-2.
     This was already implemented for ColorIcons on RTG.
     The rectangles of the first images (unselected icons)
     can be reduced by 20-40%, but the 2. images only < 5%,
     because the glow effect covers most of the free space.

     Some small speed improvements 2-8% on chunky screens
     for icons with 64 colors or more and for WB v44+ only
     by using the cybergraphics WritePixelArray() function
     and the LUT8 format without C2P conversion or masks.
     This concerns only unselected icons and no deficons.

     Added support for IconControlA() GetARGBImageData1
     and GetARGBImageData2, two tags of the Aros API, plus
     GetImageData1/2 with the OS4 tag SetImageDataFormat=2
     for extracting TrueColor images with Alpha Channel.

Library versions

Contents | < Browse | Browse >

     The 68000 version uses palette based color mapping for
     all NewIcons, ColorIcons, OS4 and PNG icons. It has no
     support for direct drawing on graphics cards nor any
     special handling or optimization for 68020+ programs.

     The 68000 and 68020 versions always display OS4 and PNG
     icons after a color reduction in the OS 3.5 format with
     maximal 255 colors and a simple transparency mask, even
     on Hi/TrueColor screens. But if you save the converted
     icons in this OS 3.5 format, they will become smaller
     and can be loaded much faster than the TrueColor icons.

     OS 3.2 won't accept the v46 libraries, but TC020 works.

     The 68020 version is probably the best choice for slow
     Amigas and it already has support for direct drawing on
     graphics cards. On Hi/TrueColor screens it displays all
     palette based icons perfectly, only OS4 and PNG icons in
     a little lower quality but with less memory than TC020.
     After saving TrueColor icons in the OS 3.5 format they
     can be loaded much faster than the original ARGB icons!

     The TC020 version can display OS4 and PNG icons in best
     TrueColor quality and with soft alpha channel blending
     on graphics cards. This can happen very fast without a
     time consuming color reduction, but needs more memory
     to hold the compressed ARGB images. The icons are also
     copied and saved in their original OS4 or PNG format.
     TC020 has additional ARGB buffers for faster rendering.
     Furthermore, TC020 supports 8-bit and native modes by
     a color reduction in the same way as the 68020 version.

     PNG icons can be converted into the OS4 format, which
     makes them about 15 % larger, but loading 30 % faster.
     If, for some reason, you would like to save ARGB icons
     in the OS 3.5 format, you could still use the command
     "ConvertTrueColor" before displaying them. This works
     like a downgrade to the 68020 mode. "PreserveTrueColor"
     switches back to the TC020 mode. The v51 versions can
     display the preview icons of Eastern in TrueColor, too.

     Some special versions are stored in the Bonus drawer:

     I've made a new experimental FastWB version to achieve
     a faster and more responsive icon dragging and refresh
     on Workbench 3.1.4/3.5/3.9 for slower Amigas. It's not
     a 100 % perfect solution, because it still can happen
     that some parts of the window where you select the
     icons are not refreshed after the dragging, but that's
     not a big problem, since you can still update windows
     from the WB menu. My fix already tries to take care for
     any window switching, scrolling, resizing and also has
     a timeout of 1 second after the last icon movement in
     order to avoid a later graphical damage from menus or
     requesters opening suddenly over the active window. Try
     it out and report any issues or enjoy the speed-up. It
     is best used together with the option "HoldTCbuffer1".

     The Aros 68k version is quite the same as TC020, but it
     has some additional support for Wanderer which uses the
     alpha channel data to make the background transparent.
     This feature needs to be enabled in the preferences for
     Wanderer. It's no v51 version, because Eastern doesn't
     work on Aros yet, but you can use DefIcons v44+ from
     Stephan Rupprecht in WBstartup + ENVARC:deficons.prefs.

     The LD020 version uses some older line by line direct
     drawing code that sometimes is still faster than 68020
     to display color mapped icons on a Hi/Truecolor screen.

     The HB020 version displays a HalfBright second image
     for TrueColor icons with one image, not a glow effect.

     The new 68020 based lite version "Smurf", which won't
     use pen 0 for the color mapping to avoid color fades to
     appear in the icon images when you run a Copper-demon.
     "Smurf" has no support for OS 3.2, datatype detection,
     and no icon size scaling or grayscale mapping options.

     The HAM6 and HAM8 versions are based on TC020, but are
     able to display NewIcons, ColorIcons, OS4 and PNG icons
     with much more different HAM colors on the Workbench by
     using the AGA chipset. Makes not much sense on OCS/ECS.
     Unfortunately, the Amiga is too slow to enjoy HAM WBs.

Latest changes

Contents | < Browse | Browse >

     Build #592 (2024/12/31):

     The transparency mask for planar icons with one image
     only and when "Backfill" mode is enabled uses Flood()
     from border pixels again to make color 0 transparent.
     All other pixels with color 0 are remaining gray now.

     #592: Fixed an uncritical bug of #591, the Open-count
     of cybergraphics.library was increased for every Open
     of icon.library due to tests with an outdated offset.

     The MakePlanarMask code has been optimized and needs
     no ReadPixel() calls anymore and only one Flood() to
     reach all transparent pixels from a temporary border.
     The new code is smaller and 8-9% faster without Jit.
     Updated 68000 and 68020 libraries are also included.

     Unfortunately, WB 3.0/3.1 will never use blit-masks.

     There is another new special version "BWswap" which
     can swap pen 1 and 2 with "BWswappingOnOff" in order
     to exchange Black and White in a dark theme by force,
     because some programs don't allow to configure their
     colors by user defined settings as it is possible in
     the WB assignments in palette and font preferences.
     Tell me your opinion, whether I should integrate it?

Download links

Contents | < Browse | Browse >

     The complete icon.library package is available at:
     http://aminet.net/package/util/libs/IconLib_46.4

     Updates, bugfixes, test versions and IconDemoADFs:
     http://eab.abime.net/showthread.php?t=64079

     Some other useful programs at Aminet are:
     http://aminet.net/package/gfx/misc/pngcrush-m68k
     http://aminet.net/package/util/app/dropview
     http://aminet.net/package/util/boot/FBlit
     http://aminet.net/package/util/boot/LoadModule
     http://aminet.net/package/util/boot/RemAPollo
     http://aminet.net/package/util/libs/zlib-library
     http://aminet.net/package/util/misc/ReportPlus
     http://aminet.net/package/util/wb/AutoUpdateWB
     http://aminet.net/package/util/wb/CopyIcon44
     http://aminet.net/package/util/wb/DefIcons44
     http://aminet.net/package/util/wb/Eastern
     http://aminet.net/package/util/wb/FullPalette22
     http://aminet.net/package/util/wb/image2icon
     http://aminet.net/package/util/wb/i2iGUI-V2
     http://aminet.net/package/util/wb/KDEView
     http://aminet.net/package/util/wb/MUIScrMode1_5
     http://aminet.net/package/util/wb/NewIcons46
     http://aminet.net/package/util/wb/ProcessIcon
     http://aminet.net/package/util/wb/SwazInfo18b install by hand

     Some high resolution monitor drivers (for HAM6/8):
     http://aminet.net/package/driver/moni/HighGFXnmore

     A very useful tool for icons is ImageConverter:
     https://sourceforge.net/p/amega1/code/HEAD/tree/Sources/Tools/ImageConverter

     Icon sets:
     http://aminet.net/pix/gicon
     http://aminet.net/pix/icon
     http://aminet.net/pix/mwb
     http://aminet.net/pix/nicon
     http://aminet.net/pix/picon
     http://www.masonicons.de
     http://www.five-star.com/kens_icons/icons.htm
     http://www.amiga-look.org/category/glowicons
     http://www.intuitionbase.com/customisation.php?category=icons
     http://os4depot.net/index.php?function=browse&cat=graphics/icon

     Icon structure:
     http://krashan.ppa.pl/articles/amigaicons
     http://www.evillabs.net/wiki/index.php/Amiga_Icon_Formats

Installation

Contents | < Browse | Browse >

     The installation depends on many things like CPU, ROM,
     OS and WB version, memory, gfx-system, speed, patches.

     On most 68020+ systems with a workbench.library v44+
     just copy my libs/icon.library into your LIBS: drawer.

     The v51 TC020 version is supplied as libs/icon.library
     now, which can be used on ALL systems with 68020+ CPUs.
     No, it does not need a gfx-card, although it offers all
     the support for TrueColor screens and icons in the best
     possible quality. Of course, it also works with native
     Amiga screen modes and even without P96 or CGX drivers.

     But you could also try out the FastWB version instead,
     which ignores many redundant refreshes from WB v44/45.

     Always remove name extensions and set the flags P-RW-D.

     For long file names adjust your Workbench preferences.

     OS 3.2 needs at least an icon.library v47, so you can
     only install the v47 or the v51 icon.libraries on 3.2,
     but it's still possible to call "ConvertTrueColor" in
     case that you prefer to create faster 3.5 ColorIcons.
     Best choice for OS 3.2 is TC020 from libs/icon.library,
     HB020 if you like. 68020 is too old, FastWB not needed.

     Most 68000 systems are far too slow to have a benefit
     from using the 68000/icon.library, you can't even load
     icons into FastMem. FBlit, P96 and CGX need 020+ CPUs.
     My 68000 version is for faster systems like a Minimig.

     On OS 3.0/3.1 systems it's required to remove the old
     icon.library of the Kickstart Rom from the list of the
     resident modules before a new icon.library from Libs:
     can be loaded. I'd recommend to use RemLib by Thomas
     Rapp or SetPatch v44, because they won't cause reboots.
     On the same way you can also replace the old workbench.
     A new WB v44+ has many advantages for old 3.1 systems.
     SetPatch v44 will update both without additional tools.
     If you have an older version, add this before SetPatch:

     If EXISTS Libs:icon.library
        RemLib >NIL: icon.library
        If EXISTS Libs:workbench.library
           RemLib >NIL: workbench.library
        EndIf
     EndIf

     Alternatively, it's possible to load the new libraries
     resident, but these methods need to reboot your system.
     This can be done with LoadResident, LoadModule or other
     tools like BlizKick. - Or you could build your own Rom.
     For example, insert these lines before SetPatch (<v44):

     Version >NIL: icon.library 46
     If WARN
        If EXISTS LIBS:workbench.library
           LoadResident >NIL: LIBS:workbench.library
        EndIf
     LoadResident >NIL: LIBS:icon.library REBOOT
     EndIf

     OS 3.0/3.1 has just one limitation of workbench.library
     v39-40, which will never reload the palette based icons
     after a screenmode change automatically. You can use my
     RefreshIcons tool now to reload or remap all ColorIcons.

     Install SwazInfo on WB 3.0/3.1 to replace WB=>IconInfo.
     If the SwazInfo Installer fails, install it manually.

     The NewIcons patch can be used to achieve a transparent
     background for the icon images, and supplies DefIcons !

     I've created some demo floppy images for OS 3.0/3.1 to
     show you how to install the library and other programs:
     IconDemoADF http://eab.abime.net/showthread.php?t=64079

     The Envarc:FBlit.cfg for WB 3.1 and also for WB 3.1.4+
     are provided. It depends only on the workbench.library
     version (v39-40 or v44+) which config file FBlit needs.
     FastMem will be used by default if FBlit was detected.

     Never install FBlit together with a P96 or CGX driver.

     On systems with P96 or CGX you should activate FastMem
     for the icon images. On OS 3.9 set Prefs/Workbench to
     "other memory", or on 3.5 call "WBCTRL IMT=ICONFAST",
     on WB 3.0/3.1 you can use my command "IconsToFastMem".
     OS 3.1.4-3.2 activates FastMem automatically for RTG.

     An alternative CPU version of the icon.library can be
     installed in a subdirectory of LIBS: for the case that
     no library was already resident. If LIBS:icon.library
     is the 68000 version then you can add a 020 CPU version
     as LIBS:68020/icon.library. Or if LIBS:icon.library was
     compiled for the 68020+ then you can add an alternative
     as LIBS:68000/icon.library. The correct version will be
     loaded automatically. This feature works with SetPatch
     v44 or RemLib by Thomas Rapp, but not with LoadModule,
     LoadResident, BlizKick or with a resident icon.library.

     .

Configuration

Contents | < Browse | Browse >

      Optional commands to be called before LoadWB starts:
      ____________________________________________________

     AllFramesOn1/2/3 and AllFramesOff are for systems with
     WB v44+ on OS v39-44. The number at the end (1-3) sets
     the frame size. But some color icons may never get any
     frames when they have an internal "Frameless" flag set
     which can only be changed with the OS 3.9 IconEdit or
     the icon processor modul of Report+. On WB 3.1 you can
     use the NewIcons patch to enable transparent frames.
     On WB v45+ the frame settings are in Prefs/Workbench.

     PlanarFrames1/2/3 can be used on WB v44+ to enable the
     frames exclusively for the old 4-color and MWB icons,
     but not for TrueColor or color mapped icons. Changing
     the frame sizes in Prefs/Workbench is still possible.
     By calling PlanarFrames1/2/3 once, the True/ColorIcons
     will always remain frameless, ignoring AllFramesOn1-3.

     A faster color mapping mode is optional available and
     can be activated by setting icon quality to bad under
     Prefs/Workbench. On WB v39-44 you can use the command
     FastColors. It maps 512 RGB colors with a cubic cache.
     I would recommend to use this option on slower Amigas.
     With a locked screen palette the quality won't change.

     IconsToFastMem can be used on Amigas with gfx-cards to
     load the icons faster and save ChipMem if you have no
     other program like Prefs/Workbench or WBCtrl to do it.
     It's sometimes required for WB 3.1, but not for FBlit.
     On OS 3.1.4-3.2 the memory type is set automatically.

     IconsTo24BitDmaMem can be used for saving some of the
     faster 32-bit memory for your real applications. But
     this option will also make the icon rendering slower.

     IconGhostingOff disables the 50 % transparency of the
     deficons, in case that somebody prefers opaque icons.

     GrayscaleOnOff can be used to display icons in shades
     of gray only instead of colors. You can activate it in
     Prefs/Workbench by setting icon quality to bad again.
     WB v39-44 needs both: GrayscaleOnOff plus FastColors.
     This option is only available for the 68020 version.

     OutlineIconText and ShadowIconText are optimizing the
     style of icon label text. Open Prefs/Fonts to choose
     a text color and the background color, but then switch
     back to text-only mode before you save your settings.
     OS 3.2 supports these label text modes in Prefs/Fonts.

     After activating outline or shadowtext or grayscale at
     runtime you need to update your icons with a WB-Reset.

     FileType is a test program for the type identification
     feature of the OS 3.2 DefIcons tool. For experiments.

     KillPlanarImages and KeepPlanarImages are changing the
     libraries treatment of old images in OS 3.5-4.x icons.
     Without these options planar images with over 8 colors
     or a width of less than 8 pixels are replaced by the
     internal 4-color default images. KillPlanarImages will
     replace always. KeepPlanarImages saves broken colors.
     With KillPlanarImages you can reduce the icon size and
     avoid some memory wastage for up to 256 wrong colors.
     If the icons are loaded into ChipMem then a small dot
     image is used instead of the internal default images.
     To test it just disable ColorIcons in Prefs/Workbench.

     Reduce8PlanesTo3 can be used to convert wrong looking
     MWB icons with 256 colors for using the pens 0-7 only.
     This option is an alternative to the previous options.

     FakeIconSizeForAfA compensates the problem that AfA_OS
     has with different sizes of my internal default images
     in comparison to the larger color mapped or OS4 icons.
     It's for AfA only, because it wastes space on WB 3.1.

     ConvertTrueColor can be used for OS4 and PNG icons if
     you still want to create the smaller and faster OS 3.5
     format with up to 255 colors using TrueColor versions.
     Of course, you've to save the icons to get more speed.
     PreserveTrueColor switches back to the TrueColor mode.

     ConvertPNGtoOS4 makes PNG icons about 15 % larger, but
     loading OS4 icons is about 30 % faster. This feature
     needs the zlib.library v3.2 being installed to work.
     Only TrueColor versions are supporting the conversion.

     HoldTCbuffer1 makes the window scrolling, resizing and
     the slow icon dragging of the WB a little faster, but
     with a higher memory consumption. All buffer memory is
     always freed as soon as the window is closed again. It
     is only working in TrueColor versions on RTG screens.

     Added the options "DropNewIcons", "KeepNewIcons" and
     "DropColorIcons", "KeepColorIcons" for WB 3.0/3.1.

     These global options are working similar to the v45+
     Workbench Preferences switches "No NewIcons" and "No
     ColorIcons", but I've written them for WB 3.0/3.1 on
     demand from a user, who wanted to get rid of NewIcon
     and ColorIcon images. So, on WB 3.0/3.1 only, these
     options will cut off unwanted images by saving icons.

     DropNewIcons can remove the images from the tooltypes
     by writing the displayed planar icons back to disk.
     This can be done by selecting (all) icons in a window
     and snapshot their position as long as they were not
     moved before. Or you may use SwazInfo to save them.

     DropColorIcons can remove all chunky and ARGB images
     from icons (NewIcons too) when you save them to disk.
     Then, only the old planar and MWB images will remain.

     DOnoColorMapping was an option for TrueColor screens
     on DOpus5 which could be used together with the enabled
     icon setting "Use Custom Drag Routines" for more speed
     and a better quality. It avoids all the color mapping.
     Use it with HoldTCbuffer1 for best speed and quality.
     It is highly recommended to install my patched version
     5.83 of DOpus5, which has a fix for a big memory leak.

     "DOnoColorMapping" is always activated for TrueColor
     versions now, so this option is not required anymore
     for "Tricky Drag°n", except for the old 68020 version.

     IconUpScaling and IconDownScaling, only for the 68020
     version available, can be used from a shell at runtime
     to enlarge the images to 150 % or reduce them to 66 %
     of their width and height. This works with all PNG, OS
     3.5 and OS4 icons, but not with NewIcons, old 4-color
     and MWB icons, but NewIcons can be converted. Calling
     these commands for a second time switches the scaling
     off again. Don't get confused when saving scaled icons
     to disk, because they are updated then and will appear
     immediately as double-scaled icons! Switch the scaling
     off after writing is done and then refresh the window.

     InvertGhostingMask is an optional fix that should only
     be installed if you get invisible deficons when you're
     dragging them around. Never use it without this issue!

Third party tools

Contents | < Browse | Browse >

     Always read the original tool documentation first !
     Use the download links to get the latest full packs.

     AutoUpdateWB by Elena Novaretti, Massimo Tantignone.
     This small patch lets Workbench automatically update
     the contents of a drawer window whenever a file is
     created/renamed/deleted in its associated directory
     by any other means than the Workbench itself. Added
     AutoUpdateWB v37.0 (29.3.2012) patched for old WBs.

     CopyIcon by Stephan Rupprecht can be used to copy
     the icon images from one icon to another one. But it
     won't overwrite any existing settings or tooltypes.
     I've modified CopyIcon to work on 68000 and WB 3.0+.

     FBlit by Stephen Brookes makes it possible to load
     images into FastMem and replace the blitter calls by
     faster CPU routines. This reduces the ChipMem usage.
     There are two FBlit.cfg files supplied, one for the
     old workbench.libraries v39/40, the other for v44+.
     The user is still responsible to install and setup
     FBlit, fblit.library, FBlitGUI, FBlit.cfg correctly.
     Never use it together with P96 or CGX installations.

     FullPalette and FPPrefs by Massimo Tantignone can be
     used to set and lock colors of the screen palette.
     On some sytems it can be useful to have correct MWB
     colors or to use a fixed screen palette. It also has
     an optional fix for DOpus5 problems with ReleasePen.

     2 modified versions of Rebel's 16 color palette are
     supplied and can be copied as FullPalette.prefs into
     Envarc:Sys and used by calling FPPrefs after IPrefs.
     This may allow a much better balanced color mapping.

     LoadModule by Thomas Richter can load icon.library
     and other modules like workbench.library resident by
     replacing the Rom versions. Read the documentation.
     Some options need the "P" bit set for the libraries.
     Some WBs v44-45 are not reset-proof and may need the
     LoadModule options IGNOREVERIFY and NOMEMFKICK then.
     On Aros 68k systems since 2020 LM seems not to work.

     LoadResident by Mikolaj Calusinski is a similar tool
     to load modules resident. See installation example.
     On Aros 68k systems LoadResident did never work yet.

     RemLib by Thomas Rapp can remove libraries from the
     list of resident modules without making new modules
     resident. The advantage is that it needs no reboot!
     Just make sure that you have an icon.library copied
     into Libs: and call RemLib before SetPatch as shown
     already in the example on the installation page. It
     still works on Aros 68k as long as no MMU is active.

     OpenWin.rexx by DaxB is a benchmark script which can
     measure the time it takes to open a window with many
     icons to compare the icon loading with other setups.
     It works with WB v44+ and DOpus5 and requires Arexx.

     Added a workaround for a bug in Startmenu 1.30 from
     Martin R. Elsner (MRE). Without any understandable
     reason Startmenu uses IconControlA() with SetWidth to
     change the internal width of the chunky image to 10.
     That setting is ignored now for the task "Startmenu".
     This won't work for a Project-icon in WBStartup. Copy
     MRE:Executables/Startmenu with its icon to WBStartup.

HAM + bonus programs

Contents | < Browse | Browse >

     The HAM6 and HAM8 versions are a technical experiment.

     OS4, PNG and also color mapped icons are displayed much
     nicer on HAM screens with up to 4096 or 256k colors and
     Eastern picture icons are looking a lot better in HAM8.
     Unfortunately, HAM-WBs are too slow on Amiga chipsets.

     Copy the icon.library from the HAM6 or HAM8 drawer into
     LIBS: and the FullPalette.prefs file into ENVARC:Sys to
     get the required 16/64 base colors and you have to call
     FPPrefs in your startup-sequence directly after IPrefs.
     HAM modes can only be selected with MUIScreenmodePrefs.

     As an alternative, if you don't want install the latter
     you can try the HAM screenmode preset files which will
     need the corresponding monitor drivers being installed.
     The tooltypes ACTION=USE can be changed to ACTION=SAVE.

     Never change the colors 0-15 / 0-63 of the HAM palette!
     There are some extra files with the HAM palettes, which
     can be used for creating wallpapers with 16/64 colors.
     It's impossible to get the MWB colors for the last four
     pens of a palette on HAM screens. Use Reduce8PlanesTo3.

     The HAM versions have TrueColor support like TC020, but
     the delayed second image and the ghosting are disabled.
     DOpus5 has no real support for HAM screens. But you can
     choose the display setting "Use Workbench" as a screen.

     DirectoryOpus 5.82 and DOpus5.83

     The new "Tricky Drag°n" also works under DOpus5 on P96
     RTG screens without using "Custom Dragging Routines",
     even with DOpus 5.9x, but not under Aros 68k or CGX4.
     If you want to run DOpus5 standalone by LoadDB on 3.2.x
     then add my option IconsToFastMem after calling IPrefs.
     The fastest screenmode under DOpus5 is "Use Workbench".

     "DOnoColorMapping" is always activated in all TrueColor
     versions now, so this option is not required anymore.

     The older 68020 version still needs "DOnoColorMapping":
     A completely new approach makes the DOPus5 icon loading
     a lot faster. Instead of delaying the colormapping, it
     is not done at all anymore on Hi/TrueColor screens when
     you disable it with my option DOnoColorMapping, but you
     have to enable "use custom drag routines" in DOpus too.
     I've also made a fix for a big memory leak in this code
     of DOpus 5.82 under P96 and added a better transparency
     masking for the icons when these options are activated.
     You will get a faster icon loading without using slower
     planar images. For the TC020, FastWB and Aros versions
     my option HoldTCbuffer1 is also recommended for optimal
     speed and soft borders on RTG screen modes.

     You can find a bug-fixed DOpus5.83 in the Bonus drawer.
     Rename it and replace DirectoryOpus if you are starting
     it by LoadWB. A DOpus v5.82 patch of AfA_OS for Eastern
     and DefIcons from Bernd Roesch can still be executed on
     my fixed DOpus5.83, since it's not a new C-compilation,
     but just an edited binary file, and the patching works.

     The DOpus5 bug in the custom dragging was the usage of
     "Width" in the VSprite structure of AddBob() instead of
     "Words Per Row" and also without any RemBob() later. It
     uses only AddVSprite() and RemVSprite() now in the fix.

     The Aros 68k version is quite the same as TC020, but it
     has some additional support for Wanderer which uses the
     alpha channel data to make the background transparent.
     This feature needs to be enabled in the preferences for
     Wanderer. It's no v51 version, because Eastern doesn't
     work on Aros yet, but you can install DefIcons v44+ by
     Stephan Rupprecht in WBstartup + ENVARC:deficons.prefs.
     Allow copying of deficons to ENV: again in the startup-
     sequence by commenting this out: ; PAT "~(def_#?.info)"
     Or instead you can add "Assign >NIL: ENV: ENVARC: ADD".
     The Aros icon.library has to be removed with RemLib by
     Thomas Rapp somewhere above SetPatch. Other tools can't
     be used on Aros 68k anymore. FastMem is set by default.

     My experimental FastWB version tries to achieve a more
     responsive and faster icon dragging and refresh on the
     Workbench 3.1.4/3.5/3.9 for slower Amigas. This is not
     a 100 % perfect solution, because it still can happen
     that some parts of the window where you selected icons
     for the dragging are not refreshed after their release,
     but that is no big problem, since you can still update
     the window from the WB menu. My WBfix already tries to
     take care for any window switching, scrolling, resizing
     and also has a timeout of about 1 second after the last
     icon movement in order to avoid later graphical damage
     by menus or requesters opening suddenly over the active
     window. Brings more speed together with HoldTCbuffer1.
     WB 3.2 should be more optimized and may not need a fix.

     As a bonus there are 2 script based IconMixers included
     (using ProcessIcon) which can combine (True)ColorIcons
     with the planar images of MWB or old icons. The mixed
     icons will contain both image sets. One script retains
     the MWBIcon settings, the other one keeps the GlowIcon
     tooltypes. My option "Reduce8PlanesTo3" might be useful
     for getting correct looking MWB images without wasting
     space. Since PNG icons can't store planar images they
     have to be converted with "ConvertPNGtoOS4" in advance.
     Disable the options "DropPlanarImages" or "DropPlanar"
     in tools like RAWBInfo or CopyIcon. The mixed icons get
     damaged by AfA_OS, so don't use these IconMixers there.

     The new script ConvertToPngIcons in the bonus drawer
     can be used to convert all Amiga icons into the PNG
     format with optional scaling by using ImageConverter.
     The script can be executed directly or launched from
     a DropView app-icon or started by the WB tool-menu.
     Added the option "CRUSH" to my ConvertToPngIcon script,
     which will try to use PngCrush to optimize the PNG
     compression by trying out lots of different strategies.

     LD020 uses the older line by line direct drawing code,
     because sometimes that runs still faster than 68020.

     The HB020 version displays a HalfBright second image
     for TrueColor icons with one image, not a glow effect.

     The patches for workbench.library 45.127 and 45.131 to
     45.132 include some fixes, explained in the lha file.

Contact and Feedback

Contents | < Browse | Browse >

     If you have some problems with my icon.library, want
     to make any suggestions or discuss new features then
     you can send me an email to <pkeunecke@alice-dsl.net>

     or use my threads at A1k.org or English Amiga Board:

     http://www.a1k.org/forum/index.php?threads/27403/
     http://eab.abime.net/showthread.php?t=64079

     But I won't appear in any other forums, at Twitter,
     Facebook, Reddit, in other social media or over IRC.

     Your feedback is always welcome, because testing the
     library code to find the hidden bugs is very difficult.
     If nobody reports any issues, it can take years before
     I may stumble upon a rare bug by coincidence one day.

     Please, send a description of your system with infos
     about the ROM, OS and WB version, CPU, your screenmode,
     FBlit, P96, CGX, your startup-sequence and patches, the
     version of icon.library, the icon type and screenshots.

     Thanks a lot to all the Amiga users who have already
     sent bugreports or made suggestions for improvements!

Important restrictions

Contents | < Browse | Browse >

     It's not allowed to distribute or install the

     TrueColor versions of this icon.library with or

     on AmiKit X or XE or any other freeware distro

     or software package for more than 10 Euro. Any

     bundling with commercial products is prohibited!

     This applies to the Aros-, LD020 and all the v51

     versions. But you can still use the new 68000 or

     68020 versions, or any other versions of older

     releases up to Build #538 without restrictions.

Rights & distribution

Contents | < Browse | Browse >

     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. :)

     Read the restrictions for the distribution here, too!

     Copyright 2007-2025:

       Peter Keunecke

Programmbeschreibung

Contents | < Browse | Browse >

     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.

     Es gibt jetzt 5 Methoden, um Icon-Bilder darzustellen:

     1.) Planare Icons wählen direkt mit den Bitplane-Daten
         die Farbstifte und ihre aktuellen Bildschirmfarben.
         In planaren Icons sind keine Paletten gespeichert,
         deshalb benötigen sie verriegelte Bildschirmfarben.

     2.) NewIcons und ColorIcons verwenden Index-Bytes für
         jedes Pixel, die auf eine 24-Bit RGB-Palette zeigen
         und folglich auf 256 Farben pro Bild begrenzt sind.
         Eine davon kann zur Transparenzmaskierung verwendet
         werden. Die Farben werden der aktuellen Bildschirm-
         palette zugewiesen und die Chunky-Bytes der Bilder
         in Bitplanes konvertiert, was beides aufwendig ist.
         Diese Methode findet immer die am besten passenden
         Farben der Palette oder versucht, freie Farbstifte
         zu erhalten.

     3.) Auf Hi/TrueColor-Screens werden NewIcons und OS 3.5
         ColorIcons perfekt angezeigt, indem sie ihre 24-Bit
         RGB-Farben ohne Mapping an eine Grafikkarte senden.
         Dies geht wesentlich schneller als die 2. Methode
         und läßt auch mehr Farbstifte für Anwendungen frei.

      :( Leider benötigt die WB Icon-Zieh-Routine immer noch
         die herkömmlichen Bitplanes der ausgewählten Icons.
      :) Für schnelleres Laden werden die Farbreduktion, das
         Mapping und C2P verzögert, bis die Auswahl erfolgt.

     4.) OS4, PNG und Aros Icons verwenden TrueColor Bilder
         mit 24-Bit Farbdaten und einem Alphakanal Byte für
         eine weiche Überblendung vom Rand zum Hintergrund.
         Grafikkarten können diese Icons perfekt angezeigen,
         aber auf 8-Bit und planaren Screens benötigen sie
         erst eine zeitaufwendige Farbreduzierung in OS 3.5
         Farben, gefolgt vom Mapping und der C2P-Umwandlung.

     5.) Auf HAM-Bildschirmen werden palettenbasierte Icons
         in ARGB-Bilder konvertiert wie bei OS4 und PNG und
         dann wird entweder eine der 16 oder 64 Grundfarben
         verwendet oder zwei Farbkomponenten des vorherigen
         Pixels gehalten und die mit der größten Abweichung
         wird aktualisiert. Auf normalen Amiga-Bildschirmen
         können HAM-Bilder viel mehr unterschiedliche Farben
         verwenden als beim ColorMapping. Aber der Chipsatz
         ist leider doch zu langsam, um mit HAM zu arbeiten.

Voraussetzungen

Contents | < Browse | Browse >

     Ok, die wichtigste erforderliche Qualifikation zuerst:

     Das System braucht einen Benutzer, der versteht, wie's
     funktioniert und was er bewirkt, wenn er es verändert.
     Keinen, der nur den Feuerknopf seines Joysticks kennt.

     Man bat mich zu erwähnen, dass die Namens_Erweiterung
     der Library beim Kopieren nach Libs: zu entfernen ist.
     Ja natürlich, manchmal muss man sein Gehirn benutzen.

     Für erfahrene Benutzer von Amiga OS 3.x und Aros 68k:

     Diese icon.library läuft auf allen echten Amigas, auf
     Minimig, Vampire, Amithlon und Emulatoren wie WinUAE.

     Sie arbeitet mit jeder 680x0 CPU und braucht keine FPU
     oder MMU. Sie zeigt auf jedem Bildschirm alle Icons an.

     Die 68000-Version ist nur für schnelle Systeme wie den
     Minimig geeignet, ein Amiga mit 7 MHz ist zu langsam !
     Das schnellste, was Du mit lahmen Amigas machen kannst:
     "Schmeiß sie weg!"...oder kaufe einen Beschleuniger ;)

     Wenn man wirklich etwas besseres nutzen möchte als nur
     4-farbige oder MWB-Icons, braucht man eine CPU >30 MHz.

     Planare Icons kann die icon.library nie beschleunigen,
     weil keine Dekomprimierung und Farbzuordnung nötig ist.

     Man sollte eine schnelle Festplatte, viel FastMem und
     eine Grafikkarte besitzen, um mehr Spaß zu haben, aber
     das ist nicht unbedingt erforderlich.

     Diese Library funktioniert mit jeder Workbench ab v39,
     Wanderer (Aros-Version) und AfA_OS, DOpus5 oder Scalos.

     Auf einigen Systemen muss man die icon.library, die aus
     dem Kickstart-ROM geladen wird, mit Tools wie SetPatch
     v44 oder RemLib, LoadResident oder LoadModule ersetzen.

     Es werden nur PNG Bilder mit RGB oder RGBA unterstützt.
     Nur diese beiden Formate werden dekodiert, aber keine
     Graustufen, Interlaced oder Paletten-basierten Bilder.
     Nur IHDR, IDAT, icOn und IEND werden ausgewertet, alle
     anderen PNG-Chunks werden übersprungen und ignoriert.
     Falsche Bildformate führen zur Anzeige von Ersatzicons.

Eigenschaften

Contents | < Browse | Browse >

     Diese icon.library kann alle Arten von Icons anzeigen:
     vier-farbig, MWB, OS 3.5, OS4, PNG, Aros und NewIcons.

     Sie unterstützt alle 680x0 Systeme mit OS 3.0-3.9 oder
     Aros und native Bildschirmmodi oder auch Grafikkarten.

     Diese Library wurde komplett in optimiertem Assembler
     Code geschrieben, der IconBeFast v2 schon beinhaltet.
     Sie ist kleiner als das Original und arbeitet deutlich
     schneller, vorausgesetzt, mein IconBeFast-Patch wurde
     nicht bereits installiert, zB. mittels SystemPatch v3.

     Aber diese Library hat mehr Verbesserungen als nur die
     schnellere Farbzuweisung. Sie kann auch die Dekodierung
     des 2. Bildes verzögern, bis ein Icon ausgewählt wird.

     Es wird kein ChipMem für Workbench Icons verschwendet,
     wenn man Prefs/Workbench auf "Anderen Speicher" setzt
     oder den Befehl WBCTRL IMT=ICONFAST vor LoadWB aufruft.
     OS 3.1.4/3.2 braucht diese Speichereinstellungen nicht.

     Ein Cache für die Bildschirm-Palette wird beim WB-Start
     erstellt und nur aktualisiert, wenn sich die Anzahl der
     gemeinsam genutzten Farbstifte danach geändert hat.

     Ein weiterer optionaler Cache mit einem Würfel von 512
     "FastColors" erlaubt es, die beste Farbe zu berechnen.
     Diese Optimierung ist bei RTG Screens immer aktiviert,
     denn dann braucht man diese Farben nur zum Icon-Ziehen.

     Eine zlib Inflate Routine dient zum Dekomprimieren von
     OS4 und PNG Bildern. Die interne Farbreduktion basiert
     auf 15 Bits Genauigkeit für die ersten 128 Farben, bis
     die Palette mit weniger Bits nach der passenden Farbe
     durchsucht wird oder bevor eine weitere erstellt wird.
     Eine Palettenbelegungstabelle vermeidet bis zu ca. 200
     Scans und spart Zeit. Ein schnelles Dithering ändert
     die Helligkeit der Pixel abwechselnd um +2 oder -2 und
     verwendet ein Schachbrettmuster für die Farbmischungen.

     Diese Library kann OS4 und PNG Icons auf allen nativen
     Amiga-Bildschirmen mit der normalen palettenbasierten
     Farbzuweisung darstellen. Zwei Alphakanal-Level werden
     durch eine Mischung mit 25% oder 50% Grau dargestellt,
     um weichere Abstufungen an den Rändern zu erhalten, da
     der Blitter nur einfache Transparenzmasken unterstützt.

     WB:Icon->Info und das Abspeichern von TrueColor-Icons
     konvertiert sie in das OS 3.5 Format bei beiden 680x0
     Versionen. Die 68020 Version zeigt einen Requester für
     den Fall an, dass TrueColor Icons direkt von ColorIcons
     ersetzt werden würden. Das kann für ein einzelnes Icon
     erlaubt oder verhindert werden, für Ordner oder immer.
     Die OS 3.5-Konvertierung hat den Vorteil, dass kleinere
     Dateien entstehen und das Anzeigen viel schneller geht,
     obwohl die geringere Qualität oft kaum zu erkennen ist.

     Schlechte planare Bilder in OS 3.5 und OS4 Icons werden
     automatisch durch interne Icons ersetzt, falls sie zu
     winzig sind oder mehr als drei Bitplanes besitzen.

     TrueColor Icons mit nur einem Bild erhalten automatisch
     ein dunkleres 2. Bild mit einem einfachen Glüheffekt.

     Bei Hi/TrueColor Bildschirmen ist direktes RGB Zeichnen
     auf den Grafikkarten viel schneller als Farbzuweisungen
     mittels Bildschirm-Palette und bietet HiColor-Qualität
     oder sogar die perfekte Icon Darstellung. Die TrueColor
     Versionen, wie TC020, unterstützen auch weiche Ränder
     durch eine Alphakanalüberblendung über dem Hintergrund.
     Nur die 68000 Version bietet kein direktes Zeichnen an,
     weil es keine Grafikkarten oder Treiber dafür gibt.

     DefIcons werden als Geisterbilder mit 50 % Transparenz
     dargestellt. Wer diese Funktion nicht mag, kann sie mit
     "IconGhostingOff" global abschalten oder den Tooltype-
     Eintrag "NoGhost" gezielt bei den DefIcons hinzufügen.

     Das Ram Disk Icon wird automatisch synchronisiert mit
     def_Ram.info in ENV:Sys und ENVARC:Sys und man benötigt
     kein Copy oder MakeLink mehr zur RAM:Disk.info Datei.

     Icon Labels mit Outline oder Shadow Text sind möglich.

     Die Paletten-Optimierungsroutine für das Icon-Speichern
     wurde hinzugefügt. Sie ist immer aktiviert, unabhängig
     von den Optionseinstellungen und baut die Farbtabellen
     von Grund auf neu, schließt darin die möglichen Lücken
     und vermeidet mehrere Einträge mit gleichen RGB-Werten.
     Icon-Bilder werden jetzt immer komprimiert, aber die
     RGB-Farbtabellen werden nur kopiert. Das ist schneller.

     Der optimierte RLE-Decoder behandelt 8 Bitplanes extra.
     Die Dekodierung des 2. Bildes erfolgt jetzt bei Bedarf.

     Ab 3.1.4 wird BumpRevisionLength() unterstützt, um das
     Icon-Kopieren mit langen Dateinamen zu ermöglichen. Es
     funktionierte auch mit WB v45.132 und WBCTRL MNL=102.

     Alle v51 Versionen können die Eastern Preview Icons in
     TrueColor anzeigen. Das Abspeichern als OS4 Icons ist
     ebenfalls möglich, wenn zlib.library v3.2 installiert
     ist, sonst als ColorIcons. Die beste Skalierung bietet
     der OS 3.9 picture.datatype v45.17.

     Diese icon.library hat Unterstützung für DOpus5, AfA_OS
     und eine Aros 68k Version mit Anpassungen für Wanderer.

     Dateitypen können von DefIcons v47 identifiziert werden
     oder auch vom Datatype-System, um Ersatzicons zu laden.

     "Tricky Drag°n" erlaubt das Icon-Ziehen mit RGB-Farben
     und weichen Alpha-Kanal Übergängen an den Rändern mit
     P96 auf Workbench 3.0-3.9 für OS4 und PNG Icons und RGB
     für palettenbasierte OS 3.5 und NewIcons. Dieser neue
     Gfx-Patch Hack sollte auch mit P96 v3.x funktionieren,
     aber ich kann es nicht selbst testen, da ich v2 nutze.

     "Tricky Drag°n" funktioniert jetzt auch mit DOpus 5.x
     auf P96 RTG Screens ohne die "speziellen Ziehroutinen",
     sogar mit DOpus 5.9x, aber nicht unter Aros oder CGX4.

     Um die Datenmenge zu reduzieren, die zwischen der CPU
     und der Grafikkarte über den langsamen Zorro-Bus über-
     tragen werden muss, werden die Rechtecke der TrueColor
     Bilder soweit wie möglich verkleinert, indem die fast
     100 % transparenten Bereiche am Rand entfernt werden,
     wo Alpha 0-2 ist. Dies gab es für ColorIcons bereits.
     Die Rechtecke der ersten Icon-Bilder (nicht selektiert)
     können um 20-40% verkleinert werden, die 2. nur < 5%,
     weil der Glow-Effekt den meisten freien Platz abdeckt.

     Eine kleine Beschleunigung (2-8%) auf Chunky Screens
     für Icons mit 64 oder mehr Farben und nur bei WB v44+
     durch Nutzung der CGX WritePixelArray() Funktion und
     dem LUT8 Format ohne C2P Konvertierung oder Masken.
     Es betrifft nur unselektierte Icons, keine DefIcons.

     IconControlA() unterstützt nun die GetARGBImageData1
     und GetARGBImageData2 Tags der Aros API und die Tags
     GetImageData1/2 mit SetImageDataFormat=2 der OS4 API,
     um TrueColor-Bilder mit Alphakanal zu extrahieren.

Library Versionen

Contents | < Browse | Browse >

     Die 68000 Version verwendet immer die palettenbasierte
     Farbzuweisung für alle NewIcons, ColorIcons, OS4 und
     PNG Icons. Sie hat keine Unterstützung für das direkte
     Zeichnen auf Grafikkarten und auch keine Optimierung
     oder spezielle Behandlung für Programme, die erst auf
     einem System mit 68020+ CPU installiert werden können.

     Die 68000 und 68020 Versionen zeigen OS4 und PNG Icons
     immer nach einer Farbreduktion in das OS 3.5 Format mit
     maximal 255 Farben und mit einfacher Transparenzmaske,
     auch auf Hi/TrueColor Bildschirmen. Beim Speichern der
     konvertierten Icons im OS 3.5 Format werden sie kleiner
     und können danach schneller geladen werden als zuvor.

     OS 3.2 akzeptiert v46 nicht mehr, aber TC020 geht noch.

     Die 68020 Version ist wahrscheinlich die beste Wahl für
     langsame Amigas und sie hat bereits Unterstützung für
     direktes Zeichnen auf Grafikkarten. Auf Hi/TrueColor
     Bildschirmen zeigt sie alle ColorIcons perfekt an, nur
     OS4 und PNG Icons in etwas schlechterer Qualität, aber
     mit weniger Speicher als TC020. Nach dem Speichern von
     TrueColor Icons im OS 3.5 Format können sie dann viel
     schneller geladen werden als die originalen Icons.

     Die TC020 Version kann die OS4 und PNG Icons in bester
     TrueColor Qualität und dank Alphakanalüberblendung mit
     weichen Rändern auf Grafikkarten darstellen. Dies kann
     sehr schnell und ohne eine zeitraubende Farbreduktion
     geschehen, benötigt aber mehr Speicher, um zusätzlich
     die komprimierten ARGB Bilder zu halten. Das Speichern
     und Kopieren der Icons erfolgt in ihrem ursprünglichen
     Format. TC020 besitzt zusätzliche ARGB Puffer für ein
     schnelleres Anzeigen. Außerdem unterstützt TC020 8-Bit
     und native Bildschirme durch eine Farbreduktion in der
     gleichen Weise wie die 68020 Version.

     PNG Icons können in das OS4 Format konvertiert werden,
     was sie etwa 15% größer macht, aber 30% schneller lädt.
     Wer aus irgendeinem Grund ColorIcons speichern möchte,
     kann immer noch den Befehl ConvertTrueColor verwenden,
     bevor sie anzeigt werden. Dies wirkt wie ein Downgrade
     zum 68020 Modus. PreserveTrueColor schaltet zurück in
     den TC020 Modus. Die v51 Libraries können die Vorschau-
     bilder-Icons von Eastern auch in TrueColor anzeigen.

     Im Bonus Ordner findet man einige spezielle Versionen:

     Eine experimentelle FastWB Version versucht das Ziehen
     und Ablegen von Icons auf der WB v44-v45 schneller zu
     machen und die extrem vielen unnötigen Refreshes in den
     Fenstern so weit wie möglich zu ignorieren. Dies ist
     keine 100 % perfekte Lösung, denn es kann immer noch
     vorkommen, dass einige Teile des Fensters, in dem man
     die Icons auswählt, nach dem Ziehen nicht aktualisiert
     werden, aber das ist kein großes Problem, denn man kann
     die Fensterinhalte immer noch im WB-Menü aktualisieren.
     Mein Fix versucht bereits, Fensterwechsel, Scrollen und
     Größenänderung zu berücksichtigen und hat außerdem ein
     1 Sekunden Timeout nach der letzten Icon Bewegung, um
     eine spätere grafische Beschädigung zu vermeiden, etwa
     durch plötzlich sich über dem aktiven Fenster öffnende
     Menüs oder Requester. Einfach mal testen und eventuelle
     Probleme melden oder das flüssigere Handling geniessen.
     Zusammen mit HoldTCbuffer1 ergibt es optimale Leistung.

     Die Aros 68k Version ist ziemlich identisch mit TC020,
     hat aber zusätzlich noch Unterstützung für Wanderer, um
     mittels Alphakanal Daten den Hintergrund transparent zu
     machen. Diese Funktion muss in den Voreinstellungen für
     Wanderer aktiviert werden. Es ist kein v51, denn bisher
     funktioniert Eastern noch nicht auf Aros 68k, aber man
     kann DefIcons v44+ von Stephan Rupprecht nach WBstartup
     kopieren und zusätzlich ENVARC:deficons.prefs kopieren.

     Die LD020 Version verwendet eine ältere zeilenbasierte
     Routine zum direkten Zeichen, die manchmal immer noch
     schneller ist, um die RGB Farben von ColorIcons direkt
     auf einem Grafikkarten RTG Bildschirm darzustellen.

     Die HB020 Version zeigt ein zweites halbhelles Bild bei
     TrueColor Icons mit nur einem Bild, keinen Glow-Effekt.

     Die 68020-basierte Version "Smurf" vermeidet es, auf
     den Farbstift 0 zu mappen, damit bei Verwendung eines
     CopperDemons keine Farbverläufe in Icons durchscheinen.
     "Smurf" hat keinen OS 3.2 Support, Datatype Erkennung,
     noch Optionen für IconUp/DownScaling oder Graustufen.

     Die HAM6 und HAM8 Versionen basieren auf TC020, können
     aber NewIcons, ColorIcons, OS4 und PNG Icons nativ auf
     dem AGA Chipset mit viel mehr verschiedenen HAM-Farben
     anzeigen. Das macht auf OCS/ECS wenig Sinn. Leider ist
     der Amiga zu langsam, um HAM WBs tatsächlich zu nutzen.

Letzte Änderungen

Contents | < Browse | Browse >

     Build #592 (2024/12/31):

     Bei planaren Icons mit nur einem Bild und aktiviertem
     "Backfill" Modus wird die Transparenzmaske nun wieder
     mit Flood() nur von Rand-Pixeln mit Farbe 0 erstellt.
     Alle anderen Pixel mit Farbe 0 bleiben jetzt grau.

     #592: Ein unkritischer Fehler in #591 wurde behoben,
     wo der Open-Count der CGX-Library bei jedem Open der
     IconLib erhöht wurde, da Tests alte Offsets prüften.

     Der MakePlanarMask Code wurde optimiert und braucht
     nun keine ReadPixel()-Calls mehr und nur ein Flood(),
     um von einem temporären Rand alle transparenten Pixel
     zu erreichen. Der Code ist kürzer und 8-9% schneller.
     Aktuelle 68000 und 68020 Libraries sind jetzt dabei.

     Leider wird WB 3.0/3.1 niemals Blitter-Masken nutzen.

     Es gibt noch eine weitere neue Version "BWswap", bei
     der mittels "BWswappingOnOff" die Farbstifte 1 und 2
     vertauscht werden können, um in einem Dark Theme die
     Farben Schwarz und Weiß zwangsweise zu wechseln, denn
     bei einigen Programmen können die Farben nicht vom
     Anwender konfiguriert werden, wie in den Preferences
     für Palette und Fonts mit entsprechnden Zuweisungen.
     Sagt mir eure Meinung, ob ich dies integrieren soll?

Bezugsquellen

Contents | < Browse | Browse >

     Das komplette icon.library Paket findet man unter:
     http://aminet.net/package/util/libs/IconLib_46.4

     Updates, Bugfixes, Testversionen und IconDemoADFs:
     http://eab.abime.net/showthread.php?t=64079

     Weitere nützliche Programme im Aminet sind:
     http://aminet.net/package/gfx/misc/pngcrush-m68k
     http://aminet.net/package/util/app/dropview
     http://aminet.net/package/util/boot/FBlit
     http://aminet.net/package/util/boot/LoadModule
     http://aminet.net/package/util/boot/RemAPollo
     http://aminet.net/package/util/libs/zlib-library
     http://aminet.net/package/util/misc/ReportPlus
     http://aminet.net/package/util/wb/AutoUpdateWB
     http://aminet.net/package/util/wb/CopyIcon44
     http://aminet.net/package/util/wb/DefIcons44
     http://aminet.net/package/util/wb/Eastern
     http://aminet.net/package/util/wb/FullPalette22
     http://aminet.net/package/util/wb/image2icon
     http://aminet.net/package/util/wb/i2iGUI-V2
     http://aminet.net/package/util/wb/KDEView
     http://aminet.net/package/util/wb/MUIScrMode1_5
     http://aminet.net/package/util/wb/NewIcons46
     http://aminet.net/package/util/wb/ProcessIcon
     http://aminet.net/package/util/wb/SwazInfo18b

     Monitortreiber für hohe Auflösungen (für HAM6/8):
     http://aminet.net/package/driver/moni/HighGFXnmore

     Sehr nützlich für Icons ist auch ImageConverter:
     https://sourceforge.net/p/amega1/code/HEAD/tree/Sources/Tools/ImageConverter

     Icon Pakete:
     http://aminet.net/pix/gicon
     http://aminet.net/pix/icon
     http://aminet.net/pix/mwb
     http://aminet.net/pix/nicon
     http://aminet.net/pix/picon
     http://www.masonicons.de
     http://www.five-star.com/kens_icons/icons.htm
     http://www.amiga-look.org/category/glowicons
     http://www.intuitionbase.com/customisation.php?category=icons
     http://os4depot.net/index.php?function=browse&cat=graphics/icon

     Icon Strukturen:
     http://krashan.ppa.pl/articles/amigaicons
     http://www.evillabs.net/wiki/index.php/Amiga_Icon_Formats

Installation

Contents | < Browse | Browse >

     Die Installation hängt von vielen Dingen ab: CPU, ROM,
     OS und WB Version, Speicher, Grafik, Leistung, Patches.

     Bei 68020+ Systemen mit einer workbench.library v44+
     reicht meistens schon 'copy libs/icon.library to LIBS:'.

     Als libs/icon.library wird jetzt die v51 TC020 Version
     vorgegeben, die auf ALLEN Systemen mit 68020+ benutzt
     werden kann. Nein, man braucht dafür keine Grafikkarte,
     obwohl sie volle Unterstützung für TrueColor Icons und
     Bildschirme in bester Qualität bietet. Natürlich kann
     man sie auch auf allen nativen Amiga Screens verwenden
     und benötigt dazu trotzdem keinen P96 oder CGX Treiber.

     Als TC020-Alternative gibt es noch die FastWB Version,
     die viele redundante Refreshes von WB v44/45 ignoriert.

     Immer die Erweiterung entfernen und P_RW_D Flags setzen.

     Für lange Dateinamen die Workbench Preferences anpassen.

     OS 3.2 benötigt mindestens eine icon.library v47, daher
     läßt sich nur noch v47 oder v51 auf OS 3.2 installieren,
     aber man kann immer noch ConvertTrueColor aufrufen, wenn
     man lieber schnellere 3.5 ColorIcons erstellen möchte.
     Optimal ist TC020 = libs/icon.library, HB020 bei Bedarf.
     Die 68020 Version ist zu alt und wird nicht akzeptiert.
     FastWB wird nicht benötigt, WB v47 ist schon schneller.

     Die meisten 68000 Amigas sind viel zu langsam, um einen
     Vorteil bei Verwendung der 68000/icon.library zu haben,
     man kann nicht einmal Icons ins FastMem laden. P96, CGX
     und FBlit benötigen 68020 CPUs. Meine 68000 Version ist
     für viel schnellere Systeme gedacht, z.B. den Minimig.

     Bei OS 3.0/3.1 Systemen ist es erforderlich, die alte
     Rom icon.library aus der Liste der residenten Module zu
     entfernen, bevor die neue icon.library aus Libs: geladen
     werden kann. Ich würde empfehlen, RemLib von Thomas Rapp
     oder SetPatch v44 zu verwenden, da diese keine Reboots
     verursachen. In gleicher Weise kann man auch die alte
     Workbench ersetzen. Eine neue WB v44+ hat viele Vorteile
     für alte 3.1 Systeme. SetPatch v44 aktualisiert beide
     ohne zusätzliche Tools. Ansonsten vor SetPatch einfügen:

     If EXISTS Libs:icon.library
        RemLib >NIL: icon.library
        If EXISTS Libs:workbench.library
           RemLib >NIL: workbench.library
        EndIf
     EndIf

     Alternativ ist es möglich, beide Libs resident zu laden,
     aber diese Methoden erfordern einen Reboot des Systems.
     Dies kann mittels LoadResident, LoadModule oder BlizKick
     erreicht werden. - Oder man kann sein eigenes Rom bauen.
     Zum Beispiel diese Zeilen vor SetPatch (<v44) einfügen:

     Version >NIL: icon.library 46
     If WARN
        If EXISTS LIBS:workbench.library
           LoadResident >NIL: LIBS:workbench.library
        EndIf
     LoadResident >NIL: LIBS:icon.library REBOOT
     EndIf

     OS 3.0/3.1 hat bei der workbench.library v39-40 nur die
     Einschränkung, für palettenbasierte Icons nach einem
     Wechsel des Screenmodes die Farben nie zu korrigieren.
     Dafür kann jetzt mein RefreshIcons Tool benutzt werden.

     Man sollte auch SwazInfo installieren, um IconInfo zu
     ersetzen. Wenn der Installer fehlschlägt, dann manuell.

     Der NewIcons Patch erlaubt bei 3.1 einen transparenten
     Hintergrund für die Icon Bilder und liefert DefIcons !

     Ich habe einige Demo-Disketten Images für OS 3.0/3.1
     erstellt, um zu zeigen, wie man das installieren kann:
     IconDemoADF http://eab.abime.net/showthread.php?t=64079

     Die Envarc:FBlit.cfg für WB 3.1 und auch für WB 3.1.4+
     werden mitgeliefert. Es hängt von der workbench.library
     Version (v39-40 oder v44+) ab, welche Konfiguration für
     FBlit benötigt wird. FastMem wird automatisch verwendet,
     sofern FBlit beim Booten erkannt wurde.

     FBlit nie zusammen mit P96 oder CGX Treibern verwenden!

     Auf Systemen mit P96 oder CGX sollte man FastMem für
     Icon-Bilder aktivieren. Bei OS 3.9 Prefs/Workbench auf
     "anderer Speicher" setzen oder bei 3.5 mit dem Befehl
     "WBCtrl IMT=ICONFAST" vor LoadWB aktivieren, für WB 3.1
     kann man auch meinen Befehl "IconsToFastMem" verwenden.
     OS 3.1.4-3.2 aktiviert das FastMem automatisch für RTG.

     Eine alternative CPU Version der icon.library kann in
     einem Unterverzeichnis von LIBS: installiert werden für
     den Fall, dass noch keine Library resident geladen war.
     Wenn LIBS:icon.library die 68000 Version ist, kann man
     eine 020-er Version als LIBS:68020/icon.library ablegen.
     Oder wenn LIBS:icon.library für den für den 68020+ ist,
     kann man eine Alternative als LIBS:68000/icon.library
     hinzufügen. Die richtige Version wird dann automatisch
     geladen. Dies funktioniert mit SetPatch v44 oder RemLib
     von Thomas Rapp, aber nicht mit LoadResident, BlizKick,
     LoadModule oder bei einer residenten icon.library.

     .

Konfiguration

Contents | < Browse | Browse >

     Optionale Befehle, die man vor LoadWB aufgerufen kann:
     ______________________________________________________

     AllFramesOn1/2/3 und AllFramesOff sind für Systeme mit
     WB v44+ auf OS v39-44. Die Zahl am Ende (1-3) bestimmt
     die Rahmengröße. Einige ColorIcons werden jedoch keine
     Rahmen erhalten, wenn sie ein internes Frameless-Flag
     gesetzt haben, was nur mit dem OS 3.9 IconEdit und dem
     Icon-Modul von Report+ geändert werden kann. Bei WB 3.1
     kann man den NewIcons Patch verwenden, um transparente
     Rahmen zu aktivieren. Bei der WB v45+ befinden sich die
     Rahmeneinstellungen schon in den Workbench Preferences.

     PlanarFrames1/2/3 kann auf WB v44+ verwendet werden, um
     die Rahmen ausschließlich für die alten 4-color und MWB
     Icons zu aktivieren, aber nie für True/ColorIcons oder
     NewIcons. Das Ändern der Rahmen in Prefs/Workbench ist
     weiterhin möglich. Nach dem Aufruf von PlanarFrames1-3
     bleiben True/ColorIcons und NewIcons *immer* rahmenlos.

     Eine schnellere Farbzuweisung kann optional aktiviert
     werden, indem man die Icon Qualität in Prefs/Workbench
     auf schlecht setzt. Bei WB v39-44 ist das auch mit dem
     Befehl FastColors möglich. Dann dienen 512 RGB Farben
     eines Farbspeicher-Würfels zur direkten Farbberechnung.
     Diese Option ist auf langsameren Amigas zu empfehlen.
     Bei verriegelten Farben ändert sich die Qualität nicht.

     IconsToFastMem ist für Amigas mit Grafikkarten gedacht,
     um die Icons schneller zu laden und ChipMem zu sparen,
     wenn man kein anderes Programm wie Prefs/Workbench oder
     WBCtrl dafür nutzen kann. Es wird manchmal für WB 3.1
     benötigt, aber nicht für FBlit. Seit OS 3.1.4-3.2 wird
     der Speichertyp vollkommen automatisch eingestellt.

     IconsTo24BitDmaMem kann verwendet werden, um mehr vom
     schnelleren 32-Bit FastMem für Anwendungen zu behalten.
     Mit dieser Option wird die Icon Anzeige aber langsamer.

     IconGhostingOff schaltet die Transparenz von DefIcons
     global aus, falls jemand Angst vor Geisterbildern hat.

     GrayscaleOnOff kann verwendet werden, um Icons nur in
     Grautönen statt in Farben anzuzeigen. Man kann es dann
     in Prefs/Workbench aktivieren, indem man die Qualität
     dort auf schlecht setzt. Die WB v39-44 benötigt beides:
     die Befehle GrayscaleOnOff und FastColors vor LoadWB.
     Diese Option wird nur in der 68020 Version unterstützt.

     OutlineIconText und ShadowIconText optimieren den Stil
     des Icon Label-Textes. Zur Farbwahl dient Prefs/Fonts,
     wo man eine Textfarbe und eine Hintergrundfarbe wählt,
     aber danach in den "Nur Text" Modus zurück schaltet,
     bevor man seine Einstellungen abspeichert. Bei OS 3.2
     erscheinen diese Label-Textmodi bereits in Prefs/Fonts.

     Nach dem Aktivieren von Outline- oder Shadowtext oder
     Graustufen zur Laufzeit bitte mit WB-Reset auffrischen.

     FileType ist mein Testprogramm für die Identifikation
     des Dateityps im OS 3.2 DefIcons Tool. Für Experimente.

     KillPlanarImages und KeepPlanarImages ändern die Weise,
     wie planare Bilder in OS 3.5 und OS4 Icons zu behandeln
     sind. Ohne eine Option werden planare Bilder mit mehr
     als 8 Farben oder einer Breite von weniger als 8 Pixeln
     durch interne 4-color Icons ersetzt. KillPlanarImages
     ersetzt alles. KeepPlanarImages verschont Falschfarben.
     Mit KillPlanarImages kann man die Dateigröße reduzieren
     und Speicherverschwendung für die oft nutzlosen Bilder
     vermeiden. Falls die Icons ins ChipMem geladen werden,
     ersetzt nur ein schwarzer Punkt die planaren Bilder. Um
     es zu testen, ColorIcons in Prefs/Workbench abschalten.

     Reduce8PlanesTo3 kann benutzt werden, um falschfarbige
     MWB Icons mit 8 Bitplanes zur Verwendung der Farben 0-7
     und 3 Bitplanes zu konvertieren. Es ist als Alternative
     zu den vorherigen Optionen gedacht.

     FakeIconSizeForAfA kompensiert das Problem, dass AfA_OS
     mit unterschiedlichen Größen der internen Ersatzbilder
     im Vergleich zu den größeren OS 3.5 oder OS4 Icons hat.
     Ein Fix nur für AfA, der auf WB 3.1 Platz verschwendet.

     ConvertTrueColor kann bei den TrueColor Versionen dafür
     verwendet werden, um OS4 und PNG Icons trotzdem in das
     kleinere und schnellere OS 3.5 Format mit 255 Farben zu
     konvertieren. Natürlich muss man die Icons abspeichern,
     damit es wirkt. PreserveTrueColor schaltet dann zurück.

     ConvertPNGtoOS4 macht PNG Icons etwa 15 % größer, aber
     das Laden der OS4 Icons geht etwa 30 % schneller. Dafür
     muss aber die zlib.library v3.2 schon installiert sein.
     Nur TrueColor Versionen unterstützen die Konvertierung.

     HoldTCbuffer1 macht das Fenster-Resizing, Scrollen und
     das langsame Icon-Ziehen bei TrueColor etwas flüssiger,
     aber bei höherem Speicherverbrauch. Der gesamte Puffer
     wird dann erst beim Schließen des Fensters freigegeben.
     Dies funktioniert nur mit TrueColor Versionen auf RTG.

     Neue WB 3.1 Optionen "DropNewIcons", "KeepNewIcons"
     und "DropColorIcons", "KeepColorIcons" hinzugefügt.

     Diese globalen Optionen arbeiten ähnlich wie die v45+
     Schalter "Keine NewIcons" und "Keine Farbpiktogramme"
     in den Workbench Preferences. Ich habe sie für einen
     Anwender geschrieben, der die NewIcon- und ColorIcon-
     Bilder loswerden wollte. Nur unter WB 3.0/3.1 werden
     diese Optionen beim Abspeichern die Bilder entfernen.

     DropNewIcons entfernt die Bilder aus den Tooltypes,
     sobald man die angzeigten planaren Icons abspeichert.
     Dies geht durch Selektieren von (mehreren) Icons im
     Fenster und dem Fixieren, solange die Positionen noch
     nicht verändert wurden; oder mit SwazInfo speichern.

     DropColorIcons kann alle chunky und ARGB Bilder von
     den Icons (auch NewIcons) beim Abspeichern entfernen.
     Nur die alten planaren und MWB Bilder bleiben übrig.

     DOnoColorMapping war für DOpus5 TrueColor Bildschirme
     und funktionierte nur zusammen mit der Icon Einstellung
     "Use Custom Drag Routines", um langsame Farbzuweisungen
     zu vermeiden, höhere Geschwindigkeit und eine bessere
     Qualität zu erzielen. Für optimale Leistung sollte man
     zusätzlich HoldTCbuffer1 verwenden. Es wird empfohlen,
     meine gepatchte Version DOpus 5.83 zu installieren, in
     der ein großes Speicherleck im Dragging behoben wurde.

     "DOnoColorMapping" ist bei den TrueColor Versionen nun
     immer aktiviert, so dass die Option mit "Tricky Drag°n"
     jetzt überflüssig wird, bis auf die alte 68020 Version.

     IconUpScaling und IconDownScaling, nur für die Version
     68020 verfügbar, kann man als Shell-Befehl zur Laufzeit
     verwenden, um die Icon-Bilder auf 150 % Breite und Höhe
     zu vergrößern oder auf 66 % zu verkleinern. Dies geht
     bei allen PNG, OS 3.5-4 Icons, aber nicht mit NewIcons,
     alten 4-color und MWB Icons. NewIcons vorher umwandeln.
     Ein 2. Aufruf der Befehle schaltet die Skalierung aus.
     Es mag etwas verwirrend sein, wenn man skalierte Icons
     abspeichert, denn sie werden dadurch aktualisiert und
     erscheinen sofort als doppelt skalierte Icons! Einfach
     die Skalierung ausschalten, nachdem der Schreibvorgang
     abgeschlossen wurde und dann das Fenster aktualisieren.

     InvertGhostingMask ist ein optionaler Fix, den man nur
     installieren sollte, wenn die DefIcons beim Verschieben
     unsichtbar werden. Niemals ohne diesen Fehler benutzen!

Drittanbieter Tools

Contents | < Browse | Browse >

     Bitte immer zuerst die originale Dokumentation lesen!
     Für neue und vollständige Pakete die Downloads nutzen.

     AutoUpdateWB von Elena Novaretti, Massimo Tantignone.
     Mit diesem kleinen Patch kann die Workbench den Inhalt
     eines Fensters automatisch aktualisieren, wenn Dateien
     in dessen zugehörigem Verzeichnis erstellt, umbenannt
     oder gelöscht werden, außer durch die Workbench selbst.
     Version v37.0 (29.3.2012) ist mein Patch für alte WBs.

     CopyIcon von Stephan Rupprecht kann verwendet werden,
     um die Icon-Bilder von einem Icon auf ein anderes zu
     kopieren. Dabei überschreibt es keine der bestehenden
     Einstellungen oder Tooltypes. Es wurde so modifiziert,
     dass es auch noch auf 68000 und WB 3.0+ funktioniert.

     FBlit von Stephen Brookes ermöglicht es, Bilder in das
     FastMem zu laden und Blitteraufrufe durch schnellere
     CPU-Routinen zu ersetzen. Das senkt den ChipMem-Bedarf.
     Es liegen zwei FBlit.cfg Dateien bei, eine für alte
     workbench.libraries v39/40 und die andere für WB v44+.
     Der Nutzer ist für die korrekte Installation von FBlit,
     fblit.library, FBlitGUI und FBlit.cfg verantwortlich.
     Es sollte niemals gleichzeitig mit P96 oder CGX laufen.

     FullPalette und FPPrefs von Massimo Tantignone können
     verwendet werden, um Farben der Bildschirm-Palette zu
     setzen und zu sperren. Auf einigen Systemen kann es
     nützlich sein, korrekte MWB Farben oder eine Palette
     mit festen Farbeinstellungen zu verwenden. Es hat auch
     einen optionalen Fix für DOpus5-Fehler bei ReleasePen.

     2 modifizierte Varianten der 16-farbigen Palette von
     Rebel sind vorhanden und können als FullPalette.prefs
     nach Envarc:Sys kopiert und durch Aufruf von FPPrefs
     unter IPrefs verwendet werden. Dies kann eine deutlich
     ausgewogenere Farbverteilung bei Bildern ermöglichen.

     LoadModule von Thomas Richter kann diese Library oder
     andere Module wie die workbench.library resident laden
     und alte Rom-Versionen ersetzen (siehe Dokumentation).
     Für einige Optionen muss das "P"-Bit bei den Libraries
     gesetzt werden. Manche WBs v44-45 sind nicht reset-fest
     und benötigen möglicherweise die LoadModule Optionen
     IGNOREVERIFY und NOMEMFKICK, um Abbrüche zu vermeiden.
     Auf Aros 68k ab 2020 scheint LM nicht zu funktionieren.

     LoadResident von Mikolaj Calusinski ist ein ähnliches
     Tool, um Module resident zu laden. Siehe Installation.
     Auf Aros 68k hat LoadResident bisher nie funktioniert.

     RemLib von Thomas Rapp kann Libraries aus der Liste der
     residenten Module entfernen, ohne neue Module resident
     zu laden und erfordert deshalb keinen Neustart! Nachdem
     sichergestellt ist, dass eine neue Library nach Libs:
     kopiert wurde, kann man RemLib vor SetPatch aufrufen,
     wie bereits im Beispiel auf der Installationsseite. Es
     funktioniert auch mit Aros 68k, aber nur ohne eine MMU.

     OpenWin.rexx von DaxB ist ein Benchmark Skript, das die
     Zeit misst, um ein Fenster mit vielen Icons zu öffnen.
     Es ermöglicht, die Lade-Geschwindigkeit zu vergleichen.
     Mittels Arexx funktioniert es bei WB v44+ und DOpus5.

     Für einen Bug in Startmenu 1.30 von Martin R. Elsner
     (MRE) wurde ein Workaround hinzugefügt. Ohne irgend-
     einen verständlichen Grund ändert Startmenu mittels
     IconControlA() und SetWidth die Breite der internen
     Chunky-Bilder auf 10. Diese Änderung durch eine Task
     "Startmenu" wird nun ignoriert. Das geht aber nicht
     mit dem Project-Icon in WBStartup. Dafür kopiert man
     MRE:Executables/Startmenu plus Icon nach WBStartup.

HAM + Bonusprogramme

Contents | < Browse | Browse >

     Die HAM6 und HAM8 Libs sind ein technisches Experiment.

     OS4, PNG und auch palettenbasierte Icons werden auf HAM
     Bildschirmen mit bis zu 4096 oder 256k Farben sehr viel
     schöner dargestellt und auch die Eastern Icons sehen in
     HAM8 wesentlich besser aus als mit normalen Screenmodes.
     Leider sind HAM WBs auf den Amiga Chipsätzen zu langsam.

     Kopiere die icon.library aus dem HAM6 oder HAM8 Ordner
     nach LIBS: und FullPalette.prefs nach ENVARC:Sys, um die
     benötigten 16/64 Basisfarben zu erhalten und dann sollte
     man FPPrefs in der startup-sequence nach IPrefs starten.
     Die HAM Option gibt es nur in MUIScreenmode Preferences.

     Als Alternative, wenn man letzteres nicht installieren
     möchte, kann man meine HAM Screenmode Dateien verwenden,
     falls die zugehörigen Monitortreiber installiert wurden.
     Die Tooltypes ACTION=USE kann man in ACTION=SAVE ändern.

     Bitte niemals die Basisfarben 0-15 bzw. 0-63 der Palette
     verändern! Es gibt auch einige Dateien mit diesen Farben
     zum Erstellen dazu passender Workbenchhintergrundbilder.
     Es ist unmöglich, die MWB Farben für die letzten 4 Pens
     bei HAM Screens zu nutzen. Dann hilft Reduce8PlanesTo3.

     Die HAM Versionen bieten TrueColor Unterstützung wie bei
     TC020, aber das verzögerte zweite Bild und das Ghosting
     sind deaktiviert. DOpus5 hat keine eigene Unterstützung
     für HAM Screens, aber es geht mit "Workbench verwenden".

     DirectoryOpus 5.82 und DOpus5.83

     "Tricky Drag°n" funktioniert jetzt auch mit DOpus 5.x
     auf P96 RTG Screens ohne die "speziellen Ziehroutinen",
     sogar mit DOpus 5.9x, aber nicht unter Aros oder CGX4.
     Wer DOpus5 eigenständig mittels LoadDB von 3.2.x starten
     will, sollte dazu IconsToFastMem nach IPrefs aufrufen.
     Der schnellste DOpus5 Screenmode ist "Workbench nutzen".

     "DOnoColorMapping" ist bei den TrueColor Versionen nun
     immer aktiviert, so dass die Option überflüssig wird.

     Nur die 68020 Version braucht noch "DOnoColorMapping":
     Ein völlig neuer Ansatz macht das Laden der DOPus5 Icons
     viel schneller. Statt die Farbzuweisungen zu verzögern,
     passiert es auf Hi/TrueColor-Bildschirmen garnicht mehr,
     wenn man es mit der Option DOnoColorMapping deaktiviert,
     aber man muss dazu "Spezielle Ziehroutinen" einschalten.
     Ich habe auch einen Fix für ein großes Speicherleck auf
     P96 im DOpus Code erstellt und eine bessere Transparenz-
     Maskierung für die Icons hinzugefügt, wenn die Optionen
     aktiviert sind. Sie bewirken ein schnelleres Laden der
     Icons ohne langsamere planare Bilder. Für die Versionen
     TC020, FastWB und Aros wird auch die noch HoldTCbuffer1
     empfohlen für eine optimale Geschwindigkeit und weiche
     Icon-Ränder auf Hi/TrueColor Bildschirmen.

     Im Bonus Ordner befindet sich das fehlerbereinigte DOpus
     5.83. Nach dem Benennen kann man DirectoryOpus ersetzen,
     wenn es durch LoadWB geladen wird. Der DOpus v5.82 Patch
     von AfA_OS (Bernd Roesch) für Eastern und DefIcons läßt
     sich immer noch auf meinem gefixten DOpus5.83 ausführen,
     weil es nur editiert aber keine neue C-Kompilierung ist.

     Der DOpus5 Bug im Custom-Dragging war die Verwendung von
     "Width" in der VSprite Struktur von AddBob() anstatt von
     "Words Per Row" und auch ohne späteres RemBob(). Der Fix
     verwendet jetzt nur noch AddVSprite() und RemVSprite().

     Die Aros 68k Version ist ziemlich identisch mit TC020,
     aber sie hat zusätzlich Unterstützung für Wanderer, der
     den Alphakanal verwendet, um den Hintergrund transparent
     zu machen. Diese Funktion muss in den Einstellungen für
     Wanderer aktiviert werden. Es ist kein v51, denn Eastern
     funktioniert noch nicht auf Aros, aber man kann DefIcons
     v44+ von Stephan Rupprecht in WBstartup installieren und
     sein deficons.prefs von OS 3.9 nach ENVARC: kopieren. In
     der startup-sequence muss man das Kopieren von deficons
     nach ENV: wieder zulassen und vor "PAT" auskommentieren:
     Copy ENVARC: ENV: ALL NOPRO NOREQ ; PAT "~(def_#?.info)"
     Als andere Möglichkeit: "Assign >NIL: ENV: ENVARC: ADD".
     Die Aros icon.library muss durch RemLib von Thomas Rapp
     vor SetPatch entfernt werden. Andere Tools tun es nicht.
     Die Aros 68k Version belegt grundsätzlich immer FastMem.

     Eine experimentelle FastWB Version versucht, schnelleres
     oder flüssigeres Icon Ziehen bei Workbench 3.1.4/3.5/3.9
     für langsamere Amigas zu ermöglichen. Es ist keine 100 %
     perfekte Lösung, denn es kann immer noch vorkommen, dass
     einige Teile des Fensters, in denen man Icons zum Ziehen
     ausgewählt hat, nach dem Ablegen nicht mehr aktualisiert
     werden, aber das ist kein großes Problem, da man dieses
     Fenster immer noch über das WB-Menü aktualisieren kann.
     Der WBFix beachtet bereits Fensterwechsel, Scrollen und
     Änderungen der Fenstergröße und hat auch ein Timeout von
     einer Sekunde nach der letzten Iconbewegung, um spätere
     Grafikschäden durch sich plötzlich über diesem aktiven
     Fenster öffnende Menüs oder Requester zu vermeiden. Dies
     bringt mehr Geschwindigkeit zusammen mit HoldTCbuffer1.
     Die optimierte WB 3.2 braucht möglicherweise keinen Fix.

     Als Bonus sind 2 skriptbasierte IconMixer enthalten, die
     mit Hilfe von ProcessIcon die (True)ColorIcons mit den
     alten planaren oder MWB Bildern kombinieren können. Die
     gemischten Icons enthalten beide Bildsätze. Je ein Skript
     behält die die MWB Icon-Einstellungen, das andere behält
     die GlowIcon Tooltypes. Meine Option "Reduce8PlanesTo3"
     könnte helfen, um 8-farbige MWB Bilder zu erzeugen ohne
     Platz zu verschwenden. Da PNG Icons keine planaren Bilder
     speichern können, müssen sie vorher mit "ConvertPNGtoOS4"
     konvertiert werden. Die Optionen "DropPlanarImages" oder
     "DropPlanar" sollte man in Werkzeugen wie RAWBInfo oder
     CopyIcon deaktivieren. Die gemischten Icons werden unter
     AfA_OS leider beschädigt.

     Mit dem neuen Skript ConvertToPngIcons im Bonusordner
     kann man alle Amiga Icons in das PNG Format umwandeln
     und optional skalieren mit Hilfe von ImageConverter.
     Das Skript kann direkt ausgeführt werden oder mittels
     DropView App-Icon oder man startet es vom Tool-Menü.
     Die Option "CRUSH" wurde zu dem Skript ConvertToPngIcon
     hinzugefügt, um mittels PngCrush eine besser optimierte
     PNG Komprimerung durch Probieren zahlreicher Strategien
     mit unterschiedlichen Filtern zu ermöglichen.

     LD020 verwendet älteres zeilenweises Zeichnen auf RTG,
     was manchmal noch schneller läuft als der 68020 Code.

     Die HB020 Version zeigt ein zweites halbhelles Bild bei
     TrueColor Icons mit nur einem Bild, keinen Glow-Effekt.

     Die Patches für workbench.library 45.127 und 45.131 auf
     45.132 enthalten einige Fehlerkorrekturen (siehe lha).

Kontakt und Berichte

Contents | < Browse | Browse >

     Wenn jemand Probleme mit der icon.library hat, neue
     Features wünscht oder Verbesserungsvorschläge machen
     möchte, kann er mir eine E-Mail zusenden an:
                 <pkeunecke@alice-dsl.net>

     oder meine Threads bei A1k.org oder EAB benutzen:

     http://www.a1k.org/forum/index.php?threads/27403/
     http://eab.abime.net/showthread.php?t=64079

     Ich werde aber nie in anderen Foren, bei Facebook,
     Twitter, Reddit und sonstigen sozialen Medien oder
     in IRC Chats auftauchen bzw. Fragen beantworten.

     Erfahrungsberichte von Anwendern sind immer nützlich
     und willkommen, denn es ist manchmal sehr schwierig,
     nur durch Tests versteckte Fehler zu finden. Es kann
     Jahre dauern, bis ich zufällig ein Problem entdecke,
     wenn niemand mir einen Bug-Report zuschickt.

     Bitte eine Systembeschreibung mit Informationen zur
     ROM, OS und WB Version, CPU, Screenmode, FBlit, P96,
     CGX, zur startup-sequence und verwendeten Patches,
     Icon-Typ, Library Version und Screenshots beifügen.

     Vielen Dank an alle Amiga User, die bereits Fehler
     gemeldet oder mir ihre Vorschläge mitgeteilt haben!

Einschränkungen !!

Contents | < Browse | Browse >

     Die Verteilung oder die Installation der TrueColor

     Versionen dieser icon.library mit oder auf AmiKit X,

     AmiKit XE oder einer anderen Freeware Distribution

     für mehr als 10 Euro sind nicht erlaubt. Auch die

     Bündelung mit kommerziellen Produkten ist verboten!

     Dies gilt für alle Aros-, LD020 und v51 Versionen.

     Sie können aber weiterhin die neuen 68000 oder 68020

     Versionen oder andere Versionen von älteren Ausgaben

     bis hin zu Build #538 ohne Einschränkungen verwenden.

Rechte & Verteilung

Contents | < Browse

     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. :)

     Diese Einschränkungen zur Verteilung sind zu beachten!

     Copyright 2007-2025:

       Peter Keunecke