From: Marek Olšák <marek.ol...@amd.com> --- src/gallium/auxiliary/util/u_blitter.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-)
diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 5c82677..0fea7fc 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -709,45 +709,43 @@ void util_blitter_restore_constant_buffer_state(struct blitter_context *blitter) pipe->set_constant_buffer(pipe, PIPE_SHADER_FRAGMENT, blitter->cb_slot, &blitter->saved_fs_constant_buffer); pipe_resource_reference(&blitter->saved_fs_constant_buffer.buffer, NULL); } static void blitter_set_rectangle(struct blitter_context_priv *ctx, int x1, int y1, int x2, int y2, float depth) { - int i; + int width = x2 - x1; + int height = y2 - y1; /* set vertex positions */ - ctx->vertices[0][0][0] = (float)x1 / ctx->dst_width * 2.0f - 1.0f; /*v0.x*/ - ctx->vertices[0][0][1] = (float)y1 / ctx->dst_height * 2.0f - 1.0f; /*v0.y*/ - - ctx->vertices[1][0][0] = (float)x2 / ctx->dst_width * 2.0f - 1.0f; /*v1.x*/ - ctx->vertices[1][0][1] = (float)y1 / ctx->dst_height * 2.0f - 1.0f; /*v1.y*/ + ctx->vertices[0][0][0] = -1; /*v0.x*/ + ctx->vertices[0][0][1] = -1; /*v0.y*/ - ctx->vertices[2][0][0] = (float)x2 / ctx->dst_width * 2.0f - 1.0f; /*v2.x*/ - ctx->vertices[2][0][1] = (float)y2 / ctx->dst_height * 2.0f - 1.0f; /*v2.y*/ + ctx->vertices[1][0][0] = 1; /*v1.x*/ + ctx->vertices[1][0][1] = -1; /*v1.y*/ - ctx->vertices[3][0][0] = (float)x1 / ctx->dst_width * 2.0f - 1.0f; /*v3.x*/ - ctx->vertices[3][0][1] = (float)y2 / ctx->dst_height * 2.0f - 1.0f; /*v3.y*/ + ctx->vertices[2][0][0] = 1; /*v2.x*/ + ctx->vertices[2][0][1] = 1; /*v2.y*/ - for (i = 0; i < 4; i++) - ctx->vertices[i][0][2] = depth; /*z*/ + ctx->vertices[3][0][0] = -1; /*v3.x*/ + ctx->vertices[3][0][1] = 1; /*v3.y*/ /* viewport */ - ctx->viewport.scale[0] = 0.5f * ctx->dst_width; - ctx->viewport.scale[1] = 0.5f * ctx->dst_height; - ctx->viewport.scale[2] = 1.0f; - ctx->viewport.translate[0] = 0.5f * ctx->dst_width; - ctx->viewport.translate[1] = 0.5f * ctx->dst_height; - ctx->viewport.translate[2] = 0.0f; + ctx->viewport.scale[0] = width / 2.0; + ctx->viewport.scale[1] = height / 2.0; + ctx->viewport.scale[2] = 0; + ctx->viewport.translate[0] = width / 2.0 + x1; + ctx->viewport.translate[1] = height / 2.0 + y1; + ctx->viewport.translate[2] = depth; ctx->base.pipe->set_viewport_states(ctx->base.pipe, 0, 1, &ctx->viewport); } static void blitter_set_clear_color(struct blitter_context_priv *ctx, const union pipe_color_union *color) { int i; if (color) { for (i = 0; i < 4; i++) { -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev