summaryrefslogtreecommitdiffstats
path: root/graphics/graphene/README
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/graphene/README')
-rw-r--r--graphics/graphene/README22
1 files changed, 22 insertions, 0 deletions
diff --git a/graphics/graphene/README b/graphics/graphene/README
new file mode 100644
index 0000000000..08152a6c50
--- /dev/null
+++ b/graphics/graphene/README
@@ -0,0 +1,22 @@
+When creating graphic libraries you most likely end up dealing with
+points and rectangles. If you're particularly unlucky, you may end
+up dealing 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.