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