1b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com/*
2b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com * Copyright 2013 Google Inc.
3b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com *
4b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com * Use of this source code is governed by a BSD-style license that can be
5b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com * found in the LICENSE file.
6b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com */
7b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com
8b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com#ifndef SkBitmapFilter_opts_sse2_DEFINED
9b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com#define SkBitmapFilter_opts_sse2_DEFINED
10b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com
11b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com#include "SkBitmapProcState.h"
12138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com#include "SkConvolver.h"
13b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com
14b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.comvoid highQualityFilter_ScaleOnly_SSE2(const SkBitmapProcState &s, int x, int y,
158c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org                                      SkPMColor *SK_RESTRICT colors, int count);
16b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.comvoid highQualityFilter_SSE2(const SkBitmapProcState &s, int x, int y,
178c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org                            SkPMColor *SK_RESTRICT colors, int count);
189e1ec1a52985cce9db3a0d0e8d448b82a32e70cbskia.committer@gmail.com
19138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com
20138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.comvoid convolveVertically_SSE2(const SkConvolutionFilter1D::ConvolutionFixed* filter_values,
21138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                             int filter_length,
22138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                             unsigned char* const* source_data_rows,
23138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                             int pixel_width,
24138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                             unsigned char* out_row,
25138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                             bool has_alpha);
26138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.comvoid convolve4RowsHorizontally_SSE2(const unsigned char* src_data[4],
27138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                                    const SkConvolutionFilter1D& filter,
28138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                                    unsigned char* out_row[4]);
29138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.comvoid convolveHorizontally_SSE2(const unsigned char* src_data,
30138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                               const SkConvolutionFilter1D& filter,
31138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                               unsigned char* out_row,
32138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com                               bool has_alpha);
33138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.comvoid applySIMDPadding_SSE2(SkConvolutionFilter1D* filter);
34138ebc3e4061cf533ea2f7f3717239670fdc6e43humper@google.com
35b088947f27496a9b9dc48a7cfb170f9d59589825humper@google.com#endif
36