Patch title: Release 93 bulk changes
Abstract:
File: /graphic/vector/font.pli
Key:
    Removed line
    Added line
   
abstract
  [Loading and rendering a PostScript Type 1 font]


method img text buffer count csize f kerning length t color 
  oarg_rw ImagePrototype img ; arg Address buffer ; arg Int 
  var Float spacing := 1
  if length=defined
    spacing := length/(f vector buffer count csize kerning):
    if spacing=undefined
abstract
  [Loading and rendering a PostScript Type 1 font]


method img text buffer count csize f kerning length t color 
  oarg_rw ImagePrototype img ; arg Address buffer ; arg Int 
  var Float spacing := 1
  if length=defined
    spacing := length/(f vector buffer count csize kerning):
    if spacing=undefined
      spacing := 0
      spacing := 1
  if raster_fonts
    var CBool raster := false
    if speedup and t:level<=transform_scale and t:xx=t:yy
      var Int rsize := cast t:yy*(f:y1-f:y0)/(img:y1-img:y0)
      if rsize<=raster_maximum_size
        var Link:FontRaster rf
        if (cache_open "/pliant/fontr/"+string:rsize+"/"+f:f
          cache_ready ((addressof Link:FontRaster rf) map Li
        rf:sem request
        raster := true
  var Transform2 cur := t
  for (var Int i) 0 count-1
    var Int num
    if csize=1
      num := buffer map uInt8 i
    eif csize=4
      num := buffer map Int32 i
    if raster_fonts and raster
      var Pointer:FontChar ch :> f:chars first num
      if exists:ch # and cur_x+f:x0<img:x1 and cur_x+f:x1>im
        var Pointer:Address rch :> rf:chars first num
        if not exists:rch
          rf:chars insert num (f rasterize num rsize)
          rch :> rf:chars first num
        img rcharacter rch (img index_x cur:xt) (img index_y
      eif auto_accent and { var Pointer:FontAccent a :> acce
        var Pointer:FontChar base :> f:chars first a:base
        var Pointer:FontChar accent :> f:chars first a:accen
        if exists:base and exists:accent
          var Pointer:Address rch :> rf:chars first a:base
          if not exists:rch
            rf:chars insert a:base (f rasterize a:base rsize
            rch :> rf:chars first a:base
          img rcharacter rch (img index_x cur:xt) (img index
          var Pointer:Address rch :> rf:chars first a:accent
          if not exists:rch
            rf:chars insert a:accent (f rasterize a:accent r
            rch :> rf:chars first a:accent
          img rcharacter rch (img index_x cur:xt) (img index
    else
      img character f num cur color
    var Vector2 v := f vector num
    if kerning<>null
      v := (kerning map Float i)*v
    if spacing<>1
      v := spacing*v
    v := cur v ; cur xt += v x ; cur yt += v y
  if raster_fonts and raster
    rf:sem release


  if raster_fonts
    var CBool raster := false
    if speedup and t:level<=transform_scale and t:xx=t:yy
      var Int rsize := cast t:yy*(f:y1-f:y0)/(img:y1-img:y0)
      if rsize<=raster_maximum_size
        var Link:FontRaster rf
        if (cache_open "/pliant/fontr/"+string:rsize+"/"+f:f
          cache_ready ((addressof Link:FontRaster rf) map Li
        rf:sem request
        raster := true
  var Transform2 cur := t
  for (var Int i) 0 count-1
    var Int num
    if csize=1
      num := buffer map uInt8 i
    eif csize=4
      num := buffer map Int32 i
    if raster_fonts and raster
      var Pointer:FontChar ch :> f:chars first num
      if exists:ch # and cur_x+f:x0<img:x1 and cur_x+f:x1>im
        var Pointer:Address rch :> rf:chars first num
        if not exists:rch
          rf:chars insert num (f rasterize num rsize)
          rch :> rf:chars first num
        img rcharacter rch (img index_x cur:xt) (img index_y
      eif auto_accent and { var Pointer:FontAccent a :> acce
        var Pointer:FontChar base :> f:chars first a:base
        var Pointer:FontChar accent :> f:chars first a:accen
        if exists:base and exists:accent
          var Pointer:Address rch :> rf:chars first a:base
          if not exists:rch
            rf:chars insert a:base (f rasterize a:base rsize
            rch :> rf:chars first a:base
          img rcharacter rch (img index_x cur:xt) (img index
          var Pointer:Address rch :> rf:chars first a:accent
          if not exists:rch
            rf:chars insert a:accent (f rasterize a:accent r
            rch :> rf:chars first a:accent
          img rcharacter rch (img index_x cur:xt) (img index
    else
      img character f num cur color
    var Vector2 v := f vector num
    if kerning<>null
      v := (kerning map Float i)*v
    if spacing<>1
      v := spacing*v
    v := cur v ; cur xt += v x ; cur yt += v y
  if raster_fonts and raster
    rf:sem release