st/mesa: fix clear/drawpixels/bitmap for new cso vertex elements interface
somehow those got lost...
This commit is contained in:
@@ -440,6 +440,7 @@ draw_bitmap_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z,
|
||||
cso_save_viewport(cso);
|
||||
cso_save_fragment_shader(cso);
|
||||
cso_save_vertex_shader(cso);
|
||||
cso_save_vertex_elements(cso);
|
||||
|
||||
/* rasterizer state: just scissor */
|
||||
st->bitmap.rasterizer.scissor = ctx->Scissor.Enabled;
|
||||
@@ -490,6 +491,8 @@ draw_bitmap_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z,
|
||||
cso_set_viewport(cso, &vp);
|
||||
}
|
||||
|
||||
cso_set_vertex_elements(cso, 3, st->velems_util_draw);
|
||||
|
||||
/* draw textured quad */
|
||||
offset = setup_bitmap_vertex_data(st, x, y, width, height, z, color);
|
||||
|
||||
@@ -506,6 +509,7 @@ draw_bitmap_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z,
|
||||
cso_restore_viewport(cso);
|
||||
cso_restore_fragment_shader(cso);
|
||||
cso_restore_vertex_shader(cso);
|
||||
cso_restore_vertex_elements(cso);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -220,6 +220,7 @@ clear_with_quad(GLcontext *ctx,
|
||||
cso_save_rasterizer(st->cso_context);
|
||||
cso_save_fragment_shader(st->cso_context);
|
||||
cso_save_vertex_shader(st->cso_context);
|
||||
cso_save_vertex_elements(st->cso_context);
|
||||
|
||||
/* blend state: RGBA masking */
|
||||
{
|
||||
@@ -271,6 +272,8 @@ clear_with_quad(GLcontext *ctx,
|
||||
cso_set_depth_stencil_alpha(st->cso_context, &depth_stencil);
|
||||
}
|
||||
|
||||
cso_set_vertex_elements(st->cso_context, 2, st->velems_util_draw);
|
||||
|
||||
cso_set_rasterizer(st->cso_context, &st->clear.raster);
|
||||
|
||||
cso_set_fragment_shader_handle(st->cso_context, st->clear.fs);
|
||||
@@ -286,6 +289,7 @@ clear_with_quad(GLcontext *ctx,
|
||||
cso_restore_rasterizer(st->cso_context);
|
||||
cso_restore_fragment_shader(st->cso_context);
|
||||
cso_restore_vertex_shader(st->cso_context);
|
||||
cso_restore_vertex_elements(st->cso_context);
|
||||
|
||||
}
|
||||
|
||||
|
@@ -529,6 +529,7 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z,
|
||||
cso_save_sampler_textures(cso);
|
||||
cso_save_fragment_shader(cso);
|
||||
cso_save_vertex_shader(cso);
|
||||
cso_save_vertex_elements(cso);
|
||||
|
||||
/* rasterizer state: just scissor */
|
||||
{
|
||||
@@ -581,6 +582,8 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z,
|
||||
cso_set_viewport(cso, &vp);
|
||||
}
|
||||
|
||||
cso_set_vertex_elements(cso, 3, st->velems_util_draw);
|
||||
|
||||
/* texture state: */
|
||||
if (st->pixel_xfer.pixelmap_enabled) {
|
||||
struct pipe_texture *textures[2];
|
||||
@@ -612,6 +615,7 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z,
|
||||
cso_restore_sampler_textures(cso);
|
||||
cso_restore_fragment_shader(cso);
|
||||
cso_restore_vertex_shader(cso);
|
||||
cso_restore_vertex_elements(cso);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -142,6 +142,14 @@ st_create_context_priv( GLcontext *ctx, struct pipe_context *pipe )
|
||||
for (i = 0; i < PIPE_MAX_SAMPLERS; i++)
|
||||
st->state.sampler_list[i] = &st->state.samplers[i];
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
memset(&st->velems_util_draw[i], 0, sizeof(struct pipe_vertex_element));
|
||||
st->velems_util_draw[i].src_offset = i * 4 * sizeof(float);
|
||||
st->velems_util_draw[i].instance_divisor = 0;
|
||||
st->velems_util_draw[i].vertex_buffer_index = 0;
|
||||
st->velems_util_draw[i].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||
}
|
||||
|
||||
/* we want all vertex data to be placed in buffer objects */
|
||||
vbo_use_buffer_objects(ctx);
|
||||
|
||||
|
@@ -173,6 +173,9 @@ struct st_context
|
||||
unsigned vbuf_slot;
|
||||
} clear;
|
||||
|
||||
/** used for anything using util_draw_vertex_buffer */
|
||||
struct pipe_vertex_element velems_util_draw[3];
|
||||
|
||||
void *passthrough_fs; /**< simple pass-through frag shader */
|
||||
|
||||
struct gen_mipmap_state *gen_mipmap;
|
||||
|
Reference in New Issue
Block a user