Add setting to disable anti-aliasing

This commit is contained in:
wheaney 2024-06-26 16:09:07 -07:00
parent d8c0921576
commit 0ee2a5debb
4 changed files with 32 additions and 8 deletions

View File

@ -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);

View File

@ -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 {

View File

@ -118,6 +118,15 @@
Automatically set the headset as the primary display upon connection
</description>
</key>
<key name="disable-anti-aliasing" type="b">
<default>
false
</default>
<summary>Disable anti-aliasing</summary>
<description>
Disable anti-aliasing
</description>
</key>
<key name="developer-mode" type="b">
<default>
false

View File

@ -33,8 +33,6 @@
<property name="child">
<object class="GtkBox">
<property name="orientation">1</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">20</property>