Isometric map renderer, tightly integrated with BackgroundWorker. Creates a bitmap of the map. Every IsoCat instance is single-use.
Example #1
0
 void AsyncDraw( object sender, DoWorkEventArgs e ) {
     stopwatch = Stopwatch.StartNew();
     renderer = new IsoCat( map, IsoCatMode.Normal, previewRotation );
     Rectangle cropRectangle;
     if( bwRenderer.CancellationPending ) return;
     Bitmap rawImage = renderer.Draw( out cropRectangle, bwRenderer );
     if( bwRenderer.CancellationPending ) return;
     if( rawImage != null ) {
         previewImage = rawImage.Clone( cropRectangle, rawImage.PixelFormat );
     }
     renderer = null;
     GC.Collect( GC.MaxGeneration, GCCollectionMode.Optimized );
 }