static ImageSurface imageSurfaceCheckerBoardBackground(ImageSurface is) { if (is.drawBackground != null) ret is; double pixelsPerSecond = 8; is.drawBackground = (w, h, g) -> { var cb = new CheckerBoard2().w(w).h(h); double time = sysSeconds(); int shift = iround(time*pixelsPerSecond); cb.shiftX(shift).shiftY(shift); cb.drawOn(g); }; setDoubleBuffered(is); repaintEvery(1.0/pixelsPerSecond, is); ret is; }