Skip to content

Commit e62ca34

Browse files
committed
JBR-6225 Revert CGGI_GlyphInfoDescriptor refactoring
1 parent c3cd706 commit e62ca34

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/java.desktop/macosx/native/libawt_lwawt/font/CGGlyphImages.m

+10-10
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ @implementation CGGI_GlyphCanvas
356356
} CGGI_GlyphInfoDescriptor;
357357

358358
typedef struct CGGI_RenderingMode {
359-
CGGI_GlyphInfoDescriptor *mainFontDescriptor;
359+
CGGI_GlyphInfoDescriptor *glyphDescriptor;
360360
JRSFontRenderingStyle cgFontMode;
361361
bool lcdRendering;
362362
bool subpixelResolution;
@@ -372,7 +372,7 @@ @implementation CGGI_GlyphCanvas
372372
static inline CGGI_GlyphInfoDescriptor*
373373
CGGI_GetGlyphInfoDescriptor(const CGGI_RenderingMode *mode, CTFontRef font)
374374
{
375-
return IsEmojiFont(font) ? &argb : mode->mainFontDescriptor;
375+
return IsEmojiFont(font) ? &argb : mode->glyphDescriptor;
376376
}
377377

378378
static inline CGGI_RenderingMode
@@ -394,14 +394,14 @@ @implementation CGGI_GlyphCanvas
394394
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_OFF:
395395
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_ON:
396396
mode.lcdRendering = false;
397-
mode.mainFontDescriptor = &grey;
397+
mode.glyphDescriptor = &grey;
398398
break;
399399
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_LCD_HRGB:
400400
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_LCD_HBGR:
401401
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_LCD_VRGB:
402402
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_LCD_VBGR:
403403
mode.lcdRendering = true;
404-
mode.mainFontDescriptor = &rgb;
404+
mode.glyphDescriptor = &rgb;
405405
break;
406406
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_GASP:
407407
case sun_awt_SunHints_INTVAL_TEXT_ANTIALIAS_DEFAULT:
@@ -415,10 +415,6 @@ @implementation CGGI_GlyphCanvas
415415
userInfo:nil];
416416
@throw e;
417417
}
418-
if (IsEmojiFont((CTFontRef)strike->fAWTFont->fFont)) {
419-
mode.mainFontDescriptor = &argb;
420-
mode.subpixelResolution = false;
421-
}
422418

423419
return mode;
424420
}
@@ -844,12 +840,15 @@ static CTFontRef CopyFontWithSize(CTFontRef originalFont, CGFloat size) {
844840
CGContextSetFont(canvas->context, strike->fAWTFont->fNativeCGFont);
845841
JRSFontSetRenderingStyleOnContext(canvas->context, strike->fStyle);
846842

843+
CTFontRef mainFont = (CTFontRef)strike->fAWTFont->fFont;
844+
CGGI_GlyphInfoDescriptor* mainFontDescriptor = CGGI_GetGlyphInfoDescriptor(mode, mainFont);
845+
847846
const bool isMojaveOrAbove = IS_OSX_GT10_13;
848847
CFIndex i;
849848
for (i = 0; i < len; i++) {
850849
GlyphInfo *info = (GlyphInfo *)jlong_to_ptr(glyphInfos[i]);
851850
if (info != NULL) {
852-
CGGI_CreateImageForGlyph(canvas, glyphs[i], info, mode->mainFontDescriptor,
851+
CGGI_CreateImageForGlyph(canvas, glyphs[i], info, mainFontDescriptor,
853852
strike, (CTFontRef)strike->fAWTFont->fFont, isMojaveOrAbove);
854853
} else {
855854
info = CGGI_CreateImageForUnicode(canvas, strike, mode, uniChars[i], isMojaveOrAbove);
@@ -944,6 +943,7 @@ static CTFontRef CopyFontWithSize(CTFontRef originalFont, CGFloat size) {
944943

945944
CTFontRef fontRef = (CTFontRef)font->fFont;
946945
CGGlyphImages_GetGlyphMetrics(fontRef, &strike->fTx, strike->fSize, bboxCGMode, glyphs, len, bboxes, advances, IS_OSX_GT10_14);
946+
CGGI_GlyphInfoDescriptor* mainFontDescriptor = CGGI_GetGlyphInfoDescriptor(mode, fontRef);
947947

948948
size_t maxWidth = 1;
949949
size_t maxHeight = 1;
@@ -961,7 +961,7 @@ static CTFontRef CopyFontWithSize(CTFontRef originalFont, CGFloat size) {
961961
CGRect bbox = bboxes[i];
962962

963963
GlyphInfo *glyphInfo = CGGI_CreateNewGlyphInfoFrom(advance, bbox, strike,
964-
mode->mainFontDescriptor,
964+
mainFontDescriptor,
965965
mode->subpixelResolution);
966966

967967
int w = glyphInfo->width * glyphInfo->subpixelResolutionX;

0 commit comments

Comments
 (0)