Skip to content

Commit

Permalink
Doc updates for test release 0.5.5 3
Browse files Browse the repository at this point in the history
  • Loading branch information
ajmilne committed Nov 13, 2009
1 parent 9e4daee commit 2e3678e
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 6 deletions.
7 changes: 4 additions & 3 deletions CHANGELOG.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,11 @@ Changes for 0.5.5 Test 3 (relative to Test 2)
---------------------------------------------

* MP3 support adds seeking support, time display, wider
compatibility with varied stream formats,
support for ID3 V2 tags.
compatibility with varied stream formats, support for ID3 V2 tags.
* Made forms (including AMS) 'loop' top to bottom/bottom to top when
scrolling past the end.
scrolling past the end; merged MR4 code.
* Made lists (including wifi selector) 'loop' top to bottom/bottom to
top when scrolling past the end; merged MR4 code.
* Redrew Unicode page 03 (Greek) for the built-in font entirely by
hand--glyphs now match general pitch and appearance of Latin, Cyrillic.
Added accented vowels, terminal sigma; completes modern Greek support
Expand Down
29 changes: 26 additions & 3 deletions midp/src/tool/fontgen/fontdef_ex/README.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
README.TXT for fontdef_ex in fontgen
------------------------------------

Current as of November 11, 2009


This directory contains the ascii art font bitmap definitions from which the built-in font for PSPKVM is compiled. See the script ../src/build_tables.sh which reads these and from them builds the file midp/src/lowlevelui/graphics/gx_putpixel/native/gxj_font_bitmap.c, which in-turn defines the bitmaps at runtime.


Expand All @@ -15,13 +18,25 @@ page_01.txt -- Unicode page 0x01 defining codepoints 0x0100-0x01ff
(Latin Extended 1)
(hand-drawn glyphs)

page_03.txt -- Unicode page 0x03 defining codepoints 0x0486-0x04ce
(Greek, Coptic)
(hand-drawn glyphs)

page_04.txt -- Unicode page 0x04 defining codepoints 0x0400-0x045f
(Cyrillic)
(hand-drawn glyphs)

page_20.txt -- Unicode page 0x20 defining codepoints 0x2010-0x20ac
(Typographer's symbols, Currency symbols)
(hand-drawn glyphs)

page_21-page_26.txt -- Unicode pages 0x21 to 0x26 defining various codepoints
(Misc. symbols)
(extracted from 0.5.4 release original bitfields--formerly in CJK-map order--and converted to Unicode order using rdfont_3)

page_30-page_33.txt -- Unicode pages 0x30 to 0x33 defining various codepoints
(CJK punctuation, other misc. symbols)
(extracted from 0.5.4 release original bitfields--formerly in CJK-map order--and converted to Unicode order using rdfont_3)

page_4e-page_99.txt -- Unicode pages 0x4e to 0x9f defining codepoints 0x4e00 to 0x9fa5
(Han unification pages--Chinese, Japanese, Korean ideographs)
Expand All @@ -31,14 +46,22 @@ page_e0.txt -- Unicode page 0xe000-x0e030
(Custom user page--in the PSPKVM map, contains various system symbols)
(hand-drawn glyphs)

page_f9-page_fa.txt -- Unicode pages 0xf9 to 0xfa defining various codepoints
(CJK extensions, misc. symbols)
(extracted from 0.5.4 release original bitfields--formerly in CJK-map order--and converted to Unicode order using rdfont_3)

page_fe-page_ff.txt -- Unicode pages 0xfe to 0xff defining various codepoints
(CJK punctuation, misc. symbols)
(extracted from 0.5.4 release original bitfields--formerly in CJK-map order--and converted to Unicode order using rdfont_3)


Adding additional symbols/modifying symbols
-------------------------------------------

To add glyphs to current pages, you should edit the pages themselves. That is, if you wish to add a bitmap for codepoint 0xe050, and the file page_e0.txt already exists, you should modify that table. To add glyphs in Unicode pages which are not yet defined (ie., you wish to add glyph 0x0342, and page_03.txt does not exist), you should add the page. Pages may only cover blocks with the same higher byte (ie. 0xe000 to 0xe0ff are all a member of the same page, 0xe100 is a member of the next page), and pages may not be split between files. However, files need not cover the entire (lower byte) range 00 to ff within the page--see the low_code_first and low_code_last bytes defined in the headers--these specify the range the file actually covers.
To add glyphs to current pages, you should edit the pages themselves. That is, if you wish to add a bitmap for codepoint 0xe050, and the file page_e0.txt already exists, you should modify that table. To add glyphs in Unicode pages which are not yet defined (ie., you wish to add glyph 0x0742, and page_07.txt does not exist), you should add the page. Pages may only cover blocks with the same higher byte (ie. 0xe000 to 0xe0ff are all a member of the same page, 0xe100 is a member of the next page), and pages may not be split between files. However, files need not cover the entire (lower byte) range 00 to ff within the page--see the low_code_first and low_code_last bytes defined in the headers--these specify the range the file actually covers.

See also ../src/gen_blanks.pl for a Perl script that generates blank pages in this format for filling in. Note that while the gen_blanks.pl tool generates full pages (range 00 to ff in the low bit), the framework for these fonts does permit smaller ranges as of this writing, as noted above. Edit low_code_first and low_code_last in the header by hand and delete glyphs outside this range to generate valid tables containing smaller sets. Note also that undefined glyphs within the defined range should be left as the 'default glyph' character generated by the gen_blanks.pl script. At runtime, characters at codepoints not defined in any page will be rendered by the default glyph at position 0 in page 0 (0x0000), as is the common practice in text rendering subsystems.
See also ../src/gen_blanks.pl for a Perl script that generates blank pages in this format for filling in. Note also that while the gen_blanks.pl tool generates full pages (range 00 to ff in the low bit), the framework for these fonts does permit smaller ranges as of this writing, as noted above. Edit low_code_first and low_code_last in the header by hand and delete glyphs outside this range to generate valid tables containing smaller sets. Note also that undefined glyphs within the defined range should be left as the 'default glyph' character generated by the gen_blanks.pl script. At runtime, characters at codepoints not defined in any page will be rendered by the default glyph at position 0 in page 0 (0x0000), as is the common practice in text rendering subsystems.

Note also that, as of this writing, each generated page must have all glyphs the same width, and the CHAR_WIDTH macro in midp/src/lowlevelui/graphics/gx_putpixel/native/gxj_text.c must be adjusted as necessary to calculate properly which width is correct for the character in question (since, between pages, the widths are not all the same).
As of this writing, each generated page must have all glyphs the same width. It is no longer necessary, however, to modify the char_width function in gxj_text.c -- the function now picks up bitmap widths directly from the generated tables.

Once you have edited the pages, run ./build_tables.sh from the ../src directory, which regenerates midp/src/lowlevelui/graphics/gx_putpixel/native/gxj_font_bitmap.c. Then run ./build-psp-cldc.sh -m from the pspkvm srouce tree root to rebuild the MIDP components, and then finally build the binary in the pspkvm/psp directory using the makefile therein.
4 changes: 4 additions & 0 deletions midp/src/tool/fontgen/src/write_mother_table.pl
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
#!/usr/bin/perl

# Script to write the 'mother table' in gxj_font_bitmap.c --
# the table of tables. See build_tables.sh, which calls this
# script after building each of the child tables.

use strict;

# Collect the table names
Expand Down

0 comments on commit 2e3678e

Please sign in to comment.