aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2020-04-28 19:16:41 +0200
committerMattias Andrée <maandree@kth.se>2020-04-28 19:16:41 +0200
commit342d4d5c1664883fc93fbff84db37457bbefb76d (patch)
tree7e91988ba9df059333d256cbe91303fe06c3ef17
parentFix drawing issues (there is still some left) (diff)
downloadlibskrift-342d4d5c1664883fc93fbff84db37457bbefb76d.tar.gz
libskrift-342d4d5c1664883fc93fbff84db37457bbefb76d.tar.bz2
libskrift-342d4d5c1664883fc93fbff84db37457bbefb76d.tar.xz
Add README
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--README75
1 files changed, 75 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..7c5591e
--- /dev/null
+++ b/README
@@ -0,0 +1,75 @@
+libskrift is a text drawing library for C that is based on libschrift.
+
+The name:
+
+ Schrift in libschift is German for “font” (can also mean “scripture”),
+ skrift in libskrift is Swedish for “scripture” (cannot mean “font”).
+
+
+Currently implemented:
+
+ Anti-aliased rendering.
+
+ Subpixel rendering (RGB, BGR, both horizontal and vertical).
+
+ DPI support. (Points, inches, and millimeters can be
+ exactly converted pixels.)
+ (Both horizonal and vertical resolution can be specified.)
+
+ Drawing coloured text with 3 primaries, alpha and opacity,
+ (100 % opacity but 0 % alpha will, when drawing on an opaque
+ surface cut out the text so it is transparent instead of
+ opaque where the text is.)
+
+ Drawing on RGB, XRGB, ARGB, and RGBA with 8-bit, 16-bit,
+ 32-bit, and 64-bit subpixels, RGB, ARGB, and RGBA with
+ `float`, `double`, and `long double`, with either
+ premultipled or non-premultipied alpha.
+ (The "RGB" in all these formats can be any primitive, but
+ the screen's is assumed for subpixel rendering, pre- and
+ postprocessors can be used to change colour space if
+ required.)
+
+ Drawing on surfaces encoded with different endians: host
+ endian, big endian, or little endian, either on pixel level
+ or subpixel level.
+
+ sRGB gamma function.
+
+
+Pending support in libschift:
+
+ Aliased rendering.
+
+ Hinting.
+ (Better subpixel rendering requires subpixel aware hinting.)
+
+ Affine transformations on glyphs, texts, part of outline.
+
+ Kerning using font information.
+
+ Proper grapheme cluster support.
+
+
+Not implemented yet
+
+ Glyph caching.
+
+ Normalise text when glyphs ar missing.
+
+ Fallback fonts.
+
+ Font metrics.
+
+ Autokerning.
+
+ Vertical text.
+
+ Inter-character spacing.
+
+
+Out of scope:
+
+ Bidirection text.
+
+ Text justification.