public override void Blit( HardwarePixelBuffer src, BasicBox srcBox, BasicBox dstBox )
{
D3DHardwarePixelBuffer _src = (D3DHardwarePixelBuffer)src;
if ( surface != null && _src.surface != null )
{
// Surface-to-surface
System.Drawing.Rectangle dsrcRect = ToD3DRectangle( srcBox );
System.Drawing.Rectangle ddestRect = ToD3DRectangle( dstBox );
// D3DXLoadSurfaceFromSurface
D3D.Surface.FromSurface( surface, _src.surface, D3D.Filter.None, 0, dsrcRect, ddestRect );
}
else if ( volume != null && _src.volume != null )
{
// Volume-to-volume
D3D.Box dsrcBox = ToD3DBox( srcBox );
D3D.Box ddestBox = ToD3DBox( dstBox );
// D3DXLoadVolumeFromVolume
D3D.Volume.FromVolume( volume, _src.volume, D3D.Filter.None, 0, dsrcBox, ddestBox );
}
else
// Software fallback
base.Blit( _src, srcBox, dstBox );
}