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