diff --git a/kcmkwin/kwincompositing/advanced.cpp b/kcmkwin/kwincompositing/advanced.cpp
index 94ea6ad2ad..0e297db874 100644
--- a/kcmkwin/kwincompositing/advanced.cpp
+++ b/kcmkwin/kwincompositing/advanced.cpp
@@ -30,6 +30,7 @@ KWinAdvancedCompositingOptions::KWinAdvancedCompositingOptions(QWidget* parent,
connect(ui.compositingType, SIGNAL(currentIndexChanged(int)), this, SLOT(changed()));
connect(ui.glMode, SIGNAL(currentIndexChanged(int)), this, SLOT(changed()));
+ connect(ui.glTextureFilter, SIGNAL(currentIndexChanged(int)), this, SLOT(changed()));
connect(ui.glDirect, SIGNAL(toggled(bool)), this, SLOT(changed()));
connect(ui.glVSync, SIGNAL(toggled(bool)), this, SLOT(changed()));
@@ -57,6 +58,7 @@ void KWinAdvancedCompositingOptions::load()
ui.compositingType->setCurrentIndex((backend == "XRender") ? 1 : 0);
QString glMode = config.readEntry("GLMode", "TFP");
ui.glMode->setCurrentIndex((glMode == "TFP") ? 0 : ((glMode == "SHM") ? 1 : 2));
+ ui.glTextureFilter->setCurrentIndex(config.readEntry("GLTextureFilter", 1));
ui.glDirect->setChecked(config.readEntry("GLDirect", true));
ui.glVSync->setChecked(config.readEntry("GLVSync", true));
}
@@ -72,6 +74,7 @@ void KWinAdvancedCompositingOptions::save()
config.writeEntry("Backend", (ui.compositingType->currentIndex() == 0) ? "OpenGL" : "XRender");
QString glModes[] = { "TFP", "SHM", "Fallback" };
config.writeEntry("GLMode", glModes[ui.glMode->currentIndex()]);
+ config.writeEntry("GLTextureFilter", ui.glTextureFilter->currentIndex());
config.writeEntry("GLDirect", ui.glDirect->isChecked());
config.writeEntry("GLVSync", ui.glVSync->isChecked());
diff --git a/kcmkwin/kwincompositing/advanced.ui b/kcmkwin/kwincompositing/advanced.ui
index eb67e7a94e..7eaaed8374 100644
--- a/kcmkwin/kwincompositing/advanced.ui
+++ b/kcmkwin/kwincompositing/advanced.ui
@@ -71,6 +71,36 @@
+ -
+
+
-
+
+
+ Texture filter:
+
+
+
+ -
+
+
-
+
+ Nearest (fastest)
+
+
+ -
+
+ Bilinear
+
+
+ -
+
+ Trilinear (best quality)
+
+
+
+
+
+
-
@@ -95,8 +125,8 @@
- 20
- 31
+ 382
+ 101