Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SkOverdrawCanvas Class Reference

#include <SkOverdrawCanvas.h>

Inheritance diagram for SkOverdrawCanvas:
SkCanvasVirtualEnforcer< SkNWayCanvas > SkNWayCanvas SkCanvasVirtualEnforcer< SkNoDrawCanvas > SkNoDrawCanvas SkCanvasVirtualEnforcer< SkCanvas > SkCanvas

Public Member Functions

 SkOverdrawCanvas (SkCanvas *)
 
void onDrawTextBlob (const SkTextBlob *, SkScalar, SkScalar, const SkPaint &) override
 
void onDrawGlyphRunList (const sktext::GlyphRunList &glyphRunList, const SkPaint &paint) override
 
void onDrawPatch (const SkPoint[12], const SkColor[4], const SkPoint[4], SkBlendMode, const SkPaint &) override
 
void onDrawPaint (const SkPaint &) override
 
void onDrawBehind (const SkPaint &paint) override
 
void onDrawRect (const SkRect &, const SkPaint &) override
 
void onDrawRegion (const SkRegion &, const SkPaint &) override
 
void onDrawOval (const SkRect &, const SkPaint &) override
 
void onDrawArc (const SkRect &, SkScalar, SkScalar, bool, const SkPaint &) override
 
void onDrawDRRect (const SkRRect &, const SkRRect &, const SkPaint &) override
 
void onDrawRRect (const SkRRect &, const SkPaint &) override
 
void onDrawPoints (PointMode, size_t, const SkPoint[], const SkPaint &) override
 
void onDrawVerticesObject (const SkVertices *, SkBlendMode, const SkPaint &) override
 
void onDrawPath (const SkPath &, const SkPaint &) override
 
void onDrawImage2 (const SkImage *, SkScalar, SkScalar, const SkSamplingOptions &, const SkPaint *) override
 
void onDrawImageRect2 (const SkImage *, const SkRect &, const SkRect &, const SkSamplingOptions &, const SkPaint *, SrcRectConstraint) override
 
void onDrawImageLattice2 (const SkImage *, const Lattice &, const SkRect &, SkFilterMode, const SkPaint *) override
 
void onDrawAtlas2 (const SkImage *, const SkRSXform[], const SkRect[], const SkColor[], int, SkBlendMode, const SkSamplingOptions &, const SkRect *, const SkPaint *) override
 
void onDrawDrawable (SkDrawable *, const SkMatrix *) override
 
void onDrawPicture (const SkPicture *, const SkMatrix *, const SkPaint *) override
 
void onDrawAnnotation (const SkRect &, const char key[], SkData *value) override
 
void onDrawShadowRec (const SkPath &, const SkDrawShadowRec &) override
 
void onDrawEdgeAAQuad (const SkRect &, const SkPoint[4], SkCanvas::QuadAAFlags, const SkColor4f &, SkBlendMode) override
 
void onDrawEdgeAAImageSet2 (const ImageSetEntry[], int count, const SkPoint[], const SkMatrix[], const SkSamplingOptions &, const SkPaint *, SrcRectConstraint) override
 
- Public Member Functions inherited from SkNWayCanvas
 SkNWayCanvas (int width, int height)
 
 ~SkNWayCanvas () override
 
virtual void addCanvas (SkCanvas *)
 
virtual void removeCanvas (SkCanvas *)
 
virtual void removeAll ()
 
- Public Member Functions inherited from SkNoDrawCanvas
 SkNoDrawCanvas (int width, int height)
 
 SkNoDrawCanvas (const SkIRect &)
 
void resetCanvas (int w, int h)
 
void resetCanvas (const SkIRect &rect)
 
- Public Member Functions inherited from SkCanvas
 SkCanvas ()
 
 SkCanvas (int width, int height, const SkSurfaceProps *props=nullptr)
 
 SkCanvas (sk_sp< SkDevice > device)
 
 SkCanvas (const SkBitmap &bitmap)
 
 SkCanvas (const SkBitmap &bitmap, const SkSurfaceProps &props)
 
