helix-toolkit icon indicating copy to clipboard operation
helix-toolkit copied to clipboard

Crash when logging off with windows key pressed twice

Open gregorsGit opened this issue 1 year ago • 0 comments

Hi, i get this reproducable crash in the 3dview when i press log off with the windows short-cut windows-Key + windows-Key (quick twice). Not Windows+L. image

I could solve this by adding some null-checks.. im methode: DX11ImageSourceRenderer_OnNewBufferCreated

        private void DX11ImageSourceRenderer_OnNewBufferCreated(object sender, Texture2DArgs e)
        {
            try
            {
                if (surfaceD3D == null)
                {
                    logger.LogInformation("Create new D3DImageSource");
                    surfaceD3D = new DX11ImageSource(EffectsManager.AdapterIndex);
                    surfaceD3D.IsFrontBufferAvailableChanged += SurfaceD3D_IsFrontBufferAvailableChanged;
                }
                if (e.Texture != null)
                {
                    surfaceD3D.SetRenderTargetDX11(e.Texture.Resource as Texture2D);
                }
            }
            catch (Exception ex)
            {
                logger.LogError("Failed to create surfaceD3D. Ex: {0}", ex.Message);
                hasBackBuffer = false;
                if (surfaceD3D != null)
                {
                    surfaceD3D.IsFrontBufferAvailableChanged -= SurfaceD3D_IsFrontBufferAvailableChanged;
                }
                RemoveAndDispose(ref surfaceD3D);
                hasBackBuffer = false;
                EndD3D();
                ReinitializeEffectsManager();
                return;
            }
            hasBackBuffer = false;
            if (e.Texture != null)
            {
                hasBackBuffer = e.Texture.Resource is Texture2D;
            }
            OnImageSourceChanged(this, new DX11ImageSourceArgs(surfaceD3D));
            if (hasBackBuffer)
            {
                logger.LogInformation("New back buffer is set.");
            }
            else
            {
                logger.LogInformation("Set back buffer failed.");
            }
        }

Could someone change this in the source-code?

Thanks.

gregorsGit avatar Apr 25 '24 11:04 gregorsGit