Example #1
0
 private void OnLost()
 {
     OnUnload();
     if (_renderTarget != null)
     {
         _renderTarget.Dispose();
         _renderTarget = null;
     }
     if (_swapChain != null)
     {
         _swapChain.Dispose();
         _swapChain = null;
     }
 }
Example #2
0
        private void OnAcquireCheck()
        {
            if (_device == null ||
                _renderTarget != null ||
                _swapChain != null)
            {
                return;
            }
            var d3dpp = (D3DPRESENT_PARAMETERS)_d3dpp;//.Clone();

            _size = _window.Size;
            d3dpp.hDeviceWindow    = _window.Handle;
            d3dpp.BackBufferWidth  = _size.Width;
            d3dpp.BackBufferHeight = _size.Height;


            if (_size.Width <= 0 || _size.Height <= 0)
            {
                return;
            }
            var failed = false;

            try
            {
                _swapChain    = _device.CreateAdditionalSwapChain(ref d3dpp);
                _renderTarget = _swapChain.GetBackBuffer(0, D3DBACKBUFFER_TYPE.D3DBACKBUFFER_TYPE_MONO);
                //_renderTarget = _device.GetRenderTarget(0);
            }
            catch (Exception ex)
            {
                failed       = true;
                ErrorMessage = string.Format("{0}: {1}", ex.GetType().Name, ex.Message);
                throw;
            }
            finally
            {
                if (failed)
                {
                    OnLost();
                }
            }
        }