This may fix a bug where a NULL structure pointer was accessed resulting in:
KERN_PROTECTION_FAILURE at 0x0000000000000004
I studied the structures in use, and I believe it was the pDraw->id that resulted in
this fault in attach().
The layout of the _Drawable structure is 4 chars, and then the id, so the offset
seems correct for such a bug.
Also make it return an error for now, and ErrorF() to help us figure out where it's
going wrong elsewhere to cause a NULL DrawablePtr.
I also made various formatting changes, because the formatting was inconsistent.
Next time I will probably do the formatting in a separate commit, but hindsight is
20/20.
I will apply a fix to the 1.5 branch after this, in a similar manner.
GL/capabilities.c: #if 0 (for now) any capabilities above 8 bits per channel,
because they introduce drawing problems.
GL/indirect.c: Comment out some visual setup code that shouldn't be running, and
actually seemed to cause some problems. The current visualConfigs.c code seems
to do a reasonable job of setting up visuals for XQuartz.
GL/visualConfigs.c: Make use of the proper visual .class. Eliminate depth 0.
It seems we really just want 24 for now, and 0 I think was a flaw in the original
code.
This gives us a *lot* more visuals, and they should be more accurate.
Some of the visuals may have been wrong before. This may enable more
OpenGL programs to behave correctly.
I also suspect libGL needs a little work to handle some of these correctly.