summaryrefslogtreecommitdiffstats
path: root/src/gallium/targets/dri-swrast
diff options
context:
space:
mode:
authorGeorge Sapountzis <[email protected]>2010-03-29 21:06:54 +0300
committerGeorge Sapountzis <[email protected]>2010-03-29 21:06:54 +0300
commit625e024b186829f199458679921916971a5b00cb (patch)
tree880bb927cb786e9602a91aded97298452b6193a9 /src/gallium/targets/dri-swrast
parent6cc5fbd76b8994da8174c39f8eacb6605f4aa3b2 (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.c17
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;