/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠAnt on ĠTr ush kov Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . ks df v . the le ma . img Ċ Ċ import Ġorg . ks df v . the le ma . app . APP Ċ import Ġorg . ks df v . the le ma . gl .* Ċ Ċ /** Ġ@ author Ġz eg an styl Ġ*/ Ċ class ĠFrame Buffer Attachment ( ĊĠĠĠ Ġoverride Ġvar Ġattachment : ĠInt Ġ= ĠGL _ COLOR _ ATTACHMENT 0 , ĊĊĠĠĠ Ġoverride Ġvar Ġinternal Format : ĠInt Ġ= ĠGL _ RGBA , ĊĊĠĠĠ Ġvar Ġpixel Format : ĠInt Ġ= ĠGL _ RGBA , ĊĊĠĠĠ Ġvar Ġtype : ĠInt Ġ= ĠGL _ UNSIGNED _ BYTE , ĊĊĠĠĠ Ġvar Ġmip map Level : ĠInt Ġ= Ġ 0 , ĊĊĠĠĠ Ġ/** ĠIf Ġyou Ġalready Ġcreated Ġtexture , Ġyou Ġmay Ġset Ġit Ġto Ġ[ texture ] Ġand Ġspecify Ġ[ gl Handle ] Ġ*/ ĊĠĠĠ Ġoverride Ġvar Ġtexture : ĠI Texture 2 D Ġ= ĠTexture 2 D ( texture Handle Ġ= Ġ 0 ) Ċ ) Ġ: ĠI Frame Buffer Attachment Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtarget : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠGL _ FRAMEBUFFER ĊĊĠĠĠ Ġ/** ĠIf Ġyou Ġalready Ġcreated Ġtexture Ġor Ġrender Ġbuffer , Ġyou Ġmay Ġset Ġit Ġto Ġ[ texture ] Ġand Ġspecify Ġ[ gl Handle ] Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġgl Handle : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtexture . texture Handle ĊĊĠĠĠ Ġ/** ĠSetup Ġthis Ġattachment Ġfor Ġframe Ġbuffer Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsetup ( frame Buffer : ĠI Frame Buffer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( gl Handle Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// computer graphics . stack exchange . com / questions / 9 7 1 9 / does - webgl - 2 - support - linear - depth - texture - sampling ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= Ġif Ġ( pixel Format Ġ== ĠGL _ DEPTH _ COMPONENT Ġ&& ĠAPP . platform Type Ġ== ĠAPP . Web GL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL _ NE ARE ST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGL _ LINEAR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtexture Ġ= Ġtexture ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( texture . texture Handle Ġ== Ġ 0 ) Ġtexture . texture Handle Ġ= ĠGL . gl Gen Texture () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġtexture . gl Target ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexture . bind () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexture . min Filter Ġ= Ġfilter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexture . mag Filter Ġ= Ġfilter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexture . s Wrap Ġ= ĠGL _ CLAMP _ TO _ EDGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexture . t Wrap Ġ= ĠGL _ CLAMP _ TO _ EDGE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . gl TexParameter i ( target , ĠGL _ TEXTURE _ MIN _ FILTER , Ġfilter ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . gl TexParameter i ( target , ĠGL _ TEXTURE _ MAG _ FILTER , Ġfilter ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . gl TexParameter i ( target , ĠGL _ TEXTURE _ WRAP _ S , ĠGL _ CLAMP _ TO _ EDGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . gl TexParameter i ( target , ĠGL _ TEXTURE _ WRAP _ T , ĠGL _ CLAMP _ TO _ EDGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL . gl TexImage 2 D ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtexture . gl Target , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmip map Level , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Format , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe Buffer . width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe Buffer . height , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpixel Format , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGL . gl Framebuffer Texture 2 D ( GL _ FRAMEBUFFER , Ġattachment , Ġtexture . gl Target , Ġgl Handle , Ġmip map Level ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġtexture . destroy () ĊĠĠĠ Ġ} Ċ }