static void blitter_draw_quad(struct blitter_context_priv *ctx)
{
- struct blitter_context *blitter = &ctx->blitter;
struct pipe_context *pipe = ctx->pipe;
- if (blitter->draw_quad) {
- blitter->draw_quad(pipe, &ctx->vertices[0][0][0]);
- } else {
- /* write vertices and draw them */
- pipe_buffer_write(pipe->screen, ctx->vbuf,
- 0, sizeof(ctx->vertices), ctx->vertices);
+ /* write vertices and draw them */
+ pipe_buffer_write(pipe->screen, ctx->vbuf,
+ 0, sizeof(ctx->vertices), ctx->vertices);
- util_draw_vertex_buffer(ctx->pipe, ctx->vbuf, 0, PIPE_PRIM_TRIANGLE_FAN,
- 4, /* verts */
- 2); /* attribs/vert */
- }
+ util_draw_vertex_buffer(pipe, ctx->vbuf, 0, PIPE_PRIM_TRIANGLE_FAN,
+ 4, /* verts */
+ 2); /* attribs/vert */
}
static INLINE
struct blitter_context
{
- /**
- * Draw a quad.
- *
- * The pipe driver can set this to provide a more efficient way of drawing
- * a quad. If it's NULL, the quad is drawn using a vertex buffer.
- *
- * There are always 4 vertices with interleaved vertex elements of type
- * RGBA32F. See the vertex shader _output_ semantics to know what those are.
- * The primitive type is always PIPE_PRIM_TRIANGLE_FAN and VS/clip/viewport
- * is bypasssed.
- */
- void (*draw_quad)(struct pipe_context *pipe,
- const float *vertices);
-
/* Private members, really. */
void *saved_blend_state; /**< blend state */
void *saved_dsa_state; /**< depth stencil alpha state */