drisw: Fix and simplify drawable setup
authorAdam Jackson <ajax@redhat.com>
Thu, 26 Sep 2019 19:43:46 +0000 (15:43 -0400)
committerAdam Jackson <ajax@redhat.com>
Fri, 27 Sep 2019 15:18:15 +0000 (11:18 -0400)
commit90d58286cc76c9f6652a8f8342fe568d2fc0bb15
tree516f8a441f2a41c847936a1d81a357a0de697541
parent3c0eb762e27f9028a8f59e2fa31603292e02d9ef
drisw: Fix and simplify drawable setup

We don't want to require a visual for the drawable, because there exist
fbconfigs that don't correspond to any visual (say a 565 pixmap|pbuffer
config on a depth-24 display). Fortunately, we don't need one either.
Passing the visual to XCreateImage serves only to fill in the XImage's
{red,green,blue}_mask fields, which libX11 itself never uses, they exist
only for the client's convenience, and we don't care. And we already
have the drawable depth in glx_config::rgbBits. So replace the
XVisualInfo field in the drawable private with a pointer to the
glx_config.

Having done that driswCreateGCs becomes trivial, so inline it into its
caller.

Gitlab: https://gitlab.freedesktop.org/mesa/mesa/issues/1194
Reviewed-by: Eric Anholt <eric@anholt.net>
src/glx/drisw_glx.c
src/glx/drisw_priv.h