Core - Update GraphicsConfig

This commit is contained in:
miku-666
2025-11-19 21:36:51 +01:00
parent 83f0aff8b7
commit e3259a8f5c
5 changed files with 16 additions and 39 deletions

View File

@@ -3,30 +3,20 @@ using System.Drawing.Drawing2D;
namespace PckStudio.Core.Extensions
{
public struct GraphicsConfig
public readonly struct GraphicsConfig(InterpolationMode interpolationMode, SmoothingMode smoothingMode, PixelOffsetMode pixelOffsetMode)
{
public GraphicsConfig()
{
CompositingQuality = default;
InterpolationMode = default;
SmoothingMode = default;
PixelOffsetMode = default;
CompositingMode = default;
}
public InterpolationMode InterpolationMode { get; } = interpolationMode;
public SmoothingMode SmoothingMode { get; } = smoothingMode;
public PixelOffsetMode PixelOffsetMode { get; } = pixelOffsetMode;
public CompositingMode CompositingMode { get; set; }
public CompositingQuality CompositingQuality { get; set; }
public InterpolationMode InterpolationMode { get; set; }
public SmoothingMode SmoothingMode { get; set; }
public PixelOffsetMode PixelOffsetMode { get; set; }
public static GraphicsConfig PixelPerfect()
=> new GraphicsConfig(InterpolationMode.NearestNeighbor, SmoothingMode.None, PixelOffsetMode.HighQuality);
}
public static class GraphicsExtensions
{
public static void ApplyConfig(this Graphics graphics, GraphicsConfig config)
{
graphics.CompositingMode = config.CompositingMode;
graphics.CompositingQuality = config.CompositingQuality;
graphics.InterpolationMode = config.InterpolationMode;
graphics.SmoothingMode = config.SmoothingMode;
graphics.PixelOffsetMode = config.PixelOffsetMode;