More patches from David Reveman:

Add GL_ARB_texture_non_power_of_two, GL_EXT_framebuffer_object and
    GL_NV_texture_env_combine4 extensions.
Add __GLXcontext destructor and flush context cache there and on
    loseCurrent.
Chain back to new __GLXcontext destructor. (__glXMesaContextForceCurrent):
    Set render table on forceCurrent. (init_screen_visuals): Index pVis
    array correctly. (GlxGetMesaProvider): Add this.
Hook up FBO marshalling.
This commit is contained in:
Kristian Høgsberg 2006-03-17 00:35:18 +00:00
parent 14aafc258c
commit 2c11cde336
9 changed files with 386 additions and 2 deletions

View File

@ -1,3 +1,25 @@
2006-03-16 Kristian Høgsberg <krh@redhat.com>
More patches from David Reveman:
* GL/glx/glxscreens.c: Add GL_ARB_texture_non_power_of_two,
GL_EXT_framebuffer_object and GL_NV_texture_env_combine4
extensions.
* GL/glx/glxcmds.c (__glXContextDestroy, DoMakeCurrent)
(__glXdirectContextDestroy): Add __GLXcontext destructor and flush
context cache there and on loseCurrent.
* GL/mesa/X/xf86glx.c (__glXMesaContextDestroy): Chain back to new
__GLXcontext destructor.
(__glXMesaContextForceCurrent): Set render table on forceCurrent.
(init_screen_visuals): Index pVis array correctly.
(GlxGetMesaProvider): Add this.
* GL/glx/glxcmds.c:
* GL/glx/g_disptab_EXT.h:
* GL/glx/g_disptab_EXT.c: Hook up FBO marshalling.
2006-03-16 Eric Anholt <anholt@FreeBSD.org> 2006-03-16 Eric Anholt <anholt@FreeBSD.org>
* exa/exa.c: (exaGetPixmapSize), (exaDestroyPixmap), (exaLog2), * exa/exa.c: (exaGetPixmapSize), (exaDestroyPixmap), (exaLog2),

View File

