- May 01, 2021
- Apr 26, 2020
-
-
Dzuk authored
- Mention of TrueType ligatures has been removed throughout documentation and software because they haven't actually been supported by forc and I probably don't plan on supporting them at the moment. - Improved readme with more detailed stability information.
-
- Jan 28, 2020
-
-
Dzuk authored
forc is now licensed under CNPL v4.
-
- Sep 05, 2019
-
-
Dzuk authored
- an optional PayloadDescription can now be built into iOS mobileconfigs.
-
Dzuk authored
iOS config's table had a formatting issue. It should be fixed now.
-
Dzuk authored
- font.py's docs and error strings have been improved. - Docs have been greatly improved, explaining more things. - Docs now has an explanation of the iOSConfig manifest segments - Docs now has an example manifest file for people to use as a template or to examine.
-
- Aug 30, 2019
-
-
Dzuk authored
forgot that there's an extra step to creating the checksum~
-
Dzuk authored
- the bytes building process of the font now includes multiple passes, including the generation of the (hopefully) correct checksum for head.checkSumAdjustment. - changed the format of the name table to 0. (at least for the moment) - made cmap subtable 12 more accurate (but cmap in general is not fixed) - some slightly tidier cmap stuff - Some improved comments and docs
-
- Aug 29, 2019
-
-
Dzuk authored
Forgot to remove my engineered mistake for testing an internal test involving maxp.numGlyphs.
-
Dzuk authored
- Improved test print readout. - Removed lingering test prints from the last build
-
Dzuk authored
- A (failed) attempt was made at making complete name table bytes compilation. Will need more work in the future. - Streamlined data types for platform encoding IDs. - Fixed long-inaccurate documentation for transform.bytes.generateOffsets. - Improved readme
-
Dzuk authored
TableRecord was being fed the padded length of tables, which was not accurate to the TrueType standard; they should have the unpadded length. transform.bytes.outputTableBytes has been altered to handle the data output required by the previous thing. It's been renamed to 'outputTableBytes' to reflect it's new functionality.
-
Dzuk authored
- glyphs has been separated into glyph (data types governing glyphs) and glyphProc (the bunch of functions dedicated to processing glyphs) - table names have been moved out of tables and into the font assembly process instead. The tableName field in table classes has been removed. This means that table data is now completely consistent again with their bytes representation. - The font now self-tests to ensure various components of itself agree with other components within the font. It currently doesn't halt font creation, it will just give a warning.
-
- Aug 28, 2019
-
-
Dzuk authored
- more cmap subtable work, including initial full cmap subtable format 12 bytes export and some small gains on subtable format 4. - slightly more post table work - 'tables.support' renamed to 'tables.common' - Removed some unecessary test prints from the previous commit - Changed some code back that was omitted from the previous commits for the sake of making sure offset generation was actually working
-
Dzuk authored
- transform.bytes.generateOffsets now has correct math! - placeholder table exports now export some bytes instead of no bytes in case that causes problems in the interim.
-
- Aug 27, 2019
-
-
Dzuk authored
- new function - data.padTableBytes, for padding table bytes output properly according to the TrueType spec. - All final tables output now uses data.padTableBytes if they have bytes output. - 'data.calculateChecksum' renamed to 'data.calculateTableChecksum'. - Some improved comments.
-
Dzuk authored
Fixed an incorrect error message within data.Tag.
-
- Aug 15, 2019
-
-
Dzuk authored
- tableRecords are now compiled to bytes and added in the font bytes compilation. - Fixed a bug in tableRecord's toBytes function where variables were being packed as UInt16s instead of UInt32s. - Some progress in generating bytes for the hmtx table. Not complete yet. - Some documentation and comment improvements - tableRecord can now repr itself to make examining core table offsets easier.
-
Dzuk authored
CBx and SVG binary output via forc's internal compiler now creates files that don't cause errors in Python, but are still invalid as OpenType files. - Initial CBx bytes compilation code has been tested and improved. - EBx metrics subtables can now generate fully formed bytes output. - New --no-test flag disables the testing phase of compilation to make development easier. - Fixed a blind spot in the input validation for data.Tag.
-
- Aug 14, 2019
-
-
Dzuk authored
the forc compiler can now export a file made of bytes that calls itself a TrueType font file. It's not valid or working, but we're at that stage now. - transform.bytes.generateOffsets now seems to work properly. There was a bunch of previously untested code that just didn't work. - Some more error checking code has been placed around various parts related to overall bytes conversion. - Various font tables produce blank, placeholder bytes objects for now for their toBytes functions just to make everything work atm.
-
- Jun 25, 2019
-
-
Dzuk authored
I'm finally trying to build a binary font in the command line to see what happens. A bunch of changes have come from it: (many more fixes needed to go) (does not produce a working binary compilation routine yet!) - offset table generation - transform.bytes.calculateChecksums to generate checksums. - every table class now names itself as a field so it can be understood in the generation of over-arching font structures. - tag data type now has __lt__() - glyphOrder is no longer a table in a font class because it technically isn't a table. Its presence is no longer printed during font assembly either. - fixed a bug where data.Fixed's int representation doesn't work because the function didn't have self as an input. - bug where there wasn't sufficient information to output data.Tag's bytes representation has been fixed. - bugs where various tables' toBytes input data were incorrectly spelled have been fixed. - bugs where various byte/int lengths were wrong in various tables' toBytes functions have been fixed. - bug where data.VFixed couldn't output an int has been fixed.
-
- Jun 24, 2019
-
-
Dzuk authored
toBytes has been tested for the first time (not as working, just to see what happens): - 'compile.binary' renamed to 'compile.forc'. - some code that was wonky in compile.forc has been adjusted to work properly - font.toBytes now returns a placeholder bytes object.
-
Dzuk authored
- cmap's base table is now possibly capable of compiling itself in bytes - some inroads have been made with cmap subtable byte compilation - transform.bytes.generateOffsets now uses an int instead of a string as an input to get the bit length of the offsets that are generated by it.
-
- Jun 08, 2019
-
-
Dzuk authored
- A few extra comments here and there - Some beginnings of toBytes() functions in other table-building classes - Some more research and links
-
- Jun 07, 2019
-
-
Dzuk authored
-
Dzuk authored
- generateOffsets can now generate long (32bit) or short (16bit) offsets depending on what is called for. - pre-existing uses of generateOffsets have been edited to work with this.
-
Dzuk authored
Generally to make the code a lot more readable and clearer. (Also this conforms to Python's writing style guidelines) Whoops. This isnt the case however when it comes to lowercase font table names, they're staying the same. (This is because font table names are case sensitive. I'll try to think of a way around it in the future)
-
Dzuk authored
- New module transform.bytes for common bytes function. - New function transform.bytes.generateOffsets for generating blobs of bytes data and accompanying offsets. - img class now has a getBytes() function which will return the bytes of it's image. - almost all parts of the sbix table can generate a complete bytes representation. - Fixed an error where the last bit of tables.sbix.flags was when it should be the first. (This was a holdover from little-endian representation in TTX) - added useful code comments about sbix data.
-
Dzuk authored
- Some old comments left lying around have been improved - Various existing comments and class/function documentation have been improved. - Fixed an error in manifest documentation relating to created dates. - Howto doc now includes a short section on the compiler build flag. - Unenforced SVG element checking errors will now suggest the user uses the -nusc build flag if they don't want the exceptions they bring up.
-
- May 24, 2019
-
-
Dzuk authored
- tables.gasp is now formed much more properly and has complete (at least hypothetically) toBytes() functions. - tables.cbdt now has more accurate data and toBytes() - tables.cmap header version no longer hardcoded in TTX. (hardcoded as class variable instead) - cmap header now has a toBytes function. - font.py's init now creates the table in a 'try' to provide nicer error messaging. - tables.gsub has more accurate comments on how to achieve full bytes output. - redundant TTX comments have been removed. - more struct imports have been added to tables as needed. - sbix has some initial bytes stuff. - data.tag now has a toBytes function, and all binary packing involving tags now use .toBytes() instead of int(). - tables.svg has some initial bytes code. - more TODOs in the code have been added.
-
Dzuk authored
- vFixed is now safer to use. - CBLC has been made to be more accurate in both naming, data types and structure.
-
- May 22, 2019
-
-
Dzuk authored
- Just added some WIP code about bytes compilation while I was thinking about it. - Renamed another instance where the internal compiler is called 'binary' to 'forc'
-
Dzuk authored
- Various uses of 'binary' changed to 'bytes' or something else. - changed the name of 'binary' compiler option to 'forc'.
-
Dzuk authored
- bFlags code has been sunstantially improved. - bFlags can now output to bytes. - all toBinary() functions have been renamed to toBytes() to be consistent with what they actually output. - accidental leftover test print from last commit has been removed.
-
Dzuk authored
- tables that use bFlags now use struct.pack() in the appropriate way when bFlags.toBinary() is a working function.
-
Dzuk authored
- data.longDateTime is a class that represets the LONGDATETIME format in a font, and fulfills needs both by binary font compilation and TTX font compilation. - all fields that require LONGDATETIME are now represented by longDateTime. - metadata.created in the manifest is now validated and converted to longDateTime before being used in a font table.
-
Dzuk authored
- hvFixed renamed to 'fixed, as it's actually the 'normal' fixed type. - new vFixed type, to represent certain kinds of version table data that are represented as fixed numbers, but not the *normal* fixed numbers >:[ - Added WIP binary compilation to various tables, improved table classes in general. - Some accidental leftover code where GSUB's version was hard-coded in the TTX compilation has been fixed.
-
- May 21, 2019