Beispiel #1
0
 /// <summary>
 /// Invalidates entire D3DImage area
 /// </summary>
 private void InvalidateD3DImage()
 {
     m_d3DImageEx.Lock();
     m_d3DImageEx.AddDirtyRect(new Int32Rect()
     {
         X      = 0,
         Y      = 0,
         Height = m_d3DImageEx.PixelHeight,
         Width  = m_d3DImageEx.PixelWidth
     });
     m_d3DImageEx.Unlock();
 }
 /// <summary>
 /// Invalidates entire D3DImage area
 /// </summary>
 private void InvalidateD3DImage()
 {
     d3dImage.Lock();
     d3dImage.AddDirtyRect(new Int32Rect()
     {
         X      = 0,
         Y      = 0,
         Height = d3dImage.PixelHeight,
         Width  = d3dImage.PixelWidth
     });
     d3dImage.Unlock();
 }
        private void OnRendering(object sender, EventArgs e)
        {
            var args = (RenderingEventArgs)e;

            if (args.RenderingTime == _last)
            {
                return;
            }
            _last = args.RenderingTime;

            var renderer = Model.Renderer;

            if (_imageEx == null || renderer == null)
            {
                return;
            }

            if (renderer.Draw())
            {
                _lastTarget = IntPtr.Zero;
            }

            var target = renderer.GetRenderTarget();

            if (target != _lastTarget || _setCount < 3)
            {
                _imageEx.SetBackBufferEx(D3DResourceTypeEx.ID3D11Texture2D, target);
                _setCount++;
                _lastTarget = target;
            }

            _imageEx.Lock();
            _imageEx.AddDirtyRect(new Int32Rect {
                X      = 0,
                Y      = 0,
                Height = _imageEx.PixelHeight,
                Width  = _imageEx.PixelWidth
            });
            _imageEx.Unlock();
        }