Starting work on simultaneous rendering. Copied ProxyDeviceFixed to new ProxyDeviceSimultaneous as a starting point. Started working through D3dDevice methods trying to determine which method calls will need to be recorded to enable rendering of the second eye.
not much happening here, just organizing thoughts
BaseDirect3DSurface for use with surface proxies
Direct3DSurface9Vireio proxy for stereo surface handling.
D3DProxyDeviceSimultaneous removed and code moved to D3DProxyDevice where it should be. (was separate to try and avoid breaking existing proxies but that  was just going to create a mess so dumped that idea.)
Initial basic render target duplication added.
Managing SetRenderTarget and CreateRenderTarget. Tracking active render targets. Can switch between left and right render target sets. Drawing - Clear implemented only so far. Modified StereoView.cpp to use stereo back buffer which is being maintained by D3DProxyDevice. Working with Side by Side and Fixed proxy first. Everything else is totally broken (and fixed only supports Clear :p)
Working for Clear and drawPrimitive in basic application.
Alt-tab breaks rendering on return to d3d application. Currently working on that.
Unreleased surface found and fixed. Alt-tab working again.
And apparently a bunch of stuff from yesterday I didnt commit. Don't work sleep deprived kids.
Fix rendering side selection so mono surfaces are only drawn once (on the same pass as left eye surfaces)
Fixed SetRenderTarget behaviour to account for current rendering side when SetRenderTarget is called,
Renamed stereo surface files to better match naming convention of other proxy files.
Grouped files in a more structured fashion in project
Stereo Drawing implementations for all Draw methods of device.
Debug message stating number of back buffers being requested.
Added check to see if switching to right view is needed.
Also prevents side switch attempts that would result in trying to set the primary [0] render target to null
Changed right Clear to use specified color rather than testing red.
Comments, notes.
Member access level changes
Added CreateOffscreenPlaneSurface and FillColor support.
BaseDirect3DTexture added
A lot of debug output added
GetRenderTarget implemented.
More debugging  output
erg, named files and classes incorrectly.
Started on CreateTexture and added method signatures to stereo texture. Still pondering the approach for textures.
Round in a circle and...
Added non-stereo surface wrapper. Implemented more of surface that I hoped to avoid. Realised everything will have to be wrapped.
Added a non-stereo proxy surface for non-stereo surfaces (have to provide custom GetDevice).
Renamed some proxies to avoid future conflicts with d3d10 and 11 proxies.
Updated surface behaviour to account for the possibility of being in a container.
Added non-stereo ProxyTexture. Implemented surface level container and management in ProxyTexture.
Made pointers to actual object in wrappers const. If a wrapper is need for a new actual object then a new wrapper should be created.