From 8f2d4b294e14e588d7cde3648a199ff2e560a31b Mon Sep 17 00:00:00 2001 From: Rob McMullen Date: Mon, 23 Jul 2018 11:32:07 -0700 Subject: [PATCH] Updated one-sheet with speed comparison chart --- transposed_font_description.svg | 2688 +++++++------------------------ 1 file changed, 577 insertions(+), 2111 deletions(-) diff --git a/transposed_font_description.svg b/transposed_font_description.svg index a071975..16a12a8 100644 --- a/transposed_font_description.svg +++ b/transposed_font_description.svg @@ -15,7 +15,7 @@ viewBox="0 0 210 297" version="1.1" id="svg8" - inkscape:version="0.92.3 (2405546, 2018-03-11)" + inkscape:version="0.91 r13725" sodipodi:docname="transposed_font_description.svg"> @@ -161,8 +161,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" - inkscape:cx="507.28946" - inkscape:cy="718.69094" + inkscape:cx="50.926867" + inkscape:cy="321.12165" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -179,7 +179,7 @@ image/svg+xml - + @@ -188,205 +188,19 @@ inkscape:groupmode="layer" id="layer1"> Fast Font Rendering using Transposed Fonts Normal font rendering: glyphs stored sequentially + x="54.303799" + y="23.803257" + style="font-size:5.64444447px;stroke-width:0.26458332">Normal font rendering: glyphs stored sequentially Compiled font rendering: glyphs compiled in code + x="44.009026" + y="81.717354" + style="font-size:5.64444447px;stroke-width:0.26458332">Compiled font rendering: glyph data embedded in code * jump table to find definition of glyph, column in Y* jump table to find definition of glyph, column in Yregister* each block of code can write one glyph anywhere* one entry in jump table for each glyph; each entry can writeglyph to any column or row* immediate mode data for each scan line of glyph* indirect indexed addressing to store on* indirect indexed addressing to store on screen, must incrementscreen, must increment address by $400address by $400 to move to next scan linefor every scan line* requires tool to generate code* each font requires own code block* each font requires separate jump table and glyph definitions * indexed addressing to read glyph, initial* indexed addressing to read glyph, initialaddress set through self-modifying code* indirect indexed addressing to write toscreen; must increment by $400 each line* works with any font data + x="117.42583" + y="55.364258" + style="font-size:3.52777791px;stroke-width:0.26458332" + id="tspan3943">* works with any font in memory @@ -1212,43 +414,43 @@ uxRwBwAAAABJRU5ErkJggg== id="rect3962" width="22.061142" height="2.2475212" - x="16.30344" - y="96.881943" /> + x="15.900266" + y="93.454956" /> + x="15.877414" + y="93.624031" /> + x="15.886958" + y="96.370087" /> + x="15.881736" + y="98.9412" /> Transposed font rendering: glyph bytes reordered + x="52.90155" + y="151.69447" + style="font-size:5.64444447px;stroke-width:0.26458332">Transposed font rendering: glyph bytes reordered * jump table to find row, column in X register, glyph* jump table to find row, column in X register, glyph index in Y registerindex in Y register* each block of code can write any glyph to * one entry in jump table for each row; each entry can write any glyph to any column in one row* indexed addressing for each line of glyph* indexed addressing to store on screen* the big win: no pointer addition or index incrementing necessaryto write all rows in glyph* requires tool to generate code and transpose* requires tool to generate code and transpose fontfont* each font requires own code block* each font requires new jump table and row definition TransposedFontRow0 .byte ... , $9e, $9f, $9e, $9f, $bf, ...TransposedFontRow0 .byte ... , $9e, $9f, $9e, $9f, $bf, ...TransposedFontRow1 .byte ... , $bf, $bf, $bf, $bf, $bf, ...TransposedFontRow2 .byte ... , $b3, $b3, $b3, $b3, $83, ...TransposedFontRow3 .byte ... , $bf, $9f, $83, $b3, $9f, ...TransposedFontRow4 .byte ... , $bf, $b3, $b3, $b3, $83, ...TransposedFontRow5 .byte ... , $b3, $bf, $bf, $bf, $bf, ...TransposedFontRow6 .byte ... , $b3, $9f, $9e, $9f, $bf, ...TransposedFontRow7 .byte ... , $80, $80, $80, $80, $80, ... + height="31.571693" + x="123.72797" + y="156.70131" + ry="3.0735984" + rx="3.0735984" /> + x="38.283298" + y="148.06242" + ry="1.4699824" + rx="1.4699824" /> + x="38.283298" + y="203.45404" + ry="1.4699824" + rx="1.4699824" /> + height="32.176456" + x="155.46623" + y="156.30042" + ry="3.0735984" + rx="3.0735984" /> + Speedcomparison: +