mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 03:48:56 +00:00
Rendering - Sovled inconsistencies between software and Vulkan rendering
LED sampling - Improved LED sampling on <100% scale
This commit is contained in:
1 parent
a0faeb21fd
commit
eb7c89d4ad
15 files changed
+158
-76
No files matched your search
@@ -144,16 +144,17 @@ namespace Artemis.Core.Services
|
||||
|
||||
SKCanvas canvas = texture.Surface.Canvas;
|
||||
canvas.Save();
|
||||
canvas.Scale(texture.RenderScale);
|
||||
if (Math.Abs(texture.RenderScale - 1) > 0.001)
|
||||
canvas.Scale(texture.RenderScale);
|
||||
canvas.Clear(new SKColor(0, 0, 0));
|
||||
|
||||
|
||||
// While non-activated modules may be updated above if they expand the main data model, they may never render
|
||||
if (!ModuleRenderingDisabled)
|
||||
{
|
||||
foreach (Module module in modules.Where(m => m.IsActivated))
|
||||
module.InternalRender(args.DeltaTime, canvas, texture.ImageInfo);
|
||||
}
|
||||
|
||||
|
||||
OnFrameRendering(new FrameRenderingEventArgs(canvas, args.DeltaTime, _rgbService.Surface));
|
||||
canvas.RestoreToCount(-1);
|
||||
canvas.Flush();
|
||||
|
||||
@@ -258,9 +258,17 @@ namespace Artemis.Core.Services
|
||||
else
|
||||
_logger.Debug("Creating SKTexture with software-based graphics context");
|
||||
|
||||
float evenWidth = Surface.Boundary.Size.Width;
|
||||
if (evenWidth % 2 != 0)
|
||||
evenWidth++;
|
||||
float evenHeight = Surface.Boundary.Size.Height;
|
||||
if (evenHeight % 2 != 0)
|
||||
evenHeight++;
|
||||
|
||||
float renderScale = (float) _renderScaleSetting.Value;
|
||||
int width = Math.Max(1, MathF.Min(Surface.Boundary.Size.Width * renderScale, 4096).RoundToInt());
|
||||
int height = Math.Max(1, MathF.Min(Surface.Boundary.Size.Height * renderScale, 4096).RoundToInt());
|
||||
int width = Math.Max(1, MathF.Min(evenWidth * renderScale, 4096).RoundToInt());
|
||||
int height = Math.Max(1, MathF.Min(evenHeight * renderScale, 4096).RoundToInt());
|
||||
|
||||
_texture?.Dispose();
|
||||
_texture = new SKTexture(graphicsContext, width, height, renderScale);
|
||||
_textureBrush.Texture = _texture;
|
||||
|
||||
Reference in new issue
Block a user