Change-Id: I1b89db473582f9fcc4d87436a590ee36e869fe45 No-Try: true Docs-Preview: https://skia.org/docs/user/build?cl=392717 Docs-Preview: https://skia.org/docs/dev/contrib/?cl=392717 Docs-Preview: https://skia.org/docs/dev/gardening/?cl=392717 Docs-Preview: https://skia.org/docs/user/tips?cl=392717 Docs-Preview: https://skia.org/docs/dev/tools/debugger?cl=392717 Docs-Preview: https://skia.org/docs/user/modules/pathkit?cl=392717 Docs-Preview: https://skia.org/docs/dev/testing/fuzz?cl=392717 Docs-Preview: https://skia.org/docs/dev/testing/ios?cl=392717 Docs-Preview: https://skia.org/docs/roles?cl=392717 Docs-Preview: https://skia.org/docs/user/api/?cl=392717 Docs-Preview: https://skia.org/docs/dev/testing/swarmingbots?cl=392717 Docs-Preview: https://skia.org/docs/dev/chrome/changes?cl=392717 Docs-Preview: https://skia.org/docs/user/download?cl=392717 Docs-Preview: https://skia.org/docs/dev/flutter/?cl=392717 Docs-Preview: https://skia.org/docs/user/modules/quickstart?cl=392717 Docs-Preview: https://skia.org/docs/user/api/skcanvas_creation?cl=392717 Docs-Preview: https://skia.org/docs/user/sample/viewer?cl=392717 Docs-Preview: https://skia.org/docs/dev/design/pdftheory?cl=392717 Docs-Preview: https://skia.org/docs/user/api/SkBlendMode_Overview?cl=392717 Docs-Preview: https://skia.org/docs/user/api/skcanvas_overview?cl=392717 Docs-Preview: https://skia.org/docs/?cl=392717 Docs-Preview: https://skia.org/docs/dev/contrib/submit?cl=392717 Docs-Preview: https://skia.org/docs/user/api/SkPath_Overview?cl=392717 Docs-Preview: https://skia.org/docs/user/modules/skottie?cl=392717 Docs-Preview: https://skia.org/docs/user/modules/canvaskit?cl=392717 Fixed: skia:404 Docs-Preview: https://skia.org/docs/dev/tools/calendar?cl=392717 Docs-Preview: https://skia.org/docs/dev/gardening/android?cl=392717 Docs-Preview: https://skia.org/docs/dev/contrib/style?cl=392717 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392717 Reviewed-by: Heather Miller <hcm@google.com> Commit-Queue: Joe Gregorio <jcgregorio@google.com>
3.5 KiB
title | linkTitle | weight |
---|---|---|
API Reference and Overview | API Reference and Overview | 5 |
Skia documentation is actively under development.
Some key classes are:
- SkAutoCanvasRestore - Canvas save stack manager
- SkBitmap - two-dimensional raster pixel array
- SkBlendMode - pixel color arithmetic
- SkCanvas - drawing context
- SkColor - color encoding using integer numbers
- SkFont - text style and typeface
- SkImage - two dimensional array of pixels to draw
- SkImageInfo - pixel dimensions and characteristics
- SkIPoint - two integer coordinates
- SkIRect - integer rectangle
- SkMatrix - 3x3 transformation matrix
- SkPaint - color, stroke, font, effects
- SkPath - sequence of connected lines and curves
- SkPicture - sequence of drawing commands
- SkPixmap - pixel map: image info and pixel address
- SkPoint - two floating point coordinates
- SkRRect - floating point rounded rectangle
- SkRect - floating point rectangle
- SkRegion - compressed clipping mask
- SkSurface - drawing destination
- SkTextBlob - runs of glyphs
- SkTextBlobBuilder - constructor for runs of glyphs
All public APIs are indexed by Doxygen.
Overview
Skia is organized around the SkCanvas
object. It is the host for the "draw"
calls: drawRect
, drawPath
, drawText
, etc. Each of these has two
components: the primitive being drawn (SkRect
, SkPath
, etc.) and color/style
attributes (SkPaint
).
canvas->drawRect(rect, paint);
The paint holds much of the state describing how the rectangle (in this case) is drawn: what color it is, if it is filled or stroked, how it should blend with what was previously drawn.
The canvas holds relatively little state. It points to the actual pixels being drawn, and it maintains a stack of matrices and clips. Thus in the above call, the canvas' current matrix may transform the coordinates of the rectangle (translation, rotation, skewing, perspective), and the canvas' current clip may restrict where on the canvas the rectangle will be drawn, but all other stylistic attributes of the drawing are controlled by the paint.
Using the SkCanvas API:
- SkCanvas Overview - the drawing context
- SkPaint Overview - color, stroke, font, effects
- SkCanvas Creation