#include "include/core/SkMatrix.h"
#include "include/core/SkPaint.h"
#include "include/core/SkPath.h"
#include "include/core/SkPathEffect.h"
#include "include/core/SkPathTypes.h"
#include "include/core/SkPathUtils.h"
#include "include/core/SkPixmap.h"
#include "include/core/SkPoint.h"
#include "include/core/SkRRect.h"
#include "include/core/SkRect.h"
#include "include/core/SkScalar.h"
#include "include/core/SkStrokeRec.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkCPUTypes.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkFloatingPoint.h"
#include "include/private/base/SkTemplates.h"
#include "src/base/SkTLazy.h"
#include "src/base/SkZip.h"
#include "src/core/SkAutoBlitterChoose.h"
#include "src/core/SkBlendModePriv.h"
#include "src/core/SkBlitter_A8.h"
#include "src/core/SkDevice.h"
#include "src/core/SkDrawBase.h"
#include "src/core/SkDrawProcs.h"
#include "src/core/SkMask.h"
#include "src/core/SkMaskFilterBase.h"
#include "src/core/SkPathEffectBase.h"
#include "src/core/SkPathPriv.h"
#include "src/core/SkRasterClip.h"
#include "src/core/SkRectPriv.h"
#include "src/core/SkScan.h"
#include <algorithm>
#include <cstddef>
#include <optional>
class SkBitmap;
class SkBlitter;
class SkGlyph;
class SkMaskFilter;
usingnamespaceskia_private;
SkDrawBase::SkDrawBase() { … }
bool SkDrawBase::computeConservativeLocalClipBounds(SkRect* localBounds) const { … }
void SkDrawBase::drawPaint(const SkPaint& paint) const { … }
static inline SkPoint compute_stroke_size(const SkPaint& paint, const SkMatrix& matrix) { … }
static bool easy_rect_join(const SkRect& rect, const SkPaint& paint, const SkMatrix& matrix,
SkPoint* strokeSize) { … }
SkDrawBase::RectType SkDrawBase::ComputeRectType(const SkRect& rect,
const SkPaint& paint,
const SkMatrix& matrix,
SkPoint* strokeSize) { … }
static const SkPoint* rect_points(const SkRect& r) { … }
static SkPoint* rect_points(SkRect& r) { … }
static void draw_rect_as_path(const SkDrawBase& orig,
const SkRect& prePaintRect,
const SkPaint& paint,
const SkMatrix& ctm) { … }
void SkDrawBase::drawRect(const SkRect& prePaintRect, const SkPaint& paint,
const SkMatrix* paintMatrix, const SkRect* postPaintRect) const { … }
static SkScalar fast_len(const SkVector& vec) { … }
bool SkDrawTreatAAStrokeAsHairline(SkScalar strokeWidth, const SkMatrix& matrix,
SkScalar* coverage) { … }
void SkDrawBase::drawRRect(const SkRRect& rrect, const SkPaint& paint) const { … }
void SkDrawBase::drawDevPath(const SkPath& devPath, const SkPaint& paint, bool drawCoverage,
SkBlitter* customBlitter, bool doFill) const { … }
void SkDrawBase::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint,
const SkMatrix* prePathMatrix, bool pathIsMutable,
bool drawCoverage, SkBlitter* customBlitter) const { … }
void SkDrawBase::paintMasks(SkZip<const SkGlyph*, SkPoint>, const SkPaint&) const { … }
void SkDrawBase::drawBitmap(const SkBitmap&, const SkMatrix&, const SkRect*,
const SkSamplingOptions&, const SkPaint&) const { … }
#ifdef SK_DEBUG
void SkDrawBase::validate() const { … }
#endif
bool SkDrawBase::ComputeMaskBounds(const SkRect& devPathBounds, const SkIRect& clipBounds,
const SkMaskFilter* filter, const SkMatrix* filterMatrix,
SkIRect* bounds) { … }
static void draw_into_mask(const SkMask& mask, const SkPath& devPath,
SkStrokeRec::InitStyle style) { … }
bool SkDrawBase::DrawToMask(const SkPath& devPath, const SkIRect& clipBounds,
const SkMaskFilter* filter, const SkMatrix* filterMatrix,
SkMaskBuilder* dst, SkMaskBuilder::CreateMode mode,
SkStrokeRec::InitStyle style) { … }
void SkDrawBase::drawDevicePoints(SkCanvas::PointMode mode, size_t count,
const SkPoint pts[], const SkPaint& paint,
SkDevice* device) const { … }