Example #1
0
        void IWindowBackend.Resized(SharpMedia.Math.Vector2i newSize)
        {
            lock (syncRoot)
            {
                // We resize render target.
                RenderTargetView currentRenderTarget = root.Canvas.Target;
                RenderTargetView newRenderTarget     = currentRenderTarget.CloneSameType(currentRenderTarget.Format,
                                                                                         (uint)newSize.X, (uint)newSize.Y, 1, 1, currentRenderTarget.MipmapCount) as RenderTargetView;

                root.Canvas.Target = newRenderTarget;

                // We unregister it and register new.
                graphicsDevice.UnRegisterShared(currentRenderTarget.TypelessResource as TypelessTexture);
                window.ChangeSource(graphicsDevice.RegisterShared(newRenderTarget.TypelessResource as TypelessTexture,
                                                                  TextureUsage.Texture), newSize);

                // Current render target not used anymore.
                currentRenderTarget.Dispose();
            }
        }