@Override
		public void paint(GGlassPane glassPane, Graphics g) {

			Graphics2D g2d = (Graphics2D) g;
			g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
				RenderingHints.VALUE_INTERPOLATION_BILINEAR);

			float alpha = (float) percentComplete;
			alpha = Math.min(alpha, .5f);
			Composite originaComposite = g2d.getComposite();
			AlphaComposite alphaComposite =
				AlphaComposite.getInstance(AlphaComposite.SrcOver.getRule(), alpha);
			g2d.setComposite(alphaComposite);

			Image ghidraImage = ICON.getImageIcon().getImage();
			Rectangle fullBounds = component.getBounds();
			fullBounds =
				SwingUtilities.convertRectangle(component.getParent(), fullBounds, glassPane);

			int gw = ghidraImage.getWidth(null);
			int gh = ghidraImage.getHeight(null);
			double smallest =
				fullBounds.width > fullBounds.height ? fullBounds.height : fullBounds.width;
			smallest -= 10; // padding

			double scale = smallest / gw;
			int w = (int) (gw * scale);
			int h = (int) (gh * scale);

			double cx = fullBounds.getCenterX();
			double cy = fullBounds.getCenterY();
			int offsetX = (int) (cx - (w >> 1));
			int offsetY = (int) (cy - (h >> 1));

			g2d.setClip(fullBounds);
			g2d.drawImage(ghidraImage, offsetX, offsetY, w, h, null);

			g2d.setComposite(originaComposite);
		}
Returns the {@link GGlassPane} for the given component

@param c the component
@return the glass pane
Ghidra/Framework/Docking/src/main/java/docking/util/AnimationUtils.java