#include "include/core/SkMatrix.h"
#include "include/core/SkPixmap.h"
#include "include/core/SkTileMode.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkCPUTypes.h"
#include "include/private/base/SkFixed.h"
#include "include/private/base/SkMath.h"
#include "include/private/base/SkTFitsIn.h"
#include "include/private/base/SkTPin.h"
#include "include/private/base/SkTo.h"
#include "src/core/SkBitmapProcState.h"
#include "src/core/SkMemset.h"
#include <cstdint>
#include <cstring>
static inline bool can_truncate_to_fixed_for_decal(SkFixed fx,
SkFixed dx,
int count, unsigned max) { … }
static void decal_nofilter_scale(uint32_t dst[], SkFixed fx, SkFixed dx, int count) { … }
template <unsigned (*tilex)(SkFixed, int), unsigned (*tiley)(SkFixed, int), bool tryDecal>
static void nofilter_scale(const SkBitmapProcState& s,
uint32_t xy[], int count, int x, int y) { … }
template <unsigned (*tilex)(SkFixed, int), unsigned (*tiley)(SkFixed, int)>
static void nofilter_affine(const SkBitmapProcState& s,
uint32_t xy[], int count, int x, int y) { … }
static unsigned extract_low_bits_clamp_clamp(SkFixed fx, int ) { … }
static unsigned extract_low_bits_general(SkFixed fx, int max) { … }
template <unsigned (*tile)(SkFixed, int), unsigned (*extract_low_bits)(SkFixed, int)>
SK_NO_SANITIZE("signed-integer-overflow")
static uint32_t pack(SkFixed f, unsigned max, SkFixed one) { … }
template <unsigned (*tilex)(SkFixed, int), unsigned (*tiley)(SkFixed, int), unsigned (*extract_low_bits)(SkFixed, int), bool tryDecal>
static void filter_scale(const SkBitmapProcState& s,
uint32_t xy[], int count, int x, int y) { … }
template <unsigned (*tilex)(SkFixed, int), unsigned (*tiley)(SkFixed, int), unsigned (*extract_low_bits)(SkFixed, int)>
static void filter_affine(const SkBitmapProcState& s,
uint32_t xy[], int count, int x, int y) { … }
static inline unsigned SK_USHIFT16(unsigned x) { … }
static unsigned repeat(SkFixed fx, int max) { … }
static unsigned mirror(SkFixed fx, int max) { … }
static unsigned clamp(SkFixed fx, int max) { … }
static const SkBitmapProcState::MatrixProc ClampX_ClampY_Procs[] = …;
static const SkBitmapProcState::MatrixProc RepeatX_RepeatY_Procs[] = …;
static const SkBitmapProcState::MatrixProc MirrorX_MirrorY_Procs[] = …;
static inline U16CPU int_clamp(int x, int n) { … }
static inline int sk_int_mod(int x, int n) { … }
static inline U16CPU int_repeat(int x, int n) { … }
static inline U16CPU int_mirror(int x, int n) { … }
static void fill_sequential(uint16_t xptr[], int pos, int count) { … }
static void fill_backwards(uint16_t xptr[], int pos, int count) { … }
template< U16CPU (tiley)(int x, int n) >
static void clampx_nofilter_trans(const SkBitmapProcState& s,
uint32_t xy[], int count, int x, int y) { … }
template< U16CPU (tiley)(int x, int n) >
static void repeatx_nofilter_trans(const SkBitmapProcState& s,
uint32_t xy[], int count, int x, int y) { … }
template< U16CPU (tiley)(int x, int n) >
static void mirrorx_nofilter_trans(const SkBitmapProcState& s,
uint32_t xy[], int count, int x, int y) { … }
SkBitmapProcState::MatrixProc SkBitmapProcState::chooseMatrixProc(bool translate_only_matrix) { … }
uint32_t sktests::pack_clamp(SkFixed f, unsigned max) { … }
uint32_t sktests::pack_repeat(SkFixed f, unsigned max, size_t width) { … }
uint32_t sktests::pack_mirror(SkFixed f, unsigned max, size_t width) { … }