Fix issues with glXMakeContextCurrent and glXMakeCurrentReadSGI
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 20 Jan 2009 21:55:18 +0000 (13:55 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 20 Jan 2009 21:55:18 +0000 (13:55 -0800)
commitab9b4e1f593b2006a61c0f5440c2d7d3af80ea74
treea571e6196ea92e618d2f97878287a070af681f8a
parent39e6d0d8108fe6d222865e7bb9de1e3cea18b4c4
Fix issues with glXMakeContextCurrent and glXMakeCurrentReadSGI

There were several bugs in the infrastructure for these two routines.

1. GLX_ALIAS was incorrectly used.  The function and its alias must be
identical!  glXMakeContextCurrent / glXMakeCurrentReadSGI and
MakeContextCurrent had different parameters.  This caused the last
parameter of MakeContextCurrent to get random values.

2. We based the implementation of glXMakeContextCurrent on the manual
page instead of the GLX spec.  The GLX spec says that
glXMakeContextCurrent can be passed a Window as a drawable.  When this
happens, it will behave just like glXMakeCurrentReadSGI or
glXMakeCurrent.

3. If there was a problem finding or creating the DRI drawable,
MakeContextCurrent would crash instead of returning an error.

This commit fixes all three issues, and fixes bug #18367 and bug #19625.
src/glx/x11/glxcurrent.c