virtual ~SkCanvas ()
 
SkImageInfo imageInfo () const
 
bool getProps (SkSurfaceProps *props) const
 
SkSurfaceProps getBaseProps () const
 
SkSurfaceProps getTopProps () const
 
virtual SkISize getBaseLayerSize () const
 
sk_sp< SkSurfacemakeSurface (const SkImageInfo &info, const SkSurfaceProps *props=nullptr)
 
virtual GrRecordingContextrecordingContext () const
 
virtual skgpu::graphite::Recorderrecorder () const
 
SkSurfacegetSurface () const
 
void * accessTopLayerPixels (SkImageInfo *info, size_t *rowBytes, SkIPoint *origin=nullptr)
 
SkRasterHandleAllocator::Handle accessTopRasterHandle () const
 
bool peekPixels (SkPixmap *pixmap)
 
bool readPixels (const SkImageInfo &dstInfo, void *dstPixels, size_t dstRowBytes, int srcX, int srcY)
 
bool readPixels (const SkPixmap &pixmap, int srcX, int srcY)
 
bool readPixels (const SkBitmap &bitmap, int srcX, int srcY)
 
bool writePixels (const SkImageInfo &info, const void *pixels, size_t rowBytes, int x, int y)
 
bool writePixels (const SkBitmap &bitmap, int x, int y)
 
int save ()
 
int saveLayer (const SkRect *bounds, const SkPaint *paint)
 
int saveLayer (const SkRect &bounds, const SkPaint *paint)
 
int saveLayerAlphaf (const SkRect *bounds, float alpha)
 
int saveLayerAlpha (const SkRect *bounds, U8CPU alpha)
 
int saveLayer (const SaveLayerRec &layerRec)
 
void restore ()
 
int getSaveCount () const
 
void restoreToCount (int saveCount)
 
void translate (SkScalar dx, SkScalar dy)
 
void scale (SkScalar sx, SkScalar sy)
 
void rotate (SkScalar degrees)
 
void rotate (SkScalar degrees, SkScalar px, SkScalar py)
 
void skew (SkScalar sx, SkScalar sy)
 
void concat (const SkMatrix &matrix)
 
void concat (const SkM44 &)
 
void setMatrix (const SkM44 &matrix)
 
void setMatrix (const SkMatrix &matrix)
 
void resetMatrix ()
 
void clipRect (const SkRect &rect, SkClipOp op, bool doAntiAlias)
 
void clipRect (const SkRect &rect, SkClipOp op)
 
void clipRect (const SkRect &rect, bool doAntiAlias=false)
 
void clipIRect (const SkIRect &irect, SkClipOp op=SkClipOp::kIntersect)
 
void androidFramework_setDeviceClipRestriction (const SkIRect &rect)
 
void clipRRect (const SkRRect &rrect, SkClipOp op, bool doAntiAlias)
 
void clipRRect (const SkRRect &rrect, SkClipOp op)
 
void clipRRect (const SkRRect &rrect, bool doAntiAlias=false)
 
void clipPath (const SkPath &path, SkClipOp op, bool doAntiAlias)
 
void clipPath (const SkPath &path, SkClipOp op)
 
void clipPath (const SkPath &path, bool doAntiAlias=false)
 
void clipShader (sk_sp< SkShader >, SkClipOp=SkClipOp::kIntersect)
 
void clipRegion (const SkRegion &deviceRgn, SkClipOp op=SkClipOp::kIntersect)
 
bool quickReject (const SkRect &rect) const
 
bool quickReject (const SkPath &path) const
 
SkRect getLocalClipBounds () const
 
bool getLocalClipBounds (SkRect *bounds) const
 
SkIRect getDeviceClipBounds () const
 
bool getDeviceClipBounds (SkIRect *bounds) const
 
void drawColor (SkColor color, SkBlendMode mode=SkBlendMode::kSrcOver)
 
void drawColor (const SkColor4f &color, SkBlendMode mode=SkBlendMode::kSrcOver)
 
