ilo: replace a boolean by bool
[mesa.git] / src / gallium / state_trackers / vega / api_filters.c
index 841df10ab73b36ee4c97c27cce50617e2250f941..f5856db4405be7957cb65cbd70ef13f7f4a41b58 100644 (file)
@@ -29,9 +29,9 @@
 #include "vg_context.h"
 #include "image.h"
 #include "api.h"
+#include "handle.h"
 #include "renderer.h"
 #include "shaders_cache.h"
-#include "st_inlines.h"
 
 #include "pipe/p_context.h"
 #include "pipe/p_state.h"
@@ -42,7 +42,6 @@
 #include "util/u_sampler.h"
 #include "util/u_string.h"
 
-
 #include "asm_filters.h"
 
 
@@ -73,20 +72,21 @@ static INLINE struct pipe_resource *create_texture_1d(struct vg_context *ctx,
    templ.width0 = color_data_len;
    templ.height0 = 1;
    templ.depth0 = 1;
+   templ.array_size = 1;
    templ.bind = PIPE_BIND_SAMPLER_VIEW;
 
    tex = screen->resource_create(screen, &templ);
 
    { /* upload color_data */
-      struct pipe_transfer *transfer =
-         pipe_get_transfer(pipe, tex,
-                               0, 0, 0,
-                               PIPE_TRANSFER_READ_WRITE ,
-                               0, 0, tex->width0, tex->height0);
-      void *map = pipe->transfer_map(pipe, transfer);
+      struct pipe_transfer *transfer;
+      void *map =
+         pipe_transfer_map(pipe, tex,
+                           0, 0,
+                           PIPE_TRANSFER_READ_WRITE ,
+                           0, 0, tex->width0, tex->height0,
+                           &transfer);
       memcpy(map, color_data, sizeof(VGint)*color_data_len);
       pipe->transfer_unmap(pipe, transfer);
-      pipe->transfer_destroy(pipe, transfer);
    }
 
    return tex;
@@ -194,7 +194,7 @@ static void execute_filter(struct vg_context *ctx,
    case VG_TILE_FILL:
       tex_wrap = PIPE_TEX_WRAP_CLAMP_TO_BORDER;
       /* copy border color */
-      memcpy(sampler.border_color, ctx->state.vg.tile_fill_color,
+      memcpy(sampler.border_color.f, ctx->state.vg.tile_fill_color,
             sizeof(sampler.border_color));
       break;
    case VG_TILE_PAD:
@@ -208,6 +208,7 @@ static void execute_filter(struct vg_context *ctx,
       break;
    default:
       debug_assert(!"Unknown tiling mode");
+      tex_wrap = 0;
       break;
    }
 
@@ -251,8 +252,8 @@ void vegaColorMatrix(VGImage dst, VGImage src,
       return;
    }
 
-   d = (struct vg_image*)dst;
-   s = (struct vg_image*)src;
+   d = handle_to_image(dst);
+   s = handle_to_image(src);
 
    if (vg_image_overlaps(d, s)) {
       vg_set_error(ctx, VG_ILLEGAL_ARGUMENT_ERROR);
@@ -293,7 +294,7 @@ void vegaConvolve(VGImage dst, VGImage src,
    struct vg_image *d, *s;
    VGint kernel_size = kernelWidth * kernelHeight;
    struct filter_info info;
-   const VGint max_kernel_size = vgGeti(VG_MAX_KERNEL_SIZE);
+   const VGint max_kernel_size = vegaGeti(VG_MAX_KERNEL_SIZE);
 
    if (dst == VG_INVALID_HANDLE || src == VG_INVALID_HANDLE) {
       vg_set_error(ctx, VG_BAD_HANDLE_ERROR);
@@ -317,8 +318,8 @@ void vegaConvolve(VGImage dst, VGImage src,
       return;
    }
 
-   d = (struct vg_image*)dst;
-   s = (struct vg_image*)src;
+   d = handle_to_image(dst);
+   s = handle_to_image(src);
 
    if (vg_image_overlaps(d, s)) {
       vg_set_error(ctx, VG_ILLEGAL_ARGUMENT_ERROR);
@@ -328,7 +329,7 @@ void vegaConvolve(VGImage dst, VGImage src,
    vg_validate_state(ctx);
 
    buffer_len = 8 + 2 * 4 * kernel_size;
-   buffer = (VGfloat*)malloc(buffer_len * sizeof(VGfloat));
+   buffer = malloc(buffer_len * sizeof(VGfloat));
 
    buffer[0] = 0.f;
    buffer[1] = 1.f;
@@ -395,7 +396,7 @@ void vegaSeparableConvolve(VGImage dst, VGImage src,
    struct vg_context *ctx = vg_current_context();
    VGshort *kernel;
    VGint i, j, idx = 0;
-   const VGint max_kernel_size = vgGeti(VG_MAX_SEPARABLE_KERNEL_SIZE);
+   const VGint max_kernel_size = vegaGeti(VG_MAX_SEPARABLE_KERNEL_SIZE);
 
    if (dst == VG_INVALID_HANDLE || src == VG_INVALID_HANDLE) {
       vg_set_error(ctx, VG_BAD_HANDLE_ERROR);
@@ -425,8 +426,8 @@ void vegaSeparableConvolve(VGImage dst, VGImage src,
          ++idx;
       }
    }
-   vgConvolve(dst, src, kernelWidth, kernelHeight, shiftX, shiftY,
-              kernel, scale, bias, tilingMode);
+   vegaConvolve(dst, src, kernelWidth, kernelHeight, shiftX, shiftY,
+                kernel, scale, bias, tilingMode);
    free(kernel);
 }
 
@@ -502,8 +503,8 @@ void vegaGaussianBlur(VGImage dst, VGImage src,
       return;
    }
 
-   d = (struct vg_image*)dst;
-   s = (struct vg_image*)src;
+   d = handle_to_image(dst);
+   s = handle_to_image(src);
 
    if (vg_image_overlaps(d, s)) {
       vg_set_error(ctx, VG_ILLEGAL_ARGUMENT_ERROR);
@@ -518,7 +519,7 @@ void vegaGaussianBlur(VGImage dst, VGImage src,
                            stdDeviationX, stdDeviationY);
 
    buffer_len = 8 + 2 * 4 * kernel_size;
-   buffer = (VGfloat*)malloc(buffer_len * sizeof(VGfloat));
+   buffer = malloc(buffer_len * sizeof(VGfloat));
 
    buffer[0] = 0.f;
    buffer[1] = 1.f;
@@ -599,8 +600,8 @@ void vegaLookup(VGImage dst, VGImage src,
       return;
    }
 
-   d = (struct vg_image*)dst;
-   s = (struct vg_image*)src;
+   d = handle_to_image(dst);
+   s = handle_to_image(src);
 
    if (vg_image_overlaps(d, s)) {
       vg_set_error(ctx, VG_ILLEGAL_ARGUMENT_ERROR);
@@ -662,8 +663,8 @@ void vegaLookupSingle(VGImage dst, VGImage src,
       return;
    }
 
-   d = (struct vg_image*)dst;
-   s = (struct vg_image*)src;
+   d = handle_to_image(dst);
+   s = handle_to_image(src);
 
    if (vg_image_overlaps(d, s)) {
       vg_set_error(ctx, VG_ILLEGAL_ARGUMENT_ERROR);