sclass JVolatileImageSurface > Surface { VolatileImageMakerForComponent volatileImageMaker; settable bool volatileMode = true; settable Renderable renderable; *() {} *(Renderable *renderable) {} { clearSurface = false; } @Override public void render(int w, int h, Graphics2D g) { if (renderable == null) ret with fillRect(g, 0, 0, w, h, Color.white); if (!volatileMode) renderable.renderOn(g, w, h); else { if (volatileImageMaker == null || !volatileImageMaker.sizeIs(w, h)) volatileImageMaker = new VolatileImageMakerForComponent(this, w, h, renderable); volatileImageMaker.paintOnScreen(g); } } }