/* Ċ Ġ* Ġ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 ĠIN TEL _ map _ texture Ġ= Ġ" INTEL Map Texture ". native Class GL (" INTEL _ map _ texture ", Ġpostfix Ġ= ĠIN TEL ) Ġ{ ĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠNative Ġbindings Ġto Ġthe Ġ$ registry Link Ġextension . ĊĊĠĠĠĠĠĠĠ ĠSystems Ġwith Ġintegrated ĠGP Us Ġcan Ġshare Ġthe Ġsame Ġphysical Ġmemory Ġbetween ĠCPU Ġand ĠGPU . ĠThis Ġfeature , Ġif Ġexposed Ġby ĠAPI , Ġcan Ġbring Ġsignificant Ġperformance ĊĠĠĠĠĠĠĠ Ġbenefits Ġfor Ġgraphics Ġapplications Ġby Ġreducing Ġthe Ġcomplexity Ġof Ġuploading / accessing Ġtexture Ġcontents . ĠThis Ġextension Ġenables ĠCPU Ġdirect Ġaccess Ġto Ġthe ĊĠĠĠĠĠĠĠ ĠGPU Ġmemory Ġholding Ġtextures . ĊĊĠĠĠĠĠĠĠ ĠThe Ġproblem Ġwith Ġtexture Ġmemory Ġdirectly Ġexposed Ġto Ġclients Ġis Ġthat Ġtextures Ġare Ġoften Ġ' t iled '. ĠTex els Ġare Ġkept Ġin Ġspecific Ġlayout Ġto Ġimprove Ġlocal ity ĊĠĠĠĠĠĠĠ Ġof Ġreference Ġand Ġthus Ġperformance Ġof Ġtext uring . ĠThis Ġ' til ing ' Ġis Ġspecific Ġto Ġparticular Ġhardware Ġand Ġwould Ġbe Ġthus Ġdifficult Ġto Ġuse . ĊĊĠĠĠĠĠĠĠ ĠThis Ġextension Ġallows Ġto Ġcreate Ġtextures Ġwith Ġ' linear ' Ġlayout Ġwhich Ġallows Ġfor Ġsimplified Ġaccess Ġon Ġuser Ġside Ġ( pot entially Ġs acr ific ing Ġsome Ġperformance ĊĠĠĠĠĠĠĠ Ġduring Ġtexture Ġsampling ). ĊĊĠĠĠĠĠĠĠ ĠRequires Ġ${ GL 3 0 . core }. ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" Accepted Ġby Ġthe Ġ{@ code Ġpname } Ġparameter Ġof ĠTex Parameter i , Ġfor Ġtarget ĠTEXT URE _ 2 D .", ĊĊĠĠĠĠĠĠĠ Ġ" TEXTURE _ MEMORY _ LAYOUT _ INTEL " .. 0 x 8 3 FF ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" Accepted Ġby Ġthe Ġ{@ code Ġparams } Ġwhen Ġ{@ code Ġpname } Ġis Ġset Ġto Ġ{@ code ĠTEXT URE _ MEMORY _ LAYOUT _ INTEL }. ", ĊĊĠĠĠĠĠĠĠ Ġ" LAYOUT _ DEFAULT _ INTEL " .." 0 ", ĊĠĠĠĠĠĠĠ Ġ" LAYOUT _ LINEAR _ INTEL " .." 1 ", ĊĠĠĠĠĠĠĠ Ġ" LAYOUT _ LINEAR _ CPU _ C ACHED _ INTEL " .." 2 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Sync Texture INTEL ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠMakes Ġsure Ġthat Ġchanges Ġmade Ġby ĠCPU Ġare Ġvisible Ġto ĠGPU Ġby Ġflush ing Ġtexture Ġcache Ġin ĠGPU . ĠThe ĠGL Ġimplementation Ġtracks Ġthe Ġcache Ġusage Ġand Ġignores Ġthe ĊĠĠĠĠĠĠĠ Ġcommand Ġif Ġsuch Ġflush Ġis Ġnot Ġneeded . ĊĊĠĠĠĠĠĠĠ ĠIt Ġis Ġworth Ġnot ing Ġthat Ġthis Ġextension Ġdoes Ġnot Ġaddress Ġautomatic Ġsynchronization Ġbetween ĠCPU Ġand ĠGPU Ġwhen Ġboth Ġentities Ġoperate Ġon Ġthe Ġsame Ġtexture Ġat ĊĠĠĠĠĠĠĠ Ġthe Ġsame Ġtime . ĠThis Ġis Ġup Ġto Ġthe Ġapplication Ġto Ġass ure Ġsuch Ġsynchronization . ĠOtherwise , Ġthe Ġresults Ġmay Ġnot Ġbe Ġdeterministic Ġ( writes Ġfrom Ġdifferent ĊĠĠĠĠĠĠĠ Ġentities Ġmay Ġinter leave Ġin Ġa Ġnon - determin istic Ġway ). ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ ĠGLuint . IN (" texture ", Ġ" the Ġtexture Ġto Ġsynchronize ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Un map Texture 2 D INTEL ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠRelease s Ġthe Ġpointer Ġobtained Ġpreviously Ġvia Ġ# Map Texture 2 D INTEL (). ĠThis Ġmeans Ġthat Ġvirtual Ġmemory Ġspace Ġdedicated Ġto Ġmake Ġthe Ġtexture Ġavailable Ġvia Ġa ĊĠĠĠĠĠĠĠ Ġpointer Ġis Ġreleased Ġand Ġan Ġapplication Ġcan Ġno Ġlonger Ġassume Ġthis Ġmemory Ġis Ġaccessible Ġfrom ĠCPU . ĠSuccessful Ġexecution Ġof Ġthis Ġcommand Ġhas Ġan Ġadditional ĊĠĠĠĠĠĠĠ Ġeffect Ġas Ġif Ġ# Sync Texture INTEL () Ġwas Ġcalled Ġwith Ġ{@ code Ġtexture } Ġparameter . ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ ĠGLuint . IN (" texture ", Ġ" the Ġtexture Ġto Ġun map "), ĊĠĠĠĠĠĠĠ ĠGLint . IN (" level ", Ġ" the Ġmip map Ġlevel - of - detail Ġof Ġthe Ġtexture ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcustom Method (""" ĊĠĠĠ Ġprivate Ġstatic Ġint Ġget Stride ( Int Buffer Ġstride ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstride . get ( stride . position ()); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġstatic Ġint Ġget Stride ( int [] Ġstride ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstride [ 0 ]; ĊĠĠĠ Ġ} """) ĊĊĠĠĠ ĠMap Pointer (" get Stride ( stride ) Ġ* ĠGL Checks . get Tex Level Parameter i ( texture , ĠGL 1 1 . GL _ TEXTURE _ 2 D , Ġlevel , ĠGL 1 1 . GL _ TEXTURE _ HEIGHT )") .. void . p ( ĊĠĠĠĠĠĠĠ Ġ" Map Texture 2 D INTEL ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠAt tempts Ġto Ġreturn Ġa Ġdirect Ġpointer Ġto Ġthe Ġgraphics Ġstorage Ġfor Ġ 2 D Ġtexture Ġindicated Ġby Ġthe Ġ{@ code Ġtexture } Ġparameter . ĊĊĠĠĠĠĠĠĠ Ġ< b > L WJ GL Ġnote </ b >: ĠIf Ġgl Map Texture 2 D INTEL Ġwithout Ġan Ġexplicit Ġlength Ġargument Ġis Ġused Ġand Ġdirect - state - access Ġfunctionality Ġis Ġnot Ġavailable Ġin Ġthe ĊĠĠĠĠĠĠĠ Ġcurrent Ġcontext , Ġthe Ġtexture Ġobject Ġmust Ġcurrently Ġbe Ġbound Ġto Ġthe ĠGL _ TEXTURE _ 2 D Ġtarget . ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ ĠGLuint . IN (" texture ", Ġ" the Ġtexture Ġto Ġmap "), ĊĠĠĠĠĠĠĠ ĠGLint . IN (" level ", Ġ" the Ġmip map Ġlevel - of - detail Ġof Ġthe Ġtexture "), ĊĠĠĠĠĠĠĠ ĠGL bit field . IN (" access ", Ġ" the Ġtype Ġof Ġaccess Ġthat Ġwill Ġbe Ġperformed Ġby Ġthe Ġapplication ", Ġ"# MAP _ READ _ BIT Ġ# MAP _ WRITE _ BIT "), ĊĠĠĠĠĠĠĠ ĠCheck ( 1 ) .. GLint . p . OUT (" stride ", Ġ" returns Ġthe Ġdistance Ġin Ġbytes Ġbetween Ġsubsequent Ġrows Ġin Ġthe Ġtexture "), ĊĠĠĠĠĠĠĠ ĠCheck ( 1 ) .. GLenum . p . OUT (" layout ", Ġ" returns Ġthe Ġinternal Ġlayout Ġof Ġthe Ġtexture Ġin Ġthe Ġgraphics Ġmemory ") ĊĠĠĠ Ġ) Ċ }