GXS.OpenGLAdapter.pas 218 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805
  1. //
  2. // The graphics engine GXScene
  3. //
  4. unit GXS.OpenGLAdapter;
  5. (* OpenGL adapter *)
  6. interface
  7. {$I Stage.Defines.inc}
  8. uses
  9. Winapi.OpenGL,
  10. Winapi.OpenGLext,
  11. Winapi.Windows,
  12. System.SysUtils,
  13. Stage.OpenGLTokens,
  14. Stage.Strings,
  15. Stage.Logger,
  16. Stage.VectorGeometry,
  17. Stage.VectorTypes;
  18. const
  19. {$IFDEF CROSSVCL}
  20. {$IF Defined(LINUX)}
  21. opengl32 = 'libGL.so';
  22. glu32 = 'libGLU.so.1';
  23. {$ELSEIF Defined(MACOS)}
  24. opengl32 = '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib';
  25. glu32 = '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib';
  26. {$ELSE}
  27. Unsupported platform
  28. {$ENDIF}
  29. {$ELSE}
  30. opengl32 = 'OpenGL32.dll';
  31. glu32 = 'GLU32.dll';
  32. {$ENDIF}
  33. type
  34. EOpenGLError = class(Exception);
  35. TGLExtensionsAndEntryPoints = class
  36. private
  37. FBuffer: string;
  38. FInitialized: boolean;
  39. FDebug: boolean;
  40. FDebugIds: Cardinal;
  41. function CheckExtension(const Extension: string): boolean;
  42. {$IFDEF SUPPORT_WGL}
  43. procedure ReadWGLExtensions;
  44. procedure ReadWGLImplementationProperties;
  45. {$ENDIF}
  46. function GetAddress(const ProcName: string): Pointer;
  47. function GetAddressNoSuffixes(const ProcName: string): Pointer;
  48. function GetAddressAlt(const ProcName1, ProcName2: string): Pointer;
  49. function GetCapAddress: Pointer;
  50. public
  51. VERSION_1_0, VERSION_1_1, VERSION_1_2, VERSION_1_3, VERSION_1_4,
  52. VERSION_1_5, VERSION_2_0, VERSION_2_1, VERSION_3_0, VERSION_3_1,
  53. VERSION_3_2, VERSION_3_3, VERSION_4_0, VERSION_4_1, VERSION_4_2,
  54. ARB_blend_func_extended, ARB_color_buffer_float, ARB_compatibility,
  55. ARB_copy_buffer, ARB_depth_buffer_float, ARB_depth_clamp,
  56. ARB_depth_texture, ARB_draw_buffers, ARB_draw_buffers_blend,
  57. ARB_draw_elements_base_vertex, ARB_draw_indirect, ARB_draw_instanced,
  58. ARB_explicit_attrib_location, ARB_fragment_coord_conventions,
  59. ARB_fragment_program, ARB_fragment_program_shadow, ARB_fragment_shader,
  60. ARB_framebuffer_object, ARB_framebuffer_sRGB, ARB_geometry_shader4,
  61. ARB_gpu_shader_fp64, ARB_gpu_shader5, ARB_half_float_pixel,
  62. ARB_half_float_vertex, ARB_imaging, ARB_instanced_arrays,
  63. ARB_map_buffer_range, ARB_matrix_palette, ARB_multisample,
  64. ARB_multitexture, ARB_occlusion_query, ARB_occlusion_query2,
  65. ARB_pixel_buffer_object, ARB_point_parameters, ARB_point_sprite,
  66. ARB_provoking_vertex, ARB_sample_shading, ARB_sampler_objects,
  67. ARB_seamless_cube_map, ARB_shader_bit_encoding, ARB_shader_subroutine,
  68. ARB_shader_texture_lod, ARB_shading_language_100, ARB_shadow,
  69. ARB_shadow_ambient, ARB_shader_objects, ARB_sync, ARB_tessellation_shader,
  70. ARB_texture_border_clamp, ARB_texture_buffer_object,
  71. ARB_texture_buffer_object_rgb32, ARB_texture_compression,
  72. ARB_texture_compression_rgtc, ARB_texture_cube_map,
  73. ARB_texture_cube_map_array, ARB_texture_env_add, ARB_texture_env_combine,
  74. ARB_texture_env_crossbar, ARB_texture_env_dot3, ARB_texture_float,
  75. ARB_texture_gather, ARB_texture_mirrored_repeat, ARB_texture_multisample,
  76. ARB_texture_non_power_of_two, ARB_texture_query_lod,
  77. ARB_texture_rectangle, ARB_texture_rg, ARB_texture_rgb10_a2ui,
  78. ARB_texture_swizzle, ARB_timer_query, ARB_transform_feedback2,
  79. ARB_transform_feedback3, ARB_transpose_matrix, ARB_uniform_buffer_object,
  80. ARB_vertex_array_bgra, ARB_vertex_array_object, ARB_vertex_blend,
  81. ARB_vertex_buffer_object, ARB_vertex_program, ARB_vertex_shader,
  82. ARB_vertex_type_2_10_10_10_rev, ARB_window_pos,
  83. ARB_texture_compression_bptc, ARB_get_program_binary,
  84. ARB_separate_shader_objects, ARB_shader_stencil_export, KHR_debug,
  85. ARB_clear_buffer_object, ARB_compute_shader, ARB_copy_image,
  86. ARB_debug_group, ARB_debug_label, ARB_debug_output2,
  87. ARB_ES3_compatibility, ARB_explicit_uniform_location,
  88. ARB_fragment_layer_viewport, ARB_framebuffer_no_attachments,
  89. ARB_internalformat_query2, ARB_invalidate_subdata,
  90. ARB_multi_draw_indirect, ARB_program_interface_query,
  91. ARB_shader_image_size, ARB_shader_storage_buffer_object,
  92. ARB_stencil_texturing, ARB_texture_buffer_range, ARB_texture_query_levels,
  93. ARB_texture_storage_multisample, ARB_texture_view,
  94. ARB_vertex_attrib_binding, ARB_robustness_isolation, ARB_cl_event,
  95. _3DFX_multisample, _3DFX_tbuffer, _3DFX_texture_compression_FXT1,
  96. ATI_draw_buffers, ATI_texture_compression_3dc, ATI_texture_float,
  97. ATI_texture_mirror_once, S3_s3tc, EXT_abgr, EXT_bgra,
  98. EXT_bindable_uniform, EXT_blend_color, EXT_blend_equation_separate,
  99. EXT_blend_func_separate, EXT_blend_logic_op, EXT_blend_minmax,
  100. EXT_blend_subtract, EXT_Cg_shader, EXT_clip_volume_hint,
  101. EXT_compiled_vertex_array, EXT_copy_texture, EXT_depth_bounds_test,
  102. EXT_draw_buffers2, EXT_draw_instanced, EXT_draw_range_elements,
  103. EXT_fog_coord, EXT_framebuffer_blit, EXT_framebuffer_multisample,
  104. EXT_framebuffer_object, EXT_framebuffer_sRGB, EXT_geometry_shader4,
  105. EXT_gpu_program_parameters, EXT_gpu_shader4, EXT_multi_draw_arrays,
  106. EXT_multisample, EXT_packed_depth_stencil, EXT_packed_float,
  107. EXT_packed_pixels, EXT_paletted_texture, EXT_pixel_buffer_object,
  108. EXT_polygon_offset, EXT_rescale_normal, EXT_secondary_color,
  109. EXT_separate_specular_color, EXT_shadow_funcs, EXT_shared_texture_palette,
  110. EXT_stencil_clear_tag, EXT_stencil_two_side, EXT_stencil_wrap,
  111. EXT_texture3D, EXT_texture_array, EXT_texture_buffer_object,
  112. EXT_texture_compression_latc, EXT_texture_compression_rgtc,
  113. EXT_texture_compression_s3tc, EXT_texture_cube_map,
  114. EXT_texture_edge_clamp, EXT_texture_env_add, EXT_texture_env_combine,
  115. EXT_texture_env_dot3, EXT_texture_filter_anisotropic, EXT_texture_integer,
  116. EXT_texture_lod, EXT_texture_lod_bias, EXT_texture_mirror_clamp,
  117. EXT_texture_object, EXT_texture_rectangle, EXT_texture_sRGB,
  118. EXT_texture_shared_exponent, EXT_timer_query, EXT_transform_feedback,
  119. EXT_vertex_array, EXT_texture_sRGB_decode, EXT_direct_state_access,
  120. EXT_texture_swizzle, HP_occlusion_test, IBM_rasterpos_clip,
  121. KTX_buffer_region, MESA_resize_buffers, NV_blend_square,
  122. NV_conditional_render, NV_copy_image, NV_depth_buffer_float, NV_fence,
  123. NV_float_buffer, NV_fog_distance, NV_geometry_program4,
  124. NV_light_max_exponent, NV_multisample_filter_hint, NV_occlusion_query,
  125. NV_point_sprite, NV_primitive_restart, NV_register_combiners,
  126. NV_shader_buffer_load, NV_texgen_reflection, NV_texture_compression_vtc,
  127. NV_texture_env_combine4, NV_texture_rectangle, NV_texture_shader,
  128. NV_texture_shader2, NV_texture_shader3, NV_transform_feedback,
  129. NV_vertex_array_range, NV_vertex_array_range2,
  130. NV_vertex_buffer_unified_memory, NV_vertex_program, SGI_color_matrix,
  131. SGIS_generate_mipmap, SGIS_multisample, SGIS_texture_border_clamp,
  132. SGIS_texture_color_mask, SGIS_texture_edge_clamp, SGIS_texture_lod,
  133. SGIX_depth_texture, SGIX_shadow, SGIX_shadow_ambient,
  134. AMD_vertex_shader_tessellator, WIN_swap_hint, ATI_meminfo,
  135. NVX_gpu_memory_info, NV_vdpau_interop, NV_path_rendering,
  136. GREMEDY_frame_terminator, GREMEDY_string_marker, AMDX_debug_output,
  137. ARB_debug_output: boolean;
  138. // OpenGL 1.1 core functions and procedures
  139. BindTexture: procedure(target: Cardinal; texture: Cardinal);stdcall;
  140. BlendFunc: procedure(sfactor: Cardinal; dfactor: Cardinal);stdcall;
  141. Clear: procedure(mask: TGLbitfield);stdcall;
  142. ClearColor: procedure(red, green, blue, alpha: Single);stdcall;
  143. ClearDepth: procedure(depth: TGLclampd);stdcall;
  144. ClearStencil: procedure(s: TGLint);stdcall;
  145. ColorMask: procedure(red, green, blue, alpha: TGLboolean);stdcall;
  146. CopyTexImage1D: procedure(target: Cardinal; level: TGLint;
  147. internalFormat: Cardinal; X, y: TGLint; Width: TGLsizei; border: TGLint);stdcall;
  148. CopyTexImage2D: procedure(target: Cardinal; level: TGLint;
  149. internalFormat: Cardinal; X, y: TGLint; Width, Height: TGLsizei;
  150. border: TGLint);stdcall;
  151. CopyTexSubImage1D: procedure(target: Cardinal; level, xoffset, X, y: TGLint;
  152. Width: TGLsizei);stdcall;
  153. CopyTexSubImage2D: procedure(target: Cardinal;
  154. level, xoffset, yoffset, X, y: TGLint; Width, Height: TGLsizei);stdcall;
  155. CullFace: procedure(mode: Cardinal);stdcall;
  156. DeleteTextures: procedure(n: TGLsizei; textures: PGLuint);stdcall;
  157. DepthFunc: procedure(func: Cardinal);stdcall;
  158. DepthMask: procedure(flag: TGLboolean);stdcall;
  159. DepthRange: procedure(zNear, zFar: TGLclampd);stdcall;
  160. Disable: procedure(cap: Cardinal);stdcall;
  161. DrawArrays: procedure(mode: Cardinal; First: TGLint; Count: TGLsizei);stdcall;
  162. DrawBuffer: procedure(mode: Cardinal);stdcall;
  163. DrawElements: procedure(mode: Cardinal; Count: TGLsizei; atype: Cardinal;
  164. indices: Pointer);stdcall;
  165. Enable: procedure(cap: Cardinal);stdcall;
  166. Finish: procedure();stdcall;
  167. Flush: procedure();stdcall;
  168. FrontFace: procedure(mode: Cardinal);stdcall;
  169. GenTextures: procedure(n: TGLsizei; textures: PGLuint);stdcall;
  170. GetBooleanv: procedure(pname: Cardinal; params: PGLboolean);stdcall;
  171. GetDoublev: procedure(pname: Cardinal; params: PGLdouble);stdcall;
  172. GetError: function: Cardinal;stdcall;
  173. GetFloatv: procedure(pname: Cardinal; params: PGLfloat);stdcall;
  174. GetIntegerv: procedure(pname: Cardinal; params: PGLint);stdcall;
  175. GetPointerv: procedure(pname: Cardinal; var params);stdcall;
  176. GetString: function(Name: Cardinal): PAnsiChar;stdcall;
  177. GetTexImage: procedure(target: Cardinal; level: TGLint;
  178. format, atype: Cardinal; pixels: Pointer);stdcall;
  179. GetTexLevelParameterfv: procedure(target: Cardinal; level: TGLint;
  180. pname: Cardinal; params: PGLfloat);stdcall;
  181. GetTexLevelParameteriv: procedure(target: Cardinal; level: TGLint;
  182. pname: Cardinal; params: PGLint);stdcall;
  183. GetTexParameterfv: procedure(target, pname: Cardinal; params: PGLfloat);stdcall;
  184. GetTexParameteriv: procedure(target, pname: Cardinal; params: PGLint);stdcall;
  185. Hint: procedure(target, mode: Cardinal);stdcall;
  186. IsEnabled: function(cap: Cardinal): TGLboolean;stdcall;
  187. IsTexture: function(texture: Cardinal): TGLboolean;stdcall;
  188. LineWidth: procedure(Width: TGLfloat);stdcall;
  189. LogicOp: procedure(opcode: Cardinal);stdcall;
  190. PixelStoref: procedure(pname: Cardinal; param: TGLfloat);stdcall;
  191. PixelStorei: procedure(pname: Cardinal; param: TGLint);stdcall;
  192. PointSize: procedure(size: TGLfloat);stdcall;
  193. PolygonMode: procedure(face, mode: Cardinal);stdcall;
  194. PolygonOffset: procedure(factor, units: TGLfloat);stdcall;
  195. ReadBuffer: procedure(mode: Cardinal);stdcall;
  196. ReadPixels: procedure(X, y: TGLint; Width, Height: TGLsizei;
  197. format, atype: Cardinal; pixels: Pointer);stdcall;
  198. Scissor: procedure(X, y: TGLint; Width, Height: TGLsizei);stdcall;
  199. StencilFunc: procedure(func: Cardinal; ref: TGLint; mask: Cardinal);stdcall;
  200. StencilMask: procedure(mask: Cardinal);stdcall;
  201. StencilOp: procedure(fail, zfail, zpass: Cardinal);stdcall;
  202. TexImage1D: procedure(target: Cardinal; level, internalFormat: TGLint;
  203. Width: TGLsizei; border: TGLint; format, atype: Cardinal;
  204. pixels: Pointer);stdcall;
  205. TexImage2D: procedure(target: Cardinal; level, internalFormat: TGLint;
  206. Width, Height: TGLsizei; border: TGLint; format, atype: Cardinal;
  207. pixels: Pointer);stdcall;
  208. TexParameterf: procedure(target, pname: Cardinal; param: TGLfloat);stdcall;
  209. TexParameterfv: procedure(target, pname: Cardinal; params: PGLfloat);stdcall;
  210. TexParameteri: procedure(target, pname: Cardinal; param: TGLint);stdcall;
  211. TexParameteriv: procedure(target, pname: Cardinal; params: PGLint);stdcall;
  212. TexSubImage1D: procedure(target: Cardinal; level, xoffset: TGLint;
  213. Width: TGLsizei; format, atype: Cardinal; pixels: Pointer);stdcall;
  214. TexSubImage2D: procedure(target: Cardinal; level, xoffset, yoffset: TGLint;
  215. Width, Height: TGLsizei; format, atype: Cardinal; pixels: Pointer);stdcall;
  216. Viewport: procedure(X, y: TGLint; Width, Height: TGLsizei);stdcall;
  217. // ------------------------------ OpenGL 1.1 deprecated
  218. Accum: procedure(op: Cardinal; Value: TGLfloat); stdcall;
  219. AlphaFunc: procedure(func: Cardinal; ref: Single); stdcall;
  220. AreTexturesResident: function(n: TGLsizei; textures: PGLuint;
  221. residences: PGLboolean): TGLboolean;stdcall;
  222. ArrayElement: procedure(i: TGLint); stdcall;
  223. Begin_: procedure(mode: Cardinal); stdcall;
  224. Bitmap: procedure(Width: TGLsizei; Height: TGLsizei; xorig, yorig: TGLfloat;
  225. xmove: TGLfloat; ymove: TGLfloat; Bitmap: Pointer); stdcall;
  226. CallList: procedure(list: Cardinal); stdcall;
  227. CallLists: procedure(n: TGLsizei; atype: Cardinal; lists: Pointer);stdcall;
  228. ClearAccum: procedure(red, green, blue, alpha: TGLfloat); stdcall;
  229. ClearIndex: procedure(c: TGLfloat); stdcall;
  230. ClipPlane: procedure(plane: Cardinal; equation: PGLdouble);stdcall;
  231. Color3b: procedure(red, green, blue: TGLbyte); stdcall;
  232. Color3bv: procedure(v: PGLbyte); stdcall;
  233. Color3d: procedure(red, green, blue: TGLdouble); stdcall;
  234. Color3dv: procedure(v: PGLdouble); stdcall;
  235. Color3f: procedure(red, green, blue: TGLfloat); stdcall;
  236. Color3fv: procedure(v: PGLfloat); stdcall;
  237. Color3i: procedure(red, green, blue: TGLint); stdcall;
  238. Color3iv: procedure(v: PGLint); stdcall;
  239. Color3s: procedure(red, green, blue: TGLshort); stdcall;
  240. Color3sv: procedure(v: PGLshort); stdcall;
  241. Color3ub: procedure(red, green, blue: TGLubyte); stdcall;
  242. Color3ubv: procedure(v: PGLubyte); stdcall;
  243. Color3ui: procedure(red, green, blue: Cardinal); stdcall;
  244. Color3uiv: procedure(v: PGLuint); stdcall;
  245. Color3us: procedure(red, green, blue: TGLushort); stdcall;
  246. Color3usv: procedure(v: PGLushort); stdcall;
  247. Color4b: procedure(red, green, blue, alpha: TGLbyte); stdcall;
  248. Color4bv: procedure(v: PGLbyte); stdcall;
  249. Color4d: procedure(red, green, blue, alpha: TGLdouble); stdcall;
  250. Color4dv: procedure(v: PGLdouble); stdcall;
  251. Color4f: procedure(red, green, blue, alpha: TGLfloat); stdcall;
  252. Color4fv: procedure(v: PGLfloat); stdcall;
  253. Color4i: procedure(red, green, blue, alpha: TGLint); stdcall;
  254. Color4iv: procedure(v: PGLint); stdcall;
  255. Color4s: procedure(red, green, blue, alpha: TGLshort); stdcall;
  256. Color4sv: procedure(v: TGLshort); stdcall;
  257. Color4ub: procedure(red, green, blue, alpha: TGLubyte); stdcall;
  258. Color4ubv: procedure(v: PGLubyte); stdcall;
  259. Color4ui: procedure(red, green, blue, alpha: Cardinal); stdcall;
  260. Color4uiv: procedure(v: PGLuint); stdcall;
  261. Color4us: procedure(red, green, blue, alpha: TGLushort); stdcall;
  262. Color4usv: procedure(v: PGLushort); stdcall;
  263. ColorMaterial: procedure(face: Cardinal; mode: Cardinal); stdcall;
  264. ColorPointer: procedure(size: TGLint; atype: Cardinal; stride: TGLsizei;
  265. Data: Pointer);stdcall;
  266. CopyPixels: procedure(X, y: TGLint; Width, Height: TGLsizei;
  267. atype: Cardinal);stdcall;
  268. DeleteLists: procedure(list: Cardinal; range: TGLsizei); stdcall;
  269. DisableClientState: procedure(aarray: Cardinal); stdcall;
  270. DrawPixels: procedure(Width, Height: TGLsizei; format, atype: Cardinal;
  271. pixels: Pointer);stdcall;
  272. EdgeFlag: procedure(flag: TGLboolean); stdcall;
  273. EdgeFlagPointer: procedure(stride: TGLsizei; Data: Pointer); stdcall;
  274. EdgeFlagv: procedure(flag: PGLboolean); stdcall;
  275. EnableClientState: procedure(aarray: Cardinal); stdcall;
  276. End_: procedure(); stdcall;
  277. EndList: procedure(); stdcall;
  278. EvalCoord1d: procedure(u: TGLdouble); stdcall;
  279. EvalCoord1dv: procedure(u: PGLdouble); stdcall;
  280. EvalCoord1f: procedure(u: TGLfloat); stdcall;
  281. EvalCoord1fv: procedure(u: PGLfloat); stdcall;
  282. EvalCoord2d: procedure(u: TGLdouble; v: TGLdouble);stdcall;
  283. EvalCoord2dv: procedure(u: PGLdouble);stdcall;
  284. EvalCoord2f: procedure(u, v: TGLfloat);stdcall;
  285. EvalCoord2fv: procedure(u: PGLfloat);stdcall;
  286. EvalMesh1: procedure(mode: Cardinal; i1, i2: TGLint);stdcall;
  287. EvalMesh2: procedure(mode: Cardinal; i1, i2, j1, j2: TGLint);stdcall;
  288. EvalPoint1: procedure(i: TGLint);stdcall;
  289. EvalPoint2: procedure(i, j: TGLint);stdcall;
  290. FeedbackBuffer: procedure(size: TGLsizei; atype: Cardinal;
  291. buffer: PGLfloat);stdcall;
  292. Fogf: procedure(pname: Cardinal; param: TGLfloat);stdcall;
  293. Fogfv: procedure(pname: Cardinal; params: PGLfloat);stdcall;
  294. Fogi: procedure(pname: Cardinal; param: TGLint);stdcall;
  295. Fogiv: procedure(pname: Cardinal; params: PGLint);stdcall;
  296. Frustum: procedure(left, right, bottom, top, zNear, zFar: TGLdouble);stdcall;
  297. GenLists: function(range: TGLsizei): Cardinal;stdcall;
  298. GetClipPlane: procedure(plane: Cardinal; equation: PGLdouble);stdcall;
  299. GetLightfv: procedure(light, pname: Cardinal; params: PGLfloat);stdcall;
  300. GetLightiv: procedure(light, pname: Cardinal; params: PGLint);stdcall;
  301. GetMapdv: procedure(target, query: Cardinal; v: PGLdouble);stdcall;
  302. GetMapfv: procedure(target, query: Cardinal; v: PGLfloat);stdcall;
  303. GetMapiv: procedure(target, query: Cardinal; v: PGLint);stdcall;
  304. GetMaterialfv: procedure(face, pname: Cardinal; params: PGLfloat);stdcall;
  305. GetMaterialiv: procedure(face, pname: Cardinal; params: PGLint);stdcall;
  306. GetPixelMapfv: procedure(map: Cardinal; values: PGLfloat);stdcall;
  307. GetPixelMapuiv: procedure(map: Cardinal; values: PGLuint);stdcall;
  308. GetPixelMapusv: procedure(map: Cardinal; values: PGLushort);stdcall;
  309. GetPolygonStipple: procedure(mask: PGLubyte);stdcall;
  310. GetTexEnvfv: procedure(target, pname: Cardinal; params: PGLfloat);stdcall;
  311. GetTexEnviv: procedure(target, pname: Cardinal; params: PGLint);stdcall;
  312. GetTexGendv: procedure(coord, pname: Cardinal; params: PGLdouble);stdcall;
  313. GetTexGenfv: procedure(coord, pname: Cardinal; params: PGLfloat);stdcall;
  314. GetTexGeniv: procedure(coord, pname: Cardinal; params: PGLint);stdcall;
  315. IndexMask: procedure(mask: Cardinal);stdcall;
  316. IndexPointer: procedure(atype: Cardinal; stride: TGLsizei; Data: Pointer);stdcall;
  317. Indexd: procedure(c: TGLdouble);stdcall;
  318. Indexdv: procedure(c: PGLdouble);stdcall;
  319. Indexf: procedure(c: TGLfloat);stdcall;
  320. Indexfv: procedure(c: PGLfloat);stdcall;
  321. Indexi: procedure(c: TGLint);stdcall;
  322. Indexiv: procedure(c: PGLint);stdcall;
  323. Indexs: procedure(c: TGLshort);stdcall;
  324. Indexsv: procedure(c: PGLshort);stdcall;
  325. Indexub: procedure(c: TGLubyte);stdcall;
  326. Indexubv: procedure(c: PGLubyte);stdcall;
  327. InitNames: procedure();stdcall;
  328. InterleavedArrays: procedure(format: Cardinal; stride: TGLsizei;
  329. Data: Pointer);stdcall;
  330. IsList: function(list: Cardinal): TGLboolean;stdcall;
  331. LightModelf: procedure(pname: Cardinal; param: TGLfloat);stdcall;
  332. LightModelfv: procedure(pname: Cardinal; params: PGLfloat);stdcall;
  333. LightModeli: procedure(pname: Cardinal; param: TGLint);stdcall;
  334. LightModeliv: procedure(pname: Cardinal; params: PGLint);stdcall;
  335. Lightf: procedure(light, pname: Cardinal; param: TGLfloat);stdcall;
  336. Lightfv: procedure(light, pname: Cardinal; params: PGLfloat);stdcall;
  337. Lighti: procedure(light, pname: Cardinal; param: TGLint);stdcall;
  338. Lightiv: procedure(light, pname: Cardinal; params: PGLint);stdcall;
  339. LineStipple: procedure(factor: TGLint; pattern: TGLushort);stdcall;
  340. ListBase: procedure(base: Cardinal);stdcall;
  341. LoadIdentity: procedure();stdcall;
  342. LoadMatrixd: procedure(m: PGLdouble);stdcall;
  343. LoadMatrixf: procedure(m: PGLfloat);stdcall;
  344. LoadName: procedure(Name: Cardinal);stdcall;
  345. Map1d: procedure(target: Cardinal; u1, u2: TGLdouble; stride, order: TGLint;
  346. points: PGLdouble);stdcall;
  347. Map1f: procedure(target: Cardinal; u1, u2: TGLfloat; stride, order: TGLint;
  348. points: PGLfloat);stdcall;
  349. Map2d: procedure(target: Cardinal; u1, u2: TGLdouble;
  350. ustride, uorder: TGLint; v1, v2: TGLdouble; vstride, vorder: TGLint;
  351. points: PGLdouble);stdcall;
  352. Map2f: procedure(target: Cardinal; u1, u2: TGLfloat;
  353. ustride, uorder: TGLint; v1, v2: TGLfloat; vstride, vorder: TGLint;
  354. points: PGLfloat);stdcall;
  355. MapGrid1d: procedure(un: TGLint; u1, u2: TGLdouble);stdcall;
  356. MapGrid1f: procedure(un: TGLint; u1, u2: TGLfloat);stdcall;
  357. MapGrid2d: procedure(un: TGLint; u1, u2: TGLdouble; vn: TGLint;
  358. v1, v2: TGLdouble);stdcall;
  359. MapGrid2f: procedure(un: TGLint; u1, u2: TGLfloat; vn: TGLint;
  360. v1, v2: TGLfloat);stdcall;
  361. Materialf: procedure(face, pname: Cardinal; param: TGLfloat);stdcall;
  362. Materialfv: procedure(face, pname: Cardinal; params: PGLfloat);stdcall;
  363. Materiali: procedure(face, pname: Cardinal; param: TGLint);stdcall;
  364. Materialiv: procedure(face, pname: Cardinal; params: PGLint);stdcall;
  365. MatrixMode: procedure(mode: Cardinal);stdcall;
  366. MultMatrixd: procedure(m: PGLdouble);stdcall;
  367. MultMatrixf: procedure(m: PGLfloat);stdcall;
  368. NewList: procedure(list: Cardinal; mode: Cardinal);stdcall;
  369. Normal3b: procedure(nx, ny, nz: TGLbyte);stdcall;
  370. Normal3bv: procedure(v: PGLbyte);stdcall;
  371. Normal3d: procedure(nx, ny, nz: TGLdouble);stdcall;
  372. Normal3dv: procedure(v: PGLdouble);stdcall;
  373. Normal3f: procedure(nx, ny, nz: TGLfloat);stdcall;
  374. Normal3fv: procedure(v: PGLfloat);stdcall;
  375. Normal3i: procedure(nx, ny, nz: TGLint);stdcall;
  376. Normal3iv: procedure(v: PGLint);stdcall;
  377. Normal3s: procedure(nx, ny, nz: TGLshort);stdcall;
  378. Normal3sv: procedure(v: PGLshort);stdcall;
  379. NormalPointer: procedure(atype: Cardinal; stride: TGLsizei; Data: Pointer);stdcall;
  380. Ortho: procedure(left, right, bottom, top, zNear, zFar: TGLdouble);stdcall;
  381. PassThrough: procedure(token: TGLfloat);stdcall;
  382. PixelMapfv: procedure(map: Cardinal; mapsize: TGLsizei; values: PGLfloat);stdcall;
  383. PixelMapuiv: procedure(map: Cardinal; mapsize: TGLsizei; values: PGLuint);stdcall;
  384. PixelMapusv: procedure(map: Cardinal; mapsize: TGLsizei; values: PGLushort);stdcall;
  385. PixelTransferf: procedure(pname: Cardinal; param: TGLfloat);stdcall;
  386. PixelTransferi: procedure(pname: Cardinal; param: TGLint);stdcall;
  387. PixelZoom: procedure(xfactor, yfactor: TGLfloat);stdcall;
  388. PolygonStipple: procedure(mask: PGLubyte);stdcall;
  389. PopAttrib: procedure();stdcall;
  390. PopClientAttrib: procedure();stdcall;
  391. PopMatrix: procedure();stdcall;
  392. PopName: procedure();stdcall;
  393. PrioritizeTextures: procedure(n: TGLsizei; textures: PGLuint;
  394. priorities: PSingle);stdcall;
  395. PushAttrib: procedure(mask: TGLbitfield);stdcall;
  396. PushClientAttrib: procedure(mask: TGLbitfield);stdcall;
  397. PushMatrix: procedure();stdcall;
  398. PushName: procedure(Name: Cardinal);stdcall;
  399. RasterPos2d: procedure(X, y: TGLdouble);stdcall;
  400. RasterPos2dv: procedure(v: PGLdouble);stdcall;
  401. RasterPos2f: procedure(X, y: TGLfloat);stdcall;
  402. RasterPos2fv: procedure(v: PGLfloat);stdcall;
  403. RasterPos2i: procedure(X, y: TGLint);stdcall;
  404. RasterPos2iv: procedure(v: PGLint);stdcall;
  405. RasterPos2s: procedure(X, y: PGLshort);stdcall;
  406. RasterPos2sv: procedure(v: PGLshort);stdcall;
  407. RasterPos3d: procedure(X, y, z: TGLdouble);stdcall;
  408. RasterPos3dv: procedure(v: PGLdouble);stdcall;
  409. RasterPos3f: procedure(X, y, z: TGLfloat);stdcall;
  410. RasterPos3fv: procedure(v: PGLfloat);stdcall;
  411. RasterPos3i: procedure(X, y, z: TGLint);stdcall;
  412. RasterPos3iv: procedure(v: PGLint);stdcall;
  413. RasterPos3s: procedure(X, y, z: TGLshort);stdcall;
  414. RasterPos3sv: procedure(v: PGLshort);stdcall;
  415. RasterPos4d: procedure(X, y, z, w: TGLdouble);stdcall;
  416. RasterPos4dv: procedure(v: PGLdouble);stdcall;
  417. RasterPos4f: procedure(X, y, z, w: TGLfloat);stdcall;
  418. RasterPos4fv: procedure(v: PGLfloat);stdcall;
  419. RasterPos4i: procedure(X, y, z, w: TGLint);stdcall;
  420. RasterPos4iv: procedure(v: PGLint);stdcall;
  421. RasterPos4s: procedure(X, y, z, w: TGLshort);stdcall;
  422. RasterPos4sv: procedure(v: PGLshort);stdcall;
  423. Rectd: procedure(x1, y1, x2, y2: TGLdouble);stdcall;
  424. Rectdv: procedure(v1, v2: PGLdouble);stdcall;
  425. Rectf: procedure(x1, y1, x2, y2: TGLfloat);stdcall;
  426. Rectfv: procedure(v1, v2: PGLfloat);stdcall;
  427. Recti: procedure(x1, y1, x2, y2: TGLint);stdcall;
  428. Rectiv: procedure(v1, v2: PGLint);stdcall;
  429. Rects: procedure(x1, y1, x2, y2: TGLshort);stdcall;
  430. Rectsv: procedure(v1, v2: PGLshort);stdcall;
  431. RenderMode: function(mode: Cardinal): TGLint;stdcall;
  432. Rotated: procedure(ane, X, y, z: TGLdouble);stdcall;
  433. Rotatef: procedure(ane, X, y, z: TGLfloat);stdcall;
  434. Scaled: procedure(X, y, z: TGLdouble);stdcall;
  435. Scalef: procedure(X, y, z: TGLfloat);stdcall;
  436. SelectBuffer: procedure(size: TGLsizei; buffer: PGLuint);stdcall;
  437. ShadeModel: procedure(mode: Cardinal);stdcall;
  438. TexCoord1d: procedure(s: TGLdouble);stdcall;
  439. TexCoord1dv: procedure(v: PGLdouble);stdcall;
  440. TexCoord1f: procedure(s: TGLfloat);stdcall;
  441. TexCoord1fv: procedure(v: PGLfloat);stdcall;
  442. TexCoord1i: procedure(s: TGLint);stdcall;
  443. TexCoord1iv: procedure(v: PGLint);stdcall;
  444. TexCoord1s: procedure(s: TGLshort);stdcall;
  445. TexCoord1sv: procedure(v: PGLshort);stdcall;
  446. TexCoord2d: procedure(s, t: TGLdouble);stdcall;
  447. TexCoord2dv: procedure(v: PGLdouble);stdcall;
  448. TexCoord2f: procedure(s, t: TGLfloat);stdcall;
  449. TexCoord2fv: procedure(v: PGLfloat);stdcall;
  450. TexCoord2i: procedure(s, t: TGLint);stdcall;
  451. TexCoord2iv: procedure(v: PGLint);stdcall;
  452. TexCoord2s: procedure(s, t: TGLshort);stdcall;
  453. TexCoord2sv: procedure(v: PGLshort);stdcall;
  454. TexCoord3d: procedure(s, t, r: TGLdouble);stdcall;
  455. TexCoord3dv: procedure(v: PGLdouble);stdcall;
  456. TexCoord3f: procedure(s, t, r: TGLfloat);stdcall;
  457. TexCoord3fv: procedure(v: PGLfloat);stdcall;
  458. TexCoord3i: procedure(s, t, r: TGLint);stdcall;
  459. TexCoord3iv: procedure(v: PGLint);stdcall;
  460. TexCoord3s: procedure(s, t, r: TGLshort);stdcall;
  461. TexCoord3sv: procedure(v: PGLshort);stdcall;
  462. TexCoord4d: procedure(s, t, r, q: TGLdouble);stdcall;
  463. TexCoord4dv: procedure(v: PGLdouble);stdcall;
  464. TexCoord4f: procedure(s, t, r, q: TGLfloat);stdcall;
  465. TexCoord4fv: procedure(v: PGLfloat);stdcall;
  466. TexCoord4i: procedure(s, t, r, q: TGLint);stdcall;
  467. TexCoord4iv: procedure(v: PGLint);stdcall;
  468. TexCoord4s: procedure(s, t, r, q: TGLshort);stdcall;
  469. TexCoord4sv: procedure(v: PGLshort);stdcall;
  470. TexCoordPointer: procedure(size: TGLint; atype: Cardinal; stride: TGLsizei; Data: Pointer);stdcall;
  471. TexEnvf: procedure(target, pname: Cardinal; param: TGLfloat);stdcall;
  472. TexEnvfv: procedure(target, pname: Cardinal; params: PGLfloat);stdcall;
  473. TexEnvi: procedure(target, pname: Cardinal; param: TGLint);stdcall;
  474. TexEnviv: procedure(target, pname: Cardinal; params: PGLint);stdcall;
  475. TexGend: procedure(coord, pname: Cardinal; param: TGLdouble);stdcall;
  476. TexGendv: procedure(coord, pname: Cardinal; params: PGLdouble);stdcall;
  477. TexGenf: procedure(coord, pname: Cardinal; param: TGLfloat);stdcall;
  478. TexGenfv: procedure(coord, pname: Cardinal; params: PGLfloat);stdcall;
  479. TexGeni: procedure(coord, pname: Cardinal; param: TGLint);stdcall;
  480. TexGeniv: procedure(coord, pname: Cardinal; params: PGLint);stdcall;
  481. Translated: procedure(X, y, z: TGLdouble);stdcall;
  482. Translatef: procedure(X, y, z: TGLfloat);stdcall;
  483. Vertex2d: procedure(X, y: TGLdouble);stdcall;
  484. Vertex2dv: procedure(v: PGLdouble);stdcall;
  485. Vertex2f: procedure(X, y: TGLfloat);stdcall;
  486. Vertex2fv: procedure(v: PGLfloat);stdcall;
  487. Vertex2i: procedure(X, y: TGLint);stdcall;
  488. Vertex2iv: procedure(v: PGLint);stdcall;
  489. Vertex2s: procedure(X, y: TGLshort);stdcall;
  490. Vertex2sv: procedure(v: PGLshort);stdcall;
  491. Vertex3d: procedure(X, y, z: TGLdouble);stdcall;
  492. Vertex3dv: procedure(v: PGLdouble);stdcall;
  493. Vertex3f: procedure(X, y, z: TGLfloat);stdcall;
  494. Vertex3fv: procedure(v: PGLfloat);stdcall;
  495. Vertex3i: procedure(X, y, z: TGLint);stdcall;
  496. Vertex3iv: procedure(v: PGLint);stdcall;
  497. Vertex3s: procedure(X, y, z: TGLshort);stdcall;
  498. Vertex3sv: procedure(v: PGLshort);stdcall;
  499. Vertex4d: procedure(X, y, z, w: TGLdouble);stdcall;
  500. Vertex4dv: procedure(v: PGLdouble);stdcall;
  501. Vertex4f: procedure(X, y, z, w: TGLfloat);stdcall;
  502. Vertex4fv: procedure(v: PGLfloat);stdcall;
  503. Vertex4i: procedure(X, y, z, w: TGLint);stdcall;
  504. Vertex4iv: procedure(v: PGLint);stdcall;
  505. Vertex4s: procedure(X, y, z, w: TGLshort);stdcall;
  506. Vertex4sv: procedure(v: PGLshort);stdcall;
  507. VertexPointer: procedure(size: TGLint; atype: Cardinal; stride: TGLsizei;
  508. Data: Pointer);stdcall;
  509. //*****************************************************************
  510. // --------- New core function/procedure definitions in OpenGL 1.2'}
  511. //*****************************************************************
  512. BlendColor: PFNGLBLENDCOLORPROC;
  513. BlendEquation: PFNGLBLENDEQUATIONPROC;
  514. DrawRangeElements: PFNGLDRAWRANGEELEMENTSPROC;
  515. TexImage3D: PFNGLTEXIMAGE3DPROC;
  516. TexSubImage3D: PFNGLTEXSUBIMAGE3DPROC;
  517. CopyTexSubImage3D: PFNGLCOPYTEXSUBIMAGE3DPROC;
  518. // -------- New core function/procedure definitions in OpenGL 1.4'}
  519. BlendFuncSeparate: PFNGLBLENDFUNCSEPARATEPROC;
  520. MultiDrawArrays: PFNGLMULTIDRAWARRAYSPROC;
  521. MultiDrawElements: PFNGLMULTIDRAWELEMENTSPROC;
  522. PointParameterf: PFNGLPOINTPARAMETERFPROC;
  523. PointParameterfv: PFNGLPOINTPARAMETERFVPROC;
  524. PointParameteri: PFNGLPOINTPARAMETERIPROC;
  525. PointParameteriv: PFNGLPOINTPARAMETERIVPROC;
  526. // ------------- New core function/procedure definitions in OpenGL 2.0'}
  527. BlendEquationSeparate: PFNGLBLENDEQUATIONSEPARATEPROC;
  528. DrawBuffers: PFNGLDRAWBUFFERSPROC;
  529. StencilOpSeparate: PFNGLSTENCILOPSEPARATEPROC;
  530. StencilFuncSeparate: PFNGLSTENCILFUNCSEPARATEPROC;
  531. StencilMaskSeparate: PFNGLSTENCILMASKSEPARATEPROC;
  532. // ---------------- Buffer objects
  533. LockArrays: PFNGLLOCKARRAYSEXTPROC; // EXT only
  534. UnlockArrays: PFNGLUNLOCKARRAYSEXTPROC; // EXT only
  535. BindBuffer: PFNGLBINDBUFFERPROC;
  536. DeleteBuffers: PFNGLDELETEBUFFERSPROC;
  537. GenBuffers: PFNGLGENBUFFERSPROC;
  538. IsBuffer: PFNGLISBUFFERPROC;
  539. BufferData: PFNGLBUFFERDATAPROC;
  540. BufferSubData: PFNGLBUFFERSUBDATAPROC;
  541. GetBufferSubData: PFNGLGETBUFFERSUBDATAPROC;
  542. MapBuffer: PFNGLMAPBUFFERPROC;
  543. UnmapBuffer: PFNGLUNMAPBUFFERPROC;
  544. GetBufferParameteriv: PFNGLGETBUFFERPARAMETERIVPROC;
  545. GetBufferPointerv: PFNGLGETBUFFERPOINTERVPROC;
  546. MapBufferRange: PFNGLMAPBUFFERRANGEPROC;
  547. FlushMappedBufferRange: PFNGLFLUSHMAPPEDBUFFERRANGEPROC;
  548. BindBufferRange: PFNGLBINDBUFFERRANGEPROC;
  549. BindBufferOffset: PFNGLBINDBUFFEROFFSETEXTPROC; // EXT + NV only
  550. BindBufferBase: PFNGLBINDBUFFERBASEPROC;
  551. TransformFeedbackAttribs: PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC; // NV only
  552. TransformFeedbackVaryingsNV: PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC;
  553. // NV only
  554. TransformFeedbackVaryings: PFNGLTRANSFORMFEEDBACKVARYINGSPROC;
  555. GetTransformFeedbackVarying: PFNGLGETTRANSFORMFEEDBACKVARYINGPROC;
  556. BeginTransformFeedback: PFNGLBEGINTRANSFORMFEEDBACKPROC;
  557. EndTransformFeedback: PFNGLENDTRANSFORMFEEDBACKPROC;
  558. TexBuffer: PFNGLTEXBUFFERPROC;
  559. ClearBufferiv: PFNGLCLEARBUFFERIVPROC;
  560. ClearBufferuiv: PFNGLCLEARBUFFERUIVPROC;
  561. ClearBufferfv: PFNGLCLEARBUFFERFVPROC;
  562. ClearBufferfi: PFNGLCLEARBUFFERFIPROC;
  563. GetStringi: PFNGLGETSTRINGIPROC;
  564. BindVertexArray: PFNGLBINDVERTEXARRAYPROC;
  565. DeleteVertexArrays: PFNGLDELETEVERTEXARRAYSPROC;
  566. GenVertexArrays: PFNGLGENVERTEXARRAYSPROC;
  567. IsVertexArray: PFNGLISVERTEXARRAYPROC;
  568. FlushVertexArrayRangeNV: PFNGLFLUSHVERTEXARRAYRANGENVPROC;
  569. VertexArrayRangeNV: PFNGLVERTEXARRAYRANGENVPROC;
  570. GetUniformIndices: PFNGLGETUNIFORMINDICESPROC;
  571. GetActiveUniformsiv: PFNGLGETACTIVEUNIFORMSIVPROC;
  572. GetActiveUniformName: PFNGLGETACTIVEUNIFORMNAMEPROC;
  573. GetUniformBlockIndex: PFNGLGETUNIFORMBLOCKINDEXPROC;
  574. GetActiveUniformBlockiv: PFNGLGETACTIVEUNIFORMBLOCKIVPROC;
  575. GetActiveUniformBlockName: PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC;
  576. UniformBlockBinding: PFNGLUNIFORMBLOCKBINDINGPROC;
  577. CopyBufferSubData: PFNGLCOPYBUFFERSUBDATAPROC;
  578. UniformBuffer: PFNGLUNIFORMBUFFEREXTPROC;
  579. GetUniformBufferSize: PFNGLGETUNIFORMBUFFERSIZEEXTPROC; // EXT only
  580. GetUniformOffset: PFNGLGETUNIFORMOFFSETEXTPROC; // EXT only
  581. PrimitiveRestartIndex: PFNGLPRIMITIVERESTARTINDEXPROC;
  582. DrawElementsBaseVertex: PFNGLDRAWELEMENTSBASEVERTEXPROC;
  583. DrawRangeElementsBaseVertex: PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC;
  584. DrawElementsInstancedBaseVertex: PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC;
  585. MultiDrawElementsBaseVertex: PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC;
  586. DrawArraysInstanced: PFNGLDRAWARRAYSINSTANCEDPROC;
  587. DrawElementsInstanced: PFNGLDRAWELEMENTSINSTANCEDPROC;
  588. VertexAttrib1d: PFNGLVERTEXATTRIB1DPROC;
  589. VertexAttrib1dv: PFNGLVERTEXATTRIB1DVPROC;
  590. VertexAttrib1f: PFNGLVERTEXATTRIB1FPROC;
  591. VertexAttrib1fv: PFNGLVERTEXATTRIB1FVPROC;
  592. VertexAttrib1s: PFNGLVERTEXATTRIB1SPROC;
  593. VertexAttrib1sv: PFNGLVERTEXATTRIB1SVPROC;
  594. VertexAttrib2d: PFNGLVERTEXATTRIB2DPROC;
  595. VertexAttrib2dv: PFNGLVERTEXATTRIB2DVPROC;
  596. VertexAttrib2f: PFNGLVERTEXATTRIB2FPROC;
  597. VertexAttrib2fv: PFNGLVERTEXATTRIB2FVPROC;
  598. VertexAttrib2s: PFNGLVERTEXATTRIB2SPROC;
  599. VertexAttrib2sv: PFNGLVERTEXATTRIB2SVPROC;
  600. VertexAttrib3d: PFNGLVERTEXATTRIB3DPROC;
  601. VertexAttrib3dv: PFNGLVERTEXATTRIB3DVPROC;
  602. VertexAttrib3f: PFNGLVERTEXATTRIB3FPROC;
  603. VertexAttrib3fv: PFNGLVERTEXATTRIB3FVPROC;
  604. VertexAttrib3s: PFNGLVERTEXATTRIB3SPROC;
  605. VertexAttrib3sv: PFNGLVERTEXATTRIB3SVPROC;
  606. VertexAttrib4Nbv: PFNGLVERTEXATTRIB4NBVPROC;
  607. VertexAttrib4Niv: PFNGLVERTEXATTRIB4NIVPROC;
  608. VertexAttrib4Nsv: PFNGLVERTEXATTRIB4NSVPROC;
  609. VertexAttrib4Nub: PFNGLVERTEXATTRIB4NUBPROC;
  610. VertexAttrib4Nubv: PFNGLVERTEXATTRIB4NUBVPROC;
  611. VertexAttrib4Nuiv: PFNGLVERTEXATTRIB4NUIVPROC;
  612. VertexAttrib4Nusv: PFNGLVERTEXATTRIB4NUSVPROC;
  613. VertexAttrib4bv: PFNGLVERTEXATTRIB4BVPROC;
  614. VertexAttrib4d: PFNGLVERTEXATTRIB4DPROC;
  615. VertexAttrib4dv: PFNGLVERTEXATTRIB4DVPROC;
  616. VertexAttrib4f: PFNGLVERTEXATTRIB4FPROC;
  617. VertexAttrib4fv: PFNGLVERTEXATTRIB4FVPROC;
  618. VertexAttrib4iv: PFNGLVERTEXATTRIB4IVPROC;
  619. VertexAttrib4s: PFNGLVERTEXATTRIB4SPROC;
  620. VertexAttrib4sv: PFNGLVERTEXATTRIB4SVPROC;
  621. VertexAttrib4ubv: PFNGLVERTEXATTRIB4UBVPROC;
  622. VertexAttrib4uiv: PFNGLVERTEXATTRIB4UIVPROC;
  623. VertexAttrib4usv: PFNGLVERTEXATTRIB4USVPROC;
  624. VertexAttribPointer: PFNGLVERTEXATTRIBPOINTERPROC;
  625. VertexAttribI1i: PFNGLVERTEXATTRIBI1IPROC;
  626. VertexAttribI2i: PFNGLVERTEXATTRIBI2IPROC;
  627. VertexAttribI3i: PFNGLVERTEXATTRIBI3IPROC;
  628. VertexAttribI4i: PFNGLVERTEXATTRIBI4IPROC;
  629. VertexAttribI1ui: PFNGLVERTEXATTRIBI1UIPROC;
  630. VertexAttribI2ui: PFNGLVERTEXATTRIBI2UIPROC;
  631. VertexAttribI3ui: PFNGLVERTEXATTRIBI3UIPROC;
  632. VertexAttribI4ui: PFNGLVERTEXATTRIBI4UIPROC;
  633. VertexAttribI1iv: PFNGLVERTEXATTRIBI1IVPROC;
  634. VertexAttribI2iv: PFNGLVERTEXATTRIBI2IVPROC;
  635. VertexAttribI3iv: PFNGLVERTEXATTRIBI3IVPROC;
  636. VertexAttribI4iv: PFNGLVERTEXATTRIBI4IVPROC;
  637. VertexAttribI1uiv: PFNGLVERTEXATTRIBI1UIVPROC;
  638. VertexAttribI2uiv: PFNGLVERTEXATTRIBI2UIVPROC;
  639. VertexAttribI3uiv: PFNGLVERTEXATTRIBI3UIVPROC;
  640. VertexAttribI4uiv: PFNGLVERTEXATTRIBI4UIVPROC;
  641. VertexAttribI4bv: PFNGLVERTEXATTRIBI4BVPROC;
  642. VertexAttribI4sv: PFNGLVERTEXATTRIBI4SVPROC;
  643. VertexAttribI4ubv: PFNGLVERTEXATTRIBI4UBVPROC;
  644. VertexAttribI4usv: PFNGLVERTEXATTRIBI4USVPROC;
  645. VertexAttribIPointer: PFNGLVERTEXATTRIBIPOINTERPROC;
  646. GetVertexAttribIiv: PFNGLGETVERTEXATTRIBIIVPROC;
  647. GetVertexAttribIuiv: PFNGLGETVERTEXATTRIBIUIVPROC;
  648. Uniform1ui: PFNGLUNIFORM1UIPROC;
  649. Uniform2ui: PFNGLUNIFORM2UIPROC;
  650. Uniform3ui: PFNGLUNIFORM3UIPROC;
  651. Uniform4ui: PFNGLUNIFORM4UIPROC;
  652. Uniform1uiv: PFNGLUNIFORM1UIVPROC;
  653. Uniform2uiv: PFNGLUNIFORM2UIVPROC;
  654. Uniform3uiv: PFNGLUNIFORM3UIVPROC;
  655. Uniform4uiv: PFNGLUNIFORM4UIVPROC;
  656. GetUniformuiv: PFNGLGETUNIFORMUIVPROC;
  657. BindFragDataLocation: PFNGLBINDFRAGDATALOCATIONPROC;
  658. GetFragDataLocation: PFNGLGETFRAGDATALOCATIONPROC;
  659. ClampColor: PFNGLCLAMPCOLORPROC;
  660. ColorMaski: PFNGLCOLORMASKIPROC;
  661. GetBooleani_v: PFNGLGETBOOLEANI_VPROC;
  662. GetIntegeri_v: PFNGLGETINTEGERI_VPROC;
  663. Enablei: PFNGLENABLEIPROC;
  664. Disablei: PFNGLDISABLEIPROC;
  665. IsEnabledi: PFNGLISENABLEDIPROC;
  666. EnableVertexAttribArray: PFNGLENABLEVERTEXATTRIBARRAYPROC;
  667. DisableVertexAttribArray: PFNGLDISABLEVERTEXATTRIBARRAYPROC;
  668. VertexAttribDivisor: PFNGLVERTEXATTRIBDIVISORPROC;
  669. ClearColorIi: PFNGLCLEARCOLORIIEXTPROC; // EXT only
  670. ClearColorIui: PFNGLCLEARCOLORIUIEXTPROC; // EXT only
  671. TexParameterIiv: PFNGLTEXPARAMETERIIVPROC;
  672. TexParameterIuiv: PFNGLTEXPARAMETERIUIVPROC;
  673. GetTexParameterIiv: PFNGLGETTEXPARAMETERIIVPROC;
  674. GetTexParameterIuiv: PFNGLGETTEXPARAMETERIUIVPROC;
  675. PatchParameteri: PFNGLPATCHPARAMETERIPROC;
  676. PatchParameterfv: PFNGLPATCHPARAMETERFVPROC;
  677. BufferAddressRangeNV: PFNGLBUFFERADDRESSRANGENVPROC;
  678. VertexFormatNV: PFNGLVERTEXFORMATNVPROC;
  679. NormalFormatNV: PFNGLNORMALFORMATNVPROC;
  680. ColorFormatNV: PFNGLCOLORFORMATNVPROC;
  681. IndexFormatNV: PFNGLINDEXFORMATNVPROC;
  682. TexCoordFormatNV: PFNGLTEXCOORDFORMATNVPROC;
  683. EdgeFlagFormatNV: PFNGLEDGEFLAGFORMATNVPROC;
  684. SecondaryColorFormatNV: PFNGLSECONDARYCOLORFORMATNVPROC;
  685. FogCoordFormatNV: PFNGLFOGCOORDFORMATNVPROC;
  686. VertexAttribFormatNV: PFNGLVERTEXATTRIBFORMATNVPROC;
  687. VertexAttribIFormatNV: PFNGLVERTEXATTRIBIFORMATNVPROC;
  688. GetIntegerui64i_vNV: PFNGLGETINTEGERUI64I_VNVPROC;
  689. GetBufferParameterui64vNV: PGNGLGETBUFFERPARAMETERUI64VNV;
  690. MakeBufferResidentNV: PFNGLMAKEBUFFERRESIDENTNVPROC;
  691. MakeBufferNonResidentNV: PFNGLMAKEBUFFERNONRESIDENTNVPROC;
  692. IsBufferResidentNV: PFNGLISBUFFERRESIDENTNVPROC;
  693. MakeNamedBufferResidentNV: PFNGLMAKENAMEDBUFFERRESIDENTNVPROC;
  694. MakeNamedBufferNonResidentNV: PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC;
  695. IsNamedBufferResidentNV: PFNGLISNAMEDBUFFERRESIDENTNVPROC;
  696. GetNamedBufferParameterui64vNV: PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC;
  697. GetIntegerui64vNV: PFNGLGETINTEGERUI64VNVPROC;
  698. Uniformui64NV: PFNGLUNIFORMUI64NVPROC;
  699. Uniformui64vNV: PFNGLUNIFORMUI64VNVPROC;
  700. GetUniformui64vNV: PFNGLGETUNIFORMUI64VNVPROC;
  701. ProgramUniformui64NV: PFNGLPROGRAMUNIFORMUI64NVPROC;
  702. ProgramUniformui64vNV: PFNGLPROGRAMUNIFORMUI64VNVPROC;
  703. ClearBufferData: PFNGLClearBufferData;
  704. ClearBufferSubData: PFNGLClearBufferSubData;
  705. ClearNamedBufferData: PFNGLClearNamedBufferData;
  706. ClearNamedBufferSubData: PFNGLClearNamedBufferSubData;
  707. InvalidateTexSubImage: PFNGLInvalidateTexSubImage;
  708. InvalidateTexImage: PFNGLInvalidateTexImage;
  709. InvalidateBufferSubData: PFNGLInvalidateBufferSubData;
  710. InvalidateBufferData: PFNGLInvalidateBufferData;
  711. InvalidateFramebuffer: PFNGLInvalidateFramebuffer;
  712. InvalidateSubFramebuffer: PFNGLInvalidateSubFramebuffer;
  713. MultiDrawArraysIndirect: PFNGLMultiDrawArraysIndirect;
  714. MultiDrawElementsIndirect: PFNGLMultiDrawElementsIndirect;
  715. BindVertexBuffer: PFNGLBindVertexBuffer;
  716. VertexAttribFormat: PFNGLVertexAttribFormat;
  717. VertexAttribIFormat: PFNGLVertexAttribIFormat;
  718. VertexAttribLFormat: PFNGLVertexAttribLFormat;
  719. VertexAttribBinding: PFNGLVertexAttribBinding;
  720. VertexBindingDivisor: PFNGLVertexBindingDivisor;
  721. VertexArrayBindVertexBuffer: PFNGLVertexArrayBindVertexBuffer;
  722. VertexArrayVertexAttribFormat: PFNGLVertexArrayVertexAttribFormat;
  723. VertexArrayVertexAttribIFormat: PFNGLVertexArrayVertexAttribIFormat;
  724. VertexArrayVertexAttribLFormat: PFNGLVertexArrayVertexAttribLFormat;
  725. VertexArrayVertexAttribBinding: PFNGLVertexArrayVertexAttribBinding;
  726. VertexArrayVertexBindingDivisor: PFNGLVertexArrayVertexBindingDivisor;
  727. // ------------------------------ Shader object
  728. DeleteObject: PFNGLDELETEOBJECTARBPROC; // ARB only
  729. GetHandle: PFNGLGETHANDLEARBPROC; // ARB only
  730. DetachShader: PFNGLDETACHSHADERPROC;
  731. CreateShader: PFNGLCREATESHADERPROC;
  732. DeleteShader: PFNGLDELETESHADERPROC;
  733. ShaderSource: PFNGLSHADERSOURCEPROC;
  734. CompileShader: PFNGLCOMPILESHADERPROC;
  735. CreateProgram: PFNGLCREATEPROGRAMPROC;
  736. DeleteProgram: PFNGLDELETEPROGRAMPROC;
  737. AttachShader: PFNGLATTACHSHADERPROC;
  738. LinkProgram: PFNGLLINKPROGRAMPROC;
  739. UseProgram: PFNGLUSEPROGRAMPROC;
  740. ValidateProgram: PFNGLVALIDATEPROGRAMPROC;
  741. Uniform1f: PFNGLUNIFORM1FPROC;
  742. Uniform2f: PFNGLUNIFORM2FPROC;
  743. Uniform3f: PFNGLUNIFORM3FPROC;
  744. Uniform4f: PFNGLUNIFORM4FPROC;
  745. Uniform1i: PFNGLUNIFORM1IPROC;
  746. Uniform2i: PFNGLUNIFORM2IPROC;
  747. Uniform3i: PFNGLUNIFORM3IPROC;
  748. Uniform4i: PFNGLUNIFORM4IPROC;
  749. Uniform1fv: PFNGLUNIFORM1FVPROC;
  750. Uniform2fv: PFNGLUNIFORM2FVPROC;
  751. Uniform3fv: PFNGLUNIFORM3FVPROC;
  752. Uniform4fv: PFNGLUNIFORM4FVPROC;
  753. Uniform1iv: PFNGLUNIFORM1IVPROC;
  754. Uniform2iv: PFNGLUNIFORM2IVPROC;
  755. Uniform3iv: PFNGLUNIFORM3IVPROC;
  756. Uniform4iv: PFNGLUNIFORM4IVPROC;
  757. UniformMatrix2fv: PFNGLUNIFORMMATRIX2FVPROC;
  758. UniformMatrix3fv: PFNGLUNIFORMMATRIX3FVPROC;
  759. UniformMatrix4fv: PFNGLUNIFORMMATRIX4FVPROC;
  760. GetObjectParameterfv: PFNGLGETOBJECTPARAMETERFVARBPROC; // ARB only
  761. GetObjectParameteriv: PFNGLGETOBJECTPARAMETERIVARBPROC; // ARB only
  762. GetInfoLog: PFNGLGETINFOLOGARBPROC; // ARB only
  763. GetAttachedObjects: PFNGLGETATTACHEDOBJECTSARBPROC; // ARB only
  764. GetActiveAttrib: PFNGLGETACTIVEATTRIBPROC;
  765. GetActiveUniform: PFNGLGETACTIVEUNIFORMPROC;
  766. GetAttachedShaders: PFNGLGETATTACHEDSHADERSPROC;
  767. GetAttribLocation: PFNGLGETATTRIBLOCATIONPROC;
  768. GetProgramiv: PFNGLGETPROGRAMIVPROC;
  769. GetProgramInfoLog: PFNGLGETPROGRAMINFOLOGPROC;
  770. GetShaderiv: PFNGLGETSHADERIVPROC;
  771. GetShaderInfoLog: PFNGLGETSHADERINFOLOGPROC;
  772. GetShaderSource: PFNGLGETSHADERSOURCEPROC;
  773. GetUniformLocation: PFNGLGETUNIFORMLOCATIONPROC;
  774. GetUniformfv: PFNGLGETUNIFORMFVPROC;
  775. GetUniformiv: PFNGLGETUNIFORMIVPROC;
  776. GetVertexAttribdv: PFNGLGETVERTEXATTRIBDVPROC;
  777. GetVertexAttribfv: PFNGLGETVERTEXATTRIBFVPROC;
  778. GetVertexAttribiv: PFNGLGETVERTEXATTRIBIVPROC;
  779. GetVertexAttribPointerv: PFNGLGETVERTEXATTRIBPOINTERVPROC;
  780. IsProgram: PFNGLISPROGRAMPROC;
  781. IsShader: PFNGLISSHADERPROC;
  782. BindAttribLocation: PFNGLBINDATTRIBLOCATIONPROC;
  783. BindFragDataLocationIndexed: PFNGLBINDFRAGDATALOCATIONINDEXEDPROC;
  784. GetFragDataIndex: PFNGLGETFRAGDATAINDEXPROC;
  785. GetVaryingLocation: PFNGLGETVARYINGLOCATIONNVPROC; // NV only
  786. GetActiveVarying: PFNGLGETACTIVEVARYINGNVPROC; // NV only
  787. ActiveVarying: PFNGLACTIVEVARYINGNVPROC; // NV only
  788. GetProgramBinary: PFNGLGETPROGRAMBINARYPROC;
  789. ProgramBinary: PFNGLPROGRAMBINARYPROC;
  790. UseProgramStages: PFNGLUSEPROGRAMSTAGESPROC;
  791. ActiveShaderProgram: PFNGLACTIVESHADERPROGRAMPROC;
  792. CreateShaderProgramv: PFNGLCREATESHADERPROGRAMVPROC;
  793. BindProgramPipeline: PFNGLBINDPROGRAMPIPELINEPROC;
  794. DeleteProgramPipelines: PFNGLDELETEPROGRAMPIPELINESPROC;
  795. GenProgramPipelines: PFNGLGENPROGRAMPIPELINESPROC;
  796. IsProgramPipeline: PFNGLISPROGRAMPIPELINEPROC;
  797. GetProgramPipelineiv: PFNGLGETPROGRAMPIPELINEIVPROC;
  798. ProgramUniform1i: PFNGLPROGRAMUNIFORM1IPROC;
  799. ProgramUniform1iv: PFNGLPROGRAMUNIFORM1IVPROC;
  800. ProgramUniform1f: PFNGLPROGRAMUNIFORM1FPROC;
  801. ProgramUniform1fv: PFNGLPROGRAMUNIFORM1FVPROC;
  802. ProgramUniform1d: PFNGLPROGRAMUNIFORM1DPROC;
  803. ProgramUniform1dv: PFNGLPROGRAMUNIFORM1DVPROC;
  804. ProgramUniform1ui: PFNGLPROGRAMUNIFORM1UIPROC;
  805. ProgramUniform1uiv: PFNGLPROGRAMUNIFORM1UIVPROC;
  806. ProgramUniform2i: PFNGLPROGRAMUNIFORM2IPROC;
  807. ProgramUniform2iv: PFNGLPROGRAMUNIFORM2IVPROC;
  808. ProgramUniform2f: PFNGLPROGRAMUNIFORM2FPROC;
  809. ProgramUniform2fv: PFNGLPROGRAMUNIFORM2FVPROC;
  810. ProgramUniform2d: PFNGLPROGRAMUNIFORM2DPROC;
  811. ProgramUniform2dv: PFNGLPROGRAMUNIFORM2DVPROC;
  812. ProgramUniform2ui: PFNGLPROGRAMUNIFORM2UIPROC;
  813. ProgramUniform2uiv: PFNGLPROGRAMUNIFORM2UIVPROC;
  814. ProgramUniform3i: PFNGLPROGRAMUNIFORM3IPROC;
  815. ProgramUniform3iv: PFNGLPROGRAMUNIFORM3IVPROC;
  816. ProgramUniform3f: PFNGLPROGRAMUNIFORM3FPROC;
  817. ProgramUniform3fv: PFNGLPROGRAMUNIFORM3FVPROC;
  818. ProgramUniform3d: PFNGLPROGRAMUNIFORM3DPROC;
  819. ProgramUniform3dv: PFNGLPROGRAMUNIFORM3DVPROC;
  820. ProgramUniform3ui: PFNGLPROGRAMUNIFORM3UIPROC;
  821. ProgramUniform3uiv: PFNGLPROGRAMUNIFORM3UIVPROC;
  822. ProgramUniform4i: PFNGLPROGRAMUNIFORM4IPROC;
  823. ProgramUniform4iv: PFNGLPROGRAMUNIFORM4IVPROC;
  824. ProgramUniform4f: PFNGLPROGRAMUNIFORM4FPROC;
  825. ProgramUniform4fv: PFNGLPROGRAMUNIFORM4FVPROC;
  826. ProgramUniform4d: PFNGLPROGRAMUNIFORM4DPROC;
  827. ProgramUniform4dv: PFNGLPROGRAMUNIFORM4DVPROC;
  828. ProgramUniform4ui: PFNGLPROGRAMUNIFORM4UIPROC;
  829. ProgramUniform4uiv: PFNGLPROGRAMUNIFORM4UIVPROC;
  830. ProgramUniformMatrix2fv: PFNGLPROGRAMUNIFORMMATRIX2FVPROC;
  831. ProgramUniformMatrix3fv: PFNGLPROGRAMUNIFORMMATRIX3FVPROC;
  832. ProgramUniformMatrix4fv: PFNGLPROGRAMUNIFORMMATRIX4FVPROC;
  833. ProgramUniformMatrix2dv: PFNGLPROGRAMUNIFORMMATRIX2DVPROC;
  834. ProgramUniformMatrix3dv: PFNGLPROGRAMUNIFORMMATRIX3DVPROC;
  835. ProgramUniformMatrix4dv: PFNGLPROGRAMUNIFORMMATRIX4DVPROC;
  836. ProgramUniformMatrix2x3fv: PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC;
  837. ProgramUniformMatrix3x2fv: PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC;
  838. ProgramUniformMatrix2x4fv: PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC;
  839. ProgramUniformMatrix4x2fv: PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC;
  840. ProgramUniformMatrix3x4fv: PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC;
  841. ProgramUniformMatrix4x3fv: PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC;
  842. ProgramUniformMatrix2x3dv: PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC;
  843. ProgramUniformMatrix3x2dv: PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC;
  844. ProgramUniformMatrix2x4dv: PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC;
  845. ProgramUniformMatrix4x2dv: PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC;
  846. ProgramUniformMatrix3x4dv: PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC;
  847. ProgramUniformMatrix4x3dv: PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC;
  848. ValidateProgramPipeline: PFNGLVALIDATEPROGRAMPIPELINEPROC;
  849. GetProgramPipelineInfoLog: PFNGLGETPROGRAMPIPELINEINFOLOGPROC;
  850. DispatchCompute: PFNGLDispatchCompute;
  851. DispatchComputeIndirect: PFNGLDispatchComputeIndirect;
  852. ShaderStorageBlockBinding: PFNGLShaderStorageBlockBinding;
  853. // ------------- Framebuffer object
  854. IsRenderbuffer: PFNGLISRENDERBUFFERPROC;
  855. BindRenderbuffer: PFNGLBINDRENDERBUFFERPROC;
  856. DeleteRenderbuffers: PFNGLDELETERENDERBUFFERSPROC;
  857. GenRenderbuffers: PFNGLGENRENDERBUFFERSPROC;
  858. RenderbufferStorage: PFNGLRENDERBUFFERSTORAGEPROC;
  859. RenderbufferStorageMultisample: PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC;
  860. GetRenderbufferParameteriv: PFNGLGETRENDERBUFFERPARAMETERIVPROC;
  861. IsFramebuffer: PFNGLISFRAMEBUFFERPROC;
  862. BindFramebuffer: PFNGLBINDFRAMEBUFFERPROC;
  863. DeleteFramebuffers: PFNGLDELETEFRAMEBUFFERSPROC;
  864. GenFramebuffers: PFNGLGENFRAMEBUFFERSPROC;
  865. CheckFramebufferStatus: PFNGLCHECKFRAMEBUFFERSTATUSPROC;
  866. FramebufferTexture: PFNGLFRAMEBUFFERTEXTUREPROC;
  867. FramebufferTexture1D: PFNGLFRAMEBUFFERTEXTURE1DPROC;
  868. FramebufferTexture2D: PFNGLFRAMEBUFFERTEXTURE2DPROC;
  869. FramebufferTexture3D: PFNGLFRAMEBUFFERTEXTURE3DPROC;
  870. FramebufferTextureLayer: PFNGLFRAMEBUFFERTEXTURELAYERPROC;
  871. FramebufferTextureFace: PFNGLFRAMEBUFFERTEXTUREFACEARBPROC; // ARB only
  872. FramebufferRenderbuffer: PFNGLFRAMEBUFFERRENDERBUFFERPROC;
  873. GetFramebufferAttachmentParameteriv: PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC;
  874. BlitFramebuffer: PFNGLBLITFRAMEBUFFERPROC;
  875. GenerateMipmap: PFNGLGENERATEMIPMAPPROC;
  876. FramebufferParameteri: PFNGLFramebufferParameteri;
  877. NamedFramebufferParameteri: PFNGLNamedFramebufferParameteri;
  878. GetNamedFramebufferParameteriv: PFNGLGetNamedFramebufferParameteriv;
  879. // ------------------------------ Queries object
  880. GenQueries: PFNGLGENQUERIESPROC;
  881. DeleteQueries: PFNGLDELETEQUERIESPROC;
  882. IsQuery: PFNGLISQUERYPROC;
  883. BeginQuery: PFNGLBEGINQUERYPROC;
  884. EndQuery: PFNGLENDQUERYPROC;
  885. GetQueryiv: PFNGLGETQUERYIVPROC;
  886. GetQueryObjectiv: PFNGLGETQUERYOBJECTIVPROC;
  887. GetQueryObjectuiv: PFNGLGETQUERYOBJECTUIVPROC;
  888. QueryCounter: PFNGLQUERYCOUNTERPROC;
  889. GetQueryObjecti64v: PFNGLGETQUERYOBJECTI64VPROC;
  890. GetQueryObjectui64v: PFNGLGETQUERYOBJECTUI64VPROC;
  891. GetInternalformati64v: PFNGLGetInternalformati64v;
  892. GetProgramInterfaceiv: PFNGLGetProgramInterfaceiv;
  893. GetProgramResourceIndex: PFNGLGetProgramResourceIndex;
  894. GetProgramResourceName: PFNGLGetProgramResourceName;
  895. GetProgramResourceiv: PFNGLGetProgramResourceiv;
  896. GetProgramResourceLocation: PFNGLGetProgramResourceLocation;
  897. GetProgramResourceLocationIndex: PFNGLGetProgramResourceLocationIndex;
  898. // ------------------------------ Texture & Sampler object
  899. // promoted to core v1.3 from GL_ARB_multitexture (#1)
  900. ActiveTexture: PFNGLACTIVETEXTUREPROC;
  901. SampleCoverage: PFNGLSAMPLECOVERAGEPROC;
  902. // promoted to core v1.3 from GL_ARB_texture_compression (#12)
  903. CompressedTexImage3D: PFNGLCOMPRESSEDTEXIMAGE3DPROC;
  904. CompressedTexImage2D: PFNGLCOMPRESSEDTEXIMAGE2DPROC;
  905. CompressedTexImage1D: PFNGLCOMPRESSEDTEXIMAGE1DPROC;
  906. CompressedTexSubImage3D: PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC;
  907. CompressedTexSubImage2D: PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC;
  908. CompressedTexSubImage1D: PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC;
  909. GetCompressedTexImage: PFNGLGETCOMPRESSEDTEXIMAGEPROC;
  910. ClientActiveTexture: PFNGLCLIENTACTIVETEXTUREPROC;
  911. MultiTexCoord1d: PFNGLMULTITEXCOORD1DPROC;
  912. MultiTexCoord1dV: PFNGLMULTITEXCOORD1DVPROC;
  913. MultiTexCoord1f: PFNGLMULTITEXCOORD1FPROC;
  914. MultiTexCoord1fv: PFNGLMULTITEXCOORD1FVPROC;
  915. MultiTexCoord1i: PFNGLMULTITEXCOORD1IPROC;
  916. MultiTexCoord1iv: PFNGLMULTITEXCOORD1IVPROC;
  917. MultiTexCoord1s: PFNGLMULTITEXCOORD1SPROC;
  918. MultiTexCoord1sv: PFNGLMULTITEXCOORD1SVPROC;
  919. MultiTexCoord2d: PFNGLMULTITEXCOORD2DPROC;
  920. MultiTexCoord2dv: PFNGLMULTITEXCOORD2DVPROC;
  921. MultiTexCoord2f: PFNGLMULTITEXCOORD2FPROC;
  922. MultiTexCoord2fv: PFNGLMULTITEXCOORD2FVPROC;
  923. MultiTexCoord2i: PFNGLMULTITEXCOORD2IPROC;
  924. MultiTexCoord2iv: PFNGLMULTITEXCOORD2IVPROC;
  925. MultiTexCoord2s: PFNGLMULTITEXCOORD2SPROC;
  926. MultiTexCoord2sv: PFNGLMULTITEXCOORD2SVPROC;
  927. MultiTexCoord3d: PFNGLMULTITEXCOORD3DPROC;
  928. MultiTexCoord3dv: PFNGLMULTITEXCOORD3DVPROC;
  929. MultiTexCoord3f: PFNGLMULTITEXCOORD3FPROC;
  930. MultiTexCoord3fv: PFNGLMULTITEXCOORD3FVPROC;
  931. MultiTexCoord3i: PFNGLMULTITEXCOORD3IPROC;
  932. MultiTexCoord3iv: PFNGLMULTITEXCOORD3IVPROC;
  933. MultiTexCoord3s: PFNGLMULTITEXCOORD3SPROC;
  934. MultiTexCoord3sv: PFNGLMULTITEXCOORD3SVPROC;
  935. MultiTexCoord4d: PFNGLMULTITEXCOORD4DPROC;
  936. MultiTexCoord4dv: PFNGLMULTITEXCOORD4DVPROC;
  937. MultiTexCoord4f: PFNGLMULTITEXCOORD4FPROC;
  938. MultiTexCoord4fv: PFNGLMULTITEXCOORD4FVPROC;
  939. MultiTexCoord4i: PFNGLMULTITEXCOORD4IPROC;
  940. MultiTexCoord4iv: PFNGLMULTITEXCOORD4IVPROC;
  941. MultiTexCoord4s: PFNGLMULTITEXCOORD4SPROC;
  942. MultiTexCoord4sv: PFNGLMULTITEXCOORD4SVPROC;
  943. GetInteger64i_v: PFNGLGETINTEGER64I_VPROC;
  944. GetBufferParameteri64v: PFNGLGETBUFFERPARAMETERI64VPROC;
  945. ProgramParameteri: PFNGLPROGRAMPARAMETERIPROC;
  946. ProgramString: PFNGLPROGRAMSTRINGARBPROC; // ARB only
  947. BindProgram: PFNGLBINDPROGRAMARBPROC; // ARB + NV only
  948. DeletePrograms: PFNGLDELETEPROGRAMSARBPROC; // ARB + NV only
  949. GenPrograms: PFNGLGENPROGRAMSARBPROC; // ARB + NV only
  950. ProgramEnvParameter4d: PFNGLPROGRAMENVPARAMETER4DARBPROC; // ARB only
  951. ProgramEnvParameter4dv: PFNGLPROGRAMENVPARAMETER4DVARBPROC; // ARB only
  952. ProgramEnvParameter4f: PFNGLPROGRAMENVPARAMETER4FARBPROC; // ARB only
  953. ProgramEnvParameter4fv: PFNGLPROGRAMENVPARAMETER4FVARBPROC; // ARB only
  954. ProgramLocalParameter4d: PFNGLPROGRAMLOCALPARAMETER4DARBPROC; // ARB only
  955. ProgramLocalParameter4dv: PFNGLPROGRAMLOCALPARAMETER4DVARBPROC; // ARB only
  956. ProgramLocalParameter4f: PFNGLPROGRAMLOCALPARAMETER4FARBPROC; // ARB only
  957. ProgramLocalParameter4fv: PFNGLPROGRAMLOCALPARAMETER4FVARBPROC; // ARB only
  958. GetProgramEnvParameterdv: PFNGLGETPROGRAMENVPARAMETERDVARBPROC; // ARB only
  959. GetProgramEnvParameterfv: PFNGLGETPROGRAMENVPARAMETERFVARBPROC; // ARB only
  960. GetProgramLocalParameterdv: PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC;
  961. // ARB only
  962. GetProgramLocalParameterfv: PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC;
  963. // ARB only
  964. TexImage2DMultisample: PFNGLTEXIMAGE2DMULTISAMPLEPROC;
  965. TexImage3DMultisample: PFNGLTEXIMAGE3DMULTISAMPLEPROC;
  966. GetMultisamplefv: PFNGLGETMULTISAMPLEFVPROC;
  967. SampleMaski: PFNGLSAMPLEMASKIPROC;
  968. ProvokingVertex: PFNGLPROVOKINGVERTEXPROC;
  969. FenceSync: PFNGLFENCESYNCPROC;
  970. IsSync: PFNGLISSYNCPROC;
  971. DeleteSync: PFNGLDELETESYNCPROC;
  972. ClientWaitSync: PFNGLCLIENTWAITSYNCPROC;
  973. WaitSync: PFNGLWAITSYNCPROC;
  974. GetInteger64v: PFNGLGETINTEGER64VPROC;
  975. GetSynciv: PFNGLGETSYNCIVPROC;
  976. BlendEquationi: PFNGLBLENDEQUATIONIPROC;
  977. BlendEquationSeparatei: PFNGLBLENDEQUATIONSEPARATEIPROC;
  978. BlendFunci: PFNGLBLENDFUNCIPROC;
  979. BlendFuncSeparatei: PFNGLBLENDFUNCSEPARATEIPROC;
  980. MinSampleShading: PFNGLMINSAMPLESHADINGPROC;
  981. GenSamplers: PFNGLGENSAMPLERSPROC;
  982. DeleteSamplers: PFNGLDELETESAMPLERSPROC;
  983. IsSampler: PFNGLISSAMPLERPROC;
  984. BindSampler: PFNGLBINDSAMPLERPROC;
  985. SamplerParameteri: PFNGLSAMPLERPARAMETERIPROC;
  986. SamplerParameteriv: PFNGLSAMPLERPARAMETERIVPROC;
  987. SamplerParameterf: PFNGLSAMPLERPARAMETERFPROC;
  988. SamplerParameterfv: PFNGLSAMPLERPARAMETERFVPROC;
  989. SamplerParameterIiv: PFNGLSAMPLERPARAMETERIIVPROC;
  990. SamplerParameterIuiv: PFNGLSAMPLERPARAMETERIUIVPROC;
  991. GetSamplerParameteriv: PFNGLGETSAMPLERPARAMETERIVPROC;
  992. GetSamplerParameterIiv: PFNGLGETSAMPLERPARAMETERIIVPROC;
  993. GetSamplerParameterfv: PFNGLGETSAMPLERPARAMETERFVPROC;
  994. GetSamplerParameterIfv: PFNGLGETSAMPLERPARAMETERIFVPROC;
  995. CopyImageSubData: PFNGLCopyImageSubData;
  996. TexBufferRange: PFNGLTexBufferRange;
  997. TextureBufferRange: PFNGLTextureBufferRange;
  998. TexStorage2DMultisample: PFNGLTexStorage2DMultisample;
  999. TexStorage3DMultisample: PFNGLTexStorage3DMultisample;
  1000. TextureStorage2DMultisample: PFNGLTextureStorage2DMultisample;
  1001. TextureStorage3DMultisample: PFNGLTextureStorage3DMultisample;
  1002. BufferStorage: PFNGLBufferStorage;
  1003. ClearTexImage: PFNGLClearTexImage;
  1004. ClearTexSubImage: PFNGLClearTexSubImage;
  1005. BindBuffersBase: PFNGLBindBuffersBase;
  1006. BindBuffersRange: PFNGLBindBuffersRange;
  1007. BindTextures: PFNGLBindTextures;
  1008. BindSamplers: PFNGLBindSamplers;
  1009. BindImageTextures: PFNGLBindImageTextures;
  1010. BindVertexBuffers: PFNGLBindVertexBuffers;
  1011. TextureView: PFNGLTextureView;
  1012. // ------------------------------ Direct access
  1013. ClientAttribDefault: PFNGLCLIENTATTRIBDEFAULTEXTPROC;
  1014. PushClientAttribDefault: PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC;
  1015. MatrixLoadf: PFNGLMATRIXLOADFEXTPROC;
  1016. MatrixLoadd: PFNGLMATRIXLOADDEXTPROC;
  1017. MatrixMultf: PFNGLMATRIXMULTFEXTPROC;
  1018. MatrixMultd: PFNGLMATRIXMULTDEXTPROC;
  1019. MatrixLoadIdentity: PFNGLMATRIXLOADIDENTITYEXTPROC;
  1020. MatrixRotatef: PFNGLMATRIXROTATEFEXTPROC;
  1021. MatrixRotated: PFNGLMATRIXROTATEDEXTPROC;
  1022. MatrixScalef: PFNGLMATRIXSCALEFEXTPROC;
  1023. MatrixScaled: PFNGLMATRIXSCALEDEXTPROC;
  1024. MatrixTranslatef: PFNGLMATRIXTRANSLATEFEXTPROC;
  1025. MatrixTranslated: PFNGLMATRIXTRANSLATEDEXTPROC;
  1026. MatrixFrustum: PFNGLMATRIXFRUSTUMEXTPROC;
  1027. MatrixOrtho: PFNGLMATRIXORTHOEXTPROC;
  1028. MatrixPop: PFNGLMATRIXPOPEXTPROC;
  1029. MatrixPush: PFNGLMATRIXPUSHEXTPROC;
  1030. MatrixLoadTransposef: PFNGLMATRIXLOADTRANSPOSEFEXTPROC;
  1031. MatrixLoadTransposed: PFNGLMATRIXLOADTRANSPOSEDEXTPROC;
  1032. MatrixMultTransposef: PFNGLMATRIXMULTTRANSPOSEFEXTPROC;
  1033. MatrixMultTransposed: PFNGLMATRIXMULTTRANSPOSEDEXTPROC;
  1034. TextureParameterfv: PFNGLTEXTUREPARAMETERFVEXTPROC;
  1035. TextureParameteri: PFNGLTEXTUREPARAMETERIEXTPROC;
  1036. TextureParameteriv: PFNGLTEXTUREPARAMETERIVEXTPROC;
  1037. TextureImage1D: PFNGLTEXTUREIMAGE1DEXTPROC;
  1038. TextureImage2D: PFNGLTEXTUREIMAGE2DEXTPROC;
  1039. TextureSubImage1D: PFNGLTEXTURESUBIMAGE1DEXTPROC;
  1040. TextureSubImage2D: PFNGLTEXTURESUBIMAGE2DEXTPROC;
  1041. CopyTextureImage1D: PFNGLCOPYTEXTUREIMAGE1DEXTPROC;
  1042. CopyTextureImage2D: PFNGLCOPYTEXTUREIMAGE2DEXTPROC;
  1043. CopyTextureSubImage1D: PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC;
  1044. CopyTextureSubImage2D: PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC;
  1045. GetTextureImage: PFNGLGETTEXTUREIMAGEEXTPROC;
  1046. GetTextureParameterfv: PFNGLGETTEXTUREPARAMETERFVEXTPROC;
  1047. GetTextureParameteriv: PFNGLGETTEXTUREPARAMETERIVEXTPROC;
  1048. GetTextureLevelParameterfv: PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC;
  1049. GetTextureLevelParameteriv: PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC;
  1050. TextureImage3D: PFNGLTEXTUREIMAGE3DEXTPROC;
  1051. TextureSubImage3D: PFNGLTEXTURESUBIMAGE3DEXTPROC;
  1052. CopyTextureSubImage3D: PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC;
  1053. MultiTexParameterf: PFNGLMULTITEXPARAMETERFEXTPROC;
  1054. MultiTexParameterfv: PFNGLMULTITEXPARAMETERFVEXTPROC;
  1055. MultiTexParameteri: PFNGLMULTITEXPARAMETERIEXTPROC;
  1056. MultiTexParameteriv: PFNGLMULTITEXPARAMETERIVEXTPROC;
  1057. MultiTexImage1D: PFNGLMULTITEXIMAGE1DEXTPROC;
  1058. MultiTexImage2D: PFNGLMULTITEXIMAGE2DEXTPROC;
  1059. MultiTexSubImage1D: PFNGLMULTITEXSUBIMAGE1DEXTPROC;
  1060. MultiTexSubImage2D: PFNGLMULTITEXSUBIMAGE2DEXTPROC;
  1061. CopyMultiTexImage1D: PFNGLCOPYMULTITEXIMAGE1DEXTPROC;
  1062. CopyMultiTexImage2D: PFNGLCOPYMULTITEXIMAGE2DEXTPROC;
  1063. CopyMultiTexSubImage1D: PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC;
  1064. CopyMultiTexSubImage2D: PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC;
  1065. GetMultiTexImage: PFNGLGETMULTITEXIMAGEEXTPROC;
  1066. GetMultiTexParameterfv: PFNGLGETMULTITEXPARAMETERFVEXTPROC;
  1067. GetMultiTexParameteriv: PFNGLGETMULTITEXPARAMETERIVEXTPROC;
  1068. GetMultiTexLevelParameterfv: PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC;
  1069. GetMultiTexLevelParameteriv: PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC;
  1070. MultiTexImage3D: PFNGLMULTITEXIMAGE3DEXTPROC;
  1071. MultiTexSubImage3D: PFNGLMULTITEXSUBIMAGE3DEXTPROC;
  1072. CopyMultiTexSubImage3D: PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC;
  1073. BindMultiTexture: PFNGLBINDMULTITEXTUREEXTPROC;
  1074. EnableClientStateIndexed: PFNGLENABLECLIENTSTATEINDEXEDEXTPROC;
  1075. DisableClientStateIndexed: PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC;
  1076. MultiTexCoordPointer: PFNGLMULTITEXCOORDPOINTEREXTPROC;
  1077. MultiTexEnvf: PFNGLMULTITEXENVFEXTPROC;
  1078. MultiTexEnvfv: PFNGLMULTITEXENVFVEXTPROC;
  1079. MultiTexEnvi: PFNGLMULTITEXENVIEXTPROC;
  1080. MultiTexEnviv: PFNGLMULTITEXENVIVEXTPROC;
  1081. MultiTexGend: PFNGLMULTITEXGENDEXTPROC;
  1082. MultiTexGendv: PFNGLMULTITEXGENDVEXTPROC;
  1083. MultiTexGenf: PFNGLMULTITEXGENFEXTPROC;
  1084. MultiTexGenfv: PFNGLMULTITEXGENFVEXTPROC;
  1085. MultiTexGeni: PFNGLMULTITEXGENIEXTPROC;
  1086. MultiTexGeniv: PFNGLMULTITEXGENIVEXTPROC;
  1087. GetMultiTexEnvfv: PFNGLGETMULTITEXENVFVEXTPROC;
  1088. GetMultiTexEnviv: PFNGLGETMULTITEXENVIVEXTPROC;
  1089. GetMultiTexGendv: PFNGLGETMULTITEXGENDVEXTPROC;
  1090. GetMultiTexGenfv: PFNGLGETMULTITEXGENFVEXTPROC;
  1091. GetMultiTexGeniv: PFNGLGETMULTITEXGENIVEXTPROC;
  1092. GetFloatIndexedv: PFNGLGETFLOATINDEXEDVEXTPROC;
  1093. GetDoubleIndexedv: PFNGLGETDOUBLEINDEXEDVEXTPROC;
  1094. GetPointerIndexedv: PFNGLGETPOINTERINDEXEDVEXTPROC;
  1095. CompressedTextureImage3D: PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC;
  1096. CompressedTextureImage2D: PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC;
  1097. CompressedTextureImage1D: PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC;
  1098. CompressedTextureSubImage3D: PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC;
  1099. CompressedTextureSubImage2D: PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC;
  1100. CompressedTextureSubImage1D: PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC;
  1101. GetCompressedTextureImage: PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC;
  1102. CompressedMultiTexImage3D: PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC;
  1103. CompressedMultiTexImage2D: PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC;
  1104. CompressedMultiTexImage1D: PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC;
  1105. CompressedMultiTexSubImage3D: PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC;
  1106. CompressedMultiTexSubImage2D: PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC;
  1107. CompressedMultiTexSubImage1D: PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC;
  1108. GetCompressedMultiTexImage: PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC;
  1109. NamedProgramString: PFNGLNAMEDPROGRAMSTRINGEXTPROC;
  1110. NamedProgramLocalParameter4d: PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC;
  1111. NamedProgramLocalParameter4dv: PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC;
  1112. NamedProgramLocalParameter4f: PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC;
  1113. NamedProgramLocalParameter4fv: PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC;
  1114. GetNamedProgramLocalParameterdv: PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC;
  1115. GetNamedProgramLocalParameterfv: PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC;
  1116. GetNamedProgramiv: PFNGLGETNAMEDPROGRAMIVEXTPROC;
  1117. GetNamedProgramString: PFNGLGETNAMEDPROGRAMSTRINGEXTPROC;
  1118. NamedProgramLocalParameters4fv: PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC;
  1119. NamedProgramLocalParameterI4i: PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC;
  1120. NamedProgramLocalParameterI4iv: PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC;
  1121. NamedProgramLocalParametersI4iv: PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC;
  1122. NamedProgramLocalParameterI4ui: PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC;
  1123. NamedProgramLocalParameterI4uiv: PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC;
  1124. NamedProgramLocalParametersI4uiv: PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC;
  1125. GetNamedProgramLocalParameterIiv: PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC;
  1126. GetNamedProgramLocalParameterIuiv: PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC;
  1127. TextureParameterIiv: PFNGLTEXTUREPARAMETERIIVEXTPROC;
  1128. TextureParameterIuiv: PFNGLTEXTUREPARAMETERIUIVEXTPROC;
  1129. GetTextureParameterIiv: PFNGLGETTEXTUREPARAMETERIIVEXTPROC;
  1130. GetTextureParameterIuiv: PFNGLGETTEXTUREPARAMETERIUIVEXTPROC;
  1131. MultiTexParameterIiv: PFNGLMULTITEXPARAMETERIIVEXTPROC;
  1132. MultiTexParameterIuiv: PFNGLMULTITEXPARAMETERIUIVEXTPROC;
  1133. GetMultiTexParameterIiv: PFNGLGETMULTITEXPARAMETERIIVEXTPROC;
  1134. GetMultiTexParameterIuiv: PFNGLGETMULTITEXPARAMETERIUIVEXTPROC;
  1135. NamedBufferData: PFNGLNAMEDBUFFERDATAEXTPROC;
  1136. NamedBufferSubData: PFNGLNAMEDBUFFERSUBDATAEXTPROC;
  1137. MapNamedBuffer: PFNGLMAPNAMEDBUFFEREXTPROC;
  1138. UnmapNamedBuffer: PFNGLUNMAPNAMEDBUFFEREXTPROC;
  1139. MapNamedBufferRange: PFNGLMAPNAMEDBUFFERRANGEEXTPROC;
  1140. FlushMappedNamedBufferRange: PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC;
  1141. NamedCopyBufferSubData: PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC;
  1142. GetNamedBufferParameteriv: PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC;
  1143. GetNamedBufferPointerv: PFNGLGETNAMEDBUFFERPOINTERVEXTPROC;
  1144. GetNamedBufferSubData: PFNGLGETNAMEDBUFFERSUBDATAEXTPROC;
  1145. TextureBuffer: PFNGLTEXTUREBUFFEREXTPROC;
  1146. MultiTexBuffer: PFNGLMULTITEXBUFFEREXTPROC;
  1147. NamedRenderbufferStorage: PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC;
  1148. GetNamedRenderbufferParameteriv: PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC;
  1149. CheckNamedFramebufferStatus: PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC;
  1150. NamedFramebufferTexture1D: PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC;
  1151. NamedFramebufferTexture2D: PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC;
  1152. NamedFramebufferTexture3D: PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC;
  1153. NamedFramebufferRenderbuffer: PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC;
  1154. GetNamedFramebufferAttachmentParameteriv: PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC;
  1155. GenerateTextureMipmap: PFNGLGENERATETEXTUREMIPMAPEXTPROC;
  1156. GenerateMultiTexMipmap: PFNGLGENERATEMULTITEXMIPMAPEXTPROC;
  1157. FramebufferDrawBuffer: PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC;
  1158. FramebufferDrawBuffers: PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC;
  1159. FramebufferReadBuffer: PFNGLFRAMEBUFFERREADBUFFEREXTPROC;
  1160. GetFramebufferParameteriv: PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC;
  1161. NamedRenderbufferStorageMultisample: PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC;
  1162. NamedRenderbufferStorageMultisampleCoverage: PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC;
  1163. NamedFramebufferTexture: PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC;
  1164. NamedFramebufferTextureLayer: PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC;
  1165. NamedFramebufferTextureFace: PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC;
  1166. TextureRenderbuffer: PFNGLTEXTURERENDERBUFFEREXTPROC;
  1167. MultiTexRenderbuffer: PFNGLMULTITEXRENDERBUFFEREXTPROC;
  1168. // ------------------------------ Debugging
  1169. // Special Gremedy debugger extension
  1170. FrameTerminatorGREMEDY: PFNGLFRAMETERMINATORGREMEDYPROC;
  1171. StringMarkerGREMEDY: PFNGLSTRINGMARKERGREMEDYPROC;
  1172. DebugMessageEnableAMDX: procedure(category: Cardinal; severity: Cardinal;
  1173. Count: TGLsizei; var ids: Cardinal; Enabled: boolean);
  1174. PushDebugGroup: PFNGLPushDebugGroup;
  1175. PopDebugGroup: PFNGLPopDebugGroup;
  1176. ObjectLabel: PFNGLObjectLabel;
  1177. GetObjectLabel: PFNGLGetObjectLabel;
  1178. ObjectPtrLabel: PFNGLObjectPtrLabel;
  1179. GetObjectPtrLabel: PFNGLGetObjectPtrLabel;
  1180. DebugMessageCallbackAMDX: procedure(callback: TDebugProcAMD;
  1181. userParam: Pointer);stdcall;
  1182. DebugMessageControl: procedure(type_: Cardinal; Source: Cardinal;
  1183. severity: Cardinal; Count: TGLsizei; var ids: Cardinal; Enabled: boolean);stdcall;
  1184. DebugMessageInsert: procedure(Source: Cardinal; severity: Cardinal;
  1185. id: Cardinal; length: TGLsizei; const buf: PAnsiChar);stdcall;
  1186. DebugMessageCallback: procedure(callback: TDebugProc; userParam: Pointer);stdcall;
  1187. GetDebugMessageLog: function(Count: Cardinal; bufSize: TGLsizei;
  1188. var severity: Cardinal; var severities: Cardinal; var ids: Cardinal;
  1189. var lengths: TGLsizei; messageLog: PAnsiChar): Cardinal;stdcall;
  1190. // ------------------------------ Interrop
  1191. CreateSyncFromCLevent: PFNGLCreateSyncFromCLevent;
  1192. VDPAUInitNV: procedure(const vdpDevice: Pointer;
  1193. const getProcAddress: Pointer); stdcall;
  1194. VDPAUFiniNV: procedure(); stdcall;
  1195. VDPAURegisterVideoSurfaceNV: function(const vdpSurface: Pointer;
  1196. target: Cardinal; numTextureNames: TGLsizei; const textureNames: PGLuint)
  1197. : TGLvdpauSurfaceNV;stdcall;
  1198. VDPAURegisterOutputSurfaceNV: function(const vdpSurface: Pointer;
  1199. target: Cardinal; numTextureNames: TGLsizei; const textureNames: PGLuint)
  1200. : TGLvdpauSurfaceNV;stdcall;
  1201. VDPAUIsSurfaceNV: procedure(surface: TGLvdpauSurfaceNV);stdcall;
  1202. VDPAUUnregisterSurfaceNV: procedure(surface: TGLvdpauSurfaceNV);stdcall;
  1203. VDPAUGetSurfaceivNV: procedure(surface: TGLvdpauSurfaceNV; pname: Cardinal;
  1204. bufSize: TGLsizei; length: PGLsizei; values: PGLint);stdcall;
  1205. VDPAUSurfaceAccessNV: procedure(surface: TGLvdpauSurfaceNV;
  1206. access: Cardinal);stdcall;
  1207. VDPAUMapSurfacesNV: procedure(numSurfaces: TGLsizei;
  1208. const surfaces: PGLvdpauSurfaceNV);stdcall;
  1209. VDPAUUnmapSurfacesNV: procedure(numSurface: TGLsizei;
  1210. const surfaces: PGLvdpauSurfaceNV);stdcall;
  1211. // ------------------------------ Path rendering
  1212. GenPathsNV: PFNGLGENPATHSNVPROC;
  1213. DeletePathsNV: PFNGLDELETEPATHSNVPROC;
  1214. IsPathNV: PFNGLISPATHNVPROC;
  1215. PathCommandsNV: PFNGLPATHCOMMANDSNVPROC;
  1216. PathCoordsNV: PFNGLPATHCOORDSNVPROC;
  1217. PathSubCommandsNV: PFNGLPATHSUBCOMMANDSNVPROC;
  1218. PathSubCoordsNV: PFNGLPATHSUBCOORDSNVPROC;
  1219. PathStringNV: PFNGLPATHSTRINGNVPROC;
  1220. PathGlyphsNV: PFNGLPATHGLYPHSNVPROC;
  1221. PathGlyphRangeNV: PFNGLPATHGLYPHRANGENVPROC;
  1222. WeightPathsNV: PFNGLWEIGHTPATHSNVPROC;
  1223. CopyPathNV: PFNGLCOPYPATHNVPROC;
  1224. InterpolatePathsNV: PFNGLINTERPOLATEPATHSNVPROC;
  1225. PathParameterivNV: PFNGLPATHPARAMETERIVNVPROC;
  1226. PathParameteriNV: PFNGLPATHPARAMETERINVPROC;
  1227. PathParameterfvNV: PFNGLPATHPARAMETERFVNVPROC;
  1228. PathParameterfNV: PFNGLPATHPARAMETERFNVPROC;
  1229. PathDashArrayNV: PFNGLPATHDASHARRAYNVPROC;
  1230. PathStencilFuncNV: PFNGLPATHSTENCILFUNCNVPROC;
  1231. StencilFillPathNV: PFNGLSTENCILFILLPATHNVPROC;
  1232. StencilStrokePathNV: PFNGLSTENCILSTROKEPATHNVPROC;
  1233. StencilFillPathInstancedNV: PFNGLSTENCILFILLPATHINSTANCEDNVPROC;
  1234. StencilStrokePathInstancedNV: PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC;
  1235. PathColorGenNV: PFNGLPATHCOLORGENNVPROC;
  1236. PathTexGenNV: PFNGLPATHTEXGENNVPROC;
  1237. PathFogGenNV: PFNGLPATHFOGGENNVPROC;
  1238. CoverFillPathNV: PFNGLCOVERFILLPATHNVPROC;
  1239. CoverStrokePathNV: PFNGLCOVERSTROKEPATHNVPROC;
  1240. CoverFillPathInstancedNV: PFNGLCOVERFILLPATHINSTANCEDNVPROC;
  1241. CoverStrokePathInstancedNV: PFNGLCOVERSTROKEPATHINSTANCEDNVPROC;
  1242. GetPathParameterivNV: PFNGLGETPATHPARAMETERIVNVPROC;
  1243. GetPathParameterfvNV: PFNGLGETPATHPARAMETERFVNVPROC;
  1244. GetPathCommandsNV: PFNGLGETPATHCOMMANDSNVPROC;
  1245. GetPathCoordsNV: PFNGLGETPATHCOORDSNVPROC;
  1246. GetPathDashArrayNV: PFNGLGETPATHDASHARRAYNVPROC;
  1247. GetPathMetricsNV: PFNGLGETPATHMETRICSNVPROC;
  1248. GetPathMetricRangeNV: PFNGLGETPATHMETRICRANGENVPROC;
  1249. GetPathSpacingNV: PFNGLGETPATHSPACINGNVPROC;
  1250. GetPathColorGenivNV: PFNGLGETPATHCOLORGENIVNVPROC;
  1251. GetPathColorGenfvNV: PFNGLGETPATHCOLORGENFVNVPROC;
  1252. GetPathTexGenivNV: PFNGLGETPATHTEXGENIVNVPROC;
  1253. GetPathTexGenfvNV: PFNGLGETPATHTEXGENFVNVPROC;
  1254. IsPointInFillPathNV: PFNGLISPOINTINFILLPATHNVPROC;
  1255. IsPointInStrokePathNV: PFNGLISPOINTINSTROKEPATHNVPROC;
  1256. GetPathLengthNV: PFNGLGETPATHLENGTHNVPROC;
  1257. PointAlongPathNV: PFNGLPOINTALONGPATHNVPROC;
  1258. PathStencilDepthOffsetNV: PFNGLPATHSTENCILDEPTHOFFSETNVPROC;
  1259. PathCoverDepthFuncNV: PFNGLPATHCOVERDEPTHFUNCNVPROC;
  1260. {$IFDEF SUPPORT_WGL}
  1261. // ###########################################################
  1262. // function and procedure definitions for
  1263. // ARB approved WGL extensions
  1264. // ###########################################################
  1265. // ARB approved WGL extension checks
  1266. W_ARB_buffer_region, W_ARB_create_context, W_ARB_create_context_profile,
  1267. W_ARB_extensions_string, W_ARB_framebuffer_sRGB, W_ARB_make_current_read,
  1268. W_ARB_multisample, W_ARB_pbuffer, W_ARB_pixel_format,
  1269. W_ARB_pixel_format_float, W_ARB_render_texture,
  1270. // Vendor/EXT WGL extension checks
  1271. W_ATI_pixel_format_float, W_EXT_framebuffer_sRGB,
  1272. W_EXT_pixel_format_packed_float, W_EXT_swap_control, W_NV_gpu_affinity,
  1273. W_EXT_create_context_es2_profile, W_NV_DX_interop,
  1274. W_NV_DX_interop2: boolean;
  1275. // WGL_buffer_region (ARB #4)
  1276. WCreateBufferRegionARB: PFNWGLCREATEBUFFERREGIONARBPROC;
  1277. WDeleteBufferRegionARB: PFNWGLDELETEBUFFERREGIONARBPROC;
  1278. WSaveBufferRegionARB: PFNWGLSAVEBUFFERREGIONARBPROC;
  1279. WRestoreBufferRegionARB: PFNWGLRESTOREBUFFERREGIONARBPROC;
  1280. // WGL_ARB_extensions_string (ARB #8)
  1281. WGetExtensionsStringARB: PFNWGLGETEXTENSIONSSTRINGARBPROC;
  1282. // WGL_ARB_pixel_format (ARB #9)
  1283. WGetPixelFormatAttribivARB: PFNWGLGETPIXELFORMATATTRIBIVARBPROC;
  1284. WGetPixelFormatAttribfvARB: PFNWGLGETPIXELFORMATATTRIBFVARBPROC;
  1285. WChoosePixelFormatARB: PFNWGLCHOOSEPIXELFORMATARBPROC;
  1286. // WGL_make_current_read (ARB #10)
  1287. WMakeContextCurrentARB: PFNWGLMAKECONTEXTCURRENTARBPROC;
  1288. WGetCurrentReadDCARB: PFNWGLGETCURRENTREADDCARBPROC;
  1289. // WGL_ARB_pbuffer (ARB #11)
  1290. WCreatePbufferARB: PFNWGLCREATEPBUFFERARBPROC;
  1291. WGetPbufferDCARB: PFNWGLGETPBUFFERDCARBPROC;
  1292. WReleasePbufferDCARB: PFNWGLRELEASEPBUFFERDCARBPROC;
  1293. WDestroyPbufferARB: PFNWGLDESTROYPBUFFERARBPROC;
  1294. WQueryPbufferARB: PFNWGLQUERYPBUFFERARBPROC;
  1295. // WGL_ARB_render_texture (ARB #20)
  1296. WBindTexImageARB: PFNWGLBINDTEXIMAGEARBPROC;
  1297. WReleaseTexImageARB: PFNWGLRELEASETEXIMAGEARBPROC;
  1298. WSetPbufferAttribARB: PFNWGLSETPBUFFERATTRIBARBPROC;
  1299. // WGL_ARB_create_context (ARB #55)
  1300. WCreateContextAttribsARB: PFNWGLCREATECONTEXTATTRIBSARBPROC;
  1301. // WGL_NV_gpu_affinity
  1302. WEnumGpusNV: PFNWGLENUMGPUSNVPROC;
  1303. WEnumGpuDevicesNV: PFNWGLENUMGPUDEVICESNVPROC;
  1304. WCreateAffinityDCNV: PFNWGLCREATEAFFINITYDCNVPROC;
  1305. WEnumGpusFromAffinityDCNV: PFNWGLENUMGPUSFROMAFFINITYDCNVPROC;
  1306. WDeleteDCNV: PFNWGLDELETEDCNVPROC;
  1307. // WGL_NV_DX_interop (EXT #407)
  1308. WDXSetResourceShareHandleNV: PFNWGLDXSETRESOURCESHAREHANDLEPROC;
  1309. WDXOpenDeviceNV: PFNWGLDXOPENDEVICEPROC;
  1310. WDXCloseDeviceNV: PFNWGLDXCLOSEDEVICEPROC;
  1311. WDXRegisterObjectNV: PFNWGLDXREGISTEROBJECTPROC;
  1312. WDXUnregisterObjectNV: PFNWGLDXUNREGISTEROBJECTPROC;
  1313. WDXObjectAccessNV: PFNWGLDXOBJECTACCESSPROC;
  1314. WDXLockObjectsNV: PFNWGLDXLOCKOBJECTSPROC;
  1315. WDXUnlockObjectsNV: PFNWGLDXUNLOCKOBJECTSNVPROC;
  1316. // ###########################################################
  1317. // function and procedure definitions for
  1318. // Vendor/EXT WGL extensions
  1319. // ###########################################################
  1320. // WGL_EXT_swap_control (EXT #172)
  1321. WSwapIntervalEXT: PFNWGLSWAPINTERVALEXTPROC;
  1322. WGetSwapIntervalEXT: PFNWGLGETSWAPINTERVALEXTPROC;
  1323. // GL_NV_vertex_array_range (EXT #190)
  1324. WAllocateMemoryNV: PFNWGLALLOCATEMEMORYNVPROC;
  1325. WFreeMemoryNV: PFNWGLFREEMEMORYNVPROC;
  1326. {$ENDIF SUPPORT_WGL}
  1327. // ------------------------------ EGL function/procedure
  1328. {$IFDEF EGL_SUPPORT}
  1329. OES_depth24, OES_depth32, OES_depth_texture, OES_element_index_uint,
  1330. OES_fbo_render_mipmap, OES_get_program_binary, OES_mapbuffer,
  1331. OES_packed_depth_stencil, OES_rgb8_rgba8, OES_standard_derivatives,
  1332. OES_texture_3D, OES_texture_float, OES_texture_float_linear,
  1333. OES_texture_half_float, OES_texture_half_float_linear, OES_texture_npot,
  1334. OES_vertex_array_object, OES_vertex_half_float: boolean;
  1335. EGetError: function: EGLint;stdcall;
  1336. EGetDisplay: function(display_id: EGLNativeDisplayType): EGLDisplay;stdcall;
  1337. EInitialize: function(dpy: EGLDisplay; major: pEGLint; minor: pEGLint)
  1338. : EGLBoolean;stdcall;
  1339. ETerminate: function(dpy: EGLDisplay): EGLBoolean;stdcall;
  1340. EQueryString: function(dpy: EGLDisplay; name: EGLint): pchar;stdcall;
  1341. EGetConfigs: function(dpy: EGLDisplay; configs: pEGLConfig;
  1342. config_size: EGLint; num_config: pEGLint): EGLBoolean;stdcall;
  1343. EChooseConfig: function(dpy: EGLDisplay; attrib_list: pEGLint;
  1344. configs: pEGLConfig; config_size: EGLint; num_config: pEGLint)
  1345. : EGLBoolean;stdcall;
  1346. EGetConfigAttrib: function(dpy: EGLDisplay; config: EGLConfig;
  1347. attribute: EGLint; Value: pEGLint): EGLBoolean;stdcall;
  1348. ECreateWindowSurface: function(dpy: EGLDisplay; config: EGLConfig;
  1349. win: EGLNativeWindowType; attrib_list: pEGLint): EGLSurface;stdcall;
  1350. ECreatePbufferSurface: function(dpy: EGLDisplay; config: EGLConfig;
  1351. attrib_list: pEGLint): EGLSurface;stdcall;
  1352. ECreatePixmapSurface: function(dpy: EGLDisplay; config: EGLConfig;
  1353. pixmap: EGLNativePixmapType; attrib_list: pEGLint): EGLSurface;stdcall;
  1354. EDestroySurface: function(dpy: EGLDisplay; surface: EGLSurface): EGLBoolean;stdcall;
  1355. EQuerySurface: function(dpy: EGLDisplay; surface: EGLSurface;
  1356. attribute: EGLint; Value: pEGLint): EGLBoolean;stdcall;
  1357. EBindAPI: function(api: EGLenum): EGLBoolean;stdcall;
  1358. EQueryAPI: function: EGLenum;stdcall;
  1359. EWaitClient: function: EGLBoolean;stdcall;
  1360. EReleaseThread: function: EGLBoolean;stdcall;
  1361. ECreatePbufferFromClientBuffer: function(dpy: EGLDisplay; buftype: EGLenum;
  1362. buffer: EGLClientBuffer; config: EGLConfig; attrib_list: pEGLint)
  1363. : EGLSurface;stdcall;
  1364. ESurfaceAttrib: function(dpy: EGLDisplay; surface: EGLSurface;
  1365. attribute: EGLint; Value: EGLint): EGLBoolean;stdcall; EBindTexImage: function(dpy: EGLDisplay; surface: EGLSurface;
  1366. buffer: EGLint): EGLBoolean;stdcall;
  1367. EReleaseTexImage: function(dpy: EGLDisplay; surface: EGLSurface;
  1368. buffer: EGLint): EGLBoolean;stdcall;
  1369. ESwapInterval: function(dpy: EGLDisplay; interval: EGLint): EGLBoolean;stdcall;
  1370. ECreateContext: function(dpy: EGLDisplay; config: EGLConfig;
  1371. share_context: EGLContext; attrib_list: pEGLint): EGLContext;stdcall;
  1372. EDestroyContext: function(dpy: EGLDisplay; ctx: EGLContext): EGLBoolean;stdcall;
  1373. EMakeCurrent: function(dpy: EGLDisplay; draw: EGLSurface; read: EGLSurface;
  1374. ctx: EGLContext): EGLBoolean;stdcall;
  1375. EGetCurrentContext: function: EGLContext;stdcall;
  1376. EGetCurrentSurface: function(readdraw: EGLint): EGLSurface;stdcall;
  1377. EGetCurrentDisplay: function: EGLDisplay;stdcall;
  1378. EQueryContext: function(dpy: EGLDisplay; ctx: EGLContext; attribute: EGLint;
  1379. Value: pEGLint): EGLBoolean;stdcall;
  1380. EWaitGL: function: EGLBoolean;stdcall;
  1381. EWaitNative: function(engine: EGLint): EGLBoolean;stdcall;
  1382. ESwapBuffers: function(dpy: EGLDisplay; surface: EGLSurface): EGLBoolean;stdcall;
  1383. ECopyBuffers: function(dpy: EGLDisplay; surface: EGLSurface;
  1384. target: EGLNativePixmapType): EGLBoolean;stdcall;
  1385. {$ENDIF EGL_SUPPORT}
  1386. // ------------------------------ locate functions/procedures for OpenGL Utility (GLU) extensions'} {$ENDIF}
  1387. // ###########################################################
  1388. // locate functions and procedures for
  1389. // GLU extensions
  1390. // ###########################################################
  1391. UNurbsCallbackDataEXT: procedure(nurb: PGLUnurbs; userData: Pointer);stdcall;
  1392. UNewNurbsTessellatorEXT: function: PGLUnurbs;stdcall;
  1393. UDeleteNurbsTessellatorEXT: procedure(nurb: PGLUnurbs);stdcall;
  1394. constructor Create;
  1395. procedure Initialize(ATemporary: boolean = False);
  1396. procedure Close;
  1397. procedure CheckError;
  1398. procedure ClearError;
  1399. property IsInitialized: boolean read FInitialized;
  1400. property DebugMode: boolean read FDebug write FDebug;
  1401. end; // TGLExtensionsAndEntryPoints
  1402. // ------------------------------ Windows OpenGL (WGL) support functions
  1403. {$IFDEF MSWINDOWS} // {$IFDEF SUPPORT_WGL}
  1404. ///function wglGetProcAddress(ProcName: PAnsiChar): Pointer; stdcall; external opengl32;
  1405. function wglCopyContext(p1: HGLRC; p2: HGLRC; p3: cardinal): BOOL; stdcall; external opengl32;
  1406. function wglCreateContext(DC: HDC): HGLRC; stdcall; external opengl32;
  1407. function wglCreateLayerContext(p1: HDC; p2: integer): HGLRC; stdcall; external opengl32;
  1408. function wglDeleteContext(p1: HGLRC): BOOL; stdcall; external opengl32;
  1409. ///function wglDescribeLayerPlane(p1: HDC; p2, p3: integer; p4: cardinal; var p5: TLayerPlaneDescriptor): BOOL; stdcall; external opengl32;
  1410. function wglGetCurrentContext: HGLRC; stdcall; external opengl32;
  1411. function wglGetCurrentDC: HDC; stdcall; external opengl32;
  1412. ///function wglGetLayerPaletteEntries(p1: HDC; p2, p3, p4: integer; var pcr): integer; stdcall; external opengl32;
  1413. function wglMakeCurrent(DC: HDC; p2: HGLRC): BOOL; stdcall; external opengl32;
  1414. function wglRealizeLayerPalette(p1: HDC; p2: integer; p3: BOOL): BOOL; stdcall; external opengl32;
  1415. ///function wglSetLayerPaletteEntries(p1: HDC; p2, p3, p4: integer; var pcr): integer; stdcall; external opengl32;
  1416. function wglShareLists(p1, p2: HGLRC): BOOL; stdcall; external opengl32;
  1417. function wglSwapLayerBuffers(p1: HDC; p2: cardinal): BOOL; stdcall; external opengl32;
  1418. (*
  1419. function wglSwapMultipleBuffers(p1: UINT; const p2: PWGLSwap): DWORD; stdcall; external opengl32;
  1420. function wglUseFontBitmapsA(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall; external opengl32;
  1421. function wglUseFontOutlinesA(p1: HDC; p2, p3, p4: DWORD; p5, p6: single;
  1422. p7: integer; p8: PGlyphMetricsFloat): BOOL; stdcall; external opengl32;
  1423. function wglUseFontBitmapsW(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall; external opengl32;
  1424. function wglUseFontOutlinesW(p1: HDC; p2, p3, p4: DWORD; p5, p6: single;
  1425. p7: integer; p8: PGlyphMetricsFloat): BOOL; stdcall; external opengl32;
  1426. function wglUseFontBitmaps(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall; external opengl32 Name 'wglUseFontBitmapsA';
  1427. function wglUseFontOutlines(p1: HDC; p2, p3, p4: DWORD; p5, p6: single;
  1428. p7: integer; p8: PGlyphMetricsFloat): BOOL; stdcall; external opengl32 Name 'wglUseFontOutlinesA';
  1429. *)
  1430. {$ENDIF}
  1431. function gluErrorString(errCode: Cardinal): PAnsiChar; stdcall; external glu32;
  1432. function gluGetString(Name: Cardinal): PAnsiChar; stdcall; external glu32;
  1433. procedure gluOrtho2D(left, right, bottom, top: TGLdouble);
  1434. stdcall; external glu32;
  1435. procedure gluPerspective(fovy, aspect, zNear, zFar: TGLdouble);stdcall; external glu32;
  1436. procedure gluPickMatrix(X, y, Width, Height: TGLdouble; const Viewport: TVector4i);
  1437. stdcall; external glu32;
  1438. procedure gluLookAt(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: TGLdouble);
  1439. stdcall; external glu32;
  1440. function gluProject(objx, objy, objz: TGLdouble; const modelMatrix: TMatrix4d;
  1441. const projMatrix: TMatrix4d; const Viewport: TVector4i;
  1442. winx, winy, winz: PGLdouble): TGLint;stdcall; external glu32;
  1443. function gluUnProject(winx, winy, winz: TGLdouble; const modelMatrix: TMatrix4d;
  1444. const projMatrix: TMatrix4d; const Viewport: TVector4i;
  1445. objx, objy, objz: PGLdouble): TGLint;stdcall; external glu32;
  1446. function gluScaleImage(format: Cardinal; widthin, heightin: TGLint;
  1447. typein: Cardinal; datain: Pointer; widthout, heightout: TGLint;
  1448. typeout: Cardinal; dataout: Pointer): TGLint; stdcall; external glu32;
  1449. function gluBuild1DMipmaps(target: Cardinal; Components, Width: TGLint;
  1450. format, atype: Cardinal; Data: Pointer): TGLint; stdcall; external glu32;
  1451. function gluBuild2DMipmaps(target: Cardinal; Components, Width, Height: TGLint;
  1452. format, atype: Cardinal; Data: Pointer): TGLint; stdcall; external glu32;
  1453. function gluNewQuadric: PGLUquadric; stdcall; external glu32;
  1454. procedure gluDeleteQuadric(state: PGLUquadric);stdcall; external glu32;
  1455. procedure gluQuadricNormals(quadObject: PGLUquadric; normals: Cardinal);stdcall; external glu32;
  1456. procedure gluQuadricTexture(quadObject: PGLUquadric; textureCoords: TGLboolean);
  1457. stdcall; external glu32;
  1458. procedure gluQuadricOrientation(quadObject: PGLUquadric; orientation: Cardinal);
  1459. stdcall; external glu32;
  1460. procedure gluQuadricDrawStyle(quadObject: PGLUquadric; drawStyle: Cardinal);
  1461. stdcall; external glu32;
  1462. procedure gluCylinder(quadObject: PGLUquadric;
  1463. baseRadius, topRadius, Height: TGLdouble; slices, stacks: TGLint);
  1464. stdcall; external glu32;
  1465. procedure gluDisk(quadObject: PGLUquadric; innerRadius, outerRadius: TGLdouble;
  1466. slices, loops: TGLint);
  1467. stdcall; external glu32;
  1468. procedure gluPartialDisk(quadObject: PGLUquadric;
  1469. innerRadius, outerRadius: TGLdouble; slices, loops: TGLint;
  1470. startAngle, sweepAngle: TGLdouble);
  1471. stdcall; external glu32;
  1472. procedure gluSphere(quadObject: PGLUquadric; radius: TGLdouble;
  1473. slices, stacks: TGLint);
  1474. stdcall; external glu32;
  1475. procedure gluQuadricCallback(quadObject: PGLUquadric; which: Cardinal;
  1476. fn: TGLUQuadricErrorProc); {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl;
  1477. {$ENDIF} external glu32;
  1478. function gluNewTess: PGLUtesselator; stdcall; external glu32;
  1479. procedure gluDeleteTess(tess: PGLUtesselator);
  1480. stdcall; external glu32;
  1481. procedure gluTessBeginPolygon(tess: PGLUtesselator; polygon_data: Pointer);
  1482. {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl;
  1483. {$ENDIF} external glu32;
  1484. procedure gluTessBeginContour(tess: PGLUtesselator); stdcall; external glu32;
  1485. procedure gluTessVertex(tess: PGLUtesselator; const coords: TVector3d;
  1486. Data: Pointer);
  1487. stdcall; external glu32;
  1488. procedure gluTessEndContour(tess: PGLUtesselator); stdcall; external glu32;
  1489. procedure gluTessEndPolygon(tess: PGLUtesselator);
  1490. stdcall; external glu32;
  1491. procedure gluTessProperty(tess: PGLUtesselator; which: Cardinal;
  1492. Value: TGLdouble);stdcall; external glu32;
  1493. procedure gluTessNormal(tess: PGLUtesselator; X, y, z: TGLdouble);stdcall; external glu32;
  1494. procedure gluTessCallback(tess: PGLUtesselator; which: Cardinal; fn: Pointer);stdcall; external glu32;
  1495. procedure gluGetTessProperty(tess: PGLUtesselator; which: Cardinal; Value: PGLdouble);
  1496. stdcall; external glu32;
  1497. function gluNewNurbsRenderer: PGLUnurbs; stdcall; external glu32;
  1498. procedure gluDeleteNurbsRenderer(nobj: PGLUnurbs);
  1499. stdcall; external glu32;
  1500. procedure gluBeginSurface(nobj: PGLUnurbs);
  1501. stdcall; external glu32;
  1502. procedure gluBeginCurve(nobj: PGLUnurbs);
  1503. stdcall; external glu32;
  1504. procedure gluEndCurve(nobj: PGLUnurbs);
  1505. stdcall; external glu32;
  1506. procedure gluEndSurface(nobj: PGLUnurbs);
  1507. stdcall; external glu32;
  1508. procedure gluBeginTrim(nobj: PGLUnurbs);
  1509. stdcall; external glu32;
  1510. procedure gluEndTrim(nobj: PGLUnurbs);
  1511. stdcall; external glu32;
  1512. procedure gluPwlCurve(nobj: PGLUnurbs; Count: TGLint; points: PGLfloat; stride: TGLint; atype: Cardinal);
  1513. stdcall; external glu32;
  1514. procedure gluNurbsCurve(nobj: PGLUnurbs; nknots: TGLint; knot: PGLfloat;
  1515. stride: TGLint; ctlarray: PGLfloat; order: TGLint; atype: Cardinal);
  1516. stdcall; external glu32;
  1517. procedure gluNurbsSurface(nobj: PGLUnurbs; sknot_count: TGLint; sknot: PGLfloat;
  1518. tknot_count: TGLint; tknot: PGLfloat; s_stride, t_stride: TGLint;
  1519. ctlarray: PGLfloat; sorder, torder: TGLint; atype: Cardinal);
  1520. stdcall; external glu32;
  1521. procedure gluLoadSamplingMatrices(nobj: PGLUnurbs; const modelMatrix: TMatrix4f;
  1522. const projMatrix: TMatrix4f; const Viewport: TVector4i);
  1523. stdcall; external glu32;
  1524. procedure gluNurbsProperty(nobj: PGLUnurbs; aproperty: Cardinal; Value: TGLfloat);
  1525. stdcall; external glu32;
  1526. procedure gluGetNurbsProperty(nobj: PGLUnurbs; aproperty: Cardinal; Value: PGLfloat);
  1527. stdcall; external glu32;
  1528. procedure gluNurbsCallback(nobj: PGLUnurbs; which: Cardinal;
  1529. fn: TGLUNurbsErrorProc);
  1530. stdcall; external glu32;
  1531. procedure gluBeginPolygon(tess: PGLUtesselator);
  1532. stdcall; external glu32;
  1533. procedure gluNextContour(tess: PGLUtesselator; atype: Cardinal);
  1534. stdcall; external glu32;
  1535. procedure gluEndPolygon(tess: PGLUtesselator);
  1536. stdcall; external glu32;
  1537. function GetProcAddressGLLib(ProcName: PAnsiChar): Pointer;
  1538. function GetProcAddressGLS(ProcName: PAnsiChar): Pointer;
  1539. procedure CloseOpenGL;
  1540. function InitOpenGL: boolean;
  1541. function InitOpenGLFromLibrary(const GLName, GLUName: string): boolean;
  1542. function IsOpenGLInitialized: boolean;
  1543. // compatibility routines
  1544. procedure UnloadOpenGL;
  1545. function LoadOpenGL: boolean;
  1546. function LoadOpenGLFromLibrary(GLName, GLUName: string): boolean;
  1547. function IsOpenGLLoaded: boolean;
  1548. function IsMesaGL: boolean;
  1549. procedure TrimAndSplitVersionString(buffer: string; var max, min: integer);
  1550. function IsVersionMet(MajorVersion, MinorVersion, actualMajorVersion,
  1551. actualMinorVersion: integer): boolean;
  1552. //------------------------------------------------------------------
  1553. implementation
  1554. //------------------------------------------------------------------
  1555. const
  1556. glPrefix = 'gl';
  1557. {$IFDEF MSWINDOWS}
  1558. // ************** Windows specific ********************
  1559. const
  1560. INVALID_MODULEHANDLE = 0;
  1561. var
  1562. GLHandle: HINST;
  1563. GLUHandle: HINST;
  1564. {$IFDEF EGL_SUPPORT}
  1565. EGLHandle: HINST;
  1566. EGL2Handle: HINST;
  1567. {$ENDIF}
  1568. function GetProcAddressGLS(ProcName: PAnsiChar): Pointer;
  1569. begin
  1570. {$IFNDEF EGL_SUPPORT}
  1571. Result := wglGetProcAddress(ProcName);
  1572. {$ELSE}
  1573. Result := getProcAddress(EGL2Handle, ProcName);
  1574. {$ENDIF}
  1575. end;
  1576. {$IFDEF EGL_SUPPORT}
  1577. function GetProcAddressEGL(ProcName: PAnsiChar): Pointer;
  1578. begin
  1579. Result := getProcAddress(EGLHandle, ProcName);
  1580. end;
  1581. {$ENDIF}
  1582. {$ENDIF} //MSWINDOWS
  1583. function GetProcAddressGLLib(ProcName: PAnsiChar): Pointer;
  1584. {$IFDEF CROSSVCL}
  1585. var
  1586. UniProcName: string;
  1587. {$ENDIF}
  1588. begin
  1589. {$IFDEF CROSSVCL}
  1590. UniProcName := ProcName;
  1591. Result := getProcAddress(GLHandle, PChar(UniProcName));
  1592. {$ELSE}
  1593. Result := getProcAddress(GLHandle, ProcName);
  1594. {$ENDIF}
  1595. end;
  1596. var
  1597. vNotInformed: boolean = True;
  1598. procedure DebugCallBack(Source: Cardinal; type_: Cardinal; id: Cardinal;
  1599. severity: Cardinal; length: TGLsizei; const message: PAnsiChar;
  1600. userParam: Pointer);
  1601. stdcall;
  1602. begin
  1603. {$IFDEF USE_LOGGING}
  1604. if length > 0 then
  1605. GLSLogger.LogDebug(string(message));
  1606. {$ENDIF}
  1607. end;
  1608. procedure DebugCallBackAMD(id: Cardinal; category: Cardinal; severity: Cardinal;
  1609. length: TGLsizei; message: PAnsiChar; userParam: Pointer);
  1610. stdcall;
  1611. begin
  1612. if length > 0 then
  1613. GLSLogger.LogDebug(string(message));
  1614. end;
  1615. constructor TGLExtensionsAndEntryPoints.Create;
  1616. begin
  1617. FInitialized := False;
  1618. end;
  1619. procedure glCap;stdcall;
  1620. begin
  1621. {$IFDEF USE_LOGGING}
  1622. GLSLogger.LogError('Call OpenGL function with undefined entry point');
  1623. {$ENDIF}
  1624. Abort;
  1625. end;
  1626. function TGLExtensionsAndEntryPoints.GetAddress(const ProcName: string): Pointer;
  1627. var
  1628. vName: string;
  1629. begin
  1630. vName := glPrefix + ProcName;
  1631. Result := GetProcAddressGLS(PAnsiChar(AnsiString(vName)));
  1632. if Result = nil then
  1633. begin
  1634. vName := glPrefix + ProcName + 'ARB';
  1635. Result := GetProcAddressGLS(PAnsiChar(AnsiString(vName)));
  1636. if Result = nil then
  1637. begin
  1638. vName := glPrefix + ProcName;
  1639. Result := GetProcAddressGLLib(PAnsiChar(AnsiString(vName)));
  1640. if Result = nil then
  1641. begin
  1642. vName := glPrefix + ProcName + 'EXT';
  1643. Result := GetProcAddressGLS(PAnsiChar(AnsiString(vName)));
  1644. if Result = nil then
  1645. begin
  1646. vName := glPrefix + ProcName + 'NV';
  1647. Result := GetProcAddressGLS(PAnsiChar(AnsiString(vName)));
  1648. if Result = nil then
  1649. begin
  1650. vName := glPrefix + ProcName + 'ATI';
  1651. Result := GetProcAddressGLS(PAnsiChar(AnsiString(vName)));
  1652. if Result = nil then
  1653. begin
  1654. vName := glPrefix + ProcName + 'OES';
  1655. Result := GetProcAddressGLS(PAnsiChar(AnsiString(vName)));
  1656. if Result = nil then
  1657. Result := @glCap;
  1658. end;
  1659. end;
  1660. end;
  1661. end;
  1662. end;
  1663. end;
  1664. {$IFDEF USE_OPENGL_DEBUG}
  1665. if Result <> @glCap then
  1666. GLSLogger.LogDebug('Finded entry point of ' + vName)
  1667. else
  1668. GLSLogger.LogDebug('Can''t find entry point of ' + vName);
  1669. {$ENDIF}
  1670. end;
  1671. function TGLExtensionsAndEntryPoints.GetAddressAlt(const ProcName1,
  1672. ProcName2: string): Pointer;
  1673. begin
  1674. Result := GetAddress(ProcName1);
  1675. if Result = @glCap then
  1676. Result := GetAddress(ProcName2);
  1677. end;
  1678. function TGLExtensionsAndEntryPoints.GetAddressNoSuffixes
  1679. (const ProcName: string): Pointer;
  1680. var
  1681. vName: string;
  1682. begin
  1683. vName := glPrefix + ProcName;
  1684. Result := GetProcAddressGLS(PAnsiChar(AnsiString(vName)));
  1685. if Result = nil then
  1686. Result := @glCap;
  1687. {$IFDEF USE_OPENGL_DEBUG}
  1688. if Result <> @glCap then
  1689. GLSLogger.LogDebug('Finded entry point of ' + vName)
  1690. else
  1691. GLSLogger.LogDebug('Can''t find entry point of ' + vName);
  1692. {$ENDIF}
  1693. end;
  1694. function TGLExtensionsAndEntryPoints.GetCapAddress: Pointer;
  1695. begin
  1696. Result := @glCap;
  1697. end;
  1698. procedure TGLExtensionsAndEntryPoints.CheckError;
  1699. var
  1700. glError: Cardinal;
  1701. Count: word;
  1702. begin
  1703. if FInitialized then
  1704. try
  1705. glError := GetError();
  1706. if glError <> GL_NO_ERROR then
  1707. begin
  1708. Count := 0;
  1709. try
  1710. while (GetError <> GL_NO_ERROR) and (Count < 6) do
  1711. Inc(Count);
  1712. except
  1713. end;
  1714. if not(FDebug and ARB_debug_output) then
  1715. case glError of
  1716. GL_INVALID_ENUM:
  1717. GLSLogger.LogError(format(strOpenGLError, ['Invalid enum']));
  1718. GL_INVALID_VALUE:
  1719. GLSLogger.LogError(format(strOpenGLError, ['Invalid value']));
  1720. GL_INVALID_OPERATION:
  1721. GLSLogger.LogError(format(strOpenGLError,
  1722. ['Invalid Operation']));
  1723. GL_OUT_OF_MEMORY:
  1724. GLSLogger.LogError(format(strOpenGLError, ['Out of memory']));
  1725. end;
  1726. end;
  1727. except
  1728. GLSLogger.LogError(format(strOpenGLError, ['Exception in glGetError']));
  1729. end;
  1730. end;
  1731. procedure TGLExtensionsAndEntryPoints.ClearError;
  1732. var
  1733. n: integer;
  1734. begin
  1735. n := 0;
  1736. while (GetError <> GL_NO_ERROR) and (n < 6) do
  1737. Inc(n);
  1738. end;
  1739. function TGLExtensionsAndEntryPoints.CheckExtension(const Extension
  1740. : string): boolean;
  1741. var
  1742. ExtPos: integer;
  1743. begin
  1744. // First find the position of the extension string as substring in Buffer.
  1745. ExtPos := Pos(Extension, FBuffer);
  1746. Result := ExtPos > 0;
  1747. // Now check that it isn't only a substring of another extension.
  1748. if Result then
  1749. Result := ((ExtPos + length(Extension) - 1) = length(FBuffer)) or
  1750. (FBuffer[ExtPos + length(Extension)] = ' ');
  1751. {$IFDEF USE_OPENGL_DEBUG}
  1752. if Result then
  1753. GLSLogger.LogDebug(Extension);
  1754. {$ENDIF}
  1755. end;
  1756. procedure TGLExtensionsAndEntryPoints.Initialize(ATemporary: boolean);
  1757. var
  1758. i: integer;
  1759. numExt: TGLint;
  1760. MajorVersion, MinorVersion: integer;
  1761. begin
  1762. GLSLogger.LogNotice('Getting OpenGL entry points and extension');
  1763. {$IFDEF SUPPORT_WGL}
  1764. ReadWGLExtensions;
  1765. ReadWGLImplementationProperties;
  1766. {$ENDIF}
  1767. {$IFDEF EGL_SUPPORT}
  1768. ReadEGLExtensions;
  1769. ReadEGLImplementationProperties;
  1770. {$ENDIF}
  1771. GetString := GetAddress('GetString');
  1772. GetStringi := GetAddress('GetStringi');
  1773. GetIntegerv := GetAddress('GetIntegerv');
  1774. GetError := GetAddress('GetError');
  1775. // determine OpenGL versions supported
  1776. FBuffer := string(GetString(GL_VERSION));
  1777. TrimAndSplitVersionString(FBuffer, MajorVersion, MinorVersion);
  1778. VERSION_1_0 := True;
  1779. VERSION_1_1 := IsVersionMet(1, 1, MajorVersion, MinorVersion);
  1780. VERSION_1_2 := IsVersionMet(1, 2, MajorVersion, MinorVersion);
  1781. VERSION_1_3 := IsVersionMet(1, 3, MajorVersion, MinorVersion);
  1782. VERSION_1_4 := IsVersionMet(1, 4, MajorVersion, MinorVersion);
  1783. VERSION_1_5 := IsVersionMet(1, 5, MajorVersion, MinorVersion);
  1784. VERSION_2_0 := IsVersionMet(2, 0, MajorVersion, MinorVersion);
  1785. VERSION_2_1 := IsVersionMet(2, 1, MajorVersion, MinorVersion);
  1786. VERSION_3_0 := IsVersionMet(3, 0, MajorVersion, MinorVersion);
  1787. VERSION_3_1 := IsVersionMet(3, 1, MajorVersion, MinorVersion);
  1788. VERSION_3_2 := IsVersionMet(3, 2, MajorVersion, MinorVersion);
  1789. VERSION_3_3 := IsVersionMet(3, 3, MajorVersion, MinorVersion);
  1790. VERSION_4_0 := IsVersionMet(4, 0, MajorVersion, MinorVersion);
  1791. VERSION_4_1 := IsVersionMet(4, 1, MajorVersion, MinorVersion);
  1792. VERSION_4_2 := IsVersionMet(4, 2, MajorVersion, MinorVersion);
  1793. if vNotInformed then
  1794. begin
  1795. GLSLogger.LogNotice('');
  1796. GLSLogger.LogInfo('OpenGL rendering context information:');
  1797. GLSLogger.LogInfo(format('Renderer : %s', [GetString(GL_RENDERER)]));
  1798. GLSLogger.LogInfo(format('Vendor : %s', [GetString(GL_VENDOR)]));
  1799. GLSLogger.LogInfo(format('Version : %s', [GetString(GL_VERSION)]));
  1800. if VERSION_2_0 then
  1801. GLSLogger.LogInfo(format('GLSL version : %s',
  1802. [GetString(GL_SHADING_LANGUAGE_VERSION)]))
  1803. else
  1804. GLSLogger.LogWarning('GLSL version : not supported');
  1805. GLSLogger.LogNotice('');
  1806. vNotInformed := False;
  1807. end;
  1808. if ATemporary then
  1809. begin
  1810. FInitialized := True;
  1811. exit;
  1812. end;
  1813. // check supported OpenGL extensions
  1814. if VERSION_3_0 then
  1815. begin
  1816. FBuffer := '';
  1817. GetIntegerv(GL_NUM_EXTENSIONS, @numExt);
  1818. for i := 0 to numExt - 1 do
  1819. FBuffer := FBuffer + string(GetStringi(GL_EXTENSIONS, i)) + ' ';
  1820. end
  1821. else
  1822. FBuffer := string(GetString(GL_EXTENSIONS));
  1823. // check ARB approved OpenGL extensions
  1824. ARB_blend_func_extended := CheckExtension('GL_ARB_blend_func_extended');
  1825. ARB_color_buffer_float := CheckExtension('GL_ARB_color_buffer_float');
  1826. ARB_compatibility := CheckExtension('GL_ARB_compatibility');
  1827. ARB_copy_buffer := CheckExtension('GL_ARB_copy_buffer');
  1828. ARB_depth_buffer_float := CheckExtension('GL_ARB_depth_buffer_float');
  1829. ARB_depth_clamp := CheckExtension('GL_ARB_depth_clamp');
  1830. ARB_depth_texture := CheckExtension('GL_ARB_depth_texture');
  1831. ARB_draw_buffers := CheckExtension('GL_ARB_draw_buffers');
  1832. ARB_draw_buffers_blend := CheckExtension('GL_ARB_draw_buffers_blend');
  1833. ARB_draw_elements_base_vertex := CheckExtension('GL_ARB_draw_elements_base_vertex');
  1834. ARB_draw_indirect := CheckExtension('GL_ARB_draw_indirect');
  1835. ARB_draw_instanced := CheckExtension('GL_ARB_draw_instanced');
  1836. ARB_explicit_attrib_location := CheckExtension('GL_ARB_explicit_attrib_location');
  1837. ARB_fragment_coord_conventions := CheckExtension('GL_ARB_fragment_coord_conventions');
  1838. ARB_fragment_program := CheckExtension('GL_ARB_fragment_program');
  1839. ARB_fragment_program_shadow := CheckExtension('GL_ARB_fragment_program_shadow');
  1840. ARB_fragment_shader := CheckExtension('GL_ARB_fragment_shader');
  1841. ARB_framebuffer_object := CheckExtension('GL_ARB_framebuffer_object');
  1842. ARB_framebuffer_sRGB := CheckExtension('GL_ARB_framebuffer_sRGB');
  1843. ARB_geometry_shader4 := CheckExtension('GL_ARB_geometry_shader4');
  1844. ARB_gpu_shader_fp64 := CheckExtension('GL_ARB_gpu_shader_fp64');
  1845. ARB_gpu_shader5 := CheckExtension('GL_ARB_gpu_shader5');
  1846. ARB_half_float_pixel := CheckExtension('GL_ARB_half_float_pixel');
  1847. ARB_half_float_vertex := CheckExtension('GL_ARB_half_float_vertex');
  1848. ARB_imaging := CheckExtension('GL_ARB_imaging');
  1849. ARB_instanced_arrays := CheckExtension('GL_ARB_instanced_arrays');
  1850. ARB_map_buffer_range := CheckExtension('GL_ARB_map_buffer_range');
  1851. ARB_matrix_palette := CheckExtension('GL_ARB_matrix_palette');
  1852. ARB_multisample := CheckExtension('GL_ARB_multisample');
  1853. // ' ' to avoid collision with WGL variant
  1854. ARB_multitexture := CheckExtension('GL_ARB_multitexture');
  1855. ARB_occlusion_query := CheckExtension('GL_ARB_occlusion_query');
  1856. ARB_occlusion_query2 := CheckExtension('GL_ARB_occlusion_query2');
  1857. ARB_pixel_buffer_object := CheckExtension('GL_ARB_pixel_buffer_object');
  1858. ARB_point_parameters := CheckExtension('GL_ARB_point_parameters');
  1859. ARB_point_sprite := CheckExtension('GL_ARB_point_sprite');
  1860. ARB_provoking_vertex := CheckExtension('GL_ARB_provoking_vertex');
  1861. ARB_sample_shading := CheckExtension('GL_ARB_sample_shading');
  1862. ARB_sampler_objects := CheckExtension('GL_ARB_sampler_objects');
  1863. ARB_seamless_cube_map := CheckExtension('GL_ARB_seamless_cube_map');
  1864. ARB_shader_bit_encoding := CheckExtension('GL_ARB_shader_bit_encoding');
  1865. ARB_shader_objects := CheckExtension('GL_ARB_shader_objects');
  1866. ARB_shader_subroutine := CheckExtension('GL_ARB_shader_subroutine');
  1867. ARB_shader_texture_lod := CheckExtension('GL_ARB_shader_texture_lod');
  1868. ARB_shading_language_100 := CheckExtension('GL_ARB_shading_language_100');
  1869. ARB_shadow := CheckExtension('GL_ARB_shadow');
  1870. ARB_shadow_ambient := CheckExtension('GL_ARB_shadow_ambient');
  1871. ARB_sync := CheckExtension('GL_ARB_sync');
  1872. ARB_tessellation_shader := CheckExtension('GL_ARB_tessellation_shader');
  1873. ARB_texture_border_clamp := CheckExtension('GL_ARB_texture_border_clamp');
  1874. ARB_texture_buffer_object := CheckExtension('GL_ARB_texture_buffer_object');
  1875. ARB_texture_buffer_object_rgb32 := CheckExtension('GL_ARB_texture_buffer_object_rgb32');
  1876. ARB_texture_compression := CheckExtension('GL_ARB_texture_compression');
  1877. ARB_texture_compression_rgtc := CheckExtension('GL_ARB_texture_compression_rgtc');
  1878. ARB_texture_cube_map := CheckExtension('GL_ARB_texture_cube_map');
  1879. ARB_texture_cube_map_array := CheckExtension('GL_ARB_texture_cube_map_array');
  1880. ARB_texture_env_add := CheckExtension('GL_ARB_texture_env_add');
  1881. ARB_texture_env_combine := CheckExtension('GL_ARB_texture_env_combine');
  1882. ARB_texture_env_crossbar := CheckExtension('GL_ARB_texture_env_crossbar');
  1883. ARB_texture_env_dot3 := CheckExtension('GL_ARB_texture_env_dot3');
  1884. ARB_texture_float := CheckExtension('GL_ARB_texture_float');
  1885. ARB_texture_gather := CheckExtension('GL_ARB_texture_gather');
  1886. ARB_texture_mirrored_repeat := CheckExtension('GL_ARB_texture_mirrored_repeat');
  1887. ARB_texture_multisample := CheckExtension('GL_ARB_texture_multisample');
  1888. ARB_texture_non_power_of_two := CheckExtension('GL_ARB_texture_non_power_of_two');
  1889. ARB_texture_query_lod := CheckExtension('GL_ARB_texture_query_lod');
  1890. ARB_texture_rectangle := CheckExtension('GL_ARB_texture_rectangle');
  1891. ARB_texture_rg := CheckExtension('GL_ARB_texture_rg');
  1892. ARB_texture_rgb10_a2ui := CheckExtension('GL_ARB_texture_rgb10_a2ui');
  1893. ARB_texture_swizzle := CheckExtension('GL_ARB_texture_swizzle');
  1894. ARB_timer_query := CheckExtension('GL_ARB_timer_query');
  1895. ARB_transform_feedback2 := CheckExtension('GL_ARB_transform_feedback2');
  1896. ARB_transform_feedback3 := CheckExtension('GL_ARB_transform_feedback3');
  1897. ARB_transpose_matrix := CheckExtension('GL_ARB_transpose_matrix');
  1898. ARB_uniform_buffer_object := CheckExtension('GL_ARB_uniform_buffer_object');
  1899. ARB_vertex_array_bgra := CheckExtension('GL_ARB_vertex_array_bgra');
  1900. ARB_vertex_array_object := CheckExtension('GL_ARB_vertex_array_object');
  1901. ARB_vertex_blend := CheckExtension('GL_ARB_vertex_blend');
  1902. ARB_vertex_buffer_object := CheckExtension('GL_ARB_vertex_buffer_object');
  1903. ARB_vertex_program := CheckExtension('GL_ARB_vertex_program');
  1904. ARB_vertex_shader := CheckExtension('GL_ARB_vertex_shader');
  1905. ARB_vertex_type_2_10_10_10_rev := CheckExtension('GL_ARB_vertex_type_2_10_10_10_rev');
  1906. ARB_window_pos := CheckExtension('GL_ARB_window_pos');
  1907. ARB_texture_compression_bptc := CheckExtension('GL_ARB_texture_compression_bptc');
  1908. ARB_get_program_binary := CheckExtension('GL_ARB_get_program_binary');
  1909. ARB_separate_shader_objects := CheckExtension('GL_ARB_separate_shader_objects');
  1910. ARB_shader_stencil_export := CheckExtension('GL_ARB_shader_stencil_export');
  1911. KHR_debug := CheckExtension('GL_KHR_debug');
  1912. ARB_clear_buffer_object := CheckExtension('GL_ARB_clear_buffer_object');
  1913. ARB_compute_shader := CheckExtension('GL_ARB_compute_shader');
  1914. ARB_copy_image := CheckExtension('GL_ARB_copy_image');
  1915. ARB_debug_group := CheckExtension('GL_ARB_debug_group');
  1916. ARB_debug_label := CheckExtension('GL_ARB_debug_label');
  1917. ARB_debug_output2 := CheckExtension('GL_ARB_debug_output2');
  1918. ARB_ES3_compatibility := CheckExtension('GL_ARB_ES3_compatibility');
  1919. ARB_explicit_uniform_location := CheckExtension('GL_ARB_explicit_uniform_location');
  1920. ARB_fragment_layer_viewport := CheckExtension('GL_ARB_fragment_layer_viewport');
  1921. ARB_framebuffer_no_attachments := CheckExtension('GL_ARB_framebuffer_no_attachments');
  1922. ARB_internalformat_query2 := CheckExtension('GL_ARB_internalformat_query2');
  1923. ARB_invalidate_subdata := CheckExtension('GL_ARB_invalidate_subdata');
  1924. ARB_multi_draw_indirect := CheckExtension('GL_ARB_multi_draw_indirect');
  1925. ARB_program_interface_query := CheckExtension('GL_ARB_program_interface_query');
  1926. ARB_shader_image_size := CheckExtension('GL_ARB_shader_image_size');
  1927. ARB_shader_storage_buffer_object := CheckExtension('GL_ARB_shader_storage_buffer_object');
  1928. ARB_stencil_texturing := CheckExtension('GL_ARB_stencil_texturing');
  1929. ARB_texture_buffer_range := CheckExtension('GL_ARB_texture_buffer_range');
  1930. ARB_texture_query_levels := CheckExtension('GL_ARB_texture_query_levels');
  1931. ARB_texture_storage_multisample := CheckExtension('GL_ARB_texture_storage_multisample');
  1932. ARB_texture_view := CheckExtension('GL_ARB_texture_view');
  1933. ARB_vertex_attrib_binding := CheckExtension('GL_ARB_vertex_attrib_binding');
  1934. ARB_robustness_isolation := CheckExtension('GL_ARB_robustness_isolation');
  1935. ARB_cl_event := CheckExtension('GL_ARB_cl_event');
  1936. // check Vendor/EXT OpenGL extensions
  1937. _3DFX_multisample := CheckExtension('GL_3DFX_multisample');
  1938. _3DFX_tbuffer := CheckExtension('GL_3DFX_tbuffer');
  1939. _3DFX_texture_compression_FXT1 := CheckExtension('GL_3DFX_texture_compression_FXT1');
  1940. ATI_draw_buffers := CheckExtension('GL_ATI_draw_buffers');
  1941. ATI_texture_compression_3dc := CheckExtension('GL_ATI_texture_compression_3dc');
  1942. ATI_texture_float := CheckExtension('GL_ATI_texture_float');
  1943. ATI_texture_mirror_once := CheckExtension('GL_ATI_texture_mirror_once');
  1944. S3_s3tc := CheckExtension('GL_S3_s3tc');
  1945. EXT_abgr := CheckExtension('GL_EXT_abgr');
  1946. EXT_bgra := CheckExtension('GL_EXT_bgra');
  1947. EXT_bindable_uniform := CheckExtension('GL_EXT_bindable_uniform');
  1948. EXT_blend_color := CheckExtension('GL_EXT_blend_color');
  1949. EXT_blend_equation_separate := CheckExtension('GL_EXT_blend_equation_separate');
  1950. EXT_blend_func_separate := CheckExtension('GL_EXT_blend_func_separate');
  1951. EXT_blend_logic_op := CheckExtension('GL_EXT_blend_logic_op');
  1952. EXT_blend_minmax := CheckExtension('GL_EXT_blend_minmax');
  1953. EXT_blend_subtract := CheckExtension('GL_EXT_blend_subtract');
  1954. EXT_Cg_shader := CheckExtension('GL_EXT_Cg_shader');
  1955. EXT_clip_volume_hint := CheckExtension('GL_EXT_clip_volume_hint');
  1956. EXT_compiled_vertex_array := CheckExtension('GL_EXT_compiled_vertex_array');
  1957. EXT_copy_texture := CheckExtension('GL_EXT_copy_texture');
  1958. EXT_depth_bounds_test := CheckExtension('GL_EXT_depth_bounds_test');
  1959. EXT_draw_buffers2 := CheckExtension('GL_EXT_draw_buffers2');
  1960. EXT_draw_instanced := CheckExtension('GL_EXT_draw_instanced');
  1961. EXT_draw_range_elements := CheckExtension('GL_EXT_draw_range_elements');
  1962. EXT_fog_coord := CheckExtension('GL_EXT_fog_coord');
  1963. EXT_framebuffer_blit := CheckExtension('GL_EXT_framebuffer_blit');
  1964. EXT_framebuffer_multisample := CheckExtension('GL_EXT_framebuffer_multisample');
  1965. EXT_framebuffer_object := CheckExtension('GL_EXT_framebuffer_object');
  1966. EXT_framebuffer_sRGB := CheckExtension('GL_EXT_framebuffer_sRGB');
  1967. EXT_geometry_shader4 := CheckExtension('GL_EXT_geometry_shader4');
  1968. EXT_gpu_program_parameters := CheckExtension('GL_EXT_gpu_program_parameters');
  1969. EXT_gpu_shader4 := CheckExtension('GL_EXT_gpu_shader4');
  1970. EXT_multi_draw_arrays := CheckExtension('GL_EXT_multi_draw_arrays');
  1971. EXT_multisample := CheckExtension('GL_EXT_multisample');
  1972. EXT_packed_depth_stencil := CheckExtension('GL_EXT_packed_depth_stencil');
  1973. EXT_packed_float := CheckExtension('GL_EXT_packed_float');
  1974. EXT_packed_pixels := CheckExtension('GL_EXT_packed_pixels');
  1975. EXT_paletted_texture := CheckExtension('GL_EXT_paletted_texture');
  1976. EXT_pixel_buffer_object := CheckExtension('GL_EXT_pixel_buffer_object');
  1977. EXT_polygon_offset := CheckExtension('GL_EXT_polygon_offset');
  1978. EXT_rescale_normal := CheckExtension('GL_EXT_rescale_normal');
  1979. EXT_secondary_color := CheckExtension('GL_EXT_secondary_color');
  1980. EXT_separate_specular_color := CheckExtension('GL_EXT_separate_specular_color');
  1981. EXT_shadow_funcs := CheckExtension('GL_EXT_shadow_funcs');
  1982. EXT_shared_texture_palette := CheckExtension('GL_EXT_shared_texture_palette');
  1983. EXT_stencil_clear_tag := CheckExtension('GL_EXT_stencil_clear_tag');
  1984. EXT_stencil_two_side := CheckExtension('GL_EXT_stencil_two_side');
  1985. EXT_stencil_wrap := CheckExtension('GL_EXT_stencil_wrap');
  1986. EXT_texture3D := CheckExtension('GL_EXT_texture3D');
  1987. EXT_texture_array := CheckExtension('GL_EXT_texture_array');
  1988. EXT_texture_buffer_object := CheckExtension('GL_EXT_texture_buffer_object');
  1989. EXT_texture_compression_latc := CheckExtension('GL_EXT_texture_compression_latc');
  1990. EXT_texture_compression_rgtc := CheckExtension('GL_EXT_texture_compression_rgtc');
  1991. EXT_texture_compression_s3tc := CheckExtension('GL_EXT_texture_compression_s3tc');
  1992. EXT_texture_cube_map := CheckExtension('GL_EXT_texture_cube_map');
  1993. EXT_texture_edge_clamp := CheckExtension('GL_EXT_texture_edge_clamp');
  1994. EXT_texture_env_add := CheckExtension('GL_EXT_texture_env_add');
  1995. EXT_texture_env_combine := CheckExtension('GL_EXT_texture_env_combine');
  1996. EXT_texture_env_dot3 := CheckExtension('GL_EXT_texture_env_dot3');
  1997. EXT_texture_filter_anisotropic :=
  1998. CheckExtension('GL_EXT_texture_filter_anisotropic');
  1999. EXT_texture_integer := CheckExtension('GL_EXT_texture_integer');
  2000. EXT_texture_lod := CheckExtension('GL_EXT_texture_lod');
  2001. EXT_texture_lod_bias := CheckExtension('GL_EXT_texture_lod_bias');
  2002. EXT_texture_mirror_clamp := CheckExtension('GL_EXT_texture_mirror_clamp');
  2003. EXT_texture_object := CheckExtension('GL_EXT_texture_object');
  2004. EXT_texture_rectangle := CheckExtension('GL_EXT_texture_rectangle');
  2005. EXT_texture_sRGB := CheckExtension('GL_EXT_texture_sRGB');
  2006. EXT_texture_shared_exponent := CheckExtension('GL_EXT_texture_shared_exponent');
  2007. EXT_timer_query := CheckExtension('GL_EXT_timer_query');
  2008. EXT_transform_feedback := CheckExtension('GL_EXT_transform_feedback');
  2009. EXT_vertex_array := CheckExtension('GL_EXT_vertex_array');
  2010. EXT_texture_sRGB_decode := CheckExtension('GL_EXT_texture_sRGB_decode');
  2011. EXT_direct_state_access := CheckExtension('EXT_direct_state_access');
  2012. EXT_texture_swizzle := CheckExtension('EXT_texture_swizzle');
  2013. HP_occlusion_test := CheckExtension('GL_HP_occlusion_test');
  2014. IBM_rasterpos_clip := CheckExtension('GL_IBM_rasterpos_clip');
  2015. KTX_buffer_region := CheckExtension('GL_KTX_buffer_region');
  2016. MESA_resize_buffers := CheckExtension('GL_MESA_resize_buffers');
  2017. NV_blend_square := CheckExtension('GL_NV_blend_square');
  2018. NV_conditional_render := CheckExtension('GL_NV_conditional_render');
  2019. NV_copy_image := CheckExtension('GL_NV_copy_image');
  2020. NV_depth_buffer_float := CheckExtension('GL_NV_depth_buffer_float');
  2021. NV_fence := CheckExtension('GL_NV_fence');
  2022. NV_float_buffer := CheckExtension('GL_NV_float_buffer');
  2023. NV_fog_distance := CheckExtension('GL_NV_fog_distance');
  2024. NV_geometry_program4 := CheckExtension('GL_NV_geometry_program4');
  2025. NV_light_max_exponent := CheckExtension('GL_NV_light_max_exponent');
  2026. NV_multisample_filter_hint := CheckExtension('GL_NV_multisample_filter_hint');
  2027. NV_occlusion_query := CheckExtension('GL_NV_occlusion_query');
  2028. NV_point_sprite := CheckExtension('GL_NV_point_sprite');
  2029. NV_primitive_restart := CheckExtension('GL_NV_primitive_restart');
  2030. NV_register_combiners := CheckExtension('GL_NV_register_combiners');
  2031. NV_shader_buffer_load := CheckExtension('GL_NV_shader_buffer_load');
  2032. NV_texgen_reflection := CheckExtension('GL_NV_texgen_reflection');
  2033. NV_texture_compression_vtc := CheckExtension('GL_NV_texture_compression_vtc');
  2034. NV_texture_env_combine4 := CheckExtension('GL_NV_texture_env_combine4');
  2035. NV_texture_rectangle := CheckExtension('GL_NV_texture_rectangle');
  2036. NV_texture_shader := CheckExtension('GL_NV_texture_shader');
  2037. NV_texture_shader2 := CheckExtension('GL_NV_texture_shader2');
  2038. NV_texture_shader3 := CheckExtension('GL_NV_texture_shader3');
  2039. NV_transform_feedback := CheckExtension('GL_NV_transform_feedback');
  2040. NV_vertex_array_range := CheckExtension('GL_NV_vertex_array_range');
  2041. NV_vertex_array_range2 := CheckExtension('GL_NV_vertex_array_range2');
  2042. NV_vertex_buffer_unified_memory := CheckExtension('GL_NV_vertex_buffer_unified_memory');
  2043. NV_vertex_program := CheckExtension('GL_NV_vertex_program');
  2044. SGI_color_matrix := CheckExtension('GL_SGI_color_matrix');
  2045. SGIS_generate_mipmap := CheckExtension('GL_SGIS_generate_mipmap');
  2046. SGIS_multisample := CheckExtension('GL_SGIS_multisample');
  2047. SGIS_texture_border_clamp := CheckExtension('GL_SGIS_texture_border_clamp');
  2048. SGIS_texture_color_mask := CheckExtension('GL_SGIS_texture_color_mask');
  2049. SGIS_texture_edge_clamp := CheckExtension('GL_SGIS_texture_edge_clamp');
  2050. SGIS_texture_lod := CheckExtension('GL_SGIS_texture_lod');
  2051. SGIX_depth_texture := CheckExtension('GL_SGIX_depth_texture');
  2052. SGIX_shadow := CheckExtension('GL_SGIX_shadow');
  2053. SGIX_shadow_ambient := CheckExtension('GL_SGIX_shadow_ambient');
  2054. AMD_vertex_shader_tessellator := CheckExtension('GL_AMD_vertex_shader_tessellator');
  2055. WIN_swap_hint := CheckExtension('GL_WIN_swap_hint');
  2056. ATI_meminfo := CheckExtension('GL_ATI_meminfo');
  2057. NVX_gpu_memory_info := CheckExtension('GL_NVX_gpu_memory_info');
  2058. NV_vdpau_interop := CheckExtension('GL_NV_vdpau_interop');
  2059. NV_path_rendering := CheckExtension('GL_NV_path_rendering');
  2060. GREMEDY_frame_terminator := CheckExtension('GL_GREMEDY_frame_terminator');
  2061. GREMEDY_string_marker := CheckExtension('GL_GREMEDY_string_marker');
  2062. AMDX_debug_output := CheckExtension('AMDX_debug_output');
  2063. ARB_debug_output := CheckExtension('GL_ARB_debug_output');
  2064. BindTexture := GetAddress('BindTexture');
  2065. BlendFunc := GetAddress('BlendFunc');
  2066. Clear := GetAddress('Clear');
  2067. ClearColor := GetAddress('ClearColor');
  2068. ClearDepth := GetAddress('ClearDepth');
  2069. ClearStencil := GetAddress('ClearStencil');
  2070. ColorMask := GetAddress('ColorMask');
  2071. CopyTexImage1D := GetAddress('CopyTexImage1D');
  2072. CopyTexImage2D := GetAddress('CopyTexImage2D');
  2073. CopyTexSubImage1D := GetAddress('CopyTexSubImage1D');
  2074. CopyTexSubImage2D := GetAddress('CopyTexSubImage2D');
  2075. CullFace := GetAddress('CullFace');
  2076. DeleteTextures := GetAddress('DeleteTextures');
  2077. DepthFunc := GetAddress('DepthFunc');
  2078. DepthMask := GetAddress('DepthMask');
  2079. DepthRange := GetAddress('DepthRange');
  2080. Disable := GetAddress('Disable');
  2081. DrawArrays := GetAddress('DrawArrays');
  2082. DrawBuffer := GetAddress('DrawBuffer');
  2083. DrawElements := GetAddress('DrawElements');
  2084. Enable := GetAddress('Enable');
  2085. Finish := GetAddress('Finish');
  2086. Flush := GetAddress('Flush');
  2087. FrontFace := GetAddress('FrontFace');
  2088. GenTextures := GetAddress('GenTextures');
  2089. GetBooleanv := GetAddress('GetBooleanv');
  2090. GetDoublev := GetAddress('GetDoublev');
  2091. GetFloatv := GetAddress('GetFloatv');
  2092. GetPointerv := GetAddress('GetPointerv');
  2093. GetString := GetAddress('GetString');
  2094. GetTexImage := GetAddress('GetTexImage');
  2095. GetTexLevelParameterfv := GetAddress('GetTexLevelParameterfv');
  2096. GetTexLevelParameteriv := GetAddress('GetTexLevelParameteriv');
  2097. GetTexParameterfv := GetAddress('GetTexParameterfv');
  2098. GetTexParameteriv := GetAddress('GetTexParameteriv');
  2099. Hint := GetAddress('Hint');
  2100. IsEnabled := GetAddress('IsEnabled');
  2101. IsTexture := GetAddress('IsTexture');
  2102. LineWidth := GetAddress('LineWidth');
  2103. LogicOp := GetAddress('LogicOp');
  2104. PixelStoref := GetAddress('PixelStoref');
  2105. PixelStorei := GetAddress('PixelStorei');
  2106. PointSize := GetAddress('PointSize');
  2107. PolygonMode := GetAddress('PolygonMode');
  2108. PolygonOffset := GetAddress('PolygonOffset');
  2109. ReadBuffer := GetAddress('ReadBuffer');
  2110. ReadPixels := GetAddress('ReadPixels');
  2111. Scissor := GetAddress('Scissor');
  2112. StencilFunc := GetAddress('StencilFunc');
  2113. StencilMask := GetAddress('StencilMask');
  2114. StencilOp := GetAddress('StencilOp');
  2115. TexImage1D := GetAddress('TexImage1D');
  2116. TexImage2D := GetAddress('TexImage2D');
  2117. TexParameterf := GetAddress('TexParameterf');
  2118. TexParameterfv := GetAddress('TexParameterfv');
  2119. TexParameteri := GetAddress('TexParameteri');
  2120. TexParameteriv := GetAddress('TexParameteriv');
  2121. TexSubImage1D := GetAddress('TexSubImage1D');
  2122. TexSubImage2D := GetAddress('TexSubImage2D');
  2123. Viewport := GetAddress('Viewport');
  2124. Accum := GetAddress('Accum');
  2125. AlphaFunc := GetAddress('AlphaFunc');
  2126. AreTexturesResident := GetAddress('AreTexturesResident');
  2127. ArrayElement := GetAddress('ArrayElement');
  2128. Begin_ := GetAddress('Begin');
  2129. Bitmap := GetAddress('Bitmap');
  2130. CallList := GetAddress('CallList');
  2131. CallLists := GetAddress('CallLists');
  2132. ClearAccum := GetAddress('ClearAccum');
  2133. ClearIndex := GetAddress('ClearIndex');
  2134. ClipPlane := GetAddress('ClipPlane');
  2135. Color3b := GetAddress('Color3b');
  2136. Color3bv := GetAddress('Color3bv');
  2137. Color3d := GetAddress('Color3d');
  2138. Color3dv := GetAddress('Color3dv');
  2139. Color3f := GetAddress('Color3f');
  2140. Color3fv := GetAddress('Color3fv');
  2141. Color3i := GetAddress('Color3i');
  2142. Color3iv := GetAddress('Color3iv');
  2143. Color3s := GetAddress('Color3s');
  2144. Color3sv := GetAddress('Color3sv');
  2145. Color3ub := GetAddress('Color3ub');
  2146. Color3ubv := GetAddress('Color3ubv');
  2147. Color3ui := GetAddress('Color3ui');
  2148. Color3uiv := GetAddress('Color3uiv');
  2149. Color3us := GetAddress('Color3us');
  2150. Color3usv := GetAddress('Color3usv');
  2151. Color4b := GetAddress('Color4b');
  2152. Color4bv := GetAddress('Color4bv');
  2153. Color4d := GetAddress('Color4d');
  2154. Color4dv := GetAddress('Color4dv');
  2155. Color4f := GetAddress('Color4f');
  2156. Color4fv := GetAddress('Color4fv');
  2157. Color4i := GetAddress('Color4i');
  2158. Color4iv := GetAddress('Color4iv');
  2159. Color4s := GetAddress('Color4s');
  2160. Color4sv := GetAddress('Color4sv');
  2161. Color4ub := GetAddress('Color4ub');
  2162. Color4ubv := GetAddress('Color4ubv');
  2163. Color4ui := GetAddress('Color4ui');
  2164. Color4uiv := GetAddress('Color4uiv');
  2165. Color4us := GetAddress('Color4us');
  2166. Color4usv := GetAddress('Color4usv');
  2167. ColorMaterial := GetAddress('ColorMaterial');
  2168. ColorPointer := GetAddress('ColorPointer');
  2169. CopyPixels := GetAddress('CopyPixels');
  2170. DeleteLists := GetAddress('DeleteLists');
  2171. DisableClientState := GetAddress('DisableClientState');
  2172. DrawPixels := GetAddress('DrawPixels');
  2173. EdgeFlag := GetAddress('EdgeFlag');
  2174. EdgeFlagPointer := GetAddress('EdgeFlagPointer');
  2175. EdgeFlagv := GetAddress('EdgeFlagv');
  2176. EnableClientState := GetAddress('EnableClientState');
  2177. End_ := GetAddress('End');
  2178. EndList := GetAddress('EndList');
  2179. EvalCoord1d := GetAddress('EvalCoord1d');
  2180. EvalCoord1dv := GetAddress('EvalCoord1dv');
  2181. EvalCoord1f := GetAddress('EvalCoord1f');
  2182. EvalCoord1fv := GetAddress('EvalCoord1fv');
  2183. EvalCoord2d := GetAddress('EvalCoord2d');
  2184. EvalCoord2dv := GetAddress('EvalCoord2dv');
  2185. EvalCoord2f := GetAddress('EvalCoord2f');
  2186. EvalCoord2fv := GetAddress('EvalCoord2fv');
  2187. EvalMesh1 := GetAddress('EvalMesh1');
  2188. EvalMesh2 := GetAddress('EvalMesh2');
  2189. EvalPoint1 := GetAddress('EvalPoint1');
  2190. EvalPoint2 := GetAddress('EvalPoint2');
  2191. FeedbackBuffer := GetAddress('FeedbackBuffer');
  2192. Fogf := GetAddress('Fogf');
  2193. Fogfv := GetAddress('Fogfv');
  2194. Fogi := GetAddress('Fogi');
  2195. Fogiv := GetAddress('Fogiv');
  2196. Frustum := GetAddress('Frustum');
  2197. GenLists := GetAddress('GenLists');
  2198. GetClipPlane := GetAddress('GetClipPlane');
  2199. GetLightfv := GetAddress('GetLightfv');
  2200. GetLightiv := GetAddress('GetLightiv');
  2201. GetMapdv := GetAddress('GetMapdv');
  2202. GetMapfv := GetAddress('GetMapfv');
  2203. GetMapiv := GetAddress('GetMapiv');
  2204. GetMaterialfv := GetAddress('GetMaterialfv');
  2205. GetMaterialiv := GetAddress('GetMaterialiv');
  2206. GetPixelMapfv := GetAddress('GetPixelMapfv');
  2207. GetPixelMapuiv := GetAddress('GetPixelMapuiv');
  2208. GetPixelMapusv := GetAddress('GetPixelMapusv');
  2209. GetPolygonStipple := GetAddress('GetPolygonStipple');
  2210. GetTexEnvfv := GetAddress('GetTexEnvfv');
  2211. GetTexEnviv := GetAddress('GetTexEnviv');
  2212. GetTexGendv := GetAddress('GetTexGendv');
  2213. GetTexGenfv := GetAddress('GetTexGenfv');
  2214. GetTexGeniv := GetAddress('GetTexGeniv');
  2215. IndexMask := GetAddress('IndexMask');
  2216. IndexPointer := GetAddress('IndexPointer');
  2217. Indexd := GetAddress('Indexd');
  2218. Indexdv := GetAddress('Indexdv');
  2219. Indexf := GetAddress('Indexf');
  2220. Indexfv := GetAddress('Indexfv');
  2221. Indexi := GetAddress('Indexi');
  2222. Indexiv := GetAddress('Indexiv');
  2223. Indexs := GetAddress('Indexs');
  2224. Indexsv := GetAddress('Indexsv');
  2225. Indexub := GetAddress('Indexub');
  2226. Indexubv := GetAddress('Indexubv');
  2227. InitNames := GetAddress('InitNames');
  2228. InterleavedArrays := GetAddress('InterleavedArrays');
  2229. IsList := GetAddress('IsList');
  2230. LightModelf := GetAddress('LightModelf');
  2231. LightModelfv := GetAddress('LightModelfv');
  2232. LightModeli := GetAddress('LightModeli');
  2233. LightModeliv := GetAddress('LightModeliv');
  2234. Lightf := GetAddress('Lightf');
  2235. Lightfv := GetAddress('Lightfv');
  2236. Lighti := GetAddress('Lighti');
  2237. Lightiv := GetAddress('Lightiv');
  2238. LineStipple := GetAddress('LineStipple');
  2239. ListBase := GetAddress('ListBase');
  2240. LoadIdentity := GetAddress('LoadIdentity');
  2241. LoadMatrixd := GetAddress('LoadMatrixd');
  2242. LoadMatrixf := GetAddress('LoadMatrixf');
  2243. LoadName := GetAddress('LoadName');
  2244. Map1d := GetAddress('Map1d');
  2245. Map1f := GetAddress('Map1f');
  2246. Map2d := GetAddress('Map2d');
  2247. Map2f := GetAddress('Map2f');
  2248. MapGrid1d := GetAddress('MapGrid1d');
  2249. MapGrid1f := GetAddress('MapGrid1f');
  2250. MapGrid2d := GetAddress('MapGrid2d');
  2251. MapGrid2f := GetAddress('MapGrid2f');
  2252. Materialf := GetAddress('Materialf');
  2253. Materialfv := GetAddress('Materialfv');
  2254. Materiali := GetAddress('Materiali');
  2255. Materialiv := GetAddress('Materialiv');
  2256. MatrixMode := GetAddress('MatrixMode');
  2257. MultMatrixd := GetAddress('MultMatrixd');
  2258. MultMatrixf := GetAddress('MultMatrixf');
  2259. NewList := GetAddress('NewList');
  2260. Normal3b := GetAddress('Normal3b');
  2261. Normal3bv := GetAddress('Normal3bv');
  2262. Normal3d := GetAddress('Normal3d');
  2263. Normal3dv := GetAddress('Normal3dv');
  2264. Normal3f := GetAddress('Normal3f');
  2265. Normal3fv := GetAddress('Normal3fv');
  2266. Normal3i := GetAddress('Normal3i');
  2267. Normal3iv := GetAddress('Normal3iv');
  2268. Normal3s := GetAddress('Normal3s');
  2269. Normal3sv := GetAddress('Normal3sv');
  2270. NormalPointer := GetAddress('NormalPointer');
  2271. Ortho := GetAddress('Ortho');
  2272. PassThrough := GetAddress('PassThrough');
  2273. PixelMapfv := GetAddress('PixelMapfv');
  2274. PixelMapuiv := GetAddress('PixelMapuiv');
  2275. PixelMapusv := GetAddress('PixelMapusv');
  2276. PixelTransferf := GetAddress('PixelTransferf');
  2277. PixelTransferi := GetAddress('PixelTransferi');
  2278. PixelZoom := GetAddress('PixelZoom');
  2279. PolygonStipple := GetAddress('PolygonStipple');
  2280. PopAttrib := GetAddress('PopAttrib');
  2281. PopClientAttrib := GetAddress('PopClientAttrib');
  2282. PopMatrix := GetAddress('PopMatrix');
  2283. PopName := GetAddress('PopName');
  2284. PrioritizeTextures := GetAddress('PrioritizeTextures');
  2285. PushAttrib := GetAddress('PushAttrib');
  2286. PushClientAttrib := GetAddress('PushClientAttrib');
  2287. PushMatrix := GetAddress('PushMatrix');
  2288. PushName := GetAddress('PushName');
  2289. RasterPos2d := GetAddress('RasterPos2d');
  2290. RasterPos2dv := GetAddress('RasterPos2dv');
  2291. RasterPos2f := GetAddress('RasterPos2f');
  2292. RasterPos2fv := GetAddress('RasterPos2fv');
  2293. RasterPos2i := GetAddress('RasterPos2i');
  2294. RasterPos2iv := GetAddress('RasterPos2iv');
  2295. RasterPos2s := GetAddress('RasterPos2s');
  2296. RasterPos2sv := GetAddress('RasterPos2sv');
  2297. RasterPos3d := GetAddress('RasterPos3d');
  2298. RasterPos3dv := GetAddress('RasterPos3dv');
  2299. RasterPos3f := GetAddress('RasterPos3f');
  2300. RasterPos3fv := GetAddress('RasterPos3fv');
  2301. RasterPos3i := GetAddress('RasterPos3i');
  2302. RasterPos3iv := GetAddress('RasterPos3iv');
  2303. RasterPos3s := GetAddress('RasterPos3s');
  2304. RasterPos3sv := GetAddress('RasterPos3sv');
  2305. RasterPos4d := GetAddress('RasterPos4d');
  2306. RasterPos4dv := GetAddress('RasterPos4dv');
  2307. RasterPos4f := GetAddress('RasterPos4f');
  2308. RasterPos4fv := GetAddress('RasterPos4fv');
  2309. RasterPos4i := GetAddress('RasterPos4i');
  2310. RasterPos4iv := GetAddress('RasterPos4iv');
  2311. RasterPos4s := GetAddress('RasterPos4s');
  2312. RasterPos4sv := GetAddress('RasterPos4sv');
  2313. Rectd := GetAddress('Rectd');
  2314. Rectdv := GetAddress('Rectdv');
  2315. Rectf := GetAddress('Rectf');
  2316. Rectfv := GetAddress('Rectfv');
  2317. Recti := GetAddress('Recti');
  2318. Rectiv := GetAddress('Rectiv');
  2319. Rects := GetAddress('Rects');
  2320. Rectsv := GetAddress('Rectsv');
  2321. RenderMode := GetAddress('RenderMode');
  2322. Rotated := GetAddress('Rotated');
  2323. Rotatef := GetAddress('Rotatef');
  2324. Scaled := GetAddress('Scaled');
  2325. Scalef := GetAddress('Scalef');
  2326. SelectBuffer := GetAddress('SelectBuffer');
  2327. ShadeModel := GetAddress('ShadeModel');
  2328. TexCoord1d := GetAddress('TexCoord1d');
  2329. TexCoord1dv := GetAddress('TexCoord1dv');
  2330. TexCoord1f := GetAddress('TexCoord1f');
  2331. TexCoord1fv := GetAddress('TexCoord1fv');
  2332. TexCoord1i := GetAddress('TexCoord1i');
  2333. TexCoord1iv := GetAddress('TexCoord1iv');
  2334. TexCoord1s := GetAddress('TexCoord1s');
  2335. TexCoord1sv := GetAddress('TexCoord1sv');
  2336. TexCoord2d := GetAddress('TexCoord2d');
  2337. TexCoord2dv := GetAddress('TexCoord2dv');
  2338. TexCoord2f := GetAddress('TexCoord2f');
  2339. TexCoord2fv := GetAddress('TexCoord2fv');
  2340. TexCoord2i := GetAddress('TexCoord2i');
  2341. TexCoord2iv := GetAddress('TexCoord2iv');
  2342. TexCoord2s := GetAddress('TexCoord2s');
  2343. TexCoord2sv := GetAddress('TexCoord2sv');
  2344. TexCoord3d := GetAddress('TexCoord3d');
  2345. TexCoord3dv := GetAddress('TexCoord3dv');
  2346. TexCoord3f := GetAddress('TexCoord3f');
  2347. TexCoord3fv := GetAddress('TexCoord3fv');
  2348. TexCoord3i := GetAddress('TexCoord3i');
  2349. TexCoord3iv := GetAddress('TexCoord3iv');
  2350. TexCoord3s := GetAddress('TexCoord3s');
  2351. TexCoord3sv := GetAddress('TexCoord3sv');
  2352. TexCoord4d := GetAddress('TexCoord4d');
  2353. TexCoord4dv := GetAddress('TexCoord4dv');
  2354. TexCoord4f := GetAddress('TexCoord4f');
  2355. TexCoord4fv := GetAddress('TexCoord4fv');
  2356. TexCoord4i := GetAddress('TexCoord4i');
  2357. TexCoord4iv := GetAddress('TexCoord4iv');
  2358. TexCoord4s := GetAddress('TexCoord4s');
  2359. TexCoord4sv := GetAddress('TexCoord4sv');
  2360. TexCoordPointer := GetAddress('TexCoordPointer');
  2361. TexEnvf := GetAddress('TexEnvf');
  2362. TexEnvfv := GetAddress('TexEnvfv');
  2363. TexEnvi := GetAddress('TexEnvi');
  2364. TexEnviv := GetAddress('TexEnviv');
  2365. TexGend := GetAddress('TexGend');
  2366. TexGendv := GetAddress('TexGendv');
  2367. TexGenf := GetAddress('TexGenf');
  2368. TexGenfv := GetAddress('TexGenfv');
  2369. TexGeni := GetAddress('TexGeni');
  2370. TexGeniv := GetAddress('TexGeniv');
  2371. Translated := GetAddress('Translated');
  2372. Translatef := GetAddress('Translatef');
  2373. Vertex2d := GetAddress('Vertex2d');
  2374. Vertex2dv := GetAddress('Vertex2dv');
  2375. Vertex2f := GetAddress('Vertex2f');
  2376. Vertex2fv := GetAddress('Vertex2fv');
  2377. Vertex2i := GetAddress('Vertex2i');
  2378. Vertex2iv := GetAddress('Vertex2iv');
  2379. Vertex2s := GetAddress('Vertex2s');
  2380. Vertex2sv := GetAddress('Vertex2sv');
  2381. Vertex3d := GetAddress('Vertex3d');
  2382. Vertex3dv := GetAddress('Vertex3dv');
  2383. Vertex3f := GetAddress('Vertex3f');
  2384. Vertex3fv := GetAddress('Vertex3fv');
  2385. Vertex3i := GetAddress('Vertex3i');
  2386. Vertex3iv := GetAddress('Vertex3iv');
  2387. Vertex3s := GetAddress('Vertex3s');
  2388. Vertex3sv := GetAddress('Vertex3sv');
  2389. Vertex4d := GetAddress('Vertex4d');
  2390. Vertex4dv := GetAddress('Vertex4dv');
  2391. Vertex4f := GetAddress('Vertex4f');
  2392. Vertex4fv := GetAddress('Vertex4fv');
  2393. Vertex4i := GetAddress('Vertex4i');
  2394. Vertex4iv := GetAddress('Vertex4iv');
  2395. Vertex4s := GetAddress('Vertex4s');
  2396. Vertex4sv := GetAddress('Vertex4sv');
  2397. VertexPointer := GetAddress('VertexPointer');
  2398. BlendColor := GetAddress('BlendColor');
  2399. BlendEquation := GetAddress('BlendEquation');
  2400. DrawRangeElements := GetAddress('DrawRangeElements');
  2401. TexImage3D := GetAddress('TexImage3D');
  2402. TexSubImage3D := GetAddress('TexSubImage3D');
  2403. CopyTexSubImage3D := GetAddress('CopyTexSubImage3D');
  2404. IsRenderbuffer := GetAddress('IsRenderbuffer');
  2405. BindRenderbuffer := GetAddress('BindRenderbuffer');
  2406. DeleteRenderbuffers := GetAddress('DeleteRenderbuffers');
  2407. GenRenderbuffers := GetAddress('GenRenderbuffers');
  2408. RenderbufferStorage := GetAddress('RenderbufferStorage');
  2409. RenderbufferStorageMultisample :=
  2410. GetAddress('RenderbufferStorageMultisample');
  2411. GetRenderbufferParameteriv := GetAddress('GetRenderbufferParameteriv');
  2412. IsFramebuffer := GetAddress('IsFramebuffer');
  2413. BindFramebuffer := GetAddress('BindFramebuffer');
  2414. DeleteFramebuffers := GetAddress('DeleteFramebuffers');
  2415. GenFramebuffers := GetAddress('GenFramebuffers');
  2416. CheckFramebufferStatus := GetAddress('CheckFramebufferStatus');
  2417. FramebufferTexture := GetAddress('FramebufferTexture');
  2418. FramebufferTexture1D := GetAddress('FramebufferTexture1D');
  2419. FramebufferTexture2D := GetAddress('FramebufferTexture2D');
  2420. FramebufferTexture3D := GetAddress('FramebufferTexture3D');
  2421. FramebufferTextureLayer := GetAddress('FramebufferTextureLayer');
  2422. FramebufferTextureFace := GetAddress('FramebufferTextureFace');
  2423. FramebufferRenderbuffer := GetAddress('FramebufferRenderbuffer');
  2424. GetFramebufferAttachmentParameteriv :=
  2425. GetAddress('GetFramebufferAttachmentParameteriv');
  2426. BlitFramebuffer := GetAddress('BlitFramebuffer');
  2427. GenerateMipmap := GetAddress('GenerateMipmap');
  2428. ClearBufferiv := GetAddress('ClearBufferiv');
  2429. ClearBufferuiv := GetAddress('ClearBufferuiv');
  2430. ClearBufferfv := GetAddress('ClearBufferfv');
  2431. ClearBufferfi := GetAddress('ClearBufferfi');
  2432. BlendFuncSeparate := GetAddress('BlendFuncSeparate');
  2433. MultiDrawArrays := GetAddress('MultiDrawArrays');
  2434. MultiDrawElements := GetAddress('MultiDrawElements');
  2435. PointParameterf := GetAddress('PointParameterf');
  2436. PointParameterfv := GetAddress('PointParameterfv');
  2437. PointParameteri := GetAddress('PointParameteri');
  2438. PointParameteriv := GetAddress('PointParameteriv');
  2439. LockArrays := GetAddress('LockArrays');
  2440. UnlockArrays := GetAddress('UnlockArrays');
  2441. BindBuffer := GetAddress('BindBuffer');
  2442. DeleteBuffers := GetAddress('DeleteBuffers');
  2443. GenBuffers := GetAddress('GenBuffers');
  2444. IsBuffer := GetAddress('IsBuffer');
  2445. BufferData := GetAddress('BufferData');
  2446. BufferSubData := GetAddress('BufferSubData');
  2447. GetBufferSubData := GetAddress('GetBufferSubData');
  2448. MapBuffer := GetAddress('MapBuffer');
  2449. UnmapBuffer := GetAddress('UnmapBuffer');
  2450. GetBufferParameteriv := GetAddress('GetBufferParameteriv');
  2451. GetBufferPointerv := GetAddress('GetBufferPointerv');
  2452. MapBufferRange := GetAddress('MapBufferRange');
  2453. FlushMappedBufferRange := GetAddress('FlushMappedBufferRange');
  2454. BindBufferRange := GetAddress('BindBufferRange');
  2455. BindBufferOffset := GetAddress('BindBufferOffset');
  2456. BindBufferBase := GetAddress('BindBufferBase');
  2457. BeginTransformFeedback := GetAddress('BeginTransformFeedback');
  2458. EndTransformFeedback := GetAddress('EndTransformFeedback');
  2459. TransformFeedbackVaryings := GetAddress('TransformFeedbackVaryings');
  2460. GetTransformFeedbackVarying := GetAddress('GetTransformFeedbackVarying');
  2461. TransformFeedbackAttribs := GetAddress('TransformFeedbackAttribs');
  2462. TransformFeedbackVaryingsNV := GetAddressNoSuffixes('TransformFeedbackVaryingsNV');
  2463. TexBuffer := GetAddress('TexBuffer');
  2464. BindVertexArray := GetAddress('BindVertexArray');
  2465. DeleteVertexArrays := GetAddress('DeleteVertexArrays');
  2466. GenVertexArrays := GetAddress('GenVertexArrays');
  2467. IsVertexArray := GetAddress('IsVertexArray');
  2468. FlushVertexArrayRangeNV := GetAddressNoSuffixes('FlushVertexArrayRangeNV');
  2469. VertexArrayRangeNV := GetAddressNoSuffixes('VertexArrayRangeNV');
  2470. CopyBufferSubData := GetAddress('CopyBufferSubData');
  2471. UniformBuffer := GetAddress('UniformBuffer');
  2472. GetUniformBufferSize := GetAddress('GetUniformBufferSize');
  2473. GetUniformOffset := GetAddress('GetUniformOffset');
  2474. PrimitiveRestartIndex := GetAddress('PrimitiveRestartIndex');
  2475. DrawElementsBaseVertex := GetAddress('DrawElementsBaseVertex');
  2476. DrawRangeElementsBaseVertex := GetAddress('DrawRangeElementsBaseVertex');
  2477. DrawElementsInstancedBaseVertex :=
  2478. GetAddress('DrawElementsInstancedBaseVertex');
  2479. MultiDrawElementsBaseVertex := GetAddress('MultiDrawElementsBaseVertex');
  2480. DrawArraysInstanced := GetAddress('DrawArraysInstanced');
  2481. DrawElementsInstanced := GetAddress('DrawElementsInstanced');
  2482. VertexAttrib1d := GetAddress('VertexAttrib1d');
  2483. VertexAttrib1dv := GetAddress('VertexAttrib1dv');
  2484. VertexAttrib1f := GetAddress('VertexAttrib1f');
  2485. VertexAttrib1fv := GetAddress('VertexAttrib1fv');
  2486. VertexAttrib1s := GetAddress('VertexAttrib1s');
  2487. VertexAttrib1sv := GetAddress('VertexAttrib1sv');
  2488. VertexAttrib2d := GetAddress('VertexAttrib2d');
  2489. VertexAttrib2dv := GetAddress('VertexAttrib2dv');
  2490. VertexAttrib2f := GetAddress('VertexAttrib2f');
  2491. VertexAttrib2fv := GetAddress('VertexAttrib2fv');
  2492. VertexAttrib2s := GetAddress('VertexAttrib2s');
  2493. VertexAttrib2sv := GetAddress('VertexAttrib2sv');
  2494. VertexAttrib3d := GetAddress('VertexAttrib3d');
  2495. VertexAttrib3dv := GetAddress('VertexAttrib3dv');
  2496. VertexAttrib3f := GetAddress('VertexAttrib3f');
  2497. VertexAttrib3fv := GetAddress('VertexAttrib3fv');
  2498. VertexAttrib3s := GetAddress('VertexAttrib3s');
  2499. VertexAttrib3sv := GetAddress('VertexAttrib3sv');
  2500. VertexAttrib4Nbv := GetAddress('VertexAttrib4Nbv');
  2501. VertexAttrib4Niv := GetAddress('VertexAttrib4Niv');
  2502. VertexAttrib4Nsv := GetAddress('VertexAttrib4Nsv');
  2503. VertexAttrib4Nub := GetAddress('VertexAttrib4Nub');
  2504. VertexAttrib4Nubv := GetAddress('VertexAttrib4Nubv');
  2505. VertexAttrib4Nuiv := GetAddress('VertexAttrib4Nuiv');
  2506. VertexAttrib4Nusv := GetAddress('VertexAttrib4Nusv');
  2507. VertexAttrib4bv := GetAddress('VertexAttrib4bv');
  2508. VertexAttrib4d := GetAddress('VertexAttrib4d');
  2509. VertexAttrib4dv := GetAddress('VertexAttrib4dv');
  2510. VertexAttrib4f := GetAddress('VertexAttrib4f');
  2511. VertexAttrib4fv := GetAddress('VertexAttrib4fv');
  2512. VertexAttrib4iv := GetAddress('VertexAttrib4iv');
  2513. VertexAttrib4s := GetAddress('VertexAttrib4s');
  2514. VertexAttrib4sv := GetAddress('VertexAttrib4sv');
  2515. VertexAttrib4ubv := GetAddress('VertexAttrib4ubv');
  2516. VertexAttrib4uiv := GetAddress('VertexAttrib4uiv');
  2517. VertexAttrib4usv := GetAddress('VertexAttrib4usv');
  2518. VertexAttribPointer := GetAddress('VertexAttribPointer');
  2519. VertexAttribI1i := GetAddress('VertexAttribI1i');
  2520. VertexAttribI2i := GetAddress('VertexAttribI2i');
  2521. VertexAttribI3i := GetAddress('VertexAttribI3i');
  2522. VertexAttribI4i := GetAddress('VertexAttribI4i');
  2523. VertexAttribI1ui := GetAddress('VertexAttribI1ui');
  2524. VertexAttribI2ui := GetAddress('VertexAttribI2ui');
  2525. VertexAttribI3ui := GetAddress('VertexAttribI3ui');
  2526. VertexAttribI4ui := GetAddress('VertexAttribI4ui');
  2527. VertexAttribI1iv := GetAddress('VertexAttribI1iv');
  2528. VertexAttribI2iv := GetAddress('VertexAttribI2iv');
  2529. VertexAttribI3iv := GetAddress('VertexAttribI3iv');
  2530. VertexAttribI4iv := GetAddress('VertexAttribI4iv');
  2531. VertexAttribI1uiv := GetAddress('VertexAttribI1uiv');
  2532. VertexAttribI2uiv := GetAddress('VertexAttribI2uiv');
  2533. VertexAttribI3uiv := GetAddress('VertexAttribI3uiv');
  2534. VertexAttribI4uiv := GetAddress('VertexAttribI4uiv');
  2535. VertexAttribI4bv := GetAddress('VertexAttribI4bv');
  2536. VertexAttribI4sv := GetAddress('VertexAttribI4sv');
  2537. VertexAttribI4ubv := GetAddress('VertexAttribI4ubv');
  2538. VertexAttribI4usv := GetAddress('VertexAttribI4usv');
  2539. VertexAttribIPointer := GetAddress('VertexAttribIPointer');
  2540. GetVertexAttribIiv := GetAddress('GetVertexAttribIiv');
  2541. GetVertexAttribIuiv := GetAddress('GetVertexAttribIuiv');
  2542. EnableVertexAttribArray := GetAddress('EnableVertexAttribArray');
  2543. DisableVertexAttribArray := GetAddress('DisableVertexAttribArray');
  2544. VertexAttribDivisor := GetAddress('VertexAttribDivisor');
  2545. GenQueries := GetAddress('GenQueries');
  2546. DeleteQueries := GetAddress('DeleteQueries');
  2547. IsQuery := GetAddress('IsQuery');
  2548. BeginQuery := GetAddress('BeginQuery');
  2549. EndQuery := GetAddress('EndQuery');
  2550. GetQueryiv := GetAddress('GetQueryiv');
  2551. GetQueryObjectiv := GetAddress('GetQueryObjectiv');
  2552. GetQueryObjectuiv := GetAddress('GetQueryObjectuiv');
  2553. QueryCounter := GetAddress('QueryCounter');
  2554. GetQueryObjecti64v := GetAddress('GetQueryObjecti64v');
  2555. GetQueryObjectui64v := GetAddress('GetQueryObjectui64v');
  2556. DeleteObject := GetAddress('DeleteObject');
  2557. GetHandle := GetAddress('GetHandle');
  2558. DetachShader := GetAddressAlt('DetachShader', 'DetachObject');
  2559. CreateShader := GetAddressAlt('CreateShader', 'CreateShaderObject');
  2560. ShaderSource := GetAddress('ShaderSource');
  2561. CompileShader := GetAddress('CompileShader');
  2562. CreateProgram := GetAddressAlt('CreateProgram', 'CreateProgramObject');
  2563. AttachShader := GetAddressAlt('AttachShader', 'AttachObject');
  2564. LinkProgram := GetAddress('LinkProgram');
  2565. UseProgram := GetAddressAlt('UseProgram', 'UseProgramObject');
  2566. ValidateProgram := GetAddress('ValidateProgram');
  2567. Uniform1f := GetAddress('Uniform1f');
  2568. Uniform2f := GetAddress('Uniform2f');
  2569. Uniform3f := GetAddress('Uniform3f');
  2570. Uniform4f := GetAddress('Uniform4f');
  2571. Uniform1i := GetAddress('Uniform1i');
  2572. Uniform2i := GetAddress('Uniform2i');
  2573. Uniform3i := GetAddress('Uniform3i');
  2574. Uniform4i := GetAddress('Uniform4i');
  2575. Uniform1fv := GetAddress('Uniform1fv');
  2576. Uniform2fv := GetAddress('Uniform2fv');
  2577. Uniform3fv := GetAddress('Uniform3fv');
  2578. Uniform4fv := GetAddress('Uniform4fv');
  2579. Uniform1iv := GetAddress('Uniform1iv');
  2580. Uniform2iv := GetAddress('Uniform2iv');
  2581. Uniform3iv := GetAddress('Uniform3iv');
  2582. Uniform4iv := GetAddress('Uniform4iv');
  2583. Uniform1ui := GetAddress('Uniform1ui');
  2584. Uniform2ui := GetAddress('Uniform2ui');
  2585. Uniform3ui := GetAddress('Uniform3ui');
  2586. Uniform4ui := GetAddress('Uniform4ui');
  2587. Uniform1uiv := GetAddress('Uniform1uiv');
  2588. Uniform2uiv := GetAddress('Uniform2uiv');
  2589. Uniform3uiv := GetAddress('Uniform3uiv');
  2590. Uniform4uiv := GetAddress('Uniform4uiv');
  2591. GetUniformuiv := GetAddress('GetUniformuiv');
  2592. UniformMatrix2fv := GetAddress('UniformMatrix2fv');
  2593. UniformMatrix3fv := GetAddress('UniformMatrix3fv');
  2594. UniformMatrix4fv := GetAddress('UniformMatrix4fv');
  2595. BindFragDataLocation := GetAddress('BindFragDataLocation');
  2596. GetFragDataLocation := GetAddress('GetFragDataLocation');
  2597. ClampColor := GetAddress('ClampColor');
  2598. ColorMaski := GetAddress('ColorMaski');
  2599. GetBooleani_v := GetAddress('GetBooleani_v');
  2600. GetIntegeri_v := GetAddress('GetIntegeri_v');
  2601. Enablei := GetAddress('Enablei');
  2602. Disablei := GetAddress('Disablei');
  2603. IsEnabledi := GetAddress('IsEnabledi');
  2604. BindFragDataLocationIndexed := GetAddress('BindFragDataLocationIndexed');
  2605. GetFragDataIndex := GetAddress('GetFragDataIndex');
  2606. GetObjectParameterfv := GetAddress('GetObjectParameterfv');
  2607. GetObjectParameteriv := GetAddress('GetObjectParameteriv');
  2608. GetAttachedObjects := GetAddress('GetAttachedObjects');
  2609. GetActiveAttrib := GetAddress('GetActiveAttrib');
  2610. GetActiveUniform := GetAddress('GetActiveUniform');
  2611. GetAttachedShaders := GetAddress('GetAttachedShaders');
  2612. GetAttribLocation := GetAddress('GetAttribLocation');
  2613. GetProgramiv := GetAddressAlt('GetProgramiv', 'GetObjectParameteriv');
  2614. GetProgramInfoLog := GetAddress('GetProgramInfoLog');
  2615. GetShaderiv := GetAddressAlt('GetShaderiv', 'GetObjectParameteriv');
  2616. GetInfoLog := GetAddress('GetInfoLog');
  2617. GetShaderInfoLog := GetAddress('GetShaderInfoLog');
  2618. GetShaderSource := GetAddress('GetShaderSource');
  2619. GetUniformLocation := GetAddress('GetUniformLocation');
  2620. GetUniformfv := GetAddress('GetUniformfv');
  2621. GetUniformiv := GetAddress('GetUniformiv');
  2622. GetVertexAttribdv := GetAddress('GetVertexAttribdv');
  2623. GetVertexAttribfv := GetAddress('GetVertexAttribfv');
  2624. GetVertexAttribiv := GetAddress('GetVertexAttribiv');
  2625. GetVertexAttribPointerv := GetAddress('GetVertexAttribPointerv');
  2626. IsProgram := GetAddress('IsProgram');
  2627. IsShader := GetAddress('IsShader');
  2628. GetUniformLocation := GetAddress('GetUniformLocation');
  2629. BindAttribLocation := GetAddress('BindAttribLocation');
  2630. GetVaryingLocation := GetAddress('GetVaryingLocation');
  2631. GetActiveVarying := GetAddress('GetActiveVarying');
  2632. ActiveVarying := GetAddress('ActiveVarying');
  2633. GetUniformIndices := GetAddress('GetUniformIndices');
  2634. GetActiveUniformsiv := GetAddress('GetActiveUniformsiv');
  2635. GetActiveUniformName := GetAddress('GetActiveUniformName');
  2636. GetUniformBlockIndex := GetAddress('GetUniformBlockIndex');
  2637. GetActiveUniformBlockiv := GetAddress('GetActiveUniformBlockiv');
  2638. GetActiveUniformBlockName := GetAddress('GetActiveUniformBlockName');
  2639. UniformBlockBinding := GetAddress('UniformBlockBinding');
  2640. GetProgramBinary := GetAddress('GetProgramBinary');
  2641. ProgramBinary := GetAddress('ProgramBinary');
  2642. UseProgramStages := GetAddress('UseProgramStages');
  2643. ActiveShaderProgram := GetAddress('ActiveShaderProgram');
  2644. CreateShaderProgramv := GetAddress('CreateShaderProgramv');
  2645. BindProgramPipeline := GetAddress('BindProgramPipeline');
  2646. DeleteProgramPipelines := GetAddress('DeleteProgramPipelines');
  2647. GenProgramPipelines := GetAddress('GenProgramPipelines');
  2648. IsProgramPipeline := GetAddress('IsProgramPipeline');
  2649. GetProgramPipelineiv := GetAddress('GetProgramPipelineiv');
  2650. ProgramUniform1i := GetAddress('ProgramUniform1i');
  2651. ProgramUniform1iv := GetAddress('ProgramUniform1iv');
  2652. ProgramUniform1f := GetAddress('ProgramUniform1f');
  2653. ProgramUniform1fv := GetAddress('ProgramUniform1fv');
  2654. ProgramUniform1d := GetAddress('ProgramUniform1d');
  2655. ProgramUniform1dv := GetAddress('ProgramUniform1dv');
  2656. ProgramUniform1ui := GetAddress('ProgramUniform1ui');
  2657. ProgramUniform1uiv := GetAddress('ProgramUniform1uiv');
  2658. ProgramUniform2i := GetAddress('ProgramUniform2i');
  2659. ProgramUniform2iv := GetAddress('ProgramUniform2iv');
  2660. ProgramUniform2f := GetAddress('ProgramUniform2f');
  2661. ProgramUniform2fv := GetAddress('ProgramUniform2fv');
  2662. ProgramUniform2d := GetAddress('ProgramUniform2d');
  2663. ProgramUniform2dv := GetAddress('ProgramUniform2dv');
  2664. ProgramUniform2ui := GetAddress('ProgramUniform2ui');
  2665. ProgramUniform2uiv := GetAddress('ProgramUniform2uiv');
  2666. ProgramUniform3i := GetAddress('ProgramUniform3i');
  2667. ProgramUniform3iv := GetAddress('ProgramUniform3iv');
  2668. ProgramUniform3f := GetAddress('ProgramUniform3f');
  2669. ProgramUniform3fv := GetAddress('ProgramUniform3fv');
  2670. ProgramUniform3d := GetAddress('ProgramUniform3d');
  2671. ProgramUniform3dv := GetAddress('ProgramUniform3dv');
  2672. ProgramUniform3ui := GetAddress('ProgramUniform3ui');
  2673. ProgramUniform3uiv := GetAddress('ProgramUniform3uiv');
  2674. ProgramUniform4i := GetAddress('ProgramUniform4i');
  2675. ProgramUniform4iv := GetAddress('ProgramUniform4iv');
  2676. ProgramUniform4f := GetAddress('ProgramUniform4f');
  2677. ProgramUniform4fv := GetAddress('ProgramUniform4fv');
  2678. ProgramUniform4d := GetAddress('ProgramUniform4d');
  2679. ProgramUniform4dv := GetAddress('ProgramUniform4dv');
  2680. ProgramUniform4ui := GetAddress('ProgramUniform4ui');
  2681. ProgramUniform4uiv := GetAddress('ProgramUniform4uiv');
  2682. ProgramUniformMatrix2fv := GetAddress('ProgramUniformMatrix2fv');
  2683. ProgramUniformMatrix3fv := GetAddress('ProgramUniformMatrix3fv');
  2684. ProgramUniformMatrix4fv := GetAddress('ProgramUniformMatrix4fv');
  2685. ProgramUniformMatrix2dv := GetAddress('ProgramUniformMatrix2dv');
  2686. ProgramUniformMatrix3dv := GetAddress('ProgramUniformMatrix3dv');
  2687. ProgramUniformMatrix4dv := GetAddress('ProgramUniformMatrix4dv');
  2688. ProgramUniformMatrix2x3fv := GetAddress('ProgramUniformMatrix2x3fv');
  2689. ProgramUniformMatrix3x2fv := GetAddress('ProgramUniformMatrix3x2fv');
  2690. ProgramUniformMatrix2x4fv := GetAddress('ProgramUniformMatrix2x4fv');
  2691. ProgramUniformMatrix4x2fv := GetAddress('ProgramUniformMatrix4x2fv');
  2692. ProgramUniformMatrix3x4fv := GetAddress('ProgramUniformMatrix3x4fv');
  2693. ProgramUniformMatrix4x3fv := GetAddress('ProgramUniformMatrix4x3fv');
  2694. ProgramUniformMatrix2x3dv := GetAddress('ProgramUniformMatrix2x3dv');
  2695. ProgramUniformMatrix3x2dv := GetAddress('ProgramUniformMatrix3x2dv');
  2696. ProgramUniformMatrix2x4dv := GetAddress('ProgramUniformMatrix2x4dv');
  2697. ProgramUniformMatrix4x2dv := GetAddress('ProgramUniformMatrix4x2dv');
  2698. ProgramUniformMatrix3x4dv := GetAddress('ProgramUniformMatrix3x4dv');
  2699. ProgramUniformMatrix4x3dv := GetAddress('ProgramUniformMatrix4x3dv');
  2700. ValidateProgramPipeline := GetAddress('ValidateProgramPipeline');
  2701. GetProgramPipelineInfoLog := GetAddress('GetProgramPipelineInfoLog');
  2702. BlendEquationSeparate := GetAddress('BlendEquationSeparate');
  2703. DrawBuffers := GetAddress('DrawBuffers');
  2704. StencilOpSeparate := GetAddress('StencilOpSeparate');
  2705. StencilFuncSeparate := GetAddress('StencilFuncSeparate');
  2706. StencilMaskSeparate := GetAddress('StencilMaskSeparate');
  2707. ActiveTexture := GetAddress('ActiveTexture');
  2708. CompressedTexImage3D := GetAddress('CompressedTexImage3D');
  2709. CompressedTexImage2D := GetAddress('CompressedTexImage2D');
  2710. CompressedTexImage1D := GetAddress('CompressedTexImage1D');
  2711. CompressedTexSubImage3D := GetAddress('CompressedTexSubImage3D');
  2712. CompressedTexSubImage2D := GetAddress('CompressedTexSubImage2D');
  2713. CompressedTexSubImage1D := GetAddress('CompressedTexSubImage1D');
  2714. GetCompressedTexImage := GetAddress('GetCompressedTexImage');
  2715. ClientActiveTexture := GetAddress('ClientActiveTexture');
  2716. MultiTexCoord1d := GetAddress('MultiTexCoord1d');
  2717. MultiTexCoord1dV := GetAddress('MultiTexCoord1dv');
  2718. MultiTexCoord1f := GetAddress('MultiTexCoord1f');
  2719. MultiTexCoord1fv := GetAddress('MultiTexCoord1fv');
  2720. MultiTexCoord1i := GetAddress('MultiTexCoord1i');
  2721. MultiTexCoord1iv := GetAddress('MultiTexCoord1iv');
  2722. MultiTexCoord1s := GetAddress('MultiTexCoord1s');
  2723. MultiTexCoord1sv := GetAddress('MultiTexCoord1sv');
  2724. MultiTexCoord2d := GetAddress('MultiTexCoord2d');
  2725. MultiTexCoord2dv := GetAddress('MultiTexCoord2dv');
  2726. MultiTexCoord2f := GetAddress('MultiTexCoord2f');
  2727. MultiTexCoord2fv := GetAddress('MultiTexCoord2fv');
  2728. MultiTexCoord2i := GetAddress('MultiTexCoord2i');
  2729. MultiTexCoord2iv := GetAddress('MultiTexCoord2iv');
  2730. MultiTexCoord2s := GetAddress('MultiTexCoord2s');
  2731. MultiTexCoord2sv := GetAddress('MultiTexCoord2sv');
  2732. MultiTexCoord3d := GetAddress('MultiTexCoord3d');
  2733. MultiTexCoord3dv := GetAddress('MultiTexCoord3dv');
  2734. MultiTexCoord3f := GetAddress('MultiTexCoord3f');
  2735. MultiTexCoord3fv := GetAddress('MultiTexCoord3fv');
  2736. MultiTexCoord3i := GetAddress('MultiTexCoord3i');
  2737. MultiTexCoord3iv := GetAddress('MultiTexCoord3iv');
  2738. MultiTexCoord3s := GetAddress('MultiTexCoord3s');
  2739. MultiTexCoord3sv := GetAddress('MultiTexCoord3sv');
  2740. MultiTexCoord4d := GetAddress('MultiTexCoord4d');
  2741. MultiTexCoord4dv := GetAddress('MultiTexCoord4dv');
  2742. MultiTexCoord4f := GetAddress('MultiTexCoord4f');
  2743. MultiTexCoord4fv := GetAddress('MultiTexCoord4fv');
  2744. MultiTexCoord4i := GetAddress('MultiTexCoord4i');
  2745. MultiTexCoord4iv := GetAddress('MultiTexCoord4iv');
  2746. MultiTexCoord4s := GetAddress('MultiTexCoord4s');
  2747. MultiTexCoord4sv := GetAddress('MultiTexCoord4sv');
  2748. GetInteger64i_v := GetAddress('GetInteger64i_v');
  2749. GetBufferParameteri64v := GetAddress('GetBufferParameteri64v');
  2750. ProgramParameteri := GetAddress('ProgramParameteri');
  2751. ProgramString := GetAddress('ProgramString');
  2752. BindProgram := GetAddress('BindProgram');
  2753. DeletePrograms := GetAddress('DeletePrograms');
  2754. GenPrograms := GetAddress('GenPrograms');
  2755. ProgramEnvParameter4d := GetAddress('ProgramEnvParameter4d');
  2756. ProgramEnvParameter4dv := GetAddress('ProgramEnvParameter4dv');
  2757. ProgramEnvParameter4f := GetAddress('ProgramEnvParameter4f');
  2758. ProgramEnvParameter4fv := GetAddress('ProgramEnvParameter4fv');
  2759. ProgramLocalParameter4d := GetAddress('ProgramLocalParameter4d');
  2760. ProgramLocalParameter4dv := GetAddress('ProgramLocalParameter4dv');
  2761. ProgramLocalParameter4f := GetAddress('ProgramLocalParameter4f');
  2762. ProgramLocalParameter4fv := GetAddress('ProgramLocalParameter4fv');
  2763. GetProgramEnvParameterdv := GetAddress('GetProgramEnvParameterdv');
  2764. GetProgramEnvParameterfv := GetAddress('GetProgramEnvParameterfv');
  2765. GetProgramLocalParameterdv := GetAddress('GetProgramLocalParameterdv');
  2766. GetProgramLocalParameterfv := GetAddress('GetProgramLocalParameterfv');
  2767. ClearColorIi := GetAddress('ClearColorIi');
  2768. ClearColorIui := GetAddress('ClearColorIui');
  2769. TexParameterIiv := GetAddress('TexParameterIiv');
  2770. TexParameterIuiv := GetAddress('TexParameterIuiv');
  2771. GetTexParameterIiv := GetAddress('GetTexParameterIiv');
  2772. GetTexParameterIuiv := GetAddress('GetTexParameterIuiv');
  2773. PatchParameteri := GetAddress('PatchParameteri');
  2774. PatchParameterfv := GetAddress('PatchParameterfv');
  2775. BufferAddressRangeNV := GetAddressNoSuffixes('BufferAddressRangeNV');
  2776. VertexFormatNV := GetAddressNoSuffixes('VertexFormatNV');
  2777. NormalFormatNV := GetAddressNoSuffixes('NormalFormatNV');
  2778. ColorFormatNV := GetAddressNoSuffixes('ColorFormatNV');
  2779. IndexFormatNV := GetAddressNoSuffixes('IndexFormatNV');
  2780. TexCoordFormatNV := GetAddressNoSuffixes('TexCoordFormatNV');
  2781. EdgeFlagFormatNV := GetAddressNoSuffixes('EdgeFlagFormatNV');
  2782. SecondaryColorFormatNV := GetAddressNoSuffixes('SecondaryColorFormatNV');
  2783. FogCoordFormatNV := GetAddressNoSuffixes('FogCoordFormatNV');
  2784. VertexAttribFormatNV := GetAddressNoSuffixes('VertexAttribFormatNV');
  2785. VertexAttribIFormatNV := GetAddressNoSuffixes('VertexAttribIFormatNV');
  2786. GetIntegerui64i_vNV := GetAddressNoSuffixes('GetIntegerui64i_vNV');
  2787. GetBufferParameterui64vNV := GetAddressNoSuffixes('GetBufferParameterui64vNV');
  2788. MakeBufferResidentNV := GetAddressNoSuffixes('MakeBufferResidentNV');
  2789. MakeBufferNonResidentNV := GetAddressNoSuffixes('MakeBufferNonResidentNV');
  2790. IsBufferResidentNV := GetAddressNoSuffixes('IsBufferResidentNV');
  2791. MakeNamedBufferResidentNV := GetAddressNoSuffixes('MakeNamedBufferResidentNV');
  2792. MakeNamedBufferNonResidentNV := GetAddressNoSuffixes('MakeNamedBufferNonResidentNV');
  2793. IsNamedBufferResidentNV := GetAddressNoSuffixes('IsNamedBufferResidentNV');
  2794. GetNamedBufferParameterui64vNV := GetAddressNoSuffixes('GetNamedBufferParameterui64vNV');
  2795. GetIntegerui64vNV := GetAddressNoSuffixes('GetIntegerui64vNV');
  2796. Uniformui64NV := GetAddressNoSuffixes('Uniformui64NV');
  2797. Uniformui64vNV := GetAddressNoSuffixes('Uniformui64vNV');
  2798. GetUniformui64vNV := GetAddressNoSuffixes('GetUniformui64vNV');
  2799. ProgramUniformui64NV := GetAddressNoSuffixes('ProgramUniformui64NV');
  2800. ProgramUniformui64vNV := GetAddressNoSuffixes('ProgramUniformui64vNV');
  2801. TexImage2DMultisample := GetAddress('TexImage2DMultisample');
  2802. TexImage3DMultisample := GetAddress('TexImage3DMultisample');
  2803. GetMultisamplefv := GetAddress('GetMultisamplefv');
  2804. SampleMaski := GetAddress('SampleMaski');
  2805. ProvokingVertex := GetAddress('ProvokingVertex');
  2806. FenceSync := GetAddress('FenceSync');
  2807. IsSync := GetAddress('IsSync');
  2808. DeleteSync := GetAddress('DeleteSync');
  2809. ClientWaitSync := GetAddress('ClientWaitSync');
  2810. WaitSync := GetAddress('WaitSync');
  2811. GetInteger64v := GetAddress('GetInteger64v');
  2812. GetSynciv := GetAddress('GetSynciv');
  2813. BlendEquationi := GetAddress('BlendEquationi');
  2814. BlendEquationSeparatei := GetAddress('BlendEquationSeparatei');
  2815. BlendFunci := GetAddress('BlendFunci');
  2816. BlendFuncSeparatei := GetAddress('BlendFuncSeparatei');
  2817. MinSampleShading := GetAddress('MinSampleShading');
  2818. GenSamplers := GetAddress('GenSamplers');
  2819. DeleteSamplers := GetAddress('DeleteSamplers');
  2820. IsSampler := GetAddress('IsSampler');
  2821. BindSampler := GetAddress('BindSampler');
  2822. SamplerParameteri := GetAddress('SamplerParameteri');
  2823. SamplerParameteriv := GetAddress('SamplerParameteriv');
  2824. SamplerParameterf := GetAddress('SamplerParameterf');
  2825. SamplerParameterfv := GetAddress('SamplerParameterfv');
  2826. SamplerParameterIiv := GetAddress('SamplerParameterIiv');
  2827. SamplerParameterIuiv := GetAddress('SamplerParameterIuiv');
  2828. GetSamplerParameteriv := GetAddress('GetSamplerParameteriv');
  2829. GetSamplerParameterIiv := GetAddress('GetSamplerParameterIiv');
  2830. GetSamplerParameterfv := GetAddress('GetSamplerParameterfv');
  2831. GetSamplerParameterIfv := GetAddress('GetSamplerParameterIfv');
  2832. ClientAttribDefault := GetAddress('ClientAttribDefault');
  2833. PushClientAttribDefault := GetAddress('PushClientAttribDefault');
  2834. MatrixLoadf := GetAddress('MatrixLoadf');
  2835. MatrixLoadd := GetAddress('MatrixLoadd');
  2836. MatrixMultf := GetAddress('MatrixMultf');
  2837. MatrixMultd := GetAddress('MatrixMultd');
  2838. MatrixLoadIdentity := GetAddress('MatrixLoadIdentity');
  2839. MatrixRotatef := GetAddress('MatrixRotatef');
  2840. MatrixRotated := GetAddress('MatrixRotated');
  2841. MatrixScalef := GetAddress('MatrixScalef');
  2842. MatrixScaled := GetAddress('MatrixScaled');
  2843. MatrixTranslatef := GetAddress('MatrixTranslatef');
  2844. MatrixTranslated := GetAddress('MatrixTranslated');
  2845. MatrixFrustum := GetAddress('MatrixFrustum');
  2846. MatrixOrtho := GetAddress('MatrixOrtho');
  2847. MatrixPop := GetAddress('MatrixPop');
  2848. MatrixPush := GetAddress('MatrixPush');
  2849. MatrixLoadTransposef := GetAddress('MatrixLoadTransposef');
  2850. MatrixLoadTransposed := GetAddress('MatrixLoadTransposed');
  2851. MatrixMultTransposef := GetAddress('MatrixMultTransposef');
  2852. MatrixMultTransposed := GetAddress('MatrixMultTransposed');
  2853. TextureParameterfv := GetAddress('TextureParameterfv');
  2854. TextureParameteri := GetAddress('TextureParameteri');
  2855. TextureParameteriv := GetAddress('TextureParameteriv');
  2856. TextureImage1D := GetAddress('TextureImage1D');
  2857. TextureImage2D := GetAddress('TextureImage2D');
  2858. TextureSubImage1D := GetAddress('TextureSubImage1D');
  2859. TextureSubImage2D := GetAddress('TextureSubImage2D');
  2860. CopyTextureImage1D := GetAddress('CopyTextureImage1D');
  2861. CopyTextureImage2D := GetAddress('CopyTextureImage2D');
  2862. CopyTextureSubImage1D := GetAddress('CopyTextureSubImage1D');
  2863. CopyTextureSubImage2D := GetAddress('CopyTextureSubImage2D');
  2864. GetTextureImage := GetAddress('GetTextureImage');
  2865. GetTextureParameterfv := GetAddress('GetTextureParameterfv');
  2866. GetTextureParameteriv := GetAddress('GetTextureParameteriv');
  2867. GetTextureLevelParameterfv := GetAddress('GetTextureLevelParameterfv');
  2868. GetTextureLevelParameteriv := GetAddress('GetTextureLevelParameteriv');
  2869. TextureImage3D := GetAddress('TextureImage3D');
  2870. TextureSubImage3D := GetAddress('TextureSubImage3D');
  2871. CopyTextureSubImage3D := GetAddress('CopyTextureSubImage3D');
  2872. MultiTexParameterf := GetAddress('MultiTexParameterf');
  2873. MultiTexParameterfv := GetAddress('MultiTexParameterfv');
  2874. MultiTexParameteri := GetAddress('MultiTexParameteri');
  2875. MultiTexParameteriv := GetAddress('MultiTexParameteriv');
  2876. MultiTexImage1D := GetAddress('MultiTexImage1D');
  2877. MultiTexImage2D := GetAddress('MultiTexImage2D');
  2878. MultiTexSubImage1D := GetAddress('MultiTexSubImage1D');
  2879. MultiTexSubImage2D := GetAddress('MultiTexSubImage2D');
  2880. CopyMultiTexImage1D := GetAddress('CopyMultiTexImage1D');
  2881. CopyMultiTexImage2D := GetAddress('CopyMultiTexImage2D');
  2882. CopyMultiTexSubImage1D := GetAddress('CopyMultiTexSubImage1D');
  2883. CopyMultiTexSubImage2D := GetAddress('CopyMultiTexSubImage2D');
  2884. GetMultiTexImage := GetAddress('GetMultiTexImage');
  2885. GetMultiTexParameterfv := GetAddress('GetMultiTexParameterfv');
  2886. GetMultiTexParameteriv := GetAddress('GetMultiTexParameteriv');
  2887. GetMultiTexLevelParameterfv := GetAddress('GetMultiTexLevelParameterfv');
  2888. GetMultiTexLevelParameteriv := GetAddress('GetMultiTexLevelParameteriv');
  2889. MultiTexImage3D := GetAddress('MultiTexImage3D');
  2890. MultiTexSubImage3D := GetAddress('MultiTexSubImage3D');
  2891. CopyMultiTexSubImage3D := GetAddress('CopyMultiTexSubImage3D');
  2892. BindMultiTexture := GetAddress('BindMultiTexture');
  2893. EnableClientStateIndexed := GetAddress('EnableClientStateIndexed');
  2894. DisableClientStateIndexed := GetAddress('DisableClientStateIndexed');
  2895. MultiTexCoordPointer := GetAddress('MultiTexCoordPointer');
  2896. MultiTexEnvf := GetAddress('MultiTexEnvf');
  2897. MultiTexEnvfv := GetAddress('MultiTexEnvfv');
  2898. MultiTexEnvi := GetAddress('MultiTexEnvi');
  2899. MultiTexEnviv := GetAddress('MultiTexEnviv');
  2900. MultiTexGend := GetAddress('MultiTexGend');
  2901. MultiTexGendv := GetAddress('MultiTexGendv');
  2902. MultiTexGenf := GetAddress('MultiTexGenf');
  2903. MultiTexGenfv := GetAddress('MultiTexGenfv');
  2904. MultiTexGeni := GetAddress('MultiTexGeni');
  2905. MultiTexGeniv := GetAddress('MultiTexGeniv');
  2906. GetMultiTexEnvfv := GetAddress('GetMultiTexEnvfv');
  2907. GetMultiTexEnviv := GetAddress('GetMultiTexEnviv');
  2908. GetMultiTexGendv := GetAddress('GetMultiTexGendv');
  2909. GetMultiTexGenfv := GetAddress('GetMultiTexGenfv');
  2910. GetMultiTexGeniv := GetAddress('GetMultiTexGeniv');
  2911. GetFloatIndexedv := GetAddress('GetFloatIndexedv');
  2912. GetDoubleIndexedv := GetAddress('GetDoubleIndexedv');
  2913. GetPointerIndexedv := GetAddress('GetPointerIndexedv');
  2914. CompressedTextureImage3D := GetAddress('CompressedTextureImage3D');
  2915. CompressedTextureImage2D := GetAddress('CompressedTextureImage2D');
  2916. CompressedTextureImage1D := GetAddress('CompressedTextureImage1D');
  2917. CompressedTextureSubImage3D := GetAddress('CompressedTextureSubImage3D');
  2918. CompressedTextureSubImage2D := GetAddress('CompressedTextureSubImage2D');
  2919. CompressedTextureSubImage1D := GetAddress('CompressedTextureSubImage1D');
  2920. GetCompressedTextureImage := GetAddress('GetCompressedTextureImage');
  2921. CompressedMultiTexImage3D := GetAddress('CompressedMultiTexImage3D');
  2922. CompressedMultiTexImage2D := GetAddress('CompressedMultiTexImage2D');
  2923. CompressedMultiTexImage1D := GetAddress('CompressedMultiTexImage1D');
  2924. CompressedMultiTexSubImage3D := GetAddress('CompressedMultiTexSubImage3D');
  2925. CompressedMultiTexSubImage2D := GetAddress('CompressedMultiTexSubImage2D');
  2926. CompressedMultiTexSubImage1D := GetAddress('CompressedMultiTexSubImage1D');
  2927. GetCompressedMultiTexImage := GetAddress('GetCompressedMultiTexImage');
  2928. NamedProgramString := GetAddress('NamedProgramString');
  2929. NamedProgramLocalParameter4d := GetAddress('NamedProgramLocalParameter4d');
  2930. NamedProgramLocalParameter4dv := GetAddress('NamedProgramLocalParameter4dv');
  2931. NamedProgramLocalParameter4f := GetAddress('NamedProgramLocalParameter4f');
  2932. NamedProgramLocalParameter4fv := GetAddress('NamedProgramLocalParameter4fv');
  2933. GetNamedProgramLocalParameterdv := GetAddress('GetNamedProgramLocalParameterdv');
  2934. GetNamedProgramLocalParameterfv := GetAddress('GetNamedProgramLocalParameterfv');
  2935. GetNamedProgramiv := GetAddress('GetNamedProgramiv');
  2936. GetNamedProgramString := GetAddress('GetNamedProgramString');
  2937. NamedProgramLocalParameters4fv := GetAddress('NamedProgramLocalParameters4fv');
  2938. NamedProgramLocalParameterI4i := GetAddress('NamedProgramLocalParameterI4i');
  2939. NamedProgramLocalParameterI4iv := GetAddress('NamedProgramLocalParameterI4iv');
  2940. NamedProgramLocalParametersI4iv := GetAddress('NamedProgramLocalParametersI4iv');
  2941. NamedProgramLocalParameterI4ui := GetAddress('NamedProgramLocalParameterI4ui');
  2942. NamedProgramLocalParameterI4uiv := GetAddress('NamedProgramLocalParameterI4uiv');
  2943. NamedProgramLocalParametersI4uiv := GetAddress('NamedProgramLocalParametersI4uiv');
  2944. GetNamedProgramLocalParameterIiv := GetAddress('GetNamedProgramLocalParameterIiv');
  2945. GetNamedProgramLocalParameterIuiv := GetAddress('GetNamedProgramLocalParameterIuiv');
  2946. TextureParameterIiv := GetAddress('TextureParameterIiv');
  2947. TextureParameterIuiv := GetAddress('TextureParameterIuiv');
  2948. GetTextureParameterIiv := GetAddress('GetTextureParameterIiv');
  2949. GetTextureParameterIuiv := GetAddress('GetTextureParameterIuiv');
  2950. MultiTexParameterIiv := GetAddress('MultiTexParameterIiv');
  2951. MultiTexParameterIuiv := GetAddress('MultiTexParameterIuiv');
  2952. GetMultiTexParameterIiv := GetAddress('GetMultiTexParameterIiv');
  2953. GetMultiTexParameterIuiv := GetAddress('GetMultiTexParameterIuiv');
  2954. NamedBufferData := GetAddress('NamedBufferData');
  2955. NamedBufferSubData := GetAddress('NamedBufferSubData');
  2956. MapNamedBuffer := GetAddress('MapNamedBuffer');
  2957. UnmapNamedBuffer := GetAddress('UnmapNamedBuffer');
  2958. MapNamedBufferRange := GetAddress('MapNamedBufferRange');
  2959. FlushMappedNamedBufferRange := GetAddress('FlushMappedNamedBufferRange');
  2960. NamedCopyBufferSubData := GetAddress('NamedCopyBufferSubData');
  2961. GetNamedBufferParameteriv := GetAddress('GetNamedBufferParameteriv');
  2962. GetNamedBufferPointerv := GetAddress('GetNamedBufferPointerv');
  2963. GetNamedBufferSubData := GetAddress('GetNamedBufferSubData');
  2964. TextureBuffer := GetAddress('TextureBuffer');
  2965. MultiTexBuffer := GetAddress('MultiTexBuffer');
  2966. NamedRenderbufferStorage := GetAddress('NamedRenderbufferStorage');
  2967. GetNamedRenderbufferParameteriv :=
  2968. GetAddress('GetNamedRenderbufferParameteriv');
  2969. CheckNamedFramebufferStatus := GetAddress('CheckNamedFramebufferStatus');
  2970. NamedFramebufferTexture1D := GetAddress('NamedFramebufferTexture1D');
  2971. NamedFramebufferTexture2D := GetAddress('NamedFramebufferTexture2D');
  2972. NamedFramebufferTexture3D := GetAddress('NamedFramebufferTexture3D');
  2973. NamedFramebufferRenderbuffer := GetAddress('NamedFramebufferRenderbuffer');
  2974. GetNamedFramebufferAttachmentParameteriv := GetAddress('GetNamedFramebufferAttachmentParameteriv');
  2975. GenerateTextureMipmap := GetAddress('GenerateTextureMipmap');
  2976. GenerateMultiTexMipmap := GetAddress('GenerateMultiTexMipmap');
  2977. FramebufferDrawBuffer := GetAddress('FramebufferDrawBuffer');
  2978. FramebufferDrawBuffers := GetAddress('FramebufferDrawBuffers');
  2979. FramebufferReadBuffer := GetAddress('FramebufferReadBuffer');
  2980. GetFramebufferParameteriv := GetAddress('GetFramebufferParameteriv');
  2981. NamedRenderbufferStorageMultisample := GetAddress('NamedRenderbufferStorageMultisample');
  2982. NamedRenderbufferStorageMultisampleCoverage := GetAddress('NamedRenderbufferStorageMultisampleCoverage');
  2983. NamedFramebufferTexture := GetAddress('NamedFramebufferTexture');
  2984. NamedFramebufferTextureLayer := GetAddress('NamedFramebufferTextureLayer');
  2985. NamedFramebufferTextureFace := GetAddress('NamedFramebufferTextureFace');
  2986. TextureRenderbuffer := GetAddress('TextureRenderbuffer');
  2987. MultiTexRenderbuffer := GetAddress('MultiTexRenderbuffer');
  2988. FrameTerminatorGREMEDY := GetAddress('FrameTerminatorGREMEDY');
  2989. StringMarkerGREMEDY := GetAddress('StringMarkerGREMEDY');
  2990. DebugMessageEnableAMDX := GetAddressNoSuffixes('DebugMessageEnableAMDX');
  2991. DebugMessageCallbackAMDX := GetAddressNoSuffixes('DebugMessageCallbackAMDX');
  2992. DebugMessageControl := GetAddress('DebugMessageControl');
  2993. DebugMessageInsert := GetAddress('DebugMessageInsert');
  2994. DebugMessageCallback := GetAddress('DebugMessageCallback');
  2995. GetDebugMessageLog := GetAddress('GetDebugMessageLog');
  2996. PushDebugGroup := GetAddress('PushDebugGroup');
  2997. PopDebugGroup := GetAddress('PopDebugGroup');
  2998. ObjectLabel := GetAddress('ObjectLabel');
  2999. GetObjectLabel := GetAddress('GetObjectLabel');
  3000. ObjectPtrLabel := GetAddress('ObjectPtrLabel');
  3001. GetObjectPtrLabel := GetAddress('GetObjectPtrLabel');
  3002. ClearBufferData := GetAddress('ClearBufferData');
  3003. ClearBufferSubData := GetAddress('ClearBufferSubData');
  3004. ClearNamedBufferData := GetAddress('ClearNamedBufferData');
  3005. ClearNamedBufferSubData := GetAddress('ClearNamedBufferSubData');
  3006. DispatchCompute := GetAddress('DispatchCompute');
  3007. DispatchComputeIndirect := GetAddress('DispatchComputeIndirect');
  3008. CopyImageSubData := GetAddress('CopyImageSubData');
  3009. FramebufferParameteri := GetAddress('FramebufferParameteri');
  3010. NamedFramebufferParameteri := GetAddress('NamedFramebufferParameteri');
  3011. GetNamedFramebufferParameteriv := GetAddress('GetNamedFramebufferParameteriv');
  3012. GetInternalformati64v := GetAddress('GetInternalformati64v');
  3013. InvalidateTexSubImage := GetAddress('InvalidateTexSubImage');
  3014. InvalidateTexImage := GetAddress('InvalidateTexImage');
  3015. InvalidateBufferSubData := GetAddress('InvalidateBufferSubData');
  3016. InvalidateBufferData := GetAddress('InvalidateBufferData');
  3017. InvalidateFramebuffer := GetAddress('InvalidateFramebuffer');
  3018. InvalidateSubFramebuffer := GetAddress('InvalidateSubFramebuffer');
  3019. MultiDrawArraysIndirect := GetAddress('MultiDrawArraysIndirect');
  3020. MultiDrawElementsIndirect := GetAddress('MultiDrawElementsIndirect');
  3021. GetProgramInterfaceiv := GetAddress('GetProgramInterfaceiv');
  3022. GetProgramResourceIndex := GetAddress('GetProgramResourceIndex');
  3023. GetProgramResourceName := GetAddress('GetProgramResourceName');
  3024. GetProgramResourceiv := GetAddress('GetProgramResourceiv');
  3025. GetProgramResourceLocation := GetAddress('GetProgramResourceLocation');
  3026. GetProgramResourceLocationIndex := GetAddress('GetProgramResourceLocationIndex');
  3027. ShaderStorageBlockBinding := GetAddress('ShaderStorageBlockBinding');
  3028. TexBufferRange := GetAddress('TexBufferRange');
  3029. TextureBufferRange := GetAddress('TextureBufferRange');
  3030. TexStorage2DMultisample := GetAddress('TexStorage2DMultisample');
  3031. TexStorage3DMultisample := GetAddress('TexStorage3DMultisample');
  3032. TextureStorage2DMultisample := GetAddress('TextureStorage2DMultisample');
  3033. TextureStorage3DMultisample := GetAddress('TextureStorage3DMultisample');
  3034. BufferStorage := GetAddress('BufferStorage');
  3035. ClearTexImage := GetAddress('ClearTexImage');
  3036. ClearTexSubImage := GetAddress('ClearTexSubImage');
  3037. BindBuffersBase := GetAddress('BindBuffersBase');
  3038. BindBuffersRange := GetAddress('BindBuffersRange');
  3039. BindTextures := GetAddress('BindTextures');
  3040. BindSamplers := GetAddress('BindSamplers');
  3041. BindImageTextures := GetAddress('BindImageTextures');
  3042. BindVertexBuffers := GetAddress('BindVertexBuffers');
  3043. TextureView := GetAddress('TextureView');
  3044. BindVertexBuffer := GetAddress('BindVertexBuffer');
  3045. VertexAttribFormat := GetAddress('VertexAttribFormat');
  3046. VertexAttribIFormat := GetAddress('VertexAttribIFormat');
  3047. VertexAttribLFormat := GetAddress('VertexAttribLFormat');
  3048. VertexAttribBinding := GetAddress('VertexAttribBinding');
  3049. VertexBindingDivisor := GetAddress('VertexBindingDivisor');
  3050. VertexArrayBindVertexBuffer := GetAddress('VertexArrayBindVertexBuffer');
  3051. VertexArrayVertexAttribFormat := GetAddress('VertexArrayVertexAttribFormat');
  3052. VertexArrayVertexAttribIFormat := GetAddress('VertexArrayVertexAttribIFormat');
  3053. VertexArrayVertexAttribLFormat := GetAddress('VertexArrayVertexAttribLFormat');
  3054. VertexArrayVertexAttribBinding := GetAddress('VertexArrayVertexAttribBinding');
  3055. VertexArrayVertexBindingDivisor := GetAddress('VertexArrayVertexBindingDivisor');
  3056. CreateSyncFromCLevent := GetAddress('CreateSyncFromCLevent');
  3057. GenPathsNV := GetAddressNoSuffixes('GenPathsNV');
  3058. DeletePathsNV := GetAddressNoSuffixes('DeletePathsNV');
  3059. IsPathNV := GetAddressNoSuffixes('IsPathNV');
  3060. PathCommandsNV := GetAddressNoSuffixes('PathCommandsNV');
  3061. PathCoordsNV := GetAddressNoSuffixes('PathCoordsNV');
  3062. PathSubCommandsNV := GetAddressNoSuffixes('PathSubCommandsNV');
  3063. PathSubCoordsNV := GetAddressNoSuffixes('PathSubCoordsNV');
  3064. PathStringNV := GetAddressNoSuffixes('PathStringNV');
  3065. PathGlyphsNV := GetAddressNoSuffixes('PathGlyphsNV');
  3066. PathGlyphRangeNV := GetAddressNoSuffixes('PathGlyphRangeNV');
  3067. WeightPathsNV := GetAddressNoSuffixes('WeightPathsNV');
  3068. CopyPathNV := GetAddressNoSuffixes('CopyPathNV');
  3069. InterpolatePathsNV := GetAddressNoSuffixes('InterpolatePathsNV');
  3070. PathParameterivNV := GetAddressNoSuffixes('PathParameterivNV');
  3071. PathParameteriNV := GetAddressNoSuffixes('PathParameteriNV');
  3072. PathParameterfvNV := GetAddressNoSuffixes('PathParameterfvNV');
  3073. PathParameterfNV := GetAddressNoSuffixes('PathParameterfNV');
  3074. PathDashArrayNV := GetAddressNoSuffixes('PathDashArrayNV');
  3075. PathStencilFuncNV := GetAddressNoSuffixes('PathStencilFuncNV');
  3076. StencilFillPathNV := GetAddressNoSuffixes('StencilFillPathNV');
  3077. StencilStrokePathNV := GetAddressNoSuffixes('StencilStrokePathNV');
  3078. StencilFillPathInstancedNV := GetAddressNoSuffixes('StencilFillPathInstancedNV');
  3079. StencilStrokePathInstancedNV := GetAddressNoSuffixes('StencilStrokePathInstancedNV');
  3080. PathColorGenNV := GetAddressNoSuffixes('PathColorGenNV');
  3081. PathTexGenNV := GetAddressNoSuffixes('PathTexGenNV');
  3082. PathFogGenNV := GetAddressNoSuffixes('PathFogGenNV');
  3083. CoverFillPathNV := GetAddressNoSuffixes('CoverFillPathNV');
  3084. CoverStrokePathNV := GetAddressNoSuffixes('CoverStrokePathNV');
  3085. CoverFillPathInstancedNV := GetAddressNoSuffixes('CoverFillPathInstancedNV');
  3086. CoverStrokePathInstancedNV := GetAddressNoSuffixes('CoverStrokePathInstancedNV');
  3087. GetPathParameterivNV := GetAddressNoSuffixes('GetPathParameterivNV');
  3088. GetPathParameterfvNV := GetAddressNoSuffixes('GetPathParameterfvNV');
  3089. GetPathCommandsNV := GetAddressNoSuffixes('GetPathCommandsNV');
  3090. GetPathCoordsNV := GetAddressNoSuffixes('GetPathCoordsNV');
  3091. GetPathDashArrayNV := GetAddressNoSuffixes('GetPathDashArrayNV');
  3092. GetPathMetricsNV := GetAddressNoSuffixes('GetPathMetricsNV');
  3093. GetPathMetricRangeNV := GetAddressNoSuffixes('GetPathMetricRangeNV');
  3094. GetPathSpacingNV := GetAddressNoSuffixes('GetPathSpacingNV');
  3095. GetPathColorGenivNV := GetAddressNoSuffixes('GetPathColorGenivNV');
  3096. GetPathColorGenfvNV := GetAddressNoSuffixes('GetPathColorGenfvNV');
  3097. GetPathTexGenivNV := GetAddressNoSuffixes('GetPathTexGenivNV');
  3098. GetPathTexGenfvNV := GetAddressNoSuffixes('GetPathTexGenfvNV');
  3099. IsPointInFillPathNV := GetAddressNoSuffixes('IsPointInFillPathNV');
  3100. IsPointInStrokePathNV := GetAddressNoSuffixes('IsPointInStrokePathNV');
  3101. GetPathLengthNV := GetAddressNoSuffixes('GetPathLengthNV');
  3102. PointAlongPathNV := GetAddressNoSuffixes('PointAlongPathNV');
  3103. PathStencilDepthOffsetNV := GetAddressNoSuffixes('PathStencilDepthOffsetNV');
  3104. PathCoverDepthFuncNV := GetAddressNoSuffixes('PathCoverDepthFuncNV');
  3105. if FDebug then
  3106. if ARB_debug_output then
  3107. begin
  3108. DebugMessageCallback(DebugCallBack, nil);
  3109. DebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0,
  3110. FDebugIds, True);
  3111. Enable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
  3112. end
  3113. else if AMDX_debug_output then
  3114. begin
  3115. DebugMessageCallbackAMDX(DebugCallBackAMD, nil);
  3116. DebugMessageEnableAMDX(0, 0, 0, FDebugIds, True);
  3117. end
  3118. else
  3119. FDebug := False;
  3120. SetLength(FBuffer, 0);
  3121. FInitialized := True;
  3122. end;
  3123. procedure TGLExtensionsAndEntryPoints.Close;
  3124. begin
  3125. if FDebug then
  3126. if ARB_debug_output then
  3127. begin
  3128. DebugMessageCallback(nil, nil);
  3129. DebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0,
  3130. FDebugIds, False);
  3131. end
  3132. else if AMDX_debug_output then
  3133. begin
  3134. DebugMessageCallbackAMDX(nil, nil);
  3135. DebugMessageEnableAMDX(0, 0, 0, FDebugIds, False);
  3136. end;
  3137. VERSION_1_0 := False;
  3138. VERSION_1_1 := False;
  3139. VERSION_1_2 := False;
  3140. VERSION_1_3 := False;
  3141. VERSION_1_4 := False;
  3142. VERSION_1_5 := False;
  3143. VERSION_2_0 := False;
  3144. VERSION_2_1 := False;
  3145. VERSION_3_0 := False;
  3146. VERSION_3_1 := False;
  3147. VERSION_3_2 := False;
  3148. VERSION_3_3 := False;
  3149. VERSION_4_0 := False;
  3150. VERSION_4_1 := False;
  3151. ARB_blend_func_extended := False;
  3152. ARB_color_buffer_float := False;
  3153. ARB_compatibility := False;
  3154. ARB_copy_buffer := False;
  3155. ARB_depth_buffer_float := False;
  3156. ARB_depth_clamp := False;
  3157. ARB_depth_texture := False;
  3158. ARB_draw_buffers := False;
  3159. ARB_draw_buffers_blend := False;
  3160. ARB_draw_elements_base_vertex := False;
  3161. ARB_draw_indirect := False;
  3162. ARB_draw_instanced := False;
  3163. ARB_explicit_attrib_location := False;
  3164. ARB_fragment_coord_conventions := False;
  3165. ARB_fragment_program := False;
  3166. ARB_fragment_program_shadow := False;
  3167. ARB_fragment_shader := False;
  3168. ARB_framebuffer_object := False;
  3169. ARB_framebuffer_sRGB := False;
  3170. ARB_geometry_shader4 := False;
  3171. ARB_gpu_shader_fp64 := False;
  3172. ARB_gpu_shader5 := False;
  3173. ARB_half_float_pixel := False;
  3174. ARB_half_float_vertex := False;
  3175. ARB_imaging := False;
  3176. ARB_instanced_arrays := False;
  3177. ARB_map_buffer_range := False;
  3178. ARB_matrix_palette := False;
  3179. ARB_multisample := False;
  3180. // ' ' to avoid collision with WGL variant
  3181. ARB_multitexture := False;
  3182. ARB_occlusion_query := False;
  3183. ARB_occlusion_query2 := False;
  3184. ARB_pixel_buffer_object := False;
  3185. ARB_point_parameters := False;
  3186. ARB_point_sprite := False;
  3187. ARB_provoking_vertex := False;
  3188. ARB_sample_shading := False;
  3189. ARB_sampler_objects := False;
  3190. ARB_seamless_cube_map := False;
  3191. ARB_shader_bit_encoding := False;
  3192. ARB_shader_objects := False;
  3193. ARB_shader_subroutine := False;
  3194. ARB_shader_texture_lod := False;
  3195. ARB_shading_language_100 := False;
  3196. ARB_shadow := False;
  3197. ARB_shadow_ambient := False;
  3198. ARB_sync := False;
  3199. ARB_tessellation_shader := False;
  3200. ARB_texture_border_clamp := False;
  3201. ARB_texture_buffer_object := False;
  3202. ARB_texture_buffer_object_rgb32 := False;
  3203. ARB_texture_compression := False;
  3204. ARB_texture_compression_rgtc := False;
  3205. ARB_texture_cube_map := False;
  3206. ARB_texture_cube_map_array := False;
  3207. ARB_texture_env_add := False;
  3208. ARB_texture_env_combine := False;
  3209. ARB_texture_env_crossbar := False;
  3210. ARB_texture_env_dot3 := False;
  3211. ARB_texture_float := False;
  3212. ARB_texture_gather := False;
  3213. ARB_texture_mirrored_repeat := False;
  3214. ARB_texture_multisample := False;
  3215. ARB_texture_non_power_of_two := False;
  3216. ARB_texture_query_lod := False;
  3217. ARB_texture_rectangle := False;
  3218. ARB_texture_rg := False;
  3219. ARB_texture_rgb10_a2ui := False;
  3220. ARB_texture_swizzle := False;
  3221. ARB_timer_query := False;
  3222. ARB_transform_feedback2 := False;
  3223. ARB_transform_feedback3 := False;
  3224. ARB_transpose_matrix := False;
  3225. ARB_uniform_buffer_object := False;
  3226. ARB_vertex_array_bgra := False;
  3227. ARB_vertex_array_object := False;
  3228. ARB_vertex_blend := False;
  3229. ARB_vertex_buffer_object := False;
  3230. ARB_vertex_program := False;
  3231. ARB_vertex_shader := False;
  3232. ARB_vertex_type_2_10_10_10_rev := False;
  3233. ARB_window_pos := False;
  3234. ARB_texture_compression_bptc := False;
  3235. ARB_get_program_binary := False;
  3236. ARB_separate_shader_objects := False;
  3237. ARB_shader_stencil_export := False;
  3238. KHR_debug := False;
  3239. ARB_clear_buffer_object := False;
  3240. ARB_compute_shader := False;
  3241. ARB_copy_image := False;
  3242. ARB_debug_group := False;
  3243. ARB_debug_label := False;
  3244. ARB_debug_output2 := False;
  3245. ARB_ES3_compatibility := False;
  3246. ARB_explicit_uniform_location := False;
  3247. ARB_fragment_layer_viewport := False;
  3248. ARB_framebuffer_no_attachments := False;
  3249. ARB_internalformat_query2 := False;
  3250. ARB_invalidate_subdata := False;
  3251. ARB_multi_draw_indirect := False;
  3252. ARB_program_interface_query := False;
  3253. ARB_shader_image_size := False;
  3254. ARB_shader_storage_buffer_object := False;
  3255. ARB_stencil_texturing := False;
  3256. ARB_texture_buffer_range := False;
  3257. ARB_texture_query_levels := False;
  3258. ARB_texture_storage_multisample := False;
  3259. ARB_texture_view := False;
  3260. ARB_vertex_attrib_binding := False;
  3261. ARB_robustness_isolation := False;
  3262. ARB_cl_event := False;
  3263. // check Vendor/EXT OpenGL extensions
  3264. _3DFX_multisample := False;
  3265. _3DFX_tbuffer := False;
  3266. _3DFX_texture_compression_FXT1 := False;
  3267. ATI_draw_buffers := False;
  3268. ATI_texture_compression_3dc := False;
  3269. ATI_texture_float := False;
  3270. ATI_texture_mirror_once := False;
  3271. S3_s3tc := False;
  3272. EXT_abgr := False;
  3273. EXT_bgra := False;
  3274. EXT_bindable_uniform := False;
  3275. EXT_blend_color := False;
  3276. EXT_blend_equation_separate := False;
  3277. EXT_blend_func_separate := False;
  3278. EXT_blend_logic_op := False;
  3279. EXT_blend_minmax := False;
  3280. EXT_blend_subtract := False;
  3281. EXT_Cg_shader := False;
  3282. EXT_clip_volume_hint := False;
  3283. EXT_compiled_vertex_array := False;
  3284. EXT_copy_texture := False;
  3285. EXT_depth_bounds_test := False;
  3286. EXT_draw_buffers2 := False;
  3287. EXT_draw_instanced := False;
  3288. EXT_draw_range_elements := False;
  3289. EXT_fog_coord := False;
  3290. EXT_framebuffer_blit := False;
  3291. EXT_framebuffer_multisample := False;
  3292. EXT_framebuffer_object := False;
  3293. EXT_framebuffer_sRGB := False;
  3294. EXT_geometry_shader4 := False;
  3295. EXT_gpu_program_parameters := False;
  3296. EXT_gpu_shader4 := False;
  3297. EXT_multi_draw_arrays := False;
  3298. EXT_multisample := False;
  3299. EXT_packed_depth_stencil := False;
  3300. EXT_packed_float := False;
  3301. EXT_packed_pixels := False;
  3302. EXT_paletted_texture := False;
  3303. EXT_pixel_buffer_object := False;
  3304. EXT_polygon_offset := False;
  3305. EXT_rescale_normal := False;
  3306. EXT_secondary_color := False;
  3307. EXT_separate_specular_color := False;
  3308. EXT_shadow_funcs := False;
  3309. EXT_shared_texture_palette := False;
  3310. EXT_stencil_clear_tag := False;
  3311. EXT_stencil_two_side := False;
  3312. EXT_stencil_wrap := False;
  3313. EXT_texture3D := False;
  3314. EXT_texture_array := False;
  3315. EXT_texture_buffer_object := False;
  3316. EXT_texture_compression_latc := False;
  3317. EXT_texture_compression_rgtc := False;
  3318. EXT_texture_compression_s3tc := False;
  3319. EXT_texture_cube_map := False;
  3320. EXT_texture_edge_clamp := False;
  3321. EXT_texture_env_add := False;
  3322. EXT_texture_env_combine := False;
  3323. EXT_texture_env_dot3 := False;
  3324. EXT_texture_filter_anisotropic := False;
  3325. EXT_texture_integer := False;
  3326. EXT_texture_lod := False;
  3327. EXT_texture_lod_bias := False;
  3328. EXT_texture_mirror_clamp := False;
  3329. EXT_texture_object := False;
  3330. EXT_texture_rectangle := False;
  3331. EXT_texture_sRGB := False;
  3332. EXT_texture_shared_exponent := False;
  3333. EXT_timer_query := False;
  3334. EXT_transform_feedback := False;
  3335. EXT_vertex_array := False;
  3336. EXT_texture_sRGB_decode := False;
  3337. EXT_direct_state_access := False;
  3338. EXT_texture_swizzle := False;
  3339. HP_occlusion_test := False;
  3340. IBM_rasterpos_clip := False;
  3341. KTX_buffer_region := False;
  3342. MESA_resize_buffers := False;
  3343. NV_blend_square := False;
  3344. NV_conditional_render := False;
  3345. NV_copy_image := False;
  3346. NV_depth_buffer_float := False;
  3347. NV_fence := False;
  3348. NV_float_buffer := False;
  3349. NV_fog_distance := False;
  3350. NV_geometry_program4 := False;
  3351. NV_light_max_exponent := False;
  3352. NV_multisample_filter_hint := False;
  3353. NV_occlusion_query := False;
  3354. NV_point_sprite := False;
  3355. NV_primitive_restart := False;
  3356. NV_register_combiners := False;
  3357. NV_shader_buffer_load := False;
  3358. NV_texgen_reflection := False;
  3359. NV_texture_compression_vtc := False;
  3360. NV_texture_env_combine4 := False;
  3361. NV_texture_rectangle := False;
  3362. NV_texture_shader := False;
  3363. NV_texture_shader2 := False;
  3364. NV_texture_shader3 := False;
  3365. NV_transform_feedback := False;
  3366. NV_vertex_array_range := False;
  3367. NV_vertex_array_range2 := False;
  3368. NV_vertex_buffer_unified_memory := False;
  3369. NV_vertex_program := False;
  3370. SGI_color_matrix := False;
  3371. SGIS_generate_mipmap := False;
  3372. SGIS_multisample := False;
  3373. SGIS_texture_border_clamp := False;
  3374. SGIS_texture_color_mask := False;
  3375. SGIS_texture_edge_clamp := False;
  3376. SGIS_texture_lod := False;
  3377. SGIX_depth_texture := False;
  3378. SGIX_shadow := False;
  3379. SGIX_shadow_ambient := False;
  3380. AMD_vertex_shader_tessellator := False;
  3381. WIN_swap_hint := False;
  3382. ATI_meminfo := False;
  3383. NVX_gpu_memory_info := False;
  3384. NV_vdpau_interop := False;
  3385. NV_path_rendering := False;
  3386. GREMEDY_frame_terminator := False;
  3387. GREMEDY_string_marker := False;
  3388. ARB_debug_output := False;
  3389. BindTexture := GetCapAddress();
  3390. BlendFunc := GetCapAddress();
  3391. Clear := GetCapAddress();
  3392. ClearColor := GetCapAddress();
  3393. ClearDepth := GetCapAddress();
  3394. ClearStencil := GetCapAddress();
  3395. ColorMask := GetCapAddress();
  3396. CopyTexImage1D := GetCapAddress();
  3397. CopyTexImage2D := GetCapAddress();
  3398. CopyTexSubImage1D := GetCapAddress();
  3399. CopyTexSubImage2D := GetCapAddress();
  3400. CullFace := GetCapAddress();
  3401. DeleteTextures := GetCapAddress();
  3402. DepthFunc := GetCapAddress();
  3403. DepthMask := GetCapAddress();
  3404. DepthRange := GetCapAddress();
  3405. Disable := GetCapAddress();
  3406. DrawArrays := GetCapAddress();
  3407. DrawBuffer := GetCapAddress();
  3408. DrawElements := GetCapAddress();
  3409. Enable := GetCapAddress();
  3410. Finish := GetCapAddress();
  3411. Flush := GetCapAddress();
  3412. FrontFace := GetCapAddress();
  3413. GenTextures := GetCapAddress();
  3414. GetBooleanv := GetCapAddress();
  3415. GetDoublev := GetCapAddress();
  3416. GetError := GetCapAddress();
  3417. GetFloatv := GetCapAddress();
  3418. GetPointerv := GetCapAddress();
  3419. GetString := GetCapAddress();
  3420. GetTexImage := GetCapAddress();
  3421. GetTexLevelParameterfv := GetCapAddress();
  3422. GetTexLevelParameteriv := GetCapAddress();
  3423. GetTexParameterfv := GetCapAddress();
  3424. GetTexParameteriv := GetCapAddress();
  3425. Hint := GetCapAddress();
  3426. IsEnabled := GetCapAddress();
  3427. IsTexture := GetCapAddress();
  3428. LineWidth := GetCapAddress();
  3429. LogicOp := GetCapAddress();
  3430. PixelStoref := GetCapAddress();
  3431. PixelStorei := GetCapAddress();
  3432. PointSize := GetCapAddress();
  3433. PolygonMode := GetCapAddress();
  3434. PolygonOffset := GetCapAddress();
  3435. ReadBuffer := GetCapAddress();
  3436. ReadPixels := GetCapAddress();
  3437. Scissor := GetCapAddress();
  3438. StencilFunc := GetCapAddress();
  3439. StencilMask := GetCapAddress();
  3440. StencilOp := GetCapAddress();
  3441. TexImage1D := GetCapAddress();
  3442. TexImage2D := GetCapAddress();
  3443. TexParameterf := GetCapAddress();
  3444. TexParameterfv := GetCapAddress();
  3445. TexParameteri := GetCapAddress();
  3446. TexParameteriv := GetCapAddress();
  3447. TexSubImage1D := GetCapAddress();
  3448. TexSubImage2D := GetCapAddress();
  3449. Viewport := GetCapAddress();
  3450. Accum := GetCapAddress();
  3451. AlphaFunc := GetCapAddress();
  3452. AreTexturesResident := GetCapAddress();
  3453. ArrayElement := GetCapAddress();
  3454. Begin_ := GetCapAddress();
  3455. Bitmap := GetCapAddress();
  3456. CallList := GetCapAddress();
  3457. CallLists := GetCapAddress();
  3458. ClearAccum := GetCapAddress();
  3459. ClearIndex := GetCapAddress();
  3460. ClipPlane := GetCapAddress();
  3461. Color3b := GetCapAddress();
  3462. Color3bv := GetCapAddress();
  3463. Color3d := GetCapAddress();
  3464. Color3dv := GetCapAddress();
  3465. Color3f := GetCapAddress();
  3466. Color3fv := GetCapAddress();
  3467. Color3i := GetCapAddress();
  3468. Color3iv := GetCapAddress();
  3469. Color3s := GetCapAddress();
  3470. Color3sv := GetCapAddress();
  3471. Color3ub := GetCapAddress();
  3472. Color3ubv := GetCapAddress();
  3473. Color3ui := GetCapAddress();
  3474. Color3uiv := GetCapAddress();
  3475. Color3us := GetCapAddress();
  3476. Color3usv := GetCapAddress();
  3477. Color4b := GetCapAddress();
  3478. Color4bv := GetCapAddress();
  3479. Color4d := GetCapAddress();
  3480. Color4dv := GetCapAddress();
  3481. Color4f := GetCapAddress();
  3482. Color4fv := GetCapAddress();
  3483. Color4i := GetCapAddress();
  3484. Color4iv := GetCapAddress();
  3485. Color4s := GetCapAddress();
  3486. Color4sv := GetCapAddress();
  3487. Color4ub := GetCapAddress();
  3488. Color4ubv := GetCapAddress();
  3489. Color4ui := GetCapAddress();
  3490. Color4uiv := GetCapAddress();
  3491. Color4us := GetCapAddress();
  3492. Color4usv := GetCapAddress();
  3493. ColorMaterial := GetCapAddress();
  3494. ColorPointer := GetCapAddress();
  3495. CopyPixels := GetCapAddress();
  3496. DeleteLists := GetCapAddress();
  3497. DisableClientState := GetCapAddress();
  3498. DrawPixels := GetCapAddress();
  3499. EdgeFlag := GetCapAddress();
  3500. EdgeFlagPointer := GetCapAddress();
  3501. EdgeFlagv := GetCapAddress();
  3502. EnableClientState := GetCapAddress();
  3503. End_ := GetCapAddress();
  3504. EndList := GetCapAddress();
  3505. EvalCoord1d := GetCapAddress();
  3506. EvalCoord1dv := GetCapAddress();
  3507. EvalCoord1f := GetCapAddress();
  3508. EvalCoord1fv := GetCapAddress();
  3509. EvalCoord2d := GetCapAddress();
  3510. EvalCoord2dv := GetCapAddress();
  3511. EvalCoord2f := GetCapAddress();
  3512. EvalCoord2fv := GetCapAddress();
  3513. EvalMesh1 := GetCapAddress();
  3514. EvalMesh2 := GetCapAddress();
  3515. EvalPoint1 := GetCapAddress();
  3516. EvalPoint2 := GetCapAddress();
  3517. FeedbackBuffer := GetCapAddress();
  3518. Fogf := GetCapAddress();
  3519. Fogfv := GetCapAddress();
  3520. Fogi := GetCapAddress();
  3521. Fogiv := GetCapAddress();
  3522. Frustum := GetCapAddress();
  3523. GenLists := GetCapAddress();
  3524. GetClipPlane := GetCapAddress();
  3525. GetLightfv := GetCapAddress();
  3526. GetLightiv := GetCapAddress();
  3527. GetMapdv := GetCapAddress();
  3528. GetMapfv := GetCapAddress();
  3529. GetMapiv := GetCapAddress();
  3530. GetMaterialfv := GetCapAddress();
  3531. GetMaterialiv := GetCapAddress();
  3532. GetPixelMapfv := GetCapAddress();
  3533. GetPixelMapuiv := GetCapAddress();
  3534. GetPixelMapusv := GetCapAddress();
  3535. GetPolygonStipple := GetCapAddress();
  3536. GetTexEnvfv := GetCapAddress();
  3537. GetTexEnviv := GetCapAddress();
  3538. GetTexGendv := GetCapAddress();
  3539. GetTexGenfv := GetCapAddress();
  3540. GetTexGeniv := GetCapAddress();
  3541. IndexMask := GetCapAddress();
  3542. IndexPointer := GetCapAddress();
  3543. Indexd := GetCapAddress();
  3544. Indexdv := GetCapAddress();
  3545. Indexf := GetCapAddress();
  3546. Indexfv := GetCapAddress();
  3547. Indexi := GetCapAddress();
  3548. Indexiv := GetCapAddress();
  3549. Indexs := GetCapAddress();
  3550. Indexsv := GetCapAddress();
  3551. Indexub := GetCapAddress();
  3552. Indexubv := GetCapAddress();
  3553. InitNames := GetCapAddress();
  3554. InterleavedArrays := GetCapAddress();
  3555. IsList := GetCapAddress();
  3556. LightModelf := GetCapAddress();
  3557. LightModelfv := GetCapAddress();
  3558. LightModeli := GetCapAddress();
  3559. LightModeliv := GetCapAddress();
  3560. Lightf := GetCapAddress();
  3561. Lightfv := GetCapAddress();
  3562. Lighti := GetCapAddress();
  3563. Lightiv := GetCapAddress();
  3564. LineStipple := GetCapAddress();
  3565. ListBase := GetCapAddress();
  3566. LoadIdentity := GetCapAddress();
  3567. LoadMatrixd := GetCapAddress();
  3568. LoadMatrixf := GetCapAddress();
  3569. LoadName := GetCapAddress();
  3570. Map1d := GetCapAddress();
  3571. Map1f := GetCapAddress();
  3572. Map2d := GetCapAddress();
  3573. Map2f := GetCapAddress();
  3574. MapGrid1d := GetCapAddress();
  3575. MapGrid1f := GetCapAddress();
  3576. MapGrid2d := GetCapAddress();
  3577. MapGrid2f := GetCapAddress();
  3578. Materialf := GetCapAddress();
  3579. Materialfv := GetCapAddress();
  3580. Materiali := GetCapAddress();
  3581. Materialiv := GetCapAddress();
  3582. MatrixMode := GetCapAddress();
  3583. MultMatrixd := GetCapAddress();
  3584. MultMatrixf := GetCapAddress();
  3585. NewList := GetCapAddress();
  3586. Normal3b := GetCapAddress();
  3587. Normal3bv := GetCapAddress();
  3588. Normal3d := GetCapAddress();
  3589. Normal3dv := GetCapAddress();
  3590. Normal3f := GetCapAddress();
  3591. Normal3fv := GetCapAddress();
  3592. Normal3i := GetCapAddress();
  3593. Normal3iv := GetCapAddress();
  3594. Normal3s := GetCapAddress();
  3595. Normal3sv := GetCapAddress();
  3596. NormalPointer := GetCapAddress();
  3597. Ortho := GetCapAddress();
  3598. PassThrough := GetCapAddress();
  3599. PixelMapfv := GetCapAddress();
  3600. PixelMapuiv := GetCapAddress();
  3601. PixelMapusv := GetCapAddress();
  3602. PixelTransferf := GetCapAddress();
  3603. PixelTransferi := GetCapAddress();
  3604. PixelZoom := GetCapAddress();
  3605. PolygonStipple := GetCapAddress();
  3606. PopAttrib := GetCapAddress();
  3607. PopClientAttrib := GetCapAddress();
  3608. PopMatrix := GetCapAddress();
  3609. PopName := GetCapAddress();
  3610. PrioritizeTextures := GetCapAddress();
  3611. PushAttrib := GetCapAddress();
  3612. PushClientAttrib := GetCapAddress();
  3613. PushMatrix := GetCapAddress();
  3614. PushName := GetCapAddress();
  3615. RasterPos2d := GetCapAddress();
  3616. RasterPos2dv := GetCapAddress();
  3617. RasterPos2f := GetCapAddress();
  3618. RasterPos2fv := GetCapAddress();
  3619. RasterPos2i := GetCapAddress();
  3620. RasterPos2iv := GetCapAddress();
  3621. RasterPos2s := GetCapAddress();
  3622. RasterPos2sv := GetCapAddress();
  3623. RasterPos3d := GetCapAddress();
  3624. RasterPos3dv := GetCapAddress();
  3625. RasterPos3f := GetCapAddress();
  3626. RasterPos3fv := GetCapAddress();
  3627. RasterPos3i := GetCapAddress();
  3628. RasterPos3iv := GetCapAddress();
  3629. RasterPos3s := GetCapAddress();
  3630. RasterPos3sv := GetCapAddress();
  3631. RasterPos4d := GetCapAddress();
  3632. RasterPos4dv := GetCapAddress();
  3633. RasterPos4f := GetCapAddress();
  3634. RasterPos4fv := GetCapAddress();
  3635. RasterPos4i := GetCapAddress();
  3636. RasterPos4iv := GetCapAddress();
  3637. RasterPos4s := GetCapAddress();
  3638. RasterPos4sv := GetCapAddress();
  3639. Rectd := GetCapAddress();
  3640. Rectdv := GetCapAddress();
  3641. Rectf := GetCapAddress();
  3642. Rectfv := GetCapAddress();
  3643. Recti := GetCapAddress();
  3644. Rectiv := GetCapAddress();
  3645. Rects := GetCapAddress();
  3646. Rectsv := GetCapAddress();
  3647. RenderMode := GetCapAddress();
  3648. Rotated := GetCapAddress();
  3649. Rotatef := GetCapAddress();
  3650. Scaled := GetCapAddress();
  3651. Scalef := GetCapAddress();
  3652. SelectBuffer := GetCapAddress();
  3653. ShadeModel := GetCapAddress();
  3654. TexCoord1d := GetCapAddress();
  3655. TexCoord1dv := GetCapAddress();
  3656. TexCoord1f := GetCapAddress();
  3657. TexCoord1fv := GetCapAddress();
  3658. TexCoord1i := GetCapAddress();
  3659. TexCoord1iv := GetCapAddress();
  3660. TexCoord1s := GetCapAddress();
  3661. TexCoord1sv := GetCapAddress();
  3662. TexCoord2d := GetCapAddress();
  3663. TexCoord2dv := GetCapAddress();
  3664. TexCoord2f := GetCapAddress();
  3665. TexCoord2fv := GetCapAddress();
  3666. TexCoord2i := GetCapAddress();
  3667. TexCoord2iv := GetCapAddress();
  3668. TexCoord2s := GetCapAddress();
  3669. TexCoord2sv := GetCapAddress();
  3670. TexCoord3d := GetCapAddress();
  3671. TexCoord3dv := GetCapAddress();
  3672. TexCoord3f := GetCapAddress();
  3673. TexCoord3fv := GetCapAddress();
  3674. TexCoord3i := GetCapAddress();
  3675. TexCoord3iv := GetCapAddress();
  3676. TexCoord3s := GetCapAddress();
  3677. TexCoord3sv := GetCapAddress();
  3678. TexCoord4d := GetCapAddress();
  3679. TexCoord4dv := GetCapAddress();
  3680. TexCoord4f := GetCapAddress();
  3681. TexCoord4fv := GetCapAddress();
  3682. TexCoord4i := GetCapAddress();
  3683. TexCoord4iv := GetCapAddress();
  3684. TexCoord4s := GetCapAddress();
  3685. TexCoord4sv := GetCapAddress();
  3686. TexCoordPointer := GetCapAddress();
  3687. TexEnvf := GetCapAddress();
  3688. TexEnvfv := GetCapAddress();
  3689. TexEnvi := GetCapAddress();
  3690. TexEnviv := GetCapAddress();
  3691. TexGend := GetCapAddress();
  3692. TexGendv := GetCapAddress();
  3693. TexGenf := GetCapAddress();
  3694. TexGenfv := GetCapAddress();
  3695. TexGeni := GetCapAddress();
  3696. TexGeniv := GetCapAddress();
  3697. Translated := GetCapAddress();
  3698. Translatef := GetCapAddress();
  3699. Vertex2d := GetCapAddress();
  3700. Vertex2dv := GetCapAddress();
  3701. Vertex2f := GetCapAddress();
  3702. Vertex2fv := GetCapAddress();
  3703. Vertex2i := GetCapAddress();
  3704. Vertex2iv := GetCapAddress();
  3705. Vertex2s := GetCapAddress();
  3706. Vertex2sv := GetCapAddress();
  3707. Vertex3d := GetCapAddress();
  3708. Vertex3dv := GetCapAddress();
  3709. Vertex3f := GetCapAddress();
  3710. Vertex3fv := GetCapAddress();
  3711. Vertex3i := GetCapAddress();
  3712. Vertex3iv := GetCapAddress();
  3713. Vertex3s := GetCapAddress();
  3714. Vertex3sv := GetCapAddress();
  3715. Vertex4d := GetCapAddress();
  3716. Vertex4dv := GetCapAddress();
  3717. Vertex4f := GetCapAddress();
  3718. Vertex4fv := GetCapAddress();
  3719. Vertex4i := GetCapAddress();
  3720. Vertex4iv := GetCapAddress();
  3721. Vertex4s := GetCapAddress();
  3722. Vertex4sv := GetCapAddress();
  3723. VertexPointer := GetCapAddress();
  3724. BlendColor := GetCapAddress();
  3725. BlendEquation := GetCapAddress();
  3726. DrawRangeElements := GetCapAddress();
  3727. TexImage3D := GetCapAddress();
  3728. TexSubImage3D := GetCapAddress();
  3729. CopyTexSubImage3D := GetCapAddress();
  3730. IsRenderbuffer := GetCapAddress();
  3731. BindRenderbuffer := GetCapAddress();
  3732. DeleteRenderbuffers := GetCapAddress();
  3733. GenRenderbuffers := GetCapAddress();
  3734. RenderbufferStorage := GetCapAddress();
  3735. RenderbufferStorageMultisample := GetCapAddress();
  3736. GetRenderbufferParameteriv := GetCapAddress();
  3737. IsFramebuffer := GetCapAddress();
  3738. BindFramebuffer := GetCapAddress();
  3739. DeleteFramebuffers := GetCapAddress();
  3740. GenFramebuffers := GetCapAddress();
  3741. CheckFramebufferStatus := GetCapAddress();
  3742. FramebufferTexture := GetCapAddress();
  3743. FramebufferTexture1D := GetCapAddress();
  3744. FramebufferTexture2D := GetCapAddress();
  3745. FramebufferTexture3D := GetCapAddress();
  3746. FramebufferTextureLayer := GetCapAddress();
  3747. FramebufferTextureFace := GetCapAddress();
  3748. FramebufferRenderbuffer := GetCapAddress();
  3749. GetFramebufferAttachmentParameteriv := GetCapAddress();
  3750. BlitFramebuffer := GetCapAddress();
  3751. GenerateMipmap := GetCapAddress();
  3752. ClearBufferiv := GetCapAddress();
  3753. ClearBufferuiv := GetCapAddress();
  3754. ClearBufferfv := GetCapAddress();
  3755. ClearBufferfi := GetCapAddress();
  3756. LockArrays := GetCapAddress();
  3757. UnlockArrays := GetCapAddress();
  3758. BindBuffer := GetCapAddress();
  3759. DeleteBuffers := GetCapAddress();
  3760. GenBuffers := GetCapAddress();
  3761. IsBuffer := GetCapAddress();
  3762. BufferData := GetCapAddress();
  3763. BufferSubData := GetCapAddress();
  3764. GetBufferSubData := GetCapAddress();
  3765. MapBuffer := GetCapAddress();
  3766. UnmapBuffer := GetCapAddress();
  3767. GetBufferParameteriv := GetCapAddress();
  3768. GetBufferPointerv := GetCapAddress();
  3769. MapBufferRange := GetCapAddress();
  3770. FlushMappedBufferRange := GetCapAddress();
  3771. BindBufferRange := GetCapAddress();
  3772. BindBufferOffset := GetCapAddress();
  3773. BindBufferBase := GetCapAddress();
  3774. BeginTransformFeedback := GetCapAddress();
  3775. EndTransformFeedback := GetCapAddress();
  3776. TransformFeedbackVaryings := GetCapAddress();
  3777. GetTransformFeedbackVarying := GetCapAddress();
  3778. TransformFeedbackAttribs := GetCapAddress();
  3779. TransformFeedbackVaryingsNV := GetCapAddress();
  3780. TexBuffer := GetCapAddress();
  3781. BindVertexArray := GetCapAddress();
  3782. DeleteVertexArrays := GetCapAddress();
  3783. GenVertexArrays := GetCapAddress();
  3784. IsVertexArray := GetCapAddress();
  3785. FlushVertexArrayRangeNV := GetCapAddress();
  3786. VertexArrayRangeNV := GetCapAddress();
  3787. CopyBufferSubData := GetCapAddress();
  3788. UniformBuffer := GetCapAddress();
  3789. GetUniformBufferSize := GetCapAddress();
  3790. GetUniformOffset := GetCapAddress();
  3791. PrimitiveRestartIndex := GetCapAddress();
  3792. DrawElementsBaseVertex := GetCapAddress();
  3793. DrawRangeElementsBaseVertex := GetCapAddress();
  3794. DrawElementsInstancedBaseVertex := GetCapAddress();
  3795. MultiDrawElementsBaseVertex := GetCapAddress();
  3796. DrawArraysInstanced := GetCapAddress();
  3797. DrawElementsInstanced := GetCapAddress();
  3798. VertexAttrib1d := GetCapAddress();
  3799. VertexAttrib1dv := GetCapAddress();
  3800. VertexAttrib1f := GetCapAddress();
  3801. VertexAttrib1fv := GetCapAddress();
  3802. VertexAttrib1s := GetCapAddress();
  3803. VertexAttrib1sv := GetCapAddress();
  3804. VertexAttrib2d := GetCapAddress();
  3805. VertexAttrib2dv := GetCapAddress();
  3806. VertexAttrib2f := GetCapAddress();
  3807. VertexAttrib2fv := GetCapAddress();
  3808. VertexAttrib2s := GetCapAddress();
  3809. VertexAttrib2sv := GetCapAddress();
  3810. VertexAttrib3d := GetCapAddress();
  3811. VertexAttrib3dv := GetCapAddress();
  3812. VertexAttrib3f := GetCapAddress();
  3813. VertexAttrib3fv := GetCapAddress();
  3814. VertexAttrib3s := GetCapAddress();
  3815. VertexAttrib3sv := GetCapAddress();
  3816. VertexAttrib4Nbv := GetCapAddress();
  3817. VertexAttrib4Niv := GetCapAddress();
  3818. VertexAttrib4Nsv := GetCapAddress();
  3819. VertexAttrib4Nub := GetCapAddress();
  3820. VertexAttrib4Nubv := GetCapAddress();
  3821. VertexAttrib4Nuiv := GetCapAddress();
  3822. VertexAttrib4Nusv := GetCapAddress();
  3823. VertexAttrib4bv := GetCapAddress();
  3824. VertexAttrib4d := GetCapAddress();
  3825. VertexAttrib4dv := GetCapAddress();
  3826. VertexAttrib4f := GetCapAddress();
  3827. VertexAttrib4fv := GetCapAddress();
  3828. VertexAttrib4iv := GetCapAddress();
  3829. VertexAttrib4s := GetCapAddress();
  3830. VertexAttrib4sv := GetCapAddress();
  3831. VertexAttrib4ubv := GetCapAddress();
  3832. VertexAttrib4uiv := GetCapAddress();
  3833. VertexAttrib4usv := GetCapAddress();
  3834. VertexAttribPointer := GetCapAddress();
  3835. VertexAttribI1i := GetCapAddress();
  3836. VertexAttribI2i := GetCapAddress();
  3837. VertexAttribI3i := GetCapAddress();
  3838. VertexAttribI4i := GetCapAddress();
  3839. VertexAttribI1ui := GetCapAddress();
  3840. VertexAttribI2ui := GetCapAddress();
  3841. VertexAttribI3ui := GetCapAddress();
  3842. VertexAttribI4ui := GetCapAddress();
  3843. VertexAttribI1iv := GetCapAddress();
  3844. VertexAttribI2iv := GetCapAddress();
  3845. VertexAttribI3iv := GetCapAddress();
  3846. VertexAttribI4iv := GetCapAddress();
  3847. VertexAttribI1uiv := GetCapAddress();
  3848. VertexAttribI2uiv := GetCapAddress();
  3849. VertexAttribI3uiv := GetCapAddress();
  3850. VertexAttribI4uiv := GetCapAddress();
  3851. VertexAttribI4bv := GetCapAddress();
  3852. VertexAttribI4sv := GetCapAddress();
  3853. VertexAttribI4ubv := GetCapAddress();
  3854. VertexAttribI4usv := GetCapAddress();
  3855. VertexAttribIPointer := GetCapAddress();
  3856. GetVertexAttribIiv := GetCapAddress();
  3857. GetVertexAttribIuiv := GetCapAddress();
  3858. EnableVertexAttribArray := GetCapAddress();
  3859. DisableVertexAttribArray := GetCapAddress();
  3860. VertexAttribDivisor := GetCapAddress();
  3861. GenQueries := GetCapAddress();
  3862. DeleteQueries := GetCapAddress();
  3863. IsQuery := GetCapAddress();
  3864. BeginQuery := GetCapAddress();
  3865. EndQuery := GetCapAddress();
  3866. GetQueryiv := GetCapAddress();
  3867. GetQueryObjectiv := GetCapAddress();
  3868. GetQueryObjectuiv := GetCapAddress();
  3869. QueryCounter := GetCapAddress();
  3870. GetQueryObjecti64v := GetCapAddress();
  3871. GetQueryObjectui64v := GetCapAddress();
  3872. DeleteObject := GetCapAddress();
  3873. GetHandle := GetCapAddress();
  3874. DetachShader := GetCapAddress();
  3875. CreateShader := GetCapAddress();
  3876. ShaderSource := GetCapAddress();
  3877. CompileShader := GetCapAddress();
  3878. CreateProgram := GetCapAddress();
  3879. AttachShader := GetCapAddress();
  3880. LinkProgram := GetCapAddress();
  3881. UseProgram := GetCapAddress();
  3882. ValidateProgram := GetCapAddress();
  3883. Uniform1f := GetCapAddress();
  3884. Uniform2f := GetCapAddress();
  3885. Uniform3f := GetCapAddress();
  3886. Uniform4f := GetCapAddress();
  3887. Uniform1i := GetCapAddress();
  3888. Uniform2i := GetCapAddress();
  3889. Uniform3i := GetCapAddress();
  3890. Uniform4i := GetCapAddress();
  3891. Uniform1fv := GetCapAddress();
  3892. Uniform2fv := GetCapAddress();
  3893. Uniform3fv := GetCapAddress();
  3894. Uniform4fv := GetCapAddress();
  3895. Uniform1iv := GetCapAddress();
  3896. Uniform2iv := GetCapAddress();
  3897. Uniform3iv := GetCapAddress();
  3898. Uniform4iv := GetCapAddress();
  3899. Uniform1ui := GetCapAddress();
  3900. Uniform2ui := GetCapAddress();
  3901. Uniform3ui := GetCapAddress();
  3902. Uniform4ui := GetCapAddress();
  3903. Uniform1uiv := GetCapAddress();
  3904. Uniform2uiv := GetCapAddress();
  3905. Uniform3uiv := GetCapAddress();
  3906. Uniform4uiv := GetCapAddress();
  3907. GetUniformuiv := GetCapAddress();
  3908. UniformMatrix2fv := GetCapAddress();
  3909. UniformMatrix3fv := GetCapAddress();
  3910. UniformMatrix4fv := GetCapAddress();
  3911. BindFragDataLocation := GetCapAddress();
  3912. GetFragDataLocation := GetCapAddress();
  3913. ClampColor := GetCapAddress();
  3914. ColorMaski := GetCapAddress();
  3915. GetBooleani_v := GetCapAddress();
  3916. GetIntegeri_v := GetCapAddress();
  3917. Enablei := GetCapAddress();
  3918. Disablei := GetCapAddress();
  3919. IsEnabledi := GetCapAddress();
  3920. BindFragDataLocationIndexed := GetCapAddress();
  3921. GetFragDataIndex := GetCapAddress();
  3922. GetObjectParameterfv := GetCapAddress();
  3923. GetObjectParameteriv := GetCapAddress();
  3924. GetAttachedObjects := GetCapAddress();
  3925. GetActiveAttrib := GetCapAddress();
  3926. GetActiveUniform := GetCapAddress();
  3927. GetAttachedShaders := GetCapAddress();
  3928. GetAttribLocation := GetCapAddress();
  3929. GetProgramiv := GetCapAddress();
  3930. GetProgramInfoLog := GetCapAddress();
  3931. GetShaderiv := GetCapAddress();
  3932. GetInfoLog := GetCapAddress();
  3933. GetShaderInfoLog := GetCapAddress();
  3934. GetShaderSource := GetCapAddress();
  3935. GetUniformLocation := GetCapAddress();
  3936. GetUniformfv := GetCapAddress();
  3937. GetUniformiv := GetCapAddress();
  3938. GetVertexAttribdv := GetCapAddress();
  3939. GetVertexAttribfv := GetCapAddress();
  3940. GetVertexAttribiv := GetCapAddress();
  3941. GetVertexAttribPointerv := GetCapAddress();
  3942. IsProgram := GetCapAddress();
  3943. IsShader := GetCapAddress();
  3944. GetUniformLocation := GetCapAddress();
  3945. BindAttribLocation := GetCapAddress();
  3946. GetVaryingLocation := GetCapAddress();
  3947. GetActiveVarying := GetCapAddress();
  3948. ActiveVarying := GetCapAddress();
  3949. GetUniformIndices := GetCapAddress();
  3950. GetActiveUniformsiv := GetCapAddress();
  3951. GetActiveUniformName := GetCapAddress();
  3952. GetUniformBlockIndex := GetCapAddress();
  3953. GetActiveUniformBlockiv := GetCapAddress();
  3954. GetActiveUniformBlockName := GetCapAddress();
  3955. UniformBlockBinding := GetCapAddress();
  3956. GetProgramBinary := GetCapAddress();
  3957. ProgramBinary := GetCapAddress();
  3958. UseProgramStages := GetCapAddress();
  3959. ActiveShaderProgram := GetCapAddress();
  3960. CreateShaderProgramv := GetCapAddress();
  3961. BindProgramPipeline := GetCapAddress();
  3962. DeleteProgramPipelines := GetCapAddress();
  3963. GenProgramPipelines := GetCapAddress();
  3964. IsProgramPipeline := GetCapAddress();
  3965. GetProgramPipelineiv := GetCapAddress();
  3966. ProgramUniform1i := GetCapAddress();
  3967. ProgramUniform1iv := GetCapAddress();
  3968. ProgramUniform1f := GetCapAddress();
  3969. ProgramUniform1fv := GetCapAddress();
  3970. ProgramUniform1d := GetCapAddress();
  3971. ProgramUniform1dv := GetCapAddress();
  3972. ProgramUniform1ui := GetCapAddress();
  3973. ProgramUniform1uiv := GetCapAddress();
  3974. ProgramUniform2i := GetCapAddress();
  3975. ProgramUniform2iv := GetCapAddress();
  3976. ProgramUniform2f := GetCapAddress();
  3977. ProgramUniform2fv := GetCapAddress();
  3978. ProgramUniform2d := GetCapAddress();
  3979. ProgramUniform2dv := GetCapAddress();
  3980. ProgramUniform2ui := GetCapAddress();
  3981. ProgramUniform2uiv := GetCapAddress();
  3982. ProgramUniform3i := GetCapAddress();
  3983. ProgramUniform3iv := GetCapAddress();
  3984. ProgramUniform3f := GetCapAddress();
  3985. ProgramUniform3fv := GetCapAddress();
  3986. ProgramUniform3d := GetCapAddress();
  3987. ProgramUniform3dv := GetCapAddress();
  3988. ProgramUniform3ui := GetCapAddress();
  3989. ProgramUniform3uiv := GetCapAddress();
  3990. ProgramUniform4i := GetCapAddress();
  3991. ProgramUniform4iv := GetCapAddress();
  3992. ProgramUniform4f := GetCapAddress();
  3993. ProgramUniform4fv := GetCapAddress();
  3994. ProgramUniform4d := GetCapAddress();
  3995. ProgramUniform4dv := GetCapAddress();
  3996. ProgramUniform4ui := GetCapAddress();
  3997. ProgramUniform4uiv := GetCapAddress();
  3998. ProgramUniformMatrix2fv := GetCapAddress();
  3999. ProgramUniformMatrix3fv := GetCapAddress();
  4000. ProgramUniformMatrix4fv := GetCapAddress();
  4001. ProgramUniformMatrix2dv := GetCapAddress();
  4002. ProgramUniformMatrix3dv := GetCapAddress();
  4003. ProgramUniformMatrix4dv := GetCapAddress();
  4004. ProgramUniformMatrix2x3fv := GetCapAddress();
  4005. ProgramUniformMatrix3x2fv := GetCapAddress();
  4006. ProgramUniformMatrix2x4fv := GetCapAddress();
  4007. ProgramUniformMatrix4x2fv := GetCapAddress();
  4008. ProgramUniformMatrix3x4fv := GetCapAddress();
  4009. ProgramUniformMatrix4x3fv := GetCapAddress();
  4010. ProgramUniformMatrix2x3dv := GetCapAddress();
  4011. ProgramUniformMatrix3x2dv := GetCapAddress();
  4012. ProgramUniformMatrix2x4dv := GetCapAddress();
  4013. ProgramUniformMatrix4x2dv := GetCapAddress();
  4014. ProgramUniformMatrix3x4dv := GetCapAddress();
  4015. ProgramUniformMatrix4x3dv := GetCapAddress();
  4016. ValidateProgramPipeline := GetCapAddress();
  4017. GetProgramPipelineInfoLog := GetCapAddress();
  4018. DrawBuffers := GetCapAddress();
  4019. ActiveTexture := GetCapAddress();
  4020. CompressedTexImage3D := GetCapAddress();
  4021. CompressedTexImage2D := GetCapAddress();
  4022. CompressedTexImage1D := GetCapAddress();
  4023. CompressedTexSubImage3D := GetCapAddress();
  4024. CompressedTexSubImage2D := GetCapAddress();
  4025. CompressedTexSubImage1D := GetCapAddress();
  4026. GetCompressedTexImage := GetCapAddress();
  4027. ClientActiveTexture := GetCapAddress();
  4028. MultiTexCoord1d := GetCapAddress();
  4029. MultiTexCoord1dV := GetCapAddress();
  4030. MultiTexCoord1f := GetCapAddress();
  4031. MultiTexCoord1fv := GetCapAddress();
  4032. MultiTexCoord1i := GetCapAddress();
  4033. MultiTexCoord1iv := GetCapAddress();
  4034. MultiTexCoord1s := GetCapAddress();
  4035. MultiTexCoord1sv := GetCapAddress();
  4036. MultiTexCoord2d := GetCapAddress();
  4037. MultiTexCoord2dv := GetCapAddress();
  4038. MultiTexCoord2f := GetCapAddress();
  4039. MultiTexCoord2fv := GetCapAddress();
  4040. MultiTexCoord2i := GetCapAddress();
  4041. MultiTexCoord2iv := GetCapAddress();
  4042. MultiTexCoord2s := GetCapAddress();
  4043. MultiTexCoord2sv := GetCapAddress();
  4044. MultiTexCoord3d := GetCapAddress();
  4045. MultiTexCoord3dv := GetCapAddress();
  4046. MultiTexCoord3f := GetCapAddress();
  4047. MultiTexCoord3fv := GetCapAddress();
  4048. MultiTexCoord3i := GetCapAddress();
  4049. MultiTexCoord3iv := GetCapAddress();
  4050. MultiTexCoord3s := GetCapAddress();
  4051. MultiTexCoord3sv := GetCapAddress();
  4052. MultiTexCoord4d := GetCapAddress();
  4053. MultiTexCoord4dv := GetCapAddress();
  4054. MultiTexCoord4f := GetCapAddress();
  4055. MultiTexCoord4fv := GetCapAddress();
  4056. MultiTexCoord4i := GetCapAddress();
  4057. MultiTexCoord4iv := GetCapAddress();
  4058. MultiTexCoord4s := GetCapAddress();
  4059. MultiTexCoord4sv := GetCapAddress();
  4060. GetInteger64i_v := GetCapAddress();
  4061. GetBufferParameteri64v := GetCapAddress();
  4062. ProgramParameteri := GetCapAddress();
  4063. ProgramString := GetCapAddress();
  4064. BindProgram := GetCapAddress();
  4065. DeletePrograms := GetCapAddress();
  4066. GenPrograms := GetCapAddress();
  4067. ProgramEnvParameter4d := GetCapAddress();
  4068. ProgramEnvParameter4dv := GetCapAddress();
  4069. ProgramEnvParameter4f := GetCapAddress();
  4070. ProgramEnvParameter4fv := GetCapAddress();
  4071. ProgramLocalParameter4d := GetCapAddress();
  4072. ProgramLocalParameter4dv := GetCapAddress();
  4073. ProgramLocalParameter4f := GetCapAddress();
  4074. ProgramLocalParameter4fv := GetCapAddress();
  4075. GetProgramEnvParameterdv := GetCapAddress();
  4076. GetProgramEnvParameterfv := GetCapAddress();
  4077. GetProgramLocalParameterdv := GetCapAddress();
  4078. GetProgramLocalParameterfv := GetCapAddress();
  4079. ClearColorIi := GetCapAddress();
  4080. ClearColorIui := GetCapAddress();
  4081. TexParameterIiv := GetCapAddress();
  4082. TexParameterIuiv := GetCapAddress();
  4083. GetTexParameterIiv := GetCapAddress();
  4084. GetTexParameterIuiv := GetCapAddress();
  4085. PatchParameteri := GetCapAddress();
  4086. PatchParameterfv := GetCapAddress();
  4087. BufferAddressRangeNV := GetCapAddress();
  4088. VertexFormatNV := GetCapAddress();
  4089. NormalFormatNV := GetCapAddress();
  4090. ColorFormatNV := GetCapAddress();
  4091. IndexFormatNV := GetCapAddress();
  4092. TexCoordFormatNV := GetCapAddress();
  4093. EdgeFlagFormatNV := GetCapAddress();
  4094. SecondaryColorFormatNV := GetCapAddress();
  4095. FogCoordFormatNV := GetCapAddress();
  4096. VertexAttribFormatNV := GetCapAddress();
  4097. VertexAttribIFormatNV := GetCapAddress();
  4098. GetIntegerui64i_vNV := GetCapAddress();
  4099. GetBufferParameterui64vNV := GetCapAddress();
  4100. MakeBufferResidentNV := GetCapAddress();
  4101. MakeBufferNonResidentNV := GetCapAddress();
  4102. IsBufferResidentNV := GetCapAddress();
  4103. MakeNamedBufferResidentNV := GetCapAddress();
  4104. MakeNamedBufferNonResidentNV := GetCapAddress();
  4105. IsNamedBufferResidentNV := GetCapAddress();
  4106. GetNamedBufferParameterui64vNV := GetCapAddress();
  4107. GetIntegerui64vNV := GetCapAddress();
  4108. Uniformui64NV := GetCapAddress();
  4109. Uniformui64vNV := GetCapAddress();
  4110. GetUniformui64vNV := GetCapAddress();
  4111. ProgramUniformui64NV := GetCapAddress();
  4112. ProgramUniformui64vNV := GetCapAddress();
  4113. TexImage2DMultisample := GetCapAddress();
  4114. TexImage3DMultisample := GetCapAddress();
  4115. GetMultisamplefv := GetCapAddress();
  4116. SampleMaski := GetCapAddress();
  4117. ProvokingVertex := GetCapAddress();
  4118. FenceSync := GetCapAddress();
  4119. IsSync := GetCapAddress();
  4120. DeleteSync := GetCapAddress();
  4121. ClientWaitSync := GetCapAddress();
  4122. WaitSync := GetCapAddress();
  4123. GetInteger64v := GetCapAddress();
  4124. GetSynciv := GetCapAddress();
  4125. BlendEquationi := GetCapAddress();
  4126. BlendEquationSeparatei := GetCapAddress();
  4127. BlendFunci := GetCapAddress();
  4128. BlendFuncSeparatei := GetCapAddress();
  4129. MinSampleShading := GetCapAddress();
  4130. GenSamplers := GetCapAddress();
  4131. DeleteSamplers := GetCapAddress();
  4132. IsSampler := GetCapAddress();
  4133. BindSampler := GetCapAddress();
  4134. SamplerParameteri := GetCapAddress();
  4135. SamplerParameteriv := GetCapAddress();
  4136. SamplerParameterf := GetCapAddress();
  4137. SamplerParameterfv := GetCapAddress();
  4138. SamplerParameterIiv := GetCapAddress();
  4139. SamplerParameterIuiv := GetCapAddress();
  4140. GetSamplerParameteriv := GetCapAddress();
  4141. GetSamplerParameterIiv := GetCapAddress();
  4142. GetSamplerParameterfv := GetCapAddress();
  4143. GetSamplerParameterIfv := GetCapAddress();
  4144. ClientAttribDefault := GetCapAddress();
  4145. PushClientAttribDefault := GetCapAddress();
  4146. MatrixLoadf := GetCapAddress();
  4147. MatrixLoadd := GetCapAddress();
  4148. MatrixMultf := GetCapAddress();
  4149. MatrixMultd := GetCapAddress();
  4150. MatrixLoadIdentity := GetCapAddress();
  4151. MatrixRotatef := GetCapAddress();
  4152. MatrixRotated := GetCapAddress();
  4153. MatrixScalef := GetCapAddress();
  4154. MatrixScaled := GetCapAddress();
  4155. MatrixTranslatef := GetCapAddress();
  4156. MatrixTranslated := GetCapAddress();
  4157. MatrixFrustum := GetCapAddress();
  4158. MatrixOrtho := GetCapAddress();
  4159. MatrixPop := GetCapAddress();
  4160. MatrixPush := GetCapAddress();
  4161. MatrixLoadTransposef := GetCapAddress();
  4162. MatrixLoadTransposed := GetCapAddress();
  4163. MatrixMultTransposef := GetCapAddress();
  4164. MatrixMultTransposed := GetCapAddress();
  4165. TextureParameterfv := GetCapAddress();
  4166. TextureParameteri := GetCapAddress();
  4167. TextureParameteriv := GetCapAddress();
  4168. TextureImage1D := GetCapAddress();
  4169. TextureImage2D := GetCapAddress();
  4170. TextureSubImage1D := GetCapAddress();
  4171. TextureSubImage2D := GetCapAddress();
  4172. CopyTextureImage1D := GetCapAddress();
  4173. CopyTextureImage2D := GetCapAddress();
  4174. CopyTextureSubImage1D := GetCapAddress();
  4175. CopyTextureSubImage2D := GetCapAddress();
  4176. GetTextureImage := GetCapAddress();
  4177. GetTextureParameterfv := GetCapAddress();
  4178. GetTextureParameteriv := GetCapAddress();
  4179. GetTextureLevelParameterfv := GetCapAddress();
  4180. GetTextureLevelParameteriv := GetCapAddress();
  4181. TextureImage3D := GetCapAddress();
  4182. TextureSubImage3D := GetCapAddress();
  4183. CopyTextureSubImage3D := GetCapAddress();
  4184. MultiTexParameterf := GetCapAddress();
  4185. MultiTexParameterfv := GetCapAddress();
  4186. MultiTexParameteri := GetCapAddress();
  4187. MultiTexParameteriv := GetCapAddress();
  4188. MultiTexImage1D := GetCapAddress();
  4189. MultiTexImage2D := GetCapAddress();
  4190. MultiTexSubImage1D := GetCapAddress();
  4191. MultiTexSubImage2D := GetCapAddress();
  4192. CopyMultiTexImage1D := GetCapAddress();
  4193. CopyMultiTexImage2D := GetCapAddress();
  4194. CopyMultiTexSubImage1D := GetCapAddress();
  4195. CopyMultiTexSubImage2D := GetCapAddress();
  4196. GetMultiTexImage := GetCapAddress();
  4197. GetMultiTexParameterfv := GetCapAddress();
  4198. GetMultiTexParameteriv := GetCapAddress();
  4199. GetMultiTexLevelParameterfv := GetCapAddress();
  4200. GetMultiTexLevelParameteriv := GetCapAddress();
  4201. MultiTexImage3D := GetCapAddress();
  4202. MultiTexSubImage3D := GetCapAddress();
  4203. CopyMultiTexSubImage3D := GetCapAddress();
  4204. BindMultiTexture := GetCapAddress();
  4205. EnableClientStateIndexed := GetCapAddress();
  4206. DisableClientStateIndexed := GetCapAddress();
  4207. MultiTexCoordPointer := GetCapAddress();
  4208. MultiTexEnvf := GetCapAddress();
  4209. MultiTexEnvfv := GetCapAddress();
  4210. MultiTexEnvi := GetCapAddress();
  4211. MultiTexEnviv := GetCapAddress();
  4212. MultiTexGend := GetCapAddress();
  4213. MultiTexGendv := GetCapAddress();
  4214. MultiTexGenf := GetCapAddress();
  4215. MultiTexGenfv := GetCapAddress();
  4216. MultiTexGeni := GetCapAddress();
  4217. MultiTexGeniv := GetCapAddress();
  4218. GetMultiTexEnvfv := GetCapAddress();
  4219. GetMultiTexEnviv := GetCapAddress();
  4220. GetMultiTexGendv := GetCapAddress();
  4221. GetMultiTexGenfv := GetCapAddress();
  4222. GetMultiTexGeniv := GetCapAddress();
  4223. GetFloatIndexedv := GetCapAddress();
  4224. GetDoubleIndexedv := GetCapAddress();
  4225. GetPointerIndexedv := GetCapAddress();
  4226. CompressedTextureImage3D := GetCapAddress();
  4227. CompressedTextureImage2D := GetCapAddress();
  4228. CompressedTextureImage1D := GetCapAddress();
  4229. CompressedTextureSubImage3D := GetCapAddress();
  4230. CompressedTextureSubImage2D := GetCapAddress();
  4231. CompressedTextureSubImage1D := GetCapAddress();
  4232. GetCompressedTextureImage := GetCapAddress();
  4233. CompressedMultiTexImage3D := GetCapAddress();
  4234. CompressedMultiTexImage2D := GetCapAddress();
  4235. CompressedMultiTexImage1D := GetCapAddress();
  4236. CompressedMultiTexSubImage3D := GetCapAddress();
  4237. CompressedMultiTexSubImage2D := GetCapAddress();
  4238. CompressedMultiTexSubImage1D := GetCapAddress();
  4239. GetCompressedMultiTexImage := GetCapAddress();
  4240. NamedProgramString := GetCapAddress();
  4241. NamedProgramLocalParameter4d := GetCapAddress();
  4242. NamedProgramLocalParameter4dv := GetCapAddress();
  4243. NamedProgramLocalParameter4f := GetCapAddress();
  4244. NamedProgramLocalParameter4fv := GetCapAddress();
  4245. GetNamedProgramLocalParameterdv := GetCapAddress();
  4246. GetNamedProgramLocalParameterfv := GetCapAddress();
  4247. GetNamedProgramiv := GetCapAddress();
  4248. GetNamedProgramString := GetCapAddress();
  4249. NamedProgramLocalParameters4fv := GetCapAddress();
  4250. NamedProgramLocalParameterI4i := GetCapAddress();
  4251. NamedProgramLocalParameterI4iv := GetCapAddress();
  4252. NamedProgramLocalParametersI4iv := GetCapAddress();
  4253. NamedProgramLocalParameterI4ui := GetCapAddress();
  4254. NamedProgramLocalParameterI4uiv := GetCapAddress();
  4255. NamedProgramLocalParametersI4uiv := GetCapAddress();
  4256. GetNamedProgramLocalParameterIiv := GetCapAddress();
  4257. GetNamedProgramLocalParameterIuiv := GetCapAddress();
  4258. TextureParameterIiv := GetCapAddress();
  4259. TextureParameterIuiv := GetCapAddress();
  4260. GetTextureParameterIiv := GetCapAddress();
  4261. GetTextureParameterIuiv := GetCapAddress();
  4262. MultiTexParameterIiv := GetCapAddress();
  4263. MultiTexParameterIuiv := GetCapAddress();
  4264. GetMultiTexParameterIiv := GetCapAddress();
  4265. GetMultiTexParameterIuiv := GetCapAddress();
  4266. NamedBufferData := GetCapAddress();
  4267. NamedBufferSubData := GetCapAddress();
  4268. MapNamedBuffer := GetCapAddress();
  4269. UnmapNamedBuffer := GetCapAddress();
  4270. MapNamedBufferRange := GetCapAddress();
  4271. FlushMappedNamedBufferRange := GetCapAddress();
  4272. NamedCopyBufferSubData := GetCapAddress();
  4273. GetNamedBufferParameteriv := GetCapAddress();
  4274. GetNamedBufferPointerv := GetCapAddress();
  4275. GetNamedBufferSubData := GetCapAddress();
  4276. TextureBuffer := GetCapAddress();
  4277. MultiTexBuffer := GetCapAddress();
  4278. NamedRenderbufferStorage := GetCapAddress();
  4279. GetNamedRenderbufferParameteriv := GetCapAddress();
  4280. CheckNamedFramebufferStatus := GetCapAddress();
  4281. NamedFramebufferTexture1D := GetCapAddress();
  4282. NamedFramebufferTexture2D := GetCapAddress();
  4283. NamedFramebufferTexture3D := GetCapAddress();
  4284. NamedFramebufferRenderbuffer := GetCapAddress();
  4285. GetNamedFramebufferAttachmentParameteriv := GetCapAddress();
  4286. GenerateTextureMipmap := GetCapAddress();
  4287. GenerateMultiTexMipmap := GetCapAddress();
  4288. FramebufferDrawBuffer := GetCapAddress();
  4289. FramebufferDrawBuffers := GetCapAddress();
  4290. FramebufferReadBuffer := GetCapAddress();
  4291. GetFramebufferParameteriv := GetCapAddress();
  4292. NamedRenderbufferStorageMultisample := GetCapAddress();
  4293. NamedRenderbufferStorageMultisampleCoverage := GetCapAddress();
  4294. NamedFramebufferTexture := GetCapAddress();
  4295. NamedFramebufferTextureLayer := GetCapAddress();
  4296. NamedFramebufferTextureFace := GetCapAddress();
  4297. TextureRenderbuffer := GetCapAddress();
  4298. MultiTexRenderbuffer := GetCapAddress();
  4299. FrameTerminatorGREMEDY := GetCapAddress();
  4300. StringMarkerGREMEDY := GetCapAddress();
  4301. DebugMessageControl := GetCapAddress();
  4302. DebugMessageInsert := GetCapAddress();
  4303. DebugMessageCallback := GetCapAddress();
  4304. GetDebugMessageLog := GetCapAddress();
  4305. PushDebugGroup := GetCapAddress();
  4306. PopDebugGroup := GetCapAddress();
  4307. ObjectLabel := GetCapAddress();
  4308. GetObjectLabel := GetCapAddress();
  4309. ObjectPtrLabel := GetCapAddress();
  4310. GetObjectPtrLabel := GetCapAddress();
  4311. ClearBufferData := GetCapAddress();
  4312. ClearBufferSubData := GetCapAddress();
  4313. ClearNamedBufferData := GetCapAddress();
  4314. ClearNamedBufferSubData := GetCapAddress();
  4315. DispatchCompute := GetCapAddress();
  4316. DispatchComputeIndirect := GetCapAddress();
  4317. CopyImageSubData := GetCapAddress();
  4318. FramebufferParameteri := GetCapAddress();
  4319. NamedFramebufferParameteri := GetCapAddress();
  4320. GetNamedFramebufferParameteriv := GetCapAddress();
  4321. GetInternalformati64v := GetCapAddress();
  4322. InvalidateTexSubImage := GetCapAddress();
  4323. InvalidateTexImage := GetCapAddress();
  4324. InvalidateBufferSubData := GetCapAddress();
  4325. InvalidateBufferData := GetCapAddress();
  4326. InvalidateFramebuffer := GetCapAddress();
  4327. InvalidateSubFramebuffer := GetCapAddress();
  4328. MultiDrawArraysIndirect := GetCapAddress();
  4329. MultiDrawElementsIndirect := GetCapAddress();
  4330. GetProgramInterfaceiv := GetCapAddress();
  4331. GetProgramResourceIndex := GetCapAddress();
  4332. GetProgramResourceName := GetCapAddress();
  4333. GetProgramResourceiv := GetCapAddress();
  4334. GetProgramResourceLocation := GetCapAddress();
  4335. GetProgramResourceLocationIndex := GetCapAddress();
  4336. ShaderStorageBlockBinding := GetCapAddress();
  4337. TexBufferRange := GetCapAddress();
  4338. TextureBufferRange := GetCapAddress();
  4339. TexStorage2DMultisample := GetCapAddress();
  4340. TexStorage3DMultisample := GetCapAddress();
  4341. TextureStorage2DMultisample := GetCapAddress();
  4342. TextureStorage3DMultisample := GetCapAddress();
  4343. BufferStorage := GetCapAddress();
  4344. ClearTexImage := GetCapAddress();
  4345. ClearTexSubImage := GetCapAddress();
  4346. BindBuffersBase := GetCapAddress();
  4347. BindBuffersRange := GetCapAddress();
  4348. BindTextures := GetCapAddress();
  4349. BindSamplers := GetCapAddress();
  4350. BindImageTextures := GetCapAddress();
  4351. BindVertexBuffers := GetCapAddress();
  4352. TextureView := GetCapAddress();
  4353. BindVertexBuffer := GetCapAddress();
  4354. VertexAttribFormat := GetCapAddress();
  4355. VertexAttribIFormat := GetCapAddress();
  4356. VertexAttribLFormat := GetCapAddress();
  4357. VertexAttribBinding := GetCapAddress();
  4358. VertexBindingDivisor := GetCapAddress();
  4359. VertexArrayBindVertexBuffer := GetCapAddress();
  4360. VertexArrayVertexAttribFormat := GetCapAddress();
  4361. VertexArrayVertexAttribIFormat := GetCapAddress();
  4362. VertexArrayVertexAttribLFormat := GetCapAddress();
  4363. VertexArrayVertexAttribBinding := GetCapAddress();
  4364. VertexArrayVertexBindingDivisor := GetCapAddress();
  4365. CreateSyncFromCLevent := GetCapAddress();
  4366. GenPathsNV := GetCapAddress();
  4367. DeletePathsNV := GetCapAddress();
  4368. IsPathNV := GetCapAddress();
  4369. PathCommandsNV := GetCapAddress();
  4370. PathCoordsNV := GetCapAddress();
  4371. PathSubCommandsNV := GetCapAddress();
  4372. PathSubCoordsNV := GetCapAddress();
  4373. PathStringNV := GetCapAddress();
  4374. PathGlyphsNV := GetCapAddress();
  4375. PathGlyphRangeNV := GetCapAddress();
  4376. WeightPathsNV := GetCapAddress();
  4377. CopyPathNV := GetCapAddress();
  4378. InterpolatePathsNV := GetCapAddress();
  4379. PathParameterivNV := GetCapAddress();
  4380. PathParameteriNV := GetCapAddress();
  4381. PathParameterfvNV := GetCapAddress();
  4382. PathParameterfNV := GetCapAddress();
  4383. PathDashArrayNV := GetCapAddress();
  4384. PathStencilFuncNV := GetCapAddress();
  4385. StencilFillPathNV := GetCapAddress();
  4386. StencilStrokePathNV := GetCapAddress();
  4387. StencilFillPathInstancedNV := GetCapAddress();
  4388. StencilStrokePathInstancedNV := GetCapAddress();
  4389. PathColorGenNV := GetCapAddress();
  4390. PathTexGenNV := GetCapAddress();
  4391. PathFogGenNV := GetCapAddress();
  4392. CoverFillPathNV := GetCapAddress();
  4393. CoverStrokePathNV := GetCapAddress();
  4394. CoverFillPathInstancedNV := GetCapAddress();
  4395. CoverStrokePathInstancedNV := GetCapAddress();
  4396. GetPathParameterivNV := GetCapAddress();
  4397. GetPathParameterfvNV := GetCapAddress();
  4398. GetPathCommandsNV := GetCapAddress();
  4399. GetPathCoordsNV := GetCapAddress();
  4400. GetPathDashArrayNV := GetCapAddress();
  4401. GetPathMetricsNV := GetCapAddress();
  4402. GetPathMetricRangeNV := GetCapAddress();
  4403. GetPathSpacingNV := GetCapAddress();
  4404. GetPathColorGenivNV := GetCapAddress();
  4405. GetPathColorGenfvNV := GetCapAddress();
  4406. GetPathTexGenivNV := GetCapAddress();
  4407. GetPathTexGenfvNV := GetCapAddress();
  4408. IsPointInFillPathNV := GetCapAddress();
  4409. IsPointInStrokePathNV := GetCapAddress();
  4410. GetPathLengthNV := GetCapAddress();
  4411. PointAlongPathNV := GetCapAddress();
  4412. PathStencilDepthOffsetNV := GetCapAddress();
  4413. PathCoverDepthFuncNV := GetCapAddress();
  4414. FInitialized := False;
  4415. end;
  4416. {$IFDEF SUPPORT_WGL}
  4417. // ReadWGLImplementationProperties
  4418. procedure TGLExtensionsAndEntryPoints.ReadWGLImplementationProperties;
  4419. begin
  4420. // ARB wgl extensions
  4421. if Assigned(WGetExtensionsStringARB) then
  4422. FBuffer := string(WGetExtensionsStringARB(wglGetCurrentDC))
  4423. else
  4424. FBuffer := '';
  4425. W_ARB_buffer_region := CheckExtension('WGL_ARB_buffer_region');
  4426. W_ARB_create_context := CheckExtension('WGL_ARB_create_context');
  4427. W_ARB_create_context_profile :=
  4428. CheckExtension('WGL_ARB_create_context_profile');
  4429. W_ARB_extensions_string := CheckExtension('WGL_ARB_extensions_string');
  4430. W_ARB_framebuffer_sRGB := CheckExtension('WGL_ARB_framebuffer_sRGB');
  4431. W_ARB_make_current_read := CheckExtension('WGL_ARB_make_current_read');
  4432. W_ARB_multisample := CheckExtension('WGL_ARB_multisample');
  4433. W_ARB_pbuffer := CheckExtension('WGL_ARB_pbuffer');
  4434. W_ARB_pixel_format := CheckExtension('WGL_ARB_pixel_format');
  4435. W_ARB_pixel_format_float := CheckExtension('WGL_ARB_pixel_format_float');
  4436. W_ARB_render_texture := CheckExtension('WGL_ARB_render_texture');
  4437. // Vendor/EXT wgl extensions
  4438. W_ATI_pixel_format_float := CheckExtension('WGL_ATI_pixel_format_float');
  4439. W_EXT_framebuffer_sRGB := CheckExtension('WGL_EXT_framebuffer_sRGB');
  4440. W_EXT_pixel_format_packed_float :=
  4441. CheckExtension('WGL_EXT_pixel_format_packed_float');
  4442. W_EXT_swap_control := CheckExtension('WGL_EXT_swap_control');
  4443. W_NV_gpu_affinity := CheckExtension('WGL_NV_gpu_affinity');
  4444. W_NV_DX_interop := CheckExtension('WGL_NV_DX_interop');
  4445. W_NV_DX_interop2 := CheckExtension('WGL_NV_DX_interop2');
  4446. W_EXT_create_context_es2_profile :=
  4447. CheckExtension('WGL_EXT_create_context_es2_profile');
  4448. end;
  4449. procedure TGLExtensionsAndEntryPoints.ReadWGLExtensions;
  4450. begin
  4451. // ARB wgl extensions
  4452. // ###########################################################
  4453. // locating functions and procedures for
  4454. // ARB approved WGL extensions
  4455. // ###########################################################
  4456. // WGL_buffer_region (ARB #4)
  4457. WCreateBufferRegionARB := GetProcAddressGLS('wglCreateBufferRegionARB');
  4458. WDeleteBufferRegionARB := GetProcAddressGLS('wglDeleteBufferRegionARB');
  4459. WSaveBufferRegionARB := GetProcAddressGLS('wglSaveBufferRegionARB');
  4460. WRestoreBufferRegionARB := GetProcAddressGLS('wglRestoreBufferRegionARB');
  4461. // WGL_ARB_extensions_string (ARB #8)
  4462. WGetExtensionsStringARB := GetProcAddressGLS('wglGetExtensionsStringARB');
  4463. // WGL_ARB_pixel_format (ARB #9)
  4464. WGetPixelFormatAttribivARB :=
  4465. GetProcAddressGLS('wglGetPixelFormatAttribivARB');
  4466. WGetPixelFormatAttribfvARB :=
  4467. GetProcAddressGLS('wglGetPixelFormatAttribfvARB');
  4468. WChoosePixelFormatARB := GetProcAddressGLS('wglChoosePixelFormatARB');
  4469. // WGL_make_current_read (ARB #10)
  4470. WMakeContextCurrentARB := GetProcAddressGLS('wglMakeContextCurrentARB');
  4471. WGetCurrentReadDCARB := GetProcAddressGLS('wglGetCurrentReadDCARB');
  4472. // WGL_ARB_pbuffer (ARB #11)
  4473. WCreatePbufferARB := GetProcAddressGLS('wglCreatePbufferARB');
  4474. WGetPbufferDCARB := GetProcAddressGLS('wglGetPbufferDCARB');
  4475. WReleasePbufferDCARB := GetProcAddressGLS('wglReleasePbufferDCARB');
  4476. WDestroyPbufferARB := GetProcAddressGLS('wglDestroyPbufferARB');
  4477. WQueryPbufferARB := GetProcAddressGLS('wglQueryPbufferARB');
  4478. // WGL_ARB_render_texture (ARB #20)
  4479. WBindTexImageARB := GetProcAddressGLS('wglBindTexImageARB');
  4480. WReleaseTexImageARB := GetProcAddressGLS('wglReleaseTexImageARB');
  4481. WSetPbufferAttribARB := GetProcAddressGLS('wglSetPbufferAttribARB');
  4482. // WGL_ARB_create_context (ARB #55)
  4483. WCreateContextAttribsARB := GetProcAddressGLS('wglCreateContextAttribsARB');
  4484. // ###########################################################
  4485. // locating functions and procedures for
  4486. // Vendor/EXT WGL extensions
  4487. // ###########################################################
  4488. // WGL_EXT_swap_control (EXT #172)
  4489. WSwapIntervalEXT := GetProcAddressGLS('wglSwapIntervalEXT');
  4490. WGetSwapIntervalEXT := GetProcAddressGLS('wglGetSwapIntervalEXT');
  4491. // GL_NV_vertex_array_range (EXT #190)
  4492. WAllocateMemoryNV := GetProcAddressGLS('wglAllocateMemoryNV');
  4493. WFreeMemoryNV := GetProcAddressGLS('wglFreeMemoryNV');
  4494. // WGL_NV_gpu_affinity
  4495. WEnumGpusNV := GetProcAddressGLS('wglEnumGpusNV');
  4496. WEnumGpuDevicesNV := GetProcAddressGLS('wglEnumGpuDevicesNV');
  4497. WCreateAffinityDCNV := GetProcAddressGLS('wglCreateAffinityDCNV');
  4498. WEnumGpusFromAffinityDCNV := GetProcAddressGLS('wglEnumGpusFromAffinityDCNV');
  4499. WDeleteDCNV := GetProcAddressGLS('wglDeleteDCNV');
  4500. // WGL_NV_DX_interop
  4501. WDXSetResourceShareHandleNV :=
  4502. GetProcAddressGLS('wglDXSetResourceShareHandleNV');
  4503. WDXOpenDeviceNV := GetProcAddressGLS('wglDXOpenDeviceNV');
  4504. WDXCloseDeviceNV := GetProcAddressGLS('wglDXCloseDeviceNV');
  4505. WDXRegisterObjectNV := GetProcAddressGLS('wglDXRegisterObjectNV');
  4506. WDXUnregisterObjectNV := GetProcAddressGLS('wglDXUnregisterObjectNV');
  4507. WDXObjectAccessNV := GetProcAddressGLS('wglDXObjectAccessNV');
  4508. WDXLockObjectsNV := GetProcAddressGLS('wglDXLockObjectsNV');
  4509. WDXUnlockObjectsNV := GetProcAddressGLS('wglDXUnlockObjectsNV');
  4510. end;
  4511. {$ENDIF}
  4512. procedure TrimAndSplitVersionString(buffer: string; var max, min: integer);
  4513. // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
  4514. // at least however "Major.Minor".
  4515. var
  4516. Separator: integer;
  4517. begin
  4518. try
  4519. // There must be at least one dot to separate major and minor version number.
  4520. Separator := Pos('.', buffer);
  4521. // At least one number must be before and one after the dot.
  4522. if (Separator > 1) and (Separator < length(buffer)) and
  4523. (AnsiChar(buffer[Separator - 1]) in ['0' .. '9']) and
  4524. (AnsiChar(buffer[Separator + 1]) in ['0' .. '9']) then
  4525. begin
  4526. // OK, it's a valid version string. Now remove unnecessary parts.
  4527. Dec(Separator);
  4528. // Find last non-numeric character before version number.
  4529. while (Separator > 0) and (AnsiChar(buffer[Separator]) in ['0' .. '9']) do
  4530. Dec(Separator);
  4531. // Delete leading characters which do not belong to the version string.
  4532. Delete(buffer, 1, Separator);
  4533. Separator := Pos('.', buffer) + 1;
  4534. // Find first non-numeric character after version number
  4535. while (Separator <= length(buffer)) and
  4536. (AnsiChar(buffer[Separator]) in ['0' .. '9']) do
  4537. Inc(Separator);
  4538. // delete trailing characters not belonging to the version string
  4539. Delete(buffer, Separator, 255);
  4540. // Now translate the numbers.
  4541. Separator := Pos('.', buffer);
  4542. // This is necessary because the buffer length might have changed.
  4543. max := StrToInt(Copy(buffer, 1, Separator - 1));
  4544. min := StrToInt(Copy(buffer, Separator + 1, 255));
  4545. end
  4546. else
  4547. Abort;
  4548. except
  4549. min := 0;
  4550. max := 0;
  4551. end;
  4552. end;
  4553. function IsVersionMet(MajorVersion, MinorVersion, actualMajorVersion,
  4554. actualMinorVersion: integer): boolean;
  4555. begin
  4556. Result := (actualMajorVersion > MajorVersion) or
  4557. ((actualMajorVersion = MajorVersion) and
  4558. (actualMinorVersion >= MinorVersion));
  4559. end;
  4560. function InitOpenGL: boolean;
  4561. begin
  4562. if (GLHandle = INVALID_MODULEHANDLE) or (GLUHandle = INVALID_MODULEHANDLE)
  4563. then
  4564. Result := InitOpenGLFromLibrary(opengl32, glu32)
  4565. else
  4566. Result := True;
  4567. end;
  4568. function InitOpenGLFromLibrary(const GLName, GLUName: string): boolean;
  4569. begin
  4570. Result := False;
  4571. CloseOpenGL;
  4572. GLHandle := LoadLibrary(pchar(GLName));
  4573. GLUHandle := LoadLibrary(pchar(GLUName));
  4574. if (GLHandle <> INVALID_MODULEHANDLE) and (GLUHandle <> INVALID_MODULEHANDLE)
  4575. then
  4576. begin
  4577. Result := True;
  4578. end
  4579. else
  4580. CloseOpenGL;
  4581. end;
  4582. function IsOpenGLInitialized: boolean;
  4583. begin
  4584. Result := (GLHandle <> INVALID_MODULEHANDLE);
  4585. end;
  4586. procedure CloseOpenGL;
  4587. begin
  4588. if GLHandle <> INVALID_MODULEHANDLE then
  4589. begin
  4590. FreeLibrary(GLHandle);
  4591. GLHandle := INVALID_MODULEHANDLE;
  4592. end;
  4593. if GLUHandle <> INVALID_MODULEHANDLE then
  4594. begin
  4595. FreeLibrary(GLUHandle);
  4596. GLUHandle := INVALID_MODULEHANDLE;
  4597. end;
  4598. end;
  4599. procedure UnloadOpenGL;
  4600. begin
  4601. CloseOpenGL;
  4602. end;
  4603. function LoadOpenGL: boolean;
  4604. begin
  4605. Result := InitOpenGL;
  4606. end;
  4607. function LoadOpenGLFromLibrary(GLName, GLUName: string): boolean;
  4608. begin
  4609. Result := InitOpenGLFromLibrary(GLName, GLUName);
  4610. end;
  4611. function IsOpenGLLoaded: boolean;
  4612. begin
  4613. Result := IsOpenGLInitialized();
  4614. end;
  4615. function IsMesaGL: boolean;
  4616. begin
  4617. Result := GetProcAddressGLS('glResizeBuffersMESA') <> nil;
  4618. end;
  4619. initialization //-------------------------------------------------------------
  4620. {$IFNDEF CROSSVCL}
  4621. Set8087CW($133F);
  4622. {$ENDIF}
  4623. finalization //---------------------------------------------------------------
  4624. CloseOpenGL;
  4625. end.