This code was introduced to improve rendering performance to avoid figuring out what modifications were applied to the GDI+ GpGraphics. Now that we control System.Drawing we can add an internal optimization that tracks whether or not relevant state has been changed on the object.
This will allow greatly simplifying the code (we can remove all of the existing GraphicsInternal stuff) and improving performance across the board. We can access whatever flag we track on Graphics through IGraphicsContextInfo or IGraphics.
|
internal Graphics GraphicsInternal => _event.GetOrCreateGraphicsInternal(SaveStateIfNeeded); |
This code was introduced to improve rendering performance to avoid figuring out what modifications were applied to the GDI+ GpGraphics. Now that we control System.Drawing we can add an internal optimization that tracks whether or not relevant state has been changed on the object.
This will allow greatly simplifying the code (we can remove all of the existing
GraphicsInternalstuff) and improving performance across the board. We can access whatever flag we track onGraphicsthroughIGraphicsContextInfoorIGraphics.winforms/src/System.Windows.Forms/System/Windows/Forms/Rendering/PaintEventArgs.cs
Line 127 in a64fee1