/* Ċ Ġ* ĠCopyright ĠL WJ GL . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicense Ġterms : Ġhttps :// www . lwjgl . org / license Ċ Ġ*/ Ċ package Ġorg . lwjgl . opengl . templates Ċ Ċ import Ġorg . lwjgl . generator .* Ċ import Ġorg . lwjgl . opengl .* Ċ Ċ val ĠEXT _ texture _ buffer _ object Ġ= Ġ" EXT Texture Buffer Object ". native Class GL (" EXT _ texture _ buffer _ object ", Ġpostfix Ġ= ĠEXT ) Ġ{ ĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠNative Ġbindings Ġto Ġthe Ġ$ registry Link Ġextension . ĊĊĠĠĠĠĠĠĠ ĠThis Ġextension Ġprovides Ġa Ġnew Ġtexture Ġtype , Ġcalled Ġa Ġbuffer Ġtexture . ĠBuffer Ġtextures Ġare Ġone - dimensional Ġarrays Ġof Ġtex els Ġwhose Ġstorage Ġcomes Ġfrom Ġan ĊĠĠĠĠĠĠĠ Ġattached Ġbuffer Ġobject . ĠWhen Ġa Ġbuffer Ġobject Ġis Ġbound Ġto Ġa Ġbuffer Ġtexture , Ġa Ġformat Ġis Ġspecified , Ġand Ġthe Ġdata Ġin Ġthe Ġbuffer Ġobject Ġis Ġtreated Ġas Ġan ĊĠĠĠĠĠĠĠ Ġarray Ġof Ġtex els Ġof Ġthe Ġspecified Ġformat . ĊĊĠĠĠĠĠĠĠ ĠThe Ġuse Ġof Ġa Ġbuffer Ġobject Ġto Ġprovide Ġstorage Ġallows Ġthe Ġtexture Ġdata Ġto Ġbe Ġspecified Ġin Ġa Ġnumber Ġof Ġdifferent Ġways : Ġvia Ġbuffer Ġobject Ġloads ĊĠĠĠĠĠĠĠ Ġ( BufferData ), Ġdirect ĠCPU Ġwrites Ġ( Map Buffer ), Ġframebuffer Ġread back s Ġ( EXT _ pixel _ buffer _ object Ġextension ). ĠA Ġbuffer Ġobject Ġcan Ġalso Ġbe Ġloaded Ġby Ġtransform ĊĠĠĠĠĠĠĠ Ġfeedback Ġ( NV _ transform _ feedback Ġextension ), Ġwhich Ġcaptures Ġselected Ġtransformed Ġattributes Ġof Ġvertices Ġprocessed Ġby Ġthe ĠGL . ĠSe veral Ġof Ġthese Ġmechanisms ĊĠĠĠĠĠĠĠ Ġdo Ġnot Ġrequire Ġan Ġextra Ġdata Ġcopy , Ġwhich Ġwould Ġbe Ġrequired Ġwhen Ġusing Ġconvention al ĠTex Image - like Ġentry Ġpoints . ĊĊĠĠĠĠĠĠĠ ĠBuffer Ġtextures Ġdo Ġnot Ġsupport Ġmip mapping , Ġtexture Ġlook ups Ġwith Ġnormalized Ġfloating - point Ġtexture Ġcoordinates , Ġand Ġtexture Ġfiltering Ġof Ġany Ġsort , Ġand ĊĠĠĠĠĠĠĠ Ġmay Ġnot Ġbe Ġused Ġin Ġfixed - function Ġfragment Ġprocessing . ĠThey Ġcan Ġbe Ġaccessed Ġvia Ġsingle Ġtex el Ġfetch Ġoperations Ġin Ġprogram mable Ġshaders . ĠFor Ġassembly ĊĠĠĠĠĠĠĠ Ġshaders Ġ( NV _ gpu _ program 4 ), Ġthe ĠTX F Ġinstruction Ġis Ġused . ĠFor ĠGL SL Ġ( EXT _ gpu _ shader 4 ), Ġa Ġnew Ġsampler Ġtype Ġand Ġtex el Ġfetch Ġfunction Ġare Ġused . ĊĊĠĠĠĠĠĠĠ ĠBuffer Ġtextures Ġcan Ġbe Ġsubstant ially Ġlarger Ġthan Ġequivalent Ġone - dimensional Ġtextures ; Ġthe Ġmaximum Ġtexture Ġsize Ġsupported Ġfor Ġbuffer Ġtextures Ġin Ġthe ĊĠĠĠĠĠĠĠ Ġinitial Ġimplementation Ġof Ġthis Ġextension Ġis Ġ 2 ^ 2 7 Ġtex els , Ġvers us Ġ 2 ^ 1 3 Ġ( 8 1 9 2 ) Ġtex els Ġfor Ġotherwise Ġequivalent Ġone - dimensional Ġtextures . Ġ( Note Ġthat Ġthis ĊĠĠĠĠĠĠĠ Ġextension Ġonly Ġguarantees Ġsupport Ġfor Ġbuffer Ġtextures Ġwith Ġ 2 ^ 1 6 Ġtex els , Ġbut Ġwe Ġexpect Ġmost Ġimplementations Ġto Ġexceed Ġthat Ġsubstant ially .) ĠWhen Ġa Ġbuffer ĊĠĠĠĠĠĠĠ Ġobject Ġis Ġattached Ġto Ġa Ġbuffer Ġtexture , Ġa Ġsize Ġis Ġnot Ġspecified ; Ġrather , Ġthe Ġnumber Ġof Ġtex els Ġin Ġthe Ġtexture Ġis Ġtaken Ġby Ġdiv iding Ġthe Ġsize Ġof Ġthe ĊĠĠĠĠĠĠĠ Ġbuffer Ġobject Ġby Ġthe Ġsize Ġof Ġeach Ġtex el . ĊĊĠĠĠĠĠĠĠ ĠRequires Ġ${ GL 2 0 . core } Ġand Ġ${ EXT _ gpu _ shader 4 . link } Ġor Ġ${ registry Link (" NV ", Ġ" gpu _ program 4 ") }. ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠAccept ed Ġby Ġthe Ġ{@ code Ġtarget } Ġparameter Ġof ĠBind Buffer , ĠBuffer Data , ĠBuffer Sub Data , ĠMap Buffer , ĠBind Texture , ĠUn map Buffer , ĠGet Buffer Sub Data , ĊĠĠĠĠĠĠĠ ĠGet Buffer Parameter iv , ĠGet Buffer Pointer v , Ġand ĠTex Buffer EXT , Ġand Ġthe Ġ{@ code Ġpname } Ġparameter Ġof ĠGet Boolean v , ĠGet Double v , ĠGet Float v , Ġand ĠGet Integer v . ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ Ġ" TEXTURE _ BUFFER _ EXT " .. 0 x 8 C 2 A ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" Accepted Ġby Ġthe Ġ{@ code Ġpname } Ġparameters Ġof ĠGet Boolean v , ĠGet Double v , ĠGet Float v , Ġand ĠGet Integer v .", ĊĊĠĠĠĠĠĠĠ Ġ" MAX _ TEXTURE _ BUFFER _ SIZE _ EXT " .. 0 x 8 C 2 B , ĊĠĠĠĠĠĠĠ Ġ" TEXTURE _ BINDING _ BUFFER _ EXT " .. 0 x 8 C 2 C , ĊĠĠĠĠĠĠĠ Ġ" TEXTURE _ BUFFER _ DATA _ STORE _ BINDING _ EXT " .. 0 x 8 C 2 D , ĊĠĠĠĠĠĠĠ Ġ" TEXTURE _ BUFFER _ FORMAT _ EXT " .. 0 x 8 C 2 E ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Tex Buffer EXT ", ĊĠĠĠĠĠĠĠ Ġ"", ĊĊĠĠĠĠĠĠĠ ĠGLenum . IN (" target ", Ġ""), ĊĠĠĠĠĠĠĠ ĠGLenum . IN (" internal format ", Ġ""), ĊĠĠĠĠĠĠĠ ĠGLuint . IN (" buffer ", Ġ"") ĊĠĠĠ Ġ) Ċ }