diff --git a/aqt/__init__.py b/aqt/__init__.py
index dc2505790..edb0d3006 100644
--- a/aqt/__init__.py
+++ b/aqt/__init__.py
@@ -247,8 +247,6 @@ def setupGL(pm):
print("qt:", msg)
qInstallMessageHandler(msgHandler)
- print("Hardware acceleration set to", mode)
-
if mode == "auto":
return
elif isLin:
diff --git a/aqt/preferences.py b/aqt/preferences.py
index 8a9b81676..ad7c2ce62 100644
--- a/aqt/preferences.py
+++ b/aqt/preferences.py
@@ -76,6 +76,10 @@ class Preferences(QDialog):
f = self.form
qc = self.mw.col.conf
self._setupDayCutoff()
+ if isMac:
+ f.hwAccel.setVisible(False)
+ else:
+ f.hwAccel.setChecked(self.mw.pm.glMode() != "software")
f.lrnCutoff.setValue(qc['collapseTime']/60.0)
f.timeLimit.setValue(qc['timeLim']/60.0)
f.showEstimates.setChecked(qc['estTimes'])
@@ -93,6 +97,17 @@ class Preferences(QDialog):
def updateCollection(self):
f = self.form
d = self.mw.col
+
+ if not isMac:
+ wasAccel = self.mw.pm.glMode() != "software"
+ wantAccel = f.hwAccel.isChecked()
+ if wasAccel != wantAccel:
+ if wantAccel:
+ self.mw.pm.setGlMode("auto")
+ else:
+ self.mw.pm.setGlMode("software")
+ showInfo(_("Changes will take effect when you restart Anki."))
+
qc = d.conf
qc['dueCounts'] = f.showProgress.isChecked()
qc['estTimes'] = f.showEstimates.isChecked()
diff --git a/designer/preferences.ui b/designer/preferences.ui
index a8c2839fa..5f3ac480c 100644
--- a/designer/preferences.ui
+++ b/designer/preferences.ui
@@ -6,8 +6,8 @@
0
0
- 405
- 469
+ 423
+ 508
@@ -66,6 +66,13 @@
+ -
+
+
+ Hardware acceleration (faster, may cause display issues)
+
+
+
-
@@ -474,6 +481,7 @@
lang
+ hwAccel
showEstimates
showProgress
pastePNG