summaryrefslogtreecommitdiff
path: root/doc/design/fonts
diff options
context:
space:
mode:
Diffstat (limited to 'doc/design/fonts')
-rw-r--r--doc/design/fonts17
1 files changed, 14 insertions, 3 deletions
diff --git a/doc/design/fonts b/doc/design/fonts
index c431d52e9..5d61f71a3 100644
--- a/doc/design/fonts
+++ b/doc/design/fonts
@@ -47,13 +47,24 @@ Passes subtitles through.
* Writer
-Gets all fonts, puts them in the font ID map using the font's original ID. This is OK because we
-don't need uniqueness in the DCP any more.
+Gets all fonts, puts them in the FontIDMap using the font's re-written ID.
* Reel Writer
-Gets subtitles, uses font ID map to find the ID from the Font C++ object pointer. Puts this ID in
+Gets subtitles, uses FontIDMap to find the ID from the Font C++ object pointer. Puts this ID in
the font and writes it to the asset. Ensures the required LoadFont is added.
+
+To put this all another way, we need to:
+
+1. Make some Content-unique ID from a random font ID. Then we can store this in the metadata.xml, and the user can change the font.
+
+2. Then do the same trick later, with the same result, so the decoder can receive the random font ID and go via the Content-unique
+ID to get the actual font TTF from the Content.
+
+In both these situations a string is the easiest thing (to go in some XML, and to go in a dcp::SubtitleString).
+
+This whole problem really is just that a single TextContent represents multiple
+DCP reels, and each reel can have a different font with the same font ID.