コード例 #1
0
        public void SetRenderTargets(IDepthStencilView depthStencilView, IRenderTargetView renderTargetView0, IRenderTargetView renderTargetView1 = null, IRenderTargetView renderTargetView2 = null, IRenderTargetView renderTargetView3 = null)
        {
            var dsv  = (DepthStencilViewBox)depthStencilView;
            var rtv0 = (RenderTargetViewBox)renderTargetView0;
            var rtv1 = (RenderTargetViewBox)renderTargetView1;
            var rtv2 = (RenderTargetViewBox)renderTargetView2;
            var rtv3 = (RenderTargetViewBox)renderTargetView3;

            if (_currentDepthStencilView == dsv &&
                _currentRenderTargetViews[0] == rtv0 &&
                _currentRenderTargetViews[1] == rtv1 &&
                _currentRenderTargetViews[2] == rtv2 &&
                _currentRenderTargetViews[3] == rtv3)
            {
                return;
            }

            _currentDepthStencilView     = dsv;
            _currentRenderTargetViews[0] = rtv0;
            _currentRenderTargetViews[1] = rtv1;
            _currentRenderTargetViews[2] = rtv2;
            _currentRenderTargetViews[3] = rtv3;

            UpdateRenderTargetsInternal();
        }
コード例 #2
0
 public void MoveAssignFrom(DepthStencilViewBox other)
 {
     Utilities.Dispose <DepthStencilView>(ref DepthStencilView);
     DepthStencilView       = other.DepthStencilView;
     other.DepthStencilView = null;
     Resolution             = other.Resolution;
     other.Resolution       = new Size(-1, -1);
 }
コード例 #3
0
 protected void ResetToUninitializedState()
 {
     _currentDepthConfiguration      = DepthConfiguration.Uninitialized;
     _currentRasterizerConfiguration = RasterizerConfiguration.Uninitialized;
     _currentDepthStencilView        = null;
     for (var i = 0; i < _currentRenderTargetViews.Length; i++)
     {
         _currentRenderTargetViews[i] = null;
         _preallocatedRtvArray[i]     = null;
     }
     _currentViewportRect = RectangleF.Empty;
 }
コード例 #4
0
        public void HandleBackBufferResized(DepthStencilViewBox backBufferDepthView, RenderTargetViewBox backBufferRenderTargetView)
        {
            _backBufferRenderTargetView = backBufferRenderTargetView;
            _backBufferDepthView        = backBufferDepthView;

            if (_currentRenderTargetViews[0] == backBufferRenderTargetView ||
                _currentRenderTargetViews[1] == backBufferRenderTargetView ||
                _currentRenderTargetViews[2] == backBufferRenderTargetView ||
                _currentRenderTargetViews[3] == backBufferRenderTargetView ||
                _currentDepthStencilView == backBufferDepthView)
            {
                UpdateRenderTargetsInternal();
            }
        }