private void CreateBackBuffer(bool fullScreen) { if (mFrameBuffer != null) { mFrameBuffer.Dispose(); } // Created swap chain will be owned by the FrameBufferWindow object, and // disposal will be handled by that object. SwapChain swap = mDisplay.CreateSwapChain(this, mChooseWidth, mChooseHeight, mChooseBitDepth, fullScreen); Direct3D.Surface backBuffer = swap.GetBackBuffer(0); Direct3D.Surface backDepthStencil = Direct3D.Surface.CreateDepthStencil( mDisplay.D3D_Device.Device, mChooseWidth, mChooseHeight, mDisplay.DepthStencilFormat, MultisampleType.None, 0, true); mFrameBuffer = new FrameBufferWindow(Size, swap, mOwner, backBuffer, backDepthStencil); mRenderTarget.Resize += new EventHandler(mRenderTarget_Resize); }