package Ġme . anno . gpu . drawing Ċ Ċ import Ġme . anno . gpu . GFX Ċ import Ġme . anno . gpu . GFX . window Height Ċ import Ġme . anno . gpu . GFX . window Width Ċ import Ġme . anno . gpu . Render State . render Pure ly Ċ import Ġme . anno . gpu . Shader Lib Ċ import Ġme . anno . gpu . Shader Lib . max Outline Colors Ċ import Ġme . anno . gpu . Texture Lib Ċ import Ġme . anno . gpu . buffer . Simple Buffer Ċ import Ġme . anno . gpu . buffer . Simple Buffer . Companion . flat 0 1 Cube Ċ import Ġme . anno . gpu . buffer . Simple Buffer . Companion . flat 0 1 Cube X 1 0 Ċ import Ġme . anno . gpu . buffer . Static Buffer Ċ import Ġme . anno . gpu . drawing . GFX x 2 D . define Advanced Graph ical Features Ċ import Ġme . anno . gpu . drawing . GFX x 2 D . disable Advanced Graph ical Features Ċ import Ġme . anno . gpu . shader . Shader Ċ import Ġme . anno . gpu . texture . Clamp ing Ċ import Ġme . anno . gpu . texture . Filtering Ċ import Ġme . anno . gpu . texture . GPU Filtering Ċ import Ġme . anno . gpu . texture . Texture 2 D Ċ import Ġme . anno . objects . GFX Transform Ċ import Ġme . anno . objects . Video Ċ import Ġme . anno . objects . effects . Mask Type Ċ import Ġme . anno . objects . ge ometric . Circle Ċ import Ġme . anno . objects . ge ometric . Polygon Ċ import Ġme . anno . objects . modes . UV Projection Ċ import Ġme . anno . studio . re ms . Rem s Studio Ċ import Ġme . anno . video . formats . gpu . GPU Frame Ċ import Ġof x . mio . Opt ical Flow Ċ import Ġorg . j om l .* Ċ import Ġorg . lwjgl . Buffer Utils Ċ import Ġkotlin . math . min Ċ Ċ object ĠG FX x 3 D Ġ{ ĊĊĠĠĠ Ġfun Ġget Scale ( w : ĠInt , Ġh : ĠInt ): ĠFloat Ġ= Ġget Scale ( w . toFloat (), Ġh . toFloat ()) ĊĠĠĠ Ġfun Ġget Scale ( w : ĠFloat , Ġh : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( w Ġ* ĠRem s Studio . target Height Ġ> Ġh Ġ* ĠRem s Studio . target Width ) ĠRem s Studio . target Width Ġ/ Ġ( w Ġ* ĠRem s Studio . target Height ) Ġelse Ġ 1 f Ġ/ Ġh ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshader 3 D Uniform s ( ĊĠĠĠĠĠĠĠ Ġshader : ĠShader , Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġw : ĠInt , Ġh : ĠInt , ĊĠĠĠĠĠĠĠ Ġt iling : ĠVector 4 fc ?, Ġfiltering : ĠFiltering , ĊĠĠĠĠĠĠĠ Ġuv Projection : ĠUV Projection ? ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġstack . push Matrix () ĊĊĠĠĠĠĠĠĠ Ġval Ġdo Scale 2 Ġ= Ġ( uv Projection ?. do Scale Ġ?: Ġtrue ) Ġ&& Ġw Ġ!= Ġh ĊĠĠĠĠĠĠĠ Ġif Ġ( do Scale 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġget Scale ( w , Ġh ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsx Ġ= Ġw Ġ* Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsy Ġ= Ġh Ġ* Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . scale ( sx , Ġ- sy , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . scale ( 1 f , Ġ- 1 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtransform Uniform ( shader , Ġstack ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" filtering ", Ġfiltering . id ) ĊĠĠĠĠĠĠĠ Ġshader . v 2 (" texture Delta UV ", Ġ 1 f Ġ/ Ġw , Ġ 1 f Ġ/ Ġh ) ĊĊĠĠĠĠĠĠĠ Ġstack . pop Matrix () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( til ing Ġ!= Ġnull ) Ġshader . v 4 (" til ing ", Ġt iling ) ĊĠĠĠĠĠĠĠ Ġelse Ġshader . v 4 (" til ing ", Ġ 1 f , Ġ 1 f , Ġ 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" draw Mode ", ĠG FX . draw Mode . id ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" uv Projection ", Ġuv Projection ?. id Ġ?: ĠUV Projection . Plan ar . id ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshader 3 D Uniform s ( ĊĠĠĠĠĠĠĠ Ġshader : ĠShader , Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġw : ĠInt , Ġh : ĠInt , Ġcolor : ĠVector 4 fc ?, ĊĠĠĠĠĠĠĠ Ġt iling : ĠVector 4 fc ?, Ġfiltering : ĠFiltering , ĊĠĠĠĠĠĠĠ Ġuv Projection : ĠUV Projection ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġw , Ġh , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ ĠG FX . shader Color ( shader , Ġ" tint ", Ġcolor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshader 3 D Uniform s ( ĊĠĠĠĠĠĠĠ Ġshader : ĠShader , Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġw : ĠInt , Ġh : ĠInt , Ġcolor : ĠInt , ĊĠĠĠĠĠĠĠ Ġt iling : ĠVector 4 fc ?, Ġfiltering : ĠFiltering , ĊĠĠĠĠĠĠĠ Ġuv Projection : ĠUV Projection ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġw , Ġh , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ ĠG FX . shader Color ( shader , Ġ" tint ", Ġcolor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw Debug Cube ( matrix : ĠMatrix 4 f ArrayList , Ġsize : ĠFloat , Ġcolor : ĠVector 4 fc ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġmatrix . scale ( 0 . 5 f Ġ* Ġsize , Ġ- 0 . 5 f Ġ* Ġsize , Ġ 0 . 5 f Ġ* Ġsize ) Ġ// Ġflip Ġinside Ġout ĊĠĠĠĠĠĠĠ Ġval Ġtex Ġ= ĠTexture Lib . white Texture ĊĠĠĠĠĠĠĠ Ġdraw 3 D ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix , Ġtex , Ġcolor , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFiltering . NE ARE ST , Ġtex . clamp ing !! , Ġnull , ĠUV Projection . T iled Cub emap ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshader 3 D Uniform s ( shader : ĠShader , Ġstack : ĠMatrix 4 f ?, Ġcolor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtransform Uniform ( shader , Ġstack ) ĊĠĠĠĠĠĠĠ ĠG FX . shader Color ( shader , Ġ" tint ", Ġcolor ) ĊĠĠĠĠĠĠĠ Ġshader . v 4 (" til ing ", Ġ 1 f , Ġ 1 f , Ġ 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" draw Mode ", ĠG FX . draw Mode . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshader 3 D Uniform s ( shader : ĠShader , Ġstack : ĠMatrix 4 f , Ġcolor : ĠVector 4 fc ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtransform Uniform ( shader , Ġstack ) ĊĠĠĠĠĠĠĠ ĠG FX . shader Color ( shader , Ġ" tint ", Ġcolor ) ĊĠĠĠĠĠĠĠ Ġshader . v 4 (" til ing ", Ġ 1 f , Ġ 1 f , Ġ 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" draw Mode ", ĠG FX . draw Mode . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtransform Uniform ( shader : ĠShader , Ġstack : ĠMatrix 4 fc ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠĠĠĠĠ Ġshader . m 4 x 4 (" transform ", Ġstack ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Mask ed ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġcolor : ĠVector 4 fc , ĊĠĠĠĠĠĠĠ Ġmask Type : ĠMask Type , ĊĠĠĠĠĠĠĠ Ġuse Mask Color : ĠFloat , ĊĠĠĠĠĠĠĠ Ġpixel Size : ĠFloat , ĊĠĠĠĠĠĠĠ Ġoffset : ĠVector 2 fc , ĊĠĠĠĠĠĠĠ ĠisIn verted : ĠFloat , ĊĠĠĠĠĠĠĠ Ġis Fullscreen : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġsettings : ĠVector 4 f ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 D Mask ed . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġcolor ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" use Mask Color ", Ġuse Mask Color ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" invert Mask ", ĠisIn verted ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" mask Type ", Ġmask Type . id ) ĊĠĠĠĠĠĠĠ Ġshader . v 2 (" pixel ating ", Ġpixel Size Ġ* Ġwindow Height Ġ/ Ġwindow Width , Ġpixel Size ) ĊĠĠĠĠĠĠĠ Ġshader . v 4 (" settings ", Ġsettings ) ĊĠĠĠĠĠĠĠ Ġshader . v 2 (" offset ", Ġoffset ) ĊĠĠĠĠĠĠĠ Ġshader . v 2 (" window Size ", Ġwindow Width . toFloat (), Ġwindow Height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġif Ġ( is Fullscreen ) ĠSimple Buffer . flat Large Ġelse ĠSimple Buffer . flat 1 1 ĊĠĠĠĠĠĠĠ Ġbuffer . draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Text ( ĊĠĠĠĠĠĠĠ Ġthat : ĠG FX Transform ?, Ġtime : ĠDouble , Ġoffset : ĠVector 3 fc , ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġbuffer : ĠStatic Buffer , Ġcolor : ĠVector 4 fc ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 D for Text . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġcolor ) ĊĠĠĠĠĠĠĠ Ġshader . v 3 (" offset ", Ġoffset ) ĊĠĠĠĠĠĠĠ ĠG FX Transform . upload At tract ors ( that , Ġshader , Ġtime ) ĊĠĠĠĠĠĠĠ Ġbuffer . draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Text With Offset ( ĊĠĠĠĠĠĠĠ Ġbuffer : ĠStatic Buffer , ĊĠĠĠĠĠĠĠ Ġoffset : ĠVector 3 fc ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 D for Text . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġshader . v 3 (" offset ", Ġoffset ) ĊĠĠĠĠĠĠĠ Ġbuffer . draw ( shader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtmp 0 Ġ= ĠVector 3 f () ĊĠĠĠ Ġprivate Ġval Ġtmp 1 Ġ= ĠVector 3 f () ĊĠĠĠ Ġprivate Ġval Ġtmp 2 Ġ= ĠVector 4 f () ĊĠĠĠ Ġfun Ġcolor Grad ing Uniform s ( video : ĠVideo ?, Ġtime : ĠDouble , Ġshader : ĠShader ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( video Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 3 (" cg Offset ", Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 3 (" cg S lope ", Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 3 (" cg Power ", Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 1 (" cg Sat uration ", Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmp 0 . set ( video . cg Offset Add [ time , Ġtmp 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmp 1 . set ( video . cg Offset Sub [ time , Ġtmp 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 3 (" cg Offset ", Ġtmp 0 . sub ( tmp 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 3 X (" cg S lope ", Ġvideo . cg S lope [ time , Ġtmp 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 3 X (" cg Power ", Ġvideo . cg Power [ time , Ġtmp 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 1 (" cg Sat uration ", Ġvideo . cg Sat uration [ time ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 DP oly gon ( ĊĠĠĠĠĠĠĠ Ġpolygon : ĠPolygon , Ġtime : ĠDouble , ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġbuffer : ĠStatic Buffer , ĊĠĠĠĠĠĠĠ Ġtexture : ĠTexture 2 D , Ġcolor : ĠVector 4 fc , ĊĠĠĠĠĠĠĠ Ġinset : ĠFloat , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 DP oly gon . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġpolygon . upload At tract ors ( shader , Ġtime ) ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġtexture . w , Ġtexture . h , Ġcolor , Ġnull , Ġfiltering , Ġnull ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" in set ", Ġinset ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , Ġfiltering , Ġclamp ing ) ĊĠĠĠĠĠĠĠ Ġbuffer . draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠGPU Frame , Ġcolor : ĠVector 4 fc , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! texture . is Created ) Ġthrow ĠRuntimeException (" Frame Ġmust Ġbe Ġloaded Ġto Ġbe Ġrendered !") ĊĠĠĠĠĠĠĠ Ġval Ġshader 0 Ġ= Ġtexture . get 3 D Shader () ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= Ġshader 0 . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġtexture . w , Ġtexture . h , Ġcolor , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ Ġdisable Advanced Graph ical Features ( shader ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , Ġfiltering , Ġclamp ing ) ĊĠĠĠĠĠĠĠ Ġtexture . bind U VC orre ction ( shader ) ĊĠĠĠĠĠĠĠ Ġuv Projection . get Buffer (). draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠGPU Frame , Ġcolor : ĠInt , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! texture . is Created ) Ġthrow ĠRuntimeException (" Frame Ġmust Ġbe Ġloaded Ġto Ġbe Ġrendered !") ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= Ġtexture . get 3 D Shader (). value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġtexture . w , Ġtexture . h , Ġcolor , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , Ġfiltering , Ġclamp ing ) ĊĠĠĠĠĠĠĠ Ġtexture . bind U VC orre ction ( shader ) ĊĠĠĠĠĠĠĠ Ġuv Projection . get Buffer (). draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Video ( ĊĠĠĠĠĠĠĠ Ġvideo : ĠG FX Transform , Ġtime : ĠDouble , ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠGPU Frame , Ġcolor : ĠVector 4 fc , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! texture . is Created ) Ġthrow ĠRuntimeException (" Frame Ġmust Ġbe Ġloaded Ġto Ġbe Ġrendered !") ĊĠĠĠĠĠĠĠ Ġval Ġshader 0 Ġ= Ġtexture . get 3 D Shader () ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= Ġshader 0 . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader , Ġvideo , Ġtime ) ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġtexture . w , Ġtexture . h , Ġcolor , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , Ġfiltering , Ġclamp ing ) ĊĠĠĠĠĠĠĠ Ġtexture . bind U VC orre ction ( shader ) ĊĠĠĠĠĠĠĠ Ġuv Projection . get Buffer (). draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Video ( ĊĠĠĠĠĠĠĠ Ġvideo : ĠG FX Transform , Ġtime : ĠDouble , ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġv 0 : ĠGPU Frame , Ġv 1 : ĠGPU Frame , Ġinterpolation : ĠFloat , Ġcolor : ĠVector 4 fc , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! v 0 . is Created Ġ|| Ġ! v 1 . is Created ) Ġthrow ĠRuntimeException (" Frame Ġmust Ġbe Ġloaded Ġto Ġbe Ġrendered !") ĊĊĠĠĠĠĠĠĠ Ġval Ġt 0 Ġ= Ġv 0 . getText ures () ĊĠĠĠĠĠĠĠ Ġval Ġt 1 Ġ= Ġv 1 . getText ures () ĊĊĠĠĠĠĠĠĠ Ġval Ġlambda Ġ= Ġ 0 . 0 1 f ĊĠĠĠĠĠĠĠ Ġval Ġblur Amount Ġ= Ġ 0 . 0 5 f ĊĊĠĠĠĠĠĠĠ Ġrender Pure ly Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġinterpolate Ġall Ġtextures ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterpolated Ġ= Ġt 0 . zip ( t 1 ). map Ġ{ Ġ( x 0 , Ġx 1 ) Ġ-> ĠOpt ical Flow . run ( lambda , Ġblur Amount , Ġinterpolation , Ġx 0 , Ġx 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbind Ġthem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 0 . bind 2 ( 0 , Ġfiltering , Ġclamp ing , Ġinterpolated ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġshader 0 Ġ= Ġv 0 . get 3 D Shader () ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= Ġshader 0 . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader , Ġvideo , Ġtime ) ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġv 0 . w , Ġv 0 . h , Ġcolor , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ Ġv 0 . bind U VC orre ction ( shader ) ĊĠĠĠĠĠĠĠ Ġuv Projection . get Buffer (). draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠTexture 2 D , Ġcolor : ĠVector 4 fc ?, ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ= Ġdraw 3 D ( stack , Ġtexture , Ġtexture . w , Ġtexture . h , Ġcolor , Ġfiltering , Ġclamp ing , Ġt iling , Ġuv Projection ) ĊĊĠĠĠ Ġfun Ġdraw 3 D ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠTexture 2 D , Ġcolor : ĠInt , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ= Ġdraw 3 D ( stack , Ġtexture , Ġtexture . w , Ġtexture . h , Ġcolor , Ġfiltering , Ġclamp ing , Ġt iling , Ġuv Projection ) ĊĊĠĠĠ Ġfun Ġdraw 3 D ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠTexture 2 D , Ġw : ĠInt , Ġh : ĠInt , Ġcolor : ĠVector 4 fc ?, ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 D . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader ) ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġw , Ġh , Ġcolor , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , Ġfiltering , Ġclamp ing ) ĊĠĠĠĠĠĠĠ Ġuv Projection . get Buffer (). draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠTexture 2 D , Ġw : ĠInt , Ġh : ĠInt , Ġcolor : ĠInt , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 D . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader ) ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġw , Ġh , Ġcolor , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , Ġfiltering , Ġclamp ing ) ĊĠĠĠĠĠĠĠ Ġuv Projection . get Buffer (). draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġoutline Stats Buffer Ġ= ĠBuffer Utils . create Float Buffer ( max Outline Colors Ġ* Ġ 4 ) ĊĠĠĠ Ġfun Ġdraw Outlined Text ( ĊĠĠĠĠĠĠĠ Ġthat : ĠG FX Transform ?, ĊĠĠĠĠĠĠĠ Ġtime : ĠDouble , ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġoffset : ĠVector 2 fc , ĊĠĠĠĠĠĠĠ Ġscale : ĠVector 2 fc , ĊĠĠĠĠĠĠĠ Ġtexture : ĠTexture 2 D , ĊĠĠĠĠĠĠĠ Ġcolor : ĠVector 4 fc , ĊĠĠĠĠĠĠĠ Ġcolor Count : ĠInt , ĊĠĠĠĠĠĠĠ Ġcolors : ĠArray < Vector 4 fc >, ĊĠĠĠĠĠĠĠ Ġdistances : ĠFloat Array , ĊĠĠĠĠĠĠĠ Ġsmooth ness : ĠFloat Array , ĊĠĠĠĠĠĠĠ Ġdepth : ĠFloat , ĊĠĠĠĠĠĠĠ Ġhas UV At tract ors : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader SD F Text . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader , Ġthat , Ġtime ) ĊĊĠĠĠĠĠĠĠ ĠG FX . shader Color ( shader , Ġ" tint ", Ġcolor ) ĊĊĠĠĠĠĠĠĠ Ġshader . v 1 (" draw Mode ", ĠG FX . draw Mode . id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcc Ġ= Ġmin ( color Count , Ġmax Outline Colors ) ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġu 4 [ Ġmax Colors Ġ] Ġcolors ĊĠĠĠĠĠĠĠĠ Ġ* Ġu 2 [ Ġmax Colors Ġ] Ġdist Smooth ĊĠĠĠĠĠĠĠĠ Ġ* Ġuniform Ġint Ġcolor Count ĊĠĠĠĠĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠĠĠĠĠ Ġoutline Stats Buffer . position ( 0 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor I Ġ= Ġcolors [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutline Stats Buffer . put ( color I . x ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutline Stats Buffer . put ( color I . y ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutline Stats Buffer . put ( color I . z ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutline Stats Buffer . put ( color I . w ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoutline Stats Buffer . position ( 0 ) ĊĠĠĠĠĠĠĠ Ġshader . v 4 Array (" colors ", Ġoutline Stats Buffer ) ĊĠĠĠĠĠĠĠ Ġoutline Stats Buffer . position ( 0 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutline Stats Buffer . put ( distances [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutline Stats Buffer . put ( smooth ness [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoutline Stats Buffer . position ( 0 ) ĊĠĠĠĠĠĠĠ Ġshader . v 2 Array (" dist Smooth ness ", Ġoutline Stats Buffer ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" color Count ", Ġcc ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" depth ", Ġdepth Ġ* Ġ 0 . 0 0 0 0 1 f ) ĊĊĠĠĠĠĠĠĠ Ġdraw Outlined Text ( stack , Ġoffset , Ġscale , Ġtexture , Ġhas UV At tract ors ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw Outlined Text ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġoffset : ĠVector 2 fc , ĊĠĠĠĠĠĠĠ Ġscale : ĠVector 2 fc , ĊĠĠĠĠĠĠĠ Ġtexture : ĠTexture 2 D , ĊĠĠĠĠĠĠĠ Ġhas UV At tract ors : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader SD F Text . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġtransform Uniform ( shader , Ġstack ) ĊĠĠĠĠĠĠĠ Ġshader . v 2 (" offset ", Ġoffset ) ĊĠĠĠĠĠĠĠ Ġshader . v 2 (" scale ", Ġscale ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , ĠGPU Filtering . LINEAR , ĠCl amping . CLAMP ) ĊĠĠĠĠĠĠĠ Ġ// Ġif Ġwe Ġhave Ġa Ġforce Ġfield Ġapplied , Ġsub divide Ġthe Ġgeometry ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġif Ġ( has UV At tract ors ) Ġflat 0 1 Cube X 1 0 . value Ġelse Ġflat 0 1 Cube ĊĠĠĠĠĠĠĠ Ġbuffer . draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Video ( ĊĠĠĠĠĠĠĠ Ġvideo : ĠG FX Transform , Ġtime : ĠDouble , ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , Ġtexture : ĠTexture 2 D , Ġcolor : ĠVector 4 fc , ĊĠĠĠĠĠĠĠ Ġfiltering : ĠFiltering , Ġclamp ing : ĠCl amping , Ġt iling : ĠVector 4 fc ?, Ġuv Projection : ĠUV Projection ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 DR GB A . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader , Ġvideo , Ġtime ) ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġtexture . w , Ġtexture . h , Ġcolor , Ġt iling , Ġfiltering , Ġuv Projection ) ĊĠĠĠĠĠĠĠ Ġtexture . bind ( 0 , Ġfiltering , Ġclamp ing ) ĊĠĠĠĠĠĠĠ Ġuv Projection . get Buffer (). draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Gaussian Blur ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġsize : ĠFloat , Ġw : ĠInt , Ġh : ĠInt , ĊĠĠĠĠĠĠĠ Ġthreshold : ĠFloat , Ġis First : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġis Fullscreen : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 D Gaussian Blur . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġtransform Uniform ( shader , Ġstack ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is First ) Ġshader . v 2 (" step Size ", Ġ 0 f , Ġ 1 f Ġ/ Ġh ) ĊĠĠĠĠĠĠĠ Ġelse Ġshader . v 2 (" step Size ", Ġ 1 f Ġ/ Ġw , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" steps ", Ġsize Ġ* Ġh ) ĊĠĠĠĠĠĠĠ Ġshader . v 1 (" threshold ", Ġthreshold ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġif Ġ( is Fullscreen ) ĠSimple Buffer . flat Large Ġelse ĠSimple Buffer . flat 1 1 ĊĠĠĠĠĠĠĠ Ġbuffer . draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 D Box Blur ( ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġsteps : ĠInt , Ġw : ĠInt , Ġh : ĠInt , ĊĠĠĠĠĠĠĠ Ġis First : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 D Box Blur . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġtransform Uniform ( shader , Ġstack ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 2 (" step Size ", Ġ 0 f , Ġ 1 f Ġ/ Ġh ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 1 (" steps ", Ġsteps ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 2 (" step Size ", Ġ 1 f Ġ/ Ġw , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshader . v 1 (" steps ", Ġsteps ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠG FX . flat 0 1 . draw ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw 3 DC ircle ( ĊĠĠĠĠĠĠĠ Ġthat : ĠG FX Transform ?, Ġtime : ĠDouble , ĊĠĠĠĠĠĠĠ Ġstack : ĠMatrix 4 f ArrayList , ĊĠĠĠĠĠĠĠ Ġinner Radius : ĠFloat , ĊĠĠĠĠĠĠĠ Ġstart Degrees : ĠFloat , ĊĠĠĠĠĠĠĠ Ġend Degrees : ĠFloat , ĊĠĠĠĠĠĠĠ Ġcolor : ĠVector 4 fc ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshader Ġ= ĠShader Lib . shader 3 DC ircle . value ĊĠĠĠĠĠĠĠ Ġshader . use () ĊĠĠĠĠĠĠĠ Ġdefine Advanced Graph ical Features ( shader , Ġthat , Ġtime ) ĊĠĠĠĠĠĠĠ Ġshader 3 D Uniform s ( shader , Ġstack , Ġ 1 , Ġ 1 , Ġcolor , Ġnull , ĠFiltering . NE ARE ST , Ġnull ) ĊĠĠĠĠĠĠĠ Ġvar Ġa 0 Ġ= Ġstart Degrees ĊĠĠĠĠĠĠĠ Ġvar Ġa 1 Ġ= Ġend Degrees ĊĠĠĠĠĠĠĠ Ġ// Ġif Ġthe Ġtwo Ġarrows Ġswitch Ġsides , Ġflip Ġthe Ġcircle ĊĠĠĠĠĠĠĠ Ġif Ġ( a 0 Ġ> Ġa 1 ) Ġ{// Ġfirst Ġstart Ġfor Ġchecker Ġpattern ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Ġ= Ġa 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa 0 Ġ= Ġa 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa 1 Ġ= Ġtmp Ġ- Ġ 3 6 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġfix Ġedge Ġresolution Ġloss ĊĠĠĠĠĠĠĠ Ġif Ġ( a 0 Ġ> Ġa 1 Ġ+ Ġ 3 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa 0 Ġ= Ġa 1 Ġ+ Ġ 3 6 0 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( a 1 Ġ> Ġa 0 Ġ+ Ġ 3 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa 1 Ġ= Ġa 0 Ġ+ Ġ 3 6 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġangle 0 Ġ= ĠG FX . to Radians ( a 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġangle 1 Ġ= ĠG FX . to Radians ( a 1 ) ĊĠĠĠĠĠĠĠ Ġshader . v 3 (" circle Params ", Ġ 1 f Ġ- Ġinner Radius , Ġangle 0 , Ġangle 1 ) ĊĠĠĠĠĠĠĠ ĠCircle . draw Buffer ( shader ) ĊĠĠĠĠĠĠĠ ĠG FX . check () ĊĠĠĠ Ġ} Ċ Ċ }