Release Notes for Version 2.1

From Tombstone Engine Wiki
Jump to: navigation, search

Core Engine

  • The project files for Visual Studio have been updated to 2017.

Graphics Manager

  • The engine no longer attempts to figure out how fast the GPU is in order to set defaults for all the rendering options. A single set of default options is now used for all GPUs.
  • By default, the engine now tries to create a 1920×1080 full-screen rendering context. If this fails, then it tries 1280×720 full-screen. If that fails, then the last resort is 1280×720 windowed.

Interface Manager

  • The font format has changed in this version. Any custom fonts that were previously imported need to be imported again before they can be used.
  • Multicolor glyphs like emoji and pictographs are now supported in fonts that use Microsoft's layered TrueType outline method based on the 'COLR' and 'CPAL' tables. A new setting for text widgets enables multicolor glyph rendering, and it is on by default. If this setting is turned off, then monochrome versions of each glyph are rendered instead.
  • A new supersampling mode has been added to text widgets, and it renders higher-quality glyphs at a small performance cost. This is enabled by default in standalone panel resources and should usually be turned on for fonts rendered at smaller sizes. Performance is better if supersampling is turned off for larger text, and it is off by default when editing panel effects inside a world. A font must be imported with supersampling enabled for this to work.
  • Text widgets have another new setting for enabling two optimizations that work well for text rendered at large sizes. This setting is off by default, but it should be turned on for big text. One optimization reduces the area covered by each glyph by clipping off corners and rendered up to an eight-sided polygon instead of a simple box. A font must be imported with the geometry optimization enabled in order for this to work. The second optimization reduces computation in the font's pixel shader by enabling additional code paths, but it is only effective when text is rendered large enough to minimize shader divergence effects. This optimization is always available and does not require that a font be imported with any particular setting enabled.
  • The text layout code now supports glyph joining sequences and combining diacritical marks, and these can be enabled or disabled for text widgets. The joining sequences include glyph composition, which applies to things like skin tone modifiers to turn 👍‌🏽 into 👍🏽, and various types of ligatures such as the substitution of the single glyph "fi" for the separate letters "fi". Glyph composition, standard ligatures, required ligatures, and discretionary ligatures are defined by the font being used, and they can be individually enabled or disabled when join sequences are enabled in general.
  • All widgets containing text now support embedded formatting directives that can change things like font size, color, tracking, and whether text is subscript or superscript. See Text Formatting for details.
  • The Fade and Pulsate mutators can now be used to animate the glyph effect intensity for text widgets. Only the alpha component of the color is used in this case.
  • On Windows, UTF-16 surrogate pairs are now supported when reading and writing the system clipboard. This applies when Unicode characters at code points U+010000 and higher are copied or pasted. (The engine can already handle these code points on Mac OS because it takes UTF-8 directly.)

Scripts

  • A special type of event method called First Execution has been added to scripts. This method generates a boolean result that is true if it's the first time that a script has been run on node to which it's attached and false otherwise.

Tools

Font Importer

  • There are now settings that can enable/disable support for kerning, join sequences, combining marks, multicolor glyphs, supersampling, and a special geometric optimization when fonts are imported. See the Font Importer page for more information.
  • The Font Importer can now read kerning information from the newer 'GPOS' table in an OpenType font. If no kerning information is found there, then the older 'kern' table is used.
  • The min and max glyph effect offset settings have been removed from the Font Importer. The way in which glyph effects are rendered has changed, and it's no longer necessary to specify the largest offsets in advance when a font is imported.