#include "src/core/SkGlyphRunPainter.h"
#include "include/core/SkBitmap.h"
#include "include/core/SkCanvas.h"
#include "include/core/SkColorSpace.h"
#include "include/core/SkColorType.h"
#include "include/core/SkDrawable.h"
#include "include/core/SkFont.h"
#include "include/core/SkImageInfo.h"
#include "include/core/SkMatrix.h"
#include "include/core/SkPaint.h"
#include "include/core/SkPath.h"
#include "include/core/SkPoint.h"
#include "include/core/SkRect.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkScalar.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkFloatingPoint.h"
#include "include/private/base/SkSpan_impl.h"
#include "include/private/base/SkTArray.h"
#include "src/core/SkGlyph.h"
#include "src/core/SkMask.h"
#include "src/core/SkScalerContext.h"
#include "src/core/SkStrike.h"
#include "src/core/SkStrikeSpec.h"
#include "src/text/GlyphRun.h"
#include <algorithm>
#include <initializer_list>
#include <tuple>
#include <vector>
usingnamespaceskia_private;
usingnamespaceskglyph;
usingnamespacesktext;
namespace {
SkScalerContextFlags compute_scaler_context_flags(const SkColorSpace* cs) { … }
std::tuple<SkZip<const SkGlyph*, SkPoint>, SkZip<SkGlyphID, SkPoint>>
prepare_for_path_drawing(SkStrike* strike,
SkZip<const SkGlyphID, const SkPoint> source,
SkZip<const SkGlyph*, SkPoint> acceptedBuffer,
SkZip<SkGlyphID, SkPoint> rejectedBuffer) { … }
std::tuple<SkZip<const SkGlyph*, SkPoint>, SkZip<SkGlyphID, SkPoint>>
prepare_for_drawable_drawing(SkStrike* strike,
SkZip<const SkGlyphID, const SkPoint> source,
SkZip<const SkGlyph*, SkPoint> acceptedBuffer,
SkZip<SkGlyphID, SkPoint> rejectedBuffer) { … }
std::tuple<SkZip<const SkGlyph*, SkPoint>, SkZip<SkGlyphID, SkPoint>>
prepare_for_direct_mask_drawing(SkStrike* strike,
const SkMatrix& creationMatrix,
SkZip<const SkGlyphID, const SkPoint> source,
SkZip<const SkGlyph*, SkPoint> acceptedBuffer,
SkZip<SkGlyphID, SkPoint> rejectedBuffer) { … }
}
SkGlyphRunListPainterCPU::SkGlyphRunListPainterCPU(const SkSurfaceProps& props,
SkColorType colorType,
SkColorSpace* cs)
: … { … }
void SkGlyphRunListPainterCPU::drawForBitmapDevice(SkCanvas* canvas,
const BitmapDevicePainter* bitmapDevice,
const sktext::GlyphRunList& glyphRunList,
const SkPaint& paint,
const SkMatrix& drawMatrix) { … }