#include "src/core/SkBlitter.h"
#include "include/core/SkAlphaType.h"
#include "include/core/SkBlendMode.h"
#include "include/core/SkColor.h"
#include "include/core/SkColorFilter.h"
#include "include/core/SkColorSpace.h"
#include "include/core/SkColorType.h"
#include "include/core/SkImageInfo.h"
#include "include/core/SkPaint.h"
#include "include/core/SkPixmap.h"
#include "include/core/SkScalar.h"
#include "include/core/SkShader.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkTemplates.h"
#include "include/private/base/SkTo.h"
#include "src/base/SkArenaAlloc.h"
#include "src/base/SkTLazy.h"
#include "src/core/SkAlphaRuns.h"
#include "src/core/SkBlendModePriv.h"
#include "src/core/SkBlitter_A8.h"
#include "src/core/SkCoreBlitters.h"
#include "src/core/SkMask.h"
#include "src/core/SkMaskFilterBase.h"
#include "src/core/SkMemset.h"
#include "src/core/SkPaintPriv.h"
#include "src/core/SkRegionPriv.h"
#include "src/shaders/SkShaderBase.h"
#include <cstddef>
#include <functional>
#include <optional>
usingnamespaceskia_private;
bool gSkForceRasterPipelineBlitter{ … };
SkBlitter::~SkBlitter() { … }
bool SkBlitter::isNullBlitter() const { … }
inline static SkAlpha ScalarToAlpha(SkScalar a) { … }
void SkBlitter::blitFatAntiRect(const SkRect& rect) { … }
void SkBlitter::blitV(int x, int y, int height, SkAlpha alpha) { … }
void SkBlitter::blitRect(int x, int y, int width, int height) { … }
void SkBlitter::blitAntiRect(int x, int y, int width, int height,
SkAlpha leftAlpha, SkAlpha rightAlpha) { … }
static inline void bits_to_runs(SkBlitter* blitter, int x, int y,
const uint8_t bits[],
uint8_t left_mask, ptrdiff_t rowBytes,
uint8_t right_mask) { … }
static uint8_t generate_right_mask(int maskBitCount) { … }
void SkBlitter::blitMask(const SkMask& mask, const SkIRect& clip) { … }
#if defined(SK_SUPPORT_LEGACY_ALPHA_BITMAP_AS_COVERAGE)
void SkBlitter::blitMaskRegion(const SkMask& mask, const SkRegion& clip) {
if (clip.quickReject(mask.fBounds)) {
return;
}
SkRegion::Cliperator clipper(clip, mask.fBounds);
while (!clipper.done()) {
const SkIRect& cr = clipper.rect();
this->blitMask(mask, cr);
clipper.next();
}
}
#endif
void SkBlitter::blitRectRegion(const SkIRect& rect, const SkRegion& clip) { … }
void SkBlitter::blitRegion(const SkRegion& clip) { … }
void SkNullBlitter::blitH(int x, int y, int width) { … }
void SkNullBlitter::blitAntiH(int x, int y, const SkAlpha antialias[],
const int16_t runs[]) { … }
void SkNullBlitter::blitV(int x, int y, int height, SkAlpha alpha) { … }
void SkNullBlitter::blitRect(int x, int y, int width, int height) { … }
void SkNullBlitter::blitMask(const SkMask& mask, const SkIRect& clip) { … }
bool SkNullBlitter::isNullBlitter() const { … }
static int compute_anti_width(const int16_t runs[]) { … }
static inline bool y_in_rect(int y, const SkIRect& rect) { … }
static inline bool x_in_rect(int x, const SkIRect& rect) { … }
void SkRectClipBlitter::blitH(int left, int y, int width) { … }
void SkRectClipBlitter::blitAntiH(int left, int y, const SkAlpha const_aa[],
const int16_t const_runs[]) { … }
void SkRectClipBlitter::blitV(int x, int y, int height, SkAlpha alpha) { … }
void SkRectClipBlitter::blitRect(int left, int y, int width, int height) { … }
void SkRectClipBlitter::blitAntiRect(int left, int y, int width, int height,
SkAlpha leftAlpha, SkAlpha rightAlpha) { … }
void SkRectClipBlitter::blitMask(const SkMask& mask, const SkIRect& clip) { … }
void SkRgnClipBlitter::blitH(int x, int y, int width) { … }
void SkRgnClipBlitter::blitAntiH(int x, int y, const SkAlpha const_aa[],
const int16_t const_runs[]) { … }
void SkRgnClipBlitter::blitV(int x, int y, int height, SkAlpha alpha) { … }
void SkRgnClipBlitter::blitRect(int x, int y, int width, int height) { … }
void SkRgnClipBlitter::blitAntiRect(int x, int y, int width, int height,
SkAlpha leftAlpha, SkAlpha rightAlpha) { … }
void SkRgnClipBlitter::blitMask(const SkMask& mask, const SkIRect& clip) { … }
SkBlitter* SkBlitterClipper::apply(SkBlitter* blitter, const SkRegion* clip,
const SkIRect* ir) { … }
bool SkBlitter::UseLegacyBlitter(const SkPixmap& device,
const SkPaint& paint,
const SkMatrix& matrix) { … }
SkBlitter* SkBlitter::Choose(const SkPixmap& device,
const SkMatrix& ctm,
const SkPaint& origPaint,
SkArenaAlloc* alloc,
bool drawCoverage,
sk_sp<SkShader> clipShader,
const SkSurfaceProps& props) { … }
SkShaderBlitter::SkShaderBlitter(const SkPixmap& device, const SkPaint& paint,
SkShaderBase::Context* shaderContext)
: … { … }
SkShaderBlitter::~SkShaderBlitter() = default;
#ifdef SK_DEBUG
void SkRectClipCheckBlitter::blitH(int x, int y, int width) { … }
void SkRectClipCheckBlitter::blitAntiH(int x, int y, const SkAlpha aa[], const int16_t runs[]) { … }
void SkRectClipCheckBlitter::blitV(int x, int y, int height, SkAlpha alpha) { … }
void SkRectClipCheckBlitter::blitRect(int x, int y, int width, int height) { … }
void SkRectClipCheckBlitter::blitAntiRect(int x, int y, int width, int height,
SkAlpha leftAlpha, SkAlpha rightAlpha) { … }
void SkRectClipCheckBlitter::blitMask(const SkMask& mask, const SkIRect& clip) { … }
void SkRectClipCheckBlitter::blitAntiH2(int x, int y, U8CPU a0, U8CPU a1) { … }
void SkRectClipCheckBlitter::blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) { … }
#endif