#include "llvmpipe/lp_public.h"
#endif
+#ifdef HAVE_SWR
+#include "swr/swr_public.h"
+#endif
static boolean use_llvmpipe = FALSE;
-
+static boolean use_swr = FALSE;
static struct pipe_screen *
gdi_screen_create(void)
#ifdef HAVE_LLVMPIPE
default_driver = "llvmpipe";
+#elif HAVE_SWR
+ default_driver = "swr";
#else
default_driver = "softpipe";
#endif
#ifdef HAVE_LLVMPIPE
if (strcmp(driver, "llvmpipe") == 0) {
screen = llvmpipe_create_screen( winsys );
+ if (screen)
+ use_llvmpipe = TRUE;
+ }
+#endif
+#ifdef HAVE_SWR
+ if (strcmp(driver, "swr") == 0) {
+ screen = swr_create_screen( winsys );
+ if (screen)
+ use_swr = TRUE;
}
-#else
- (void) driver;
#endif
+ (void) driver;
if (screen == NULL) {
screen = softpipe_create_screen( winsys );
- } else {
- use_llvmpipe = TRUE;
}
if(!screen)
}
#endif
+#ifdef HAVE_SWR
+ if (use_swr) {
+ swr_gdi_swap(screen, res, hDC);
+ return;
+ }
+#endif
+
winsys = softpipe_screen(screen)->winsys,
dt = softpipe_resource(res)->dt,
gdi_sw_display(winsys, dt, hDC);