In several places the DRI code is assuming that it is implementing
GLX. One example of this is __glXFindDRIScreen.

All of the context functions take (__DRInativeDisplay *dpy, int scrn)
and then call pDRIScreen = glx_find_dri_screen(dpy, scrn); to get the
screen object. The assumption here is that screens are int's, in my
case they are not.

I also have two sets of mapping going on; at the higher level it is
GLX screens and lower level it is EGL screens. There is only one
mapping function.

Another way to do this would be to create something like
struct {
   __DRIscreen screen;
} GLXScreen;
The context functions would then take pointers to GLXScreen and the
find_dri_screen would take place before calling the DRI code. Only
screens have this problem, other objects are ok.

DRI calls these GLX functions:
__glXCreateContextModes
__glXCreateContextWithConfig
__glXFindDRIScreen
__glXGetDrawableInfo
__glXGetInternalVersion
__glXGetUST
__glXScrEnableExtension
__glXWindowExists
glXGetMscRateOML

It also makes calls to these XF86DRI functions:
XF86DRICreateContext
XF86DRICreateDrawable
XF86DRIDestroyDrawable
XF86DRIDestroyContext
XF86DRIQueryDirectRenderingCapable
XF86DRIOpenConnection
XF86DRIAuthConnection
XF86DRIGetClientDriverName
XF86DRIQueryVersion
XF86DRIGetDeviceInfo
XF86DRICloseConnection
XF86DRIGetDrawableInfo

Is there any simple way to sort of this out? I'd rather not build
another version of dri_util.c with slight variations just to support
EGL.

-- 
Jon Smirl
[EMAIL PROTECTED]


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to