draw_set_rasterize_stage(draw, st->selection_stage);
/* Plug in new vbo draw function */
vbo->draw_prims = st_feedback_draw_vbo;
+ /* setup post-transform vertex attribs */
+ {
+ /* just emit pos as GLfloat[4] */
+ static const uint attrs[1] = { FORMAT_4F };
+ const interp_mode *interp = NULL;
+ draw_set_vertex_attributes(draw, attrs, interp, 1);
+ }
}
else {
if (!st->feedback_stage)
struct pipe_buffer_handle *index_buffer_handle = 0;
struct pipe_vertex_buffer vbuffer[PIPE_MAX_SHADER_INPUTS];
GLuint attr, i;
+ ubyte *mapped_constants;
assert(ctx->RenderMode == GL_SELECT ||
ctx->RenderMode == GL_FEEDBACK);
PIPE_BUFFER_FLAG_READ);
draw_set_mapped_element_buffer(draw, indexSize, map);
}
+ else {
+ /* no index/element buffer */
+ draw_set_mapped_element_buffer(draw, 0, NULL);
+ }
+
+
+ /* map constant buffers */
+ mapped_constants = winsys->buffer_map(winsys,
+ st->state.constants[PIPE_SHADER_VERTEX].buffer,
+ PIPE_BUFFER_FLAG_READ);
+ draw_set_mapped_constant_buffer(st->draw, mapped_constants);
/* draw here */
}
+ /* unmap constant buffers */
+ winsys->buffer_unmap(winsys, st->state.constants[PIPE_SHADER_VERTEX].buffer);
+
/*
* unmap vertex/index buffers
*/