1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
ling with affine matrices and 2D transformations. If you're writing a
graphic library with 3D transformations, though, you are going to hit
the jackpot: 4x4 matrices, projections, transformations, vectors, and
quaternions.
Most of this stuff exists, in various forms, in other libraries, but it
has the major drawback of coming along with the rest of those libraries,
which may or may not be what you want. Those libraries are also
available in various languages, as long as those languages are C++;
again, it may or may not be something you want.
For this reason, I decided to write the thinnest, smallest possible
layer needed to write a canvas library; given its relative size, and the
propensity for graphics libraries to have a pun in their name, I decided
to call it Graphene.
This library provides types and their relative API; it does not deal
with windowing system surfaces, drawing, scene graphs, or input. You're
supposed to do that yourself, in your own canvas implementation, which
is the whole point of writing the library in the first place.
|