Patch title: Release 96 bulk changes
Abstract:
File: /pliant/graphic/draw/image.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/compiler.pli"
module "/pliant/math/transform.pli"
module "prototype.pli"
module "/pliant/graphic/image/prototype.pli"
module "/pliant/graphic/image/pixmap.pli"
module "/pliant/graphic/image/packed.pli"
module "/pliant/graphic/image/transparency.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/vector/outline.pli"
module "/pliant/graphic/vector/font.pli"
module "/pliant/graphic/image/transform.pli"
module "/pliant/graphic/image/convert.pli"
module "/pliant/graphic/image/clip.pli"


method d clip_close
  oarg_rw DrawImage d
  if entry_type:(addressof d:image)=ImageClip
    d image :> ((addressof d:image) map ImageClip) image
module "/pliant/language/compiler.pli"
module "/pliant/math/transform.pli"
module "prototype.pli"
module "/pliant/graphic/image/prototype.pli"
module "/pliant/graphic/image/pixmap.pli"
module "/pliant/graphic/image/packed.pli"
module "/pliant/graphic/image/transparency.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/vector/outline.pli"
module "/pliant/graphic/vector/font.pli"
module "/pliant/graphic/image/transform.pli"
module "/pliant/graphic/image/convert.pli"
module "/pliant/graphic/image/clip.pli"


method d clip_close
  oarg_rw DrawImage d
  if entry_type:(addressof d:image)=ImageClip
    d image :> ((addressof d:image) map ImageClip) image
    d clip_mask :> null map ImagePrototype



method d backdrop options -> image
  oarg_rw DrawImage d ; arg Str options ; arg_C ImagePrototy
  if (options option "clip_image")
    image :> d image
  eif (options option "clip_mask")
    if entry_type:(addressof d:image)=ImageClip
      image :> d clip_mask
    else
      image :> null map ImagePrototype
  else
    image :> d draw_image
  if (options option "clip_suspend")
    if entry_type:(addressof d:image)=ImageClip
      d clip_suspended += d image
      d image :> ((addressof d:image) map ImageClip) image
    else
      console "failed to suspend clipping (" entry_type:(add
  eif (options option "clip_restore")



method d backdrop options -> image
  oarg_rw DrawImage d ; arg Str options ; arg_C ImagePrototy
  if (options option "clip_image")
    image :> d image
  eif (options option "clip_mask")
    if entry_type:(addressof d:image)=ImageClip
      image :> d clip_mask
    else
      image :> null map ImagePrototype
  else
    image :> d draw_image
  if (options option "clip_suspend")
    if entry_type:(addressof d:image)=ImageClip
      d clip_suspended += d image
      d image :> ((addressof d:image) map ImageClip) image
    else
      console "failed to suspend clipping (" entry_type:(add
  eif (options option "clip_restore")
    if (addressof Link:ImagePrototype d:clip_suspended:first
      d image :> d:clip_suspended first
      d:clip_suspended remove d:clip_suspended:first
    if (addressof Link:ImagePrototype d:clip_suspended:last)<>null
      d image :> d:clip_suspended last
      d:clip_suspended remove d:clip_suspended:last
    else
      console "failed to restore clipping" eol
    

export DrawImage '. bind' '. image' '. image_type' '. draw_i
    else
      console "failed to restore clipping" eol
    

export DrawImage '. bind' '. image' '. image_type' '. draw_i