Browse Source

DangerousGetPixelRowMemory

af/UniformUnmanagedMemoryPoolMemoryAllocator-02-MemoryGuards
Anton Firszov 5 years ago
parent
commit
409cfb104d
  1. 4
      src/ImageSharp/Advanced/AdvancedImageExtensions.cs
  2. 8
      tests/ImageSharp.Tests/Advanced/AdvancedImageExtensionsTests.cs

4
src/ImageSharp/Advanced/AdvancedImageExtensions.cs

@ -143,7 +143,7 @@ namespace SixLabors.ImageSharp.Advanced
/// <param name="source">The source.</param> /// <param name="source">The source.</param>
/// <param name="rowIndex">The row.</param> /// <param name="rowIndex">The row.</param>
/// <returns>The <see cref="Span{TPixel}"/></returns> /// <returns>The <see cref="Span{TPixel}"/></returns>
public static Memory<TPixel> GetPixelRowMemory<TPixel>(this ImageFrame<TPixel> source, int rowIndex) public static Memory<TPixel> DangerousGetPixelRowMemory<TPixel>(this ImageFrame<TPixel> source, int rowIndex)
where TPixel : unmanaged, IPixel<TPixel> where TPixel : unmanaged, IPixel<TPixel>
{ {
Guard.NotNull(source, nameof(source)); Guard.NotNull(source, nameof(source));
@ -161,7 +161,7 @@ namespace SixLabors.ImageSharp.Advanced
/// <param name="source">The source.</param> /// <param name="source">The source.</param>
/// <param name="rowIndex">The row.</param> /// <param name="rowIndex">The row.</param>
/// <returns>The <see cref="Span{TPixel}"/></returns> /// <returns>The <see cref="Span{TPixel}"/></returns>
public static Memory<TPixel> GetPixelRowMemory<TPixel>(this Image<TPixel> source, int rowIndex) public static Memory<TPixel> DangerousGetPixelRowMemory<TPixel>(this Image<TPixel> source, int rowIndex)
where TPixel : unmanaged, IPixel<TPixel> where TPixel : unmanaged, IPixel<TPixel>
{ {
Guard.NotNull(source, nameof(source)); Guard.NotNull(source, nameof(source));

8
tests/ImageSharp.Tests/Advanced/AdvancedImageExtensionsTests.cs

@ -116,7 +116,7 @@ namespace SixLabors.ImageSharp.Tests.Advanced
for (int y = 0; y < image.Height; y++) for (int y = 0; y < image.Height; y++)
{ {
// Act: // Act:
Memory<TPixel> rowMemory = image.GetPixelRowMemory(y); Memory<TPixel> rowMemory = image.DangerousGetPixelRowMemory(y);
Span<TPixel> span = rowMemory.Span; Span<TPixel> span = rowMemory.Span;
// Assert: // Assert:
@ -134,8 +134,8 @@ namespace SixLabors.ImageSharp.Tests.Advanced
{ {
using Image<TPixel> image = provider.GetImage(); using Image<TPixel> image = provider.GetImage();
Memory<TPixel> memory3 = image.GetPixelRowMemory(3); Memory<TPixel> memory3 = image.DangerousGetPixelRowMemory(3);
Memory<TPixel> memory10 = image.GetPixelRowMemory(10); Memory<TPixel> memory10 = image.DangerousGetPixelRowMemory(10);
image.Mutate(c => c.Resize(8, 8)); image.Mutate(c => c.Resize(8, 8));
@ -154,7 +154,7 @@ namespace SixLabors.ImageSharp.Tests.Advanced
using Image<TPixel> image = provider.GetImage(); using Image<TPixel> image = provider.GetImage();
Memory<TPixel> memory = image.GetPixelRowMemory(image.Height - 1); Memory<TPixel> memory = image.DangerousGetPixelRowMemory(image.Height - 1);
Span<TPixel> span = image.GetPixelRowSpan(image.Height - 1); Span<TPixel> span = image.GetPixelRowSpan(image.Height - 1);
Assert.True(span == memory.Span); Assert.True(span == memory.Span);

Loading…
Cancel
Save