I know there are a lot of threads around the internet about that problem. I know that DirectX needs a Device Reset if Backbuffer needs to be resized. But I din't found any good solution to workaround that problem. I have windows application including also some dockingPanels.. so a lot of posibilities where the user can change the size of my directX window (i'm using a panel).
So actually I'm doing something like this to do one Reset:
1. Backup all Textures and Meshes with reading them back in a MemoryStream
2. Destroy all Objects Textures, Buffers, Targets..
3. Do a Device Reset
4. Recreate all Textures and Meshes by reading from MemoryStream
This procedure needs (with a small scene) around 2-3 Seconds on my monster PC.. I have no Idea how its on a small laptop.. This is very bad, because I saw some similar applications (also DX) where the resize seems to needs no time..
So I think there might be some possible solutions:
1. I heard about that the used Pool also defines that DirectX can make a copy on system memory automaticly but I have no Idea how to do this...
2. I was thinking about to create a fullscreen BackBuffer one time, and just render in a ViewPort which has correct Size/Position of my RenderPanel on Screen. But here I have no Idea how to get the output correct on the panel... and this could also reduce performance..
Finally I think this is a biggest problem of DirectX..., because before I was using OpenGL and there is no Problem like this.. Is that maybe fixed in DirectX10 or 11?
Hope somebody can help me..