void clear (SkColor color)
 
void clear (const SkColor4f &color)
 
void discard ()
 
void drawPaint (const SkPaint &paint)
 
void drawPoints (PointMode mode, size_t count, const SkPoint pts[], const SkPaint &paint)
 
void drawPoint (SkScalar x, SkScalar y, const SkPaint &paint)
 
void drawPoint (SkPoint p, const SkPaint &paint)
 
void drawLine (SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint &paint)
 
void drawLine (SkPoint p0, SkPoint p1, const SkPaint &paint)
 
void drawRect (const SkRect &rect, const SkPaint &paint)
 
void drawIRect (const SkIRect &rect, const SkPaint &paint)
 
void drawRegion (const SkRegion &region, const SkPaint &paint)
 
void drawOval (const SkRect &oval, const SkPaint &paint)
 
void drawRRect (const SkRRect &rrect, const SkPaint &paint)
 
void drawDRRect (const SkRRect &outer, const SkRRect &inner, const SkPaint &paint)
 
void drawCircle (SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint &paint)
 
void drawCircle (SkPoint center, SkScalar radius, const SkPaint &paint)
 
void drawArc (const SkRect &oval, SkScalar startAngle, SkScalar sweepAngle, bool useCenter, const SkPaint &paint)
 
void drawArc (const SkArc &arc, const SkPaint &paint)
 
void drawRoundRect (const SkRect &rect, SkScalar rx, SkScalar ry, const SkPaint &paint)
 
void drawPath (const SkPath &path, const SkPaint &paint)
 
void drawImage (const SkImage *image, SkScalar left, SkScalar top)
 
void drawImage (const sk_sp< SkImage > &image, SkScalar left, SkScalar top)
 
void drawImage (const SkImage *, SkScalar x, SkScalar y, const SkSamplingOptions &, const SkPaint *=nullptr)
 
void drawImage (const sk_sp< SkImage > &image, SkScalar x, SkScalar y, const SkSamplingOptions &sampling, const SkPaint *paint=nullptr)
 
void drawImageRect (const SkImage *, const SkRect &src, const SkRect &dst, const SkSamplingOptions &, const SkPaint *, SrcRectConstraint)
 
void drawImageRect (const SkImage *, const SkRect &dst, const SkSamplingOptions &, const SkPaint *=nullptr)
 
void drawImageRect (const sk_sp< SkImage > &image, const SkRect &src, const SkRect &dst, const SkSamplingOptions &sampling, const SkPaint *paint, SrcRectConstraint constraint)
 
void drawImageRect (const sk_sp< SkImage > &image, const SkRect &dst, const SkSamplingOptions &sampling, const SkPaint *paint=nullptr)
 
void drawImageNine (const SkImage *image, const SkIRect &center, const SkRect &dst, SkFilterMode filter, const SkPaint *paint=nullptr)
 
void drawImageLattice (const SkImage *image, const Lattice &lattice, const SkRect &dst, SkFilterMode filter, const SkPaint *paint=nullptr)
 
void drawImageLattice (const SkImage *image, const Lattice &lattice, const SkRect &dst)
 
void experimental_DrawEdgeAAQuad (const SkRect &rect, const SkPoint clip[4], QuadAAFlags aaFlags, const SkColor4f &color, SkBlendMode mode)
 
void experimental_DrawEdgeAAQuad (const SkRect &rect, const SkPoint clip[4], QuadAAFlags aaFlags, SkColor color, SkBlendMode mode)
 
void experimental_DrawEdgeAAImageSet (const ImageSetEntry imageSet[], int cnt, const SkPoint dstClips[], const SkMatrix preViewMatrices[], const SkSamplingOptions &, const SkPaint *paint=nullptr, SrcRectConstraint constraint=kStrict_SrcRectConstraint)
 
