public unsafe void ReferencesCountedCorrectly() { var colorspace = SKColorSpace.CreateRgb( new SKColorSpaceTransferFn { A = 0.1f, B = 0.2f, C = 0.3f, D = 0.4f, E = 0.5f, F = 0.6f }, SKMatrix44.CreateIdentity()); var handle = colorspace.Handle; Assert.Equal(1, handle.GetReferenceCount(false)); var info = new SKImageInfo(1, 1, SKImageInfo.PlatformColorType, SKAlphaType.Premul, colorspace); Assert.Equal(1, handle.GetReferenceCount(false)); var pixels = new byte[info.BytesSize]; fixed(byte *p = pixels) { var pixmap = new SKPixmap(info, (IntPtr)p); Assert.Equal(2, handle.GetReferenceCount(false)); pixmap.Dispose(); Assert.Equal(1, handle.GetReferenceCount(false)); } GC.KeepAlive(colorspace); }
/// <inheritdoc /> public void Dispose() { Surface.Dispose(); _pixelData.Dispose(); ReleaseUnmanagedResources(); GC.SuppressFinalize(this); }