@ -2234,6 +2234,110 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXNoSuchRenderOpcode, __glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, __glXNoSuchRenderOpcode,
#endif #endif
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDisp_BindRenderbufferEXT, /* 4316 */
__glXDisp_DeleteRenderbuffersEXT, /* 4317 */
__glXDisp_RenderbufferStorageEXT, /* 4318 */
__glXDisp_BindFramebufferEXT, /* 4319 */
__glXDisp_DeleteFramebuffersEXT, /* 4320 */
__glXDisp_FramebufferTexture1DEXT, /* 4321 */
__glXDisp_FramebufferTexture2DEXT, /* 4322 */
__glXDisp_FramebufferTexture3DEXT, /* 4323 */
__glXDisp_FramebufferRenderbufferEXT, /* 4324 */
__glXDisp_GenerateMipmapEXT /* 4325 */
}; };
__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = { __GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDisp_AreTexturesResidentEXT, /* 11 */ __glXDisp_AreTexturesResidentEXT, /* 11 */
@ -4439,6 +4543,110 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXNoSuchRenderOpcode, __glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, __glXNoSuchRenderOpcode,
#endif #endif
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDispSwap_BindRenderbufferEXT, /* 4316 */
__glXDispSwap_DeleteRenderbuffersEXT, /* 4317 */
__glXDispSwap_RenderbufferStorageEXT, /* 4318 */
__glXDispSwap_BindFramebufferEXT, /* 4319 */
__glXDispSwap_DeleteFramebuffersEXT, /* 4320 */
__glXDispSwap_FramebufferTexture1DEXT, /* 4321 */
__glXDispSwap_FramebufferTexture2DEXT, /* 4322 */
__glXDispSwap_FramebufferTexture3DEXT, /* 4323 */
__glXDispSwap_FramebufferRenderbufferEXT, /* 4324 */
__glXDispSwap_GenerateMipmapEXT /* 4325 */
}; };
__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = { __GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDispSwap_AreTexturesResidentEXT, /* 11 */ __glXDispSwap_AreTexturesResidentEXT, /* 11 */

View File

@ -36,7 +36,7 @@
*/ */
#define __GLX_MIN_RENDER_OPCODE_EXT 2053 #define __GLX_MIN_RENDER_OPCODE_EXT 2053
#define __GLX_MAX_RENDER_OPCODE_EXT 4222 #define __GLX_MAX_RENDER_OPCODE_EXT 4325
#define __GLX_MIN_VENDPRIV_OPCODE_EXT 11 #define __GLX_MIN_VENDPRIV_OPCODE_EXT 11
#define __GLX_MAX_VENDPRIV_OPCODE_EXT 14 #define __GLX_MAX_VENDPRIV_OPCODE_EXT 14
#define __GLX_VENDPRIV_TABLE_SIZE_EXT (__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1) #define __GLX_VENDPRIV_TABLE_SIZE_EXT (__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1)

View File

@ -89,8 +89,16 @@ static int __glxHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
/************************************************************************/ /************************************************************************/
void
__glXContextDestroy(__GLXcontext *context)
{
__glXFlushContextCache();
}
static void __glXdirectContextDestroy(__GLXcontext *context) static void __glXdirectContextDestroy(__GLXcontext *context)
{ {
__glXContextDestroy(context);
__glXFree(context); __glXFree(context);
} }
@ -632,6 +640,7 @@ int DoMakeCurrent( __GLXclientState *cl,
if (!(*prevglxc->loseCurrent)(prevglxc)) { if (!(*prevglxc->loseCurrent)(prevglxc)) {
return __glXBadContext; return __glXBadContext;
} }
__glXFlushContextCache();
__glXDeassociateContext(prevglxc); __glXDeassociateContext(prevglxc);
} }
@ -2208,6 +2217,20 @@ int __glXVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
return __glXCreateGLXPixmapWithConfigSGIX(cl, pc); return __glXCreateGLXPixmapWithConfigSGIX(cl, pc);
case X_GLXvop_GetDrawableAttributesSGIX: case X_GLXvop_GetDrawableAttributesSGIX:
return __glXGetDrawableAttributesSGIX(cl, pc); return __glXGetDrawableAttributesSGIX(cl, pc);
case X_GLvop_IsRenderbufferEXT:
return __glXDisp_IsRenderbufferEXT(cl, pc);
case X_GLvop_GenRenderbuffersEXT:
return __glXDisp_GenRenderbuffersEXT(cl, pc);
case X_GLvop_GetRenderbufferParameterivEXT:
return __glXDisp_GetRenderbufferParameterivEXT(cl, pc);
case X_GLvop_IsFramebufferEXT:
return __glXDisp_IsFramebufferEXT(cl, pc);
case X_GLvop_GenFramebuffersEXT:
return __glXDisp_GenFramebuffersEXT(cl, pc);
case X_GLvop_CheckFramebufferStatusEXT:
return __glXDisp_CheckFramebufferStatusEXT(cl, pc);
case X_GLvop_GetFramebufferAttachmentParameterivEXT:
return __glXDisp_GetFramebufferAttachmentParameterivEXT(cl, pc);
default: default:
break; break;
} }

View File

@ -939,6 +939,20 @@ int __glXSwapVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
return __glXSwapCreateGLXPixmapWithConfigSGIX(cl, pc); return __glXSwapCreateGLXPixmapWithConfigSGIX(cl, pc);
case X_GLXvop_GetDrawableAttributesSGIX: case X_GLXvop_GetDrawableAttributesSGIX:
return __glXSwapGetDrawableAttributesSGIX(cl, pc); return __glXSwapGetDrawableAttributesSGIX(cl, pc);
case X_GLvop_IsRenderbufferEXT:
return __glXDispSwap_IsRenderbufferEXT(cl, pc);
case X_GLvop_GenRenderbuffersEXT:
return __glXDispSwap_GenRenderbuffersEXT(cl, pc);
case X_GLvop_GetRenderbufferParameterivEXT:
return __glXDispSwap_GetRenderbufferParameterivEXT(cl, pc);
case X_GLvop_IsFramebufferEXT:
return __glXDispSwap_IsFramebufferEXT(cl, pc);
case X_GLvop_GenFramebuffersEXT:
return __glXDispSwap_GenFramebuffersEXT(cl, pc);
case X_GLvop_CheckFramebufferStatusEXT:
return __glXDispSwap_CheckFramebufferStatusEXT(cl, pc);
case X_GLvop_GetFramebufferAttachmentParameterivEXT:
return __glXDispSwap_GetFramebufferAttachmentParameterivEXT(cl, pc);
default: default:
break; break;
} }

View File

@ -227,6 +227,7 @@ __glXDRIcontextDestroy(__GLXcontext *baseContext)
context->driContext.destroyContext(NULL, context->driContext.destroyContext(NULL,
context->base.pScreen->myNum, context->base.pScreen->myNum,
context->driContext.private); context->driContext.private);
__glXContextDestroy(context);
__glXFree(context); __glXFree(context);
} }

View File

