static struct pipe_screen * swrast_screen_create (struct sw_winsys *ws) { const char *default_driver; const char *driver; struct pipe_screen *screen = NULL; #ifdef USE_LLVM default_driver = "llvmpipe"; #else default_driver = "softpipe"; #endif driver = debug_get_option ("GALLIUM_DRIVER", default_driver); #ifdef USE_LLVM if (screen == NULL && strcmp (driver, "llvmpipe") == 0) screen = llvmpipe_create_screen (ws); #endif if (screen == NULL) screen = softpipe_create_screen (ws); return screen; }
static struct pipe_screen * gdi_screen_create(void) { const char *default_driver; const char *driver; struct pipe_screen *screen = NULL; struct sw_winsys *winsys; winsys = gdi_create_sw_winsys(); if(!winsys) goto no_winsys; #ifdef HAVE_LLVMPIPE default_driver = "llvmpipe"; #else default_driver = "softpipe"; #endif driver = debug_get_option("GALLIUM_DRIVER", default_driver); #ifdef HAVE_LLVMPIPE if (strcmp(driver, "llvmpipe") == 0) { screen = llvmpipe_create_screen( winsys ); } #else (void) driver; #endif if (screen == NULL) { screen = softpipe_create_screen( winsys ); } else { use_llvmpipe = TRUE; } if(!screen) goto no_screen; return screen; no_screen: winsys->destroy(winsys); no_winsys: return NULL; }
static struct pipe_screen * swrast_create_screen(struct sw_winsys *winsys) { const char *default_driver; const char *driver; struct pipe_screen *screen = NULL; #if defined(GALLIUM_CELL) default_driver = "cell"; #elif defined(GALLIUM_LLVMPIPE) default_driver = "llvmpipe"; #elif defined(GALLIUM_SOFTPIPE) default_driver = "softpipe"; #else default_driver = ""; #endif driver = debug_get_option("GALLIUM_DRIVER", default_driver); #if defined(GALLIUM_CELL) if (screen == NULL && strcmp(driver, "cell") == 0) screen = cell_create_screen( winsys ); #endif #if defined(GALLIUM_LLVMPIPE) if (screen == NULL && strcmp(driver, "llvmpipe") == 0) screen = llvmpipe_create_screen( winsys ); #endif #if defined(GALLIUM_SOFTPIPE) if (screen == NULL) screen = softpipe_create_screen( winsys ); #endif #if defined(GALLIUM_GALAHAD) if (screen) { struct pipe_screen *galahad_screen = galahad_screen_create(screen); if (galahad_screen) screen = galahad_screen; } #endif return screen; }
static struct pipe_screen * xlib_create_llvmpipe_screen( void ) { struct llvmpipe_winsys *winsys; struct pipe_screen *screen; winsys = xlib_create_llvmpipe_winsys(); if (winsys == NULL) return NULL; screen = llvmpipe_create_screen(winsys); if (screen == NULL) goto fail; return screen; fail: if (winsys) winsys->destroy( winsys ); return NULL; }
struct pipe_screen* hgl_sw_screen_create(void) { struct sw_winsys* winsys = hgl_create_sw_winsys(); struct pipe_screen* screen = NULL; if (!winsys) return NULL; #ifdef HAVE_LLVMPIPE screen = llvmpipe_create_screen(winsys); #else screen = softpipe_create_screen(winsys); #endif if (!screen) { winsys->destroy(winsys); return NULL; } return screen; }