/// <summary> /// Called when [create render target and depth buffers]. /// </summary> /// <param name="width">The width.</param> /// <param name="height">The height.</param> /// <returns></returns> protected override ShaderResourceViewProxy OnCreateBackBuffer(int width, int height) { if (swapChain == null || swapChain.IsDisposed) { swapChain = CreateSwapChain(surfacePtr); } else { RemoveAndDispose(ref d2dTarget); RemoveAndDispose(ref backBuffer); swapChain.ResizeBuffers(swapChain.Description1.BufferCount, TargetWidth, TargetHeight, swapChain.Description.ModeDescription.Format, swapChain.Description.Flags); } backBuffer = new ShaderResourceViewProxy(Device, Texture2D.FromSwapChain <Texture2D>(swapChain, 0)); d2dTarget = new D2DTargetProxy(); d2dTarget.Initialize(swapChain, DeviceContext2D); return(backBuffer); }
/// <summary> /// /// </summary> /// <param name="width"></param> /// <param name="height"></param> /// <returns></returns> protected override ShaderResourceViewProxy OnCreateBackBuffer(int width, int height) { var colordescNMS = new Texture2DDescription { BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource, Format = Format, Width = width, Height = height, MipLevels = 1, SampleDescription = new SampleDescription(1, 0), Usage = ResourceUsage.Default, OptionFlags = ResourceOptionFlags.Shared, CpuAccessFlags = CpuAccessFlags.None, ArraySize = 1 }; var backBuffer = new ShaderResourceViewProxy(Device, colordescNMS); d2dTarget = new D2DTargetProxy(); d2dTarget.Initialize(backBuffer.Resource as Texture2D, DeviceContext2D); return(backBuffer); }