<div dir="ltr"><div><div><div><div><div><div>Hi all,<br><br></div>After finding the OpenGL bindings that come with Lazarus a bit on the ancient side of things (i think it only supports up to 4.0? Also there is a 4.3 version loading function but only seems to call 3.3's loader - ignoring 4.0 - and loads only a single extension) and never really liking the global functions of pointers approach (if nothing else it makes the autocompletion in the IDE a bit annoying) i decided to make some brand new bindings.<br><br></div>I wrote a parser for Khronos' XML spec (gl.xml) that generates the appropriate interface and implementation. You only have to call LoadGLProcs after you have a context ready and it tries to load everything it knows of. Instead of Load_some_extension you get a global Has_some_extension variable (these are initialized via LoadGLProcs too). As a bonus you get a HasExtension function as well as an AllExtensions array of strings.<br><br></div>Btw it is not a drop in replacement for GL/GLext/GLotherstuff, although you can use it with the OpenGL control that comes with Lazarus and most likely it is compatible as long as you don't use it from the same unit (since all they do is call the driver stuff anyway) and you initialize both using the same context (since different contexts might give different functions).<br><br></div><div>You can find the code as well as a pregenerated "OpenGL" unit at:<br></div><div><br></div><a href="http://runtimeterror.com/rep/gl2unit/index">http://runtimeterror.com/rep/gl2unit/index</a><br><br></div>At the moment only Windows is supported, but soon i'll add Linux and eventually Mac OS X support (it should be around ~10 lines of code for each OS, hopefully). Also i have done minimal testing so there might be bugs :-).<br><br></div>Kostas<br></div>