Emil Velikov <[email protected]> writes: > Will be used in the upcoming patches. > > Signed-off-by: Emil Velikov <[email protected]> > --- > 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
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
pgp5YkJeyv2vT.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
