diff --git a/app/qml/ApplicationSettings.qml b/app/qml/ApplicationSettings.qml
index 9ab6aae..0555478 100644
--- a/app/qml/ApplicationSettings.qml
+++ b/app/qml/ApplicationSettings.qml
@@ -143,7 +143,7 @@ Item{
function handleFontChanged(){
if(!fontManager.item) return;
fontManager.item.selectedFontIndex = fontIndexes[rasterization];
- fontManager.item.scaling = fontScaling;
+ fontManager.item.scaling = fontScaling * window_scaling;
var fontSource = fontManager.item.source;
var pixelSize = fontManager.item.pixelSize;
diff --git a/app/qml/PreprocessedTerminal.qml b/app/qml/PreprocessedTerminal.qml
index 21d4c31..3627916 100644
--- a/app/qml/PreprocessedTerminal.qml
+++ b/app/qml/PreprocessedTerminal.qml
@@ -160,10 +160,12 @@ Item{
}
MouseArea{
acceptedButtons: Qt.LeftButton | Qt.MiddleButton | Qt.RightButton
- anchors.fill: parent
+ // This is incredibly ugly. All this file should be reorganized.
+ width: (parent.width + dleft + dright) / shadersettings.window_scaling - dleft -dright
+ height: (parent.height + dtop + dbottom) / shadersettings.window_scaling - dtop - dbottom
onWheel:{
if(wheel.modifiers & Qt.ControlModifier){
- wheel.angleDelta.y > 0 ? zoomIn.trigger() : zoomOut.trigger();
+ wheel.angleDelta.y > 0 ? zoomIn.trigger() : zoomOut.trigger();
} else {
var coord = correctDistortion(wheel.x, wheel.y);
var lines = wheel.angleDelta.y > 0 ? -1 : 1;
@@ -313,7 +315,7 @@ Item{
// BLOOM ////////////////////////////////////////////////////////////////
Loader{
- property real scaling: shadersettings.bloom_quality
+ property real scaling: shadersettings.bloom_quality * shadersettings.window_scaling
id: bloomEffectLoader
active: mBloom != 0
asynchronous: true
diff --git a/app/qml/SettingsPerformanceTab.qml b/app/qml/SettingsPerformanceTab.qml
index 8286e5d..bad4731 100644
--- a/app/qml/SettingsPerformanceTab.qml
+++ b/app/qml/SettingsPerformanceTab.qml
@@ -56,8 +56,8 @@ Tab{
id: txtslider
onValueChanged: shadersettings.window_scaling = value;
value: shadersettings.window_scaling
- stepSize: 0.25
- Component.onCompleted: minimumValue = 0.5 //Without this value gets set to 0.5
+ stepSize: 0.10
+ Component.onCompleted: minimumValue = 0.3 //Without this value gets set to 0.5
}
Text{text: Math.round(txtslider.value * 100) + "%"}
}
diff --git a/app/qml/ShaderTerminal.qml b/app/qml/ShaderTerminal.qml
index b035ad4..ebb7ae8 100644
--- a/app/qml/ShaderTerminal.qml
+++ b/app/qml/ShaderTerminal.qml
@@ -46,10 +46,10 @@ ShaderEffect {
property bool frameReflections: shadersettings.frameReflections
- property real disp_top: frame.item.displacementTop / height
- property real disp_bottom: frame.item.displacementBottom / height
- property real disp_left: frame.item.displacementLeft / width
- property real disp_right: frame.item.displacementRight / width
+ property real disp_top: (frame.item.displacementTop * shadersettings.window_scaling) / height
+ property real disp_bottom: (frame.item.displacementBottom * shadersettings.window_scaling) / height
+ property real disp_left: (frame.item.displacementLeft * shadersettings.window_scaling) / width
+ property real disp_right: (frame.item.displacementRight * shadersettings.window_scaling) / width
property real screen_brightness: shadersettings.brightness * 1.5 + 0.5
diff --git a/app/qml/TerminalContainer.qml b/app/qml/TerminalContainer.qml
new file mode 100644
index 0000000..3a67ed0
--- /dev/null
+++ b/app/qml/TerminalContainer.qml
@@ -0,0 +1,55 @@
+import QtQuick 2.2
+
+Item{
+ Item{
+ id: scalableContent
+ width: parent.width * shadersettings.window_scaling
+ height: parent.height * shadersettings.window_scaling
+
+ Loader{
+ id: frame
+ anchors.fill: parent
+ z: 2.1
+ source: shadersettings.frame_source
+ }
+ PreprocessedTerminal{
+ id: terminal
+ anchors.fill: parent
+ }
+ ShaderTerminal{
+ id: shadercontainer
+ anchors.fill: parent
+ opacity: shadersettings.windowOpacity * 0.3 + 0.7
+ z: 1.9
+ }
+ }
+
+ // This is used to render the texture to a lower resolution then scale it up.
+ Loader{
+ id: scalableContentSource
+ active: shadersettings.window_scaling < 1
+ sourceComponent: ShaderEffectSource{
+ sourceItem: scalableContent
+ hideSource: true
+ smooth: true
+ }
+ }
+ Loader{
+ active: shadersettings.window_scaling < 1
+ anchors.fill: parent
+ sourceComponent: ShaderEffect{
+ property var source: scalableContentSource.item
+ }
+ }
+
+ // Terminal size overlay. Shown when terminal size changes.
+ Loader{
+ id: sizeoverlayloader
+ z: 3
+ anchors.centerIn: parent
+ active: shadersettings.show_terminal_size
+ sourceComponent: SizeOverlay{
+ terminalSize: terminal.terminalSize
+ }
+ }
+}
diff --git a/app/qml/main.qml b/app/qml/main.qml
index c062d68..639cdc7 100644
--- a/app/qml/main.qml
+++ b/app/qml/main.qml
@@ -113,29 +113,8 @@ ApplicationWindow{
id: timeManager
enableTimer: terminalWindow.visible
}
- Item{
- id: maincontainer
- anchors.centerIn: parent
- width: parent.width * shadersettings.window_scaling
- height: parent.height * shadersettings.window_scaling
- scale: 1.0 / shadersettings.window_scaling
- opacity: shadersettings.windowOpacity * 0.3 + 0.7
-
- Loader{
- id: frame
- anchors.fill: parent
- z: 2.1
- source: shadersettings.frame_source
- }
- PreprocessedTerminal{
- id: terminal
- anchors.fill: parent
- }
- ShaderTerminal{
- id: shadercontainer
- anchors.fill: parent
- z: 1.9
- }
+ TerminalContainer{
+ anchors.fill: parent
}
SettingsWindow{
id: settingswindow
@@ -145,14 +124,5 @@ ApplicationWindow{
id: aboutDialog
visible: false
}
- Loader{
- id: sizeoverlayloader
- z: 3
- anchors.centerIn: parent
- active: shadersettings.show_terminal_size
- sourceComponent: SizeOverlay{
- terminalSize: terminal.terminalSize
- }
- }
Component.onCompleted: shadersettings.handleFontChanged();
}
diff --git a/app/qml/resources.qrc b/app/qml/resources.qrc
index dfc44ca..8cf78e2 100644
--- a/app/qml/resources.qrc
+++ b/app/qml/resources.qrc
@@ -65,5 +65,6 @@
Storage.qml
CRTMainMenuBar.qml
SettingsPerformanceTab.qml
+ TerminalContainer.qml