Right after you create your device, use use code like this to get a pointer to the "screen" (the default colour target and default depth target).IDirect3DSurface9* defaultColorBuffer = 0; IDirect3DSurface9* defaultDepthBuffer = 0; device->GetRenderTarget( 0, &defaultColorBuffer ); device->GetDepthStencilSurface( &defaultDepthBuffer );
After rendering to a texture, you can use device->SetRenderTarget(defaultColorBuffer) to go back to rendering to the screen.
Yes, SetRenderTarget is the correct way to render to textures
 ninja'ed by LS
And those surfaces has to be Released at the end of the program, and also released and reaquired when changing display settings?