<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Wed, Oct 30, 2013 at 6:58 AM, Chris Bagley <span dir="ltr"><<a href="mailto:chris.bagley@gmail.com" target="_blank">chris.bagley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">We
 use runtime compiling to create our wrappers in case functionality is 
not present.</div></blockquote><div><br></div><div>Runtime compilation is more of an optimization, we could store the function pointers in a closure or global array or something instead (and in fact probably should store them differently to be handle multiple drivers on windows correctly, but making that correct/efficient would probably be harder even though not many people would need it.)<br>
</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"> That is great, but how do more static languages that don’t 
have this kind of control handle multiple versions of opengl?<br><br></div></blockquote><div>In C/C++ you can call a function pointer exactly the same way as a normal function, so they usually just define a bunch of function pointers for the extension functions and initialize them all at once. Most people probably use a library like GLEW or GLEE for that.<br>
</div></div></div></div>