From 35e2b2d71d40ccab5daa72e003a51dc814634d67 Mon Sep 17 00:00:00 2001
From: wheaney <42350981+wheaney@users.noreply.github.com>
Date: Mon, 8 Sep 2025 13:37:12 -0700
Subject: [PATCH] Add anti-aliasing quality menu
---
kwin/src/breezydesktopconfig.kcfg | 7 +++++
kwin/src/breezydesktopeffect.cpp | 6 ++++
kwin/src/breezydesktopeffect.h | 4 +++
kwin/src/kcm/breezydesktopeffectkcm.cpp | 2 ++
kwin/src/kcm/breezydesktopeffectkcm.ui | 37 +++++++++++++++++++++++--
kwin/src/qml/main.qml | 6 ++--
6 files changed, 57 insertions(+), 5 deletions(-)
diff --git a/kwin/src/breezydesktopconfig.kcfg b/kwin/src/breezydesktopconfig.kcfg
index 3e47677..7ba2b62 100644
--- a/kwin/src/breezydesktopconfig.kcfg
+++ b/kwin/src/breezydesktopconfig.kcfg
@@ -50,5 +50,12 @@
How to arrange monitors: 0=Auto, 1=Horizontal, 2=Vertical, 3=Flat
+
+ 3
+ 0
+ 3
+
+ 0=None, 1=Medium, 2=High, 3=Very High
+
diff --git a/kwin/src/breezydesktopeffect.cpp b/kwin/src/breezydesktopeffect.cpp
index 25e79a7..e1f83e8 100644
--- a/kwin/src/breezydesktopeffect.cpp
+++ b/kwin/src/breezydesktopeffect.cpp
@@ -203,10 +203,12 @@ void BreezyDesktopEffect::reconfigure(ReconfigureFlags)
qreal horiz = BreezyDesktopConfig::displayHorizontalOffset() / 100.0f;
qreal vert = BreezyDesktopConfig::displayVerticalOffset() / 100.0f;
int wrap = BreezyDesktopConfig::displayWrappingScheme();
+ int aaQuality = BreezyDesktopConfig::antialiasingQuality();
bool changed = false;
if (!qFuzzyCompare(m_displayHorizontalOffset, horiz)) { m_displayHorizontalOffset = horiz; changed = true; }
if (!qFuzzyCompare(m_displayVerticalOffset, vert)) { m_displayVerticalOffset = vert; changed = true; }
if (m_displayWrappingScheme != wrap) { m_displayWrappingScheme = wrap; Q_EMIT displayWrappingSchemeChanged(); }
+ if (m_antialiasingQuality != aaQuality) { m_antialiasingQuality = aaQuality; Q_EMIT antialiasingQualityChanged(); }
if (changed) Q_EMIT displayOffsetChanged();
}
@@ -408,6 +410,10 @@ bool BreezyDesktopEffect::customBannerEnabled() const {
return m_customBannerEnabled;
}
+int BreezyDesktopEffect::antialiasingQuality() const {
+ return m_antialiasingQuality;
+}
+
bool BreezyDesktopEffect::checkParityByte(const char* data) {
const uint8_t parityByte = static_cast(data[DataView::IMU_PARITY_BYTE[DataView::OFFSET_INDEX]]);
uint8_t parity = 0;
diff --git a/kwin/src/breezydesktopeffect.h b/kwin/src/breezydesktopeffect.h
index 674605f..e0ad83b 100644
--- a/kwin/src/breezydesktopeffect.h
+++ b/kwin/src/breezydesktopeffect.h
@@ -35,6 +35,7 @@ namespace KWin
Q_PROPERTY(qreal lensDistanceRatio READ lensDistanceRatio NOTIFY devicePropertiesChanged)
Q_PROPERTY(bool sbsEnabled READ sbsEnabled NOTIFY devicePropertiesChanged)
Q_PROPERTY(bool customBannerEnabled READ customBannerEnabled NOTIFY devicePropertiesChanged)
+ Q_PROPERTY(int antialiasingQuality READ antialiasingQuality NOTIFY antialiasingQualityChanged)
public:
@@ -71,6 +72,7 @@ namespace KWin
qreal lensDistanceRatio() const;
bool sbsEnabled() const;
bool customBannerEnabled() const;
+ int antialiasingQuality() const;
void showCursor();
void hideCursor();
@@ -98,6 +100,7 @@ namespace KWin
void cursorImageSourceChanged();
void cursorPosChanged();
void devicePropertiesChanged();
+ void antialiasingQualityChanged();
protected:
QVariantMap initialProperties(Output *screen) override;
@@ -134,6 +137,7 @@ namespace KWin
qreal m_displayHorizontalOffset = 0.0;
qreal m_displayVerticalOffset = 0.0;
int m_displayWrappingScheme = 0; // 0=auto,1=horizontal,2=vertical,3=flat
+ int m_antialiasingQuality = 3; // 0=None, 1=Medium, 2=High, 3=VeryHigh
QList