Speculation of this nature isn't really gonna help things. I was really hoping someone else had encountered this issue themselves and could confirm that way that it is in fact a BlitzMax issue so that maybe I could then convince Mark to look into it.
It's obviously some kind of graphics related issue, and given that it doesn't occur when using OpenGL it almost certanly is either a limitation of DirectX, or a problem with how BlitzMax is shutting down/starting up DirectX apps.
Unfortunately since we don't have access to the code that does those things, the only person who can really be of any help with this problem is Mark or Simon or whoever the other guy working on the code is.
I already know the lines where the delay occurs. One is "FreeGadget Canvas" line, and the other is "End".
The issue's clearly something internal, dealing with freeing up something DirectX graphics related, and no amount of debug logging is going to provide me with any more information about what is going on.
Putting code in OnEnd() is pointless. It won't tell me anything. We'd have to know what shutdown code is actually executed before and after that for it to narrow down the problem.
It's obviously some kind of graphics related issue, and given that it doesn't occur when using OpenGL it almost certanly is either a limitation of DirectX, or a problem with how BlitzMax is shutting down/starting up DirectX apps.
Unfortunately since we don't have access to the code that does those things, the only person who can really be of any help with this problem is Mark or Simon or whoever the other guy working on the code is.
I already know the lines where the delay occurs. One is "FreeGadget Canvas" line, and the other is "End".
The issue's clearly something internal, dealing with freeing up something DirectX graphics related, and no amount of debug logging is going to provide me with any more information about what is going on.
Putting code in OnEnd() is pointless. It won't tell me anything. We'd have to know what shutdown code is actually executed before and after that for it to narrow down the problem.