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 @@ 1 - 20 - 20 20 20 20