private void DX11ImageSourceRenderer_OnNewBufferCreated(object sender, Texture2DArgs e)
 {
     try
     {
         if (surfaceD3D == null)
         {
             Debug.WriteLine("Create new D3DImageSource");
             surfaceD3D = new DX11ImageSource(EffectsManager.AdapterIndex);
             surfaceD3D.IsFrontBufferAvailableChanged += SurfaceD3D_IsFrontBufferAvailableChanged;
         }
         surfaceD3D.SetRenderTargetDX11(e.Texture.Resource as Texture2D);
     }
     catch (Exception ex)
     {
         Logger.Log(HelixToolkit.Logger.LogLevel.Error, $"Failed to create surfaceD3D. Ex: {ex.Message}");
         hasBackBuffer = false;
         surfaceD3D.IsFrontBufferAvailableChanged -= SurfaceD3D_IsFrontBufferAvailableChanged;
         RemoveAndDispose(ref surfaceD3D);
         hasBackBuffer = false;
         EndD3D();
         ReinitializeEffectsManager();
         return;
     }
     hasBackBuffer = e.Texture.Resource is Texture2D;
     OnImageSourceChanged(this, new DX11ImageSourceArgs(surfaceD3D));
     if (hasBackBuffer)
     {
         Logger.Log(HelixToolkit.Logger.LogLevel.Information, $"New back buffer is set.");
     }
     else
     {
         Logger.Log(HelixToolkit.Logger.LogLevel.Information, $"Set back buffer failed.");
     }
 }
 private void DX11ImageSourceRenderer_OnNewBufferCreated(object sender, Texture2DArgs e)
 {
     if (surfaceD3D == null)
     {
         Debug.WriteLine("Create new D3DImageSource");
         surfaceD3D = Collect(new DX11ImageSource(EffectsManager.AdapterIndex));
     }
     surfaceD3D.SetRenderTargetDX11(e.Texture.Resource as Texture2D);
     OnImageSourceChanged(this, new DX11ImageSourceArgs(surfaceD3D));
 }
 private void DX11ImageSourceRenderer_OnNewBufferCreated(object sender, Texture2DArgs e)
 {
     if (surfaceD3D == null)
     {
         Debug.WriteLine("Create new D3DImageSource");
         surfaceD3D = Collect(new DX11ImageSource(EffectsManager.AdapterIndex));
         surfaceD3D.IsFrontBufferAvailableChanged += SurfaceD3D_IsFrontBufferAvailableChanged;
     }
     surfaceD3D.SetRenderTargetDX11(e.Texture.Resource as Texture2D);
     hasBackBuffer = e.Texture.Resource is Texture2D;
     OnImageSourceChanged(this, new DX11ImageSourceArgs(surfaceD3D));
     if (hasBackBuffer)
     {
         Logger.Log(HelixToolkit.Logger.LogLevel.Information, $"New back buffer is set.");
     }
     else
     {
         Logger.Log(HelixToolkit.Logger.LogLevel.Information, $"Set back buffer failed.");
     }
 }
Esempio n. 4
0
 private void RenderBuffer_OnNewBufferCreated(object sender, Texture2DArgs e)
 {
     OnNewRenderTargetTexture?.Invoke(this, e);
 }