/* Ċ Ġ* ĠCopyright ĠL WJ GL . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicense Ġterms : Ġhttps :// www . lwjgl . org / license Ċ Ġ*/ Ċ package Ġop eng l . templates Ċ Ċ import Ġorg . lwjgl . generator .* Ċ import Ġop eng l .* Ċ Ċ val ĠAR B _ sample _ locations Ġ= Ġ" ARB Sample Locations ". native Class GL (" ARB _ sample _ locations ") Ġ{ ĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠNative Ġbindings Ġto Ġthe Ġ$ registry Link Ġextension . ĊĊĠĠĠĠĠĠĠ ĠThis Ġextension Ġallows Ġan Ġapplication Ġto Ġmodify Ġthe Ġlocations Ġof Ġsamples Ġwithin Ġa Ġpixel Ġused Ġin Ġmultis ample Ġraster ization . ĠAdditionally , Ġit Ġallows ĊĠĠĠĠĠĠĠ Ġapplications Ġto Ġspecify Ġdifferent Ġsample Ġlocations Ġfor Ġeach Ġpixel Ġin Ġa Ġgroup Ġof Ġadjacent Ġpixels , Ġwhich Ġmay Ġincrease Ġant ialias ing Ġquality Ġ( part icular ly ĊĠĠĠĠĠĠĠ Ġif Ġa Ġcustom Ġresolve Ġshader Ġis Ġused Ġthat Ġtakes Ġadvantage Ġof Ġthese Ġdifferent Ġlocations ). ĊĊĠĠĠĠĠĠĠ ĠIt Ġis Ġcommon Ġfor Ġimplementations Ġto Ġoptimize Ġthe Ġstorage Ġof Ġdepth Ġvalues Ġby Ġstoring Ġvalues Ġthat Ġcan Ġbe Ġused Ġto Ġreconstruct Ġdepth Ġat Ġeach Ġsample ĊĠĠĠĠĠĠĠ Ġlocation , Ġrather Ġthan Ġstoring Ġseparate Ġdepth Ġvalues Ġfor Ġeach Ġsample . ĠFor Ġexample , Ġthe Ġdepth Ġvalues Ġfrom Ġa Ġsingle Ġtriangle Ġcan Ġbe Ġrepresented Ġusing ĊĠĠĠĠĠĠĠ Ġplane Ġequations . ĠWhen Ġthe Ġdepth Ġvalue Ġfor Ġa Ġsample Ġis Ġneeded , Ġit Ġis Ġautomatically Ġevaluated Ġat Ġthe Ġsample Ġlocation . ĠModify ing Ġthe Ġsample Ġlocations ĊĠĠĠĠĠĠĠ Ġcauses Ġthe Ġre construction Ġto Ġno Ġlonger Ġevaluate Ġthe Ġsame Ġdepth Ġvalues Ġas Ġwhen Ġthe Ġsamples Ġwere Ġoriginally Ġgenerated . ĠThis Ġextension Ġprovides Ġa Ġcommand ĊĠĠĠĠĠĠĠ Ġto Ġ" evaluate " Ġand Ġstore Ġper - sample Ġdepth Ġvalues Ġusing Ġthe Ġcurrently Ġprogram med Ġsample Ġlocations , Ġwhich Ġallows Ġthe Ġapplication Ġto Ġmanage Ġthis Ġissue ĊĠĠĠĠĠĠĠ Ġif / when Ġnecessary . ĊĊĠĠĠĠĠĠĠ ĠThe Ġprogram mable Ġsample Ġlocations Ġare Ġused Ġduring Ġraster ization Ġand Ġfor Ġevaluation Ġof Ġdepth Ġfunctions Ġduring Ġnormal Ġge ometric Ġrendering . ĠThe ĊĠĠĠĠĠĠĠ Ġprogram mable Ġlocations Ġare Ġassociated Ġwith Ġa Ġframebuffer Ġobject Ġrather Ġthan Ġan Ġindividual Ġdepth Ġbuffer , Ġso Ġif Ġthe Ġdepth Ġbuffer Ġis Ġused Ġas Ġa Ġtexture Ġthe ĊĠĠĠĠĠĠĠ Ġtexture Ġsampling Ġmay Ġbe Ġdone Ġat Ġthe Ġstandard Ġsample Ġlocations . ĠAdditionally , Ġcommands Ġthat Ġdo Ġnot Ġrender Ġge ometric Ġprimitives Ġ( e . g . ĠRead Pixels , ĊĠĠĠĠĠĠĠ ĠB lit Framebuffer , ĠCopy Tex Sub Image 2 D , Ġetc .) Ġmay Ġuse Ġthe Ġstandard Ġsample Ġlocations Ġto Ġevaluate Ġdepth Ġfunctions Ġrather Ġthan Ġthe Ġprogram mable Ġlocations . ĠIf ĊĠĠĠĠĠĠĠ Ġa Ġsingle Ġdepth Ġbuffer Ġis Ġused Ġat Ġdifferent Ġtimes Ġwith Ġdifferent Ġsample Ġlocations , Ġthe Ġdepth Ġfunctions Ġmay Ġbe Ġinterpreted Ġusing Ġthe Ġcurrent Ġsample ĊĠĠĠĠĠĠĠ Ġlocations . ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" Accepted Ġby Ġthe Ġ{@ code Ġpname } Ġparameter Ġof ĠGet Boolean v , ĠGet Integer v , ĠGet Integer 6 4 v , ĠGet Float v , Ġand ĠGet Double v .", ĊĊĠĠĠĠĠĠĠ Ġ" SAMPLE _ LOCATION _ SUB PIXEL _ BITS _ ARB " .. 0 x 9 3 3 D , ĊĠĠĠĠĠĠĠ Ġ" SAMPLE _ LOCATION _ PIXEL _ GRID _ WIDTH _ ARB " .. 0 x 9 3 3 E , ĊĠĠĠĠĠĠĠ Ġ" SAMPLE _ LOCATION _ PIXEL _ GRID _ HEIGHT _ ARB " .. 0 x 9 3 3 F , ĊĠĠĠĠĠĠĠ Ġ" PROGRAM M ABLE _ SAMPLE _ LOCATION _ TABLE _ SIZE _ ARB " .. 0 x 9 3 4 0 ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ// ĠAlias Ġof ĠSAMPLE _ POSITION . ĠBefore ĠNV _ exp ms , Ġthe Ġspec Ġused Ġ" location ". ĠSAMPLE _ LOCATION _ ARB Ġ 0 x 8 E 5 0 ĠPRO GRAM M ABLE _ SAMPLE _ LOCATION _ ARB Ġ 0 x 9 3 4 1 ĠAccept ed Ġby ĊĠĠĠĠĠĠĠ Ġthe Ġ{@ code Ġpname } Ġparameter Ġof ĠFrame buffer Parameter i , ĠGet Framebuffer Parameter iv . ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ Ġ" FRAMEBUFFER _ PROGRAM M ABLE _ SAMPLE _ LOCATION S _ ARB " .. 0 x 9 3 4 2 , ĊĠĠĠĠĠĠĠ Ġ" FRAMEBUFFER _ SAMPLE _ LOCATION _ PIXEL _ GRID _ ARB " .. 0 x 9 3 4 3 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Framebuffer Sample Locations fv ARB ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠControls Ġthe Ġprogram mable Ġsample Ġlocations Ġfor Ġthe Ġframebuffer Ġbound Ġto Ġthe Ġspecified Ġ{@ code Ġtarget }. ĊĊĠĠĠĠĠĠĠ ĠThere Ġare Ġ{@ code ĠN } Ġpairs Ġof Ġprogram mable Ġsample Ġlocations Ġvalues Ġin Ġa Ġframebuffer , Ġwhere Ġ{@ code ĠN } Ġis Ġthe Ġvalue Ġof ĊĠĠĠĠĠĠĠ Ġ# PROGRAM M ABLE _ SAMPLE _ LOCATION _ TABLE _ SIZE _ ARB . ĠEach Ġprogram mable Ġsample Ġlocation Ġis Ġspecified Ġas Ġa Ġpair Ġof Ġfloating Ġpoint Ġvalues Ġin Ġthe Ġrange ĊĠĠĠĠĠĠĠ Ġ{@ code Ġ[ 0 , 1 ]}, Ġcorresponding Ġto Ġthe Ġx Ġand Ġy Ġlocations Ġrespectively Ġin ĠGL Ġpixel Ġspace . Ġ{@ code Ġ( 0 . 5 , Ġ 0 . 5 )} Ġthus Ġcorresponds Ġto Ġthe Ġpixel Ġcenter . ĠSample ĊĠĠĠĠĠĠĠ Ġlocations Ġoutside Ġof Ġ{@ code Ġ[ 0 , 1 ]} Ġresult Ġin Ġundefined Ġbehavior . ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ ĠGLenum (" target ", Ġ" the Ġframebuffer Ġtarget ", Ġ"# FRAMEBUFFER Ġ# DRAW _ FRAMEBUFFER Ġ# READ _ FRAMEBUFFER "), ĊĠĠĠĠĠĠĠ ĠGLuint (" start ", Ġ" the Ġfirst Ġsample Ġlocation Ġto Ġupdate "), ĊĠĠĠĠĠĠĠ ĠAuto Size ( 2 , Ġ" v ") .. GL sizei (" count ", Ġ" the Ġnumber Ġof Ġsample Ġlocations Ġto Ġupdate "), ĊĠĠĠĠĠĠĠ ĠGLfloat . const . p (" v ", Ġ" a Ġpair Ġof Ġvalues Ġfor Ġeach Ġsample Ġlocation Ġto Ġupdate ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Named Framebuffer Sample Locations fv ARB ", ĊĠĠĠĠĠĠĠ Ġ" D SA Ġversion Ġof Ġ# Framebuffer Sample Locations fv ARB (). ", ĊĊĠĠĠĠĠĠĠ ĠGLuint (" framebuffer ", Ġ" the Ġframebuffer Ġobject Ġto Ġupdate "), ĊĠĠĠĠĠĠĠ Ġthis [" Framebuffer Sample Locations fv ARB "][" start "], ĊĠĠĠĠĠĠĠ Ġthis [" Framebuffer Sample Locations fv ARB "][" count "], ĊĠĠĠĠĠĠĠ Ġthis [" Framebuffer Sample Locations fv ARB "][" v "] ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Evaluate Depth Values ARB ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠEvalu ates Ġdepth Ġvalues Ġfor Ġall Ġsamples Ġin Ġthe Ġcurrent Ġdepth Ġbuffer Ġ( subject Ġto Ġthe Ġpixel Ġownership Ġand Ġsc issor Ġtests ) Ġand Ġstores Ġeach Ġvalue Ġin Ġthe ĊĠĠĠĠĠĠĠ Ġdepth Ġbuffer . ĠThis Ġcan Ġbe Ġused Ġto Ġensure Ġthat Ġlater Ġaccesses Ġwill Ġuse Ġdepth Ġvalues Ġconsistent Ġwith Ġthe Ġsample Ġlocations Ġused Ġwhen Ġthe Ġsamples Ġwere ĊĠĠĠĠĠĠĠ Ġgenerated . ĠIf Ġthe Ġcurrent Ġframebuffer Ġhas Ġno Ġdepth Ġbuffer , ĠEvaluate Depth Values ARB Ġwill Ġhave Ġno Ġeffect . ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) Ċ }