package Ġimg ui . impl . gl Ċ Ċ import Ġimg ui . internal . Draw Data Ċ import Ġorg . lwjgl . opengl . GL Ċ import Ġorg . lwjgl . system . Platform Ċ Ċ class ĠImp l Best GL : ĠGL Interface Ġ{ ĊĠĠĠ Ġprivate Ġval Ġinternal Impl : ĠGL Interface ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcaps Ġ= ĠGL . get Capabilities () ĊĠĠĠĠĠĠĠ Ġinternal Impl Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaps . OpenGL 3 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglsl Version Ġ= Ġ 1 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImp l GL 3 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaps . OpenGL 3 0 Ġ&& ĠPlatform . get () Ġ!= ĠPlatform . MAC OSX Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglsl Version Ġ= Ġ 1 3 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImp l GL 3 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaps . OpenGL 2 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglsl Version Ġ= Ġ 1 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Platform . get () Ġ== ĠPlatform . MAC OSX ) ĠImp l GL 2 _ mac () Ġelse ĠImp l GL 2 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRuntimeException (" OpenGL Ġ 2 Ġis Ġnot Ġpresent Ġon Ġthis Ġsystem !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshutdown () Ġ= Ġinternal Impl . shutdown () ĊĠĠĠ Ġoverride Ġfun Ġnew Frame () Ġ= Ġinternal Impl . new Frame () ĊĠĠĠ Ġoverride Ġfun Ġrender Draw Data ( draw Data : ĠDraw Data ) Ġ= Ġinternal Impl . render Draw Data ( draw Data ) ĊĠĠĠ Ġoverride Ġfun Ġcreate Fonts Texture () Ġ= Ġinternal Impl . create Fonts Texture () ĊĠĠĠ Ġoverride Ġfun Ġdestroy Fonts Texture () Ġ= Ġinternal Impl . destroy Fonts Texture () ĊĠĠĠ Ġoverride Ġfun Ġcreate Device Objects () Ġ= Ġinternal Impl . create Device Objects () ĊĠĠĠ Ġoverride Ġfun Ġdestroy Device Objects () Ġ= Ġinternal Impl . destroy Device Objects () Ċ }