1/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkBitmapFilter_opts_sse2_DEFINED
9#define SkBitmapFilter_opts_sse2_DEFINED
10
11#include "SkBitmapProcState.h"
12#include "SkConvolver.h"
13
14void highQualityFilter_ScaleOnly_SSE2(const SkBitmapProcState &s, int x, int y,
15                                      SkPMColor *SK_RESTRICT colors, int count);
16void highQualityFilter_SSE2(const SkBitmapProcState &s, int x, int y,
17                            SkPMColor *SK_RESTRICT colors, int count);
18
19
20void convolveVertically_SSE2(const SkConvolutionFilter1D::ConvolutionFixed* filter_values,
21                             int filter_length,
22                             unsigned char* const* source_data_rows,
23                             int pixel_width,
24                             unsigned char* out_row,
25                             bool has_alpha);
26void convolve4RowsHorizontally_SSE2(const unsigned char* src_data[4],
27                                    const SkConvolutionFilter1D& filter,
28                                    unsigned char* out_row[4]);
29void convolveHorizontally_SSE2(const unsigned char* src_data,
30                               const SkConvolutionFilter1D& filter,
31                               unsigned char* out_row,
32                               bool has_alpha);
33void applySIMDPadding_SSE2(SkConvolutionFilter1D* filter);
34
35#endif
36