NewIcons 4 ßeta 12 ================== Overview -------- The main highlights of version 4 are going to be speed improvements, and a new 32-colors based standard palette. Most of the speed gain are available to those using the new high-end library, which is quite faster because the dithering code has been totaly removed from it. Still stuck with the same old C2P tho. Added a new "Font Outline" option, draws an outline or a shadow around the icon text. The "No Border" and "Transparency" switches are now separate. The prefs editor became more "intelligent", and is able to detect which features of the installed library are available, since not all libraries will support all features. As an example, only the high-end version will support the RTG Mode option. Icon dragging is now also transparent (read below, there's a known quirk about it). The library will now come in three flavours: Low-end, Middle-end, and High-end. Version | 68000 68020+ OS 2.04 OS3.x Dithering RTG Mode ---------+--------------------------------------------------------- Low-end | x x x x x Mid-end | x x x High-end | x x x In summary: Low-end: 68000 with Kick 2.04 must use this one. Mid-end: Those with at least a 68020 _AND_ Kick 3.0 High-End: Those with at least a 68020 _AND_ Kick 3.0, and with either AGA or a 24-bits card (so they don't need dithering, and might want to use RTG Mode) NI4 Beta 12 (23.3.97) ===================== Autodocs: --------- Cleaned up, fixed errors, and added an introduction briefly explaining how to use newicon.library. Newicons: --------- - The routine loading the font prefs would crash on one system. Now fixed, it should aso be more compatible with third party replacements for the Font editor (untested). - Minor speed optimizations in the transparency routines. InjectBrush: ------------ - Now accepts the new 32-colors palette without requiring the "FORCE" argument. DefIcons: --------- -Included the new brainfile. NI4 Beta 11 (9.3.97) ==================== includes: --------- - Did some changes to the library base flags. NIFLG_IS_DISABLED has been changed to $10000, and moved the private library flags to high word values ($x0000). So, the lower 16 bits are now for user settings flags, while higher 16 bits are for system (read-only) flags. Application (mostly prefs editor and WB replacement authors) programmers can mask out the private flags by OR'ing with NIFLG_PUBMASK if they need to write the user preferences to a file without writing the private library flags as well. These changes shouldn't affect anyone since most flags were new to V4. As for NIFLG_IS_DISABLED, I don't see any reason why anyone would have played with this flag (set when NewIcons is disabled through Exchange), but anyone did, a simple recompile with the new includes will fix things, since the new one kept the same name, and the old value is reserved. newicon.library --------------- - Recompiled to use the new system flags. convertprefs ------------ - Small tool that will convert V3 prefs to V4, mainly intended for the Installer script. Is it really required? If so, it's there. Only Took me a few minutes to write anyway. bench: ------ - Displays the number of ticks (50 ticks = 1 second) taken by the test. NOTE: This benchmark only tests the image decoding. So, any speedup done to the NewIcons exe won't show up there. Newicons: --------- - Some more minor optimizations: used CopyMemQuick(), and directly accessed the execbase.thistask when needed to check for the current task in the various noborder patches. - Would crash if you disabled it through Exchange and tried to click on an icon (new bug from Beta 10). - Transparent dragging is now configurable. NewIconsPrefs: -------------- - Properly masks out private library flags before saving prefs. - Transparent dragging is now configurable. NI4 Beta 10 (28.2.97) ===================== newicon.library: ---------------- - I optimized the HE version for the 68060. It didn't added any slowdown for 030, but _might_ speed up things for 060. - The colortable allocated by the HE library will no longer be twice longer as required (dithering support legacy I had forgotten to remove), resulting in a few bytes of RAM saved for every icon loaded in memory. - Moved prefs definition to libraries/newicon.h, making it publicly documented (for all those WB replacement authors out there) newicons: --------- - Clicking/dragging an icon will make it borderless too. Thanks to Christopher Naas for the example code. KNOWN BUG: some icons (mostly non-NewIcons) will have their right border slightly clipped while dragging. It's a harmless quirk, no known solution so far. - Number of available pens in the "About" requester was offset'ed by one. - Re-wrote the mask generation routine for Transparency mode, might speed it up a bit for Cgfx users, and fixed a potential bug. icons: ------ - The new 32-colors iconset is progressing well. The prefs/#?.info are almost done, as well as a few envarc:sys/#?.info and Utilities/#?.info ones. NI4 Beta 9 (30.12.96) ===================== NOTE: You MUST resave your preferences! The prefs file format has changed. V4 release will possibly have a prefs converter, that will be launched by the Installer script. newicon.library --------------- - I finaly got some basic information on pipelining. Did some manual rescheduling of the ASM code (in plain english, I avoided whenever possible to access the same address register twice in a row, by moving one of the previous operands between both of them whenever possible). Resulted in another minor speed up for 020 and up, but I'm really curious about the speedup on 040 and up. These are more affected by pipeline stalls than the 030. - I moved the prefs loading stuff into the library itself rather than the main exe, so if an application opens the library without having NewIcons running, the right prefs will be loaded at the same time. Application authors using newicon.library and distributing it with their application might want to also distribute the prefs editor along. This is the first time I write anything longer than a single line in C... After fumbling for 15 minutes with type casting, I understood even more why I liked so much E ;) NewIcons: --------- - Removed the prefs loading stuff (now in the library's init routine) - Added some information about pen usage in the Info requester. Not that they apply to overal pen usage for WB, not only NI's own usage. NI 4 Beta 8 (23.12.96) ====================== You must re-save your preferences. There won't be selectable thickness. I tried it, and the results were poor (first reason was lack of space for the text, so the OS would be clipping most of the outline if the outline was 2 pixels large). Newicons: --------- - Recompiled to use the new prefs format - Now retrieve the fgpen and bgpen from your WB preferences (through file notification of ENV:sys/font.prefs) NewiconsPrefs: -------------- - Removed the (no longer required) fgpen and bgpen gadgets - Use a Chooser now to select outline type: None, Outline, Shadow. NI 4 Beta 7 (22.12.96) ====================== newicons: --------- - Removed the SCALOS switch, no longer needed with the latest beta of Scalos. - Rewrote a lot of the No Border and Transparency patches, making them a bit faster, and no longer requiring playing with the Workbench's task name. Tell me if any new problem appears, especialy check for Enforcer hits. - Implemented Daniel Nyberg's OutlineFont, and also added a "Shadow" mode. To use, you must first install the new exe + library, and reboot. Then, go to your "Font" prefs editor, and edit your Icon Text font. Select "Text + Field", and select the outline color as the "Field color". Save your prefs. Then, start NI's prefs editor, enable "Outline Font", and select the same fgpen and bgpen chosen as "Text Color" and "Field Color" in the Font editor. Enable the "Shadow" checkbox if you only want to cast a shadow rather than a complete outline. Save prefs. Redraw WB. Eat warm. TODO: Selectable thickness (Daniel's code doesn't work there, it only made the outline larger, leaving a gap between the outline and the text. Should be pretty easy to do.) newiconsprefs ------------- - Added OutlineFont support. newicon.library --------------- - Recompiled to accomodate the extended library base required for OutlineFont. NI 4 Beta 6 (12.12.96) ====================== Bad news: no replacement C2P. The italian coder just decided he no longer had time to work on it. Why did he even bothered proposing to do it? Oh well. newicons: --------- - Added a new option to the commandline: "SCALOS". Use this switch when running NewIcons along with the "Scalos" Workbench replacement. NOTE: it's still uncertain if this new option is here to stay, or is only a temporary workaround. NI 4 Beta 5 (13.11.96) ====================== newicon.library: ---------------- - Recompiled with SAS/C 6.57, and with a few more optimizer options. Speed gain was very minimal here on my 030/40. - HE and ME have been compiled for 030. Please tell me if they still work fine on a 020 (they should). Utilities/#?: ------------- - Recompiled with SAS/C 6.57. DefIcons: --------- - Recompiled with SAS/C 6.57. - Replaced stricmp() calls with utility.library's Stricmp(). This should fix the problems reported by some users using a localized WB. NI 4 Beta 4 (11.11.96) ====================== We decided to skip 3.2, and hold on until 4 for somewhere in early '97. The reasons are: - New 32-colors based iconset (yet to be designed) - New stuff added to the library, at the request of some developpers. - An italian programmer is supposed to write me a new C2 routine. Last news I got a week ago: his spacebar broke, so he must find a replacement keyboard first... Are we victims of the Amiga Jinxx too? :/ If we see that NI4 takes too long to come out and there's no new C2P in sight, we might make a 3.2 release with the updated binaries. newicon.library: ---------------- Bumped version to V40, because of the addition of new library calls. Added a (requested) new library call: GetDefNewDiskObject(diskobject_type). Just like the icon.library GetDefDiskObject(obj_type), except that it returns a NewDiskObject, with proper tooltype decoding if a NewIcon imagery is present in the requested default icon. NI 3.2 Beta 3 ------------- newicon.library: ---------------- - Moved extendbyte() inline, another speedup. (Heck, does SAS/C's optimizer do ANYTHING? It's supposed to do such things automaticaly!) NewIcons: -------- - Was overwriting the library flags when loading prefs - fixed. NewIconsPrefs: -------------- - Now masks out the private librarybase flags when saving prefs. NI 3.2 Beta 2 (8.10.96) ======================= newicon.library: ---------------- - Created the low-end (LE) and middle-end (ME) versions of the library. - Moved myObtainBestPen() inline for ME and HE, gained some speed. - GetImage() no longer does any sanity check for the transparency flag. (this flag is merely for palette handling - nothing to do with NoBorder) Shouldn't cause any problem. Saved maybe 5 ms per icon?? :) NewIcons: --------- - Made the NoBorder and Transparent options separate. NewIconsPrefs: -------------- - Window opens centered on screen now. - Will now be able to detect which options are available in the installed library. - You can now enable NoBorder without enabling Transparency. Usefull for those using another iconse that might look bad with color 0 transparent. - The "About" requester will display the installed newicon.library version. NI 3.2 Beta 1 (2.10.96) ======================= Library ------- This beta version of the library has no dithering code, providing a very good speedup. This version is Kick 3.x and 68020+ only. NewIcons -------- Only did some minor optimizations here and there. Bench ----- The supplied "Bench" program is a benchmarking tool I wrote to test the speed of icon remapping+C2P. It requires the "test.info" icon to be in the same directory (you can replace it with any other newicon if you wish). Just run it, and time how long it takes to execute. Takes 18 secs here on my 030/40. If the test takes too long, you can abort it with Ctrl-C. In a future version, I might add code to take care of timing the execution for more precise results. -- Eric Sauvageau.