home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / utilities / a215_1 / README < prev   
Text File  |  1993-02-13  |  5KB  |  127 lines

  1. | > README
  2. |
  3. | Title         3D hires/lores Icons Switcher module
  4. | Author        Nick Smith
  5. | Version       1.00 (12-Feb-93)
  6. | Status        Public Domain, no distribution restrictions
  7.  
  8. *** Version 0.03
  9.  
  10. Release 0.03 (including in this distribution) is a tiny module for
  11. RISC OS 3.10 - (300 bytes inc workspace) that switches sprites on mode
  12. changes between low and hires modes.
  13.  
  14. To use - set up a system variable <Sprite$Path> to point to the
  15. directory containing the files :-
  16.  
  17. Sprites         Lores sprites for filetypes, applications, etc
  18. Sprites22       Hires sprites for filetypes, applications, etc
  19.  
  20. The exact contents of each sprite file is entirely arbitrary -  the
  21. module will just *IconSprites the file appropriate for a given mode
  22. resolution.
  23.  
  24. Example use (eg, in Desktop !Boot file)
  25.  
  26. Set Sprite$Path ADFS::IDEDisc4.$.!Boot.NewSprites.
  27. RMEnsure IconSwitch 0.03 RMLoad ADFS::IDEDisc4.$.!Boot.IconSwitch
  28.  
  29. ... assuming you have 'IconSwitch' module assembled & saved into your
  30. !Boot application - or stick it in your !System folder - whatever.
  31.  
  32. *** Version 1.00
  33.  
  34. Despite having a turbo-charged A5000, the speed at which v0.03
  35. switches between modes (I have a 80+Kb Sprites22 file) is horrible.
  36. This is because the Sprite merge operation is rather complex/slow.
  37.  
  38. A *much* faster solution, but which requires significantly more
  39. memory, is to register the Sprites/Sprites22 files as the ROM Wimp
  40. sprite pools using ResourceFS. This has the advantage that the Wimp
  41. treats the files as being in ROM, and upon a mode change merely has to
  42. change a pointer - not merge a huge file of sprites.
  43.  
  44. This rather neat solution has a serious problem (other than requiring
  45. both the Sprites & Sprites22 files in memory at once), when an
  46. application does a *IconSprites command, the RMA sprite pool gets
  47. sprites loaded, and these are displayed in preference to the ROM
  48. sprites. Hence when your x-hundred applications filer boot you load
  49. all these filetype and !appl sprites into RMA *again* and the hires
  50. ROM sprites never get used ... 
  51.  
  52. The obvious fix for this is to scan the RMA sprite pool upon mode
  53. changes and OS_SpriteOp,25 (delete) those sprites which have matches
  54. in the current ROM pool. Even if you have 50  duplicated sprites, the
  55. time it takes to delete them is  unnoticable. An added bonus is that
  56. all the crap directory sprites, etc. that some PD apps insist on
  57. redefining get thrown away too.
  58.  
  59. Using 1.00:
  60.  
  61. Take your sprites/sprites22 files (see v0.03 above) and place them in
  62. 'Resources.Wimp.' dir. NOTE: It is very important that you start with
  63. the exisiting ROM 'Sprites' file, as this  contains fairly vital
  64. sprites such as the pointer sprite, and your desktop will look rather
  65. odd with some of these missing 8-) I recommend grabbing bits of the
  66. sprites from Roger Wilson's !SetIcons off the Apps disc.
  67.  
  68. You can also add a 'Tools' sprites file for window borders, and indeed
  69. any other replacement templates or messages files for other ROM
  70. modules that takes your fancy. eg, I have a customized PaletteUtil
  71. menu by having a new messages file in 'Resources.Palette.' These 
  72. require simple additions in the source to the module.
  73.  
  74. Build the module by running on !Make, and then edit your desktop
  75. startup sequence as described in the above section. (You don't need a
  76. Sprite$Path variable)
  77.  
  78. Note that this IconSwitch module must be loaded before you enter the
  79. desktop, otherwise all hell will break loose 8-) Also, don't expect
  80. this module to work in significantly later versions of the OS - it
  81. relies heavily on the exact nature of the Wimp sprite pool, and the
  82. PRMs say that this may well change in the future ...
  83.  
  84. Hope this is useful.
  85.  
  86. *** Contacts
  87.  
  88. Please send me any bugreports, comments, ideas for new features, etc.
  89. I can be contacted at the following address, at least until Jul '94 ;
  90.  
  91. Nick Smith
  92. Churchill College
  93. Cambridge
  94. CB3 0DS                 nas20@uk.ac.cam.phx (JANET/Internet email)
  95.  
  96. *** Distribution
  97.  
  98. This software is 'Public Domain'. You may copy and distribute it
  99. without restriction - include it on magazine discs, with commercial
  100. products, etc, etc. However, any distribution must include the
  101. source code and this documentation.
  102.  
  103. *** Revision history
  104.  
  105. Modifications to v0.01 (23-Jan-93)
  106.   - First release - can it do anything more ???
  107.  
  108. Modifications to v0.02 (24-Jan-93)
  109.   - Silly addition for my PCATS card - performs *Clock 5 command
  110.     for Mode 61 (45MHz clock crystal)
  111.     There is a good reason why I need to do this - but I doubt
  112.     you're interested ....
  113.  
  114. Modifications to v0.03 (12-Feb-93)
  115.   - A high-speed (instant?) switcher will be ready RSN, but this
  116.     version was done for 'internal' use. ie, more changes for my
  117.     PCATS card! Because I have 16MHz RAM I needed to mess with
  118.     Mode 0, and so this version has a couple more *Clock commands
  119.     for Modes 0, 60 & 61.
  120.   - Changed sprites files inline with v1.00
  121.  
  122. Modifications to v1.00 (12-Feb-92)
  123.   - Completely new code - registers Sprites/Sprites22 files
  124.     with ResourceFS & keeps them in RAM.
  125.   - Much faster, eats RAM.
  126.  
  127.