#include "include/core/SkTypes.h"
#ifndef SK_USE_DRAWING_MIPMAP_DOWNSAMPLER
#include "include/private/SkColorData.h"
#include "src/base/SkHalf.h"
#include "src/base/SkVx.h"
#include "src/core/SkMipmap.h"
namespace {
struct ColorTypeFilter_8888 { … };
struct ColorTypeFilter_565 { … };
struct ColorTypeFilter_4444 { … };
struct ColorTypeFilter_8 { … };
struct ColorTypeFilter_Alpha_F16 { … };
struct ColorTypeFilter_RGBA_F16 { … };
struct ColorTypeFilter_88 { … };
struct ColorTypeFilter_1616 { … };
struct ColorTypeFilter_F16F16 { … };
struct ColorTypeFilter_16161616 { … };
struct ColorTypeFilter_16 { … };
struct ColorTypeFilter_1010102 { … };
template <typename T> T add_121(const T& a, const T& b, const T& c) { … }
template <typename T> T shift_right(const T& x, int bits) { … }
skvx::float4 shift_right(const skvx::float4& x, int bits) { … }
template <typename T> T shift_left(const T& x, int bits) { … }
skvx::float4 shift_left(const skvx::float4& x, int bits) { … }
template <typename F> void downsample_1_2(void* dst, const void* src, size_t srcRB, int count) { … }
template <typename F> void downsample_1_3(void* dst, const void* src, size_t srcRB, int count) { … }
template <typename F> void downsample_2_1(void* dst, const void* src, size_t srcRB, int count) { … }
template <typename F> void downsample_2_2(void* dst, const void* src, size_t srcRB, int count) { … }
template <typename F> void downsample_2_3(void* dst, const void* src, size_t srcRB, int count) { … }
template <typename F> void downsample_3_1(void* dst, const void* src, size_t srcRB, int count) { … }
template <typename F> void downsample_3_2(void* dst, const void* src, size_t srcRB, int count) { … }
template <typename F> void downsample_3_3(void* dst, const void* src, size_t srcRB, int count) { … }
FilterProc;
struct HQDownSampler : SkMipmapDownSampler { … };
void HQDownSampler::buildLevel(const SkPixmap& dst, const SkPixmap& src) { … }
}
std::unique_ptr<SkMipmapDownSampler> SkMipmap::MakeDownSampler(const SkPixmap& root) { … }
#endif