st/vega: Make image_draw take a matrix.
authorChia-I Wu <olv@lunarg.com>
Wed, 24 Nov 2010 07:51:46 +0000 (15:51 +0800)
committerChia-I Wu <olv@lunarg.com>
Wed, 1 Dec 2010 03:23:52 +0000 (11:23 +0800)
src/gallium/state_trackers/vega/api_images.c
src/gallium/state_trackers/vega/image.c
src/gallium/state_trackers/vega/image.h

index 23ab37513fe45278501c882c4550a5698513ef26..60f9db60e94d0d57206b9198be2ffb8b3a638317 100644 (file)
@@ -303,7 +303,8 @@ void vegaDrawImage(VGImage image)
    }
 
    vg_validate_state(ctx);
-   image_draw((struct vg_image*)image);
+   image_draw((struct vg_image*)image,
+         &ctx->state.vg.image_user_to_surface_matrix);
 }
 
 void vegaSetPixels(VGint dx, VGint dy,
index c5421f84cc60f47e0329a7d8086f09cb7af47935..b1bda3ff54bc0a879a5fadf1023e4830dd7439bf 100644 (file)
@@ -520,14 +520,13 @@ void image_copy(struct vg_image *dst, VGint dx, VGint dy,
                    src->sampler_view, src->x + sx, src->y + sy, width, height);
 }
 
-void image_draw(struct vg_image *img)
+void image_draw(struct vg_image *img, struct matrix *matrix)
 {
    struct vg_context *ctx = vg_current_context();
    VGfloat x1, y1;
    VGfloat x2, y2;
    VGfloat x3, y3;
    VGfloat x4, y4;
-   struct matrix *matrix;
 
    x1 = 0;
    y1 = 0;
@@ -538,8 +537,6 @@ void image_draw(struct vg_image *img)
    x4 = 0;
    y4 = img->height;
 
-   matrix = &ctx->state.vg.image_user_to_surface_matrix;
-
    matrix_map_point(matrix, x1, y1, &x1, &y1);
    matrix_map_point(matrix, x2, y2, &x2, &y2);
    matrix_map_point(matrix, x3, y3, &x3, &y3);
index a990c9c58735eb90078bce8452742acc8318c7c7..391c048594843941e82f78fb52e157f1b9a1e339 100644 (file)
@@ -79,7 +79,7 @@ void image_copy(struct vg_image *dst, VGint dx, VGint dy,
                 VGint width, VGint height,
                 VGboolean dither);
 
-void image_draw(struct vg_image *img);
+void image_draw(struct vg_image *img, struct matrix *matrix);
 
 void image_set_pixels(VGint dx, VGint dy,
                       struct vg_image *src, VGint sx, VGint sy,