"GLX_ARB_render_texture"
*/
-/* Silence compiler warnings */
-extern void Fake_glXDummyFunc( void );
-void Fake_glXDummyFunc( void )
-{
- (void) kernel8;
- (void) DitherValues;
- (void) HPCR_DRGB;
- (void) kernel1;
-}
-
/*
* Our fake GLX context will contain a "real" GLX context and an XMesa context.
for (i=0; i<NumVisuals; i++) {
XMesaVisual v = VisualTable[i];
if (v->display == dpy
- && v->level == level
+ && v->mesa_visual.level == level
&& v->ximage_flag == ximageFlag
&& v->mesa_visual.rgbMode == rgbFlag
&& v->mesa_visual.doubleBufferMode == dbFlag
/**********************************************************************/
-static XMesaVisual choose_visual( Display *dpy, int screen, const int *list )
+static XMesaVisual choose_visual( Display *dpy, int screen, const int *list,
+ GLboolean rgbModeDefault )
{
const int *parselist;
XVisualInfo *vis;
int min_ci = 0;
int min_red=0, min_green=0, min_blue=0;
- GLboolean rgb_flag = GL_FALSE;
+ GLboolean rgb_flag = rgbModeDefault;
GLboolean alpha_flag = GL_FALSE;
GLboolean double_flag = GL_FALSE;
GLboolean stereo_flag = GL_FALSE;
static XVisualInfo *
Fake_glXChooseVisual( Display *dpy, int screen, int *list )
{
- XMesaVisual xmvis = choose_visual(dpy, screen, list);
+ XMesaVisual xmvis = choose_visual(dpy, screen, list, GL_FALSE);
if (xmvis) {
#if 0
return xmvis->vishandle;
*value = xmvis->visinfo->depth;
return 0;
case GLX_LEVEL:
- *value = xmvis->level;
+ *value = xmvis->mesa_visual.level;
return 0;
case GLX_RGBA:
if (xmvis->mesa_visual.rgbMode) {
}
return 0;
case GLX_TRANSPARENT_TYPE_EXT:
- if (xmvis->level==0) {
+ if (xmvis->mesa_visual.level==0) {
/* normal planes */
*value = GLX_NONE_EXT;
}
- else if (xmvis->level>0) {
+ else if (xmvis->mesa_visual.level>0) {
/* overlay */
if (xmvis->mesa_visual.rgbMode) {
*value = GLX_TRANSPARENT_RGB_EXT;
*value = GLX_TRANSPARENT_INDEX_EXT;
}
}
- else if (xmvis->level<0) {
+ else if (xmvis->mesa_visual.level<0) {
/* underlay */
*value = GLX_NONE_EXT;
}
*/
case GLX_VISUAL_CAVEAT_EXT:
/* test for zero, just in case */
- if (xmvis->VisualCaveat > 0)
- *value = xmvis->VisualCaveat;
+ if (xmvis->mesa_visual.visualRating > 0)
+ *value = xmvis->mesa_visual.visualRating;
else
*value = GLX_NONE_EXT;
return 0;
Fake_glXChooseFBConfig( Display *dpy, int screen,
const int *attribList, int *nitems )
{
- XMesaVisual xmvis = choose_visual(dpy, screen, attribList);
+ XMesaVisual xmvis = choose_visual(dpy, screen, attribList, GL_TRUE);
if (xmvis) {
GLXFBConfig *config = (GLXFBConfig *) _mesa_malloc(sizeof(XMesaVisual));
if (!config) {
Fake_glXCreateWindow( Display *dpy, GLXFBConfig config, Window win,
const int *attribList )
{
+ XMesaVisual xmvis = (XMesaVisual) config;
+ XMesaBuffer xmbuf;
+ if (!xmvis)
+ return 0;
+
+ xmbuf = XMesaCreateWindowBuffer2(xmvis, win, NULL);
+ if (!xmbuf)
+ return 0;
+
(void) dpy;
- (void) config;
- (void) win;
(void) attribList; /* Ignored in GLX 1.3 */
return win; /* A hack for now */