Original Post
Some of you must think I''m thick, I''m posting questions here so often, but here''s another one...
I''ve set up a primary surface, attached a back buffer, created an offscreen surface, loaded a bitmap, and copied the bitmap to the offscreen surface.
Now, I want to blit the offscreen surface (all of it, I''m only exploring after all) to the back buffer.
I call lpddsBack->Blt(...) and it returns DDERR_SURFACELOST. I figure the surface memory might be considered lost if I''m supposed to lock before blitting (the books I have don''t mention it but it seems reasonable!) so I lock one or both surfaces (the back buffer and/or offscreen buffer) and it returns DDERR_SURFACEBUSY, so clearly I''m not supposed to lock the surfaces!
So, why is the surface memory lost when I try to blit? The MSDN says you can use Restore() to restore the memory but I''d really like to find out why it happened in the first place as I would imagine that calling Restore every time you want to blit is not ideal...
Anybody got any ideas?