diff options
author | George Sapountzis <[email protected]> | 2010-03-29 21:06:54 +0300 |
---|---|---|
committer | George Sapountzis <[email protected]> | 2010-03-29 21:06:54 +0300 |
commit | 625e024b186829f199458679921916971a5b00cb (patch) | |
tree | 880bb927cb786e9602a91aded97298452b6193a9 /src/gallium/targets/dri-swrast | |
parent | 6cc5fbd76b8994da8174c39f8eacb6605f4aa3b2 (diff) |
st/dri/sw: add drisw_api similarly to dri1_api
I am pretty sure that this is in gallium spirit, so commit. Thanks to Chia-I
for suggesting this.
Diffstat (limited to 'src/gallium/targets/dri-swrast')
-rw-r--r-- | src/gallium/targets/dri-swrast/swrast_drm_api.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/gallium/targets/dri-swrast/swrast_drm_api.c b/src/gallium/targets/dri-swrast/swrast_drm_api.c index 1f24d7650d7..63b935bb07b 100644 --- a/src/gallium/targets/dri-swrast/swrast_drm_api.c +++ b/src/gallium/targets/dri-swrast/swrast_drm_api.c @@ -32,15 +32,7 @@ #include "state_tracker/sw_winsys.h" #include "dri_sw_winsys.h" -/* Copied from targets/libgl-xlib. - * - * TODO: - * This function should be put in targets/common or winsys/sw/common and shared - * with targets/libgl-xlib and winsys/sw/drm. - * - * For targets/common, you get layering violations unless all of drm_api's are - * moved under targets. - */ +/* Copied from targets/libgl-xlib */ #ifdef GALLIUM_SOFTPIPE #include "softpipe/sp_public.h" @@ -98,19 +90,24 @@ swrast_drm_create_screen(struct drm_api *api, { struct sw_winsys *winsys = NULL; struct pipe_screen *screen = NULL; + struct drisw_create_screen_arg *drisw; (void) drmFD; if (arg != NULL) { switch(arg->mode) { case DRM_CREATE_DRISW: + drisw = (struct drisw_create_screen_arg *)arg; break; default: return NULL; } } + else { + return NULL; + } - winsys = dri_create_sw_winsys(); + winsys = dri_create_sw_winsys(drisw->lf); if (winsys == NULL) return NULL; |