   }
 
   fileprivate func markForRenderWholeView() {
-    self.needsDisplay = true
+    self.rectsMarkedForRender.append(self.bounds)
   }
 
   fileprivate func markForRender(region: Region) {
-    self.setNeedsDisplay(self.regionRectFor(region: region))
+    self.rectsMarkedForRender.append(self.regionRectFor(region: region))
   }
 
   fileprivate func markForRender(row: Int, column: Int) {
-    self.setNeedsDisplay(self.cellRectFor(row: row, column: column))
+    self.rectsMarkedForRender.append(self.cellRectFor(row: row, column: column))
   }
 }

  }

  public func updateSpecial(_ sp: Int32) {
    DispatchUtils.gui {
      self.grid.special = UInt32(bitPattern: sp)
    }


  public func updateBackground(_ bg: Int32) {
    DispatchUtils.gui {
      self.grid.background = UInt32(bitPattern: bg)
      self.layer?.backgroundColor = ColorUtils.colorIgnoringAlpha(self.grid.background).cgColor
//      NSLog("\(ColorUtils.colorIgnoringAlpha(UInt32(bg)))")
