diff --git a/gnome/src/extension.js b/gnome/src/extension.js
index bfc27db..2c46b97 100644
--- a/gnome/src/extension.js
+++ b/gnome/src/extension.js
@@ -49,6 +49,7 @@ export default class BreezyDesktopExtension extends Extension {
this._curved_display_binding = null;
this._display_size_binding = null;
this._look_ahead_override_binding = null;
+ this._disable_anti_aliasing_binding = null;
this._optimal_monitor_config_binding = null;
this._headset_as_primary_binding = null;
@@ -236,6 +237,7 @@ export default class BreezyDesktopExtension extends Extension {
toggle_display_distance_start: this.settings.get_double('toggle-display-distance-start'),
toggle_display_distance_end: this.settings.get_double('toggle-display-distance-end'),
look_ahead_override: this.settings.get_int('look-ahead-override'),
+ disable_anti_aliasing: this.settings.get_boolean('disable-anti-aliasing')
});
this._update_follow_threshold(this.settings);
@@ -253,6 +255,7 @@ export default class BreezyDesktopExtension extends Extension {
this._curved_display_binding = this.settings.bind('curved-display', this._xr_effect, 'curved-display', Gio.SettingsBindFlags.DEFAULT)
this._display_size_binding = this.settings.bind('display-size', this._xr_effect, 'display-size', Gio.SettingsBindFlags.DEFAULT);
this._look_ahead_override_binding = this.settings.bind('look-ahead-override', this._xr_effect, 'look-ahead-override', Gio.SettingsBindFlags.DEFAULT);
+ this._disable_anti_aliasing_binding = this.settings.bind('disable-anti-aliasing', this._xr_effect, 'disable-anti-aliasing', Gio.SettingsBindFlags.DEFAULT);
this._overlay.add_effect_with_name('xr-desktop', this._xr_effect);
Meta.disable_unredirect_for_display(global.display);
@@ -421,6 +424,10 @@ export default class BreezyDesktopExtension extends Extension {
this.settings.unbind(this._look_ahead_override_binding);
this._look_ahead_override_binding = null;
}
+ if (this._disable_anti_aliasing_binding) {
+ this.settings.unbind(this._disable_anti_aliasing_binding);
+ this._disable_anti_aliasing_binding = null;
+ }
if (this._xr_effect) {
if (this._widescreen_mode_effect_state_connection) {
this._xr_effect.disconnect(this._widescreen_mode_effect_state_connection);
diff --git a/gnome/src/xrEffect.js b/gnome/src/xrEffect.js
index eb2f2ed..e68ad30 100644
--- a/gnome/src/xrEffect.js
+++ b/gnome/src/xrEffect.js
@@ -267,6 +267,13 @@ export const XREffect = GObject.registerClass({
-1,
45,
-1
+ ),
+ 'disable-anti-aliasing': GObject.ParamSpec.boolean(
+ 'disable-anti-aliasing',
+ 'Disable anti-aliasing',
+ 'Disable anti-aliasing for the effect',
+ GObject.ParamFlags.READWRITE,
+ false
)
}
}, class XREffect extends Shell.GLSLEffect {
@@ -377,12 +384,15 @@ export const XREffect = GObject.registerClass({
}
}
- // improves sampling quality for smooth text and edges
- this.get_pipeline().set_layer_filters (
- 0,
- Cogl.PipelineFilter.LINEAR_MIPMAP_LINEAR,
- Cogl.PipelineFilter.LINEAR
- );
+ if (!this.disable_anti_aliasing) {
+ Globals.logger.log('Setting layer filters');
+ // improves sampling quality for smooth text and edges
+ this.get_pipeline().set_layer_filters(
+ 0,
+ Cogl.PipelineFilter.LINEAR_MIPMAP_LINEAR,
+ Cogl.PipelineFilter.LINEAR
+ );
+ }
super.vfunc_paint_target(node, paintContext);
} else {
diff --git a/ui/data/com.xronlinux.BreezyDesktop.gschema.xml b/ui/data/com.xronlinux.BreezyDesktop.gschema.xml
index eb23a32..7b33ad7 100644
--- a/ui/data/com.xronlinux.BreezyDesktop.gschema.xml
+++ b/ui/data/com.xronlinux.BreezyDesktop.gschema.xml
@@ -118,6 +118,15 @@
Automatically set the headset as the primary display upon connection
+
+
+ false
+
+ Disable anti-aliasing
+
+ Disable anti-aliasing
+
+
false
diff --git a/ui/src/gtk/connected-device.ui b/ui/src/gtk/connected-device.ui
index 5502bd6..215ca1c 100644
--- a/ui/src/gtk/connected-device.ui
+++ b/ui/src/gtk/connected-device.ui
@@ -33,8 +33,6 @@