void drawSimpleText (const void *text, size_t byteLength, SkTextEncoding encoding, SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
 
void drawString (const char str[], SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
 
void drawString (const SkString &str, SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
 
void drawGlyphs (int count, const SkGlyphID glyphs[], const SkPoint positions[], const uint32_t clusters[], int textByteCount, const char utf8text[], SkPoint origin, const SkFont &font, const SkPaint &paint)
 
void drawGlyphs (int count, const SkGlyphID glyphs[], const SkPoint positions[], SkPoint origin, const SkFont &font, const SkPaint &paint)
 
void drawGlyphs (int count, const SkGlyphID glyphs[], const SkRSXform xforms[], SkPoint origin, const SkFont &font, const SkPaint &paint)
 
void drawTextBlob (const SkTextBlob *blob, SkScalar x, SkScalar y, const SkPaint &paint)
 
void drawTextBlob (const sk_sp< SkTextBlob > &blob, SkScalar x, SkScalar y, const SkPaint &paint)
 
void drawPicture (const SkPicture *picture)
 
void drawPicture (const sk_sp< SkPicture > &picture)
 
void drawPicture (const SkPicture *picture, const SkMatrix *matrix, const SkPaint *paint)
 
void drawPicture (const sk_sp< SkPicture > &picture, const SkMatrix *matrix, const SkPaint *paint)
 
void drawVertices (const SkVertices *vertices, SkBlendMode mode, const SkPaint &paint)
 
void drawVertices (const sk_sp< SkVertices > &vertices, SkBlendMode mode, const SkPaint &paint)
 
void drawMesh (const SkMesh &mesh, sk_sp< SkBlender > blender, const SkPaint &paint)
 
void drawPatch (const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkBlendMode mode, const SkPaint &paint)
 
void drawAtlas (const SkImage *atlas, const SkRSXform xform[], const SkRect tex[], const SkColor colors[], int count, SkBlendMode mode, const SkSamplingOptions &sampling, const SkRect *cullRect, const SkPaint *paint)
 
void drawDrawable (SkDrawable *drawable, const SkMatrix *matrix=nullptr)
 
void drawDrawable (SkDrawable *drawable, SkScalar x, SkScalar y)
 
void drawAnnotation (const SkRect &rect, const char key[], SkData *value)
 
void drawAnnotation (const SkRect &rect, const char key[], const sk_sp< SkData > &value)
 
virtual bool isClipEmpty () const
 
virtual bool isClipRect () const
 
SkM44 getLocalToDevice () const
 
SkMatrix getLocalToDeviceAs3x3 () const
 
SkMatrix getTotalMatrix () const
 
void temporary_internal_getRgnClip (SkRegion *region)
 
void private_draw_shadow_rec (const SkPath &, const SkDrawShadowRec &)
 

Additional Inherited Members

- Public Types inherited from SkCanvas
enum  SaveLayerFlagsSet { kPreserveLCDText_SaveLayerFlag = 1 << 1 , kInitWithPrevious_SaveLayerFlag = 1 << 2 , kF16ColorType = 1 << 4 }
 
enum  PointMode { kPoints_PointMode , kLines_PointMode , kPolygon_PointMode }
 
enum  SrcRectConstraint { kStrict_SrcRectConstraint , kFast_SrcRectConstraint }
 
enum  QuadAAFlags : unsigned {
  kLeft_QuadAAFlag = 0b0001 , kTop_QuadAAFlag = 0b0010 , kRight_QuadAAFlag = 0b0100 , kBottom_QuadAAFlag = 0b1000 ,
  kNone_QuadAAFlags = 0b0000 , kAll_QuadAAFlags = 0b1111
}
 
using SaveLayerFlags = uint32_t
 
using FilterSpan = SkSpan< sk_sp< SkImageFilter > >
 
- Static Public Member Functions inherited from SkCanvas
static std::unique_ptr< SkCanvasMakeRasterDirect (const SkImageInfo &info, void *pixels, size_t rowBytes, const SkSurfaceProps *props=nullptr)
 
static std::unique_ptr< SkCanvasMakeRasterDirectN32 (int width, int height, SkPMColor *pixels, size_t rowBytes)
 
- Static Public Attributes inherited from SkCanvas
static constexpr int kMaxFiltersPerLayer = 16
 
- Protected Types inherited from SkCanvas
enum  SaveLayerStrategy { kFullLayer_SaveLayerStrategy , kNoLayer_SaveLayerStrategy }
 
enum  ClipEdgeStyle { kHard_ClipEdgeStyle , kSoft_ClipEdgeStyle }
 
- Protected Member Functions inherited from SkNWayCanvas
void willSave () override
 
SaveLayerStrategy getSaveLayerStrategy (const SaveLayerRec &) override
 
bool onDoSaveBehind (const SkRect *) override
 
void willRestore () override
 
void didConcat44 (const SkM44 &) override
 
void didSetM44 (const SkM44 &) override
 
void didScale (SkScalar, SkScalar) override
 
void didTranslate (SkScalar, SkScalar) override
 
void onDrawSlug (const sktext::gpu::Slug *slug, const SkPaint &paint) override
 
void onClipRect (const SkRect &, SkClipOp, ClipEdgeStyle) override
 
void onClipRRect (const SkRRect &, SkClipOp, ClipEdgeStyle) override
 
void onClipPath (const SkPath &, SkClipOp, ClipEdgeStyle) override
 
void onClipShader (sk_sp< SkShader >, SkClipOp) override
 
void onClipRegion (const SkRegion &, SkClipOp) override
 
void onResetClip () override
 
- Protected Member Functions inherited from SkCanvas
virtual sk_sp< SkSurfaceonNewSurface (const SkImageInfo &info, const SkSurfaceProps &props)
 
virtual bool onPeekPixels (SkPixmap *pixmap)
 
virtual bool onAccessTopLayerPixels (SkPixmap *pixmap)
 
virtual SkImageInfo onImageInfo () const
 
virtual bool onGetProps (SkSurfaceProps *props, bool top) const
 
virtual void didRestore ()
 
virtual void onDrawMesh (const SkMesh &, sk_sp< SkBlender >, const SkPaint &)
 
virtual void onDiscard ()
 
virtual sk_sp< sktext::gpu::SlugonConvertGlyphRunListToSlug (const sktext::GlyphRunList &glyphRunList, const SkPaint &paint)
 
 SkCanvas (const SkIRect &bounds)
 
- Protected Attributes inherited from SkNWayCanvas
SkTDArray< SkCanvas * > fList
 

Detailed Description

Captures all drawing commands. Rather than draw the actual content, this device increments the alpha channel of each pixel every time it would have been touched by a draw call. This is useful for detecting overdraw.

Definition at line 44 of file SkOverdrawCanvas.h.

Constructor & Destructor Documentation

◆ SkOverdrawCanvas()

SkOverdrawCanvas::SkOverdrawCanvas ( SkCanvas canvas)

Definition at line 41 of file SkOverdrawCanvas.cpp.

42 : INHERITED(canvas->onImageInfo().width(), canvas->onImageInfo().height())
43{
44 // Non-drawing calls that SkOverdrawCanvas does not override (translate, save, etc.)
45 // will pass through to the input canvas.
46 this->addCanvas(canvas);
47
48 static constexpr float kIncrementAlpha[] = {
49 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
50 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
51 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
52 0.0f, 0.0f, 0.0f, 0.0f, 1.0f/255,
53 };
54
55 fPaint.setAntiAlias(false);
57 fPaint.setColorFilter(SkColorFilters::Matrix(kIncrementAlpha));
58}
@ kPlus
r = min(s + d, 1)
virtual SkImageInfo onImageInfo() const
static sk_sp< SkColorFilter > Matrix(const SkColorMatrix &)
virtual void addCanvas(SkCanvas *)
void setAntiAlias(bool aa)
Definition SkPaint.h:170
void setBlendMode(SkBlendMode mode)
Definition SkPaint.cpp:151
void setColorFilter(sk_sp< SkColorFilter > colorFilter)
int width() const
int height() const

Member Function Documentation

◆ onDrawAnnotation()

void SkOverdrawCanvas::onDrawAnnotation ( const SkRect ,
const char  key[],
SkData value 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 224 of file SkOverdrawCanvas.cpp.

224{}

◆ onDrawArc()

void SkOverdrawCanvas::onDrawArc ( const SkRect arc,
SkScalar  startAngle,
SkScalar  sweepAngle,
bool  useCenter,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 143 of file SkOverdrawCanvas.cpp.

144 {
145 fList[0]->onDrawArc(arc, startAngle, sweepAngle, useCenter, this->overdrawPaint(paint));
146}
SkTDArray< SkCanvas * > fList
const Paint & paint

◆ onDrawAtlas2()

void SkOverdrawCanvas::onDrawAtlas2 ( const SkImage image,
const SkRSXform  xform[],
const SkRect  texs[],
const SkColor  colors[],
int  count,
SkBlendMode  mode,
const SkSamplingOptions sampling,
const SkRect cull,
const SkPaint paint 
)
overridevirtual

Reimplemented from SkNWayCanvas.

Definition at line 167 of file SkOverdrawCanvas.cpp.

170 {
171 SkPaint* paintPtr = &fPaint;
172 SkPaint storage;
173 if (paint) {
174 storage = this->overdrawPaint(*paint);
175 paintPtr = &storage;
176 }
177
178 fList[0]->onDrawAtlas2(image, xform, texs, colors, count, mode, sampling, cull, paintPtr);
179}
int count
sk_sp< SkImage > image
Definition examples.cpp:29

◆ onDrawBehind()

void SkOverdrawCanvas::onDrawBehind ( const SkPaint paint)
overridevirtual

Reimplemented from SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 127 of file SkOverdrawCanvas.cpp.

127 {
128 fList[0]->onDrawBehind(this->overdrawPaint(paint));
129}

◆ onDrawDrawable()

void SkOverdrawCanvas::onDrawDrawable ( SkDrawable drawable,
const SkMatrix matrix 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 216 of file SkOverdrawCanvas.cpp.

216 {
217 drawable->draw(this, matrix);
218}
void draw(SkCanvas *, const SkMatrix *=nullptr)

◆ onDrawDRRect()

void SkOverdrawCanvas::onDrawDRRect ( const SkRRect outer,
const SkRRect inner,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 148 of file SkOverdrawCanvas.cpp.

149 {
150 fList[0]->onDrawDRRect(outer, inner, this->overdrawPaint(paint));
151}

◆ onDrawEdgeAAImageSet2()

void SkOverdrawCanvas::onDrawEdgeAAImageSet2 ( const ImageSetEntry  set[],
int  count,
const SkPoint  dstClips[],
const SkMatrix  preViewMatrices[],
const SkSamplingOptions sampling,
const SkPaint paint,
SrcRectConstraint  constraint 
)
overridevirtual

Reimplemented from SkNWayCanvas.

Definition at line 241 of file SkOverdrawCanvas.cpp.

246 {
247 int clipIndex = 0;
248 for (int i = 0; i < count; ++i) {
249 if (set[i].fMatrixIndex >= 0) {
250 fList[0]->save();
251 fList[0]->concat(preViewMatrices[set[i].fMatrixIndex]);
252 }
253 if (set[i].fHasClip) {
254 fList[0]->onDrawPath(SkPath::Polygon(dstClips + clipIndex, 4, true), fPaint);
255 clipIndex += 4;
256 } else {
257 fList[0]->onDrawRect(set[i].fDstRect, fPaint);
258 }
259 if (set[i].fMatrixIndex >= 0) {
260 fList[0]->restore();
261 }
262 }
263}
static SkPath Polygon(const SkPoint pts[], int count, bool isClosed, SkPathFillType=SkPathFillType::kWinding, bool isVolatile=false)
Definition SkPath.cpp:3546

◆ onDrawEdgeAAQuad()

void SkOverdrawCanvas::onDrawEdgeAAQuad ( const SkRect rect,
const SkPoint  clip[4],
SkCanvas::QuadAAFlags  aa,
const SkColor4f color,
SkBlendMode  mode 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 232 of file SkOverdrawCanvas.cpp.

233 {
234 if (clip) {
235 fList[0]->onDrawPath(SkPath::Polygon(clip, 4, true), fPaint);
236 } else {
237 fList[0]->onDrawRect(rect, fPaint);
238 }
239}
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
Definition SkPath.cpp:3824

◆ onDrawGlyphRunList()

void SkOverdrawCanvas::onDrawGlyphRunList ( const sktext::GlyphRunList glyphRunList,
const SkPaint paint 
)
overridevirtual

Reimplemented from SkNWayCanvas.

Definition at line 104 of file SkOverdrawCanvas.cpp.

105 {
106 SkSurfaceProps props;
107 this->getProps(&props);
108 TextDevice device{this, props};
109
110 device.drawGlyphRunList(this, glyphRunList, paint);
111}
bool getProps(SkSurfaceProps *props) const
VkDevice device
Definition main.cc:53

◆ onDrawImage2()

void SkOverdrawCanvas::onDrawImage2 ( const SkImage image,
SkScalar  x,
SkScalar  y,
const SkSamplingOptions ,
const SkPaint  
)
overridevirtual

Reimplemented from SkNWayCanvas.

Definition at line 185 of file SkOverdrawCanvas.cpp.

186 {
187 fList[0]->onDrawRect(SkRect::MakeXYWH(x, y, image->width(), image->height()), fPaint);
188}
int width() const
Definition SkImage.h:285
int height() const
Definition SkImage.h:291
double y
double x
static constexpr SkRect MakeXYWH(float x, float y, float w, float h)
Definition SkRect.h:659

◆ onDrawImageLattice2()

void SkOverdrawCanvas::onDrawImageLattice2 ( const SkImage image,
const Lattice lattice,
const SkRect dst,
SkFilterMode  ,
const SkPaint  
)
overridevirtual

Reimplemented from SkNWayCanvas.

Definition at line 195 of file SkOverdrawCanvas.cpp.

196 {
198 Lattice latticePlusBounds = lattice;
199 if (!latticePlusBounds.fBounds) {
201 latticePlusBounds.fBounds = &bounds;
202 }
203
204 if (SkLatticeIter::Valid(image->width(), image->height(), latticePlusBounds)) {
205 SkLatticeIter iter(latticePlusBounds, dst);
206
207 SkRect ignored, iterDst;
208 while (iter.next(&ignored, &iterDst)) {
209 fList[0]->onDrawRect(iterDst, fPaint);
210 }
211 } else {
212 fList[0]->onDrawRect(dst, fPaint);
213 }
214}
static bool Valid(int imageWidth, int imageHeight, const SkCanvas::Lattice &lattice)
Optional< SkRect > bounds
Definition SkRecords.h:189
static constexpr SkIRect MakeWH(int32_t w, int32_t h)
Definition SkRect.h:56

◆ onDrawImageRect2()

void SkOverdrawCanvas::onDrawImageRect2 ( const SkImage image,
const SkRect src,
const SkRect dst,
const SkSamplingOptions ,
const SkPaint ,
SrcRectConstraint   
)
overridevirtual

Reimplemented from SkNWayCanvas.

Definition at line 190 of file SkOverdrawCanvas.cpp.

191 {
192 fList[0]->onDrawRect(dst, fPaint);
193}

◆ onDrawOval()

void SkOverdrawCanvas::onDrawOval ( const SkRect oval,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 139 of file SkOverdrawCanvas.cpp.

139 {
140 fList[0]->onDrawOval(oval, this->overdrawPaint(paint));
141}

◆ onDrawPaint()

void SkOverdrawCanvas::onDrawPaint ( const SkPaint paint)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 119 of file SkOverdrawCanvas.cpp.

119 {
120 if (0 == paint.getColor() && !paint.getColorFilter() && !paint.getShader()) {
121 // This is a clear, ignore it.
122 } else {
123 fList[0]->onDrawPaint(this->overdrawPaint(paint));
124 }
125}

◆ onDrawPatch()

void SkOverdrawCanvas::onDrawPatch ( const SkPoint  cubics[12],
const SkColor  colors[4],
const SkPoint  texCoords[4],
SkBlendMode  blendMode,
const SkPaint  
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 113 of file SkOverdrawCanvas.cpp.

115 {
116 fList[0]->onDrawPatch(cubics, colors, texCoords, blendMode, fPaint);
117}

◆ onDrawPath()

void SkOverdrawCanvas::onDrawPath ( const SkPath path,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 181 of file SkOverdrawCanvas.cpp.

181 {
182 fList[0]->onDrawPath(path, fPaint);
183}

◆ onDrawPicture()

void SkOverdrawCanvas::onDrawPicture ( const SkPicture ,
const SkMatrix ,
const SkPaint  
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 220 of file SkOverdrawCanvas.cpp.

220 {
221 SkASSERT(false);
222}
#define SkASSERT(cond)
Definition SkAssert.h:116

◆ onDrawPoints()

void SkOverdrawCanvas::onDrawPoints ( PointMode  mode,
size_t  count,
const SkPoint  points[],
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 157 of file SkOverdrawCanvas.cpp.

158 {
159 fList[0]->onDrawPoints(mode, count, points, this->overdrawPaint(paint));
160}
static const int points[]

◆ onDrawRect()

void SkOverdrawCanvas::onDrawRect ( const SkRect rect,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 131 of file SkOverdrawCanvas.cpp.

131 {
132 fList[0]->onDrawRect(rect, this->overdrawPaint(paint));
133}

◆ onDrawRegion()

void SkOverdrawCanvas::onDrawRegion ( const SkRegion region,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 135 of file SkOverdrawCanvas.cpp.

135 {
136 fList[0]->onDrawRegion(region, this->overdrawPaint(paint));
137}

◆ onDrawRRect()

void SkOverdrawCanvas::onDrawRRect ( const SkRRect rect,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 153 of file SkOverdrawCanvas.cpp.

153 {
154 fList[0]->onDrawRRect(rect, this->overdrawPaint(paint));
155}

◆ onDrawShadowRec()

void SkOverdrawCanvas::onDrawShadowRec ( const SkPath path,
const SkDrawShadowRec rec 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 226 of file SkOverdrawCanvas.cpp.

226 {
228 SkDrawShadowMetrics::GetLocalBounds(path, rec, this->getTotalMatrix(), &bounds);
229 fList[0]->onDrawRect(bounds, fPaint);
230}
SkMatrix getTotalMatrix() const
void GetLocalBounds(const SkPath &path, const SkDrawShadowRec &rec, const SkMatrix &ctm, SkRect *bounds)

◆ onDrawTextBlob()

void SkOverdrawCanvas::onDrawTextBlob ( const SkTextBlob blob,
SkScalar  x,
SkScalar  y,
const SkPaint paint 
)
overridevirtual

Implements SkCanvasVirtualEnforcer< SkNWayCanvas >.

Definition at line 97 of file SkOverdrawCanvas.cpp.

98 {
100 auto glyphRunList = b.blobToGlyphRunList(*blob, {x, y});
101 this->onDrawGlyphRunList(glyphRunList, paint);
102}
void onDrawGlyphRunList(const sktext::GlyphRunList &glyphRunList, const SkPaint &paint) override
const GlyphRunList & blobToGlyphRunList(const SkTextBlob &blob, SkPoint origin)
Definition GlyphRun.cpp:233
static bool b

◆ onDrawVerticesObject()

void SkOverdrawCanvas::onDrawVerticesObject ( const SkVertices vertices,
SkBlendMode  blendMode,
const SkPaint paint 
)
overridevirtual

Reimplemented from SkNWayCanvas.

Definition at line 162 of file SkOverdrawCanvas.cpp.

163 {
164 fList[0]->onDrawVerticesObject(vertices, blendMode, this->overdrawPaint(paint));
165}

The documentation for this class was generated from the following files: