2017-11-01 14:21:45 +00:00
|
|
|
API Reference and Overview
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Skia documentation is actively under development.
|
|
|
|
|
|
|
|
Full references with examples are available for:
|
|
|
|
|
2018-02-20 14:59:29 +00:00
|
|
|
* [SkAutoCanvasRestore](/user/api/SkAutoCanvasRestore_Reference) - Canvas save stack manager
|
|
|
|
* [SkBitmap](/user/api/SkBitmap_Reference) - two-dimensional raster pixel array
|
2018-07-11 20:18:41 +00:00
|
|
|
* [SkBlendMode](/user/api/SkBlendMode_Reference) - pixel color arithmetic
|
2018-02-20 14:59:29 +00:00
|
|
|
* [SkCanvas](/user/api/SkCanvas_Reference) - drawing context
|
2018-07-11 20:18:41 +00:00
|
|
|
* [SkColor](/user/api/SkColor_Reference) - color encoding using integer numbers
|
|
|
|
* [SkColor4f](/user/api/SkColor4f_Reference) - color encoding using floating point numbers
|
2018-02-20 14:59:29 +00:00
|
|
|
* [SkImage](/user/api/SkImage_Reference) - two dimensional array of pixels to draw
|
|
|
|
* [SkImageInfo](/user/api/SkImageInfo_Reference) - pixel dimensions and characteristics
|
|
|
|
* [SkIPoint](/user/api/SkIPoint_Reference) - two integer coordinates
|
|
|
|
* [SkIPoint16](/user/api/SkIPoint16_Reference) - two 16-bit integer coordinates
|
|
|
|
* [SkIRect](/user/api/SkIRect_Reference) - integer rectangle
|
|
|
|
* [SkMatrix](/user/api/SkMatrix_Reference) - 3x3 transformation matrix
|
|
|
|
* [SkPaint](/user/api/SkPaint_Reference) - color, stroke, font, effects
|
|
|
|
* [SkPath](/user/api/SkPath_Reference) - sequence of connected lines and curves
|
2018-07-11 20:18:41 +00:00
|
|
|
* [SkPicture](/user/api/SkPicture_Reference) - sequence of drawing commands
|
2018-02-20 14:59:29 +00:00
|
|
|
* [SkPixmap](/user/api/SkPixmap_Reference) - pixel map: image info and pixel address
|
|
|
|
* [SkPoint](/user/api/SkPoint_Reference) - two floating point coordinates
|
2018-07-11 20:18:41 +00:00
|
|
|
* [SkRRect](/user/api/SkRRect_Reference) - floating point rounded rectangle
|
2018-02-20 14:59:29 +00:00
|
|
|
* [SkRect](/user/api/SkRect_Reference) - floating point rectangle
|
2018-08-17 18:09:28 +00:00
|
|
|
* [SkRegion](/user/api/SkRegion_Reference) - compressed clipping mask
|
2018-02-20 14:59:29 +00:00
|
|
|
* [SkSurface](/user/api/SkSurface_Reference) - drawing destination
|
2018-08-17 18:09:28 +00:00
|
|
|
* [SkTextBlob](/user/api/SkTextBlob_Reference) - runs of glyphs
|
|
|
|
* [SkTextBlobBuilder](/user/api/SkTextBlobBuilder_Reference) - constructor for runs of glyphs
|
2017-11-01 14:21:45 +00:00
|
|
|
|
|
|
|
Check out [a graphical overview of examples](api/catalog.htm)
|
|
|
|
|
|
|
|
All public APIs are indexed by Doxygen. The Doxyen index is current, but the
|
2018-02-20 14:59:29 +00:00
|
|
|
content is dated and incomplete. Doxygen content will be superseded by
|
2017-11-01 14:21:45 +00:00
|
|
|
full references with examples.
|
|
|
|
|
|
|
|
* [Skia Doxygen](http://skia-doc.commondatastorage.googleapis.com/doxygen/doxygen/html/index.html)
|
|
|
|
|
|
|
|
## Overview
|
2015-05-19 17:21:29 +00:00
|
|
|
|
|
|
|
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`).
|
|
|
|
|
|
|
|
<!--?prettify lang=cc?-->
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
2018-02-20 14:59:29 +00:00
|
|
|
1. [SkCanvas Overview](/user/api/skcanvas_overview) - the drawing context
|
|
|
|
2. [SkPaint Overview](/user/api/skpaint_overview) - color, stroke, font, effects
|
|
|
|
3. [SkCanvas Creation](/user/api/skcanvas_creation)
|
|
|
|
|