summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/g3dvl/xlib/xsp_winsys.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gallium/winsys/g3dvl/xlib/xsp_winsys.c b/src/gallium/winsys/g3dvl/xlib/xsp_winsys.c
index cc80583f088..ab52be38c75 100644
--- a/src/gallium/winsys/g3dvl/xlib/xsp_winsys.c
+++ b/src/gallium/winsys/g3dvl/xlib/xsp_winsys.c
@@ -30,8 +30,10 @@
#include <state_tracker/xlib_sw_winsys.h>
#include <util/u_memory.h>
#include <util/u_format.h>
+#include <util/u_inlines.h>
#include <softpipe/sp_public.h>
-#include <softpipe/sp_video_context.h>
+#include <pipe/p_state.h>
+#include <pipe/p_video_context.h>
struct vl_xsp_screen
{
@@ -44,8 +46,9 @@ struct vl_xsp_screen
};
struct pipe_surface*
-vl_drawable_surface_get(struct vl_screen *vscreen, Drawable drawable)
+vl_drawable_surface_get(struct vl_context *vctx, Drawable drawable)
{
+ struct vl_screen *vscreen = vctx->vscreen;
struct vl_xsp_screen *xsp_screen = (struct vl_xsp_screen*)vscreen;
Window root;
int x, y;
@@ -53,7 +56,7 @@ vl_drawable_surface_get(struct vl_screen *vscreen, Drawable drawable)
unsigned int border_width;
unsigned int depth;
struct pipe_resource templat, *drawable_tex;
- struct pipe_surface *drawable_surface = NULL;
+ struct pipe_surface surf_template, *drawable_surface = NULL;
assert(vscreen);
assert(drawable != None);
@@ -89,9 +92,9 @@ vl_drawable_surface_get(struct vl_screen *vscreen, Drawable drawable)
if (!drawable_tex)
return NULL;
- xsp_screen->drawable_surface = vscreen->pscreen->get_tex_surface(vscreen->pscreen, drawable_tex,
- 0, 0, 0,
- templat.bind);
+ memset(&surf_template, 0, sizeof(surf_template));
+ xsp_screen->drawable_surface = vctx->vpipe->create_surface(vctx->vpipe, drawable_tex,
+ &surf_template);
pipe_resource_reference(&drawable_tex, NULL);
if (!xsp_screen->drawable_surface)