Home | History | Annotate | Download | only in svga

Lines Matching refs:svga

39 svga_swtnl_draw_vbo(struct svga_context *svga,
45 struct draw_context *draw = svga->swtnl.draw;
50 assert(!svga->dirty);
51 assert(svga->state.sw.need_swtnl);
55 svga->state.sw.in_swtnl_draw = TRUE;
57 ret = svga_update_state(svga, SVGA_STATE_SWTNL_DRAW);
59 svga_context_flush(svga, NULL);
60 ret = svga_update_state(svga, SVGA_STATE_SWTNL_DRAW);
61 svga->swtnl.new_vbuf = TRUE;
68 for (i = 0; i < svga->curr.num_vertex_buffers; i++) {
69 if (svga->curr.vb[i].buffer) {
70 map = pipe_buffer_map(&svga->pipe,
71 svga->curr.vb[i].buffer,
81 if (info->indexed && svga->curr.ib.buffer) {
82 map = pipe_buffer_map(&svga->pipe, svga->curr.ib.buffer,
86 (const ubyte *) map + svga->curr.ib.offset,
87 svga->curr.ib.index_size);
90 if (svga->curr.cb[PIPE_SHADER_VERTEX]) {
91 map = pipe_buffer_map(&svga->pipe,
92 svga->curr.cb[PIPE_SHADER_VERTEX],
99 svga->curr.cb[PIPE_SHADER_VERTEX]->width0);
104 draw_flush(svga->swtnl.draw);
107 assert(i == svga->curr.num_vertex_buffers);
112 for (i = 0; i < svga->curr.num_vertex_buffers; i++) {
113 if (svga->curr.vb[i].buffer) {
114 pipe_buffer_unmap(&svga->pipe, vb_transfer[i]);
120 pipe_buffer_unmap(&svga->pipe, ib_transfer);
124 if (svga->curr.cb[PIPE_SHADER_VERTEX]) {
125 pipe_buffer_unmap(&svga->pipe, cb_transfer);
129 svga->state.sw.in_swtnl_draw = FALSE;
130 svga->dirty |= SVGA_NEW_NEED_PIPELINE | SVGA_NEW_NEED_SWVFETCH;
138 boolean svga_init_swtnl( struct svga_context *svga )
140 svga->swtnl.backend = svga_vbuf_render_create(svga);
141 if(!svga->swtnl.backend)
147 svga->swtnl.draw = draw_create(&svga->pipe);
148 if (svga->swtnl.draw == NULL)
152 draw_set_rasterize_stage(svga->swtnl.draw,
153 draw_vbuf_stage( svga->swtnl.draw, svga->swtnl.backend ));
155 draw_set_render(svga->swtnl.draw, svga->swtnl.backend);
157 draw_install_aaline_stage(svga->swtnl.draw, &svga->pipe);
158 draw_install_aapoint_stage(svga->swtnl.draw, &svga->pipe);
159 draw_install_pstipple_stage(svga->swtnl.draw, &svga->pipe);
162 draw_set_driver_clipping(svga->swtnl.draw, TRUE, TRUE, TRUE);
167 if (svga->swtnl.backend)
168 svga->swtnl.backend->destroy( svga->swtnl.backend );
170 if (svga->swtnl.draw)
171 draw_destroy( svga->swtnl.draw );
177 void svga_destroy_swtnl( struct svga_context *svga )
179 draw_destroy( svga->swtnl.draw );