mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 20:06:33 +00:00
Reuse shaders/paint where possible
Added noise test
This commit is contained in:
1 parent
672ba0d037
commit
34c38ca2fe
14 files changed
+494
-31
No files matched your search
@@ -12,6 +12,7 @@ namespace Artemis.Plugins.LayerElements.Brush
|
||||
{
|
||||
private SKShader _shader;
|
||||
private List<SKColor> _testColors;
|
||||
private SKPaint _paint;
|
||||
|
||||
public BrushLayerElement(Layer layer, Guid guid, BrushLayerElementSettings settings, LayerElementDescriptor descriptor) : base(layer, guid, settings, descriptor)
|
||||
{
|
||||
@@ -52,11 +53,13 @@ namespace Artemis.Plugins.LayerElements.Brush
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
var oldShader = _shader;
|
||||
_shader = shader;
|
||||
|
||||
var oldShader = _shader;
|
||||
var oldPaint = _paint;
|
||||
_shader = shader;
|
||||
_paint = new SKPaint {Shader = _shader, FilterQuality = SKFilterQuality.Low};
|
||||
oldShader?.Dispose();
|
||||
oldPaint?.Dispose();
|
||||
}
|
||||
|
||||
public new BrushLayerElementSettings Settings { get; }
|
||||
@@ -68,10 +71,7 @@ namespace Artemis.Plugins.LayerElements.Brush
|
||||
|
||||
public override void Render(ArtemisSurface surface, SKCanvas canvas)
|
||||
{
|
||||
using (var paint = new SKPaint {Shader = _shader, FilterQuality = SKFilterQuality.Low})
|
||||
{
|
||||
canvas.DrawRect(Layer.AbsoluteRenderRectangle, paint);
|
||||
}
|
||||
canvas.DrawRect(Layer.AbsoluteRenderRectangle, _paint);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user