public override RenderBuffer GetRenderBuffer()
 {
     BackBuffer = System.Threading.Interlocked.Exchange(ref FrontBuffer, BackBuffer);
     //always match buffer bounds to current window bounds
     BackBuffer.Image.Resize(Width, Height);
     return BackBuffer;
 }
 public override RenderBuffer GetDisplayBuffer()
 {
     FrontBuffer = System.Threading.Interlocked.Exchange(ref MiddleBuffer, FrontBuffer);
     return FrontBuffer;
 }
 /// <summary>
 /// Creates a new <see cref="DoubleBufferStrategy"/>.
 /// </summary>
 public DoubleBufferStrategy()
 {
     FrontBuffer = new RenderBuffer();
     BackBuffer = new RenderBuffer();
 }
 /// <summary>
 /// Creates a new <see cref="TripleBufferStrategy"/>.
 /// </summary>
 public TripleBufferStrategy()
 {
     FrontBuffer = new RenderBuffer();
     MiddleBuffer = new RenderBuffer();
     BackBuffer = new RenderBuffer();
 }