     stagingBitmap = @_renderStagingBitmap rect(0, 0, @_currentSize.x * s.x, @_currentSize.y * s.y), m = Matrix.scale s
     target.drawBitmap m.inv.mul(elementToTargetMatrix), stagingBitmap, compositeMode:@_compositeMode, opacity: @opacity
 
-  _fullDraw: (targetSpaceDrawArea, target, elementToTargetMatrix) ->
-    # @log _fullDraw:element:@inspectedName, targetSpaceDrawArea:targetSpaceDrawArea, elementToTargetMatrix:elementToTargetMatrix,
-    #   clip:@_clip
-    #   _useStagingBitmap: @_useStagingBitmap()
-    if @_clip                     then @_clipDraw targetSpaceDrawArea, target, elementToTargetMatrix
-    else if @needsStagingBitmap   then @_drawWithStagingBitmap targetSpaceDrawArea, target, elementToTargetMatrix
-    else                               @_drawChildren target, elementToTargetMatrix
-
   _clipDraw: (clipArea, target, elementToTargetMatrix)->
     if !elementToTargetMatrix.getIsTranslateAndScaleOnly() || @needsStagingBitmap
       @_clippedDrawWithStagingBitmapInElementSpace target, elementToTargetMatrix

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

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


    # override this for elements which are faster w/o caching (RectangleElement, BitmapElement)
    cacheable: -> true

  _cachedFullDraw: (targetSpaceDrawArea, target, elementToTargetMatrix) ->

    @getCacheIsValid() || @_generateDrawCache()

    drawCacheManager.useDrawCache @
    drawCacheToTargetMatrix = @_drawCacheToElementMatrix.mul elementToTargetMatrix
    target.drawBitmap drawCacheToTargetMatrix, @_drawCacheBitmap,
      opacity:        @opacity
      compositeMode:  @compositeMode

  _generateDrawCache: ->

