internal unsafe override void OnUpdateResource(object sender, EventArgs e) { base.OnUpdateResource(sender, e); var format = PixelFormat; var bytesPerPixel = (format.GetBitsPerPixel() + 7) / 8; var width = (uint)PixelWidth; var height = (uint)PixelHeight; var rowPitch = 4 * ((width * bytesPerPixel + 3) / 4); var pixels = new byte[rowPitch * height]; fixed(byte *pixelsPtr = pixels) { var pixelsIPtr = new IntPtr(pixelsPtr); CopyPixels(null, (int)rowPitch, pixelsIPtr, pixels.Length); var data = new MemoryTextureData { Format = format, Dimension = 2, Width = width, Height = height, RowPitch = rowPitch, Pixels = pixelsIPtr, PixelsLength = (uint)pixels.Length }; MediaResourceManager.Current.UpdateMemoryTexture(_textureRes.Value, ref data); } }
public void UpdateMemoryTexture(IResource res, ref MemoryTextureData data) { _resourceManager.UpdateMemoryTexture(res, ref data); }