public void renderHUD(Box2D bounds) {
    super.renderHUD(bounds) ;
    if (selection.selected() != null) {
      camera.setLockOffset(infoArea.xdim() / -2, 0) ;
    }
    else {
      camera.setLockOffset(0, 0) ;
    }
    camera.updateCamera() ;
    
    if (currentPanel != newPanel) {
      beginPanelFade() ;
      if (currentPanel != null) currentPanel.detach() ;
      if (newPanel != null) newPanel.attachTo(infoArea) ;
      currentPanel = newPanel ;
    }
    if (capturePanel) {
      panelFade = UINode.copyPixels(infoArea.trueBounds(), panelFade) ;
      capturePanel = false ;
    }
    
    final float TRANSITION_TIME = 0.33f ;
    float fade = System.currentTimeMillis() - panelInceptTime ;
    fade = (fade / 1000f) / TRANSITION_TIME ;
    if (fade <= 1) {
      GL11.glColor4f(1, 1, 1, 1 - fade) ;
      UINode.drawPixels(infoArea.trueBounds(), panelFade) ;
    }
  }