home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 5 / RISCWORLD_VOL5.iso / SOFTWARE / Issue1 / PD / SFX / Source / SpecialFX / Updates < prev   
Encoding:
Text File  |  2004-04-24  |  2.1 KB  |  69 lines

  1. Module version 1.01
  2. -------------------
  3.  
  4. A problem was reported with the feature that uses the GDraw module.
  5.  
  6. Investigating, it seems that there are two related problems. When
  7. the code passes on Draw module SWIs to GDraw, in order to enable
  8. anti-aliasing, it has to set some extra bits in register R1 which
  9. contain the fill style for the curve.
  10.  
  11. The first problem is that, having changed R1, the code doesn't restore
  12. its value. I'm not aware of this bug upsetting anything, but it is now
  13. fixed.
  14.  
  15. The main problem is that GDraw does not support a value of R1 = 0 to
  16. select a default fill style. Although this was handled for Draw_Stroke
  17. (by checking for zero and replacing it with a default style value),
  18. it was not done for Draw_Fill, and this is what caused the trouble.
  19.  
  20. This is the bit of code in s.code that I'm talking about:
  21.  
  22.  
  23.  str    r1,dtemp1       ; save r1 for later
  24.  teq    r1,#0           ; is it zero?
  25.  moveq  r1,#&30         ; yes replace with the default style value
  26.  orr    r1,r1,#&80      ; enable aliasing
  27.  
  28.  
  29. David Pilling
  30.  
  31.  
  32.  
  33. Module version 1.03
  34. -------------------
  35.  
  36. There have been two further updates.
  37.  
  38. The code was made 32-bit compliant to produce version 1.02.
  39.  
  40. Justin Fletcher told me about a bug and how to fix it. This was
  41. that R14 was being corrupted by the interception of the Draw SWIs.
  42. Fixing this problem gives version 1.03.
  43.  
  44.  
  45. David Pilling
  46.  
  47.  
  48.  
  49. Module version 1.04
  50. -------------------
  51.  
  52. Previous versions of SFX passed almost all Draw stroke and fill calls
  53. on to GDraw. It has been pointed out to me by Martin Wuerthner that
  54. GDraw only supports a limited set of winding rules and fill options.
  55. The fix in this version is to limit the calls passed to GDraw to those
  56. it supports.
  57.  
  58. In fact in the interests of simplicity SFX now only passes on the
  59. calls which can be antialiased, there are some rare cases which GDraw
  60. might be able to speed up but not alias (which are now not passed on).
  61.  
  62. Doing this work highlighted the fact that SFX was not supporting the
  63. correct default behaviour for stroking - a bug much like the one fixed
  64. for filling in an earlier version. This is also fixed in this
  65. version.
  66.  
  67.  
  68. David Pilling
  69.