1--- 2title: 'API Reference and Overview' 3linkTitle: 'API Reference and Overview' 4 5weight: 5 6--- 7 8Skia documentation is actively under development. 9 10Some key classes are: 11 12- [SkAutoCanvasRestore](https://api.skia.org/classSkAutoCanvasRestore.html#details) - 13 Canvas save stack manager 14- [SkBitmap](https://api.skia.org/classSkBitmap.html#details) - two-dimensional 15 raster pixel array 16- [SkBlendMode](https://api.skia.org/SkBlendMode_8h.html) - pixel color 17 arithmetic 18- [SkCanvas](https://api.skia.org/classSkCanvas.html#details) - drawing context 19- [SkColor](https://api.skia.org/SkColor_8h.html) - color encoding using integer 20 numbers 21- [SkFont](https://api.skia.org/classSkFont.html#details) - text style and 22 typeface 23- [SkImage](https://api.skia.org/classSkImage.html#details) - two dimensional 24 array of pixels to draw 25- [SkImageInfo](https://api.skia.org/structSkImageInfo.html#details) - pixel 26 dimensions and characteristics 27- [SkIPoint](https://api.skia.org/structSkIPoint.html#details) - two integer 28 coordinates 29- [SkIRect](https://api.skia.org/structSkIRect.html#details) - integer rectangle 30- [SkMatrix](https://api.skia.org/classSkMatrix.html#details) - 3x3 31 transformation matrix 32- [SkPaint](https://api.skia.org/classSkPaint.html#details) - color, stroke, 33 font, effects 34- [SkPath](https://api.skia.org/classSkPath.html#details) - sequence of 35 connected lines and curves 36- [SkPicture](https://api.skia.org/classSkPicture.html#details) - sequence of 37 drawing commands 38- [SkPixmap](https://api.skia.org/classSkPixmap.html#details) - pixel map: image 39 info and pixel address 40- [SkPoint](https://api.skia.org/structSkPoint.html#details) - two floating 41 point coordinates 42- [SkRRect](https://api.skia.org/classSkRRect.html#details) - floating point 43 rounded rectangle 44- [SkRect](https://api.skia.org/structSkRect.html#details) - floating point 45 rectangle 46- [SkRegion](https://api.skia.org/classSkRegion.html#details) - compressed 47 clipping mask 48- [SkSurface](https://api.skia.org/classSkSurface.html#details) - drawing 49 destination 50- [SkTextBlob](https://api.skia.org/classSkTextBlob.html#details) - runs of 51 glyphs 52- [SkTextBlobBuilder](https://api.skia.org/classSkTextBlobBuilder.html#details) - 53 constructor for runs of glyphs 54 55All public APIs are indexed by Doxygen. 56 57- [Skia Doxygen](https://api.skia.org) 58 59## Overview 60 61Skia is organized around the `SkCanvas` object. It is the host for the "draw" 62calls: `drawRect`, `drawPath`, `drawText`, etc. Each of these has two 63components: the primitive being drawn (`SkRect`, `SkPath`, etc.) and color/style 64attributes (`SkPaint`). 65 66<!--?prettify lang=cc?--> 67 68 canvas->drawRect(rect, paint); 69 70The paint holds much of the state describing how the rectangle (in this case) is 71drawn: what color it is, if it is filled or stroked, how it should blend with 72what was previously drawn. 73 74The canvas holds relatively little state. It points to the actual pixels being 75drawn, and it maintains a stack of matrices and clips. Thus in the above call, 76the canvas' current matrix may transform the coordinates of the rectangle 77(translation, rotation, skewing, perspective), and the canvas' current clip may 78restrict where on the canvas the rectangle will be drawn, but all other 79stylistic attributes of the drawing are controlled by the paint. 80 81Using the SkCanvas API: 82 831. [SkCanvas Overview](/docs/user/api/skcanvas_overview) - the drawing context 842. [SkPaint Overview](/docs/user/api/skpaint_overview) - color, stroke, font, 85 effects 863. [SkCanvas Creation](/docs/user/api/skcanvas_creation) 87