c779de7e99
- Added further checks
- Removed commenting-out code
- Fixed style ("type &variable" -> "type& variable")
- In RecunstructTransformed(), the 6th argument of RecunstructGlyf()
call should be |loca_table->dst_length|, not |loca_table->dst_offset|.
BUG=none
TEST=compiled
Review URL: https://codereview.appspot.com/6160043
To build: Check out a recent version of OTS, so that ots-read-only/ is alongside cpp/ Cd into cpp, and run "scons". Then, decompress a font using ./woff2-decompress font.wof2 > font.ttf . An example font is provided (Inconsolata-Regular.wof2). In this snapshot, it contains no actual compression, but does apply the glyf table transform and has the file format and structure as described in the current draft of the "WOFF Ultra Condensed file format" doc. That said, it is possible to get reliable estimates, and at the very least, bounds, on the compression efficiency, with the confidence that the compression is reversible. Running the compressor and doing a whole-file compression with a standard entropy coder such as gzip or lzma will yield a file size within a few dozen bytes or so of using a single entropy coded stream in the final file format. Another limitation of the current implementation snapshot is that it doesn't implement continue streams. These will follow shortly. = Building with lzma = The lzma-enabled build is made with gyp instead of scons. Right now, the build requires patching a clean copy of OTS. (And thanks to Bashi for the patch!) - Download GYP from http://code.google.com/p/gyp/ - Download clean OTS sources: % svn checkout http://ots.googlecode.com/svn/trunk/ ots-read-only - Apply patch % cd ots-read-only; patch -p0 < ../ots-lzma.patch - Run gyp to generate Makefile % cd ../cpp; gyp --depth=. -f make woff2.gyp - Build % make Now run: out/Default/woff2-decompress Inconsolata-Regular-lzma.wof2 > i.ttf We expect the build recipes to be cleaned up before the code is ready for production, but this should be good enough for testing.