   Viewport Crap
  Why is it so hard to set a viewport in Direct3D without screwing up the scaling of the scene in a window.  I'm using multiple swap chains and upon resizing, I set the device viewport according to the new size, but this does not work.  Even without setting the viewport.  I'm wondering if I missed something like resetting the device for every viewport reset?Why cannot it work just like in the God Holly GraphicsAPI ((((((OpenGL)))))????   
  You need to recalculate the Projection matrix when you resize a viewport. Also, make sure, every viewport has its own Projection-matrix! And, when you switch to another viewport when rendering (for 4 viewports, 4 times per frame), use Device->SetViewport(SizeOfYourWindow) to bring everything into the right scale. :)   ;  Correct for OpenGL, this is what I always do.  Did not work for Direct3D 9 with multiple swap chains.  ;  You shouldn't need to mess with the viewport at all, unless you need to render to a portion of a render target. Every time you set a render target onto the device, the viewport is automatically set to match the dimensions of that render target.   ;  When I set the render target, it gets a completely different dimensions than what it's.  Even responding to resize event does not change the viewport automatically.Resetting the viewport is no help here.Not resetting it does nothing too.   ;  It sounds like you're not creating a new swap chain when you're resizing. If you're resizing a window that uses an additional swap chain (one that you created yourself) you need to Release that swap chain, Release and pointers you have to that swap chain's backbuffer, and then create a new swap chain with the new dimensions. If you want to resize a window that uses the implicit swap chain (the swap chain that's built into the device), then you need to call Reset on the device.   