diff --git a/core/src/processing/opengl/PGL.java b/core/src/processing/opengl/PGL.java index 6bbab3c9b..aad1a8aaf 100644 --- a/core/src/processing/opengl/PGL.java +++ b/core/src/processing/opengl/PGL.java @@ -1900,6 +1900,11 @@ public abstract class PGL { } + protected Object getDerivedFont(Object font, float size) { + return null; + } + + /////////////////////////////////////////////////////////// // Tessellator interface diff --git a/core/src/processing/opengl/PGraphicsOpenGL.java b/core/src/processing/opengl/PGraphicsOpenGL.java index fe238db2e..c71b4cf7c 100644 --- a/core/src/processing/opengl/PGraphicsOpenGL.java +++ b/core/src/processing/opengl/PGraphicsOpenGL.java @@ -23,6 +23,7 @@ package processing.opengl; import processing.core.*; + import java.net.URL; import java.nio.*; import java.util.*; @@ -3281,6 +3282,18 @@ public class PGraphicsOpenGL extends PGraphics { } + @Override + public void textSize(float size) { + if (textFont == null) defaultFontOrDeath("textSize", size); + Object font = textFont.getNative(); + if (font != null) { + Object dfont = pgl.getDerivedFont(font, size); + textFont.setNative(dfont); + } + super.textSize(size); + } + + /** * Implementation of actual drawing for a line of text. */ diff --git a/core/src/processing/opengl/PJOGL.java b/core/src/processing/opengl/PJOGL.java index 8e35baf5f..f70587ad6 100644 --- a/core/src/processing/opengl/PJOGL.java +++ b/core/src/processing/opengl/PJOGL.java @@ -968,6 +968,12 @@ public class PJOGL extends PGL { } + @Override + protected Object getDerivedFont(Object font, float size) { + return ((Font)font).deriveFont(size); + } + + /////////////////////////////////////////////////////////// // Tessellator diff --git a/java/libraries/lwjgl/src/processing/lwjgl/PLWJGL.java b/java/libraries/lwjgl/src/processing/lwjgl/PLWJGL.java index 7b8c223be..f06b24a90 100644 --- a/java/libraries/lwjgl/src/processing/lwjgl/PLWJGL.java +++ b/java/libraries/lwjgl/src/processing/lwjgl/PLWJGL.java @@ -354,6 +354,12 @@ public class PLWJGL extends PGL { FontMetrics metrics = pg.parent.getFontMetrics((Font)font); return metrics.charsWidth(buffer, start, length); } + + + @Override + protected Object getDerivedFont(Object font, float size) { + return ((Font)font).deriveFont(size); + } ///////////////////////////////////////////////////////////