configurable high dpi

This commit is contained in:
Branislav Stojkovic
2025-03-17 11:08:51 +01:00
parent fbf92fbc6e
commit 44c776194f
6 changed files with 26 additions and 2 deletions
@@ -42,6 +42,7 @@ import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.KeyStroke;
import org.apache.log4j.Logger;
import org.diylc.appframework.miscutils.IConfigListener;
import org.diylc.appframework.miscutils.IConfigurationManager;
import org.diylc.common.ComponentType;
@@ -98,6 +99,15 @@ public class CanvasPanel extends JComponent implements Autoscroll {
// GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices();
// screenGraphicsConfiguration = devices[0].getDefaultConfiguration();
configManager.addConfigListener(IPlugInPort.HIGH_DPI_RENDERING,
new IConfigListener() {
@Override
public void valueChanged(String key, Object value) {
bufferImage = null;
}
});
initializeActions();
}
@@ -311,8 +321,12 @@ public class CanvasPanel extends JComponent implements Autoscroll {
}
final Graphics2D g2d = (Graphics2D)g;
double scaleFactor = Math.sqrt(g2d.getTransform().getDeterminant());
// scaleFactor = 1d;
double scaleFactor;
if (configManager.readBoolean(IPlugInPort.HIGH_DPI_RENDERING, false)) {
scaleFactor = Math.sqrt(g2d.getTransform().getDeterminant());
} else {
scaleFactor = 1d;
}
Rectangle visibleRect = getVisibleRect();
@@ -100,6 +100,9 @@ public class ConfigPlugin implements IPlugIn {
// swingUI.injectMenuAction(
// ActionFactory.getInstance().createConfigAction(plugInPort, "Hardware Acceleration", IPlugInPort.HARDWARE_ACCELERATION, false),
// CONFIG_MENU);
swingUI.injectMenuAction(
ActionFactory.getInstance().createConfigAction(plugInPort, "High DPI Rendering",
IPlugInPort.HIGH_DPI_RENDERING, false), CONFIG_MENU);
swingUI.injectMenuAction(
ActionFactory.getInstance().createConfigAction(plugInPort, "Hi-Quality Rendering",
IPlugInPort.HI_QUALITY_RENDER_KEY, false), CONFIG_MENU);