From: Felix <fx...@gm...> - 2003-03-01 16:51:04
|
On Fri, 28 Feb 2003 22:13:22 -0800 Ian Romanick <id...@us...> wrote: > Felix Kühling wrote: > > Hello, > > > > I just started working on a revision of the DRI Configuration design doc > > based on the feedback I received. As Brian suggested I want to implement > > the functionality for acquiring available configuration options in > > libGL. I had a look at xc/lib/GL/dri and it looks as if dri_glx.[ch] > > would be the right place. Is that correct? > > Actually, you should probably look in xc/lib/GL/glx/glxcmd.c. I would > add a new function that returns the options. Programs would get a > pointer to this function via glXGetProcAddress. You'd have to add the > function to the table in glxcmd.c. > > The stuff in xc/lib/GL/dri gets compiled into the client-side driver. > The stuff in xc/lib/GL/glx gets compiled into libGL.so. This cannot be quite correct. In xc/lib/GL/dri/dri_glx.c OpenDriver is implemented which loads the client side driver. So this must get linked into libGL.so. As part of the code for acquiring configuration information would be very similar to OpenDriver, I thought it would make sense to implement it in the same file. > > > How would the new functions be exported to client applications? They are > > obviously not declared in any standard header files. An interested > > client would also have to do some version checking in order to test > > whether the new functions are really available. And it would have to > > check if libGL is from DRI in the first place. How would all this work? > > Programs would know whether or not the function exists by the return > value of glXGetProcAddress. If it returns NULL, it ain't there. :) I followed Brians advice and read the glXGetProcAddressARB extension specification, and while I was at it I also took a glance at the GLX spec. So now I understand how an application can find out whether the configuration stuff is available. But glXGetProcAddressARB is a GLX extension itself and the app has to check whether it's available. It would probably use glXGetClientString for that. Now here's the catch: glXGetClientString expects a Display argument. This means the whole configuration query mechanism would only work with an X connection. However, it would be useful if an application could use libGL to get the config info for a specific driver even without an X connection. Would it be legal to call glXGetClientString with NULL as dpy pointer? Or did I miss another way of checking for GLX extensions? Felix __\|/__ ___ ___ ___ __Tschüß_______\_6 6_/___/__ \___/__ \___/___\___You can do anything,___ _____Felix_______\Ä/\ \_____\ \_____\ \______U___just not everything____ fx...@gm... >o<__/ \___/ \___/ at the same time! |