@@ -393,7 +393,7 @@ protected virtual void Render(Graphics g, MapViewport mvp, out Rectangle affecte
393393 }
394394 else
395395 {
396- affectedArea = ToGraphicsCanvas ( g . Transform ) ;
396+ affectedArea = ToGraphicsCanvas ( CanvasArea , g . Transform ) ;
397397
398398 // clip to graphics canvas
399399 affectedArea . Intersect ( mapRect ) ;
@@ -404,18 +404,24 @@ protected virtual void Render(Graphics g, MapViewport mvp, out Rectangle affecte
404404 OnLayerRendered ( g ) ;
405405 }
406406
407- protected Rectangle ToGraphicsCanvas ( System . Drawing . Drawing2D . Matrix matrix )
407+ /// <summary>
408+ /// Transforms cavas area to untransformed graphics canvas
409+ /// </summary>
410+ /// <param name="area"></param>
411+ /// <param name="matrix"></param>
412+ /// <returns></returns>
413+ protected static Rectangle ToGraphicsCanvas ( RectangleF area , System . Drawing . Drawing2D . Matrix matrix )
408414 {
409415 if ( ! matrix . IsIdentity )
410416 {
411- var pts = CanvasArea . ToPointArray ( ) ;
417+ var pts = area . ToPointArray ( ) ;
412418 matrix . TransformPoints ( pts ) ;
413419 // Enclosing rectangle aligned with graphics canvas and inflated to nearest integer values.
414- CanvasArea = pts . ToRectangleF ( ) ;
420+ area = pts . ToRectangleF ( ) ;
415421 }
416422
417423 // This is the area of the graphics canvas that needs to be refreshed when invalidating the image.
418- var affectedArea = CanvasArea . ToRectangle ( ) ;
424+ var affectedArea = area . ToRectangle ( ) ;
419425
420426// // proof of concept: draw affected area to screen aligned with graphics canvas
421427// using (var orig = g.Transform.Clone())
0 commit comments