Skip to content

Instantly share code, notes, and snippets.

Created June 17, 2013 21:01
Show Gist options
  • Save anonymous/5800395 to your computer and use it in GitHub Desktop.
Save anonymous/5800395 to your computer and use it in GitHub Desktop.
public void Paint(IntPtr srcBuffer, int srcRowSpan, AweRect srcRect, AweRect destRect)
{
var context = GraphicsManager.Current.Device.ImmediateContext;
var dataBox = context.MapSubresource(TempTexture, 0, MapMode.Write, MapFlags.None);
unsafe
{
var destPerDepthPtr = (byte*) dataBox.DataPointer;
var sourcePtr = (byte*) srcBuffer;
sourcePtr += srcRect.Y*srcRowSpan;
var destPtr = destPerDepthPtr;
// Iterate on each line
for (int i = 0; i < srcRect.Height; i++)
{
SharpDX.Utilities.CopyMemory((IntPtr) destPtr, (IntPtr) sourcePtr + srcRect.X * 4, srcRowSpan);
destPtr += dataBox.RowPitch;
sourcePtr += srcRowSpan;
}
}
context.CopySubresourceRegion(TempTexture, 0,
new ResourceRegion(0, 0, 0, srcRect.Width, srcRect.Height, 1),
Texture, 0, destRect.X, destRect.Y, 0);
context.UnmapSubresource(TempTexture, 0);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment