gallium: make p_winsys internal
[mesa.git] / src / gallium / drivers / nv10 / nv10_prim_vbuf.c
index 930536b94687b83b270f84450150f62d808d6d49..7435d873154d311b7b18d6add6c010255cfe7582 100644 (file)
  */
 
 
-#include "draw/draw_vbuf.h"
 #include "pipe/p_debug.h"
-#include "pipe/p_util.h"
 #include "pipe/p_inlines.h"
-#include "pipe/p_winsys.h"
+#include "pipe/internal/p_winsys_screen.h"
 
 #include "nv10_context.h"
 #include "nv10_state.h"
 
+#include "draw/draw_vbuf.h"
 
 /**
  * Primitive renderer for nv10.
@@ -122,12 +121,17 @@ nv10_vbuf_render_allocate_vertices( struct vbuf_render *render,
 }
 
 
-static void 
+static boolean
 nv10_vbuf_render_set_primitive( struct vbuf_render *render, 
                unsigned prim )
 {
        struct nv10_vbuf_render *nv10_render = nv10_vbuf_render(render);
-       nv10_render->hwprim = prim + 1;
+       unsigned hwp = nvgl_primitive(prim);
+       if (hwp == 0)
+               return FALSE;
+
+       nv10_render->hwprim = hwp;
+       return TRUE;
 }
 
 
@@ -180,10 +184,11 @@ nv10_vbuf_render_release_vertices( struct vbuf_render *render,
        struct nv10_vbuf_render *nv10_render = nv10_vbuf_render(render);
        struct nv10_context *nv10 = nv10_render->nv10;
        struct pipe_winsys *winsys = nv10->pipe.winsys;
+       struct pipe_screen *pscreen = &nv10->screen->pipe;
 
        assert(nv10_render->buffer);
        winsys->buffer_unmap(winsys, nv10_render->buffer);
-       pipe_buffer_reference(winsys, &nv10_render->buffer, NULL);
+       pipe_buffer_reference(pscreen, &nv10_render->buffer, NULL);
 }