private void renderOffscreen() {
		// we need a new ting
		if (m_offscreen == null || m_offscreen.getWidth() != getWidth()
		    || m_offscreen.getHeight() != getHeight()) {
			if (m_offscreen != null)
				m_offscreen.flush();

			m_offscreen = createVolatileImage(getWidth(), getHeight());
			if (m_offscreen == null)
				return;
		}

		do {
			if (m_offscreen.validate(getGraphicsConfiguration()) == VolatileImage.IMAGE_INCOMPATIBLE) {
				// old vImg doesn't work with new GraphicsConfig; re-create it
				m_offscreen = createVolatileImage(getWidth(), getHeight());
			}

			Graphics2D g = m_offscreen.createGraphics();
			paintComponent(g);
			g.dispose();
		} while (m_offscreen.contentsLost());
	}