     needsStagingBitmap: ->
       (@getHasChildren() || @getIsMask()) && (@_compositeMode != "normal" || @_opacity < 1 || @getChildRequiresParentStagingBitmap())
 
-      # override this for elements which are faster w/o caching (RectangleElement, BitmapElement)
+    # override this for elements which are faster w/o caching (RectangleElement, BitmapElement)
     cacheable: -> true
 
   _generateDrawCacheIfNeeded: ->

      use pixel-exact cache

  Additional options:
    We may add another option which lets of add a "cache-at" scale factor to force lower or
    higher resolution caching.

  Old ArtEngine
    In the old C++ Art.Engine we had a global "fast" mode where caches were not invalidated under
    any draw-matrix changes until fast-mode was turned off, then a final redraw pass was made
    where pixel-inexact caches were invalidated and redrawn. This allowed good user interactivity
    followed by maximum quality renders. This was handy for the more general-purpose Kimi-editor,
    for the current purpose-built kimi-editor, it isn't needed.

  ###

  @_cachingDraws: 0


      @_currentToTargetMatrix = elementToTargetMatrix

      targetSpaceDrawArea = @drawAreaIn(elementToTargetMatrix).intersection target.getClippingArea()
      return unless targetSpaceDrawArea.area > 0

      @_cachedFullDraw targetSpaceDrawArea, target, elementToTargetMatrix
    finally
      @_currentDrawTarget = @_currentToTargetMatrix = null

  #################
  # Draw Caching
  #################
  ###
  "pixel-exact-caching"

