Describe the bug
Drawing a string when advanced mode is enabled looks very rough.
To Reproduce
package test;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.AutoscalingMode;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Transform;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class TextAntiAlias {
public static void main(String[] args) {
Shell shell = new Shell();
shell.setLayout(new FillLayout());
shell.setSize(600, 200);
FontData fd = shell.getFont().getFontData()[0];
fd.height = 80;
Font f = new Font(shell.getDisplay(), fd);
Composite c1 = new Composite(shell, SWT.NONE);
c1.addPaintListener(event -> {
GC gc = event.gc;
gc.setAdvanced(true);
gc.setFont(f);
gc.drawString("Paper", 0, 0);
});
Composite c2 = new Composite(shell, SWT.NONE);
c2.addPaintListener(event -> {
GC gc = event.gc;
gc.setFont(f);
gc.drawString("Paper", 0, 0);
});
Display d = shell.getDisplay();
shell.open();
while(!shell.isDisposed()) {
while(!d.readAndDispatch()) {
d.sleep();
}
}
f.dispose();
}
}
Expected behavior
The GC should produce a crisp string, regardless of whether advanced mode is enabled. As an additional note: calling setTextAntialias(SWT.ON) causes both strings to look the like the left one. Meaning that explicitly enabling text-antialias leads to a worse result.
Screenshots
Environment:
- Select the platform(s) on which the behavior is seen:
Describe the bug
Drawing a string when advanced mode is enabled looks very rough.
To Reproduce
Expected behavior
The GC should produce a crisp string, regardless of whether advanced mode is enabled. As an additional note: calling
setTextAntialias(SWT.ON)causes both strings to look the like the left one. Meaning that explicitly enabling text-antialias leads to a worse result.Screenshots
Environment: