@Override public Graphics2D createGraphics(SurfaceData sd,WComponentPeer peer,Color fgColor,Color bgColor,Font font){
  if (!done && sd instanceof D3DWindowSurfaceData) {
    D3DWindowSurfaceData d3dw=(D3DWindowSurfaceData)sd;
    if (!d3dw.isSurfaceLost() || validate(d3dw)) {
      trackScreenSurface(d3dw);
      return new SunGraphics2D(sd,fgColor,bgColor,font);
    }
    sd=getGdiSurface(d3dw);
  }
  return super.createGraphics(sd,peer,fgColor,bgColor,font);
}

@ Override public Graphics2D createGraphics ( SurfaceData sd , WComponentPeer peer , Color fgColor , Color bgColor , Font font ) { if ( ! done && sd instanceof D3DWindowSurfaceData ) { D3DWindowSurfaceData d3dw = ( D3DWindowSurfaceData ) sd ; if ( ! d3dw . isSurfaceLost ( ) || validate ( d3dw ) ) { trackScreenSurface ( d3dw ) ; return new SunGraphics2D ( sd , fgColor , bgColor , font ) ; } sd = getGdiSurface ( d3dw ) ; } return super . createGraphics ( sd , peer , fgColor , bgColor , font ) ; }
creates a graphics object for the passed in surface data . if the surface is lost , it is restored . if the surface wasn ' t lost or the restoration was successful the surface is added to the list of maintained surfaces ( if it hasn ' t been already ) . if the updater thread hasn ' t been created yet , it will be created and started .