@ -64,6 +64,7 @@ static const char GLServerExtensions[] =
"GL_ARB_texture_mirrored_repeat " "GL_ARB_texture_mirrored_repeat "
"GL_ARB_transpose_matrix " "GL_ARB_transpose_matrix "
"GL_ARB_window_pos " "GL_ARB_window_pos "
"GL_ARB_texture_non_power_of_two "
"GL_EXT_abgr " "GL_EXT_abgr "
"GL_EXT_bgra " "GL_EXT_bgra "
"GL_EXT_blend_color " "GL_EXT_blend_color "
@ -96,6 +97,7 @@ static const char GLServerExtensions[] =
"GL_EXT_texture_object " "GL_EXT_texture_object "
"GL_EXT_texture_rectangle " "GL_EXT_texture_rectangle "
"GL_EXT_vertex_array " "GL_EXT_vertex_array "
"GL_EXT_framebuffer_object "
"GL_APPLE_packed_pixels " "GL_APPLE_packed_pixels "
"GL_ATI_texture_mirror_once " "GL_ATI_texture_mirror_once "
"GL_ATI_texture_env_combine3 " "GL_ATI_texture_env_combine3 "
@ -107,6 +109,7 @@ static const char GLServerExtensions[] =
"GL_NV_point_sprite " "GL_NV_point_sprite "
"GL_NV_texgen_reflection " "GL_NV_texgen_reflection "
"GL_NV_texture_rectangle " "GL_NV_texture_rectangle "
"GL_NV_texture_env_combine4 "
"GL_SGIS_generate_mipmap " "GL_SGIS_generate_mipmap "
"GL_SGIS_texture_border_clamp " "GL_SGIS_texture_border_clamp "
"GL_SGIS_texture_edge_clamp " "GL_SGIS_texture_edge_clamp "

View File

@ -2446,4 +2446,108 @@ __GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX
/* ActiveStencilFaceEXT 4220 */ { 8, 0 }, /* ActiveStencilFaceEXT 4220 */ { 8, 0 },
/* PointParameteriNV 4221 */ { 12, 0 }, /* PointParameteriNV 4221 */ { 12, 0 },
/* PointParameterivNV 4222 */ { 8, __glXPointParameterivNVReqSize }, /* PointParameterivNV 4222 */ { 8, __glXPointParameterivNVReqSize },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* BindRenderbufferEXT */ { 12, 0 },
/* DeleteRenderbuffersEXT */ { 8, __glXDeleteRenderbuffersEXTReqSize },
/* RenderbufferStorageEXT */ { 20, 0 },
/* BindFramebufferEXT */ { 12, 0 },
/* DeleteFramebuffersEXT */ { 8, __glXDeleteFramebuffersEXTReqSize },
/* FramebufferTexture1DEXT */ { 24, 0 },
/* FramebufferTexture2DEXT */ { 24, 0 },
/* FramebufferTexture3DEXT */ { 28, 0 },
/* FramebufferRenderbufferTexture3DEXT */ { 20, 0 },
/* GenerateMipmapEXT */ { 8, 0 }
}; };

View File

@ -196,6 +196,7 @@ __glXMesaContextDestroy(__GLXcontext *baseContext)
__GLXMESAcontext *context = (__GLXMESAcontext *) baseContext; __GLXMESAcontext *context = (__GLXMESAcontext *) baseContext;
XMesaDestroyContext(context->xmesa); XMesaDestroyContext(context->xmesa);
__glXContextDestroy(context);
xfree(context); xfree(context);
} }
@ -237,6 +238,8 @@ __glXMesaContextForceCurrent(__GLXcontext *baseContext)
{ {
__GLXMESAcontext *context = (__GLXMESAcontext *) baseContext; __GLXMESAcontext *context = (__GLXMESAcontext *) baseContext;
GlxSetRenderTables (context->xmesa->mesa.CurrentDispatch);
return XMesaForceCurrent(context->xmesa); return XMesaForceCurrent(context->xmesa);
} }
@ -359,7 +362,7 @@ static void init_screen_visuals(__GLXMESAscreen *screen)
/* Create the XMesa visual */ /* Create the XMesa visual */
pXMesaVisual[i] = pXMesaVisual[i] =
XMesaCreateVisual(pScreen, XMesaCreateVisual(pScreen,
pVis, &pVis[j],
modes->rgbMode, modes->rgbMode,
(modes->alphaBits > 0), (modes->alphaBits > 0),
modes->doubleBufferMode, modes->doubleBufferMode,
@ -437,3 +440,9 @@ GlxGetMesaProvider (void)
{ {
return &__glXMesaProvider; return &__glXMesaProvider;
} }
__GLXprovider *
GlxGetMesaProvider (void)
{
return &__glXMesaProvider;
}