Stereo3D CopyRects too slow! How can you write to the backbuffer?
The standard technique for 3D fullscreen mode is:
1) m_pD3D->CreateDevice
2) m_pD3DDevice->CreateImageSurface - create double wide 3D surface
3) m_pD3DSurface3D->LockRect
4) load left and right images onto wide surface
5) m_pD3DSurface3D->UnlockRect

// for now this appears to be the only way to xfer the 3D surface to the backbuffer
m_pD3DDevice->CopyRects(
m_pD3DSurface3D,
&rectDisplay,
1,
pD3DBackBuffer,
NULL);

The image load time is bad enough, but the CopyRects time is worse!

Everything I tried, to directly write to the backbuffer using pointers,
caused access violations,
because the backbuffer is half the width of double wide help surface.

Is there anyway to load the left and right images directly to the backbuffer,
without using the double wide 3D surface and CopyRects???

Perhaps some GPU coding tricks, if this cannot be done in DirectX???

Dennis
The standard technique for 3D fullscreen mode is:

1) m_pD3D->CreateDevice

2) m_pD3DDevice->CreateImageSurface - create double wide 3D surface

3) m_pD3DSurface3D->LockRect

4) load left and right images onto wide surface

5) m_pD3DSurface3D->UnlockRect



// for now this appears to be the only way to xfer the 3D surface to the backbuffer

m_pD3DDevice->CopyRects(

m_pD3DSurface3D,

&rectDisplay,

1,

pD3DBackBuffer,

NULL);



The image load time is bad enough, but the CopyRects time is worse!



Everything I tried, to directly write to the backbuffer using pointers,

caused access violations,

because the backbuffer is half the width of double wide help surface.



Is there anyway to load the left and right images directly to the backbuffer,

without using the double wide 3D surface and CopyRects???



Perhaps some GPU coding tricks, if this cannot be done in DirectX???



Dennis

#1
Posted 08/24/2007 03:18 PM   
Scroll To Top