1API Reference and Overview 2========================== 3 4Skia documentation is actively under development. 5 6Full references with examples are available for: 7 8* [SkAutoCanvasRestore](/user/api/SkAutoCanvasRestore_Reference) - Canvas save stack manager 9* [SkBitmap](/user/api/SkBitmap_Reference) - two-dimensional raster pixel array 10* [SkBlendMode](/user/api/SkBlendMode_Reference) - pixel color arithmetic 11* [SkCanvas](/user/api/SkCanvas_Reference) - drawing context 12* [SkColor](/user/api/SkColor_Reference) - color encoding using integer numbers 13* [SkColor4f](/user/api/SkColor4f_Reference) - color encoding using floating point numbers 14* [SkFont](/user/api/SkFont_Reference) - text style and typeface 15* [SkImage](/user/api/SkImage_Reference) - two dimensional array of pixels to draw 16* [SkImageInfo](/user/api/SkImageInfo_Reference) - pixel dimensions and characteristics 17* [SkIPoint](/user/api/SkIPoint_Reference) - two integer coordinates 18* [SkIRect](/user/api/SkIRect_Reference) - integer rectangle 19* [SkMatrix](/user/api/SkMatrix_Reference) - 3x3 transformation matrix 20* [SkPaint](/user/api/SkPaint_Reference) - color, stroke, font, effects 21* [SkPath](/user/api/SkPath_Reference) - sequence of connected lines and curves 22* [SkPicture](/user/api/SkPicture_Reference) - sequence of drawing commands 23* [SkPixmap](/user/api/SkPixmap_Reference) - pixel map: image info and pixel address 24* [SkPoint](/user/api/SkPoint_Reference) - two floating point coordinates 25* [SkRRect](/user/api/SkRRect_Reference) - floating point rounded rectangle 26* [SkRect](/user/api/SkRect_Reference) - floating point rectangle 27* [SkRegion](/user/api/SkRegion_Reference) - compressed clipping mask 28* [SkSurface](/user/api/SkSurface_Reference) - drawing destination 29* [SkTextBlob](/user/api/SkTextBlob_Reference) - runs of glyphs 30* [SkTextBlobBuilder](/user/api/SkTextBlobBuilder_Reference) - constructor for runs of glyphs 31 32Check out [a graphical overview of examples](api/catalog.htm) 33 34All public APIs are indexed by Doxygen. 35 36* [Skia Doxygen](https://api.skia.org) 37 38## Overview 39 40Skia is organized around the `SkCanvas` object. It is the host for the 41"draw" calls: `drawRect`, `drawPath`, `drawText`, etc. Each of these 42has two components: the primitive being drawn (`SkRect`, `SkPath`, etc.) 43and color/style attributes (`SkPaint`). 44 45<!--?prettify lang=cc?--> 46 47 canvas->drawRect(rect, paint); 48 49The paint holds much of the state describing how the rectangle (in 50this case) is drawn: what color it is, if it is filled or stroked, how 51it should blend with what was previously drawn. 52 53The canvas holds relatively little state. It points to the actual 54pixels being drawn, and it maintains a stack of matrices and 55clips. Thus in the above call, the canvas' current matrix may 56transform the coordinates of the rectangle (translation, rotation, 57skewing, perspective), and the canvas' current clip may restrict where 58on the canvas the rectangle will be drawn, but all other stylistic 59attributes of the drawing are controlled by the paint. 60 61Using the SkCanvas API: 62 631. [SkCanvas Overview](/user/api/skcanvas_overview) - the drawing context 642. [SkPaint Overview](/user/api/skpaint_overview) - color, stroke, font, effects 653. [SkCanvas Creation](/user/api/skcanvas_creation) 66 67