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."); } }
private void RenderBuffer_OnNewBufferCreated(object sender, Texture2DArgs e) { OnNewRenderTargetTexture?.Invoke(this, e); }