コード例 #1
0
        public override bool BeginDraw()
        {
            if (GraphicsDevice != null && Window.Visible)
            {
                savedPresenter = GraphicsDevice.Presenter;
                savedViewport  = GraphicsDevice.Viewport;

                CreateOrUpdatePresenter();

                if (isBackBufferToResize || windowUserResized)
                {
                    PixelFormat resizeFormat;
                    var         size = GetRequestedSize(out resizeFormat);
                    Presenter.Resize(size.Width, size.Height, resizeFormat);

                    isBackBufferToResize = false;
                    windowUserResized    = false;
                }

                GraphicsDevice.Presenter = Presenter;
                GraphicsDevice.SetViewport(Presenter.DefaultViewport);
                GraphicsDevice.SetRenderTargets(Presenter.DepthStencilBuffer, Presenter.BackBuffer);

                beginDrawOk = true;
                return(true);
            }

            beginDrawOk = false;
            return(false);
        }
コード例 #2
0
        public override bool BeginDraw()
        {
            if (GraphicsDevice != null && Window.Visible)
            {
                savedPresenter = GraphicsDevice.Presenter;

                CreateOrUpdatePresenter();

                if (isBackBufferToResize || windowUserResized)
                {
                    PixelFormat resizeFormat;
                    var         size = GetRequestedSize(out resizeFormat);
                    Presenter.Resize((int)size.X, (int)size.Y, resizeFormat);

                    isBackBufferToResize = false;
                    windowUserResized    = false;
                }

                GraphicsDevice.Presenter = Presenter;

                beginDrawOk = true;
                return(true);
            }

            beginDrawOk = false;
            return(false);
        }
コード例 #3
0
ファイル: GameSurface.cs プロジェクト: jaenudin86/dwarrowdelf
        public void ResizePresenter()
        {
            int width  = m_host.HostedWindowWidth;
            int height = m_host.HostedWindowHeight;

            if (width == 0 || height == 0)
            {
                RemoveAndDispose(ref m_presenter);
                return;
            }

            bool sizeChanged;

            if (m_presenter == null)
            {
                var presentParams = new PresentationParameters(width, height, m_host.Handle, m_pixelFormat)
                {
                    PresentationInterval = PresentInterval.Immediate,
                };

                m_presenter = ToDispose(new SwapChainGraphicsPresenter(m_device, presentParams));

                sizeChanged = true;
            }
            else
            {
                // Resize is a no-op if the size hasn't changed
                sizeChanged = m_presenter.Resize(width, height, m_pixelFormat);
            }

            if (sizeChanged)
            {
                if (this.SizeChanged != null)
                {
                    this.SizeChanged(width, height);
                }
            }
        }