Skip to content

Commit 5a36bc3

Browse files
committed
Merge branch 'development'
2 parents 2a58837 + faa2143 commit 5a36bc3

File tree

4 files changed

+13
-35
lines changed

4 files changed

+13
-35
lines changed

src/Artemis.Core/Artemis.Core.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
<PackageReference Include="LiteDB" Version="5.0.16" />
4444
<PackageReference Include="McMaster.NETCore.Plugins" Version="1.4.0" />
4545
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
46-
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.45" />
47-
<PackageReference Include="RGB.NET.Layout" Version="2.0.0-prerelease.45" />
48-
<PackageReference Include="RGB.NET.Presets" Version="2.0.0-prerelease.45" />
46+
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.53" />
47+
<PackageReference Include="RGB.NET.Layout" Version="2.0.0-prerelease.53" />
48+
<PackageReference Include="RGB.NET.Presets" Version="2.0.0-prerelease.53" />
4949
<PackageReference Include="Serilog" Version="2.12.0" />
5050
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
5151
<PackageReference Include="Serilog.Sinks.Debug" Version="2.0.0" />

src/Artemis.Core/RGB.NET/SKTexture.cs

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
2-
using System.Buffers;
32
using System.Collections.Generic;
3+
using System.Runtime.CompilerServices;
44
using System.Runtime.InteropServices;
55
using Artemis.Core.SkiaSharp;
66
using RGB.NET.Core;
@@ -56,31 +56,12 @@ internal Color GetColorAtRenderTarget(in RenderTarget renderTarget)
5656
if (skRectI.Width <= 0 || skRectI.Height <= 0)
5757
return Color.Transparent;
5858

59-
int bufferSize = skRectI.Width * skRectI.Height * DATA_PER_PIXEL;
60-
if (bufferSize <= STACK_ALLOC_LIMIT)
61-
{
62-
Span<byte> buffer = stackalloc byte[bufferSize];
63-
GetRegionData(skRectI.Left, skRectI.Top, skRectI.Width, skRectI.Height, buffer);
64-
65-
Span<byte> pixelData = stackalloc byte[DATA_PER_PIXEL];
66-
Sampler.Sample(new SamplerInfo<byte>(skRectI.Width, skRectI.Height, buffer), pixelData);
67-
68-
return GetColor(pixelData);
69-
}
70-
else
71-
{
72-
byte[] rent = ArrayPool<byte>.Shared.Rent(bufferSize);
59+
SamplerInfo<byte> samplerInfo = new(skRectI.Left, skRectI.Top, skRectI.Width, skRectI.Height, Stride, DataPerPixel, Data);
7360

74-
Span<byte> buffer = new Span<byte>(rent).Slice(0, bufferSize);
75-
GetRegionData(skRectI.Left, skRectI.Top, skRectI.Width, skRectI.Height, buffer);
61+
Span<byte> pixelData = stackalloc byte[DATA_PER_PIXEL];
62+
Sampler.Sample(samplerInfo, pixelData);
7663

77-
Span<byte> pixelData = stackalloc byte[DATA_PER_PIXEL];
78-
Sampler.Sample(new SamplerInfo<byte>(skRectI.Width, skRectI.Height, buffer), pixelData);
79-
80-
ArrayPool<byte>.Shared.Return(rent);
81-
82-
return GetColor(pixelData);
83-
}
64+
return GetColor(pixelData);
8465
}
8566

8667
private void ReleaseUnmanagedResources()
@@ -106,7 +87,6 @@ public void Dispose()
10687

10788
#region Constants
10889

109-
private const int STACK_ALLOC_LIMIT = 1024;
11090
private const int DATA_PER_PIXEL = 4;
11191

11292
#endregion
@@ -128,10 +108,8 @@ internal void CopyPixelData()
128108
}
129109

130110
/// <inheritdoc />
131-
protected override Color GetColor(in ReadOnlySpan<byte> pixel)
132-
{
133-
return new Color(pixel[2], pixel[1], pixel[0]);
134-
}
111+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
112+
protected override Color GetColor(in ReadOnlySpan<byte> pixel) => new(pixel[2], pixel[1], pixel[0]);
135113

136114
/// <inheritdoc />
137115
public override Color this[in Rectangle rectangle] => Color.Transparent;

src/Artemis.UI.Shared/Artemis.UI.Shared.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<PackageReference Include="Material.Icons.Avalonia" Version="2.0.0-preview3" />
2121
<PackageReference Include="ReactiveUI" Version="18.4.26" />
2222
<PackageReference Include="ReactiveUI.Validation" Version="3.1.7" />
23-
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.45" />
23+
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.53" />
2424
<PackageReference Include="SkiaSharp" Version="2.88.3" />
2525
</ItemGroup>
2626
<ItemGroup>

src/Artemis.UI/Artemis.UI.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
<PackageReference Include="Octopus.Octodiff" Version="2.0.261" />
3434
<PackageReference Include="ReactiveUI" Version="18.4.26" />
3535
<PackageReference Include="ReactiveUI.Validation" Version="3.1.7" />
36-
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.45" />
37-
<PackageReference Include="RGB.NET.Layout" Version="2.0.0-prerelease.45" />
36+
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.53" />
37+
<PackageReference Include="RGB.NET.Layout" Version="2.0.0-prerelease.53" />
3838
<PackageReference Include="SkiaSharp" Version="2.88.3" />
3939
<PackageReference Include="Splat.DryIoc" Version="14.6.8" />
4040
</ItemGroup>

0 commit comments

Comments
 (0)