diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2009-01-17 17:12:30 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2009-01-17 17:12:30 +0000 |
commit | bcc45a202496fba9686f953011039c09e36bf3ae (patch) | |
tree | a8cab6caab4fac57ac04b683a2fd4d3c66ddd429 /src/gallium/winsys/xlib/xlib_brw_screen.c | |
parent | 4f134f91a427b053d1bc069cb6cac48a0982abc3 (diff) |
xlib: don't explicitly create the pipe_winsys struct
Diffstat (limited to 'src/gallium/winsys/xlib/xlib_brw_screen.c')
-rw-r--r-- | src/gallium/winsys/xlib/xlib_brw_screen.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/gallium/winsys/xlib/xlib_brw_screen.c b/src/gallium/winsys/xlib/xlib_brw_screen.c index 1e4c2f6c41..030cd66bd9 100644 --- a/src/gallium/winsys/xlib/xlib_brw_screen.c +++ b/src/gallium/winsys/xlib/xlib_brw_screen.c @@ -351,9 +351,26 @@ xlib_create_brw_winsys( void ) static struct pipe_screen * -xlib_create_brw_screen( struct pipe_winsys *winsys ) +xlib_create_brw_screen( void ) { - return brw_create_screen(winsys, 0/* XXX pci_id */); + struct pipe_winsys *winsys; + struct pipe_screen *screen; + + winsys = xlib_create_brw_winsys(); + if (winsys == NULL) + return NULL; + + screen = brw_create_screen(winsys, 0/* XXX pci_id */); + if (screen == NULL) + goto fail; + + return screen; + +fail: + if (winsys) + winsys->destroy( winsys ); + + return NULL; } @@ -473,7 +490,6 @@ xlib_brw_display_surface(struct xmesa_buffer *b, struct xm_driver xlib_brw_driver = { - .create_pipe_winsys = xlib_create_brw_winsys, .create_pipe_screen = xlib_create_brw_screen, .create_pipe_context = xlib_create_brw_context, .display_surface = xlib_brw_display_surface, |