package Ġgl Next . tut 0 2 Ċ Ċ import Ġcom . j og amp . new t . event . KeyEvent Ċ import Ġcom . j og amp . opengl . GL .* Ċ import Ġcom . j og amp . opengl . GL 3 Ċ import Ġgl Next .* Ċ import Ġglm . vec ._ 4 . Vec 4 Ċ import Ġmain . framework . Framework Ċ import Ġuno . buffer .* Ċ import Ġuno . glsl . program Of Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠG Bar b ier i Ġon Ġ 2 1 . 0 2 . 2 0 1 7 . Ċ Ġ*/ Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ ĠVertex Color _ Next (). setup (" Tutorial Ġ 0 2 Ġ- ĠVertex ĠColors ") Ċ } Ċ Ċ class ĠVertex Color _ Next Ġ: ĠFramework () Ġ{ ĊĊĠĠĠ Ġval ĠV ERT EX _ SHADER Ġ= Ġ" tut 0 2 / vertex - colors . vert " ĊĠĠĠ Ġval ĠFR AG MENT _ SHADER Ġ= Ġ" tut 0 2 / vertex - colors . frag " ĊĊĠĠĠ Ġvar Ġthe Program Ġ= Ġ 0 ĊĠĠĠ Ġval Ġvertex Buffer Object Ġ= Ġint Buffer Big ( 1 ) ĊĠĠĠ Ġval Ġv ao Ġ= Ġint Buffer Big ( 1 ) ĊĠĠĠ Ġval Ġvertex Data Ġ= Ġfloat Buffer Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ 0 . 0 f , Ġ+ 0 . 5 0 0 f , Ġ 0 . 0 f , Ġ 1 . 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ 0 . 5 f , Ġ- 0 . 3 6 6 f , Ġ 0 . 0 f , Ġ 1 . 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 0 . 5 f , Ġ- 0 . 3 6 6 f , Ġ 0 . 0 f , Ġ 1 . 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ 1 . 0 f , Ġ+ 0 . 0 0 0 f , Ġ 0 . 0 f , Ġ 1 . 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ 0 . 0 f , Ġ+ 1 . 0 0 0 f , Ġ 0 . 0 f , Ġ 1 . 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ 0 . 0 f , Ġ+ 0 . 0 0 0 f , Ġ 1 . 0 f , Ġ 1 . 0 f ) ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( gl : ĠGL 3 ) Ġ= Ġwith ( gl ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinitialize Program ( gl ) ĊĠĠĠĠĠĠĠ Ġinitialize VertexBuffer ( gl ) ĊĊĠĠĠĠĠĠĠ Ġgl Gen VertexArray ( v ao ) ĊĠĠĠĠĠĠĠ ĠglBind VertexArray ( v ao ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinitialize Program ( gl : ĠGL 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthe Program Ġ= Ġprogram Of ( gl , Ġjava Class , Ġ" tut 0 2 ", Ġ" vertex - colors . vert ", Ġ" vertex - colors . frag ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinitialize VertexBuffer ( gl : ĠGL 3 ) Ġ= Ġgl . init ArrayBuffer ( vertex Buffer Object ) Ġ{ Ġdata ( vertex Data , ĠGL _ STATIC _ DRAW ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay ( gl : ĠGL 3 ) Ġ= Ġwith ( gl ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġclear Ġ{ Ġcolor ( 0 ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġusing Program ( the Program ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Vertex Layout ( vertex Buffer Object , Ġg lf . pos 4 _ col 4 , Ġ 0 , ĠVec 4 . SIZE Ġ* Ġ 3 ) Ġ{ Ġgl Draw Arrays ( 3 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreshape ( gl : ĠGL 3 , Ġw : ĠInt , Ġh : ĠInt ) Ġ= Ġwith ( gl ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgl Viewport ( w , Ġh ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġend ( gl : ĠGL 3 ) Ġ= Ġwith ( gl ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġgl Delete Program ( the Program ) ĊĠĠĠĠĠĠĠ Ġgl Delete Buffer ( vertex Buffer Object ) ĊĠĠĠĠĠĠĠ Ġgl Delete VertexArray ( v ao ) ĊĊĠĠĠĠĠĠĠ Ġdestroy Buffers ( vertex Buffer Object , Ġv ao , Ġvertex Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Pressed ( key Event : ĠKeyEvent ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( key Event . keyCode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . VK _ ESCAPE Ġ-> Ġquit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