Muttley, possibly your problem could be that you need to redefine the ViewPort, not the projection matrix, after you've changed resolution. If it is still using the old viewport specification then it's basically going to resize your graphics output to fit into an area the size of the previous resolution. A simple call to SetViewport with the width and height of the new resolution, after you've switched to it, should fix that - if that's the problem. And if that is the problem, it means that your projection matrix IS kept but because your viewport is also kept it's interfering with the output. Changing the projection matrix to scale your graphics according to the aspect ratio needs to also be accompanied by a redefinition of the viewport when the size/resolution changes, otherwise it doesn't know how many pixels the output should render to.
Hi IH, thanks for the suggestions.
I've now tried to change the viewport when the app is resumed, but it makes no difference. I'm not sure if I made it clear in my post, but I'm not changing the resolution at all. This is purely down to someone Alt-Tabbing away from the game in full-screen mode and then bring the app back to to foreground again.
Using the OpenGL driver it works perfectly with no modifications at all.
Cheers
Muttley