package Ġorg . code to me . z ir con . internal . font . impl Ċ Ċ import Ġorg . code to me . z ir con . api . Modifiers Ċ import Ġorg . code to me . z ir con . api . Text Character Ċ import Ġorg . code to me . z ir con . api . font . Character Metadata Ċ import Ġorg . code to me . z ir con . api . font . Font Ċ import Ġorg . code to me . z ir con . api . font . Font Texture Region Ċ import Ġorg . code to me . z ir con . api . util . Font Utils Ċ import Ġorg . code to me . z ir con . internal . extensions . isNot Present Ċ import Ġorg . code to me . z ir con . internal . font . Font Region Cache Ċ import Ġorg . code to me . z ir con . internal . font . transformer .* Ċ import Ġjava . awt . Graphics 2 D Ċ import Ġjava . awt . Rendering Hints Ċ import Ġjava . awt . image . Buffered Image Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġphysical Ġfont Ġwhich Ġis Ġbacked Ġby Ġ[ java . awt . Font ]. Ċ Ġ*/ Ċ class ĠJava 2 D Physical Font ( private Ġval Ġsource : Ġjava . awt . Font , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġwidth : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġheight : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcache : ĠFont Region Cache < Font Texture Region < Buffered Image >>, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġwith Anti Alias : ĠBoolean ) Ġ: ĠFont Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġid Ġ= ĠUUID . randomUUID () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( Font Utils . is Font Mono spaced ( source )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Font Ġ'${ source . name } Ġis Ġnot Ġmono spaced !" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetId (): ĠUUID Ġ= Ġid ĊĊĠĠĠ Ġoverride Ġfun Ġget Width () Ġ= Ġwidth ĊĊĠĠĠ Ġoverride Ġfun Ġget Height () Ġ= Ġheight ĊĊĠĠĠ Ġoverride Ġfun Ġhas Data For Char ( char : ĠChar ) Ġ= Ġsource . can Display ( char ) ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Region For Char ( text Character : ĠText Character ): ĠFont Texture Region < *> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmaybe Region : ĠOptional < Font Texture Region < Buffered Image >> Ġ= Ġcache . retrieve If Present ( text Character ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġregion : ĠFont Texture Region < Buffered Image > Ġ= Ġif Ġ( maybe Region . isNot Present ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠBufferedImage ( width , Ġheight , ĠBufferedImage . TRANSL UC ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġimage . graphics Ġas ĠGraphics 2 D ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . color Ġ= Ġtext Character . get BackgroundColor (). to AW T Color () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . fillRect ( 0 , Ġ 0 , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . color Ġ= Ġtext Character . get ForegroundColor (). to AW T Color () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . font Ġ= Ġsource ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( with Anti Alias ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg . set Rendering Hint ( Rendering Hints . KEY _ TEXT _ ANTI ALIAS ING , ĠRendering Hints . VALUE _ TEXT _ ANTI ALIAS _ ON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg . set Rendering Hint ( Rendering Hints . KEY _ ANTI ALIAS ING , ĠRendering Hints . VALUE _ ANTI ALIAS _ ON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= Ġtext Character . get Character (). toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfm Ġ= Ġg . getFont Metrics ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrect Ġ= Ġfm . getString Bounds ( str , Ġg ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Height Ġ= Ġrect . height . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Width Ġ= Ġrect . width . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpanel Height Ġ= Ġthis . getHeight () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpanel Width Ġ= Ġthis . getWidth () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ( panel Width Ġ- Ġtext Width ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ( panel Height Ġ- Ġtext Height ) Ġ/ Ġ 2 Ġ+ Ġfm . as cent ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . draw String ( str , Ġx , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . dispose () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregion Ġ= ĠJava 2 DF ont Texture Region ( image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . store ( text Character , Ġregion ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregion ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaybe Region . get () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Character . get Modifiers (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregion Ġ= ĠMO DI FIER _ TRANSFORM ER _ LOOK UP [ it ]?. transform ( region , Ġtext Character ) Ġ?: Ġregion ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġregion ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Metadata For Char ( char : ĠChar ) Ġ= ĠlistOf < Character Metadata >() ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠMO DI FIER _ TRANSFORM ER _ LOOK UP Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Modifiers . UNDER LINE , ĠJava 2 D Underline Transformer ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Modifiers . VERTICAL _ FLI P , ĠJava 2 D Vertical Flip per ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Modifiers . HORIZONTAL _ FLI P , ĠJava 2 D Horizontal Flip per ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Modifiers . C ROS SED _ OUT , ĠJava 2 DC ros sed Out Transformer ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Modifiers . BL INK , ĠNo Op Transformer ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Modifiers . HIDDEN , ĠJava 2 D Hidden Transformer ()) ĊĠĠĠĠĠĠĠ Ġ). toMap () ĊĠĠĠ Ġ} Ċ }