@@ -3090,10 +3090,47 @@ public float textDescent() {
3090
3090
* The leading will also be reset.
3091
3091
*/
3092
3092
public void textFont (PFont which ) {
3093
- if (which != null ) {
3094
- textFont = which ;
3093
+ if (which == null ) {
3094
+ throw new RuntimeException (ERROR_TEXTFONT_NULL_PFONT );
3095
+ }
3096
+ textFontImpl (which , which .getDefaultSize ());
3097
+ }
3098
+
3099
+
3100
+ /**
3101
+ * Useful function to set the font and size at the same time.
3102
+ */
3103
+ public void textFont (PFont which , float size ) {
3104
+ if (which == null ) {
3105
+ throw new RuntimeException (ERROR_TEXTFONT_NULL_PFONT );
3106
+ }
3107
+ // https://github.com/processing/processing/issues/3110
3108
+ if (size <= 0 ) {
3109
+ // Using System.err instead of showWarning to avoid running out of
3110
+ // memory with a bunch of textSize() variants (cause of this bug is
3111
+ // usually something done with map() or in a loop).
3112
+ System .err .println ("textFont: ignoring size " + size + " px:" +
3113
+ "the text size must be larger than zero" );
3114
+ size = textSize ;
3115
+ }
3116
+ textFontImpl (which , size );
3117
+ }
3118
+
3119
+
3120
+ /**
3121
+ * Called from textFont. Check the validity of args and
3122
+ * print possible errors to the user before calling this.
3123
+ * Subclasses will want to override this one.
3124
+ *
3125
+ * @param which font to set, not null
3126
+ * @param size size to set, greater than zero
3127
+ */
3128
+ protected void textFontImpl (PFont which , float size ) {
3129
+ textFont = which ;
3095
3130
// if (hints[ENABLE_NATIVE_FONTS]) {
3096
- // which.findTypeface(name);
3131
+ // //if (which.font == null) {
3132
+ // which.findNative();
3133
+ // //}
3097
3134
// }
3098
3135
/*
3099
3136
textFontNative = which.font;
@@ -3118,20 +3155,8 @@ public void textFont(PFont which) {
3118
3155
// float w = font.getStringBounds(text, g2.getFontRenderContext()).getWidth();
3119
3156
}
3120
3157
*/
3121
- textSize (which .size );
3122
3158
3123
- } else {
3124
- throw new RuntimeException (ERROR_TEXTFONT_NULL_PFONT );
3125
- }
3126
- }
3127
-
3128
-
3129
- /**
3130
- * Useful function to set the font and size at the same time.
3131
- */
3132
- public void textFont (PFont which , float size ) {
3133
- textFont (which );
3134
- textSize (size );
3159
+ handleTextSize (size );
3135
3160
}
3136
3161
3137
3162
0 commit comments