Page 1 of 1

[1.7.4][Mogre][Solved]Access Violation at nukeOverlayElement using SdkTrayGUI

Posted: Wed Nov 21, 2018 4:08 am
by randomcode
Ogre Version: :1.74:

Code: Select all

       public static void nukeOverlayElement(OverlayElement element) 
       {
            Mogre.OverlayContainer container = element as Mogre.OverlayContainer;
            if (container != null) {
                List<Mogre.OverlayElement> toDelete = new List<Mogre.OverlayElement>();

                Mogre.OverlayContainer.ChildIterator children = container.GetChildIterator();
                while (children.MoveNext()) {
                    toDelete.Add(children.Current);
                }

                for (int i = 0; i < toDelete.Count; i++) {
                    nukeOverlayElement(toDelete[i]);
                }
            }
            if (element != null) {
                Mogre.OverlayContainer parent = element.Parent;
                if (parent != null)
                    parent.RemoveChild(element.Name);
                Mogre.OverlayManager.Singleton.DestroyOverlayElement(element);
            }
        }
I use nukeOverlayElement to destroy the overlayElement, but it crashed at the

Code: Select all

Mogre.OverlayManager.Singleton.DestroyOverlayElement(element);
Any ideas?


---------------------------Edit-----------------------

This problem has been solved myself
Cased by the wrong call:
I should use the

Code: Select all

nukeOverlayElement
directly to destroy an overlay element rather than

Code: Select all

DestroyOverlayElement

Re: Access Violation at nukeOverlayElement using SdkTrayGUI

Posted: Sun Dec 16, 2018 12:43 pm
by paroj
try to reproduce with current master

Re: Access Violation at nukeOverlayElement using SdkTrayGUI

Posted: Wed Feb 06, 2019 1:01 pm
by randomcode
paroj wrote: Sun Dec 16, 2018 12:43 pm try to reproduce with current master
Thanks, it has been solved :D