Emil Velikov <emil.l.veli...@gmail.com> writes: > Will be used in the upcoming patches. > > Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> > --- > src/gallium/auxiliary/pipe-loader/Makefile.am | 4 ++++ > src/gallium/auxiliary/pipe-loader/pipe_loader.h | 19 +++++++++++++++++++ > src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c | 22 > +++++++++++++++++++--- > 3 files changed, 42 insertions(+), 3 deletions(-) > > diff --git a/src/gallium/auxiliary/pipe-loader/Makefile.am > b/src/gallium/auxiliary/pipe-loader/Makefile.am > index 8e4d034..bcee58e 100644 > --- a/src/gallium/auxiliary/pipe-loader/Makefile.am > +++ b/src/gallium/auxiliary/pipe-loader/Makefile.am > @@ -8,6 +8,10 @@ AM_CPPFLAGS = $(DEFINES) \ > -I$(top_srcdir)/src/gallium/auxiliary \ > -I$(top_srcdir)/src/gallium/winsys > > +if NEED_WINSYS_XLIB > +AM_CPPFLAGS += -DHAVE_WINSYS_XLIB > +endif > + > noinst_LTLIBRARIES = > > if HAVE_LOADER_GALLIUM > diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.h > b/src/gallium/auxiliary/pipe-loader/pipe_loader.h > index cc6b183..1073dc4 100644 > --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.h > +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.h > @@ -34,6 +34,11 @@ > #define PIPE_LOADER_H > > #include "pipe/p_compiler.h" > +#include <stdbool.h> > +
I think this is already pulled in by the "p_compiler.h" include? > +#ifdef HAVE_WINSYS_XLIB > +#include <X11/Xlib.h> > +#endif > > #ifdef __cplusplus > extern "C" { > @@ -100,6 +105,20 @@ pipe_loader_create_screen(struct pipe_loader_device *dev, > void > pipe_loader_release(struct pipe_loader_device **devs, int ndev); > > +#ifdef HAVE_WINSYS_XLIB > + > +/** > + * Initialize Xlib for an associated display. > + * > + * This function is platform-specific. > + * > + * \sa pipe_loader_probe > + */ > +bool > +pipe_loader_sw_probe_xlib(struct pipe_loader_device **devs, Display > *display); > + > +#endif > + > /** > * Get a list of known software devices. > * > diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c > b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c > index 90d2975..8cf8980 100644 > --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c > +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c > @@ -44,12 +44,28 @@ struct pipe_loader_sw_device { > static struct pipe_loader_ops pipe_loader_sw_ops; > > static struct sw_winsys *(*backends[])() = { > -#ifdef HAVE_WINSYS_XLIB > - x11_sw_create, > -#endif > null_sw_create > }; > > +#ifdef HAVE_WINSYS_XLIB > +bool > +pipe_loader_sw_probe_xlib(struct pipe_loader_device **devs, Display *display) > +{ > + struct pipe_loader_sw_device *sdev = CALLOC_STRUCT(pipe_loader_sw_device); > + > + if (!sdev) > + return false; > + > + sdev->base.type = PIPE_LOADER_DEVICE_SOFTWARE; > + sdev->base.driver_name = "swrast"; > + sdev->base.ops = &pipe_loader_sw_ops; > + sdev->ws = xlib_create_sw_winsys(display); Shouldn't we handle failure here too? > + *devs = &sdev->base; > + > + return true; > +} > +#endif > + > int > pipe_loader_sw_probe(struct pipe_loader_device **devs, int ndev) > { > -- > 1.8.5.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
pgp5YkJeyv2vT.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev